The Battle for Wesnoth  1.13.4+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
gui2::ttext_box Class Reference

Class for a single line text area. More...

#include <text_box.hpp>

Inheritance diagram for gui2::ttext_box:
Inheritance graph

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::stringtext () 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 twidgetfind_at (const tpoint &coordinate, const bool must_be_active) override
 See twidget::find_at. More...
 
virtual const twidgetfind_at (const tpoint &coordinate, const bool must_be_active) const override
 See twidget::find_at. More...
 
twidgetfind (const std::string &id, const bool must_be_active) override
 See twidget::find. More...
 
const twidgetfind (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_stringlabel () const
 
virtual void set_label (const t_string &label)
 
virtual void set_use_markup (bool use_markup)
 
bool get_use_markup () const
 
const t_stringtooltip () const
 
void set_tooltip (const t_string &tooltip)
 
const t_stringhelp_message () const
 
void set_help_message (const t_string &help_message)
 
std::vector< tcanvas > & canvas ()
 
tcanvascanvas (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::stringid () const
 
twindowget_window ()
 Get the parent window. More...
 
const twindowget_window () const
 The constant version of get_window. More...
 
tdialogdialog ()
 Returns the top-level dialogue. More...
 
void set_parent (twidget *parent)
 
twidgetparent ()
 
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_executorset_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 tpointlayout_size () const
 

Private Member Functions

void update_offsets ()
 Updates text_x_offset_ and text_y_offset_. More...
 
void handle_key_up_arrow (SDLMod, bool &)
 Inherited from ttext_. More...
 
void handle_key_down_arrow (SDLMod, bool &)
 Inherited from ttext_. More...
 
bool history_up ()
 Goes one item up in the history. More...
 
bool history_down ()
 Goes one item down in the history. More...
 
void handle_key_default (bool &handled, SDLKey key, SDLMod modifier, const utf8::string &unicode)
 Inherited from ttext_. More...
 
void handle_key_clear_line (SDLMod modifier, bool &handled)
 Inherited from ttext_. More...
 
virtual const std::stringget_control_type () const override
 See tcontrol::get_control_type. More...
 
void load_config_extra ()
 Inherited from tcontrol. More...
 
void signal_handler_mouse_motion (const event::tevent event, bool &handled, const tpoint &coordinate)
 
void signal_handler_left_button_down (const event::tevent event, bool &handled)
 
void signal_handler_left_button_up (const event::tevent event, bool &handled)
 
void signal_handler_left_button_double_click (const event::tevent event, bool &handled)
 

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...
 

Detailed Description

Class for a single line text area.

Definition at line 118 of file text_box.hpp.

Constructor & Destructor Documentation

gui2::ttext_box::ttext_box ( )

Member Function Documentation

void gui2::ttext_box::clear ( )
inline
void gui2::ttext_box::delete_char ( const bool  before_cursor)
protectedvirtual
void gui2::ttext_box::delete_selection ( )
protectedvirtual
const std::string & gui2::ttext_box::get_control_type ( ) const
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().

void gui2::ttext_box::goto_end_of_line ( const bool  select = false)
inlineprotectedvirtual

Inherited from ttext_.

Implements gui2::ttext_.

Definition at line 158 of file text_box.hpp.

References gui2::ttext_::goto_end_of_data().

void gui2::ttext_box::goto_start_of_line ( const bool  select = false)
inlineprotectedvirtual

Inherited from ttext_.

Implements gui2::ttext_.

Definition at line 164 of file text_box.hpp.

References gui2::ttext_::goto_start_of_data().

void gui2::ttext_box::handle_key_clear_line ( SDLMod  modifier,
bool &  handled 
)
privatevirtual

Inherited from ttext_.

Implements gui2::ttext_.

Definition at line 320 of file text_box.cpp.

References gui2::ttext_::set_value().

void gui2::ttext_box::handle_key_default ( bool &  handled,
SDLKey  key,
SDLMod  modifier,
const utf8::string unicode 
)
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().

void gui2::ttext_box::handle_key_down_arrow ( SDLMod  ,
bool &   
)
inlineprivatevirtual

Inherited from ttext_.

Unmodified Unhandled. Control Ignored. Shift Ignored. Alt Ignored.

Implements gui2::ttext_.

Definition at line 232 of file text_box.hpp.

void gui2::ttext_box::handle_key_up_arrow ( SDLMod  ,
bool &   
)
inlineprivatevirtual

Inherited from ttext_.

Unmodified Unhandled. Control Ignored. Shift Ignored. Alt Ignored.

Implements gui2::ttext_.

Definition at line 220 of file text_box.hpp.

void gui2::ttext_box::handle_mouse_selection ( tpoint  mouse,
const bool  start_selection 
)
protected
bool gui2::ttext_box::history_down ( )
private

Goes one item down in the history.

Returns
True if there's a history, false otherwise.

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().

bool gui2::ttext_box::history_up ( )
private

Goes one item up in the history.

Returns
True if there's a history, false otherwise.

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().

void gui2::ttext_box::load_config_extra ( )
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().

void gui2::ttext_box::place ( const tpoint origin,
const tpoint size 
)
overrideprotectedvirtual
void gui2::ttext_box::save_to_history ( )
inline
void gui2::ttext_box::set_history ( const std::string id)
inline
void gui2::ttext_box::set_max_input_length ( const size_t  length)
inline

Definition at line 136 of file text_box.hpp.

References max_input_length_.

Referenced by gui2::implementation::tbuilder_text_box::build().

void gui2::ttext_box::signal_handler_left_button_double_click ( const event::tevent  event,
bool &  handled 
)
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().

void gui2::ttext_box::signal_handler_left_button_down ( const event::tevent  event,
bool &  handled 
)
private
void gui2::ttext_box::signal_handler_left_button_up ( const event::tevent  event,
bool &  handled 
)
private

Definition at line 379 of file text_box.cpp.

References DBG_GUI_E, dragging_, and LOG_HEADER.

Referenced by ttext_box().

void gui2::ttext_box::signal_handler_mouse_motion ( const event::tevent  event,
bool &  handled,
const tpoint coordinate 
)
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().

void gui2::ttext_box::update_canvas ( )
overrideprotectedvirtual
void gui2::ttext_box::update_offsets ( )
private

Member Data Documentation

bool gui2::ttext_box::dragging_
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().

ttext_history gui2::ttext_box::history_
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().

size_t gui2::ttext_box::max_input_length_
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().

unsigned gui2::ttext_box::text_height_
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().

unsigned gui2::ttext_box::text_x_offset_
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().

unsigned gui2::ttext_box::text_y_offset_
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().


The documentation for this class was generated from the following files: