Game Control Plus  1.2.2
 All Classes Namespaces Functions Variables Pages
org.gamecontrolplus.gui.MEditableTextControl Class Reference
Inheritance diagram for org.gamecontrolplus.gui.MEditableTextControl:

Public Member Functions

 MEditableTextControl (PApplet theApplet, float p0, float p1, float p2, float p3, int scrollbars)
 
void setFocus (boolean focus)
 
void setPromptText (String ptext)
 
int getWrapWidth ()
 
void setWrapWidth (int wrapWidth)
 
String getPromptText ()
 
String getText ()
 
MStyledString getStyledText ()
 
void addStyle (TextAttribute attr, Object value, int charStart, int charEnd)
 
void addStyle (TextAttribute attr, Object value)
 
void clearStyles (int charStart, int charEnd)
 
void clearStyles ()
 
void setFont (Font font)
 
String getSelectedText ()
 
void setSelectedTextStyle (TextAttribute style, Object value)
 
void clearSelectionStyle ()
 
void setJustify (boolean justify)
 
void setLocalColorScheme (int cs)
 
boolean hasSelection ()
 
void setTextEditEnabled (boolean enableTextEdit)
 
boolean isTextEditEnabled ()
 
void keyEvent (KeyEvent e)
 
void flashCaret (MTimer timer)
 
void hsbEventHandler (MScrollbar scrollbar, MEvent event)
 
void vsbEventHandler (MScrollbar scrollbar, MEvent event)
 
void markForDisposal ()
 
boolean saveText (String fname)
 
boolean loadText (String fname)
 
- Public Member Functions inherited from org.gamecontrolplus.gui.MTextBase
 MTextBase (PApplet theApplet, float p0, float p1, float p2, float p3)
 
void setText (String text)
 
boolean loadText (String fname)
 
boolean saveText (String fname)
 
void setFont (Font font)
 
void setStyledText (MStyledString ss)
 
void setTextPlain ()
 
void setTextBold (int start, int end)
 
void setTextBold ()
 
void setTextItalic (int start, int end)
 
void setTextItalic ()
 
MStyledString getStyledText ()
 
String getText ()
 
- Public Member Functions inherited from org.gamecontrolplus.gui.MAbstractControl
 MAbstractControl (PApplet theApplet)
 
 MAbstractControl (PApplet theApplet, float p0, float p1, float p2, float p3)
 
void draw ()
 
void mouseEvent (MouseEvent event)
 
void keyEvent (KeyEvent e)
 
void pre ()
 
void post ()
 
void dispose ()
 
void forceBufferUpdate ()
 
boolean isOver (float x, float y)
 
void setLocalColorScheme (int cs)
 
void setLocalColorScheme (int cs, boolean includeChildren)
 
int getLocalColorScheme ()
 
void setAlpha (int alpha)
 
void setAlpha (int alpha, boolean includeChildren)
 
MAbstractControl getParent ()
 
PApplet getPApplet ()
 
PGraphics getSnapshot ()
 
void addEventHandler (Object obj, String methodName)
 
void moveTo (float px, float py)
 
float getX ()
 
float getY ()
 
float getCX ()
 
float getCY ()
 
float getWidth ()
 
float getHeight ()
 
void setVisible (boolean visible)
 
boolean isVisible ()
 
void setOpaque (boolean opaque)
 
boolean isOpaque ()
 
boolean isDragging ()
 
void setEnabled (boolean enable)
 
boolean isEnabled ()
 
void setFocus (boolean focus)
 
boolean hasFocus ()
 
void addControl (MAbstractControl c, float x, float y, float angle)
 
void addControl (MAbstractControl c, float x, float y)
 
void addControl (MAbstractControl c)
 
void addControls (MAbstractControl...controls)
 
int getCursorOver ()
 
void setCursorOver (int cursorOver)
 
void markForDisposal ()
 
String toString ()
 

Protected Member Functions

