コード例 #1
0
        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();
            };
        }
コード例 #2
0
        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();
                };

        }
コード例 #3
0
        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;

            //
        }
コード例 #4
0
        /// <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;

            //

        }