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

The matrix class. More...

#include <matrix.hpp>

Inheritance diagram for gui2::matrix:
Inheritance graph

Public Member Functions

unsigned create_item (const std::map< std::string, string_map > &item_data, const std::map< std::string, std::string > &tags)
 
virtual void place (const point &origin, const point &size) override
 See widget::place. More...
 
virtual void layout_initialize (const bool full_initialization) override
 See widget::layout_initialize. More...
 
virtual void impl_draw_children (surface &frame_buffer, int x_offset, int y_offset) override
 See widget::impl_draw_children. More...
 
virtual void layout_children () override
 See widget::layout_children. More...
 
virtual void child_populate_dirty_list (window &caller, const std::vector< widget * > &call_stack) override
 See widget::child_populate_dirty_list. More...
 
virtual void request_reduce_width (const unsigned maximum_width) override
 See widget::request_reduce_width. More...
 
virtual widgetfind_at (const point &coordinate, const bool must_be_active) override
 See widget::find_at. More...
 
virtual const widgetfind_at (const point &coordinate, const bool must_be_active) const override
 See widget::find_at. More...
 
widgetfind (const std::string &id, const bool must_be_active) override
 See widget::find. More...
 
const widgetfind (const std::string &id, const bool must_be_active) const override
 See widget::find. More...
 
void sort (const pane::tcompare_functor &compare_functor)
 Sorts the contents of the pane. More...
 
void filter (const pane::tfilter_functor &filter_functor)
 Filters the contents of the pane. More...
 
bool disable_click_dismiss () const override
 See widget::disable_click_dismiss. More...
 
virtual iteration::walker_basecreate_walker () override
 See widget::create_walker. More...
 
gridget_grid (const unsigned id)
 Returns a grid in the pane. More...
 
const gridget_grid (const unsigned id) const
 Returns a grid in the pane. More...
 
- Public Member Functions inherited from gui2::control_NEW< STATE >
 control_NEW (const implementation::builder_styled_widget &builder, const std::string &control_type)
 
virtual void set_active (const bool active) override
 See styled_widget::set_active. More...
 
virtual bool get_active () const override
 See styled_widget::get_active. More...
 
virtual unsigned get_state () const override
 See styled_widget::get_state. More...
 
- Public Member Functions inherited from gui2::styled_widget
 styled_widget (const implementation::builder_styled_widget &builder, const std::string &control_type)
 Constructor. More...
 
virtual void set_members (const string_map &data)
 Sets the members of the styled_widget. More...
 
bool disable_click_dismiss () const override
 See widget::disable_click_dismiss. More...
 
point get_config_minimum_size () const
 Gets the minimum size as defined in the config. More...
 
point get_config_default_size () const
 Gets the default size as defined in the config. More...
 
point 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 color_t get_link_color () const
 Returns the color string to be used with links. More...
 
virtual void request_reduce_height (const unsigned maximum_height) override
 See widget::request_reduce_height. More...
 
widgetfind (const std::string &id, const bool must_be_active) override
 See widget::find. More...
 
const widgetfind (const std::string &id, const bool must_be_active) const override
 See widget::find. More...
 
bool get_use_tooltip_on_label_overflow () const
 
void set_use_tooltip_on_label_overflow (const bool use_tooltip=true)
 
const t_stringget_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_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< canvas > & get_canvases ()
 
canvasget_canvas (const unsigned index)
 
virtual void set_text_alignment (const PangoAlignment text_alignment)
 
PangoAlignment get_text_alignment () const
 
void set_text_ellipse_mode (const PangoEllipsizeMode ellipse_mode)
 
PangoEllipsizeMode get_text_ellipse_mode () const
 Get the text's ellipsize mode. More...
 
- Public Member Functions inherited from gui2::widget
 widget (const widget &)=delete
 
widgetoperator= (const widget &)=delete
 
 widget ()
 
 widget (const builder_widget &builder)
 Constructor. More...
 
virtual ~widget () override
 
void set_id (const std::string &id)
 
const std::string & id () const
 
windowget_window ()
 Get the parent window. More...
 
const windowget_window () const
 The constant version of get_window. More...
 
gridget_parent_grid ()
 Get the parent grid. More...
 
dialogs::modal_dialogdialog ()
 Returns the top-level dialog. More...
 
void set_parent (widget *parent)
 
widgetparent ()
 
virtual void demand_reduce_width (const unsigned maximum_width)
 Tries to reduce the width of a widget. More...
 