void loseFocus (MAbstractControl grabber)
 
void takeFocus ()
 
boolean moveCaretStartOfLine (TextLayoutHitInfo currPos)
 
boolean moveCaretEndOfLine (TextLayoutHitInfo currPos)
 
boolean moveCaretLeft (TextLayoutHitInfo currPos)
 
boolean moveCaretRight (TextLayoutHitInfo currPos)
 
void calculateCaretPos (TextLayoutHitInfo tlhi)
 
void keyPressedProcess (int keyCode, char keyChar, boolean shiftDown, boolean ctrlDown)
 
void keyTypedProcess (int keyCode, char keyChar, boolean shiftDown, boolean ctrlDown)
 
boolean changeText ()
 
- Protected Member Functions inherited from org.gamecontrolplus.gui.MTextBase
void addAttributeImpl (TextAttribute style, Object value)
 
void addAttributeImpl (TextAttribute style, Object value, int s, int e)
 
- Protected Member Functions inherited from org.gamecontrolplus.gui.MAbstractControl
void resize (float w, float h)
 
int whichHotSpot (float px, float py)
 
int getCurrHotSpot ()
 
PGraphics getBuffer ()
 
void updateBuffer ()
 
void createEventHandler (Object handlerObj, String methodName, Class[] param_classes, String[] param_names)
 
void fireEvent (Object...objects)
 
void setAvailable (boolean avail)
 
boolean isAvailable ()
 
void takeFocus ()
 
void loseFocus (MAbstractControl grabber)
 
void addToParent (MAbstractControl p)
 
AffineTransform getTransform (AffineTransform aff)
 
void calcTransformedOrigin (float px, float py)
 
void setZ (int parentZ)
 

Protected Attributes

MStyledString promptText = null
 
int wrapWidth = Integer.MAX_VALUE
 
float tx
 
float ptx
 
float caretX
 
boolean keepCursorInView = false
 
GeneralPath gpTextDisplayArea
 
TextLayoutHitInfo startTLHI = new TextLayoutHitInfo()
 
TextLayoutHitInfo endTLHI = new TextLayoutHitInfo()
 
final int scrollbarPolicy
 
boolean autoHide = false
 
MScrollbar hsb
 
MTimer caretFlasher
 
boolean showCaret = false
 
int endChar = -1
 
boolean textChanged = false
 
- Protected Attributes inherited from org.gamecontrolplus.gui.MTextBase
Font localFont = M4P.globalFont
 
- Protected Attributes inherited from org.gamecontrolplus.gui.MAbstractControl
PApplet winApp
 
int z = Z_STICKY
 
boolean dragging = false
 
MAbstractControl parent = null
 
LinkedList< MAbstractControlchildren = null
 
int localColorScheme = M4P.globalColorScheme
 
int[] palette = null
 
Color[] jpalette = null
 
int alphaLevel = M4P.globalAlpha
 
float x
 
float width
 
float halfWidth
 
float cx
 
float rotAngle
 
double[] temp = new double[2]
 
PGraphicsJava2D buffer = null
 
boolean bufferInvalid = true
 
boolean opaque = false
 
int cursorOver = HAND
 
float ox
 
Object eventHandlerObject = null
 
Method eventHandlerMethod = null
 
String eventHandlerMethodName
 
MHotSpot[] hotspots = null
 
int currSpot = -1
 

Static Protected Attributes

static float HORZ_SCROLL_RATE = 4f
 
static float VERT_SCROLL_RATE = 8
 
- Static Protected Attributes inherited from org.gamecontrolplus.gui.MTextBase
static final int TPAD = 2
 
static final int TPAD2 = TPAD * 2
 
static final int TPAD4 = TPAD * 4
 
- Static Protected Attributes inherited from org.gamecontrolplus.gui.MAbstractControl
static float epsilon = 0.001f
 

Package Functions

void setScrollbarValues (float sx, float sy)
 

