Exemplo n.º 1
0
        void removeObject(Widget go)
        {
            if (go == null)
            {
                return;
            }
            if (go.Parent == null)
            {
                return;
            }
//			lock (imlVE.UpdateMutex) {
            Interface i = go.Parent as Interface;

            if (i != null)
            {
                i.RemoveWidget(go);
                imlProjFile.Instance = null;
            }
            else
            {
                Container c = go.Parent as Container;
                if (c != null)
                {
                    c.SetChild(null);
                }
                else
                {
                    TemplatedContainer tc = go.Parent as TemplatedContainer;
                    if (tc != null)
                    {
                        tc.Content = null;
                    }
                    else
                    {
                        Group g = go.Parent as Group;
                        if (g != null)
                        {
                            g.RemoveChild(go);
                        }
                    }
                }
            }
            EditorIsDirty = true;
            //}
        }
Exemplo n.º 2
0
        void WidgetCheckOver(Widget go, MouseMoveEventArgs e)
        {
            Type tGo = go.GetType();

            if (typeof(TemplatedGroup).IsAssignableFrom(tGo))
            {
            }
            else if (typeof(TemplatedContainer).IsAssignableFrom(tGo))
            {
                TemplatedContainer c = go as TemplatedContainer;
                if (c.Content?.MouseIsIn(e.Position) == true)
                {
                    WidgetCheckOver(c.Content, e);
                    return;
                }
            }
            else if (typeof(TemplatedControl).IsAssignableFrom(tGo))
            {
            }
            else if (typeof(Group).IsAssignableFrom(tGo))
            {
                Group c = go as Group;
                for (int i = c.Children.Count - 1; i >= 0; i--)
                {
                    if (c.Children[i].MouseIsIn(e.Position))
                    {
                        WidgetCheckOver(c.Children[i], e);
                        return;
                    }
                }
            }
            else if (typeof(Crow.Container).IsAssignableFrom(tGo))
            {
                Crow.Container c = go as Crow.Container;
                if (c.Child?.MouseIsIn(e.Position) == true)
                {
                    WidgetCheckOver(c.Child, e);
                    return;
                }
            }
            HoverWidget = go;
            WidgetMouseEnter(go, e);
        }
Exemplo n.º 3
0
        ILayoutable getPossibleParent(ILayoutable parent, Widget go)
        {
            if (go == null)
            {
                return(null);
            }
//			lock (imlVE.UpdateMutex) {

            Interface i = null;

            if (parent == null)
            {
                i = imlVE;
            }
            else
            {
                i = parent as Interface;
            }
            if (i != null)
            {
                return(i.GraphicTree.Count > 0 ? null : i);
            }

            Container c = parent as Container;

            if (c != null)
            {
                return(c.Child == null || c.Child == go ? c : null);
            }

            TemplatedContainer tc = parent as TemplatedContainer;

            if (tc != null)
            {
                return(tc.Content == null || tc.Content == go? tc : null);
            }

            return(parent as Group);
//			}
        }
Exemplo n.º 4
0
        bool tryAddObjectTo(ILayoutable parent, Widget go)
        {
            if (go == null)
            {
                return(false);
            }
//			lock (imlVE.UpdateMutex) {
            Interface i = null;

            if (parent == null)
            {
                i = imlVE;
            }
            else
            {
                i = parent as Interface;
            }
            if (i != null)
            {
                if (i.GraphicTree.Count > 0)
                {
                    return(false);
                }
                i.AddWidget(go);
                imlProjFile.Instance = go;
                EditorIsDirty        = true;
                return(true);
            }
            Container c = parent as Container;

            if (c != null)
            {
                if (c.Child != null)
                {
                    return(false);
                }
                //return tryAddObjectTo (c.Parent, go);
                c.SetChild(go);
                EditorIsDirty = true;
                return(true);
            }
            TemplatedContainer tc = parent as TemplatedContainer;

            if (tc != null)
            {
                if (tc.Content != null)
                {
                    return(false);
                }
                //return tryAddObjectTo (c.Parent, go);
                tc.Content    = (go);
                EditorIsDirty = true;
                return(true);
            }
            Group g = parent as Group;

            if (g != null)
            {
                g.AddChild(go);
                EditorIsDirty = true;
                return(true);
            }
            return(false);           //tryAddObjectTo (parent.Parent, go);
//			}
        }