Draws an design time only for adding a new item to a triple container.
Inheritance: ViewDrawRibbonDesignBase
Exemple #1
0
        private void SyncChildrenToRibbonGroupItems()
        {
            // Remove all child elements
            Clear();

            ItemToView regenerate = new ItemToView();

            // Add a view element for each group item
            foreach (IRibbonGroupItem item in _ribbonTriple.Items)
            {
                ViewBase itemView;

                // Do we already have a view for this item definition
                if (_itemToView.ContainsKey(item))
                {
                    itemView = _itemToView[item];

                    // Remove from lookup as we do not want to delete this view
                    _itemToView.Remove(item);
                }
                else
                {
                    // Ask the item definition to return an appropriate view
                    itemView = item.CreateView(_ribbon, _needPaint);
                }

                // Update the visible state of the item
                itemView.Visible = _ribbon.InDesignHelperMode || item.Visible;

                // We need to keep this association
                regenerate.Add(item, itemView);

                Add(itemView);
            }

            // When in design time help mode and there is room for another item
            if (_ribbon.InDesignHelperMode && (Count < 3))
            {
                // Create the design time 'Add Tab' first time it is needed
                if (_viewAddItem == null)
                {
                    _viewAddItem = new ViewDrawRibbonDesignGroupTriple(_ribbon,
                                                                       _ribbonTriple,
                                                                       _currentSize,
                                                                       _needPaint);
                }

                // Always add at end of the list of items
                Add(_viewAddItem);
            }

            // Dispose of all the items no longer needed
            foreach (ViewBase view in _itemToView.Values)
            {
                view.Dispose();
            }

            // Use the latest hashtable
            _itemToView = regenerate;
        }