Package Attributes

MTabManager tabManager = null
 
float ty
 
float th
 
float tw
 
float pty
 
float caretY
 
MScrollbar vsb
 
int startChar = -1
 
int pos = endChar
 
int nbr = 0
 
int adjust = 0
 
boolean selectionChanged = false
 
boolean textEditEnabled = true
 
- Package Attributes inherited from org.gamecontrolplus.gui.MAbstractControl
float y
 
float height
 
float halfHeight
 
float cy
 
float oy
 
boolean visible = true
 
boolean enabled = true
 
boolean available = true
 
int registeredMethods = 0
 

Additional Inherited Members

- Public Attributes inherited from org.gamecontrolplus.gui.MTextBase
MStyledString stext = new MStyledString("")
 
- Public Attributes inherited from org.gamecontrolplus.gui.MAbstractControl
String tag
 
int tagNo
 
- Public Attributes inherited from org.gamecontrolplus.gui.MConstants
int RED_SCHEME = 0
 
int GREEN_SCHEME = 1
 
int YELLOW_SCHEME = 2
 
int PURPLE_SCHEME = 3
 
int ORANGE_SCHEME = 4
 
int CYAN_SCHEME = 5
 
int BLUE_SCHEME = 6
 
int GOLD_SCHEME = 7
 
int SCHEME_8 = 8
 
int SCHEME_9 = 9
 
int SCHEME_10 = 10
 
int SCHEME_11 = 11
 
int SCHEME_12 = 12
 
int SCHEME_13 = 13
 
int SCHEME_14 = 14
 
int SCHEME_15 = 15
 
char HOME = java.awt.event.KeyEvent.VK_HOME
 
char END = java.awt.event.KeyEvent.VK_END
 
int CTRL_ANGULAR = 0x00000501
 
int CTRL_HORIZONTAL = 0x00000502
 
int CTRL_VERTICAL = 0x00000503
 
int EXIT_APP = 0x00000f01
 
int CLOSE_WINDOW = 0x00000f02
 
int KEEP_OPEN = 0x00000f03
 
int USER_COL_SCHEME = 0x00010102
 
int ALPHA_BLOCK = 128
 
int ALPHA_PICK = 48
 
int SCROLLBARS_NONE = 0x0000
 
int SCROLLBARS_VERTICAL_ONLY = 0x0001
 
int SCROLLBARS_HORIZONTAL_ONLY = 0x0002
 
int SCROLLBARS_BOTH = 0x0003
 
int SCROLLBARS_AUTOHIDE = 0x1000
 
int SCROLLBAR_VERTICAL = 1
 
int SCROLLBAR_HORIZONTAL = 2
 
int INTEGER = 0
 
int DECIMAL = 1
 
int EXPONENT = 2
 
int ORIENT_LEFT = -1
 
int ORIENT_TRACK = 0
 
int ORIENT_RIGHT = 1
 
int X4 = 1
 
int X8 = 2
 
int PLAIN = JOptionPane.PLAIN_MESSAGE
 
int ERROR = JOptionPane.ERROR_MESSAGE
 
int INFO = JOptionPane.INFORMATION_MESSAGE
 
int WARNING = JOptionPane.WARNING_MESSAGE
 
int QUERY = JOptionPane.QUESTION_MESSAGE
 
int YES_NO = JOptionPane.YES_NO_OPTION
 
int YES_NO_CANCEL = JOptionPane.YES_NO_CANCEL_OPTION
 
int OK_CANCEL = JOptionPane.OK_CANCEL_OPTION
 
int OK = JOptionPane.OK_OPTION
 
int YES = JOptionPane.YES_OPTION
 
int NO = JOptionPane.NO_OPTION
 
int CANCEL = JOptionPane.CANCEL_OPTION
 
int CLOSED = JOptionPane.CLOSED_OPTION
 
TextAttribute FAMILY = TextAttribute.FAMILY
 
