Select() public method

public Select ( ) : void
return void
        internal void RestoreStatus(ArrayList status, int index)
        {
            int pos = (int)status [index];

            if (pos >= menuItems.Count)
            {
                return;
            }

            ActionMenuItem item = (ActionMenuItem)menuItems [pos];

            if (index == status.Count - 1)
            {
                // The last position in the status is the selected item
                item.Select();
                if (item.Node.Action != null && item.Node.Action.Name.Length == 0)
                {
                    // Then only case when there can have an action when an empty name
                    // is when the user clicked on the "add action" link. In this case,
                    // start editing the item again
                    item.EditingDone += OnEditingDone;
                    item.StartEditing();
                }
            }
            else
            {
                item.ShowSubmenu();
                if (OpenSubmenu != null)
                {
                    OpenSubmenu.RestoreStatus(status, index + 1);
                }
            }
        }
Exemplo n.º 2
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();
                }
            }
        }
        protected override bool OnDragDrop(Gdk.DragContext context, int x, int y, uint time)
        {
            ActionPaletteItem dropped = DND.Drop(context, null, time) as ActionPaletteItem;

            if (dropped == null)
            {
                return(false);
            }

            if (dropped.Node.Type != Gtk.UIManagerItemType.Menuitem &&
                dropped.Node.Type != Gtk.UIManagerItemType.Menu &&
                dropped.Node.Type != Gtk.UIManagerItemType.Toolitem &&
                dropped.Node.Type != Gtk.UIManagerItemType.Separator)
            {
                return(false);
            }

            ActionTreeNode newNode = null;

            // Toolitems are copied, not moved

            using (wrapper.UndoManager.AtomicChange)
            {
                if (dropped.Node.ParentNode != null && dropped.Node.Type != Gtk.UIManagerItemType.Toolitem)
                {
                    if (dropIndex < nodes.Count)
                    {
                        // Do nothing if trying to drop the node over the same node
                        ActionTreeNode dropNode = nodes [dropIndex];
                        if (dropNode == dropped.Node)
                        {
                            return(false);
                        }

                        dropped.Node.ParentNode.Children.Remove(dropped.Node);

                        // The drop position may have changed after removing the dropped node,
                        // so get it again.
                        dropIndex = nodes.IndexOf(dropNode);
                        nodes.Insert(dropIndex, dropped.Node);
                    }
                    else
                    {
                        dropped.Node.ParentNode.Children.Remove(dropped.Node);
                        nodes.Add(dropped.Node);
                        dropIndex = nodes.Count - 1;
                    }
                }
                else
                {
                    newNode = new ActionTreeNode(Gtk.UIManagerItemType.Menuitem, null, dropped.Node.Action);
                    nodes.Insert(dropIndex, newNode);
                }
                // Select the dropped node
                ActionMenuItem mi = (ActionMenuItem)menuItems [dropIndex];
                mi.Select();
            }

            return(base.OnDragDrop(context, x, y, time));
        }
        void Refresh()
        {
            IDesignArea    area    = wrapper.GetDesignArea();
            ActionTreeNode selNode = null;

            foreach (Gtk.Widget w in table.Children)
            {
                ActionMenuItem ami = w as ActionMenuItem;
                if (area.IsSelected(w) && ami != null)
                {
                    selNode = ami.Node;
                    area.ResetSelection(w);
                }
                table.Remove(w);
            }

            Fill();

            ActionMenuItem mi = FindMenuItem(selNode);

            if (mi != null)
            {
                mi.Select();
            }

            GLib.Timeout.Add(50, new GLib.TimeoutHandler(RepositionSubmenu));
        }
Exemplo n.º 5
0
        public void Select(ActionTreeNode node)
        {
            ActionMenuItem item = FindMenuItem(node);

            if (item != null)
            {
                item.Select();
            }
        }
