Пример #1
0
        public static void RefreshMenuContents(ToolStripMenuItem menuitem, IPoderosaMenuFolder contents)
        {
            //若干手抜きだが、VolatileContentsと混合していると比較が面倒。なので一つでもVolatileならリビルドしてしまう
            bool contains_volatile = false;

            foreach (IPoderosaMenuGroup grp in contents.ChildGroups)
            {
                if (grp.IsVolatileContent)
                {
                    contains_volatile = true;
                    break;
                }
            }

            if (contains_volatile)
            {
                menuitem.DropDownItems.Clear();
                BuildMenuContents(menuitem, contents);
            }
            else
            {
                foreach (ToolStripItem mi in menuitem.DropDownItems)
                {
                    MenuItemTag tag = mi.Tag as MenuItemTag;
                    if (tag != null)   //BarではTagなしだ
                    {
                        ToolStripMenuItem mi2 = mi as ToolStripMenuItem;
                        Debug.Assert(mi2 != null);
                        mi2.Enabled = tag.Menu.IsEnabled(tag.CommandTarget);
                        mi2.Checked = mi.Enabled ? tag.Menu.IsChecked(tag.CommandTarget) : false;
                    }
                }
            }
        }
Пример #2
0
        public static void RefreshMenuContents(ToolStripMenuItem menuitem, IPoderosaMenuFolder contents) {
            //若干手抜きだが、VolatileContentsと混合していると比較が面倒。なので一つでもVolatileならリビルドしてしまう
            bool contains_volatile = false;
            foreach (IPoderosaMenuGroup grp in contents.ChildGroups) {
                if (grp.IsVolatileContent) {
                    contains_volatile = true;
                    break;
                }
            }

            if (contains_volatile) {
                menuitem.DropDownItems.Clear();
                BuildMenuContents(menuitem, contents);
            }
            else {
                foreach (ToolStripItem mi in menuitem.DropDownItems) {
                    MenuItemTag tag = mi.Tag as MenuItemTag;
                    if (tag != null) { //BarではTagなしだ
                        ToolStripMenuItem mi2 = mi as ToolStripMenuItem;
                        Debug.Assert(mi2 != null);
                        mi2.Enabled = tag.Menu.IsEnabled(tag.CommandTarget);
                        mi2.Checked = mi.Enabled ? tag.Menu.IsChecked(tag.CommandTarget) : false;
                    }
                }
            }
        }
Пример #3
0
 //既存メニューの中身を構築:MainMenuItemおよび子のfolder用
 public static void BuildMenuContents(ToolStripMenuItem menuitem, IPoderosaMenuFolder contents) {
     ICommandTarget target = ((MenuItemTag)menuitem.Tag).CommandTarget;
     int count = 0;
     foreach (IPoderosaMenuGroup grp in contents.ChildGroups) {
         if (count > 0 && grp.ShowSeparator)
             menuitem.DropDownItems.Add(CreateBar()); //直前のグループに要素があるならデリミタを入れる
         count = BuildMenuContentsForGroup(menuitem.DropDownItems.Count, target, menuitem.DropDownItems, grp);
     }
 }
Пример #4
0
        //既存メニューの中身を構築:MainMenuItemおよび子のfolder用
        public static void BuildMenuContents(ToolStripMenuItem menuitem, IPoderosaMenuFolder contents)
        {
            ICommandTarget target = ((MenuItemTag)menuitem.Tag).CommandTarget;
            int            count  = 0;

            foreach (IPoderosaMenuGroup grp in contents.ChildGroups)
            {
                if (count > 0 && grp.ShowSeparator)
                {
                    menuitem.DropDownItems.Add(CreateBar()); //直前のグループに要素があるならデリミタを入れる
                }
                count = BuildMenuContentsForGroup(menuitem.DropDownItems.Count, target, menuitem.DropDownItems, grp);
            }
        }
Пример #5
0
 //EventHandler
 private static void OnPopupMenu(object sender, EventArgs args)
 {
     try {
         ToolStripMenuItem mi = sender as ToolStripMenuItem;
         if (mi.DropDownItems.Count == 0)
         {
             return; //子がなくてもイベントは発生してしまう模様
         }
         IPoderosaMenuFolder folder = ((MenuItemTag)mi.Tag).Menu as IPoderosaMenuFolder;
         Debug.Assert(folder != null);
         RefreshMenuContents(mi, folder);
     }
     catch (Exception ex) {
         RuntimeUtil.ReportException(ex);
     }
 }
Пример #6
0
        public static void RefreshMenuContents(ToolStripMenuItem menuitem, IPoderosaMenuFolder contents)
        {
            //�኱�蔲�������AVolatileContents�ƍ������Ă���Ɣ�r���ʓ|�B�Ȃ̂ň�‚ł�Volatile�Ȃ烊�r���h���Ă��܂�
            bool contains_volatile = false;
            foreach (IPoderosaMenuGroup grp in contents.ChildGroups) {
                if (grp.IsVolatileContent) {
                    contains_volatile = true;
                    break;
                }
            }

            if (contains_volatile) {
                menuitem.DropDownItems.Clear();
                BuildMenuContents(menuitem, contents);
            }
            else {
                foreach (ToolStripItem mi in menuitem.DropDownItems) {
                    MenuItemTag tag = mi.Tag as MenuItemTag;
                    if (tag != null) { //Bar�ł�Tag�Ȃ���
                        ToolStripMenuItem mi2 = mi as ToolStripMenuItem;
                        Debug.Assert(mi2 != null);
                        mi2.Enabled = tag.Menu.IsEnabled(tag.CommandTarget);
                        mi2.Checked = mi.Enabled ? tag.Menu.IsChecked(tag.CommandTarget) : false;
                    }
                }
            }
        }