Package arc.scene.ui

Class Label

Direct Known Subclasses:
FLabel

public class Label extends Element
A text label, with optional word wrapping.

The preferred size of the label is determined by the actual text bounds, unless word wrap is enabled.

  • Field Details

    • tempColor

      protected static final Color tempColor
    • prefSizeLayout

      protected static final GlyphLayout prefSizeLayout
    • layout

      protected final GlyphLayout layout
    • prefSize

      protected final Vec2 prefSize
    • text

      protected final StringBuilder text
    • style

      protected Label.LabelStyle style
    • cache

      protected FontCache cache
    • labelAlign

      protected int labelAlign
    • lineAlign

      protected int lineAlign
    • wrap

      protected boolean wrap
    • lastPrefHeight

      protected float lastPrefHeight
    • prefSizeInvalid

      protected boolean prefSizeInvalid
    • fontScaleX

      protected float fontScaleX
    • fontScaleY

      protected float fontScaleY
    • fontScaleChanged

      protected boolean fontScaleChanged
    • ellipsis

      protected String ellipsis
  • Constructor Details

  • Method Details

    • getStyle

      public Label.LabelStyle getStyle()
      Returns the label's style. Modifying the returned style may not have an effect until setStyle(LabelStyle) is called.
    • setStyle

      public void setStyle(Label.LabelStyle style)
    • setText

      public void setText(Prov<CharSequence> sup)
    • textEquals

      public boolean textEquals(CharSequence other)
    • getText

      public StringBuilder getText()
    • setText

      public void setText(CharSequence newText)
      Parameters:
      newText - May be null, "" will be used. If this text starts with '$' or '@', this label will look in Core.bundle for matching text.
    • invalidate

      public void invalidate()
      Description copied from class: Element
      Invalidates this actor's layout, causing Element.layout() to happen the next time Element.validate() is called. This method should be called when state changes in the actor that requires a layout but does not change the minimum, preferred, maximum, or actual size of the actor (meaning it does not affect the parent actor's layout).
      Overrides:
      invalidate in class Element
    • layout

      public void layout()
      Description copied from class: Element
      Computes and caches any information needed for drawing and, if this actor has children, positions and sizes each child, calls Element.invalidate() on any each child whose width or height has changed, and calls Element.validate() on each child. This method should almost never be called directly, instead Element.validate() should be used.
      Overrides:
      layout in class Element
    • draw

      public void draw()
      Description copied from class: Element
      Draws the element. Does nothing by default.
      Overrides:
      draw in class Element
    • getPrefWidth

      public float getPrefWidth()
      Overrides:
      getPrefWidth in class Element
    • getPrefHeight

      public float getPrefHeight()
      Overrides:
      getPrefHeight in class Element
    • getGlyphLayout

      public GlyphLayout getGlyphLayout()
    • setWrap

      public void setWrap(boolean wrap)
      If false, the text will only wrap where it contains newlines (\n). The preferred size of the label will be the text bounds. If true, the text will word wrap using the width of the label. The preferred width of the label will be 0, it is expected that something external will set the width of the label. Wrapping will not occur when ellipsis is enabled. Default is false.

      When wrap is enabled, the label's preferred height depends on the width of the label. In some cases the parent of the label will need to layout twice: once to set the width of the label and a second time to adjust to the label's new preferred height.

    • getLabelAlign

      public int getLabelAlign()
    • getLineAlign

      public int getLineAlign()
    • setAlignment

      public void setAlignment(int alignment)
      Parameters:
      alignment - Aligns all the text within the label (default left center) and each line of text horizontally (default left).
      See Also:
    • setAlignment

      public void setAlignment(int labelAlign, int lineAlign)
      Parameters:
      labelAlign - Aligns all the text within the label (default left center).
      lineAlign - Aligns each line of text horizontally (default left).
      See Also:
    • setFontScale

      public void setFontScale(float fontScale)
    • setFontScale

      public void setFontScale(float fontScaleX, float fontScaleY)
    • getFontScaleX

      public float getFontScaleX()
    • setFontScaleX

      public void setFontScaleX(float fontScaleX)
    • getFontScaleY

      public float getFontScaleY()
    • setFontScaleY

      public void setFontScaleY(float fontScaleY)
    • setEllipsis

      public void setEllipsis(String ellipsis)
      When non-null the text will be truncated "..." if it does not fit within the width of the label. Wrapping will not occur when ellipsis is enabled. Default is false.
    • setEllipsis

      public void setEllipsis(boolean ellipsis)
      When true the text will be truncated "..." if it does not fit within the width of the label. Wrapping will not occur when ellipsis is true. Default is false.
    • getFontCache

      public FontCache getFontCache()
      Allows subclasses to access the cache.
    • toString

      public String toString()
      Overrides:
      toString in class Element