/// <summary> /// Initialize a new instance of the ViewDrawRibbonGroupSeparator class. /// </summary> /// <param name="ribbon">Reference to owning ribbon control.</param> /// <param name="ribbonSeparator">Reference to group separator definition.</param> /// <param name="needPaint">Delegate for notifying paint requests.</param> public ViewDrawRibbonGroupSeparator(KryptonRibbon ribbon, KryptonRibbonGroupSeparator ribbonSeparator, NeedPaintHandler needPaint) { Debug.Assert(ribbon != null); Debug.Assert(ribbonSeparator != null); Debug.Assert(needPaint != null); _ribbon = ribbon; _ribbonSeparator = ribbonSeparator; _needPaint = needPaint; // Associate this view with the source component (required for design time selection) Component = _ribbonSeparator; if (_ribbon.InDesignMode) { // At design time we need to know when the user right clicks the label ContextClickController controller = new ContextClickController(); controller.ContextClick += OnContextClick; MouseController = controller; } // Define back reference to view for the separator definition _ribbonSeparator.SeparatorView = this; // Hook into changes in the ribbon separator definition _ribbonSeparator.PropertyChanged += OnSeparatorPropertyChanged; // Default the preferred size _lastShape = PaletteRibbonShape.Office2007; _preferredSize = _preferredSize2007; }
/// <summary> /// Initialize a new instance of the ViewDrawRibbonGroupGallery class. /// </summary> /// <param name="ribbon">Reference to owning ribbon control.</param> /// <param name="ribbonGallery">Reference to source gallery.</param> /// <param name="needPaint">Delegate for notifying paint requests.</param> public ViewDrawRibbonGroupGallery(KryptonRibbon ribbon, KryptonRibbonGroupGallery ribbonGallery, NeedPaintHandler needPaint) { Debug.Assert(ribbon != null); Debug.Assert(ribbonGallery != null); Debug.Assert(needPaint != null); // Remember incoming references _ribbon = ribbon; GroupGallery = ribbonGallery; _needPaint = needPaint; _currentSize = GroupGallery.ItemSizeCurrent; // Create the button view used in small setting CreateLargeButtonView(); // Hook into the gallery events GroupGallery.MouseEnterControl += OnMouseEnterControl; GroupGallery.MouseLeaveControl += OnMouseLeaveControl; // Associate this view with the source component (required for design time selection) Component = GroupGallery; if (_ribbon.InDesignMode) { // At design time we need to know when the user right clicks the gallery ContextClickController controller = new ContextClickController(); controller.ContextClick += OnContextClick; MouseController = controller; } // Create controller needed for handling focus and key tip actions _controller = new GalleryController(_ribbon, GroupGallery, this); SourceController = _controller; KeyController = _controller; // We need to rest visibility of the gallery for each layout cycle _ribbon.ViewRibbonManager.LayoutBefore += OnLayoutAction; _ribbon.ViewRibbonManager.LayoutAfter += OnLayoutAction; // Define back reference to view for the gallery definition GroupGallery.GalleryView = this; // Give paint delegate to gallery so its palette changes are redrawn GroupGallery.ViewPaintDelegate = needPaint; // Hook into changes in the ribbon custom definition GroupGallery.PropertyChanged += OnGalleryPropertyChanged; }
/// <summary> /// Initialize a new instance of the ViewDrawRibbonGroupCustom class. /// </summary> /// <param name="ribbon">Reference to owning ribbon control.</param> /// <param name="ribbonCustom">Reference to source custom definition.</param> /// <param name="needPaint">Delegate for notifying paint requests.</param> public ViewDrawRibbonGroupCustomControl(KryptonRibbon ribbon, KryptonRibbonGroupCustomControl ribbonCustom, NeedPaintHandler needPaint) { Debug.Assert(ribbon != null); Debug.Assert(ribbonCustom != null); Debug.Assert(needPaint != null); // Remember incoming references _ribbon = ribbon; GroupCustomControl = ribbonCustom; _needPaint = needPaint; _currentSize = GroupCustomControl.ItemSizeCurrent; // Hook into the custom control events GroupCustomControl.MouseEnterControl += OnMouseEnterControl; GroupCustomControl.MouseLeaveControl += OnMouseLeaveControl; // Associate this view with the source component (required for design time selection) Component = GroupCustomControl; if (_ribbon.InDesignMode) { // At design time we need to know when the user right clicks the label ContextClickController controller = new ContextClickController(); controller.ContextClick += OnContextClick; MouseController = controller; } // Create controller needed for handling focus and key tip actions _controller = new CustomControlController(_ribbon, GroupCustomControl, this); SourceController = _controller; KeyController = _controller; // We need to rest visibility of the custom control for each layout cycle _ribbon.ViewRibbonManager.LayoutBefore += OnLayoutAction; _ribbon.ViewRibbonManager.LayoutAfter += OnLayoutAction; // Provide back reference to the custom control definition GroupCustomControl.CustomControlView = this; // Give paint delegate to label so its palette changes are redrawn GroupCustomControl.ViewPaintDelegate = needPaint; // Hook into changes in the ribbon custom definition GroupCustomControl.PropertyChanged += OnCustomPropertyChanged; }
private void CreateMediumSmallLabelView() { // Create the layout docker for the contents of the label _viewMediumSmall = new ViewLayoutDocker(); if (_ribbon.InDesignMode) { // At design time we need to know when the user right clicks the label ContextClickController controller = new ContextClickController(); controller.ContextClick += OnContextClick; _viewMediumSmall.MouseController = controller; } // Create the image and drop down content _viewMediumSmallLabelImage = new ViewDrawRibbonGroupLabelImage(_ribbon, GroupLabel, false); _viewMediumSmallText1 = new ViewDrawRibbonGroupLabelText(_ribbon, GroupLabel, true); _viewMediumSmallText2 = new ViewDrawRibbonGroupLabelText(_ribbon, GroupLabel, false); _viewMediumSmallImage = new ViewLayoutRibbonCenterPadding(_smallImagePadding) { _viewMediumSmallLabelImage }; // Layout the content in the center of a row _viewMediumSmallCenter = new ViewLayoutRibbonRowCenter { _viewMediumSmallImage, _viewMediumSmallText1, _viewMediumSmallText2 }; // Use content as only fill item _viewMediumSmall.Add(_viewMediumSmallCenter, ViewDockStyle.Fill); // Create controller for intercepting events to determine tool tip handling _viewMediumSmall.MouseController = new ToolTipController(_ribbon.TabsArea.ButtonSpecManager.ToolTipManager, _viewMediumSmall, _viewMediumSmall.MouseController); }
private void CreateLargeLabelView() { // Create the layout docker for the contents of the label _viewLarge = new ViewLayoutDocker(); if (_ribbon.InDesignMode) { // At design time we need to know when the user right clicks the label ContextClickController controller = new ContextClickController(); controller.ContextClick += OnContextClick; _viewLarge.MouseController = controller; } // Add the large button at the top _viewLargeLabelImage = new ViewDrawRibbonGroupLabelImage(_ribbon, GroupLabel, true); _viewLargeImage = new ViewLayoutRibbonCenterPadding(_largeImagePadding) { _viewLargeLabelImage }; _viewLarge.Add(_viewLargeImage, ViewDockStyle.Top); // Add the first line of text _viewLargeText1 = new ViewDrawRibbonGroupLabelText(_ribbon, GroupLabel, true); _viewLarge.Add(_viewLargeText1, ViewDockStyle.Bottom); // Add the second line of text _viewLargeText2 = new ViewDrawRibbonGroupLabelText(_ribbon, GroupLabel, false); _viewLarge.Add(_viewLargeText2, ViewDockStyle.Bottom); // Add a 1 pixel separator at bottom of button before the text _viewLarge.Add(new ViewLayoutRibbonSeparator(1, false), ViewDockStyle.Bottom); // Create controller for intercepting events to determine tool tip handling _viewLarge.MouseController = new ToolTipController(_ribbon.TabsArea.ButtonSpecManager.ToolTipManager, _viewLarge, _viewLarge.MouseController); }