예제 #1
0
        public ActionStripItem AddItem(string ActionName)
        {
            ActionStripItem Item = new ActionStripItem(ActionName);

            Items.Add(Item);
            return(Item);
        }
예제 #2
0
        public ActionStripItem AddSub(string Name, string Caption)
        {
            ActionStripItem Item = new ActionStripItem(Name, Caption);

            Items.Add(Item);
            return(Item);
        }
예제 #3
0
        public ActionStripItem AddItem()
        {
            ActionStripItem Item = new ActionStripItem();

            Items.Add(Item);
            return(Item);
        }
예제 #4
0
        //////////////////////////////////////////////////////////////////////////
        private ToolStripItem CreateComboItem(ActionStripItem Item, Action Act, bool AsMenu)
        {
            ToolStripComboBox NewItem = new ToolStripComboBox();

            NewItem.AutoToolTip = false;
            if (!AsMenu)
            {
                NewItem.ToolTipText = Act.Attr.Tooltip;
            }

            NewItem.SelectedIndexChanged += delegate(object sender, EventArgs e)
            {
                if (((ToolStripComboBox)sender).DropDownStyle == ComboBoxStyle.DropDownList)
                {
                    ActContext.Invoke(Act.Name, sender);
                    ((ToolStripItem)sender).PerformClick();
                }
            };

            NewItem.KeyDown += delegate(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    ActContext.Invoke(Act.Name, sender);
                    ((ToolStripItem)sender).PerformClick();
                }
            };

            return(NewItem);
        }
 //////////////////////////////////////////////////////////////////////////
 public void AddToolStrip(ActionStripItem Root, ToolStripItemCollection Items, bool AsMenu)
 {
     foreach(ManagedToolStrip Strip in ManagedStrips)
     {
         if(Strip.Items==Items)
         {
             ManagedStrips.Remove(Strip);
             break;
         }
     }
     ManagedStrips.Add(new ManagedToolStrip(Root, Items, AsMenu));
 }
예제 #6
0
 //////////////////////////////////////////////////////////////////////////
 public void AddToolStrip(ActionStripItem Root, ToolStripItemCollection Items, bool AsMenu)
 {
     foreach (ManagedToolStrip Strip in ManagedStrips)
     {
         if (Strip.Items == Items)
         {
             ManagedStrips.Remove(Strip);
             break;
         }
     }
     ManagedStrips.Add(new ManagedToolStrip(Root, Items, AsMenu));
 }
예제 #7
0
        //////////////////////////////////////////////////////////////////////////
        private ToolStripItem CreateLabelItem(ActionStripItem Item, Action Act, bool AsMenu)
        {
            if (AsMenu)
            {
                return(null);
            }

            ToolStripLabel NewItem = new ToolStripLabel(Act.Attr.Caption + ":");

            NewItem.Tag = Act.Name;
            return(NewItem);
        }
        //////////////////////////////////////////////////////////////////////////
        public ActionStripItem DefineStandardMenu()
        {
            ActionStripItem Root = new ActionStripItem();

                ActionStripItem FileMenu = Root.AddSub("FileMenu", "File");
                    FileMenu.AddItem("File.New");
                    FileMenu.AddItem("File.Open");
                    FileMenu.AddItem();
                    FileMenu.AddItem("File.Save");
                    FileMenu.AddItem("File.SaveAs");
                    FileMenu.AddItem();
                    FileMenu.AddItem("File.Exit");

            return Root;
        }
예제 #9
0
        //////////////////////////////////////////////////////////////////////////
        public ActionStripItem DefineStandardMenu()
        {
            ActionStripItem Root = new ActionStripItem();

            ActionStripItem FileMenu = Root.AddSub("FileMenu", "File");

            FileMenu.AddItem("File.New");
            FileMenu.AddItem("File.Open");
            FileMenu.AddItem();
            FileMenu.AddItem("File.Save");
            FileMenu.AddItem("File.SaveAs");
            FileMenu.AddItem();
            FileMenu.AddItem("File.Exit");

            return(Root);
        }
