gui::edit_box Class Reference

An editable text box. More...

#include <gui_editbox.hpp>

Inheritance diagram for gui::edit_box:
gui::focus_frame gui::frame gui::event_receiver gui::region gui::uiobject

List of all members.

Public Member Functions

 edit_box (manager *pManager)
 Constructor.
virtual ~edit_box ()
 Destructor.
virtual void copy_from (uiobject *pObj)
 Copies an uiobject's parameters into this edit_box (inheritance).
virtual void update (float fDelta)
 updates this widget's logic.
virtual void on_event (const event &mEvent)
 Calls the on_event script.
virtual void on (const std::string &sScriptName, event *pEvent=nullptr)
 Calls a script.
virtual bool can_use_script (const std::string &sScriptName) const
 Returns 'true' if this edit_box can use a script.
virtual void enable_keyboard (bool bIsKeyboardEnabled)
 Sets if this edit_box can receive keyboard input.
void set_text (const std::string &sText)
 Sets the content of this edit_box.
const std::string & get_text () const
 Returns the content of this edit_box.
void highlight_text (uint uiStart=0u, uint uiEnd=uint(-1), bool bForceUpdate=false)
 Selects a portion of the content.
void unlight_text ()
 Deselects the selected text, if any.
void set_highlight_color (const color &mColor)
 Sets the color of the highlight quad.
void insert_after_cursor (const std::string &sText)
 Inserts some text after the cursor.
void set_max_letters (uint uiMaxLetters)
 Sets the maximum number of letters to allow in this edit_box.
uint get_max_letters () const
 Returns the maximum number of letters to allow in this edit_box.
uint get_num_letters () const
 Returns the number of letters in the content.
void set_blink_speed (const double &dBlinkSpeed)
 Sets the carret's blink speed.
const double & get_blink_speed () const
 Returns the carret's blink speed.
void set_numeric_only (bool bNumericOnly)
 Makes this edit_box allow numeric characters only.
void set_positive_only (bool bPositiveOnly)
 Makes this edit_box allow positive numbers only.
void set_integer_only (bool bIntegerOnly)
 Makes this edit_box allow integer numbers only.
bool is_numeric_only () const
 Checks if this edit_box allows numeric characters only.
bool is_positive_only () const
 Checks if this edit_box allows positive numbers only.
bool is_integer_only () const
 Checks if this edit_box allows integer numbers only.
void enable_password_mode (bool bEnable)
 Enables password mode.
bool is_password_mode_enabled () const
 Checks if this edit_box is in password mode.
void set_multi_line (bool bMultiLine)
 Allows this edit_box to have several lines in it.
bool is_multi_line () const
 Checks if this edit_box can have several lines in it.
void set_max_history_lines (uint uiMaxHistoryLines)
 Sets the maximum number of history lines this edit_box can keep.
uint get_max_history_lines () const
 Returns the maximum number of history lines this edit_box can keep.
void add_history_line (const std::string &sHistoryLine)
 Adds a new history line to the history line list.
const std::deque< std::string > & get_history_lines () const
 Returns the history line list.
void set_arrows_ignored (bool bArrowsIgnored)
 Sets whether keyboard arrows move the carret or not.
void set_text_insets (int iLeft, int iRight, int iTop, int iBottom)
 Sets the insets used to render the content text.
void set_text_insets (const std::array< int, 4 > &lInsets)
 Sets the insets used to render the content text.
const std::array< int, 4 > & get_text_insets () const
 Returns the text insets.
font_stringget_font_string ()
 Returns the font_string used to render the content.
virtual void notify_focus (bool bFocus)
 Notifies this edit_box it has gained/lost focus.
virtual void create_glue ()
 Returns this widget's Lua glue.
virtual void parse_block (xml::block *pBlock)
 Parses data from an xml::block.

Static Public Member Functions

static void register_glue (utils::wptr< lua::state > pLua)
 Registers this widget to the provided lua::state.

Protected Member Functions

