private void SetDockPlaceImpl(GUIDockPlace place, GUIDockContentBase content, GUIDockNode src, GUIDockNode dst) { //remove src.RemoveContent(content); //append dst.AddContent(content, place); m_dockChanged = true; }
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; }
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); } } }
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); }
public void AddNewContent(GUIDockContentBase content) { m_root.AddContent(content, false); }
public void SetDockPlace(GUIDockPlace place, GUIDockContentBase content, GUIDockNode src, GUIDockNode dst) { m_slotDockPlace += () => { SetDockPlaceImpl(place, content, src, dst); }; }
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); }