예제 #10
0
        //////////////////////////////////////////////////////////////////////////
        private ToolStripItem CreateToggleItem(ActionStripItem Item, Action Act, bool AsMenu)
        {
            ToolStripItem NewItem = CreateButtonItem(Item, Act, AsMenu);

            if (NewItem != null)
            {
                if (AsMenu)
                {
                    ((ToolStripMenuItem)NewItem).CheckOnClick = true;
                }
                else
                {
                    ((ToolStripButton)NewItem).CheckOnClick = true;
                }
            }
            return(NewItem);
        }
        //////////////////////////////////////////////////////////////////////////
        public ActionStripItem DefineTestMenu()
        {
            ActionStripItem Root = new ActionStripItem();

                ActionStripItem FileMenu = Root.AddSub("FileMenu", "File");
                    FileMenu.AddItem("Test.Action1");
                    FileMenu.AddItem();
                    FileMenu.AddItem();
                    FileMenu.AddItem("Test.Action2");
                    FileMenu.AddItem("Test.Action3");
                    FileMenu.AddItem();
                    FileMenu.AddItem();
                Root.AddItem("Test.Action2");
                Root.AddItem();
                Root.AddItem("Test.Action3");

            return Root;
        }
예제 #12
0
        //////////////////////////////////////////////////////////////////////////
        public ActionStripItem DefineTestMenu()
        {
            ActionStripItem Root = new ActionStripItem();

            ActionStripItem FileMenu = Root.AddSub("FileMenu", "File");

            FileMenu.AddItem("Test.Action1");
            FileMenu.AddItem();
            FileMenu.AddItem();
            FileMenu.AddItem("Test.Action2");
            FileMenu.AddItem("Test.Action3");
            FileMenu.AddItem();
            FileMenu.AddItem();
            Root.AddItem("Test.Action2");
            Root.AddItem();
            Root.AddItem("Test.Action3");

            return(Root);
        }
예제 #13
0
        //////////////////////////////////////////////////////////////////////////
        private ToolStripItem CreateEditorItem(ActionStripItem Item, Action Act, bool AsMenu)
        {
            ToolStripTextBox NewItem = new ToolStripTextBox();

            NewItem.AutoToolTip = false;
            if (!AsMenu)
            {
                NewItem.ToolTipText = Act.Attr.Tooltip;
            }

            NewItem.KeyDown += delegate(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    ActContext.Invoke(Act.Name, sender);
                    ((ToolStripItem)sender).PerformClick();
                }
            };

            return(NewItem);
        }
        //////////////////////////////////////////////////////////////////////////
        private ToolStripItem CreateComboItem(ActionStripItem Item, Action Act, bool AsMenu)
        {
            ToolStripComboBox NewItem = new ToolStripComboBox();
            NewItem.AutoToolTip = false;
            if(!AsMenu) NewItem.ToolTipText = Act.Attr.Tooltip;

            NewItem.SelectedIndexChanged += delegate(object sender, EventArgs e)
            {
                if (((ToolStripComboBox)sender).DropDownStyle == ComboBoxStyle.DropDownList)
                {
                    ActContext.Invoke(Act.Name, sender);
                    ((ToolStripItem)sender).PerformClick();
                }
            };

            NewItem.KeyDown += delegate(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    ActContext.Invoke(Act.Name, sender);
                    ((ToolStripItem)sender).PerformClick();
                }
            };

            return NewItem;
        }
        //////////////////////////////////////////////////////////////////////////
        private ToolStripItem CreateEditorItem(ActionStripItem Item, Action Act, bool AsMenu)
        {
            ToolStripTextBox NewItem = new ToolStripTextBox();
            NewItem.AutoToolTip = false;
            if (!AsMenu) NewItem.ToolTipText = Act.Attr.Tooltip;

            NewItem.KeyDown += delegate(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    ActContext.Invoke(Act.Name, sender);
                    ((ToolStripItem)sender).PerformClick();
                }
            };

            return NewItem;
        }