void notify_invisible_ (bool bTriggerEvents=true)
void parse_font_string_block_ (xml::block *pBlock)
void parse_highlight_color_block_ (xml::block *pBlock)
void parse_text_insets_block_ (xml::block *pBlock)
font_stringcreate_font_string_ ()
void create_highlight_ ()
void create_carret_ ()
void check_text_ ()
void update_displayed_text_ ()
void update_font_string_ ()
void update_carret_position_ ()
bool add_char_ (char32_t sChar)
bool remove_char_ ()
uint get_letter_id_at_ (int iX, int iY)
bool move_carret_at_ (int iX, int iY)
bool move_carret_horizontally_ (bool bForward=true)
bool move_carret_vertically_ (bool bDown=true)
void process_key_ (uint uiKey)

Protected Attributes

std::string sText_
utils::ustring sUnicodeText_
utils::ustring sDisplayedText_
utils::ustring::iterator iterCarretPos_
uint uiDisplayPos_
uint uiNumLetters_
uint uiMaxLetters_
bool bNumericOnly_
bool bPositiveOnly_
bool bIntegerOnly_
bool bPasswordMode_
bool bMultiLine_
bool bArrowsIgnored_
std::string sComboKey_
texturepHighlight_
color mHighlightColor_
uint uiSelectionStartPos_
uint uiSelectionEndPos_
bool bSelectedText_
texturepCarret_
double dBlinkSpeed_
periodic_timer mCarretTimer_
std::deque< std::string > lHistoryLineList_
uint uiMaxHistoryLines_
font_stringpFontString_
std::array< int, 4 > lTextInsets_
uint uiLastKeyPressed_
double dKeyRepeatSpeed_
periodic_timer mKeyRepeatTimer_

Detailed Description

An editable text box.

Definition at line 90 of file gui_editbox.hpp.


Constructor & Destructor Documentation

gui::edit_box::edit_box ( manager pManager  )  [explicit]

Constructor.

Definition at line 14 of file gui_editbox.cpp.

gui::edit_box::~edit_box (  )  [virtual]

Destructor.

Definition at line 33 of file gui_editbox.cpp.


Member Function Documentation

bool gui::edit_box::add_char_ ( char32_t  sChar  )  [protected]

Definition at line 964 of file gui_editbox.cpp.

void gui::edit_box::add_history_line ( const std::string &  sHistoryLine  ) 

Adds a new history line to the history line list.

Parameters:
sHistoryLine The content of this history line
Note:
This option is only available to single line edit_boxes.

Definition at line 628 of file gui_editbox.cpp.

bool gui::edit_box::can_use_script ( const std::string &  sScriptName  )  const [virtual]

Returns 'true' if this edit_box can use a script.

Parameters:
sScriptName The name of the script
Note:
This method can be overriden if needed.

Reimplemented from gui::frame.

Definition at line 38 of file gui_editbox.cpp.

void gui::edit_box::check_text_ (  )  [protected]

Definition at line 791 of file gui_editbox.cpp.

void gui::edit_box::copy_from ( uiobject pObj  )  [virtual]

Copies an uiobject's parameters into this edit_box (inheritance).

Parameters:
pObj The uiobject to copy

Reimplemented from gui::focus_frame.

Definition at line 57 of file gui_editbox.cpp.

void gui::edit_box::create_carret_ (  )  [protected]

Definition at line 759 of file gui_editbox.cpp.

font_string * gui::edit_box::create_font_string_ (  )  [protected]

Definition at line 714 of file gui_editbox.cpp.

void gui::edit_box::create_glue (  )  [virtual]

Returns this widget's Lua glue.

Reimplemented from gui::focus_frame.

Definition at line 310 of file gui_editbox.cpp.

void gui::edit_box::create_highlight_ (  )  [protected]

Definition at line 728 of file gui_editbox.cpp.

void gui::edit_box::enable_keyboard ( bool  bIsKeyboardEnabled  )  [virtual]

Sets if this edit_box can receive keyboard input.

Parameters:
bIsKeyboardEnabled 'true' to enable

Reimplemented from gui::frame.

Definition at line 264 of file gui_editbox.cpp.

void gui::edit_box::enable_password_mode ( bool  bEnable  ) 

Enables password mode.

Parameters:
bEnable 'true' to enable password mode
Note:
In password mode, the content of the edit_box is replaced by stars (*).

Definition at line 568 of file gui_editbox.cpp.

const double & gui::edit_box::get_blink_speed (  )  const

Returns the carret's blink speed.

Returns:
the carret's blink speed (time in seconds between each blink)

Definition at line 500 of file gui_editbox.cpp.

