Пример #1
0
		public static IEnumerable<ButtonItem> GetBrowserButtons(SubItemsCollection ribbonItems)
		{
			var buttonItems = new List<ButtonItem>();
			foreach (var item in ribbonItems)
			{

				if (item is ButtonItem && ((ButtonItem)item).Tag != null)
				{
					buttonItems.Add((ButtonItem)item);
				}
				else
				{
					var sub = item as BaseItem;
					if (sub == null) continue;
					if (sub.SubItems.Count > 0)
						buttonItems.AddRange(GetBrowserButtons(sub.SubItems));
				}
			}
			return buttonItems;
		}
Пример #2
0
 private int GetVisibleItemsCount(SubItemsCollection displayCollection)
 {
     int c = 0;
     foreach (BaseItem item in displayCollection)
     {
         if (item.Visible) c++;
     }
     return c;
 }
Пример #3
0
 private BaseItem GetFirstVisibleReverse(SubItemsCollection col, int startIndex)
 {
     if (col.Count == 0) return null;
     if (startIndex >= col.Count) startIndex = col.Count - 1;
     for (int i = startIndex; i >= 0; i--)
     {
         if (col[i].Visible)
             return col[i];
     }
     return null;
 }
Пример #4
0
		/// <summary>
		/// Releases all resurces used in this control. After calling Dispose()
		/// object is not in valid state and cannot be recovered to the valid state.
		/// Recreation of the object is required.
		/// </summary>
		protected override void Dispose(bool disposing)
		{
			if(m_Expanded && (this.Site!=null && !this.Site.DesignMode || this.Site==null))
				this.Expanded=false;
			
			HideToolTip();

			if(m_Parent!=null)
			{
				m_Parent=null;
			}
			IOwner owner=this.GetOwner() as IOwner;
			if(owner!=null)
				owner.RemoveShortcutsFromItem(this);

			if(this.Site==null || this.Site!=null && !this.Site.DesignMode)
			{
				if(m_SubItems!=null && m_SubItems.Count>0)
				{
					ArrayList subitems=new ArrayList(m_SubItems.Count);
					m_SubItems.CopyTo(subitems);
					foreach(BaseItem objSub in subitems)
					{
						if(objSub.Parent==this)
							objSub.Dispose();
					}
					m_SubItems._Clear();
				}
				m_SubItems=null;
			}

            //if(Disposed != null)
            //    Disposed(this,EventArgs.Empty);

			if(this.Site==null || this.Site!=null && !this.Site.DesignMode)
			{
				if(m_Shortcuts!=null)
					m_Shortcuts=null;
				//m_ItemData=null;
				m_ContainerControl=null;
			}

            if (_Command != null)
                this.Command = null;

            if (m_TextMarkup != null)
            {
                m_TextMarkup.HyperLinkClick -= TextMarkupLinkClick;
                m_TextMarkup = null;
            }

            m_IsDisposed = true;

            base.Dispose(disposing);
		}
Пример #5
0
		/// <summary>
		/// Creates new instance of BaseItem and assigns item name and item text.
		/// </summary>
		/// <param name="sItemName">Item Name</param>
		/// <param name="ItemText">Item Text</param>
		public BaseItem(string sItemName, string ItemText)
		{
            if (ItemText == null)
                ItemText = "";
			m_Text=ItemText;
			if(m_Text!="")
				m_AccessKey=NativeFunctions.GetAccessKey(m_Text);
			m_Rect=System.Drawing.Rectangle.Empty;
			m_ContainerControl=null;
			m_HotSubItem=null;
			m_IsContainer=false;
			m_SubItems=null;
			m_Parent=null;
			m_NeedRecalcSize=true;
			m_Visible=true;
			m_Expanded=false;
			m_AutoExpand=false;
			m_ItemData="";
			m_Enabled=true;
			m_BeginGroup=false;
			m_Style=eDotNetBarStyle.OfficeXP;
			m_Description="";
			m_Tooltip="";
			m_Name=sItemName;
			m_Category="";
			m_Orientation=eOrientation.Horizontal;
			m_ToolTipWnd=null;
			m_Id=++s_IdCounter;
			m_IsOnCustomizeMenu=false;
			m_IsOnCustomizeDialog=false;
			m_SystemItem=false;
			//m_AccessKey=;
			m_Shortcuts=null;
			m_DesignMode=false;
			m_CanCustomize=true;
			m_ShowSubItems=true;
			m_ItemAlignment=eItemAlignment.Near;
			m_Focused=false;
			m_Owner=null;
            MarkupTextChanged();
        }