TextAttribute WEIGHT = TextAttribute.WEIGHT
 
Float WEIGHT_EXTRA_LIGHT = new Float(0.5f)
 
Float WEIGHT_LIGHT = new Float(0.75f)
 
Float WEIGHT_DEMILIGHT = new Float(0.875f)
 
Float WEIGHT_REGULAR = new Float(1.0f)
 
Float WEIGHT_SEMIBOLD = new Float(1.25f)
 
Float WEIGHT_MEDIUM = new Float(1.5f)
 
Float WEIGHT_DEMIBOLD = new Float(1.75f)
 
Float WEIGHT_BOLD = new Float(2.0f)
 
Float WEIGHT_HEAVY = new Float(2.25f)
 
Float WEIGHT_EXTRABOLD = new Float(2.5f)
 
Float WEIGHT_ULTRABOLD = new Float(2.75f)
 
TextAttribute WIDTH = TextAttribute.WIDTH
 
Float WIDTH_CONDENSED = new Float(0.75f)
 
Float WIDTH_SEMI_CONDENSED = new Float(0.875f)
 
Float WIDTH_REGULAR = new Float(1.0f)
 
Float WIDTH_SEMI_EXTENDED = new Float(1.25f)
 
Float WIDTH_EXTENDED = new Float(1.5f)
 
TextAttribute POSTURE = TextAttribute.POSTURE
 
Float POSTURE_REGULAR = new Float(0.0f)
 
Float POSTURE_OBLIQUE = new Float(0.20f)
 
TextAttribute SIZE = TextAttribute.SIZE
 
TextAttribute SUPERSCRIPT = TextAttribute.SUPERSCRIPT
 
Integer SUPERSCRIPT_SUPER = new Integer(1)
 
Integer SUPERSCRIPT_SUB = new Integer(-1)
 
Integer SUPERSCRIPT_OFF = new Integer(0)
 
TextAttribute FOREGROUND = TextAttribute.FOREGROUND
 
TextAttribute BACKGROUND = TextAttribute.BACKGROUND
 
TextAttribute STRIKETHROUGH = TextAttribute.STRIKETHROUGH
 
Boolean STRIKETHROUGH_ON = new Boolean(true)
 
Boolean STRIKETHROUGH_OFF = new Boolean(false)
 
- Public Attributes inherited from org.gamecontrolplus.gui.MConstantsInternal
String SLIDER_STYLES = "|grey_blue|blue18px|green_red20px|purple18px|red_yellow18px|"
 
String DEFAULT_SLIDER_STYLE = "grey_blue"
 
int DRAW_METHOD = 0x00000001
 
int MOUSE_METHOD = 0x00000002
 
int PRE_METHOD = 0x00000004
 
int KEY_METHOD = 0x00000008
 
int POST_METHOD = 0x00000010
 
int ALL_METHOD = 0x0000001f
 
int RUNTIME_ERROR = 0xf0000000
 
int MISSING = 0x01000001
 
int NONEXISTANT = 0x01000002
 
int EXCP_IN_HANDLER = 0x81000003
 
int OFF_CONTROL = 0
 
int OVER_CONTROL = 1
 
int PRESS_CONTROL = 2
 
int DRAG_CONTROL = 3
 
int TINT_FOR_ALPHA = 255
 
int I_NONE = 0
 
int I_TL = 1
 
int I_TR = 2
 
int I_CL = 4
 
int I_CR = 8
 
int I_INSIDE = 16
 
int I_COVERED = 32
 
int I_MODES = 63
 
int MERGE_RUNS = 256
 
int CLIP_RUN = 512
 
int COMBI_MODES = 768
 
int[][] grid
 
BasicStroke pen_1_0 = new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)
 
BasicStroke pen_2_0 = new BasicStroke(2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)
 
BasicStroke pen_3_0 = new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)
 
BasicStroke pen_4_0 = new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)
 
