void InitNavigateBarButton() { // Control this.SetStyle(ControlStyles.UserPaint, true); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); this.SetStyle(ControlStyles.ResizeRedraw, true); this.UpdateStyles(); //this.ResizeRedraw = true; this.MinimumSize = new Size(NavigateBar.OVER_FLOW_BUTTON_WIDTH, minimumButtonHeight); this.Cursor = Cursors.Hand; // Menu menu = new ButtonContextMenu(this); this.ContextMenuStrip = menu; // ToolTip toolTip = new ToolTip(); toolTip.ShowAlways = true; // OverFlowPanelButton (Panel içerisine sığmadığında overflowpanel içerisinde bu eleman gösteriliyor) // If cannot display navigatebutton then show this button on overflowpanel overFlowPanelButton = new NavigateBarOverFlowPanelButton(this); overFlowPanelButton.NavigateBarButton = this; overFlowPanelButton.IsSelected = isSelected; // ContextMenuItem (OverFlowPanel sığmadığında menüde bu eleman gösteriliyor) // If cannot display on overflowpanel then show on contextmenu contextMenuItem = new NavigateBarOverFlowPanelMenuItem(this, false); contextMenuItem.Click += delegate(object sender, EventArgs e) { this.PerformClick(); }; }
void InitNavigateBarOverFlowPanel() { // Control this.Dock = DockStyle.Fill; this.Height = navigateBar.OverFlowPanelHeight; this.MinimumSize = new Size(NavigateBar.OVER_FLOW_BUTTON_WIDTH, 20); #region Context Menu Items mnContextMenu = new ContextMenuStrip(); mnContextMenu.Opening += delegate(object sender, CancelEventArgs e) { foreach (ToolStripItem tsi in mnContextMenu.Items) { tsi.ForeColor = SystemColors.MenuText; } }; // Menü kapatıldığında okun clickini kaldır // Closed context menu remove selected state on arrow button mnContextMenu.Closed += delegate(object sender, ToolStripDropDownClosedEventArgs e) { panelArrowBtn.IsSelected = false; Refresh(); }; // Show More Button menu item mnShowMoreButton = new NavigateBarOverFlowPanelMenuItem(null, false); mnShowMoreButton.Text = Properties.Resources.TEXT_SHOW_MORE_BUTTONS; mnShowMoreButton.Image = Properties.Resources.ArrowUp; mnShowMoreButton.Click += delegate(object sender, EventArgs e) { NavigateBar.MoveButtons(MoveType.MoveUp); }; // Show Fewer Button menu item mnShowFewerButton = new NavigateBarOverFlowPanelMenuItem(null, false); mnShowFewerButton.Text = Properties.Resources.TEXT_SHOW_FEWER_BUTTONS; mnShowFewerButton.Image = Properties.Resources.ArrowDown; mnShowFewerButton.Click += delegate(object sender, EventArgs e) { NavigateBar.MoveButtons(MoveType.MoveDown); }; // Seçenek // Menu Options menu item mnMenuOptions = new NavigateBarOverFlowPanelMenuItem(null, false); mnMenuOptions.Text = Properties.Resources.TEXT_MENU_OPTIONS; mnMenuOptions.Click += delegate(object sender, EventArgs e) { NavigateBar.RunMenuOptionsDialog(); }; // Ekle / Kaldır // Add or Remove Button menu item mnAddRemoveButton = new NavigateBarOverFlowPanelMenuItem(null, false); mnAddRemoveButton.Text = Properties.Resources.TEXT_ADD_OR_REMOVE_BUTTON; mnAddRemoveButton.DropDownOpening += delegate(object sender, EventArgs e) { foreach (NavigateBarOverFlowPanelMenuItem item in mnAddRemoveButton.DropDownItems) { item.Checked = item.NavigateBarButton.IsDisplayed; } }; #endregion #region Arrow button for ContextMenu panelArrowNavBtn = new NavigateBarButton(Properties.Resources.TEXT_CONFIGURE_BUTTONS); panelArrowNavBtn.NavigateBar = NavigateBar; panelArrowNavBtn.ToolTipText = Properties.Resources.TEXT_CONFIGURE_BUTTONS; panelArrowBtn = new NavigateBarOverFlowPanelButton(panelArrowNavBtn); this.SetPanelArrowPosition(); panelArrowBtn.IsSelected = false; panelArrowBtn.Visible = true; panelArrowBtn.IsArrowButton = true; panelArrowBtn.MouseClick += new MouseEventHandler(ArrowButton_MouseClick); this.Controls.Add(panelArrowBtn); #endregion this.ResizeRedraw = true; // }
/// <summary> /// If button cannot displayed NavigateBar panel then display on this panel /// </summary> public void ReDisplayOverFlowButtons(bool tCheck) { if (tCheck && lastItemCount == navigateBar.OverFlowItemCount) { return; } this.SuspendLayout(); // OverFlowPanel üzerine simgeleri sırasına göre ekle // Eğer simgelerin toplam uzunluğu panelden fazla ise ContextMenu üzerine ekle // Panel içerisine kaç adet button sığıyor // Add button on overflowpanel looking order // calculate how many button displayable on panel // If cannot display button on overflowpanel then show on contextmenu int addedBtnCount = 0; int displayableBtnCount = (this.Width - NavigateBar.OVER_FLOW_BUTTON_WIDTH - 4) / NavigateBar.OVER_FLOW_BUTTON_WIDTH; displayableBtnCount = (displayableBtnCount > navigateBar.OverFlowItemCount ? navigateBar.OverFlowItemCount : displayableBtnCount); for (int i = 0; i < navigateBar.NavigateBarButtons.Count; i++) { NavigateBarButton nvbButton = navigateBar.NavigateBarButtons[i]; NavigateBarOverFlowPanelButton overFlowPanelButton = nvbButton.OverFlowPanelButton; overFlowPanelButton.Visible = true; // Eğer button panel içerisinde gösterliyorsa ve daha önce overflowpanel // içerisinde ise overlofwpanel buttonu kaldır if (nvbButton.Visible || !nvbButton.IsDisplayed) { if (this.Controls.Contains(overFlowPanelButton)) { this.Controls.Remove(overFlowPanelButton); } continue; } if (overFlowPanelButton.IsOnOverFlowPanel && overFlowPanelButton.NavigateBarButton.IsDisplayed) // Eğer panel üzerindeki button ise // If is display { if (addedBtnCount < displayableBtnCount) // Tüm buttonlar sığıyor // all buttons can visible { if (this.NavigateBar.RightToLeft == RightToLeft.Yes) { overFlowPanelButton.Left = Math.Abs(displayableBtnCount - addedBtnCount) * NavigateBar.OVER_FLOW_BUTTON_WIDTH; // Normal sıralı dizmek için } else { overFlowPanelButton.Left = this.Width - Math.Abs(addedBtnCount - displayableBtnCount - 1 /* Arrow Button*/) * NavigateBar.OVER_FLOW_BUTTON_WIDTH; // Tersten dizmek için } if (!this.Controls.Contains(overFlowPanelButton)) { this.Controls.Add(overFlowPanelButton); } addedBtnCount++; } else { overFlowPanelButton.Visible = false; } } else { overFlowPanelButton.Visible = false; } } lastItemCount = navigateBar.OverFlowItemCount; // this.ResumeLayout(false); }
void InitNavigateBarOverFlowPanel() { // Control this.Dock = DockStyle.Fill; this.Height = navigateBar.OverFlowPanelHeight; this.MinimumSize = new Size(NavigateBar.OVER_FLOW_BUTTON_WIDTH, 20); #region Context Menu Items mnContextMenu = new ContextMenuStrip(); mnContextMenu.Opening += delegate(object sender, CancelEventArgs e) { foreach (ToolStripItem tsi in mnContextMenu.Items) tsi.ForeColor = SystemColors.MenuText; }; // Menü kapatıldığında okun clickini kaldır // Closed context menu remove selected state on arrow button mnContextMenu.Closed += delegate(object sender, ToolStripDropDownClosedEventArgs e) { panelArrowBtn.IsSelected = false; Refresh(); }; // Show More Button menu item mnShowMoreButton = new NavigateBarOverFlowPanelMenuItem(null, false); mnShowMoreButton.Text = Properties.Resources.TEXT_SHOW_MORE_BUTTONS; mnShowMoreButton.Image = Properties.Resources.ArrowUp; mnShowMoreButton.Click += delegate(object sender, EventArgs e) { NavigateBar.MoveButtons(MoveType.MoveUp); }; // Show Fewer Button menu item mnShowFewerButton = new NavigateBarOverFlowPanelMenuItem(null, false); mnShowFewerButton.Text = Properties.Resources.TEXT_SHOW_FEWER_BUTTONS; mnShowFewerButton.Image = Properties.Resources.ArrowDown; mnShowFewerButton.Click += delegate(object sender, EventArgs e) { NavigateBar.MoveButtons(MoveType.MoveDown); }; // Seçenek // Menu Options menu item mnMenuOptions = new NavigateBarOverFlowPanelMenuItem(null, false); mnMenuOptions.Text = Properties.Resources.TEXT_MENU_OPTIONS; mnMenuOptions.Click += delegate(object sender, EventArgs e) { NavigateBar.RunMenuOptionsDialog(); }; // Ekle / Kaldır // Add or Remove Button menu item mnAddRemoveButton = new NavigateBarOverFlowPanelMenuItem(null, false); mnAddRemoveButton.Text = Properties.Resources.TEXT_ADD_OR_REMOVE_BUTTON; mnAddRemoveButton.DropDownOpening += delegate(object sender, EventArgs e) { foreach (NavigateBarOverFlowPanelMenuItem item in mnAddRemoveButton.DropDownItems) item.Checked = item.NavigateBarButton.IsDisplayed; }; #endregion #region Arrow button for ContextMenu panelArrowNavBtn = new NavigateBarButton(Properties.Resources.TEXT_CONFIGURE_BUTTONS); panelArrowNavBtn.NavigateBar = NavigateBar; panelArrowNavBtn.ToolTipText = Properties.Resources.TEXT_CONFIGURE_BUTTONS; panelArrowBtn = new NavigateBarOverFlowPanelButton(panelArrowNavBtn); this.SetPanelArrowPosition(); panelArrowBtn.IsSelected = false; panelArrowBtn.Visible = true; panelArrowBtn.IsArrowButton = true; panelArrowBtn.MouseClick += new MouseEventHandler(ArrowButton_MouseClick); this.Controls.Add(panelArrowBtn); #endregion this.ResizeRedraw = true; // }