--- a/ui/wpf/UIcore/Menu.cs Sat Apr 05 17:57:04 2025 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Media; - -namespace UI -{ - public class ApplicationMenu - { - private List<Menu> current = new List<Menu>(); - - public List<Menu> Menus = new List<Menu>(); - - public void AddMenu(String label) - { - current.Clear(); - Menu menu = new Menu(label); - current.Add(menu); - Menus.Add(menu); - } - - public Boolean IsEmpty() - { - return Menus.Count == 0 ? true : false; - } - - public void AddSubMenu(String label) - { - Menu menu = new Menu(label); - current.Last().Items.Add(menu); - current.Add(menu); - } - - public void EndSubMenu() - { - current.Remove(current.Last()); - } - - public void AddMenuItem(String label, Action<IntPtr> action) - { - if(current.Count != 0) - { - MenuItem item = new MenuItem(label, action); - current.Last().Items.Add(item); - } - } - - public System.Windows.Controls.Menu CreateMenu(IntPtr uiobj) - { - System.Windows.Controls.Menu menu = new System.Windows.Controls.Menu(); - menu.Background = new SolidColorBrush(Color.FromRgb(255, 255, 255)); - foreach (Menu m in Menus) - { - System.Windows.Controls.MenuItem i = new System.Windows.Controls.MenuItem(); - i.Header = m.Label; - m.AddItems(i, uiobj); - menu.Items.Add(i); - } - return menu; - } - } - - public interface IMenuItem - { - void AddTo(System.Windows.Controls.MenuItem menu, IntPtr uiobj); - } - - public class Menu : IMenuItem - { - public String Label; - public List<IMenuItem> Items = new List<IMenuItem>(); - - public Menu(String label) - { - Label = label; - } - - public void AddItems(System.Windows.Controls.MenuItem i, IntPtr uiobj) - { - foreach (IMenuItem item in Items) - { - item.AddTo(i, uiobj); - } - } - - void IMenuItem.AddTo(System.Windows.Controls.MenuItem menu, IntPtr uiobj) - { - System.Windows.Controls.MenuItem i = new System.Windows.Controls.MenuItem(); - i.Header = Label; - AddItems(i, uiobj); - menu.Items.Add(i); - } - } - - public class MenuItem : IMenuItem - { - String Label; - Action<IntPtr> Action; - - public MenuItem(String label, Action<IntPtr> action) - { - Label = label; - Action = action; - } - - void IMenuItem.AddTo(System.Windows.Controls.MenuItem menu, IntPtr uiobj) - { - System.Windows.Controls.MenuItem i = new System.Windows.Controls.MenuItem(); - EventCallback cb = new EventCallback(uiobj, Action); - i.Click += cb.Callback; - i.Header = Label; - menu.Items.Add(i); - } - } -}