示例#1
0
        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();
                }
            }
        }
示例#2
0
 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;
 }
示例#3
0
        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);
        }
示例#4
0
        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;
        }