Пример #1
0
 void LogEvents(ISubmenu menu)
 {
     foreach (var item in menu.Items.OfType <ButtonMenuItem>())
     {
         LogClickEvents(item);
     }
 }
Пример #2
0
		void LogEvents(ISubmenu menu)
		{
			foreach (var item in menu.Items.OfType<ButtonMenuItem>())
			{
				LogClickEvents(item);
			}
		}
Пример #3
0
 public static MenuItem GetItem(this ISubmenu parent, string text)
 {
     if (Platform.Instance.IsGtk)
     {
         return(parent.Items.FirstOrDefault(i => i.Text == text.Replace("&", "")));
     }
     return(parent.Items.FirstOrDefault(i => i.Text == text));
 }
Пример #4
0
        public void GenerateMenu(ISubmenu subMenu)
        {
            var file = subMenu.Items.GetSubmenu("&File");

            file.Items.AddSeparator(600);
            file.Items.Add(new Commands.NextNote(this), 600);
            file.Items.Add(new Commands.PreviousNote(this), 600);
            file.Items.AddSeparator(600);
        }
Пример #5
0
		void LogEvents(ISubmenu menu)
		{
			if (menu == null)
				return;
			foreach (var item in menu.Items)
			{
				LogClickEvents(item);
			}
		}
Пример #6
0
        public static CheckMenuItem CreateCheckItem(this ISubmenu parent, string text)
        {
            var itm = new CheckMenuItem
            {
                Text = text
            };

            parent.Items.Add(itm);
            return(itm);
        }
Пример #7
0
        public static ButtonMenuItem CreateItem(this ISubmenu parent, string text)
        {
            var itm = new ButtonMenuItem
            {
                Text = text
            };

            parent.Items.Add(itm);
            return(itm);
        }
Пример #8
0
 void LogEvents(ISubmenu menu)
 {
     if (menu == null)
     {
         return;
     }
     foreach (var item in menu.Items)
     {
         LogClickEvents(item);
     }
 }
Пример #9
0
        public static CheckMenuItem CreateCheckItem(this ISubmenu parent, string text, bool isChecked = false, EventHandler <EventArgs>?changeHandler = null)
        {
            var itm = new CheckMenuItem
            {
                Text    = text,
                Checked = isChecked,
            };

            if (changeHandler != null)
            {
                itm.CheckedChanged += changeHandler;
            }
            parent.Items.Add(itm);
            return(itm);
        }
Пример #10
0
        /// <summary>
        /// Gets an enumeration of all children of the specified submenu.
        /// </summary>
        /// <remarks>
        /// This traverses all items of the submenu, and any children of those items if they implement <see cref="ISubmenu"/>
        /// as well.
        /// </remarks>
        /// <param name="submenu">Submenu to get all child menu items for.</param>
        /// <returns>Enumeration of all child menu items of the specified submenu.</returns>
        public static IEnumerable <MenuItem> GetChildren(this ISubmenu submenu)
        {
            foreach (var item in submenu.Items)
            {
                yield return(item);

                var childmenu = item as ISubmenu;
                if (childmenu != null)
                {
                    foreach (var child in childmenu.GetChildren())
                    {
                        yield return(child);
                    }
                }
            }
        }
Пример #11
0
        public static ButtonMenuItem CreateItem(this ISubmenu parent, string text, bool enabled = true, EventHandler <EventArgs>?clickHandler = null, Keys shortcut = default)
        {
            var itm = new ButtonMenuItem
            {
                Text     = text,
                Enabled  = enabled,
                Shortcut = shortcut
            };

            if (clickHandler != null)
            {
                itm.Click += clickHandler;
            }
            parent.Items.Add(itm);
            return(itm);
        }
