The listbox class. More...
#include <listbox.hpp>
Public Member Functions | |
tlistbox (const bool has_minimum, const bool has_maximum, const tgenerator_::tplacement placement, const bool select) | |
Constructor. More... | |
void | add_row (const string_map &item, const int index=-1) |
When an item in the list is selected by the user we need to update the state. More... | |
void | add_row (const std::map< std::string, string_map > &data, const int index=-1) |
Adds single row to the grid. More... | |
void | remove_row (const unsigned row, unsigned count=1) |
Removes a row in the listbox. More... | |
void | clear () |
Removes all the rows in the listbox, clearing it. More... | |
unsigned | get_item_count () const |
Returns the number of items in the listbox. More... | |
void | set_row_active (const unsigned row, const bool active) |
Makes a row active or inactive. More... | |
void | set_row_shown (const unsigned row, const bool shown) |
Makes a row visible or invisible. More... | |
void | set_row_shown (const std::vector< bool > &shown) |
Makes a row visible or invisible. More... | |
const tgrid * | get_row_grid (const unsigned row) const |
Returns the grid of the wanted row. More... | |
tgrid * | get_row_grid (const unsigned row) |
The possibly-giving-problems nonconst version of get_row_grid. More... | |
bool | select_row (const unsigned row, const bool select=true) |
Selectes a row. More... | |
int | get_selected_row () const |
Returns the first selected row. More... | |
void | list_item_clicked (twidget &caller) |
Function to call after the user clicked on a row. More... | |
virtual void | set_self_active (const bool active) override |
See tcontainer_::set_self_active. More... | |
bool | update_content_size () |
Request to update the size of the content after changing the content. More... | |
virtual void | place (const tpoint &origin, const tpoint &size) override |
See twidget::place. More... | |
virtual void | layout_children () override |
See twidget::layout_children. More... | |
virtual void | child_populate_dirty_list (twindow &caller, const std::vector< twidget * > &call_stack) override |
See twidget::child_populate_dirty_list. More... | |
void | set_callback_item_change (const std::function< void(size_t)> &callback) |
void | set_callback_value_change (const std::function< void(twidget &)> &callback) |
void | set_list_builder (tbuilder_grid_ptr list_builder) |
void | order_by (const tgenerator_::torder_func &func) |
void | set_column_order (unsigned col, const std::vector< tgenerator_::torder_func > &func) |
Public Member Functions inherited from gui2::tscrollbar_container | |
tscrollbar_container (const unsigned canvas_count) | |
~tscrollbar_container () | |
virtual void | layout_initialise (const bool full_initialisation) override |
See twidget::layout_initialise. More... | |
virtual void | request_reduce_height (const unsigned maximum_height) override |
See twidget::request_reduce_height. More... | |
virtual void | request_reduce_width (const unsigned maximum_width) override |
See twidget::request_reduce_width. More... | |
virtual bool | can_wrap () const override |
See twidget::can_wrap. More... | |
virtual void | set_origin (const tpoint &origin) override |
See twidget::set_origin. More... | |
virtual void | set_visible_rectangle (const SDL_Rect &rectangle) override |
See twidget::set_visible_rectangle. More... | |
virtual bool | get_active () const override |
See tcontrol::get_active. More... | |
virtual unsigned | get_state () const override |
See tcontrol::get_state. 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... | |
bool | disable_click_dismiss () const override |
See twidget::disable_click_dismiss. More... | |
void | set_vertical_scrollbar_mode (const tscrollbar_mode scrollbar_mode) |
tscrollbar_mode | get_vertical_scrollbar_mode () const |
void | set_horizontal_scrollbar_mode (const tscrollbar_mode scrollbar_mode) |
tscrollbar_mode | get_horizontal_scrollbar_mode () const |
tgrid * | content_grid () |
const tgrid * | content_grid () const |
const SDL_Rect & | content_visible_area () const |
bool | vertical_scrollbar_at_end () |
unsigned | get_vertical_scrollbar_item_position () const |
Returns current position of the vertical scrollbar. More... | |
void | set_vertical_scrollbar_item_position (const unsigned position) |
Move the vertical scrollbar to a position. More... | |
void | scroll_vertical_scrollbar (const tscrollbar_::tscroll scroll) |
Scrolls the vertical scrollbar. More... | |
void | scroll_horizontal_scrollbar (const tscrollbar_::tscroll scroll) |
Scrolls the horizontal scrollbar. More... | |
void | vertical_scrollbar_moved () |
Callback when the scrollbar moves (NOTE maybe only one callback needed). More... | |
void | horizontal_scrollbar_moved () |
Public Member Functions inherited from gui2::tcontainer_ | |
tcontainer_ (const unsigned canvas_count) | |
virtual SDL_Rect | get_client_rect () const |
Returns the client rect. More... | |
void | reduce_width (const unsigned maximum_width) |
Tries to reduce the width of a container. More... | |
virtual void | demand_reduce_width (const unsigned maximum_width) override |
See twidget::demand_reduce_width. More... | |
void | reduce_height (const unsigned maximum_height) |
Tries to reduce the height of a container. More... | |
virtual void | demand_reduce_height (const unsigned maximum_height) override |
See twidget::demand_reduce_height. More... | |
virtual bool | has_widget (const twidget &widget) const override |
See twidget::has_widget. More... | |
virtual void | set_active (const bool active) override |
See tcontrol::set_active. More... | |
virtual iterator::twalker_ * | create_walker () override |
See twidget::create_walker. More... | |
void | init_grid (const boost::intrusive_ptr< tbuilder_grid > &grid_builder) |
Initializes and builds the grid. More... | |
tgrid::iterator | begin () |
tgrid::iterator | end () |
unsigned | add_row (const unsigned count=1) |
void | set_rows (const unsigned rows) |
unsigned int | get_rows () const |
void | set_cols (const unsigned cols) |
unsigned int | get_cols () const |
void | set_rows_cols (const unsigned rows, const unsigned cols) |
void | set_child (twidget *widget, const unsigned row, const unsigned col, const unsigned flags, const unsigned border_size) |
void | set_row_grow_factor (const unsigned row, const unsigned factor) |
void | set_column_grow_factor (const unsigned column, const unsigned factor) |
const tgrid & | grid () const |
tgrid & | grid () |
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... | |
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... | |
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 () |
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 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... | |
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... | |
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) |
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 | |
void | handle_key_up_arrow (SDLMod modifier, bool &handled) |
Inherited from tscrollbar_container. More... | |
void | handle_key_down_arrow (SDLMod modifier, bool &handled) |
Inherited from tscrollbar_container. More... | |
void | handle_key_left_arrow (SDLMod modifier, bool &handled) |
Inherited from tscrollbar_container. More... | |
void | handle_key_right_arrow (SDLMod modifier, bool &handled) |
Inherited from tscrollbar_container. More... | |
Protected Member Functions inherited from gui2::tscrollbar_container | |
void | show_content_rect (const SDL_Rect &rect) |
Shows a certain part of the content. More... | |
void | set_scrollbar_button_status () |
Sets the status of the scrollbar buttons. More... | |
bool | content_resize_request (const bool force_sizing=false) |
Notification if the content of a child needs a resize. More... | |
bool | content_resize_request (const int width_modification, const int height_modification, const int width_modification_pos=-1, const int height_modification_pos=-1) |
Request from the content to modify the size of the container. More... | |
virtual void | handle_key_home (SDLMod modifier, bool &handled) |
Home key pressed. More... | |
virtual void | handle_key_end (SDLMod modifier, bool &handled) |
End key pressed. More... | |
virtual void | handle_key_page_up (SDLMod modifier, bool &handled) |
Page up key pressed. More... | |
virtual void | handle_key_page_down (SDLMod modifier, bool &handled) |
Page down key pressed. More... | |
Protected Member Functions inherited from gui2::tcontrol | |
tresolution_definition_ptr | config () |
tresolution_definition_const_ptr | config () const |
void | set_config (tresolution_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 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 Types | |
typedef std::vector< std::pair < tselectable_ *, std::vector < tgenerator_::torder_func > > > | torder_list |
Private Member Functions | |
void | finalize (tbuilder_grid_const_ptr header, tbuilder_grid_const_ptr footer, const std::vector< string_map > &list_data) |
Finishes the building initialization of the widget. More... | |
void | resize_content (const int width_modification, const int height_modification, const int width__modification_pos=-1, const int height_modification_pos=-1) |
Resizes the content. More... | |
void | resize_content (const twidget &row) |
Resizes the content. More... | |
void | layout_children (const bool force) |
Layouts the children if needed. More... | |
virtual void | set_content_size (const tpoint &origin, const tpoint &size) |
Inherited from tscrollbar_container. More... | |
virtual const std::string & | get_control_type () const override |
See tcontrol::get_control_type. More... | |
void | order_by_column (unsigned column, twidget &widget) |
Private Attributes | |
tgenerator_ * | generator_ |
Contains a pointer to the generator. More... | |
const bool | is_horizonal_ |
tbuilder_grid_const_ptr | list_builder_ |
Contains the builder for the new items. More... | |
std::function< void(size_t)> | callback_item_changed_ |
This callback is called when a list item is clicked (toggled). More... | |
std::function< void(twidget &)> | callback_value_changed_ |
This callback is called when the value in the listbox changes. More... | |
bool | need_layout_ |
torder_list | orders_ |
Friends | |
struct | implementation::tbuilder_listbox |
struct | implementation::tbuilder_horizontal_listbox |
class | tdebug_layout_graph |
Additional Inherited Members | |
Public Types inherited from gui2::tscrollbar_container | |
enum | tscrollbar_mode { always_visible, always_invisible, auto_visible, auto_visible_first_run } |
The way to handle the showing or hiding of the scrollbar. More... | |
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... | |
The listbox class.
Definition at line 39 of file listbox.hpp.
|
private |
Definition at line 311 of file listbox.hpp.
gui2::tlistbox::tlistbox | ( | const bool | has_minimum, |
const bool | has_maximum, | ||
const tgenerator_::tplacement | placement, | ||
const bool | select | ||
) |
Constructor.
has_minimum | Does the listbox need to have one item selected. |
has_maximum | Can the listbox only have one item selected. |
placement | How are the items placed. |
select | Select an item when selected, if false it changes the visible state instead. |
Definition at line 60 of file listbox.cpp.
void gui2::tlistbox::add_row | ( | const string_map & | item, |
const int | index = -1 |
||
) |
When an item in the list is selected by the user we need to update the state.
We installed a callback handler which calls us.
item | The data send to the set_members of the widgets. |
index | The item before which to add the new item, 0 == begin, -1 == end. |
Definition at line 74 of file listbox.cpp.
References gui2::tgenerator_::create_item(), generator_, list_builder_, and resize_content().
Referenced by gui2::tmp_change_control::model::add_nick(), gui2::tpreferences::add_pager_row(), gui2::tgamestate_inspector::model::add_row_to_stuff_list(), gui2::tgamestate_inspector::model::add_row_to_stuff_types_list(), gui2::tmp_change_control::model::add_side(), gui2::tpreferences::add_tab(), gui2::tgame_load::fill_game_list(), gui2::tlanguage_selection::pre_show(), gui2::tmp_create_game::pre_show(), gui2::tunit_recruit::pre_show(), gui2::tlabel_settings::pre_show(), gui2::tdrop_down_list::pre_show(), gui2::teditor_set_starting_position::pre_show(), gui2::tcore_selection::pre_show(), gui2::tcampaign_difficulty::pre_show(), gui2::taddon_uninstall_list::pre_show(), gui2::tlogging::pre_show(), gui2::tdepcheck_select_new::pre_show(), gui2::taddon_list::pre_show(), gui2::ttheme_list::pre_show(), gui2::teditor_generate_map::pre_show(), gui2::tcampaign_selection::pre_show(), gui2::tunit_create::pre_show(), gui2::tgame_version::pre_show(), gui2::tsimple_item_selector::pre_show(), gui2::taddon_filter_options::pre_show(), gui2::twml_message_::pre_show(), gui2::tlobby_main::search_create_window(), gui2::set_weapon_info(), gui2::tpreferences::setup_friends_list(), gui2::tpreferences::setup_hotkey_list(), gui2::tlobby_main::update_gamelist(), gui2::tlobby_main::update_gamelist_diff(), and gui2::tcampaign_settings::update_lists().
void gui2::tlistbox::add_row | ( | const std::map< std::string, string_map > & | data, |
const int | index = -1 |
||
) |
Adds single row to the grid.
This function expect a row to have multiple widgets (either multiple columns or one column with multiple widgets).
data | The data to send to the set_members of the widgets. If the member id is not an empty string it is only send to the widget that has the wanted id (if any). If the member id is an empty string, it is send to all members. Having both empty and non-empty id's gives undefined behavior. |
index | The item before which to add the new item, 0 == begin, -1 == end. |
Definition at line 84 of file listbox.cpp.
References gui2::tgenerator_::create_item(), generator_, list_builder_, and resize_content().
|
overridevirtual |
See twidget::child_populate_dirty_list.
Reimplemented from gui2::tscrollbar_container.
Definition at line 373 of file listbox.cpp.
References gui2::tscrollbar_container::child_populate_dirty_list(), generator_, and gui2::twidget::populate_dirty_list().
void gui2::tlistbox::clear | ( | ) |
Removes all the rows in the listbox, clearing it.
Definition at line 131 of file listbox.cpp.
References remove_row().
Referenced by gui2::tmp_change_control::model::clear_nicks(), gui2::tmp_change_control::model::clear_sides(), gui2::tgamestate_inspector::model::clear_stuff_list(), gui2::tgamestate_inspector::model::clear_stuff_types_list(), gui2::tgame_load::fill_game_list(), gui2::taddon_uninstall_list::pre_show(), gui2::tunit_create::pre_show(), gui2::tpreferences::setup_friends_list(), gui2::tpreferences::setup_hotkey_list(), gui2::tlobby_main::update_gamelist(), gui2::tcampaign_settings::update_lists(), and gui2::tlobby_main::update_playerlist().
|
private |
Finishes the building initialization of the widget.
For now it's always fixed width depending on the first row.
header | Builder for the header. |
footer | Builder for the footer. |
list_data | The initial data to fill the listbox with. |
Definition at line 528 of file listbox.cpp.
References gui2::tscrollbar_container::content_grid(), gui2::tgenerator_::create_items(), gui2::tscrollbar_container::finalize_setup(), generator_, gui2::tgrid::get_cols(), gui2::tgrid::get_rows(), gui2::tcontainer_::grid(), i, list_builder_, order_by_column(), and orders_.
Referenced by gui2::implementation::tbuilder_listbox::build(), and gui2::implementation::tbuilder_horizontal_listbox::build().
|
overrideprivatevirtual |
See tcontrol::get_control_type.
Reimplemented from gui2::tscrollbar_container.
Definition at line 630 of file listbox.cpp.
unsigned gui2::tlistbox::get_item_count | ( | ) | const |
Returns the number of items in the listbox.
Definition at line 138 of file listbox.cpp.
References generator_, and gui2::tgenerator_::get_item_count().
Referenced by gui2::tpreferences::add_hotkey_callback(), gui2::tgame_load::filter_text_changed(), gui2::tunit_create::filter_text_changed(), gui2::taddon_uninstall_list::post_show(), gui2::tlanguage_selection::pre_show(), gui2::tlabel_settings::pre_show(), gui2::tcore_selection::pre_show(), gui2::tcampaign_difficulty::pre_show(), gui2::ttheme_list::pre_show(), gui2::taddon_list::pre_show(), gui2::tcampaign_selection::pre_show(), gui2::teditor_generate_map::pre_show(), gui2::tpreferences::pre_show(), gui2::tunit_create::pre_show(), gui2::tgame_version::pre_show(), gui2::tsimple_item_selector::pre_show(), remove_row(), gui2::tlobby_main::search_create_window(), set_row_shown(), gui2::set_weapon_info(), gui2::tlobby_main::update_gamelist(), gui2::tlobby_main::update_gamelist_diff(), and gui2::tlobby_main::update_gamelist_filter().
const tgrid * gui2::tlistbox::get_row_grid | ( | const unsigned | row | ) | const |
Returns the grid of the wanted row.
There's only a const version since allowing callers to modify the grid behind our backs might give problems. We return a pointer instead of a reference since dynamic casting of pointers is easier (no try catch needed).
row | The row to get the grid from, the caller has to make sure the row is a valid row. |
Definition at line 215 of file listbox.cpp.
References generator_, and gui2::tgenerator_::item().
Referenced by gui2::tlobby_main::active_window_changed(), gui2::tpreferences::add_hotkey_callback(), gui2::tgame_load::filter_text_changed(), gui2::tunit_create::filter_text_changed(), gui2::get_advanced_row_grid(), gui2::tlobby_main::increment_waiting_messages(), gui2::tlobby_main::increment_waiting_whsipers(), gui2::taddon_uninstall_list::post_show(), gui2::tlabel_settings::pre_show(), gui2::tcore_selection::pre_show(), gui2::tcampaign_difficulty::pre_show(), gui2::tlogging::pre_show(), gui2::taddon_list::pre_show(), gui2::tcampaign_selection::pre_show(), gui2::tpreferences::remove_hotkey_callback(), gui2::tlobby_main::search_create_window(), gui2::tlobby_main::update_gamelist(), and gui2::tlobby_main::update_gamelist_diff().
tgrid * gui2::tlistbox::get_row_grid | ( | const unsigned | row | ) |
The possibly-giving-problems nonconst version of get_row_grid.
row | The row to get the grid from, the caller has to make sure the row is a valid row. |
Definition at line 222 of file listbox.cpp.
References generator_, and gui2::tgenerator_::item().
int gui2::tlistbox::get_selected_row | ( | ) | const |
Returns the first selected row.
-1 | No row selected. |
Definition at line 237 of file listbox.cpp.
References generator_, and gui2::tgenerator_::get_selected_item().
Referenced by gui2::tpreferences::add_hotkey_callback(), gui2::tmp_change_control::controller::change_control(), gui2::tcampaign_settings::change_era(), gui2::tgame_load::delete_button_callback(), gui2::teditor_generate_map::do_generator_selected(), gui2::tpreferences::edit_friend_list_entry(), gui2::tmp_change_control::controller::get_side_controller(), gui2::tgamestate_inspector::controller::get_sm_controller(), gui2::tmp_change_control::controller::handle_nicks_list_item_clicked(), gui2::side_controller::handle_nicks_list_selection(), gui2::tmp_change_control::controller::handle_sides_list_item_clicked(), gui2::variable_mode_controller::handle_stuff_list_selection(), gui2::event_mode_controller::handle_stuff_list_selection(), gui2::unit_mode_controller::handle_stuff_list_selection(), gui2::team_mode_controller::handle_stuff_list_selection(), gui2::tlobby_main::join_global_button_callback(), gui2::tlobby_main::observe_global_button_callback(), gui2::tpreferences::on_advanced_prefs_list_select(), gui2::teditor_set_starting_position::post_show(), gui2::tcampaign_difficulty::post_show(), gui2::tdepcheck_select_new::post_show(), gui2::ttheme_list::post_show(), gui2::tunit_create::post_show(), gui2::tsimple_item_selector::post_show(), gui2::taddon_filter_options::post_show(), gui2::tpreferences::remove_friend_list_entry(), gui2::tpreferences::remove_hotkey_callback(), gui2::tlobby_main::room_switch_callback(), set_row_shown(), gui2::tlobby_main::update_gamelist(), gui2::tlobby_main::update_gamelist_diff(), and gui2::tlobby_main::update_selected_game().
Inherited from tscrollbar_container.
Reimplemented from gui2::tscrollbar_container.
Definition at line 411 of file listbox.cpp.
References callback_value_changed_, gui2::tscrollbar_container::content_visible_area(), generator_, gui2::twidget::get_rectangle(), gui2::tgenerator_::get_selected_item(), gui2::tgenerator_::handle_key_down_arrow(), gui2::tscrollbar_container::handle_key_up_arrow(), gui2::tgenerator_::item(), and gui2::tscrollbar_container::show_content_rect().
Inherited from tscrollbar_container.
Reimplemented from gui2::tscrollbar_container.
Definition at line 438 of file listbox.cpp.
References callback_value_changed_, gui2::tscrollbar_container::content_visible_area(), generator_, gui2::twidget::get_rectangle(), gui2::tgenerator_::get_selected_item(), gui2::tgenerator_::handle_key_left_arrow(), gui2::tscrollbar_container::handle_key_left_arrow(), gui2::tgenerator_::item(), and gui2::tscrollbar_container::show_content_rect().
Inherited from tscrollbar_container.
Reimplemented from gui2::tscrollbar_container.
Definition at line 465 of file listbox.cpp.
References callback_value_changed_, gui2::tscrollbar_container::content_visible_area(), generator_, gui2::twidget::get_rectangle(), gui2::tgenerator_::get_selected_item(), gui2::tscrollbar_container::handle_key_left_arrow(), gui2::tgenerator_::handle_key_right_arrow(), gui2::tgenerator_::item(), and gui2::tscrollbar_container::show_content_rect().
Inherited from tscrollbar_container.
Reimplemented from gui2::tscrollbar_container.
Definition at line 384 of file listbox.cpp.
References callback_value_changed_, gui2::tscrollbar_container::content_visible_area(), generator_, gui2::twidget::get_rectangle(), gui2::tgenerator_::get_selected_item(), gui2::tgenerator_::handle_key_up_arrow(), gui2::tscrollbar_container::handle_key_up_arrow(), gui2::tgenerator_::item(), and gui2::tscrollbar_container::show_content_rect().
|
overridevirtual |
Reimplemented from gui2::tscrollbar_container.
Definition at line 367 of file listbox.cpp.
|
private |
Layouts the children if needed.
Definition at line 615 of file listbox.cpp.
References gui2::tscrollbar_container::content_grid(), gui2::tscrollbar_container::content_visible_area_, gui2::twidget::get_origin(), gui2::twidget::get_size(), need_layout_, gui2::tgrid::place(), gui2::twidget::set_is_dirty(), and gui2::tgrid::set_visible_rectangle().
Function to call after the user clicked on a row.
Definition at line 244 of file listbox.cpp.
References callback_item_changed_, callback_value_changed_, generator_, gui2::tgenerator_::get_item_count(), gui2::twidget::get_window(), gui2::tgrid::has_widget(), i, gui2::tgenerator_::item(), gui2::twindow::keyboard_capture(), and gui2::tgenerator_::toggle_item().
void gui2::tlistbox::order_by | ( | const tgenerator_::torder_func & | func | ) |
Definition at line 588 of file listbox.cpp.
References generator_, need_layout_, gui2::twidget::set_is_dirty(), and gui2::tgenerator_::set_order().
Referenced by gui2::taddon_list::on_order_button_click(), and order_by_column().
Definition at line 565 of file listbox.cpp.
References gui2::tselectable_::get_value(), order_by(), orders_, and gui2::tselectable_::set_value().
Referenced by finalize().
See twidget::place.
At the moment the listboxes and dialogs in general are resized a lot as work-around for sizing. So this function makes the selected item in view again. It doesn't work great in all cases but the proper fix is to avoid resizing dialogs a lot. Need more work later on.
Reimplemented from gui2::tscrollbar_container.
Definition at line 291 of file listbox.cpp.
References gui2::tscrollbar_container::content_visible_area(), generator_, gui2::twidget::get_rectangle(), gui2::tgenerator_::get_selected_item(), gui2::tgenerator_::item(), gui2::tscrollbar_container::place(), and gui2::tscrollbar_container::show_content_rect().
void gui2::tlistbox::remove_row | ( | const unsigned | row, |
unsigned | count = 1 |
||
) |
Removes a row in the listbox.
row | The row to remove, when not in range the function is ignored. |
count | The number of rows to remove, 0 means all rows (starting from row). |
Definition at line 94 of file listbox.cpp.
References gui2::tscrollbar_container::content_grid_, gui2::tgenerator_::delete_item(), generator_, gui2::twidget::get_height(), get_item_count(), gui2::twidget::get_visible(), gui2::twidget::get_width(), gui2::twidget::get_y(), gui2::twidget::tvisible::invisible, is_horizonal_, gui2::tgenerator_::item(), resize_content(), and update_content_size().
Referenced by clear(), gui2::tlobby_main::close_window(), gui2::tgame_load::delete_button_callback(), and gui2::tlobby_main::update_gamelist_diff().
|
private |
Resizes the content.
The resize either happens due to resizing the content or invalidate the layout of the window.
width_modification | The wanted modification to the width:
|
height_modification | The wanted modification to the height:
|
Definition at line 316 of file listbox.cpp.
References gui2::tscrollbar_container::content_grid(), gui2::tscrollbar_container::content_resize_request(), DBG_GUI_L, gui2::twidget::get_size(), LOG_HEADER, need_layout_, gui2::twidget::set_is_dirty(), gui2::twidget::set_size(), gui2::tpoint::x, and gui2::tpoint::y.
Referenced by add_row(), remove_row(), and resize_content().
Resizes the content.
The resize happens when a new row is added to the contents.
row | The new row added to the listbox. |
Definition at line 347 of file listbox.cpp.
References gui2::tscrollbar_container::content_grid(), DBG_GUI_L, gui2::twidget::get_best_size(), gui2::twidget::get_size(), gui2::twidget::get_visible(), gui2::twidget::tvisible::invisible, LOG_HEADER, resize_content(), gui2::tpoint::x, and gui2::tpoint::y.
bool gui2::tlistbox::select_row | ( | const unsigned | row, |
const bool | select = true |
||
) |
Selectes a row.
row | The row to select. |
select | Select or deselect the row. |
Definition at line 228 of file listbox.cpp.
References generator_, and gui2::tgenerator_::select_item().
Referenced by gui2::tlobby_main::close_window(), gui2::tlanguage_selection::pre_show(), gui2::tdrop_down_list::pre_show(), gui2::teditor_set_starting_position::pre_show(), gui2::tcore_selection::pre_show(), gui2::tcampaign_difficulty::pre_show(), gui2::tdepcheck_select_new::pre_show(), gui2::ttheme_list::pre_show(), gui2::teditor_generate_map::pre_show(), gui2::tpreferences::pre_show(), gui2::tunit_create::pre_show(), gui2::tgame_version::pre_show(), gui2::tsimple_item_selector::pre_show(), gui2::taddon_filter_options::pre_show(), gui2::twml_message_::pre_show(), gui2::set_weapon_info(), gui2::side_controller::show_nicks_list(), gui2::tlobby_main::switch_to_window(), gui2::tlobby_main::update_gamelist(), gui2::tlobby_main::update_gamelist_diff(), and gui2::tcampaign_settings::update_lists().
|
inline |
Definition at line 219 of file listbox.hpp.
References callback_item_changed_.
Referenced by gui2::tdrop_down_list::pre_show(), gui2::tcampaign_settings::pre_show(), and gui2::teditor_generate_map::pre_show().
|
inline |
Definition at line 225 of file listbox.hpp.
References callback_value_changed_.
Referenced by gui2::tmp_change_control::view::bind(), gui2::tgamestate_inspector::view::bind(), gui2::tpreferences::initialize_tabs(), gui2::tmp_create_game::pre_show(), gui2::tunit_recruit::pre_show(), gui2::tcore_selection::pre_show(), gui2::taddon_list::pre_show(), gui2::tgame_load::pre_show(), gui2::tcampaign_selection::pre_show(), gui2::tpreferences::pre_show(), gui2::tunit_create::pre_show(), gui2::tgame_version::pre_show(), and gui2::tlobby_main::pre_show().
void gui2::tlistbox::set_column_order | ( | unsigned | col, |
const std::vector< tgenerator_::torder_func > & | func | ||
) |
Definition at line 596 of file listbox.cpp.
References orders_.
Referenced by gui2::tgame_load::fill_game_list(), gui2::tpreferences::initialize_members(), and gui2::tunit_create::pre_show().
Inherited from tscrollbar_container.
Reimplemented from gui2::tscrollbar_container.
Definition at line 604 of file listbox.cpp.
References gui2::tscrollbar_container::content_grid(), gui2::twidget::get_best_size(), gui2::tgrid::place(), gui2::tpoint::x, and gui2::tpoint::y.
|
inline |
Definition at line 230 of file listbox.hpp.
References list_builder_.
Referenced by gui2::implementation::tbuilder_listbox::build(), and gui2::implementation::tbuilder_horizontal_listbox::build().
void gui2::tlistbox::set_row_active | ( | const unsigned | row, |
const bool | active | ||
) |
Makes a row active or inactive.
NOTE this doesn't change the select status of the row.
row | The row to (de)activate. |
active | true activate, false deactivate. |
Definition at line 144 of file listbox.cpp.
References generator_, gui2::tgenerator_::item(), and gui2::tgrid::set_active().
void gui2::tlistbox::set_row_shown | ( | const unsigned | row, |
const bool | shown | ||
) |
Makes a row visible or invisible.
row | The row to show or hide. |
shown | true visible, false invisible. |
Definition at line 150 of file listbox.cpp.
References gui2::tgenerator_::calculate_best_size(), callback_value_changed_, gui2::tscrollbar_container::content_grid_, gui2::tscrollbar_container::content_resize_request(), gui2::tscrollbar_container::content_visible_area(), generator_, gui2::twidget::get_origin(), get_selected_row(), gui2::twidget::get_window(), gui2::twindow::invalidate_layout(), gui2::tgenerator_::place(), gui2::twidget::set_is_dirty(), gui2::tgenerator_::set_item_shown(), and gui2::tgrid::set_visible_rectangle().
Referenced by gui2::tgame_load::filter_text_changed(), gui2::tunit_create::filter_text_changed(), gui2::taddon_list::on_filtertext_changed(), gui2::tlobby_main::update_gamelist(), gui2::tlobby_main::update_gamelist_diff(), and gui2::tlobby_main::update_gamelist_filter().
void gui2::tlistbox::set_row_shown | ( | const std::vector< bool > & | shown | ) |
Makes a row visible or invisible.
Use this version if you want to show hide multiple items since it's optimized for that purpose, for one it calls the selection changed callback only once instead of several times.
shown | A vector with the show hide status for every row. The number of items in the vector must be equal to the number of items in the listbox. |
Definition at line 181 of file listbox.cpp.
References gui2::tgenerator_::calculate_best_size(), callback_value_changed_, gui2::tscrollbar_container::content_grid_, gui2::tscrollbar_container::content_resize_request(), gui2::tscrollbar_container::content_visible_area(), generator_, get_item_count(), gui2::twidget::get_origin(), get_selected_row(), gui2::twidget::get_window(), i, gui2::tgenerator_::place(), gui2::twidget::set_is_dirty(), gui2::tgenerator_::set_item_shown(), and gui2::tgrid::set_visible_rectangle().
|
overridevirtual |
See tcontainer_::set_self_active.
Implements gui2::tcontainer_.
Definition at line 267 of file listbox.cpp.
bool gui2::tlistbox::update_content_size | ( | ) |
Request to update the size of the content after changing the content.
When a resize is required the container first can try to handle it itself. If it can't honor the request the function will call twindow::invalidate_layout().
Definition at line 272 of file listbox.cpp.
References gui2::tscrollbar_container::content_grid_, gui2::tscrollbar_container::content_resize_request(), gui2::tscrollbar_container::content_visible_area(), gui2::twidget::get_size(), gui2::twidget::get_visible(), gui2::twidget::tvisible::invisible, gui2::twidget::set_is_dirty(), and gui2::tgrid::set_visible_rectangle().
Referenced by remove_row().
|
friend |
Definition at line 42 of file listbox.hpp.
|
friend |
Definition at line 41 of file listbox.hpp.
|
friend |
Definition at line 43 of file listbox.hpp.
|
private |
This callback is called when a list item is clicked (toggled).
The function is passed the index of the toggled item.
Definition at line 298 of file listbox.hpp.
Referenced by list_item_clicked(), and set_callback_item_change().
This callback is called when the value in the listbox changes.
Definition at line 307 of file listbox.hpp.
Referenced by handle_key_down_arrow(), handle_key_left_arrow(), handle_key_right_arrow(), handle_key_up_arrow(), list_item_clicked(), set_callback_value_change(), and set_row_shown().
|
private |
Contains a pointer to the generator.
The pointer is not owned by this class, it's stored in the content_grid_ of the tscrollbar_container super class and freed when it's grid is freed.
Definition at line 286 of file listbox.hpp.
Referenced by add_row(), child_populate_dirty_list(), finalize(), get_item_count(), get_row_grid(), get_selected_row(), handle_key_down_arrow(), handle_key_left_arrow(), handle_key_right_arrow(), handle_key_up_arrow(), list_item_clicked(), order_by(), place(), remove_row(), select_row(), set_row_active(), and set_row_shown().
|
private |
Definition at line 288 of file listbox.hpp.
Referenced by remove_row().
|
private |
Contains the builder for the new items.
Definition at line 291 of file listbox.hpp.
Referenced by add_row(), finalize(), and set_list_builder().
|
private |
Definition at line 309 of file listbox.hpp.
Referenced by layout_children(), order_by(), and resize_content().
|
private |
Definition at line 312 of file listbox.hpp.
Referenced by finalize(), order_by_column(), and set_column_order().