com.threerings.opengl.gui
Class TextArea

java.lang.Object
  extended by com.threerings.opengl.gui.Component
      extended by com.threerings.opengl.gui.Container
          extended by com.threerings.opengl.gui.TextArea
All Implemented Interfaces:
ConfigUpdateListener<ManagedConfig>

public class TextArea
extends Container

Displays one or more lines of text which may contain basic formatting (changing of color, toggling bold, italic and underline). Newline characters in the appended text will result in line breaks in the on-screen layout.


Nested Class Summary
protected static class TextArea.Line
          Contains the segments of text on a single line.
protected static class TextArea.Run
          Used to associate a style with a run of text.
 
Nested classes/interfaces inherited from class com.threerings.opengl.gui.Container
Container.ChildOp
 
Field Summary
protected  Color4f[] _effcols
           
protected  int[] _effsizes
           
protected  int[] _haligns
           
protected  ArrayList<TextArea.Line> _lines
           
protected  BoundedRangeModel _model
           
protected  int _prefWidth
           
protected  ArrayList<TextArea.Run> _runs
           
protected  int[] _teffects
           
protected  TextFactory[][] _textfacts
           
protected  int[] _valigns
           
static int BOLD
          A font style constant.
static int ITALIC
          A font style constant.
static int PLAIN
          A font style constant.
 
Fields inherited from class com.threerings.opengl.gui.Container
_children, _layout
 
Fields inherited from class com.threerings.opengl.gui.Component
_alpha, _backgrounds, _borders, _colors, _ctx, _cursor, _enabled, _height, _hover, _hoverable, _insets, _listeners, _parent, _preferredSize, _properties, _rect, _styleConfigs, _tipmouse, _tiptext, _tooltipStyle, _transferHandler, _valid, _visible, _width, _x, _y, DEFAULT, DISABLED, HOVER, STATE_COUNT, STATE_PCLASSES
 
Constructor Summary
TextArea(GlContext ctx)
           
TextArea(GlContext ctx, String text)
           
 
Method Summary
 void appendText(String text)
          Appends text with the foreground color in the plain style.
 void appendText(String text, Color4f color)
          Appends text with the specified color in the plain style.
 void appendText(String text, Color4f color, int style)
          Appends text with the specified color and style.
 void appendText(String text, int style)
          Appends text with the foreground color in the specified style.
 void clearText()
          Clears out the text displayed in this area.
protected  Dimension computePreferredSize(int whint, int hhint)
          Computes and returns a preferred size for this component.
protected  String getDefaultStyleConfig()
          Returns the name of the default config to be used for all instances of this component.
 Color4f getEffectColor()
          Returns the color to use for our text effect.
 int getEffectSize()
          Returns the effect size for this component's text.
 int getHorizontalAlignment()
          Returns the horizontal alignment for this component's text.
 int getLineCount()
          Returns the number of lines of text contained in this area.
 BoundedRangeModel getScrollModel()
          Returns a model that can be wired to a scroll bar to allow scrolling up and down through the lines in this text area.
 int getTextEffect()
          Returns the effect for this component's text.
 TextFactory getTextFactory()
          Returns a text factory suitable for creating text in the style defined by the component's current state.
 TextFactory getTextFactory(int style)
          Returns a text factory suitable for creating text in the style defined by the component's current state.
 int getVerticalAlignment()
          Returns the vertical alignment for this component's text.
protected  void layout()
          Instructs this component to lay itself out.
protected  void modelDidChange()
          Called when our model has changed (due to scrolling by a scroll bar or a call to scrollToLine(int), etc.).
protected  void refigureContents(int width)
          Reflows the entirety of our text.
protected  void renderComponent(Renderer renderer)
          Renders any custom bits for this component.
 void scrollToLine(int line)
          Scrolls our display such that the sepecified line is visible.
 void setEnabled(boolean enabled)
          Sets this components enabled state.
 void setPreferredWidth(int width)
          Configures the preferred width of this text area (the preferred height will be calculated from the font).
 void setText(String text)
          Clears any text in this text area and appends the supplied text.
protected  void updateFromStyleConfig(int state, StyleConfig.Original config)
          Updates from the resolved style config.
 
Methods inherited from class com.threerings.opengl.gui.Container
add, add, add, add, applyOperation, getComponent, getComponentCount, getComponentIndex, getFirstDescendantFocus, getHitComponent, getLastDescendantFocus, getLayoutManager, getNextFocus, getPreviousFocus, remove, remove, removeAll, replace, setAlpha, setHoverable, setLayoutManager, validate, wasAdded, wasRemoved
 