예제 #16
0
        //////////////////////////////////////////////////////////////////////////
        private ToolStripItem CreateButtonItem(ActionStripItem Item, Action Act, bool AsMenu, bool SplitButton)
        {
            if (AsMenu)
            {
                ToolStripMenuItem NewItem = new ToolStripMenuItem(Act.Attr.Caption);
                if (Act.Icon != null)
                {
                    NewItem.Image = Act.Icon;
                    NewItem.ImageTransparentColor = Color.Magenta;
                }
                NewItem.AutoToolTip = false;

                NewItem.ShortcutKeys = Act.Attr.ShortcutKeys;

                // click event
                NewItem.Click += delegate(object sender, EventArgs e)
                {
                    ActContext.Invoke(Act.Name, sender);
                };

                return(NewItem);
            }
            else
            {
                ToolStripItem NewItem;
                if (SplitButton)
                {
                    NewItem = new ToolStripSplitButton(Act.Attr.Caption);
                }
                else
                {
                    NewItem = new ToolStripButton(Act.Attr.Caption);
                }

                if (Act.Icon != null)
                {
                    NewItem.Image = Act.Icon;
                    NewItem.ImageTransparentColor = Color.Magenta;
                }
                NewItem.ToolTipText = Act.Attr.Tooltip;

                switch (Act.Attr.DisplayType)
                {
                case DisplayType.Image:
                    NewItem.DisplayStyle = ToolStripItemDisplayStyle.Image;
                    break;

                case DisplayType.Text:
                    NewItem.DisplayStyle = ToolStripItemDisplayStyle.Text;
                    break;

                case DisplayType.ImageAndText:
                    NewItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
                    break;
                }

                if (NewItem is ToolStripSplitButton)
                {
                    ((ToolStripSplitButton)NewItem).ButtonClick += delegate(object sender, EventArgs e)
                    {
                        ActContext.Invoke(Act.Name, sender);
                    };
                }
                else
                {
                    NewItem.Click += delegate(object sender, EventArgs e)
                    {
                        ActContext.Invoke(Act.Name, sender);
                    };
                }

                return(NewItem);
            }
        }
        //////////////////////////////////////////////////////////////////////////
        private ToolStripItem CreateLabelItem(ActionStripItem Item, Action Act, bool AsMenu)
        {
            if (AsMenu) return null;

            ToolStripLabel NewItem = new ToolStripLabel(Act.Attr.Caption + ":");
            NewItem.Tag = Act.Name;
            return NewItem;
        }
 public ActionStripItem AddSub(string Name, string Caption)
 {
     ActionStripItem Item = new ActionStripItem(Name, Caption);
     Items.Add(Item);
     return Item;
 }
예제 #19
0
 //////////////////////////////////////////////////////////////////////////
 private ToolStripItem CreateButtonItem(ActionStripItem Item, Action Act, bool AsMenu)
 {
     return(CreateButtonItem(Item, Act, AsMenu, false));
 }
예제 #20
0
 //////////////////////////////////////////////////////////////////////////
 private void PopulateToolStrip(ActionStripItem Root, ToolStripItemCollection Items, bool AsMenu)
 {
     Items.Clear();
     AddStripItems(ActContext.ActiveObjects, Root, Items, AsMenu);
 }