Пример #6
0
        private static void GetSelectedItems(System.Collections.Generic.List<BaseItem> items, SubItemsCollection itemsCollection)
        {
            foreach (BaseItem item in itemsCollection)
            {
                if (item is ItemContainer)
                {
                    GetSelectedItems(items, item.SubItems);
                    continue;
                }
                ButtonItem button = item as ButtonItem;
                if (button != null && button.Checked)
                    items.Add(button);
                else
                {
                    CheckBoxItem cb = item as CheckBoxItem;
                    if (cb != null && cb.Checked)
                        items.Add(cb);
                    else if (item is DevComponents.DotNetBar.Metro.MetroTileItem && ((DevComponents.DotNetBar.Metro.MetroTileItem)item).Checked)
                        items.Add(item);

                }
            }
        }
Пример #7
0
 private void SetTextColor(SubItemsCollection subItems)
 {
     foreach (BaseItem item in subItems)
     {
         if (item is ButtonItem)
         {
             ((ButtonItem)item).ForeColor = _TextColor;
             ((ButtonItem)item).HotForeColor = _TextColor;
         }
         else if (item is LabelItem)
             ((LabelItem)item).ForeColor = _TextColor;
         else if (item is ItemContainer)
             SetTextColor(item.SubItems);
     }
 }
Пример #8
0
        /// <summary>
        /// Applies the Quick Access Toolbar customization changes made on QatCustomizePanel to the Ribbon Control Quick Access Toolbar. Note that QatCustomizePanel.DataChanged property indicates whether user made any changes to the data on the panel.
        /// </summary>
        /// <param name="customizePanel">Reference to the QatCustomizePanel</param>
        public void ApplyQatCustomizePanelChanges(Ribbon.QatCustomizePanel customizePanel)
        {
            if (customizePanel == null || !customizePanel.DataChanged) return;
            m_RibbonStrip.BeginUpdate();
            try
            {
                ItemPanel itemPanelQat = customizePanel.itemPanelQat;

                int start = 0;
                BaseItem startButton = GetApplicationButton();
                if (startButton != null)
                    start = this.QuickToolbarItems.IndexOf(startButton) + 1;

                ArrayList removeList = new ArrayList();
                SubItemsCollection qatList = new SubItemsCollection(null);

                for (int i = start; i < this.QuickToolbarItems.Count; i++)
                {
                    BaseItem item = this.QuickToolbarItems[i];
                    if (IsSystemItem(item))
                        continue;

                    if (!itemPanelQat.Items.Contains(item.Name))
                        removeList.Add(item);
                    else
                        qatList._Add(item);
                }

                foreach (BaseItem item in removeList)
                    this.QuickToolbarItems.Remove(item);
                foreach (BaseItem item in qatList)
                    this.QuickToolbarItems.Remove(item);

                foreach (BaseItem item in itemPanelQat.Items)
                {
                    // Already exists on Quick Access Toolbar
                    if (item.Tag != null)
                    {
                        BaseItem copy = GetQatItemCopy(item.Tag as BaseItem);
                        this.QuickToolbarItems.Add(copy);
                    }
                    else
                    {
                        BaseItem qatItem = qatList[item.Name];
                        if (qatItem != null)
                            this.QuickToolbarItems.Add(qatItem);
                    }
                }

                m_QatLayoutChanged = true;
            }
            finally
            {
                m_RibbonStrip.EndUpdate();
            }
            if (customizePanel.checkQatBelowRibbon.Checked != m_QatPositionedBelow)
                QuickAccessToolbarChangePlacement();

            OnAfterQatDialogChangesApplied();
        }