font_string * gui::edit_box::get_font_string (  ) 

Returns the font_string used to render the content.

Returns:
The font_string used to render the content

Definition at line 709 of file gui_editbox.cpp.

const std::deque< std::string > & gui::edit_box::get_history_lines (  )  const

Returns the history line list.

Returns:
The history line list
Note:
This list will always be empty for multi line edit_boxes.

Definition at line 636 of file gui_editbox.cpp.

uint gui::edit_box::get_letter_id_at_ ( int  iX,
int  iY 
) [protected]

Definition at line 1056 of file gui_editbox.cpp.

uint gui::edit_box::get_max_history_lines (  )  const

Returns the maximum number of history lines this edit_box can keep.

Returns:
The maximum number of history lines this edit_box can keep

Definition at line 623 of file gui_editbox.cpp.

uint gui::edit_box::get_max_letters (  )  const

Returns the maximum number of letters to allow in this edit_box.

Returns:
the maximum number of letters to allow in this edit_box

Definition at line 481 of file gui_editbox.cpp.

uint gui::edit_box::get_num_letters (  )  const

Returns the number of letters in the content.

Returns:
The number of letters in the content

Definition at line 486 of file gui_editbox.cpp.

const std::string & gui::edit_box::get_text (  )  const

Returns the content of this edit_box.

Returns:
The content of this edit_box

Definition at line 346 of file gui_editbox.cpp.

const std::array< int, 4 > & gui::edit_box::get_text_insets (  )  const

Returns the text insets.

Returns:
The text insets

Definition at line 671 of file gui_editbox.cpp.

void gui::edit_box::highlight_text ( uint  uiStart = 0u,
uint  uiEnd = uint(-1),
bool  bForceUpdate = false 
)

Selects a portion of the content.

Parameters:
uiStart The first character to select
uiEnd The last character to select
bForceUpdate 'true' to bypass all redundancy checks
Note:
Will select (uiEnd - uiStart) characters

Definition at line 360 of file gui_editbox.cpp.

void gui::edit_box::insert_after_cursor ( const std::string &  sText  ) 

Inserts some text after the cursor.

Parameters:
sText The text to insert

Definition at line 430 of file gui_editbox.cpp.

bool gui::edit_box::is_integer_only (  )  const

Checks if this edit_box allows integer numbers only.

Returns:
'true' if this edit_box allows integer numbers only

Definition at line 563 of file gui_editbox.cpp.

bool gui::edit_box::is_multi_line (  )  const

Checks if this edit_box can have several lines in it.

Returns:
'true' if this edit_box can have several lines in it

Definition at line 601 of file gui_editbox.cpp.

bool gui::edit_box::is_numeric_only (  )  const

Checks if this edit_box allows numeric characters only.

Returns:
'true' if this edit_box allows numeric characters only

Definition at line 553 of file gui_editbox.cpp.

bool gui::edit_box::is_password_mode_enabled (  )  const

Checks if this edit_box is in password mode.

Returns:
'true' if this edit_box is in password mode

Definition at line 580 of file gui_editbox.cpp.

bool gui::edit_box::is_positive_only (  )  const

Checks if this edit_box allows positive numbers only.

Returns:
'true' if this edit_box allows positive numbers only

Definition at line 558 of file gui_editbox.cpp.

bool gui::edit_box::move_carret_at_ ( int  iX,
int  iY 
) [protected]

Definition at line 1096 of file gui_editbox.cpp.

bool gui::edit_box::move_carret_horizontally_ ( bool  bForward = true  )  [protected]

Definition at line 1109 of file gui_editbox.cpp.

bool gui::edit_box::move_carret_vertically_ ( bool  bDown = true  )  [protected]

Definition at line 1147 of file gui_editbox.cpp.

void gui::edit_box::notify_focus ( bool  bFocus  )  [virtual]

Notifies this edit_box it has gained/lost focus.

Parameters:
bFocus 'true' if the edit_box has gained focus
Note:
This function is called by manager.

Reimplemented from gui::focus_frame.

Definition at line 676 of file gui_editbox.cpp.

void gui::edit_box::notify_invisible_ ( bool  bTriggerEvents = true  )  [protected, virtual]

Reimplemented from gui::frame.

Definition at line 703 of file gui_editbox.cpp.

