void Refresh() { Widget wrapper = Widget.Lookup(this); IDesignArea area = wrapper.GetDesignArea(); if (area == null) { return; } ActionTreeNode selNode = null; foreach (Gtk.Widget w in Children) { CustomMenuBarItem it = w as CustomMenuBarItem; if (it != null && area.IsSelected(it.ActionMenuItem)) { selNode = it.ActionMenuItem.Node; area.ResetSelection(it.ActionMenuItem); } Remove(w); } FillMenu(actionTree); if (selNode != null) { ActionMenuItem mi = FindMenuItem(selNode); if (mi != null) { mi.Select(); } } }
internal void Bind(CustomMenuBarItem item) { // When embedding the action menu in a MenuBar, // the parent menu item intercepts the mouse events, // so those events must be manually bound here menuBarItem = item; item.ButtonPressEvent += OnMenuItemPress; item.ButtonReleaseEvent += OnMemuItemRelease; item.MotionNotifyEvent += OnMotionNotify; }
void AddItem(ActionMenuItem aitem, int pos) { Gtk.Table t = new Gtk.Table(1, 3, false); aitem.Attach(t, 0, 0); aitem.KeyPressEvent += OnItemKeyPress; t.ShowAll(); CustomMenuBarItem it = new CustomMenuBarItem(); it.ActionMenuItem = aitem; aitem.Bind(it); it.Child = t; it.ShowAll(); Insert(it, pos); }
public void Unselect() { // Unselects any selected item and hides any open submenu menu Widget wrapper = Widget.Lookup(this); if (OpenSubmenu != null) { OpenSubmenu.ResetSelection(); } IDesignArea area = wrapper.GetDesignArea(); if (area != null) { foreach (Gtk.Widget w in Children) { CustomMenuBarItem it = w as CustomMenuBarItem; if (it != null) { area.ResetSelection(it.ActionMenuItem); } } } OpenSubmenu = null; }