virtual void demand_reduce_height (const unsigned maximum_height)
 Tries to reduce the height of a widget. More...
 
point 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 point &origin)
 Sets the origin of the widget. More...
 
virtual void set_size (const point &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 set_horizontal_alignment (const std::string &alignment)
 Sets the horizontal alignment of the widget within its parent grid. More...
 
virtual void set_vertical_alignment (const std::string &alignment)
 Sets the horizontal alignment of the widget within its parent grid. More...
 
point get_origin () const
 Returns the screen origin of the widget. More...
 
point 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 (window &caller, std::vector< widget * > &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 visibility visible)
 
visibility get_visible () const
 
redraw_action get_drawing_action () const
 
void set_debug_border_mode (const unsigned debug_border_mode)
 
void set_debug_border_color (const color_t debug_border_color)
 
virtual bool has_widget (const widget &widget) const
 Does the widget contain the widget. More...
 
- Public Member Functions inherited from gui2::event_executor
 event_executor ()
 
virtual ~event_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
 
event_executorset_wants_mouse_right_double_click (const bool click=true)
 
bool wants_mouse_right_double_click () const
 
- Public Member Functions inherited from gui2::event::dispatcher
 dispatcher ()
 
virtual ~dispatcher ()
 
void connect ()
 Connects the dispatcher to the event handler. More...
 
bool has_event (const ui_event event, const event_queue_type event_type)
 
bool fire (const ui_event event, widget &target)
 Fires an event which has no extra parameters. More...
 
bool fire (const ui_event event, widget &target, const point &coordinate)
 Fires an event which takes a coordinate parameter. More...
 
bool fire (const ui_event event, widget &target, const SDL_Keycode key, const SDL_Keymod modifier, const utf8::string &unicode)
 Fires an event which takes keyboard parameters. More...
 
bool fire (const ui_event event, widget &target, const point &pos, const point &distance)
 Fires an event which takes touch parameters. More...
 
bool fire (const ui_event event, widget &target, void *)
 Fires an event which takes notification parameters. More...
 
bool fire (const ui_event event, widget &target, message &msg)
 Fires an event which takes message parameters. More...
 
bool fire (const ui_event event, widget &target, const SDL_Event &sdlevent)
 Fires an event that's a raw SDL event. More...
 
bool fire (const ui_event event, widget &target, const std::string &text, int32_t start, int32_t len)
 Fires an event which takes text input parameters. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event, E >::value > 
connect_signal (const signal_function &signal, const queue_position position=back_child)
 Connect a signal for callback in set_event. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event, E >::value > 
disconnect_signal (const signal_function &signal, const queue_position position=back_child)
 Disconnect a signal for callback in set_event. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_mouse, E >::value > 
connect_signal (const signal_mouse_function &signal, const queue_position position=back_child)
 Connect a signal for callback in set_event_mouse. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_mouse, E >::value > 
disconnect_signal (const signal_mouse_function &signal, const queue_position position=back_child)
 Disconnect a signal for callback in set_event_mouse. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_keyboard, E >
::value > 
connect_signal (const signal_keyboard_function &signal, const queue_position position=back_child)
 Connect a signal for callback in set_event_keyboard. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_keyboard, E >
::value > 
disconnect_signal (const signal_keyboard_function &signal, const queue_position position=back_child)
 Disconnect a signal for callback in set_event_keyboard. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_touch, E >::value > 
connect_signal (const signal_touch_function &signal, const queue_position position=back_child)
 Connect a signal for callback in set_event_touch. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_touch, E >::value > 
disconnect_signal (const signal_touch_function &signal, const queue_position position=back_child)
 Disconnect a signal for callback in set_event_touch. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_notification, E >
::value > 
connect_signal (const signal_notification_function &signal, const queue_position position=back_child)
 Connect a signal for callback in set_event_notification. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_notification, E >
::value > 
disconnect_signal (const signal_notification_function &signal, const queue_position position=back_child)
 Disconnect a signal for callback in set_event_notification. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_message, E >
::value > 
connect_signal (const signal_message_function &signal, const queue_position position=back_child)
 Connect a signal for callback in set_event_message. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_message, E >
::value > 
disconnect_signal (const signal_message_function &signal, const queue_position position=back_child)
 Disconnect a signal for callback in set_event_message. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_raw_event, E >
::value > 
connect_signal (const signal_raw_event_function &signal, const queue_position position=back_child)
 Connect a signal for callback in set_raw_event. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_raw_event, E >
::value > 
disconnect_signal (const signal_raw_event_function &signal, const queue_position position=back_child)
 Disconnect a signal for callback in set_raw_event. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_text_input, E >
::value > 
connect_signal (const signal_text_input_function &signal, const queue_position position=back_child)
 Connect a signal for callback in set_text_input. More...
 
template<ui_event E>
utils::enable_if_t< has_key
< set_event_text_input, E >
::value > 
disconnect_signal (const signal_text_input_function &signal, const queue_position position=back_child)
 Disconnect a signal for callback in set_text_input. More...
 
void capture_mouse ()
 Captures the mouse. More...
 
void release_mouse ()
 Releases the mouse capture. More...
 
void set_mouse_behavior (const mouse_behavior mouse_behavior)
 
mouse_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 hotkey_function &function)
 Registers a hotkey. More...
 
