29 #ifndef _CEGUIMultiLineEditbox_h_ 30 #define _CEGUIMultiLineEditbox_h_ 33 #include "../Window.h" 39 # pragma warning(push) 40 # pragma warning(disable : 4251) 68 virtual Rectf getTextRenderArea(
void)
const = 0;
72 void onLookNFeelAssigned();
176 bool hasInputFocus(
void)
const;
208 size_t getSelectionStartIndex(
void)
const;
219 size_t getSelectionEndIndex(
void)
const;
229 size_t getSelectionLength(
void)
const;
250 bool isWordWrapped(
void)
const;
274 bool isVertScrollbarAlwaysShown(
void)
const;
298 Rectf getTextRenderArea(
void)
const;
301 const LineList& getFormattedLines(
void)
const {
return d_lines;}
308 size_t getLineNumberFromIndex(
size_t index)
const;
323 virtual void initialiseComponents(
void);
337 void setReadOnly(
bool setting);
351 void setCaretIndex(
size_t caret_pos);
369 void setSelection(
size_t start_pos,
size_t end_pos);
383 void setSelectionStart(
size_t start_pos);
395 void setSelectionLength(
size_t length);
407 void setMaxTextLength(
size_t max_len);
414 void ensureCaretIsVisible(
void);
428 void setWordWrapping(
bool setting);
441 void setShowVertScrollbar(
bool setting);
444 void setSelectionBrushImage(
const Image* image);
445 const Image* getSelectionBrushImage()
const;
448 virtual bool performCopy(
Clipboard& clipboard);
451 virtual bool performCut(
Clipboard& clipboard);
454 virtual bool performPaste(
Clipboard& clipboard);
464 void formatText(
const bool update_scrollbars);
507 void formatText(
void);
519 size_t getNextTokenLength(
const String& text,
size_t start_idx)
const;
526 void configureScrollbars(
void);
539 size_t getTextIndexFromPosition(
const Vector2f& pt)
const;
546 void clearSelection(
void);
556 void eraseSelectedText(
bool modify_text =
true);
563 void handleBackspace(
void);
570 void handleDelete(
void);
577 void handleCharLeft(uint sysKeys);
584 void handleWordLeft(uint sysKeys);
591 void handleCharRight(uint sysKeys);
598 void handleWordRight(uint sysKeys);
605 void handleDocHome(uint sysKeys);
612 void handleDocEnd(uint sysKeys);
619 void handleLineHome(uint sysKeys);
626 void handleLineEnd(uint sysKeys);
633 void handleLineUp(uint sysKeys);
640 void handleLineDown(uint sysKeys);
647 void handleNewLine(uint sysKeys);
654 void handlePageUp(uint sysKeys);
661 void handlePageDown(uint sysKeys);
667 bool handle_scrollChange(
const EventArgs& args);
670 bool handle_vertScrollbarVisibilityChanged(
const EventArgs&);
673 virtual bool validateWindowRenderer(
const WindowRenderer* renderer)
const;
779 void addMultiLineEditboxProperties(
void);
784 #if defined(_MSC_VER) 785 # pragma warning(pop) 788 #endif // end of guard _CEGUIMultiLineEditbox_h_ bool d_forceVertScroll
true if vertical scrollbar should always be displayed
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:768
size_t d_startIdx
Starting index for this line.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:158
const Image * d_selectionBrush
Image to use as the selection brush (should be set by derived class).
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:772
static const String EventHorzScrollbarModeChanged
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:140
bool isReadOnly(void) const
return true if the edit box is read-only.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:187
bool d_dragging
true when a selection is being dragged.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:759
static const String EventVertScrollbarModeChanged
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:133
Base class for multi-line edit box window renderer objects.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:51
float d_widestExtent
Holds the extent of the widest line as calculated in the last formatting pass.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:765
static const String HorzScrollbarName
Widget name for the horizontal scrollbar component.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:146
static const String EventNamespace
Namespace for global events.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:82
Interface for Image.
Definition: cegui/include/CEGUI/Image.h:158
Main namespace for Crazy Eddie's GUI Library.
Definition: cegui/include/CEGUI/Affector.h:42
Base class used as the argument to all subscribers Event object.
Definition: cegui/include/CEGUI/EventArgs.h:49
LineList d_lines
Holds the lines for the current formatting.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:764
size_t d_caretPos
Position of the caret / insert-point.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:756
size_t d_dragAnchorIdx
Selection index for drag selection anchor point.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:760
bool d_wordWrap
true when formatting uses word-wrapping.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:763
static const String EventMaximumTextLengthChanged
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:107
static const String EventEditboxFull
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:126
size_t getCaretIndex(void) const
return the current position of the caret.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:197
bool d_forceHorzScroll
true if horizontal scrollbar should always be displayed
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:769
Base-class for the assignable WindowRenderer object.
Definition: cegui/include/CEGUI/WindowRenderer.h:50
Defines a clipboard handling class.
Definition: cegui/include/CEGUI/Clipboard.h:82
size_t d_maxTextLen
Maximum number of characters for this Editbox.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:755
bool d_readOnly
true if the edit box is in read-only mode
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:754
size_t d_selectionEnd
End of selection area.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:758
EventArgs based class that is used for objects passed to input event handlers concerning keyboard inp...
Definition: cegui/include/CEGUI/InputEvent.h:314
size_t getMaxTextLength(void) const
return the maximum text length set for this edit box.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:239
static const String WidgetTypeName
Window factory name.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:83
size_t d_selectionStart
Start of selection area.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:757
An abstract base class providing common functionality and specifying the required interface for deriv...
Definition: cegui/include/CEGUI/Window.h:149
static const String VertScrollbarName
Widget name for the vertical scrollbar component.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:145
Base class for the multi-line edit box widget.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:79
EventArgs based class that is used for objects passed to handlers triggered for events concerning som...
Definition: cegui/include/CEGUI/Element.h:210
static const String EventReadOnlyModeChanged
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:94
static const String EventWordWrapModeChanged
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:100
EventArgs based class that is used for objects passed to handlers triggered for events concerning som...
Definition: cegui/include/CEGUI/InputEvent.h:251
std::vector< LineInfo CEGUI_VECTOR_ALLOC(LineInfo)> LineList
Type for collection of LineInfos.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:163
EventArgs based class that is used for objects passed to input event handlers concerning mouse input...
Definition: cegui/include/CEGUI/InputEvent.h:280
struct used to store information about a formatted line within the paragraph.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:156
static const String EventCaretMoved
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:113
size_t d_length
Code point length of this line.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:159
static const String EventTextSelectionChanged
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:119
float d_extent
Rendered extent of this line.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:160
static String d_lineBreakChars
Holds what we consider to be line break characters.
Definition: cegui/include/CEGUI/widgets/MultiLineEditbox.h:762
String class used within the GUI system.
Definition: cegui/include/CEGUI/String.h:62