public void OnLayout(UIRenderContext rctx, ref UIElementLayout elementLayout)
        {
            if (m_f0 != null)
            {
                m_f0.ResolveTextures(rctx);
                m_f1.ResolveTextures(rctx);
                m_f2.ResolveTextures(rctx);
            }

            if (m_font != null)
                m_formattedText = m_font.FormatText(rctx, m_element.Text, m_element.Style.FontStyle.PixelSize);
            else
                m_formattedText = null;

            if (m_element.TextureNormal != null)
                m_normal = rctx.TextureManager.ResolveTexture(m_element.TextureNormal, rctx.LayoutScale, 0, 0, 1, 1);

            if (m_element.TexturePressed != null)
                m_pressed = rctx.TextureManager.ResolveTexture(m_element.TexturePressed, rctx.LayoutScale, 0, 0, 1, 1);
        }
Example #2
0
        public void OnLayout(UIRenderContext rctx, ref UIElementLayout elementLayout)
        {
            float wrapLength = 0;
            if (m_element.WordWrap)
                wrapLength = elementLayout.x1 - elementLayout.x0;

            m_fmted = m_font.FormatText(rctx, m_element.Text, m_element.pixelSize, wrapLength);
            if (m_fmted == null)
                return;

            switch (m_element.HorizontalAlignment)
            {
                case outki.UIHorizontalAlignment.UIHorizontalAlignment_Center:
                    m_x0 = (elementLayout.x0 + elementLayout.x1 - (m_fmted.x1 - m_fmted.x0)) / 2 - m_fmted.x0;
                    break;
                case outki.UIHorizontalAlignment.UIHorizontalAlignment_Right:
                    m_x0 = elementLayout.x1 - m_fmted.x1;
                    break;
                default: // left align
                    m_x0 = elementLayout.x0 - m_fmted.x0;
                    break;
            }

            switch (m_element.VerticalAlignment)
            {
                case outki.UIVerticalAlignment.UIVerticalAlignment_Top:
                    m_y0 = elementLayout.y0 - m_fmted.facey0;
                    break;
                case outki.UIVerticalAlignment.UIVerticalAlignment_Bottom:
                    m_y0 = elementLayout.y1 - m_fmted.facey1;
                    break;
                default: // center
                    // glyph actual sizes method
                    m_y0 = (elementLayout.y0 + elementLayout.y1 - (m_fmted.y1 - m_fmted.y0)) / 2 - m_fmted.y0;
                    break;
            }
        }