Methods inherited from class com.threerings.opengl.gui.Component
acceptsFocus, addListener, boundsToString, changeCursor, configUpdated, contains, createDefaultTooltipComponent, createDefaultTooltipComponent, createTooltipComponent, dispatchEvent, emitEvent, getAbsoluteX, getAbsoluteY, getAlpha, getBackground, getBorder, getBounds, getColor, getContext, getCursor, getFallbackState, getFocusTarget, getHeight, getInsets, getNextFocus, getParent, getPreferredSize, getPreviousFocus, getProperty, getState, getStateCount, getStatePseudoClass, getStyleConfigs, getTooltipText, getTooltipTimeout, getTooltipWindowStyle, getTransferHandler, getWidth, getWindow, getX, getY, hasFocus, intersectScissor, invalidate, isAdded, isEnabled, isHoverable, isShowing, isTooltipRelativeToMouse, isValid, isVisible, removeAllListeners, removeAllListeners, removeListener, render, renderBackground, renderBorder, requestFocus, scrollRectToVisible, scrollRectToVisible, setBackground, setBounds, setCursor, setLocation, setParent, setPreferredSize, setPreferredSize, setProperty, setSize, setStyleConfig, setStyleConfig, setStyleConfig, setStyleConfigs, setTooltipRelativeToMouse, setTooltipText, setTransferHandler, setVisible, stateDidChange, updateCursor, updateFromStyleConfig
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PLAIN

public static final int PLAIN
A font style constant.

See Also:
Constant Field Values

BOLD

public static final int BOLD
A font style constant.

See Also:
Constant Field Values

ITALIC

public static final int ITALIC
A font style constant.

See Also:
Constant Field Values

_haligns

protected int[] _haligns

_valigns

protected int[] _valigns

_teffects

protected int[] _teffects

_effsizes

protected int[] _effsizes

_effcols

protected Color4f[] _effcols

_textfacts

protected TextFactory[][] _textfacts

_model

protected BoundedRangeModel _model

_prefWidth

protected int _prefWidth

_runs

protected ArrayList<TextArea.Run> _runs

_lines

protected ArrayList<TextArea.Line> _lines
Constructor Detail

TextArea

public TextArea(GlContext ctx)

TextArea

public TextArea(GlContext ctx,
                String text)
Method Detail

getHorizontalAlignment

public int getHorizontalAlignment()
Returns the horizontal alignment for this component's text.


getVerticalAlignment

public int getVerticalAlignment()
Returns the vertical alignment for this component's text.


setPreferredWidth

public void setPreferredWidth(int width)
Configures the preferred width of this text area (the preferred height will be calculated from the font).


getScrollModel

public BoundedRangeModel getScrollModel()
Returns a model that can be wired to a scroll bar to allow scrolling up and down through the lines in this text area.


setText

public void setText(String text)
Clears any text in this text area and appends the supplied text.


appendText

public void appendText(String text)
Appends text with the foreground color in the plain style.


appendText

public void appendText(String text,
                       Color4f color)
Appends text with the specified color in the plain style.


appendText

public void appendText(String text,
                       int style)
Appends text with the foreground color in the specified style.


appendText

public void appendText(String text,
                       Color4f color,
                       int style)
Appends text with the specified color and style.


clearText

public void clearText()
Clears out the text displayed in this area.


scrollToLine

public void scrollToLine(int line)
Scrolls our display such that the sepecified line is visible.


getLineCount

public int getLineCount()
Returns the number of lines of text contained in this area.


getTextFactory

public TextFactory getTextFactory()
Returns a text factory suitable for creating text in the style defined by the component's current state.


getTextFactory

public TextFactory getTextFactory(int style)
Returns a text factory suitable for creating text in the style defined by the component's current state.


getTextEffect

public int getTextEffect()
Returns the effect for this component's text.


getEffectSize

public int getEffectSize()
Returns the effect size for this component's text.


getEffectColor

public Color4f getEffectColor()
Returns the color to use for our text effect.


setEnabled

public void setEnabled(boolean enabled)
Description copied from class: Component
Sets this components enabled state. A component that is not enabled should not respond to user interaction and should render itself in such a way as not to afford user interaction.

Overrides:
setEnabled in class Container

getDefaultStyleConfig

protected String getDefaultStyleConfig()
Description copied from class: Component
Returns the name of the default config to be used for all instances of this component. Derived classes will likely want to override this method and set up a default config for their type of component.

Overrides:
getDefaultStyleConfig in class Container

updateFromStyleConfig

protected void updateFromStyleConfig(int state,
                                     StyleConfig.Original config)
Description copied from class: Component
Updates from the resolved style config.

Overrides:
updateFromStyleConfig in class Component

layout

protected void layout()
Description copied from class: Component
Instructs this component to lay itself out. This is called as a result of the component changing size.

Overrides:
layout in class Container

renderComponent

protected void renderComponent(Renderer renderer)
Description copied from class: Component
Renders any custom bits for this component. This is called with the graphics context translated to (0, 0) relative to this component.

Overrides:
renderComponent in class Container

computePreferredSize

protected Dimension computePreferredSize(int whint,
                                         int hhint)
Description copied from class: Component
Computes and returns a preferred size for this component. This method is called if no overriding preferred size has been supplied.

Overrides:
computePreferredSize in class Container
Returns:
the computed preferred size of this component in a newly created Dimension instance which will be adopted (and modified) by the caller.

refigureContents

protected void refigureContents(int width)
Reflows the entirety of our text.


modelDidChange

protected void modelDidChange()
Called when our model has changed (due to scrolling by a scroll bar or a call to scrollToLine(int), etc.).