- Static Protected Member Functions inherited from org.gamecontrolplus.gui.MAbstractControl
static int focusObjectZ ()
 
- Static Package Attributes inherited from org.gamecontrolplus.gui.MAbstractControl
static MAbstractControl focusIsWith = null
 
static MAbstractControl controlToTakeFocus = null
 
static MAbstractControl cursorIsOver
 
static final int Z_PANEL = 1024
 
static final int Z_STICKY = 0
 
static final int Z_SLIPPY = 24
 

Detailed Description

This class is the basis for the GTextField and GTextArea classes.

Author
Peter Lager

Member Function Documentation

void org.gamecontrolplus.gui.MEditableTextControl.addStyle ( TextAttribute  attr,
Object  value,
int  charStart,
int  charEnd 
)

Adds the text attribute to a range of characters on a particular line. If charEnd is past the EOL then the attribute will be applied to the end-of-line.

Parameters
attrthe text attribute to add
valuevalue of the text attribute
lineNothe line number (starts at 0)
charStartthe position of the first character to apply the attribute
charEndthe position after the last character to apply the attribute
void org.gamecontrolplus.gui.MEditableTextControl.addStyle ( TextAttribute  attr,
Object  value 
)

Adds the text attribute to a range of characters on a particular line. If charEnd is past the EOL then the attribute will be applied to the end-of-line.

Parameters
attrthe text attribute to add
valuevalue of the text attribute
lineNothe line number (starts at 0)
charStartthe position of the first character to apply the attribute
charEndthe position after the last character to apply the attribute
void org.gamecontrolplus.gui.MEditableTextControl.calculateCaretPos ( TextLayoutHitInfo  tlhi)
protected

Calculate the caret (text insertion point)

Parameters
tlhi
void org.gamecontrolplus.gui.MEditableTextControl.clearSelectionStyle ( )

Clear any styles applied to the selected text.

void org.gamecontrolplus.gui.MEditableTextControl.clearStyles ( int  charStart,
int  charEnd 
)

Clears all text attribute from a range of characters starting at position charStart and ending with the character preceding charEnd.

Parameters
charStartthe position of the first character to apply the attribute
charEndthe position after the last character to apply the attribute
void org.gamecontrolplus.gui.MEditableTextControl.clearStyles ( )

Clear all styles from the entire text.

void org.gamecontrolplus.gui.MEditableTextControl.flashCaret ( MTimer  timer)

Do not call this directly. A timer calls this method as and when required.

String org.gamecontrolplus.gui.MEditableTextControl.getPromptText ( )

Get the default text for this control

Returns
the default text without styling
String org.gamecontrolplus.gui.MEditableTextControl.getSelectedText ( )

Get the text that has been selected (highlighted) by the user.

Returns
the selected text without styling
MStyledString org.gamecontrolplus.gui.MEditableTextControl.getStyledText ( )

Get the styled text in the control

Returns
the text with styling
String org.gamecontrolplus.gui.MEditableTextControl.getText ( )

Get the text in the control

Returns
the text without styling
int org.gamecontrolplus.gui.MEditableTextControl.getWrapWidth ( )
Returns
the wrapWidth
boolean org.gamecontrolplus.gui.MEditableTextControl.hasSelection ( )

Find out if some text is selected (highlighted)

Returns
true if some text is selected else false
void org.gamecontrolplus.gui.MEditableTextControl.hsbEventHandler ( MScrollbar  scrollbar,
MEvent  event 
)

Do not call this method directly, G4P uses it to handle input from the horizontal scrollbar.

boolean org.gamecontrolplus.gui.MEditableTextControl.isTextEditEnabled ( )

Is this control keyboard enabled

Returns
boolean org.gamecontrolplus.gui.MEditableTextControl.loadText ( String  fname)

Load the styled string to be used by this control.
It will also restore any text selection saved with the text.