void gui::edit_box::on ( const std::string &  sScriptName,
event pEvent = nullptr 
) [virtual]

Calls a script.

Parameters:
sScriptName The name of the script
pEvent Stores scripts arguments

Reimplemented from gui::frame.

Definition at line 277 of file gui_editbox.cpp.

void gui::edit_box::on_event ( const event mEvent  )  [virtual]

Calls the on_event script.

Parameters:
mEvent The Event that occured

Reimplemented from gui::frame.

Definition at line 166 of file gui_editbox.cpp.

void gui::edit_box::parse_block ( xml::block *  pBlock  )  [virtual]

Parses data from an xml::block.

Parameters:
pBlock The edit_box's xml::block

Reimplemented from gui::focus_frame.

Definition at line 10 of file gui_editbox_parser.cpp.

void gui::edit_box::parse_font_string_block_ ( xml::block *  pBlock  )  [protected]

Definition at line 46 of file gui_editbox_parser.cpp.

void gui::edit_box::parse_highlight_color_block_ ( xml::block *  pBlock  )  [protected]

Definition at line 82 of file gui_editbox_parser.cpp.

void gui::edit_box::parse_text_insets_block_ ( xml::block *  pBlock  )  [protected]

Definition at line 96 of file gui_editbox_parser.cpp.

void gui::edit_box::process_key_ ( uint  uiKey  )  [protected]

Definition at line 1179 of file gui_editbox.cpp.

void gui::edit_box::register_glue ( utils::wptr< lua::state >  pLua  )  [static]

Registers this widget to the provided lua::state.

Definition at line 7 of file gui_editbox_glues.cpp.

bool gui::edit_box::remove_char_ (  )  [protected]

Definition at line 1014 of file gui_editbox.cpp.

void gui::edit_box::set_arrows_ignored ( bool  bArrowsIgnored  ) 

Sets whether keyboard arrows move the carret or not.

Parameters:
bArrowsIgnored 'true' to ignore arrow keys

Definition at line 641 of file gui_editbox.cpp.

void gui::edit_box::set_blink_speed ( const double &  dBlinkSpeed  ) 

Sets the carret's blink speed.

Parameters:
dBlinkSpeed The number of seconds to wait between each blink

Definition at line 491 of file gui_editbox.cpp.

void gui::edit_box::set_highlight_color ( const color mColor  ) 

Sets the color of the highlight quad.

Parameters:
mColor The color

Definition at line 414 of file gui_editbox.cpp.

void gui::edit_box::set_integer_only ( bool  bIntegerOnly  ) 

Makes this edit_box allow integer numbers only.

Parameters:
bIntegerOnly 'true' to only allow integer numbers
Note:
Only workds if set_numeric_only(true) has been called.

Definition at line 537 of file gui_editbox.cpp.

void gui::edit_box::set_max_history_lines ( uint  uiMaxHistoryLines  ) 

Sets the maximum number of history lines this edit_box can keep.

Parameters:
uiMaxHistoryLines The max number of history lines

Definition at line 606 of file gui_editbox.cpp.

void gui::edit_box::set_max_letters ( uint  uiMaxLetters  ) 

Sets the maximum number of letters to allow in this edit_box.

Parameters:
uiMaxLetters The max number of letters

Definition at line 453 of file gui_editbox.cpp.

void gui::edit_box::set_multi_line ( bool  bMultiLine  ) 

Allows this edit_box to have several lines in it.

Parameters:
bMultiLine 'true' to allow several lines in this edit_box
Note:
The behavior of a "multi line" edit_box is very different from a single line one.
History lines are only available to single line edit_boxes.
Scrolling in a single line edit_box is done horizontally, while it is only done vertically in a multi line one.

Definition at line 585 of file gui_editbox.cpp.

void gui::edit_box::set_numeric_only ( bool  bNumericOnly  ) 

Makes this edit_box allow numeric characters only.

Parameters:
bNumericOnly 'true' to only allow numeric characters

Definition at line 505 of file gui_editbox.cpp.

void gui::edit_box::set_positive_only ( bool  bPositiveOnly  ) 

Makes this edit_box allow positive numbers only.

Parameters:
bPositiveOnly 'true' to only allow positive numbers
Note:
Only workds if set_numeric_only(true) has been called.

Definition at line 521 of file gui_editbox.cpp.

