Пример #1
0
        /// <summary>
        /// Initialize a new instance of the ViewLayoutRibbonGroupLines class.
        /// </summary>
        /// <param name="ribbon">Owning ribbon control instance.</param>
        /// <param name="ribbonLines">Reference to lines definition.</param>
        /// <param name="needPaint">Delegate for notifying paint requests.</param>
        public ViewLayoutRibbonGroupLines(KryptonRibbon ribbon,
                                          KryptonRibbonGroupLines ribbonLines,
                                          NeedPaintHandler needPaint)
        {
            Debug.Assert(ribbon != null);
            Debug.Assert(ribbonLines != null);
            Debug.Assert(needPaint != null);

            // Cache references
            _ribbon      = ribbon;
            _ribbonLines = ribbonLines;
            _needPaint   = needPaint;

            // Associate the component with this view element for design time selection
            Component = _ribbonLines;

            // Use hashtable to store relationships
            _itemToView      = new ItemToView();
            _viewToItem      = new ViewToItem();
            _sizeLargeList   = new SizeList();
            _sizeMediumList  = new SizeList();
            _sizeSmallList   = new SizeList();
            _viewLargeList   = new ViewList();
            _viewMediumList  = new ViewList();
            _viewSmallList   = new ViewList();
            _viewToLargeGap  = new ViewToGap();
            _viewToMediumGap = new ViewToGap();
            _viewToSmallGap  = new ViewToGap();

            // Get the initial size used for sizing and positioning
            ApplySize(ribbonLines.ItemSizeCurrent);

            // Hook into changes in the ribbon triple definition
            _ribbonLines.PropertyChanged += new PropertyChangedEventHandler(OnLinesPropertyChanged);
            _ribbonLines.LinesView        = this;

            // At design time we want to track the mouse and show feedback
            if (_ribbon.InDesignMode)
            {
                ViewHightlightController controller = new ViewHightlightController(this, needPaint);
                controller.ContextClick += new MouseEventHandler(OnContextClick);
                MouseController          = controller;
            }
        }
Пример #2
0
        private void ApplySize(GroupItemSize size)
        {
            CurrentSize = size;
            GroupItemSize itemSize = GroupItemSize.Medium;

            switch (size)
            {
            case GroupItemSize.Large:
                _sizeList  = _sizeLargeList;
                _viewList  = _viewLargeList;
                _viewToGap = _viewToLargeGap;
                itemSize   = GroupItemSize.Medium;
                break;

            case GroupItemSize.Medium:
                _sizeList  = _sizeMediumList;
                _viewList  = _viewMediumList;
                _viewToGap = _viewToMediumGap;
                itemSize   = GroupItemSize.Small;
                break;

            case GroupItemSize.Small:
                _sizeList  = _sizeSmallList;
                _viewList  = _viewSmallList;
                _viewToGap = _viewToSmallGap;
                itemSize   = GroupItemSize.Small;
                break;

            default:
                // Should never happen!
                Debug.Assert(false);
                break;
            }

            foreach (ViewBase item in this)
            {
                IRibbonViewGroupItemView viewItem = item as IRibbonViewGroupItemView;
                if (viewItem != null)
                {
                    viewItem.SetGroupItemSize(itemSize);
                }
            }
        }