bool execute_hotkey (const hotkey::HOTKEY_COMMAND id)
 Executes a hotkey. More...
 

Static Public Member Functions

static matrixbuild (const implementation::builder_matrix &builder)
 

Private Member Functions

 matrix (const implementation::builder_matrix &builder)
 
virtual point calculate_best_size () const override
 See widget::calculate_best_size. More...
 
virtual const std::string & get_control_type () const override
 Inherited from styled_widget, implemented by REGISTER_WIDGET. More...
 

Private Attributes

grid content_
 The grid containing our children. More...
 
panepane_
 Contains the pane used for adding new items to the matrix. More...
 

Friends

class debug_layout_graph
 

Additional Inherited Members

- Public Types inherited from gui2::widget
enum  visibility { visibility::visible, visibility::hidden, visibility::invisible }
 Visibility settings done by the user. More...
 
enum  redraw_action { redraw_action::full, redraw_action::partly, redraw_action::none }
 Visibility set by the engine. More...
 
- Public Types inherited from gui2::event::dispatcher
enum  event_queue_type { pre = 1, child = 2, post = 4 }
 
enum  queue_position {
  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  mouse_behavior { all, hit, none }
 The behavior of the mouse events. More...
 
- Protected Member Functions inherited from gui2::styled_widget
resolution_definition_ptr config ()
 
resolution_definition_const_ptr config () const
 
template<typename T >
std::shared_ptr< const
typename T::resolution > 
cast_config_to () const
 Casts the current resolution definition config to the respective type of a derived widget. More...
 
void set_config (resolution_definition_ptr config)
 
virtual void update_canvas ()
 Updates the canvas(ses). More...
 
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 widget::impl_draw_background. More...
 
virtual void impl_draw_foreground (surface &frame_buffer, int x_offset, int y_offset) override
 See widget::impl_draw_foreground. More...
 
std::string get_label_token (const point &position, const char *delimiters=" \n\r\t") const
 Exposes font::pango_text::get_token, for the text label of this styled_widget. More...
 
std::string get_label_link (const point &position) const
 
- Protected Member Functions inherited from gui2::widget
void set_layout_size (const point &size)
 
const pointlayout_size () const
 
void clear_layout_size ()
 Throws away layout_size_. More...
 

Detailed Description

The matrix class.

Definition at line 99 of file matrix.hpp.

Constructor & Destructor Documentation

gui2::matrix::matrix ( const implementation::builder_matrix builder)
explicitprivate

Member Function Documentation

matrix * gui2::matrix::build ( const implementation::builder_matrix builder)
static

Definition at line 90 of file matrix.cpp.

References matrix().

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

point gui2::matrix::calculate_best_size ( ) const
overrideprivatevirtual

See widget::calculate_best_size.

Reimplemented from gui2::styled_widget.

Definition at line 166 of file matrix.cpp.

References content_, gui2::widget::get_best_size(), and utf8::size().

void gui2::matrix::child_populate_dirty_list ( window caller,
const std::vector< widget * > &  call_stack 
)
overridevirtual

See widget::child_populate_dirty_list.

Reimplemented from gui2::widget.

Definition at line 125 of file matrix.cpp.

References wfl::call_stack, content_, and gui2::widget::populate_dirty_list().

unsigned gui2::matrix::create_item ( const std::map< std::string, string_map > &  item_data,
const std::map< std::string, std::string > &  tags 
)

Definition at line 96 of file matrix.cpp.

References gui2::pane::create_item(), and pane_.

iteration::walker_base * gui2::matrix::create_walker ( )
overridevirtual

See widget::create_walker.

Todo:
Implement properly.

Reimplemented from gui2::styled_widget.

Definition at line 178 of file matrix.cpp.

bool gui2::matrix::disable_click_dismiss ( ) const
overridevirtual

See widget::disable_click_dismiss.

Implements gui2::widget.

Definition at line 173 of file matrix.cpp.

void gui2::matrix::filter ( const pane::tfilter_functor filter_functor)
inline

Filters the contents of the pane.

if the filter_functor returns true the item shown, else it's hidden.

Parameters
filter_functorThe functor to determine whether an item should be shown or hidden.

Definition at line 175 of file matrix.hpp.

References gui2::pane::filter(), and pane_.

widget * gui2::matrix::find ( const std::string &  id,
const bool  must_be_active 
)
overridevirtual

See widget::find.

Reimplemented from gui2::widget.

Definition at line 147 of file matrix.cpp.

References content_, gui2::grid::find(), and gui2::widget::find().

const widget * gui2::matrix::find ( const std::string &  id,
const bool  must_be_active 
) const
overridevirtual

See widget::find.

Reimplemented from gui2::widget.

Definition at line 156 of file matrix.cpp.

References content_, gui2::grid::find(), and gui2::widget::find().

widget * gui2::matrix::find_at ( const point coordinate,
const bool  must_be_active 
)
overridevirtual

See widget::find_at.

Reimplemented from gui2::styled_widget.

Definition at line 136 of file matrix.cpp.

References content_, and gui2::grid::find_at().

const widget * gui2::matrix::find_at ( const point coordinate,
const bool  must_be_active 
) const
overridevirtual

See widget::find_at.

Reimplemented from gui2::styled_widget.

Definition at line 141 of file matrix.cpp.

References content_, and gui2::grid::find_at().

virtual const std::string& gui2::matrix::get_control_type ( ) const
overrideprivatevirtual

Inherited from styled_widget, implemented by REGISTER_WIDGET.

Implements gui2::styled_widget.

grid* gui2::matrix::get_grid ( const unsigned  id)

Returns a grid in the pane.

Parameters
idThe id of the item whose grid to return. The id is the value returned by create_item().
Returns
The wanted grid.
Return values
nullptrThe id isn't associated with an item.
const grid* gui2::matrix::get_grid ( const unsigned  id) const

Returns a grid in the pane.

Parameters
idThe id of the item whose grid to return. The id is the value returned by create_item().
Returns
The wanted grid.
Return values
nullptrThe id isn't associated with an item.
void gui2::matrix::impl_draw_children ( surface frame_buffer,
int  x_offset,
int  y_offset 
)
overridevirtual

See widget::impl_draw_children.

Reimplemented from gui2::widget.

Definition at line 115 of file matrix.cpp.

References content_, and gui2::widget::draw_children().

void gui2::matrix::layout_children ( )
overridevirtual

See widget::layout_children.

Reimplemented from gui2::widget.

Definition at line 120 of file matrix.cpp.

References content_, and gui2::grid::layout_children().

void gui2::matrix::layout_initialize ( const bool  full_initialization)
overridevirtual

See widget::layout_initialize.

Reimplemented from gui2::styled_widget.

Definition at line 109 of file matrix.cpp.

References content_, and gui2::grid::layout_initialize().

void gui2::matrix::place ( const point origin,
const point size 
)
overridevirtual

See widget::place.

Reimplemented from gui2::styled_widget.

Definition at line 102 of file matrix.cpp.

References content_, gui2::grid::place(), and gui2::widget::place().

void gui2::matrix::request_reduce_width ( const unsigned  maximum_width)
overridevirtual

See widget::request_reduce_width.

Reimplemented from gui2::styled_widget.

Definition at line 132 of file matrix.cpp.

void gui2::matrix::sort ( const pane::tcompare_functor compare_functor)
inline

Sorts the contents of the pane.

Parameters
compare_functorThe functor to use to sort the items.

Definition at line 160 of file matrix.hpp.

References pane_, and gui2::pane::sort().

Friends And Related Function Documentation

friend class debug_layout_graph
friend

Definition at line 101 of file matrix.hpp.

Member Data Documentation

grid gui2::matrix::content_
private

The grid containing our children.

Definition at line 218 of file matrix.hpp.

Referenced by calculate_best_size(), child_populate_dirty_list(), find(), find_at(), impl_draw_children(), layout_children(), layout_initialize(), matrix(), and place().

pane* gui2::matrix::pane_
private

Contains the pane used for adding new items to the matrix.

The pane is owned by a grid in the content layer.

Definition at line 225 of file matrix.hpp.

Referenced by create_item(), filter(), matrix(), and sort().


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