Crazy Eddie's GUI System
0.8.4
|
Base class for the multi-line edit box widget. More...
Classes | |
struct | LineInfo |
struct used to store information about a formatted line within the paragraph. More... | |
Public Types | |
typedef std::vector< LineInfo CEGUI_VECTOR_ALLOC(LineInfo)> | LineList |
Type for collection of LineInfos. | |
Public Member Functions | |
bool | hasInputFocus (void) const |
return true if the edit box has input focus. | |
bool | isReadOnly (void) const |
return true if the edit box is read-only. | |
size_t | getCaretIndex (void) const |
return the current position of the caret. | |
size_t | getSelectionStartIndex (void) const |
return the current selection start point. | |
size_t | getSelectionEndIndex (void) const |
return the current selection end point. | |
size_t | getSelectionLength (void) const |
return the length of the current selection (in code points / characters). | |
size_t | getMaxTextLength (void) const |
return the maximum text length set for this edit box. | |
bool | isWordWrapped (void) const |
Return whether the text in the edit box will be word-wrapped. | |
Scrollbar * | getVertScrollbar () const |
Return a pointer to the vertical scrollbar component widget for this MultiLineEditbox. | |
bool | isVertScrollbarAlwaysShown (void) const |
Return whether the vertical scroll bar is always shown. | |
Scrollbar * | getHorzScrollbar () const |
Return a pointer to the horizontal scrollbar component widget for this MultiLineEditbox. | |
Rectf | getTextRenderArea (void) const |
Return a Rect object describing, in un-clipped pixels, the window relative area that the text should be rendered in to. | |
const LineList & | getFormattedLines (void) const |
size_t | getLineNumberFromIndex (size_t index) const |
Return the line number a given index falls on with the current formatting. Will return last line if index is out of range. | |
virtual void | initialiseComponents (void) |
Initialise the Window based object ready for use. | |
void | setReadOnly (bool setting) |
Specify whether the edit box is read-only. | |
void | setCaretIndex (size_t caret_pos) |
Set the current position of the caret. | |
void | setSelection (size_t start_pos, size_t end_pos) |
Define the current selection for the edit box. | |
void | setSelectionStart (size_t start_pos) |
Define the current selection start for the Editbox. | |
void | setSelectionLength (size_t length) |
Define the current selection for the Editbox. | |
void | setMaxTextLength (size_t max_len) |
set the maximum text length for this edit box. | |
void | ensureCaretIsVisible (void) |
Scroll the view so that the current caret position is visible. | |
void | setWordWrapping (bool setting) |
Set whether the text will be word wrapped or not. | |
void | setShowVertScrollbar (bool setting) |
Set whether the vertical scroll bar should always be shown. | |
void | setSelectionBrushImage (const Image *image) |
const Image * | getSelectionBrushImage () const |
virtual bool | performCopy (Clipboard &clipboard) |
virtual bool | performCut (Clipboard &clipboard) |
virtual bool | performPaste (Clipboard &clipboard) |
void | formatText (const bool update_scrollbars) |
Format the text into lines as dictated by the formatting options. | |
MultiLineEditbox (const String &type, const String &name) | |
Constructor for the MultiLineEditbox base class. | |
virtual | ~MultiLineEditbox (void) |
Destructor for the MultiLineEditbox base class. | |
Static Public Attributes | |
static const String | EventNamespace |
Namespace for global events. | |
static const String | WidgetTypeName |
Window factory name. | |
static const String | EventReadOnlyModeChanged |
static const String | EventWordWrapModeChanged |
static const String | EventMaximumTextLengthChanged |
static const String | EventCaretMoved |
static const String | EventTextSelectionChanged |
static const String | EventEditboxFull |
static const String | EventVertScrollbarModeChanged |
static const String | EventHorzScrollbarModeChanged |
static const String | VertScrollbarName |
Widget name for the vertical scrollbar component. | |
static const String | HorzScrollbarName |
Widget name for the horizontal scrollbar component. | |
Protected Member Functions | |
void | formatText (void) |
Return a Rect object describing, in un-clipped pixels, the window relative area that the text should be rendered in to. | |
size_t | getNextTokenLength (const String &text, size_t start_idx) const |
Return the length of the next token in String text starting at index start_idx. | |
void | configureScrollbars (void) |
display required integrated scroll bars according to current state of the edit box and update their values. | |
size_t | getTextIndexFromPosition (const Vector2f &pt) const |
Return the text code point index that is rendered closest to screen position pt. | |
void | clearSelection (void) |
Clear the current selection setting. | |
void | eraseSelectedText (bool modify_text=true) |
Erase the currently selected text. | |
void | handleBackspace (void) |
Processing for backspace key. | |
void | handleDelete (void) |
Processing for Delete key. | |
void | handleCharLeft (uint sysKeys) |
Processing to move caret one character left. | |
void | handleWordLeft (uint sysKeys) |
Processing to move caret one word left. | |
void | handleCharRight (uint sysKeys) |
Processing to move caret one character right. | |
void | handleWordRight (uint sysKeys) |
Processing to move caret one word right. | |
void | handleDocHome (uint sysKeys) |
Processing to move caret to the start of the text. | |
void | handleDocEnd (uint sysKeys) |
Processing to move caret to the end of the text. | |
void | handleLineHome (uint sysKeys) |
Processing to move caret to the start of the current line. | |
void | handleLineEnd (uint sysKeys) |
Processing to move caret to the end of the current line. | |
void | handleLineUp (uint sysKeys) |
Processing to move caret up a line. | |
void | handleLineDown (uint sysKeys) |
Processing to move caret down a line. | |
void | handleNewLine (uint sysKeys) |
Processing to insert a new line / paragraph. | |
void | handlePageUp (uint sysKeys) |
Processing to move caret one page up. | |
void | handlePageDown (uint sysKeys) |
Processing to move caret one page down. | |
bool | handle_scrollChange (const EventArgs &args) |
Internal handler that is triggered when the user interacts with the scrollbars. | |
bool | handle_vertScrollbarVisibilityChanged (const EventArgs &) |
virtual bool | validateWindowRenderer (const WindowRenderer *renderer) const |
Function used in checking if a WindowRenderer is valid for this window. | |
void | onReadOnlyChanged (WindowEventArgs &e) |
Handler called when the read-only state of the edit box changes. | |
void | onWordWrapModeChanged (WindowEventArgs &e) |
Handler called when the word wrap mode for the the edit box changes. | |
void | onMaximumTextLengthChanged (WindowEventArgs &e) |
Handler called when the maximum text length for the edit box changes. | |
void | onCaretMoved (WindowEventArgs &e) |
Handler called when the caret moves. | |
void | onTextSelectionChanged (WindowEventArgs &e) |
Handler called when the text selection changes. | |
void | onEditboxFullEvent (WindowEventArgs &e) |
Handler called when the edit box is full. | |
void | onVertScrollbarModeChanged (WindowEventArgs &e) |
Handler called when the 'always show' setting for the vertical scroll bar changes. | |
void | onHorzScrollbarModeChanged (WindowEventArgs &e) |
Handler called when 'always show' setting for the horizontal scroll bar changes. | |
virtual void | onMouseButtonDown (MouseEventArgs &e) |
Handler called when a mouse button has been depressed within this window's area. | |
virtual void | onMouseButtonUp (MouseEventArgs &e) |
Handler called when a mouse button has been released within this window's area. | |
virtual void | onMouseDoubleClicked (MouseEventArgs &e) |
Handler called when a mouse button has been double-clicked within this window's area. | |
virtual void | onMouseTripleClicked (MouseEventArgs &e) |
Handler called when a mouse button has been triple-clicked within this window's area. | |
virtual void | onMouseMove (MouseEventArgs &e) |
Handler called when the mouse cursor has been moved within this window's area. | |
virtual void | onCaptureLost (WindowEventArgs &e) |
Handler called when this window loses capture of mouse inputs. | |
virtual void | onCharacter (KeyEventArgs &e) |
Handler called when a character-key has been pressed while this window has input focus. | |
virtual void | onKeyDown (KeyEventArgs &e) |
Handler called when a key as been depressed while this window has input focus. | |
virtual void | onTextChanged (WindowEventArgs &e) |
Handler called when the window's text is changed. | |
virtual void | onSized (ElementEventArgs &e) |
Handler called when the window's size changes. | |
virtual void | onMouseWheel (MouseEventArgs &e) |
Handler called when the mouse wheel (z-axis) position changes within this window's area. | |
virtual void | onFontChanged (WindowEventArgs &e) |
Handler called when the window's font is changed. | |
Protected Attributes | |
bool | d_readOnly |
true if the edit box is in read-only mode | |
size_t | d_maxTextLen |
Maximum number of characters for this Editbox. | |
size_t | d_caretPos |
Position of the caret / insert-point. | |
size_t | d_selectionStart |
Start of selection area. | |
size_t | d_selectionEnd |
End of selection area. | |
bool | d_dragging |
true when a selection is being dragged. | |
size_t | d_dragAnchorIdx |
Selection index for drag selection anchor point. | |
bool | d_wordWrap |
true when formatting uses word-wrapping. | |
LineList | d_lines |
Holds the lines for the current formatting. | |
float | d_widestExtent |
Holds the extent of the widest line as calculated in the last formatting pass. | |
bool | d_forceVertScroll |
true if vertical scrollbar should always be displayed | |
bool | d_forceHorzScroll |
true if horizontal scrollbar should always be displayed | |
const Image * | d_selectionBrush |
Image to use as the selection brush (should be set by derived class). | |
Static Protected Attributes | |
static String | d_lineBreakChars |
Holds what we consider to be line break characters. |
Base class for the multi-line edit box widget.
void CEGUI::MultiLineEditbox::eraseSelectedText | ( | bool | modify_text = true | ) | [protected] |
Erase the currently selected text.
modify_text | when true, the actual text will be modified. When false, everything is done except erasing the characters. |
void CEGUI::MultiLineEditbox::formatText | ( | const bool | update_scrollbars | ) |
Format the text into lines as dictated by the formatting options.
update_scrollbars |
|
void CEGUI::MultiLineEditbox::formatText | ( | void | ) | [protected] |
Return a Rect object describing, in un-clipped pixels, the window relative area that the text should be rendered in to.
Format the text into lines as needed by the current formatting options.
size_t CEGUI::MultiLineEditbox::getCaretIndex | ( | void | ) | const [inline] |
return the current position of the caret.
Return a pointer to the horizontal scrollbar component widget for this MultiLineEditbox.
UnknownObjectException | Thrown if the horizontal Scrollbar component does not exist. |
size_t CEGUI::MultiLineEditbox::getMaxTextLength | ( | void | ) | const [inline] |
return the maximum text length set for this edit box.
size_t CEGUI::MultiLineEditbox::getNextTokenLength | ( | const String & | text, |
size_t | start_idx | ||
) | const [protected] |
Return the length of the next token in String text starting at index start_idx.
size_t CEGUI::MultiLineEditbox::getSelectionEndIndex | ( | void | ) | const |
return the current selection end point.
size_t CEGUI::MultiLineEditbox::getSelectionLength | ( | void | ) | const |
return the length of the current selection (in code points / characters).
size_t CEGUI::MultiLineEditbox::getSelectionStartIndex | ( | void | ) | const |
return the current selection start point.
size_t CEGUI::MultiLineEditbox::getTextIndexFromPosition | ( | const Vector2f & | pt | ) | const [protected] |
Return the text code point index that is rendered closest to screen position pt.
pt | Point object describing a position on the screen in pixels. |
Rectf CEGUI::MultiLineEditbox::getTextRenderArea | ( | void | ) | const |
Return a pointer to the vertical scrollbar component widget for this MultiLineEditbox.
UnknownObjectException | Thrown if the vertical Scrollbar component does not exist. |
bool CEGUI::MultiLineEditbox::hasInputFocus | ( | void | ) | const |
return true if the edit box has input focus.
virtual void CEGUI::MultiLineEditbox::initialiseComponents | ( | void | ) | [virtual] |
Initialise the Window based object ready for use.
Reimplemented from CEGUI::Window.
bool CEGUI::MultiLineEditbox::isReadOnly | ( | void | ) | const [inline] |
return true if the edit box is read-only.
bool CEGUI::MultiLineEditbox::isVertScrollbarAlwaysShown | ( | void | ) | const |
Return whether the vertical scroll bar is always shown.
bool CEGUI::MultiLineEditbox::isWordWrapped | ( | void | ) | const |
Return whether the text in the edit box will be word-wrapped.
virtual void CEGUI::MultiLineEditbox::onCaptureLost | ( | WindowEventArgs & | e | ) | [protected, virtual] |
Handler called when this window loses capture of mouse inputs.
e | WindowEventArgs object whose 'window' pointer field is set to the window that triggered the event. For this event the trigger window is always 'this'. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onCharacter | ( | KeyEventArgs & | e | ) | [protected, virtual] |
Handler called when a character-key has been pressed while this window has input focus.
e | KeyEventArgs object whose 'codepoint' field is set to the Unicode code point (encoded as utf32) for the character typed, and whose 'sysKeys' field represents the combination of SystemKey that were active when the event was generated. All other fields should be considered as 'junk'. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onFontChanged | ( | WindowEventArgs & | e | ) | [protected, virtual] |
Handler called when the window's font is changed.
e | WindowEventArgs object whose 'window' pointer field is set to the window that triggered the event. For this event the trigger window is always 'this'. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onKeyDown | ( | KeyEventArgs & | e | ) | [protected, virtual] |
Handler called when a key as been depressed while this window has input focus.
e | KeyEventArgs object whose 'scancode' field is set to the Key::Scan value representing the key that was pressed, and whose 'sysKeys' field represents the combination of SystemKey that were active when the event was generated. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onMouseButtonDown | ( | MouseEventArgs & | e | ) | [protected, virtual] |
Handler called when a mouse button has been depressed within this window's area.
e | MouseEventArgs object. All fields are valid. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onMouseButtonUp | ( | MouseEventArgs & | e | ) | [protected, virtual] |
Handler called when a mouse button has been released within this window's area.
e | MouseEventArgs object. All fields are valid. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onMouseDoubleClicked | ( | MouseEventArgs & | e | ) | [protected, virtual] |
Handler called when a mouse button has been double-clicked within this window's area.
e | MouseEventArgs object. All fields are valid. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onMouseMove | ( | MouseEventArgs & | e | ) | [protected, virtual] |
Handler called when the mouse cursor has been moved within this window's area.
e | MouseEventArgs object. All fields are valid. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onMouseTripleClicked | ( | MouseEventArgs & | e | ) | [protected, virtual] |
Handler called when a mouse button has been triple-clicked within this window's area.
e | MouseEventArgs object. All fields are valid. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onMouseWheel | ( | MouseEventArgs & | e | ) | [protected, virtual] |
Handler called when the mouse wheel (z-axis) position changes within this window's area.
e | MouseEventArgs object. All fields are valid. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onSized | ( | ElementEventArgs & | e | ) | [protected, virtual] |
Handler called when the window's size changes.
e | WindowEventArgs object whose 'window' pointer field is set to the window that triggered the event. For this event the trigger window is always 'this'. |
Reimplemented from CEGUI::Window.
virtual void CEGUI::MultiLineEditbox::onTextChanged | ( | WindowEventArgs & | e | ) | [protected, virtual] |
Handler called when the window's text is changed.
e | WindowEventArgs object whose 'window' pointer field is set to the window that triggered the event. For this event the trigger window is always 'this'. |
Reimplemented from CEGUI::Window.
virtual bool CEGUI::MultiLineEditbox::performCopy | ( | Clipboard & | clipboard | ) | [virtual] |
Asks the widget to perform a clipboard copy to the provided clipboard.
clipboard | Target clipboard class |
Reimplemented from CEGUI::Window.
virtual bool CEGUI::MultiLineEditbox::performCut | ( | Clipboard & | clipboard | ) | [virtual] |
Asks the widget to perform a clipboard cut to the provided clipboard.
clipboard | Target clipboard class |
Reimplemented from CEGUI::Window.
virtual bool CEGUI::MultiLineEditbox::performPaste | ( | Clipboard & | clipboard | ) | [virtual] |
Asks the widget to perform a clipboard paste from the provided clipboard.
clipboard | Source clipboard class |
Reimplemented from CEGUI::Window.
void CEGUI::MultiLineEditbox::setCaretIndex | ( | size_t | caret_pos | ) |
Set the current position of the caret.
caret_pos | New index for the insert caret relative to the start of the text. If the value specified is greater than the number of characters in the edit box, the caret is positioned at the end of the text. |
void CEGUI::MultiLineEditbox::setMaxTextLength | ( | size_t | max_len | ) |
set the maximum text length for this edit box.
max_len | The maximum number of code points (characters) that can be entered into this Editbox. |
void CEGUI::MultiLineEditbox::setReadOnly | ( | bool | setting | ) |
Specify whether the edit box is read-only.
setting |
|
void CEGUI::MultiLineEditbox::setSelection | ( | size_t | start_pos, |
size_t | end_pos | ||
) |
Define the current selection for the edit box.
start_pos | Index of the starting point for the selection. If this value is greater than the number of characters in the edit box, the selection start will be set to the end of the text. |
end_pos | Index of the ending point for the selection. If this value is greater than the number of characters in the edit box, the selection start will be set to the end of the text. |
void CEGUI::MultiLineEditbox::setSelectionLength | ( | size_t | length | ) |
Define the current selection for the Editbox.
start_pos | Length of the selection. |
void CEGUI::MultiLineEditbox::setSelectionStart | ( | size_t | start_pos | ) |
void CEGUI::MultiLineEditbox::setShowVertScrollbar | ( | bool | setting | ) |
Set whether the vertical scroll bar should always be shown.
setting | true if the vertical scroll bar should be shown even when it is not required. false if the vertical scroll bar should only be shown when it is required. |
void CEGUI::MultiLineEditbox::setWordWrapping | ( | bool | setting | ) |
Set whether the text will be word wrapped or not.
setting |
|
virtual bool CEGUI::MultiLineEditbox::validateWindowRenderer | ( | const WindowRenderer * | renderer | ) | const [protected, virtual] |
Function used in checking if a WindowRenderer is valid for this window.
renderer | Window renderer that will be checked (it can be null!) |
Reimplemented from CEGUI::Window.
const String CEGUI::MultiLineEditbox::EventCaretMoved [static] |
Event fired when the text caret / current insertion position is changed. Handlers are passed a const WindowEventArgs reference with WindowEventArgs::window set to the MultiLineEditbox whose caret position has changed.
const String CEGUI::MultiLineEditbox::EventEditboxFull [static] |
Event fired when the number of characters in the edit box reaches the current maximum length. Handlers are passed a const WindowEventArgs reference with WindowEventArgs::window set to the MultiLineEditbox whose text length has reached the set maximum allowable length for the edit box.
const String CEGUI::MultiLineEditbox::EventHorzScrollbarModeChanged [static] |
Event fired when the mode setting that forces the display of the horizontal scroll bar for the edit box is changed. Handlers are passed a const WindowEventArgs reference with WindowEventArgs::window set to the MultiLineEditbox whose horizontal scrollbar mode has been changed.
const String CEGUI::MultiLineEditbox::EventMaximumTextLengthChanged [static] |
Event fired when the maximum allowable string length for the edit box has been changed. Handlers are passed a const WindowEventArgs reference with WindowEventArgs::window set to the MultiLineEditbox whose maximum string length was changed.
const String CEGUI::MultiLineEditbox::EventReadOnlyModeChanged [static] |
Event fired when the read-only mode for the edit box has been changed. Handlers are passed a const WindowEventArgs reference with WindowEventArgs::window set to the MultiLineEditbox whose read-only mode was changed.
const String CEGUI::MultiLineEditbox::EventTextSelectionChanged [static] |
Event fired when the current text selection for the edit box is changed. Handlers are passed a const WindowEventArgs reference with WindowEventArgs::window set to the MultiLineEditbox whose text selection was changed.
const String CEGUI::MultiLineEditbox::EventVertScrollbarModeChanged [static] |
Event fired when the mode setting that forces the display of the vertical scroll bar for the edit box is changed. Handlers are passed a const WindowEventArgs reference with WindowEventArgs::window set to the MultiLineEditbox whose vertical scrollbar mode has been changed.
const String CEGUI::MultiLineEditbox::EventWordWrapModeChanged [static] |
Event fired when the word wrap mode of the edit box has been changed. Handlers are passed a const WindowEventArgs reference with WindowEventArgs::window set to the MultiLineEditbox whose word wrap mode was changed.