예제 #21
0
        //////////////////////////////////////////////////////////////////////////
        private void AddStripItems(List <IActionProvider> ActiveObjects, ActionStripItem Root, ToolStripItemCollection Items, bool AsMenu)
        {
            foreach (ActionStripItem Item in Root.Items)
            {
                // is it a container?
                if (Item.Items.Count > 0)
                {
                    // add subitem
                    if (AsMenu)
                    {
                        ToolStripMenuItem Submenu = new ToolStripMenuItem(Item.Caption);
                        AddStripItems(ActiveObjects, Item, Submenu.DropDownItems, true);

                        Items.Add(Submenu);
                    }
                    else
                    {
                        // TODO: DropDown / SplitButton
                        if (Item.Caption == String.Empty)
                        {
                            ToolStripSplitButton Btn = (ToolStripSplitButton)CreateButtonItem(Item.Items[0], ActionManager.GetAction(Item.Items[0].ActionName, ActiveObjects), AsMenu, true);
                            AddStripItems(ActiveObjects, Item, Btn.DropDownItems, true);
                            Items.Add(Btn);
                        }
                        else
                        {
                            ToolStripDropDownButton Btn = new ToolStripDropDownButton(Item.Caption);
                            AddStripItems(ActiveObjects, Item, Btn.DropDownItems, true);
                            Items.Add(Btn);
                        }
                    }
                }
                // normal item
                else
                {
                    // separator
                    if (Item.ActionName == String.Empty)
                    {
                        Items.Add(new ToolStripSeparator());
                        continue;
                    }

                    // no action, no toolstrip item
                    Action Act = ActionManager.GetAction(Item.ActionName, ActiveObjects);
                    if (Act == null)
                    {
                        continue;
                    }

                    // regular action
                    ToolStripItem NewItem = null;
                    switch (Act.Attr.Type)
                    {
                    case ActionType.Button:
                        NewItem = CreateButtonItem(Item, Act, AsMenu);
                        break;

                    case ActionType.Toggle:
                        NewItem = CreateToggleItem(Item, Act, AsMenu);
                        break;

                    case ActionType.Combo:
                        if (Act.Attr.DisplayLabel && !AsMenu)
                        {
                            ToolStripItem Label = CreateLabelItem(Item, Act, AsMenu);
                            if (Label != null)
                            {
                                Items.Add(Label);
                            }
                        }
                        NewItem = CreateComboItem(Item, Act, AsMenu);
                        break;

                    case ActionType.Editor:
                        if (Act.Attr.DisplayLabel)
                        {
                            ToolStripItem Label = CreateLabelItem(Item, Act, AsMenu);
                            if (Label != null)
                            {
                                Items.Add(Label);
                            }
                        }
                        NewItem = CreateEditorItem(Item, Act, AsMenu);
                        break;

                    case ActionType.Custom:
                        ActContext.CustomBuild(Act.Name, Items, AsMenu);
                        break;
                    }
                    if (NewItem != null)
                    {
                        NewItem.Tag = Act.Name;
                        Items.Add(NewItem);

                        ActContext.Initialize(Act.Name, NewItem);
                    }
                }
            }

            WeedSeparators(Items, true);
        }
