private void WirePanelEvents(bool add, TabPanel panel, TabPanelButton tab) { if (add) { panel.Disposed += HandlePanelDisposed; panel.VisibilityChanged += HandlePanelVisibilityChanged; tab.Model.IsPressedChanged += OnIsPressedChanged; } else { panel.Disposed -= HandlePanelDisposed; panel.VisibilityChanged -= HandlePanelVisibilityChanged; tab.Model.IsPressedChanged -= OnIsPressedChanged; } }
private int GetButtonOffset(TabPanelButton tab) { int offset = 0; foreach (TabPanelButton item in buttonViews) { if (tab == item) return offset; if (item.IsVisible) offset += item.Container.GetWidth(); } return offset; }
private bool IsOverflowing(TabPanelButton tab, int left) { return (left + tab.Width) > (view.Container.GetWidth() - 20); }
private static void Show(TabPanelButton tab) { tab.Model.IsPressed = true; Css.SetVisibility(tab.Panel.Div, true); }
private static void Hide(TabPanelButton tab) { tab.Model.IsPressed = false; Css.SetVisibility(tab.Panel.Div, false); }
private void HideAll(TabPanelButton exclude) { foreach (TabPanelButton tab in buttonViews) { if (tab != exclude) Hide(tab); } }
private void Select(TabPanelButton tab) { HideAll(tab); Show(tab); }
private void AddButton(TabPanel panel) { // Create button. TabPanelButton tab = new TabPanelButton(panel); toolbarElement.Append(tab.Container); // Wire up events. WirePanelEvents(true, panel, tab); // Finish up. buttonViews.Add(tab); UpdateButtonPositions(); }