Parameters
fnamethe name of the file to use
Returns
true if loaded successfully else false
void org.gamecontrolplus.gui.MEditableTextControl.loseFocus ( MAbstractControl  grabber)
protected

Give up focus but if the text is only made from spaces then set it to null text.
Fire focus events for the GTextField and GTextArea controls

void org.gamecontrolplus.gui.MEditableTextControl.markForDisposal ( )

Permanently dispose of this control.

boolean org.gamecontrolplus.gui.MEditableTextControl.moveCaretEndOfLine ( TextLayoutHitInfo  currPos)
protected

Move caret to the end of the line that has the current caret position

Parameters
currPosthe current position of the caret
Returns
true if caret moved else false
boolean org.gamecontrolplus.gui.MEditableTextControl.moveCaretLeft ( TextLayoutHitInfo  currPos)
protected

Move caret left by one character.

Parameters
currPosthe current position of the caret
Returns
true if caret moved else false
boolean org.gamecontrolplus.gui.MEditableTextControl.moveCaretRight ( TextLayoutHitInfo  currPos)
protected

Move caret right by one character.

Parameters
currPosthe current position of the caret
Returns
true if caret moved else false
boolean org.gamecontrolplus.gui.MEditableTextControl.moveCaretStartOfLine ( TextLayoutHitInfo  currPos)
protected

Move caret to home position

Parameters
currPosthe current position of the caret
Returns
true if caret moved else false
boolean org.gamecontrolplus.gui.MEditableTextControl.saveText ( String  fname)

Save the styled text used by this control to file.
It will also save the start and end position of any text selection.

Parameters
fnamethe name of the file to use
Returns
true if saved successfully else false
void org.gamecontrolplus.gui.MEditableTextControl.setFocus ( boolean  focus)

Determines whether this component is to have focus or not.
Fire focus events for the GTextField and GTextArea controls

Parameters
focus
void org.gamecontrolplus.gui.MEditableTextControl.setFont ( Font  font)

Set the font for this control.

Parameters
font
void org.gamecontrolplus.gui.MEditableTextControl.setLocalColorScheme ( int  cs)

Sets the local colour scheme for this control

void org.gamecontrolplus.gui.MEditableTextControl.setPromptText ( String  ptext)

Set the default text for this control. If provided this text will be displayed in italic whenever it is empty.

Parameters
ptext
void org.gamecontrolplus.gui.MEditableTextControl.setScrollbarValues ( float  sx,
float  sy 
)
package

Used internally to set the scrollbar values as the text changes.

Parameters
sx
sy
void org.gamecontrolplus.gui.MEditableTextControl.setSelectedTextStyle ( TextAttribute  style,
Object  value 
)

If some text has been selected then set the style. If there is no selection then the text is unchanged.

Parameters
style
void org.gamecontrolplus.gui.MEditableTextControl.setTextEditEnabled ( boolean  enableTextEdit)

Determines whether the text can be edited using the keyboard or mouse. It still allows the text to be modified by the sketch code.
If text editing is being disabled and the control has focus then it is forced to give up that focus.
This might be useful if you want to use a GTextArea control to display large amounts of text that needs scrolling (so cannot use a GLabel) but must not change e.g. a user instruction guide.

Parameters
enableTextEditfalse to disable keyboard input
void org.gamecontrolplus.gui.MEditableTextControl.setWrapWidth ( int  wrapWidth)
Parameters
wrapWidththe wrapWidth to set
void org.gamecontrolplus.gui.MEditableTextControl.takeFocus ( )
protected

Give the focus to this component but only after allowing the current component with focus to release it gracefully.
Always cancel the keyFocusIsWith irrespective of the component type. Fire focus events for the GTextField and GTextArea controls

void org.gamecontrolplus.gui.MEditableTextControl.vsbEventHandler ( MScrollbar  scrollbar,
MEvent  event 
)

Do not call this method directly, G4P uses it to handle input from the vertical scrollbar.