/// <summary> /// Initializes the <see cref="Common.UI.DockWidgets.DragInfoHolder"/> class. /// </summary> static DragInfoHolder() { DebugEx.Verbose("Created DragInfoHolder object"); sDockWidget = null; sMinimum = float.MaxValue; sDockingArea = null; sMouseLocation = MouseLocation.Outside; }
/// <summary> /// Initializes a new instance of the <see cref="Common.UI.DockWidgets.DockingGroupScript"/> class. /// </summary> public DockingGroupScript() : base() { DebugEx.Verbose("Created DockingGroupScript object"); mParent = null; mChildren = new List <DockWidgetScript>(); mSelectedIndex = -1; mTabsTransform = null; mContentTransform = null; }
/// <summary> /// Initializes a new instance of the <see cref="Common.UI.DockWidgets.DockingWindowScript"/> class. /// </summary> private DockingWindowScript() : base() { DebugEx.Verbose("Created DockingWindowScript object"); mDockWidget = null; mDockingAreaScript = null; frame = WindowFrameType.SingleFrame; backgroundColor = Assets.Common.DockWidgets.Colors.dockingWindow; }
/// <summary> /// Handler for drag event. /// </summary> /// <param name="eventData">Pointer data.</param> public void OnDrag(PointerEventData eventData) { DebugEx.VeryVerboseFormat("DockingTabButton.OnDrag(eventData = {0})", eventData); DragInfoHolder.minimum = float.MaxValue; DragInfoHolder.dockingArea = null; DragInfoHolder.mouseLocation = DragInfoHolder.MouseLocation.Outside; RaycastResult raycastResult = eventData.pointerCurrentRaycast; DockingAreaScript hitDockingArea = null; if (raycastResult.gameObject != null) { hitDockingArea = Utils.FindInParents <DockingAreaScript>(raycastResult.gameObject); } if (hitDockingArea != null && hitDockingArea.HasDragInfo()) { hitDockingArea.PreprocessDockWidgetDrag(eventData); } else { for (int i = mDockingAreas.Count - 1; i >= 0; --i) { mDockingAreas[i].PreprocessDockWidgetDrag(eventData); } } if (DragInfoHolder.dockingArea != null) { DragInfoHolder.dockingArea.ProcessDockWidgetDrag(eventData); } if (DragInfoHolder.dockingArea != null) { DragData.HideImage(); } else { DummyDockWidgetScript.DestroyInstance(); DragData.ShowImage(); DragData.Drag(); } }
/// <summary> /// Creates the content. /// </summary> /// <param name="contentTransform">Content transform.</param> /// <param name="width">Width of content.</param> /// <param name="height">Height of content.</param> protected override void CreateContent(Transform contentTransform, out float width, out float height) { DebugEx.VerboseFormat("DockingWindowScript.CreateContent(contentTransform = {0})", contentTransform); width = 150f; height = 150f; //*************************************************************************** // Header GameObject //*************************************************************************** #region Header GameObject GameObject header = new GameObject("Header"); Utils.InitUIObject(header, contentTransform); //=========================================================================== // RectTransform Component //=========================================================================== #region RectTransform Component RectTransform headerTransform = header.AddComponent <RectTransform>(); Utils.AlignRectTransformTopStretch(headerTransform, 5f); #endregion //*************************************************************************** // Close GameObject //*************************************************************************** #region Close GameObject GameObject closeGameObject = new GameObject("Close"); Utils.InitUIObject(closeGameObject, header.transform); //=========================================================================== // RectTransform Component //=========================================================================== #region RectTransform Component RectTransform closeTransform = closeGameObject.AddComponent <RectTransform>(); Utils.AlignRectTransformTopRight(closeTransform, 13f, 13f, 4f, 0f); #endregion //=========================================================================== // CanvasRenderer Component //=========================================================================== #region CanvasRenderer Component closeGameObject.AddComponent <CanvasRenderer>(); #endregion //=========================================================================== // Image Component //=========================================================================== #region Image Component Image closeImage = closeGameObject.AddComponent <Image>(); closeImage.sprite = Assets.Common.DockWidgets.Textures.closeButton.sprite; closeImage.type = Image.Type.Sliced; #endregion //=========================================================================== // Button Component //=========================================================================== #region Button Component Button closeButton = closeGameObject.AddComponent <Button>(); closeButton.targetGraphic = closeImage; closeButton.transition = Selectable.Transition.SpriteSwap; closeButton.spriteState = Assets.Common.DockWidgets.SpriteStates.closeButton.spriteState; closeButton.onClick.AddListener(Close); #endregion #endregion //*************************************************************************** // Maximize GameObject //*************************************************************************** #region Maximize GameObject GameObject maximizeGameObject = new GameObject("Maximize"); Utils.InitUIObject(maximizeGameObject, header.transform); //=========================================================================== // RectTransform Component //=========================================================================== #region RectTransform Component RectTransform maximizeTransform = maximizeGameObject.AddComponent <RectTransform>(); Utils.AlignRectTransformTopRight(maximizeTransform, 13f, 13f, 20f, 0f); #endregion //=========================================================================== // CanvasRenderer Component //=========================================================================== #region CanvasRenderer Component maximizeGameObject.AddComponent <CanvasRenderer>(); #endregion //=========================================================================== // Image Component //=========================================================================== #region Image Component Image maximizeImage = maximizeGameObject.AddComponent <Image>(); maximizeImage.sprite = Assets.Common.DockWidgets.Textures.maximizeButton.sprite; maximizeImage.type = Image.Type.Sliced; #endregion //=========================================================================== // Button Component //=========================================================================== #region Button Component Button maximizeButton = maximizeGameObject.AddComponent <Button>(); maximizeButton.targetGraphic = maximizeImage; maximizeButton.transition = Selectable.Transition.SpriteSwap; maximizeButton.spriteState = Assets.Common.DockWidgets.SpriteStates.maximizeButton.spriteState; maximizeButton.onClick.AddListener(OnMaximizeClicked); #endregion #endregion #endregion //*************************************************************************** // DockingArea GameObject //*************************************************************************** #region DockingArea GameObject GameObject dockingArea = new GameObject("DockingArea"); Utils.InitUIObject(dockingArea, contentTransform); //=========================================================================== // RectTransform Component //=========================================================================== #region RectTransform Component RectTransform dockingAreaTransform = dockingArea.AddComponent <RectTransform>(); Utils.AlignRectTransformStretchStretch(dockingAreaTransform, 0f, 5f, 0f, 0f); #endregion //=========================================================================== // DockingAreaScript Component //=========================================================================== #region DockingAreaScript Component mDockingAreaScript = dockingArea.AddComponent <DockingAreaScript>(); mDockingAreaScript.AddChildlessListener(Close); mDockWidget.InsertToDockingArea(mDockingAreaScript); #endregion #endregion }
/// <summary> /// Insert dock widget into specified docking area. /// </summary> /// <param name="dockingArea">Docking area.</param> /// <param name="orientation">Orientation.</param> /// <param name="index">Index.</param> public void InsertToDockingArea(DockingAreaScript dockingArea, DockingAreaOrientation orientation = DockingAreaOrientation.Horizontal, int index = 0) { DebugEx.VerboseFormat("DockWidgetScript.InsertToDockingArea(dockingArea = {0}, orientation = {1}, index = {2})", dockingArea, orientation, index); dockingArea.InsertDockWidget(this, orientation, index); }