Exemple #1
0
        private void SetDockPlaceImpl(GUIDockPlace place, GUIDockContentBase content, GUIDockNode src, GUIDockNode dst)
        {
            //remove
            src.RemoveContent(content);

            //append
            dst.AddContent(content, place);

            m_dockChanged = true;
        }
Exemple #2
0
        public void Clear()
        {
            m_nodeL = null;
            m_nodeR = null;

            m_content      = null;
            m_contentFocus = null;
            m_info         = null;
            m_parent       = null;
            m_mgr          = null;
            m_separator    = null;
        }
Exemple #3
0
 public void SwithcMode(bool contentMode)
 {
     if (contentMode)
     {
         m_nodeL = null;
         m_nodeR = null;
     }
     else
     {
         m_content      = null;
         m_contentFocus = null;
         if (m_separator == null)
         {
             m_separator = new GUIDockSeparator(this);
         }
     }
 }
Exemple #4
0
        public GUIDockNode(GUIDockNode parent, List <GUIDockContentBase> cs)
        {
            m_parent  = parent;
            m_content = cs;
            if (m_contentFocus == null || !cs.Contains(m_contentFocus))
            {
                if (cs.Count > 0)
                {
                    m_contentFocus = m_content[0];
                }
                else
                {
                    m_contentFocus = null;
                }
            }

            SwithcMode(true);
        }
Exemple #5
0
 public void AddNewContent(GUIDockContentBase content)
 {
     m_root.AddContent(content, false);
 }
Exemple #6
0
 public void SetDockPlace(GUIDockPlace place, GUIDockContentBase content, GUIDockNode src, GUIDockNode dst)
 {
     m_slotDockPlace += () => { SetDockPlaceImpl(place, content, src, dst); };
 }
Exemple #7
0
        private GUIDockPlace DrawOnDockContentDrag(GUIDockContentBase content, GUIDockNode src)
        {
            GUIDockPlace dockPlace = GUIDockPlace.none;

            GUI.BeginGroup(m_info.m_sizeab, null, true);
            {
                GUI.BeginDepthLayer(1);
                {
                    float rsize         = 40;
                    var   center        = m_info.m_sizeab.Size() * 0.5f;
                    var   rectbasic     = new Vector4(center - rsize * 0.5f * Vector2.One, rsize, rsize);
                    bool  activeChecked = false;

                    var pointer = GUI.Event.Pointer;

                    //center
                    if (CheckPlaceValid(GUIDockPlace.center, src))
                    {
                        if (!activeChecked && GUIUtility.RectContainsCheck(GUI.GetRectAbsolute(rectbasic), pointer))
                        {
                            GUI.Rect(rectbasic, GUIStyle.Current.ColorActive);
                            activeChecked = true;
                            dockPlace     = GUIDockPlace.center;
                        }
                        else
                        {
                            GUI.Rect(rectbasic, GUIStyle.Current.ColorActiveD);
                        }
                    }
                    else
                    {
                        GUI.Rect(rectbasic, GUIStyle.Current.ColorDisabled);
                    }

                    //left
                    var rect = rectbasic.Move(-35, 0).SetSize(30, rsize);
                    if (CheckPlaceValid(GUIDockPlace.left, src))
                    {
                        if (!activeChecked && GUIUtility.RectContainsCheck(GUI.GetRectAbsolute(rect), pointer))
                        {
                            GUI.Rect(rect, GUIStyle.Current.ColorActive);
                            activeChecked = true;
                            dockPlace     = GUIDockPlace.left;
                        }
                        else
                        {
                            GUI.Rect(rect, GUIStyle.Current.ColorActiveD);
                        }
                    }
                    else
                    {
                        GUI.Rect(rect, GUIStyle.Current.ColorDisabled);
                    }

                    //right
                    rect = rectbasic.Move(45, 0).SetSize(30, rsize);
                    if (CheckPlaceValid(GUIDockPlace.right, src))
                    {
                        if (!activeChecked && GUIUtility.RectContainsCheck(GUI.GetRectAbsolute(rect), pointer))
                        {
                            GUI.Rect(rect, GUIStyle.Current.ColorActive);
                            activeChecked = true;
                            dockPlace     = GUIDockPlace.right;
                        }
                        else
                        {
                            GUI.Rect(rect, GUIStyle.Current.ColorActiveD);
                        }
                    }
                    else
                    {
                        GUI.Rect(rect, GUIStyle.Current.ColorDisabled);
                    }

                    //top
                    rect = rectbasic.Move(0, -35).SetSize(rsize, 30);
                    if (CheckPlaceValid(GUIDockPlace.top, src))
                    {
                        if (!activeChecked && GUIUtility.RectContainsCheck(GUI.GetRectAbsolute(rect), pointer))
                        {
                            GUI.Rect(rect, GUIStyle.Current.ColorActive);
                            activeChecked = true;
                            dockPlace     = GUIDockPlace.top;
                        }
                        else
                        {
                            GUI.Rect(rect, GUIStyle.Current.ColorActiveD);
                        }
                    }
                    else
                    {
                        GUI.Rect(rect, GUIStyle.Current.ColorDisabled);
                    }

                    //bottom
                    rect = rectbasic.Move(0, 45).SetSize(rsize, 30);
                    if (CheckPlaceValid(GUIDockPlace.bottom, src))
                    {
                        if (!activeChecked && GUIUtility.RectContainsCheck(GUI.GetRectAbsolute(rect), pointer))
                        {
                            GUI.Rect(rect, GUIStyle.Current.ColorActive);
                            activeChecked = true;
                            dockPlace     = GUIDockPlace.bottom;
                        }
                        else
                        {
                            GUI.Rect(rect, GUIStyle.Current.ColorActiveD);
                        }
                    }
                    else
                    {
                        GUI.Rect(rect, GUIStyle.Current.ColorDisabled);
                    }
                }
                GUI.EndDepthLayer();
            }
            GUI.EndGroup();

            if (content.InternalTabBtnDragState.Stage != GUIDragStateStage.Exit)
            {
                return(GUIDockPlace.none);
            }

            return(dockPlace);
        }