Beispiel #1
0
    public RichEditLine(Transform parent, float width)
    {
        gameObject = new GameObject("RichEditLine");
        transform = gameObject.AddComponent<RectTransform>();
        transform.SetParent(parent, false);
        transform.SetAsLastSibling();

        layoutElement = gameObject.AddComponent<LayoutElement>();
        layoutElement.preferredWidth = width;
        layoutElement.preferredHeight = 0;

        layoutGroup = gameObject.AddComponent<HorizontalLayoutGroup>();
        layoutGroup.childForceExpandWidth = false;
        layoutGroup.childForceExpandHeight = false;
        layoutGroup.childAlignment = TextAnchor.LowerLeft;
    }
Beispiel #2
0
    public RichEditBlock(Transform parent, float width, float lineSpacing)
    {
        gameObject = new GameObject("RichEditBlock");
        transform = gameObject.AddComponent<RectTransform>();
        transform.SetParent(parent, false);
        transform.SetAsLastSibling();

        layoutElement = gameObject.AddComponent<LayoutElement>();
        layoutElement.preferredWidth = width;
        layoutElement.preferredHeight = 0;

        layoutGroup = gameObject.AddComponent<VerticalLayoutGroup>();
        layoutGroup.childForceExpandWidth = false;
        layoutGroup.childForceExpandHeight = false;
        layoutGroup.childAlignment = TextAnchor.LowerLeft;
        layoutGroup.spacing = lineSpacing;

        currentLine = AddNewLine();
    }
Beispiel #3
0
    public bool Add(RectTransform child, bool forceAdd = false)
    {
        bool canAdd = child.rect.width <= AvailableWidth;

        if (!canAdd && !forceAdd)
        {
            return false;
        }

        UpdateHeightForChild(child);

        if (canAdd)
        {
            child.SetParent(transform, false);
            child.SetAsLastSibling();

            CurrentWidth += child.rect.width;
        }
        else
        {
            GameObject containerObject = new GameObject("LineForceContainer");
            RectTransform containerTransformRect = containerObject.AddComponent<RectTransform>();
            containerTransformRect.SetParent(transform, false);
            containerTransformRect.SetAsLastSibling();

            LayoutElement containerLayoutElement = containerObject.AddComponent<LayoutElement>();
            containerLayoutElement.preferredWidth = AvailableWidth;
            containerLayoutElement.preferredHeight = child.rect.height;

            CurrentWidth += containerLayoutElement.preferredWidth;
        }
        return true;
    }
        /// <summary>
        /// Creates user interface.
        /// </summary>
        private void CreateUI()
        {
            DebugEx.Verbose("DockingGroupScript.CreateUI()");

            //===========================================================================
            // Tabs GameObject
            //===========================================================================
            #region Tabs GameObject
            GameObject tabs = new GameObject("Tabs");
            Utils.InitUIObject(tabs, transform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mTabsTransform = tabs.AddComponent<RectTransform>();
            Utils.AlignRectTransformTopStretch(mTabsTransform, 16f);
            #endregion

            //***************************************************************************
            // ContextMenu GameObject
            //***************************************************************************
            #region ContextMenu GameObject
            GameObject contextMenuGameObject = new GameObject("ContextMenu");
            Utils.InitUIObject(contextMenuGameObject, tabs.transform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            RectTransform contextMenuTransform = contextMenuGameObject.AddComponent<RectTransform>();
            Utils.AlignRectTransformTopRight(contextMenuTransform, 14f, 5f, 5f, 10f);
            #endregion

            //===========================================================================
            // CanvasRenderer Component
            //===========================================================================
            #region CanvasRenderer Component
            contextMenuGameObject.AddComponent<CanvasRenderer>();
            #endregion

            //===========================================================================
            // Image Component
            //===========================================================================
            #region Image Component
            Image contextMenuImage = contextMenuGameObject.AddComponent<Image>();

            contextMenuImage.sprite = Assets.Common.DockWidgets.Textures.contextMenuButton.sprite;
            contextMenuImage.type   = Image.Type.Sliced;
            #endregion

            //===========================================================================
            // Button Component
            //===========================================================================
            #region Button Component
            Button contextMenuButton = contextMenuGameObject.AddComponent<Button>();

            contextMenuButton.targetGraphic = contextMenuImage;
            contextMenuButton.transition    = Selectable.Transition.SpriteSwap;
            contextMenuButton.spriteState   = Assets.Common.DockWidgets.SpriteStates.contextMenuButton.spriteState;
            contextMenuButton.onClick.AddListener(OnContextMenuButtonClicked);
            #endregion
            #endregion

            //***************************************************************************
            // Lock GameObject
            //***************************************************************************
            #region Lock GameObject
            GameObject lockGameObject = new GameObject("Lock");
            Utils.InitUIObject(lockGameObject, tabs.transform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            RectTransform lockTransform = lockGameObject.AddComponent<RectTransform>();
            Utils.AlignRectTransformTopRight(lockTransform, 7f, 9f, 25f, 6f);
            #endregion

            //===========================================================================
            // CanvasRenderer Component
            //===========================================================================
            #region CanvasRenderer Component
            lockGameObject.AddComponent<CanvasRenderer>();
            #endregion

            //===========================================================================
            // Image Component
            //===========================================================================
            #region Image Component
            Image lockImage = lockGameObject.AddComponent<Image>();

            lockImage.sprite = Assets.Common.DockWidgets.Textures.unlockedButton.sprite;
            lockImage.type   = Image.Type.Sliced;
            #endregion

            //===========================================================================
            // Button Component
            //===========================================================================
            #region Button Component
            Button lockButton = lockGameObject.AddComponent<Button>();

            lockButton.targetGraphic = lockImage;
            lockButton.transition    = Selectable.Transition.SpriteSwap;
            lockButton.spriteState   = Assets.Common.DockWidgets.SpriteStates.unlockedButton.spriteState;
            lockButton.onClick.AddListener(OnLockButtonClicked);
            #endregion
            #endregion
            #endregion

            //===========================================================================
            // Pages GameObject
            //===========================================================================
            #region Pages GameObject
            GameObject pages = new GameObject("Pages");
            Utils.InitUIObject(pages, transform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            RectTransform pagesTransform = pages.AddComponent<RectTransform>();
            Utils.AlignRectTransformStretchStretch(pagesTransform, 0f, 16f, 0f, 0f);
            #endregion

            //===========================================================================
            // CanvasRenderer Component
            //===========================================================================
            #region CanvasRenderer Component
            pages.AddComponent<CanvasRenderer>();
            #endregion

            //===========================================================================
            // Image Component
            //===========================================================================
            #region Image Component
            Image pagesImage = pages.AddComponent<Image>();

            pagesImage.sprite = Assets.Common.DockWidgets.Textures.pageBackground.sprite;
            pagesImage.type   = Image.Type.Sliced;
            #endregion

            //===========================================================================
            // Content GameObject
            //===========================================================================
            #region Content GameObject
            GameObject content = new GameObject("Content");
            Utils.InitUIObject(content, pages.transform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mContentTransform = content.AddComponent<RectTransform>();
            Utils.AlignRectTransformStretchStretch(
                                                     mContentTransform
                                                   , pagesImage.sprite.border.x
                                                   , pagesImage.sprite.border.w
                                                     , pagesImage.sprite.border.z
                                                   , pagesImage.sprite.border.y
                                                  );
            #endregion
            #endregion
            #endregion

            mTabsTransform.SetAsLastSibling();
        }