Beispiel #1
0
        internal bool UpdateContextMenu()
        {
            Opening.Execute();

            var  point   = ToGraphSpace(MenuPosition);
            bool showone = false;

            if (ConversationReal())
            {
                m_mouseController.ForClickedOn(point,
                                               a =>
                {
                    foreach (MenuAction <TNode> m in m_menuActions.Keys)
                    {
                        bool show                = m.NodeAction(a, point) != null;
                        bool visible             = show;
                        m_menuActions[m].Visible = visible;
                        showone |= visible;
                    }
                },
                                               a =>
                {
                    foreach (MenuAction <TNode> m in m_menuActions.Keys)
                    {
                        bool show                = m.TransitionAction != null;
                        bool visible             = show;
                        m_menuActions[m].Visible = visible;
                        showone |= visible;
                    }
                },
                                               (a, b) => { },
                                               a =>
                {
                    foreach (MenuAction <TNode> m in m_menuActions.Keys)
                    {
                        bool show                = m.GroupAction != null;
                        bool visible             = show;
                        m_menuActions[m].Visible = visible;
                        showone |= visible;
                    }
                },
                                               () =>
                {
                    foreach (MenuAction <TNode> m in m_menuActions.Keys)
                    {
                        bool show                = m.EmptySpaceAction != null;
                        bool visible             = show;
                        m_menuActions[m].Visible = visible;
                        showone |= visible;
                    }
                });
            }
            else
            {
                foreach (MenuAction <TNode> m in m_menuActions.Keys)
                {
                    m_menuActions[m].Visible = false;
                }
            }

            return(!showone);
        }