Пример #9
0
        /// <summary>
        /// Loads all items into the TabMenu
        /// </summary>
        /// <param name="tabs"></param>
        private void LoadItemsMenu(SubItemsCollection tabs)
        {
            ButtonItem[] items = new ButtonItem[tabs.Count];

            for (int i = 0; i < tabs.Count; i++)
            {
                if (tabs[i].Visible == true)
                {
                    items[i] = new ButtonItem();

                    items[i].Tag = tabs[i];
                    items[i].Text = tabs[i].Text;

                    if (tabs[i].Enabled == true)
                        items[i].Click += SuperTabMenuBoxClick;
                    else
                        items[i].Enabled = false;

                    if (_ShowImages == true)
                    {
                        if (tabs[i] is SuperTabItem)
                            SetMenuImage(items[i], ((SuperTabItem) tabs[i]).GetTabImage());

                        else if (tabs[i] is ButtonItem)
                            SetMenuImage(items[i], ((ButtonItem) tabs[i]).GetImage());
                    }
                }
            }

            int index = _ControlBox.TabDisplay.TabStripItem.SelectedTabIndex;

            if (index >= 0 && index < tabs.Count)
                items[index].Checked = true;

            SubItems.AddRange(items);
        }
Пример #10
0
        /// <summary>
        /// Loads Tabs only into the TabMenu
        /// </summary>
        /// <param name="tabs"></param>
        private void LoadTabsMenu(SubItemsCollection tabs)
        {
            for (int i = 0; i < tabs.Count; i++)
            {
                SuperTabItem tab = tabs[i] as SuperTabItem;

                if (tab != null && tab.Visible == true)
                {
                    ButtonItem bi = new ButtonItem();

                    bi.Tag = tab;
                    bi.Text = tab.Text;

                    if (tab.Enabled == true)
                        bi.Click += SuperTabMenuBoxClick;
                    else
                        bi.Enabled = false;

                    SubItems.Add(bi);

                    if (_ShowImages == true)
                        SetMenuImage(bi, tab.GetTabImage());

                    if (tab.IsSelected == true)
                        bi.Checked = true;
                }
            }
        }
Пример #11
0
 private int GetTabYPosition(SubItemsCollection c)
 {
     foreach (BaseItem item in c)
     {
         if (item is RibbonTabItem && item.Visible)
         {
             return item.Bounds.Top;
         }
     }
     return -1;
 }
Пример #12
0
        /// <summary>
        /// Adds the items that are not visible to the overflow popup.
        /// </summary>
		protected virtual void AddItems()
		{
			if(m_SubItems==null)
			{
				m_SubItems=new SubItemsCollection(this);
			}

			m_OldOrientation=this.Orientation;
			foreach(BaseItem objItem in m_Parent.SubItems)
			{
				if(!objItem.Displayed && objItem.Visible)
				{
					m_SubItems._Add(objItem);
					ImageItem objImageItem=objItem as ImageItem;
					if(objImageItem!=null)
					{
						if(objImageItem.ImageSize.Width>this.SubItemsImageSize.Width)
							this.SubItemsImageSize=new Size(objImageItem.ImageSize.Width,this.SubItemsImageSize.Height);
						if(objImageItem.ImageSize.Height>this.SubItemsImageSize.Height)
							this.SubItemsImageSize=new Size(this.SubItemsImageSize.Width,objImageItem.ImageSize.Height);
					}
				}
			}
			
			foreach(BaseItem objItem in m_SubItems)
			{
				object objItemContainer=objItem.ContainerControl;
				m_Parent.SubItems._Remove(objItem);
				objItem.SetOrientation(eOrientation.Horizontal);
				objItem.SetParent(this);
				objItem.ContainerControl=null;
				objItem.OnContainerChanged(objItemContainer);
			}
			NeedRecalcSize=true;
		}
Пример #13
0
 internal static void InvalidateFontChange(SubItemsCollection col)
 {
     foreach (BaseItem item in col)
     {
         InvalidateFontChange(item);
     }
 }