void gui::edit_box::set_text ( const std::string &  sText  ) 

Sets the content of this edit_box.

Parameters:
sText The content of this edit_box

Definition at line 330 of file gui_editbox.cpp.

void gui::edit_box::set_text_insets ( const std::array< int, 4 > &  lInsets  ) 

Sets the insets used to render the content text.

Parameters:
lInsets (left, right, top, bottom)
Note:
Positive insets will reduce the text area, while negative ones will enlarge it

Definition at line 651 of file gui_editbox.cpp.

void gui::edit_box::set_text_insets ( int  iLeft,
int  iRight,
int  iTop,
int  iBottom 
)

Sets the insets used to render the content text.

Parameters:
iLeft The left inset
iRight The right inset
iTop The top inset
iBottom The bottom inset
Note:
Positive insets will reduce the text area, while negative ones will enlarge it

Definition at line 646 of file gui_editbox.cpp.

void gui::edit_box::unlight_text (  ) 

Deselects the selected text, if any.

Definition at line 351 of file gui_editbox.cpp.

void gui::edit_box::update ( float  fDelta  )  [virtual]

updates this widget's logic.

Reimplemented from gui::frame.

Definition at line 108 of file gui_editbox.cpp.

void gui::edit_box::update_carret_position_ (  )  [protected]

Definition at line 843 of file gui_editbox.cpp.

void gui::edit_box::update_displayed_text_ (  )  [protected]

Definition at line 808 of file gui_editbox.cpp.

void gui::edit_box::update_font_string_ (  )  [protected]

Definition at line 832 of file gui_editbox.cpp.


Member Data Documentation

Definition at line 355 of file gui_editbox.hpp.

bool gui::edit_box::bIntegerOnly_ [protected]

Definition at line 352 of file gui_editbox.hpp.

bool gui::edit_box::bMultiLine_ [protected]

Definition at line 354 of file gui_editbox.hpp.

bool gui::edit_box::bNumericOnly_ [protected]

Definition at line 350 of file gui_editbox.hpp.

Definition at line 353 of file gui_editbox.hpp.

Definition at line 351 of file gui_editbox.hpp.

Definition at line 363 of file gui_editbox.hpp.

double gui::edit_box::dBlinkSpeed_ [protected]

Definition at line 366 of file gui_editbox.hpp.

double gui::edit_box::dKeyRepeatSpeed_ [protected]

Definition at line 376 of file gui_editbox.hpp.

utils::ustring::iterator gui::edit_box::iterCarretPos_ [protected]

Definition at line 345 of file gui_editbox.hpp.

std::deque<std::string> gui::edit_box::lHistoryLineList_ [protected]

Definition at line 369 of file gui_editbox.hpp.

std::array<int,4> gui::edit_box::lTextInsets_ [protected]

Definition at line 373 of file gui_editbox.hpp.

Definition at line 367 of file gui_editbox.hpp.

Definition at line 360 of file gui_editbox.hpp.

Definition at line 377 of file gui_editbox.hpp.

Definition at line 365 of file gui_editbox.hpp.

Definition at line 372 of file gui_editbox.hpp.

Definition at line 359 of file gui_editbox.hpp.

std::string gui::edit_box::sComboKey_ [protected]

Definition at line 357 of file gui_editbox.hpp.

utils::ustring gui::edit_box::sDisplayedText_ [protected]

Definition at line 344 of file gui_editbox.hpp.

std::string gui::edit_box::sText_ [protected]

Definition at line 342 of file gui_editbox.hpp.

utils::ustring gui::edit_box::sUnicodeText_ [protected]

Definition at line 343 of file gui_editbox.hpp.

uint gui::edit_box::uiDisplayPos_ [protected]

Definition at line 347 of file gui_editbox.hpp.

Definition at line 375 of file gui_editbox.hpp.

Definition at line 370 of file gui_editbox.hpp.

uint gui::edit_box::uiMaxLetters_ [protected]

Definition at line 349 of file gui_editbox.hpp.

uint gui::edit_box::uiNumLetters_ [protected]

Definition at line 348 of file gui_editbox.hpp.

Definition at line 362 of file gui_editbox.hpp.

Definition at line 361 of file gui_editbox.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on Tue Jan 1 21:58:12 2013 for gui by  doxygen 1.6.1