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); }
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; } }