/// <summary>
        /// Gets the array of group level key tips.
        /// </summary>
        /// <param name="keyTipList">List to add new entries into.</param>
        /// <param name="lineHint">Provide hint to item about its location.</param>
        public void GetGroupKeyTips(KeyTipInfoList keyTipList, int lineHint)
        {
            // Only provide a key tip if we are visible
            if (Visible)
            {
                // Get the screen location of the button
                Rectangle viewRect = _ribbon.KeyTipToScreen(this[0]);

                Point screenPt = Point.Empty;
                GroupButtonController controller = null;

                // Determine the screen position of the key tip dependant on item location/size
                switch (_currentSize)
                {
                case GroupItemSize.Large:
                    screenPt   = new Point(viewRect.Left + (viewRect.Width / 2), viewRect.Bottom);
                    controller = _viewLarge.Controller;
                    break;

                case GroupItemSize.Medium:
                case GroupItemSize.Small:
                    screenPt   = _ribbon.CalculatedValues.KeyTipRectToPoint(viewRect, lineHint);
                    controller = _viewMediumSmall.Controller;
                    break;
                }

                keyTipList.Add(new KeyTipInfo(GroupButton.Enabled, GroupButton.KeyTip,
                                              screenPt, this[0].ClientRectangle, controller));
            }
        }
Example #2
0
        /// <summary>
        /// Initialize a new instance of the ViewDrawRibbonGroupButtonBackBorder class.
        /// </summary>
        /// <param name="ribbon">Reference to owning ribbon control.</param>
        /// <param name="groupItem">Reference to owning group item.</param>
        /// <param name="paletteBack">Palette to use for the background.</param>
        /// <param name="paletteBorder">Palette to use for the border.</param>
        /// <param name="constantBorder">Should the border be a constant normal state.</param>
        /// <param name="needPaint">Delegate for notifying paint requests.</param>
        public ViewDrawRibbonGroupButtonBackBorder(KryptonRibbon ribbon,
                                                   KryptonRibbonGroupItem groupItem,
                                                   IPaletteBack paletteBack,
                                                   IPaletteBorder paletteBorder,
                                                   bool constantBorder,
                                                   NeedPaintHandler needPaint)
        {
            Debug.Assert(ribbon != null);
            Debug.Assert(groupItem != null);
            Debug.Assert(paletteBack != null);
            Debug.Assert(paletteBorder != null);

            // Remember incoming references
            _ribbon          = ribbon;
            GroupItem        = groupItem;
            _paletteBack     = paletteBack;
            _paletteBackDraw = new PaletteBackInheritForced(paletteBack)
            {
                ForceDraw = InheritBool.True
            };
            _paletteBackLight = new PaletteBackLightenColors(paletteBack);
            _paletteBorderAll = new PaletteBorderInheritForced(paletteBorder);
            _paletteBorderAll.ForceBorderEdges(PaletteDrawBorders.All);
            _paletteBorder = paletteBorder;
            ConstantBorder = constantBorder;

            // Default other fields
            Checked = false;
            DrawNonTrackingAreas = true;

            // Create delegate used to process end of click action
            FinishDelegate = ActionFinished;

            // Attach a controller to this element for the pressing of the button
            Controller               = new GroupButtonController(_ribbon, this, needPaint);
            Controller.Click        += OnClick;
            Controller.ContextClick += OnContextClick;
            Controller.DropDown     += OnDropDown;
            MouseController          = Controller;
            SourceController         = Controller;
            KeyController            = Controller;
        }