Exemplo n.º 6
0
        void OnAddClicked(object s, Gtk.ButtonPressEventArgs args)
        {
            Wrapper.Action ac   = (Wrapper.Action)ObjectWrapper.Create(project, new Gtk.Action("", "", null, null));
            ActionMenuItem item = InsertAction(ac, actionGroup.Actions.Count);

            item.EditingDone += OnEditDone;
            item.Select();
            item.StartEditing();
            HideAddLabel();
            ShowAll();
        }
Exemplo n.º 7
0
        void Fill()
        {
            IDesignArea designArea = GetDesignArea();

            if (designArea == null)
            {
                return;
            }

            Wrapper.Action selAction = null;

            foreach (ActionMenuItem item in items)
            {
                if (designArea.IsSelected(item))
                {
                    selAction = item.Node.Action;
                }
                item.Node.Dispose();
                item.Detach();
                item.Destroy();
            }
            items.Clear();

            if (actionGroup != null)
            {
                Wrapper.Action[] sortedActions = new Wrapper.Action [actionGroup.Actions.Count];
                actionGroup.Actions.CopyTo(sortedActions, 0);
                Array.Sort(sortedActions, new ActionComparer());
                for (int n = 0; n < sortedActions.Length; n++)
                {
                    Wrapper.Action action = (Wrapper.Action)sortedActions [n];
                    ActionMenuItem item   = InsertAction(action, n);
                    if (selAction == action)
                    {
                        item.Select();
                    }
                }

                if (selAction == null)
                {
                    designArea.SetSelection(null, null);
                }

                headerLabel.Sensitive = true;
                PlaceAddLabel(actionGroup.Actions.Count);
            }
            else
            {
                HideAddLabel();
                headerLabel.Text      = Catalog.GetString("No selection");
                headerLabel.Sensitive = false;
            }
            ShowAll();
        }
        void Fill()
        {
            menuItems.Clear();

            uint           n        = 0;
            ActionMenuItem editItem = null;

            if (nodes.Count > 0)
            {
                foreach (ActionTreeNode node in nodes)
                {
                    ActionMenuItem item = new ActionMenuItem(wrapper, this, node);
                    item.KeyPressEvent += OnItemKeyPress;
                    item.Attach(table, n++, 0);
                    menuItems.Add(item);
                    // If adding an action with an empty name, select and start editing it
//					if (node.Action != null && node.Action.Name.Length == 0)
//						editItem = item;
                }
            }

            emptyLabel = new Gtk.EventBox();
            emptyLabel.VisibleWindow = false;
            Gtk.Label label = new Gtk.Label();
            label.Xalign = 0;
            label.Markup = "<i><span foreground='darkgrey'>" + Catalog.GetString("Click to create action") + "</span></i>";
            emptyLabel.Add(label);
            emptyLabel.ButtonPressEvent += OnAddClicked;
            table.Attach(emptyLabel, 1, 2, n, n + 1);

            ShowAll();

            if (editItem != null)
            {
                // If there is an item with an empty action, it means that it was an item that was
                // being edited. Restart the editing now.
                GLib.Timeout.Add(200, delegate
                {
                    editItem.Select();
                    editItem.EditingDone += OnEditingDone;
                    editItem.StartEditing();
                    return(false);
                });
            }
        }
Exemplo n.º 9
0
        public void DropMenu(ActionTreeNode node)
        {
            ActionMenuItem item = FindMenuItem(node);

            if (item != null)
            {
                if (item.HasSubmenu)
                {
                    item.ShowSubmenu();
                    if (openSubmenu != null)
                    {
                        openSubmenu.Select(null);
                    }
                }
                else
                {
                    item.Select();
                }
            }
        }
