Пример #1
0
        void OnChildRemoved(object ob, ActionTreeNodeArgs args)
        {
            OpenSubmenu = null;

            Widget           wrapper = Widget.Lookup(this);
            IDesignArea      area    = wrapper.GetDesignArea();
            IObjectSelection asel    = area.GetSelection();
            ActionMenuItem   curSel  = asel != null ? asel.DataObject as ActionMenuItem : null;
            int pos = menuItems.IndexOf(curSel);

            foreach (Gtk.Widget w in Children)
            {
                if (w is CustomMenuBarItem && ((CustomMenuBarItem)w).ActionMenuItem.Node == args.Node)
                {
                    Remove(w);
                    menuItems.Remove(((CustomMenuBarItem)w).ActionMenuItem);
                    if (menuItems.Count == 0 && !showPlaceholder)
                    {
                        AddSpacerItem();
                    }
                    break;
                }
            }
            if (pos != -1 && pos < menuItems.Count)
            {
                ((ActionMenuItem)menuItems[pos]).Select();
            }
            else if (menuItems.Count > 0)
            {
                ((ActionMenuItem)menuItems[menuItems.Count - 1]).Select();
            }
        }
        void OnChildRemoved(object ob, ActionTreeNodeArgs args)
        {
            Widget           wrapper = Stetic.Wrapper.Widget.Lookup(this);
            IDesignArea      area    = wrapper.GetDesignArea();
            IObjectSelection asel    = area.GetSelection();
            ActionToolItem   curSel  = asel != null ? asel.DataObject as ActionToolItem : null;
            int pos = toolItems.IndexOf(curSel);

            foreach (Gtk.Widget w in Children)
            {
                if (w is CustomToolbarItem && ((CustomToolbarItem)w).ActionToolItem.Node == args.Node)
                {
                    Remove(w);
                    toolItems.Remove(((CustomToolbarItem)w).ActionToolItem);
                    w.Destroy();
                    if (!showPlaceholder && toolItems.Count == 0)
                    {
                        AddSpacerItem();
                    }
                    break;
                }
            }

            if (pos != -1 && pos < toolItems.Count)
            {
                ((ActionToolItem)toolItems[pos]).Select();
            }
            else if (toolItems.Count > 0)
            {
                ((ActionToolItem)toolItems[toolItems.Count - 1]).Select();
            }
        }
Пример #3
0
        protected void UpdateSelectionStatus()
        {
            IDesignArea      area = GetDesignArea();
            IObjectSelection sel  = area.GetSelection();

            sel.Disposed -= OnSelectionDisposed;
            sel.Drag     -= HandleItemDrag;

            area.ResetSelection(this);

            sel           = area.SetSelection(this, this);
            sel.Drag     += HandleItemDrag;
            sel.Disposed += OnSelectionDisposed;
        }
Пример #4
0
        public void StartEditing()
        {
            if (Child is Gtk.Label)
            {
                IDesignArea      d   = WidgetUtils.GetDesignArea(this);
                IObjectSelection sel = d.GetSelection(this);
                if (sel == null)
                {
                    sel = d.SetSelection(this, null);
                }

                sel.Disposed += SelectionDisposed;

                Remove(Child);
                Add(CreateEntry());
                ShowAll();
                Child.GrabFocus();
            }
        }
        void OnChildRemoved(object ob, ActionTreeNodeArgs args)
        {
            IDesignArea      area   = wrapper.GetDesignArea();
            IObjectSelection asel   = area.GetSelection();
            ActionMenuItem   curSel = asel != null ? asel.DataObject as ActionMenuItem : null;
            int pos = menuItems.IndexOf(curSel);

            ActionMenuItem mi = FindMenuItem(args.Node);

            if (mi != null)
            {
                // Remove the table row that contains the menu item
                Gtk.Table.TableChild tc = (Gtk.Table.TableChild)table [mi];
                uint row = tc.TopAttach;
                mi.Detach();
                menuItems.Remove(mi);
                foreach (Gtk.Widget w in table.Children)
                {
                    tc = (Gtk.Table.TableChild)table [w];
                    if (tc.TopAttach >= row)
                    {
                        tc.TopAttach--;
                    }
                    if (tc.BottomAttach > row)
                    {
                        tc.BottomAttach--;
                    }
                }
                if (pos != -1 && pos < menuItems.Count)
                {
                    ((ActionMenuItem)menuItems[pos]).Select();
                }
                else
                {
                    SelectLastItem();
                }
                GLib.Timeout.Add(50, new GLib.TimeoutHandler(RepositionSubmenu));
            }
        }