Class for a single line text area. More...
#include <text_box.hpp>
Public Member Functions | |
ttext_box () | |
void | save_to_history () |
Saves the text in the widget to the history. More... | |
void | set_history (const std::string &id) |
void | set_max_input_length (const size_t length) |
void | clear () |
Public Member Functions inherited from gui2::ttext_ | |
ttext_ () | |
virtual void | set_active (const bool active) override |
See tcontrol::set_active. More... | |
virtual bool | get_active () const override |
See tcontrol::get_active. More... | |
virtual unsigned | get_state () const override |
See tcontrol::get_state. More... | |
void | set_maximum_length (const size_t maximum_length) |
size_t | get_length () const |
virtual void | set_value (const std::string &text) |
The set_value is virtual for the tpassword_box class. More... | |
std::string | get_value () const |
const std::string & | text () const |
void | set_text_changed_callback (std::function< void(ttext_ *textbox, const std::string text)> cb) |
Set the text_changed callback. More... | |
Public Member Functions inherited from gui2::tcontrol | |
tcontrol (const unsigned canvas_count) | |
tcontrol (const implementation::tbuilder_control &builder, const unsigned canvas_count, const std::string &control_type) | |
Constructor. More... | |
virtual void | set_members (const string_map &data) |
Sets the members of the control. More... | |
bool | disable_click_dismiss () const override |
See twidget::disable_click_dismiss. More... | |
virtual iterator::twalker_ * | create_walker () override |
See twidget::create_walker. More... | |
tpoint | get_config_minimum_size () const |
Gets the minimum size as defined in the config. More... | |
tpoint | get_config_default_size () const |
Gets the default size as defined in the config. More... | |
tpoint | get_config_maximum_size () const |
Gets the best size as defined in the config. More... | |
virtual unsigned | get_characters_per_line () const |
Returns the number of characters per line. More... | |
virtual bool | get_link_aware () const |
Returns whether the label should be link_aware, in in rendering and in searching for links with get_link. More... | |
virtual std::string | get_link_color () const |
Returns the color string to be used with links. More... | |
virtual void | layout_initialise (const bool full_initialisation) override |
See twidget::layout_initialise. More... | |
virtual void | request_reduce_width (const unsigned maximum_width) override |
See twidget::request_reduce_width. More... | |
virtual twidget * | find_at (const tpoint &coordinate, const bool must_be_active) override |
See twidget::find_at. More... | |
virtual const twidget * | find_at (const tpoint &coordinate, const bool must_be_active) const override |
See twidget::find_at. More... | |
twidget * | find (const std::string &id, const bool must_be_active) override |
See twidget::find. More... | |
const twidget * | find (const std::string &id, const bool must_be_active) const override |
See twidget::find. More... | |
void | set_definition (const std::string &definition) |
Sets the definition. More... | |
bool | get_use_tooltip_on_label_overflow () const |
void | set_use_tooltip_on_label_overflow (const bool use_tooltip=true) |
const t_string & | label () const |
virtual void | set_label (const t_string &label) |
virtual void | set_use_markup (bool use_markup) |
bool | get_use_markup () const |
const t_string & | tooltip () const |
void | set_tooltip (const t_string &tooltip) |
const t_string & | help_message () const |
void | set_help_message (const t_string &help_message) |
std::vector< tcanvas > & | canvas () |
tcanvas & | canvas (const unsigned index) |
void | set_text_alignment (const PangoAlignment text_alignment) |
PangoAlignment | get_text_alignment () const |
Public Member Functions inherited from gui2::twidget | |
twidget () | |
twidget (const tbuilder_widget &builder) | |
Constructor. More... | |
virtual | ~twidget () override |
void | set_id (const std::string &id) |
const std::string & | id () const |
twindow * | get_window () |
Get the parent window. More... | |
const twindow * | get_window () const |
The constant version of get_window. More... | |
tdialog * | dialog () |
Returns the top-level dialogue. More... | |
void | set_parent (twidget *parent) |
twidget * | parent () |
virtual void | demand_reduce_width (const unsigned maximum_width) |
Tries to reduce the width of a widget. More... | |
virtual void | request_reduce_height (const unsigned maximum_height) |
Tries to reduce the height of a widget. More... | |
virtual void | demand_reduce_height (const unsigned maximum_height) |
Tries to reduce the height of a widget. More... | |
tpoint | get_best_size () const |
Gets the best size for the widget. More... | |
virtual bool | can_mouse_focus () const |
Whether the mouse move/click event go 'through' this widget. More... | |
virtual bool | can_wrap () const |
Can the widget wrap. More... | |
virtual void | set_origin (const tpoint &origin) |
Sets the origin of the widget. More... | |
virtual void | set_size (const tpoint &size) |
Sets the size of the widget. More... | |
virtual void | move (const int x_offset, const int y_offset) |
Moves a widget. More... | |
virtual void | layout_children () |
Allows a widget to update its children. More... | |
tpoint | get_origin () const |
Returns the screen origin of the widget. More... | |
tpoint | get_size () const |
Returns the size of the widget. More... | |
SDL_Rect | get_rectangle () const |
Gets the bounding rectangle of the widget on the screen. More... | |
int | get_x () const |
int | get_y () const |
unsigned | get_width () const |
unsigned | get_height () const |
void | set_linked_group (const std::string &linked_group) |
SDL_Rect | calculate_blitting_rectangle (const int x_offset, const int y_offset) |
Calculates the blitting rectangle of the widget. More... | |
SDL_Rect | calculate_clipping_rectangle (const int x_offset, const int y_offset) |
Calculates the clipping rectangle of the widget. More... | |
void | draw_background (surface &frame_buffer, int x_offset, int y_offset) |
Draws the background of a widget. More... | |
void | draw_children (surface &frame_buffer, int x_offset, int y_offset) |
Draws the children of a widget. More... | |
void | draw_foreground (surface &frame_buffer, int x_offset, int y_offset) |
Draws the foreground of the widget. More... | |
void | populate_dirty_list (twindow &caller, std::vector< twidget * > &call_stack) |
Adds a widget to the dirty list if it is dirty. More... | |
SDL_Rect | get_dirty_rectangle () const |
Gets the dirty rectangle of the widget. More... | |
virtual void | set_visible_rectangle (const SDL_Rect &rectangle) |
Sets the visible rectangle for a widget. More... | |
void | set_is_dirty (const bool is_dirty) |
bool | get_is_dirty () const |
void | set_visible (const tvisible::scoped_enum visible) |
tvisible::scoped_enum | get_visible () const |
tredraw_action::scoped_enum | get_drawing_action () const |
void | set_debug_border_mode (const unsigned debug_border_mode) |
void | set_debug_border_colour (const unsigned debug_border_colour) |
virtual bool | has_widget (const twidget &widget) const |
Does the widget contain the widget. More... | |
Public Member Functions inherited from gui2::tevent_executor | |
tevent_executor () | |
virtual | ~tevent_executor () |
void | set_wants_mouse_hover (const bool hover=true) |
bool | wants_mouse_hover () const |
void | set_wants_mouse_left_double_click (const bool click=true) |
bool | wants_mouse_left_double_click () const |
void | set_wants_mouse_middle_double_click (const bool click=true) |
bool | wants_mouse_middle_double_click () const |
tevent_executor & | set_wants_mouse_right_double_click (const bool click=true) |
bool | wants_mouse_right_double_click () const |
Public Member Functions inherited from gui2::event::tdispatcher | |
tdispatcher () | |
virtual | ~tdispatcher () |
void | connect () |
Connects the dispatcher to the event handler. More... | |
bool | has_event (const tevent event, const tevent_type event_type) |
bool | fire (const tevent event, twidget &target) |
Fires an event which has no extra parameters. More... | |
bool | fire (const tevent event, twidget &target, const tpoint &coordinate) |
Fires an event which takes a coordinate parameter. More... | |
bool | fire (const tevent event, twidget &target, const SDLKey key, const SDLMod modifier, const utf8::string &unicode) |
Fires an event which takes keyboard parameters. More... | |
bool | fire (const tevent event, twidget &target, void *) |
Fires an event which takes notification parameters. More... | |
bool | fire (const tevent event, twidget &target, tmessage &message) |
Fires an event which takes message parameters. More... | |
template<tevent E> | |
boost::enable_if < boost::mpl::has_key < tset_event, boost::mpl::int_ < E > > >::type | connect_signal (const tsignal_function &signal, const tposition position=back_child) |
Connect a signal for callback in tset_event. More... | |
template<tevent E> | |
boost::enable_if < boost::mpl::has_key < tset_event, boost::mpl::int_ < E > > >::type | disconnect_signal (const tsignal_function &signal, const tposition position=back_child) |
Disconnect a signal for callback in tset_event. More... | |
template<tevent E> | |
boost::enable_if < boost::mpl::has_key < tset_event_mouse, boost::mpl::int_< E > > >::type | connect_signal (const tsignal_mouse_function &signal, const tposition position=back_child) |
Connect a signal for callback in tset_event_mouse. More... | |
template<tevent E> | |
boost::enable_if < boost::mpl::has_key < tset_event_mouse, boost::mpl::int_< E > > >::type | disconnect_signal (const tsignal_mouse_function &signal, const tposition position=back_child) |
Disconnect a signal for callback in tset_event_mouse. More... | |
template<tevent E> | |
boost::enable_if < boost::mpl::has_key < tset_event_keyboard, boost::mpl::int_< E > > >::type | connect_signal (const tsignal_keyboard_function &signal, const tposition position=back_child) |
Connect a signal for callback in tset_event_keyboard. More... | |
template<tevent E> | |
boost::enable_if < boost::mpl::has_key < tset_event_keyboard, boost::mpl::int_< E > > >::type | disconnect_signal (const tsignal_keyboard_function &signal, const tposition position=back_child) |
Disconnect a signal for callback in tset_event_keyboard. More... | |
template<tevent E> | |
boost::enable_if < boost::mpl::has_key < tset_event_notification, boost::mpl::int_< E > > >::type | connect_signal (const tsignal_notification_function &signal, const tposition position=back_child) |
Connect a signal for callback in tset_event_notification. More... | |
template<tevent E> | |
boost::enable_if < boost::mpl::has_key < tset_event_notification, boost::mpl::int_< E > > >::type | disconnect_signal (const tsignal_notification_function &signal, const tposition position=back_child) |
Disconnect a signal for callback in tset_event_notification. More... | |
template<tevent E> | |
boost::enable_if < boost::mpl::has_key < tset_event_message, boost::mpl::int_< E > > >::type | connect_signal (const tsignal_message_function &signal, const tposition position=back_child) |
Connect a signal for callback in tset_event_message. More... | |
template<tevent E> | |
boost::enable_if < boost::mpl::has_key < tset_event_message, boost::mpl::int_< E > > >::type | disconnect_signal (const tsignal_message_function &signal, const tposition position=back_child) |
Disconnect a signal for callback in tset_event_message. More... | |
void | capture_mouse () |
Captures the mouse. More... | |
void | release_mouse () |
Releases the mouse capture. More... | |
void | set_mouse_behavior (const tmouse_behavior mouse_behavior) |
tmouse_behavior | get_mouse_behavior () const |
void | set_want_keyboard_input (const bool want_keyboard_input) |
bool | get_want_keyboard_input () const |
void | register_hotkey (const hotkey::HOTKEY_COMMAND id, const thotkey_function &function) |
Registers a hotkey. More... | |
bool | execute_hotkey (const hotkey::HOTKEY_COMMAND id) |
Executes a hotkey. More... | |
Protected Member Functions | |
virtual void | place (const tpoint &origin, const tpoint &size) override |
See twidget::place. More... | |
virtual void | update_canvas () override |
See tcontrol::update_canvas. More... | |
void | goto_end_of_line (const bool select=false) |
Inherited from ttext_. More... | |
void | goto_start_of_line (const bool select=false) |
Inherited from ttext_. More... | |
void | delete_char (const bool before_cursor) |
Inherited from ttext_. More... | |
void | delete_selection () |
Inherited from ttext_. More... | |
void | handle_mouse_selection (tpoint mouse, const bool start_selection) |
Protected Member Functions inherited from gui2::ttext_ | |
void | goto_end_of_data (const bool select=false) |
Moves the cursor to the end of all text. More... | |
void | goto_start_of_data (const bool select=false) |
Moves the cursor to the beginning of the data. More... | |
void | select_all () |
Selects all text. More... | |
void | set_cursor (const size_t offset, const bool select) |
Moves the cursor at the wanted position. More... | |
virtual void | insert_char (const utf8::string &unicode) |
Inserts a character at the cursor. More... | |
virtual void | copy_selection (const bool mouse) |
Copies the current selection. More... | |
virtual void | paste_selection (const bool mouse) |
Pastes the current selection. More... | |
gui2::tpoint | get_cursor_position (const unsigned column, const unsigned line=0) const |
tpoint | get_column_line (const tpoint &position) const |
void | set_font_size (const unsigned font_size) |
void | set_font_style (const unsigned font_style) |
void | set_maximum_width (const int width) |
void | set_maximum_height (const int height, const bool multiline) |
void | set_ellipse_mode (const PangoEllipsizeMode ellipse_mode) |
size_t | get_selection_start () const |
void | set_selection_start (const size_t selection_start) |
size_t | get_selection_length () const |
void | set_selection_length (const int selection_length) |
Protected Member Functions inherited from gui2::tcontrol | |
virtual tpoint | calculate_best_size () const override |
See twidget::calculate_best_size. More... | |
tresolution_definition_ptr | config () |
tresolution_definition_const_ptr | config () const |
void | set_config (tresolution_definition_ptr config) |
int | get_text_maximum_width () const |
Returns the maximum width available for the text. More... | |
int | get_text_maximum_height () const |
Returns the maximum height available for the text. More... | |
virtual void | impl_draw_background (surface &frame_buffer, int x_offset, int y_offset) override |
See twidget::impl_draw_background. More... | |
virtual void | impl_draw_foreground (surface &frame_buffer, int x_offset, int y_offset) override |
See twidget::impl_draw_foreground. More... | |
std::string | get_label_token (const gui2::tpoint &position, const char *delimiters=" \n\r\t") const |
Exposes font::ttext::get_token, for the text label of this control. More... | |
std::string | get_label_link (const gui2::tpoint &position) const |
Protected Member Functions inherited from gui2::twidget | |
void | set_layout_size (const tpoint &size) |
const tpoint & | layout_size () const |
Private Attributes | |
ttext_history | history_ |
The history text for this widget. More... | |
size_t | max_input_length_ |
The maximum length of the text input. More... | |
unsigned | text_x_offset_ |
The x offset in the widget where the text starts. More... | |
unsigned | text_y_offset_ |
The y offset in the widget where the text starts. More... | |
unsigned | text_height_ |
The height of the text itself. More... | |
bool | dragging_ |
Is the mouse in dragging mode, this affects selection in mouse move. More... | |
Additional Inherited Members | |
Public Types inherited from gui2::event::tdispatcher | |
enum | tevent_type { pre = 1, child = 2, post = 4 } |
enum | tposition { front_pre_child, back_pre_child, front_child, back_child, front_post_child, back_post_child } |
The position where to add a new callback in the signal handler. More... | |
enum | tmouse_behavior { all, hit, none } |
The behavior of the mouse events. More... | |
Class for a single line text area.
Definition at line 118 of file text_box.hpp.
gui2::ttext_box::ttext_box | ( | ) |
Definition at line 98 of file text_box.cpp.
References gui2::tevent_executor::set_wants_mouse_left_double_click(), signal_handler_left_button_double_click(), signal_handler_left_button_down(), signal_handler_left_button_up(), and signal_handler_mouse_motion().
|
inline |
Definition at line 141 of file text_box.hpp.
References gui2::ttext_::set_value().
Referenced by gui2::tpreferences::add_friend_list_entry(), and gui2::tpreferences::remove_friend_list_entry().
|
protectedvirtual |
Inherited from ttext_.
Implements gui2::ttext_.
Definition at line 188 of file text_box.cpp.
References delete_selection(), gui2::ttext_::get_selection_start(), gui2::ttext_::set_cursor(), and gui2::ttext_::set_selection_length().
Referenced by gui2::tpassword_box::delete_char().
|
protectedvirtual |
Inherited from ttext_.
Implements gui2::ttext_.
Definition at line 199 of file text_box.cpp.
References utf8::erase(), gui2::ttext_::get_selection_length(), gui2::ttext_::get_selection_start(), gui2::ttext_::get_value(), gui2::ttext_::set_cursor(), and gui2::ttext_::set_value().
Referenced by delete_char(), gui2::tpassword_box::handle_key_backspace(), and gui2::tpassword_box::handle_key_delete().
|
overrideprivatevirtual |
See tcontrol::get_control_type.
Implements gui2::tcontrol.
Reimplemented in gui2::tpassword_box.
Definition at line 343 of file text_box.cpp.
Referenced by signal_handler_mouse_motion().
|
inlineprotectedvirtual |
Inherited from ttext_.
Implements gui2::ttext_.
Definition at line 158 of file text_box.hpp.
References gui2::ttext_::goto_end_of_data().
|
inlineprotectedvirtual |
Inherited from ttext_.
Implements gui2::ttext_.
Definition at line 164 of file text_box.hpp.
References gui2::ttext_::goto_start_of_data().
Inherited from ttext_.
Implements gui2::ttext_.
Definition at line 320 of file text_box.cpp.
References gui2::ttext_::set_value().
|
privatevirtual |
Inherited from ttext_.
Reimplemented from gui2::ttext_.
Definition at line 301 of file text_box.cpp.
References gui2::ttext_::handle_key_default(), history_down(), and history_up().
Inherited from ttext_.
Unmodified Unhandled. Control Ignored. Shift Ignored. Alt Ignored.
Implements gui2::ttext_.
Definition at line 232 of file text_box.hpp.
Inherited from ttext_.
Unmodified Unhandled. Control Ignored. Shift Ignored. Alt Ignored.
Implements gui2::ttext_.
Definition at line 220 of file text_box.hpp.
Definition at line 219 of file text_box.cpp.
References dragging_, gui2::ttext_::get_column_line(), gui2::twidget::get_x(), gui2::twidget::get_y(), gui2::ttext_::set_cursor(), gui2::twidget::set_is_dirty(), text_height_, text_x_offset_, text_y_offset_, update_canvas(), gui2::tpoint::x, and gui2::tpoint::y.
Referenced by signal_handler_left_button_down(), and signal_handler_mouse_motion().
|
private |
Goes one item down in the history.
Definition at line 288 of file text_box.cpp.
References gui2::ttext_history::down(), gui2::ttext_history::get_enabled(), gui2::ttext_::get_value(), history_, and gui2::ttext_::set_value().
Referenced by handle_key_default().
|
private |
Goes one item up in the history.
Definition at line 275 of file text_box.cpp.
References gui2::ttext_history::get_enabled(), gui2::ttext_::get_value(), history_, gui2::ttext_::set_value(), and gui2::ttext_history::up().
Referenced by handle_key_default().
|
privatevirtual |
Inherited from tcontrol.
Reimplemented from gui2::tcontrol.
Definition at line 327 of file text_box.cpp.
References gui2::tcontrol::config(), gui2::ttext_::set_font_size(), gui2::ttext_::set_font_style(), and update_offsets().
See twidget::place.
Reimplemented from gui2::tcontrol.
Definition at line 119 of file text_box.cpp.
References gui2::tcontrol::get_text_maximum_height(), gui2::tcontrol::get_text_maximum_width(), max_input_length_, gui2::tcontrol::place(), gui2::ttext_::set_maximum_height(), gui2::ttext_::set_maximum_length(), gui2::ttext_::set_maximum_width(), and update_offsets().
|
inline |
Saves the text in the widget to the history.
Definition at line 124 of file text_box.hpp.
References gui2::ttext_::get_value(), history_, and gui2::ttext_history::push().
Referenced by gui2::tfield_text::finalize_specialized(), gui2::tmp_method_selection::post_show(), gui2::taddon_connect::post_show(), and gui2::tlobby_main::send_message_button_callback().
|
inline |
Definition at line 131 of file text_box.hpp.
References gui2::ttext_history::get_history(), and history_.
Referenced by gui2::implementation::tbuilder_text_box::build().
|
inline |
Definition at line 136 of file text_box.hpp.
References max_input_length_.
Referenced by gui2::implementation::tbuilder_text_box::build().
|
private |
Definition at line 389 of file text_box.cpp.
References DBG_GUI_E, LOG_HEADER, and gui2::ttext_::select_all().
Referenced by ttext_box().
|
private |
Definition at line 362 of file text_box.cpp.
References DBG_GUI_E, gui2::get_mouse_position(), gui2::twidget::get_window(), handle_mouse_selection(), gui2::twindow::keyboard_capture(), LOG_HEADER, and gui2::twindow::mouse_capture().
Referenced by ttext_box().
|
private |
Definition at line 379 of file text_box.cpp.
References DBG_GUI_E, dragging_, and LOG_HEADER.
Referenced by ttext_box().
|
private |
Definition at line 349 of file text_box.cpp.
References DBG_GUI_E, dragging_, get_control_type(), handle_mouse_selection(), and gui2::twidget::id().
Referenced by ttext_box().
|
overrideprotectedvirtual |
Reimplemented from gui2::tcontrol.
Definition at line 132 of file text_box.cpp.
References gui2::twidget::can_wrap(), gui2::tcontrol::canvas(), gui2::ttext_::get_cursor_position(), gui2::ttext_::get_length(), gui2::ttext_::get_selection_length(), gui2::ttext_::get_selection_start(), gui2::tcontrol::get_text_maximum_height(), gui2::tcontrol::get_text_maximum_width(), gui2::ttext_::get_value(), max_input_length_, gui2::ttext_::set_ellipse_mode(), gui2::ttext_::set_maximum_length(), text_x_offset_, text_y_offset_, and gui2::tpoint::x.
Referenced by handle_mouse_selection(), gui2::tpassword_box::post_function(), and update_offsets().
|
private |
Updates text_x_offset_ and text_y_offset_.
Definition at line 244 of file text_box.cpp.
References game_logic::map_formula_callable::add(), gui2::tcontrol::canvas(), gui2::tcontrol::config(), gui2::twidget::get_height(), font::get_max_height(), gui2::twidget::get_width(), text_height_, text_x_offset_, text_y_offset_, and update_canvas().
Referenced by load_config_extra(), and place().
|
private |
Is the mouse in dragging mode, this affects selection in mouse move.
Definition at line 210 of file text_box.hpp.
Referenced by handle_mouse_selection(), signal_handler_left_button_up(), and signal_handler_mouse_motion().
|
private |
The history text for this widget.
Definition at line 179 of file text_box.hpp.
Referenced by history_down(), history_up(), save_to_history(), and set_history().
|
private |
The maximum length of the text input.
Definition at line 182 of file text_box.hpp.
Referenced by place(), set_max_input_length(), and update_canvas().
|
private |
The height of the text itself.
Needed to determine whether a click is on the text.
Definition at line 204 of file text_box.hpp.
Referenced by handle_mouse_selection(), and update_offsets().
|
private |
The x offset in the widget where the text starts.
This value is needed to translate a location in the widget to a location in the text.
Definition at line 190 of file text_box.hpp.
Referenced by handle_mouse_selection(), update_canvas(), and update_offsets().
|
private |
The y offset in the widget where the text starts.
Needed to determine whether a click is on the text.
Definition at line 197 of file text_box.hpp.
Referenced by handle_mouse_selection(), update_canvas(), and update_offsets().