/// <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;
        }
Example #4
0
        /// <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
        }
Example #6
0
        /// <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);
        }