Exemplo n.º 10
0
        ActionTreeNode InsertAction(int pos)
        {
            using (wrapper.UndoManager.AtomicChange) {
                Wrapper.Action ac      = (Wrapper.Action)ObjectWrapper.Create(wrapper.Project, new Gtk.Action("", "", null, null));
                ActionTreeNode newNode = new ActionTreeNode(Gtk.UIManagerItemType.Menuitem, null, ac);
                nodes.Insert(pos, newNode);
                ActionMenuItem item = FindMenuItem(newNode);
                item.EditingDone += OnEditingDone;
                item.Select();
                item.StartEditing();
                emptyLabel.Hide();

                if (wrapper.LocalActionGroups.Count == 0)
                {
                    wrapper.LocalActionGroups.Add(new ActionGroup("Default"));
                }
                wrapper.LocalActionGroups [0].Actions.Add(ac);
                return(newNode);
            }
        }
Exemplo n.º 11
0
        void InsertAction(int pos)
        {
            Widget wrapper = Widget.Lookup(this);

            using (wrapper.UndoManager.AtomicChange) {
                Wrapper.Action ac   = (Wrapper.Action)ObjectWrapper.Create(wrapper.Project, new Gtk.Action("", "", null, null));
                ActionTreeNode node = new ActionTreeNode(Gtk.UIManagerItemType.Menu, "", ac);
                actionTree.Children.Insert(pos, node);

                ActionMenuItem aitem = FindMenuItem(node);
                aitem.EditingDone += OnEditingDone;
                aitem.Select();
                aitem.StartEditing();

                if (wrapper.LocalActionGroups.Count == 0)
                {
                    wrapper.LocalActionGroups.Add(new ActionGroup("Default"));
                }
                wrapper.LocalActionGroups[0].Actions.Add(ac);
            }
        }
 public void Select(ActionTreeNode node)
 {
     if (node != null)
     {
         ActionMenuItem item = FindMenuItem(node);
         if (item != null)
         {
             item.Select();
         }
     }
     else
     {
         if (menuItems.Count > 0)
         {
             ((ActionMenuItem)menuItems [0]).Select();
         }
         else
         {
             InsertAction(0);
         }
     }
 }
Exemplo n.º 13
0
        protected override bool OnDragDrop(Gdk.DragContext context, int x, int y, uint time)
        {
            ActionPaletteItem dropped = DND.Drop(context, null, time) as ActionPaletteItem;

            if (dropped == null)
            {
                return(false);
            }

            if (dropped.Node.Type != Gtk.UIManagerItemType.Menuitem &&
                dropped.Node.Type != Gtk.UIManagerItemType.Menu &&
                dropped.Node.Type != Gtk.UIManagerItemType.Toolitem &&
                dropped.Node.Type != Gtk.UIManagerItemType.Separator)
            {
                return(false);
            }

            ActionTreeNode newNode = dropped.Node;

            if (dropped.Node.Type == Gtk.UIManagerItemType.Toolitem)
            {
                newNode      = newNode.Clone();
                newNode.Type = Gtk.UIManagerItemType.Menuitem;
            }

            Widget wrapper = Widget.Lookup(this);

            using (wrapper.UndoManager.AtomicChange) {
                if (dropIndex < actionTree.Children.Count)
                {
                    // Do nothing if trying to drop the node over the same node
                    ActionTreeNode dropNode = actionTree.Children [dropIndex];
                    if (dropNode == dropped.Node)
                    {
                        return(false);
                    }

                    if (newNode.ParentNode != null)
                    {
                        newNode.ParentNode.Children.Remove(newNode);
                    }

                    // The drop position may have changed after removing the dropped node,
                    // so get it again.
                    dropIndex = actionTree.Children.IndexOf(dropNode);
                    actionTree.Children.Insert(dropIndex, newNode);
                }
                else
                {
                    if (newNode.ParentNode != null)
                    {
                        newNode.ParentNode.Children.Remove(newNode);
                    }
                    actionTree.Children.Add(newNode);
                    dropIndex = actionTree.Children.Count - 1;
                }

                // Select the dropped node
                ActionMenuItem mi = (ActionMenuItem)menuItems [dropIndex];
                mi.Select();
            }

            return(base.OnDragDrop(context, x, y, time));
        }