Пример #12
0
 private MenuItem FindMenu(ISubmenu menu, Keys keyData)
 {
     foreach (var item in menu.Items)
     {
         if (item.Shortcut == keyData)
         {
             return(item);
         }
         if (item is ISubmenu submenu)
         {
             var child = FindMenu(submenu, keyData);
             if (child != null)
             {
                 return(child);
             }
         }
     }
     return(null);
 }
Пример #13
0
        public DynamicMenuBar()
        {
            var      count    = 0;
            var      menu     = Application.Instance.MainForm.Menu;
            ISubmenu editMenu = menu.Items.GetSubmenu("Edit");

            // selection of which menu to add/remove
            var menuToEdit = new DropDown
            {
                DataStore       = menu.Items.OfType <ISubmenu>().Union(new ISubmenu[] { menu }).ToList(),
                ItemTextBinding = Binding.Delegate((MenuItem item) => item.Text, defaultGetValue: "Main Menu")
            };

            menuToEdit.SelectedValueBinding.Bind(() => editMenu, v => editMenu = v as ISubmenu);

            // tag to identify items that we've added
            var dynamicTag = new object();

            // button to add a new item
            var addToEditMenu = new Button {
                Text = "Add MenuItem"
            };

            addToEditMenu.Click += (sender, e) =>
            {
                var itemNumber = ++count;
                var item       = new ButtonMenuItem {
                    Text = "Dynamic Menu Item " + itemNumber, Tag = dynamicTag
                };
                item.Click += (s, ee) => Log.Write(item, "Clicked " + itemNumber);
                editMenu.Items.Add(item);
            };

            // button to remove the item
            var removeFromEditMenu = new Button {
                Text = "Remove MenuItem"
            };

            removeFromEditMenu.Click += (sender, e) =>
            {
                var item = editMenu.Items.LastOrDefault(r => Equals(r.Tag, dynamicTag));
                if (item != null)
                {
                    editMenu.Items.Remove(item);
                }
            };

            // layout of the form
            Content = new TableLayout
            {
                Rows =
                {
                    null,
                    TableLayout.Horizontal(null,new Label  {
                        Text = "Submenu to add to",VerticalAlignment = VerticalAlignment.Center
                    },                          menuToEdit, null),
                    TableLayout.Horizontal(null,addToEditMenu, removeFromEditMenu, null),
                    null
                }
            };
        }
Пример #14
0
 public EtoMenuBuilder(ISubmenu menu)
 {
     this.menu = menu;
     menu.Items.Clear();
     justStartedSection = true;
 }
Пример #15
0
        public MenuItem GetFontMenu(CharacterHandler handler, int order = 600, Action <BitFont> selectFont = null, Func <BitFont, bool> fontSelected = null, ISubmenu subMenu = null)
        {
            Actions.ChangeFont mainChangeFont = null;
            var aiChangeFonts = subMenu ?? new ButtonMenuItem {
                Text = "Change Font", Order = order
            };

            foreach (var fontSet in GetFonts())
            {
                var aiFontSet = aiChangeFonts.Items.GetSubmenu(fontSet.Name);
                foreach (var font in fontSet.Fonts)
                {
                    var chfont = new Actions.ChangeFont(mainChangeFont, handler, font);
                    if (fontSelected != null)
                    {
                        chfont.Checked = fontSelected(font);
                    }
                    if (mainChangeFont == null)
                    {
                        mainChangeFont = chfont;
                    }
                    if (selectFont != null)
                    {
                        chfont.Executed += (sender, e) => selectFont(((Actions.ChangeFont)sender).Font);
                    }
                    aiFontSet.Items.Add(chfont);
                }
            }
            return(aiChangeFonts as MenuItem);
        }
Пример #16
0
        public void GenerateMenu(ISubmenu subMenu)
        {
            var file = subMenu.Items.GetSubmenu("&File");

            file.Items.AddSeparator(600);
            file.Items.Add(new Commands.NextNote(this), 600);
            file.Items.Add(new Commands.PreviousNote(this), 600);
            file.Items.AddSeparator(600);
        }