예제 #22
0
 public ManagedToolStrip(ActionStripItem RootItem, ToolStripItemCollection Items, bool AsMenu)
 {
     this.RootItem = RootItem;
     this.Items    = Items;
     this.AsMenu   = AsMenu;
 }
 //////////////////////////////////////////////////////////////////////////
 private void PopulateToolStrip(ActionStripItem Root, ToolStripItemCollection Items, bool AsMenu)
 {
     Items.Clear();
     AddStripItems(ActContext.ActiveObjects, Root, Items, AsMenu);
 }
 //////////////////////////////////////////////////////////////////////////
 private ToolStripItem CreateButtonItem(ActionStripItem Item, Action Act, bool AsMenu)
 {
     return CreateButtonItem(Item, Act, AsMenu, false);
 }
 public ManagedToolStrip(ActionStripItem RootItem, ToolStripItemCollection Items, bool AsMenu)
 {
     this.RootItem = RootItem;
     this.Items = Items;
     this.AsMenu = AsMenu;
 }
 public ActionStripItem AddItem(string ActionName)
 {
     ActionStripItem Item = new ActionStripItem(ActionName);
     Items.Add(Item);
     return Item;
 }
        //////////////////////////////////////////////////////////////////////////
        private ToolStripItem CreateButtonItem(ActionStripItem Item, Action Act, bool AsMenu, bool SplitButton)
        {
            if (AsMenu)
            {
                ToolStripMenuItem NewItem = new ToolStripMenuItem(Act.Attr.Caption);
                if (Act.Icon != null)
                {
                    NewItem.Image = Act.Icon;
                    NewItem.ImageTransparentColor = Color.Magenta;
                }
                NewItem.AutoToolTip = false;

                NewItem.ShortcutKeys = Act.Attr.ShortcutKeys;

                // click event
                NewItem.Click += delegate(object sender, EventArgs e)
                {
                    ActContext.Invoke(Act.Name, sender);
                };

                return NewItem;
            }
            else
            {
                ToolStripItem NewItem;
                if (SplitButton) NewItem = new ToolStripSplitButton(Act.Attr.Caption);
                else NewItem = new ToolStripButton(Act.Attr.Caption);

                if (Act.Icon != null)
                {
                    NewItem.Image = Act.Icon;
                    NewItem.ImageTransparentColor = Color.Magenta;
                }
                NewItem.ToolTipText = Act.Attr.Tooltip;

                switch(Act.Attr.DisplayType)
                {
                    case DisplayType.Image:
                        NewItem.DisplayStyle = ToolStripItemDisplayStyle.Image;
                        break;

                    case DisplayType.Text:
                        NewItem.DisplayStyle = ToolStripItemDisplayStyle.Text;
                        break;

                    case DisplayType.ImageAndText:
                        NewItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
                        break;
                }

                if (NewItem is ToolStripSplitButton)
                {
                    ((ToolStripSplitButton)NewItem).ButtonClick += delegate(object sender, EventArgs e)
                    {
                        ActContext.Invoke(Act.Name, sender);
                    };
                }
                else
                {
                    NewItem.Click += delegate(object sender, EventArgs e)
                    {
                        ActContext.Invoke(Act.Name, sender);
                    };
                }

                return NewItem;
            }
        }
 //////////////////////////////////////////////////////////////////////////
 private ToolStripItem CreateToggleItem(ActionStripItem Item, Action Act, bool AsMenu)
 {
     ToolStripItem NewItem = CreateButtonItem(Item, Act, AsMenu);
     if (NewItem!=null)
     {
         if (AsMenu)
         {
             ((ToolStripMenuItem)NewItem).CheckOnClick = true;
         }
         else
         {
             ((ToolStripButton)NewItem).CheckOnClick = true;
         }
     }
     return NewItem;
 }
        //////////////////////////////////////////////////////////////////////////
        public ActionStripItem DefineMainToolbar()
        {
            ActionStripItem Root = new ActionStripItem();

            Root.AddItem("File.New");
            Root.AddItem("File.Open");
            Root.AddItem("File.Save");
            Root.AddItem();
            Root.AddItem("Edit.Undo");
            Root.AddItem("Edit.Redo");
            Root.AddItem();
            Root.AddItem("Edit.Cut");
            Root.AddItem("Edit.Copy");
            Root.AddItem("Edit.Paste");
            Root.AddItem("Document.DeleteItem");
            Root.AddItem();
            Root.AddItem("Document.AddNone");
            Root.AddItem();
            Root.AddItem("Document.AddButton");
            Root.AddItem("Document.AddStatic");
            Root.AddItem("Document.AddEditor");
            Root.AddItem("Document.AddEntity");
            Root.AddItem();
            Root.AddItem("Document.AddWindow");
            Root.AddItem();
            Root.AddItem();
            Root.AddItem("Document.Refresh");

            return Root;
        }
 public ActionStripItem AddItem()
 {
     ActionStripItem Item = new ActionStripItem();
     Items.Add(Item);
     return Item;
 }
        //////////////////////////////////////////////////////////////////////////
        public ActionStripItem DefineMainMenu()
        {
            ActionStripItem Root = new ActionStripItem();

            ActionStripItem FileMenu = Root.AddSub("FileMenu", "File");
            FileMenu.AddItem("File.New");
            FileMenu.AddItem("File.Open");
            FileMenu.AddItem("File.Save");
            FileMenu.AddItem("File.SaveAs");
            FileMenu.AddItem();
            FileMenu.AddItem("File.RecentFiles");
            FileMenu.AddItem();
            FileMenu.AddItem("File.AppClose");

            ActionStripItem EditMenu = Root.AddSub("EditMenu", "Edit");
            EditMenu.AddItem("Edit.Undo");
            EditMenu.AddItem("Edit.Redo");
            EditMenu.AddItem();
            EditMenu.AddItem("Edit.Cut");
            EditMenu.AddItem("Edit.Copy");
            EditMenu.AddItem("Edit.Paste");
            EditMenu.AddItem("Document.DeleteItem");

            ActionStripItem ControlMenu = Root.AddSub("ControlMenu", "Controls");
            ControlMenu.AddItem("Document.AddNone");
            ControlMenu.AddItem();
            ControlMenu.AddItem("Document.AddButton");
            ControlMenu.AddItem("Document.AddStatic");
            ControlMenu.AddItem("Document.AddEditor");
            ControlMenu.AddItem("Document.AddEntity");
            ControlMenu.AddItem();
            ControlMenu.AddItem("Document.AddWindow");

            ActionStripItem ToolsMenu = Root.AddSub("ToolsMenu", "Tools");
            ToolsMenu.AddItem("Tools.Options");

            ActionStripItem HelpMenu = Root.AddSub("HelpMenu", "Help");
            HelpMenu.AddItem("Help.Contents");
            HelpMenu.AddItem();
            HelpMenu.AddItem("Help.About");

            return Root;
        }
        //////////////////////////////////////////////////////////////////////////
        private void AddStripItems(List<IActionProvider> ActiveObjects, ActionStripItem Root, ToolStripItemCollection Items, bool AsMenu)
        {
            foreach (ActionStripItem Item in Root.Items)
            {
                // is it a container?
                if (Item.Items.Count > 0)
                {
                    // add subitem
                    if (AsMenu)
                    {
                        ToolStripMenuItem Submenu = new ToolStripMenuItem(Item.Caption);
                        AddStripItems(ActiveObjects, Item, Submenu.DropDownItems, true);

                        Items.Add(Submenu);
                    }
                    else
                    {
                        // TODO: DropDown / SplitButton
                        if(Item.Caption==String.Empty)
                        {
                            ToolStripSplitButton Btn = (ToolStripSplitButton)CreateButtonItem(Item.Items[0], ActionManager.GetAction(Item.Items[0].ActionName, ActiveObjects), AsMenu, true);
                            AddStripItems(ActiveObjects, Item, Btn.DropDownItems, true);
                            Items.Add(Btn);
                        }
                        else
                        {
                            ToolStripDropDownButton Btn = new ToolStripDropDownButton(Item.Caption);
                            AddStripItems(ActiveObjects, Item, Btn.DropDownItems, true);
                            Items.Add(Btn);
                        }
                    }
                }
                // normal item
                else
                {
                    // separator
                    if(Item.ActionName==String.Empty)
                    {
                        Items.Add(new ToolStripSeparator());
                        continue;
                    }

                    // no action, no toolstrip item
                    Action Act = ActionManager.GetAction(Item.ActionName, ActiveObjects);
                    if (Act == null) continue;

                    // regular action
                    ToolStripItem NewItem = null;
                    switch(Act.Attr.Type)
                    {
                        case ActionType.Button:
                            NewItem = CreateButtonItem(Item, Act, AsMenu);
                            break;

                        case ActionType.Toggle:
                            NewItem = CreateToggleItem(Item, Act, AsMenu);
                            break;

                        case ActionType.Combo:
                            if(Act.Attr.DisplayLabel && !AsMenu)
                            {
                                ToolStripItem Label = CreateLabelItem(Item, Act, AsMenu);
                                if (Label != null) Items.Add(Label);
                            }
                            NewItem = CreateComboItem(Item, Act, AsMenu);
                            break;

                        case ActionType.Editor:
                            if (Act.Attr.DisplayLabel)
                            {
                                ToolStripItem Label = CreateLabelItem(Item, Act, AsMenu);
                                if (Label != null) Items.Add(Label);
                            }
                            NewItem = CreateEditorItem(Item, Act, AsMenu);
                            break;

                        case ActionType.Custom:
                            ActContext.CustomBuild(Act.Name, Items, AsMenu);
                            break;
                    }
                    if (NewItem != null)
                    {
                        NewItem.Tag = Act.Name;
                        Items.Add(NewItem);

                        ActContext.Initialize(Act.Name, NewItem);
                    }
                }
            }

            WeedSeparators(Items, true);
        }