Classes | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes

gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action > Class Template Reference

Basic template class to generate new items. More...

#include <generator_private.hpp>

Collaboration diagram for gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >:
Collaboration graph
[legend]

List of all members.

Classes

struct  titem
 Definition of an item. More...

Public Member Functions

 tgenerator ()
 ~tgenerator ()
void delete_item (const unsigned index)
 Inherited from tgenerator_.
void clear ()
 Inherited from tgenerator_.
void select_item (const unsigned index, const bool select=true)
 Inherited from tgenerator_.
bool is_selected (const unsigned index) const
 Inherited from tgenerator_.
void set_item_shown (const unsigned index, const bool show)
 Inherited from tgenerator_.
virtual bool get_item_shown (const unsigned index) const
 Inherited from tgenerator_.
unsigned get_item_count () const
 Inherited from tgenerator_.
unsigned get_selected_item_count () const
 Inherited from tgenerator_.
int get_selected_item () const
 Inherited from tgenerator_.
tgriditem (const unsigned index)
 Inherited from tgenerator_.
const tgriditem (const unsigned index) const
 Inherited from tgenerator_.
tgridcreate_item (const int index, tbuilder_grid_const_ptr list_builder, const string_map &item_data, void(*callback)(twidget *))
 Inherited from tgenerator_.
tgridcreate_item (const int index, tbuilder_grid_const_ptr list_builder, const std::map< std::string, string_map > &item_data, void(*callback)(twidget *))
 Inherited from tgenerator_.
virtual void create_items (const int index, tbuilder_grid_const_ptr list_builder, const std::vector< std::map< std::string, string_map > > &data, void(*callback)(twidget *))
 Inherited from tgenerator_.
virtual void create_items (const int index, tbuilder_grid_const_ptr list_builder, const std::vector< string_map > &data, void(*callback)(twidget *))
 Inherited from tgenerator_.
void layout_init (const bool full_initialization)
 Inherited from tgenerator_.
void request_reduce_width (const unsigned maximum_width)
 Inherited from tgenerator_.
void request_reduce_height (const unsigned maximum_height)
 Inherited from tgenerator_.
tpoint calculate_best_size () const
 Inherited from tgenerator_.
void place (const tpoint &origin, const tpoint &size)
 Inherited from tgenerator_.
void set_origin (const tpoint &origin)
 Inherited from tgenerator_.
void set_visible_area (const SDL_Rect &area)
 Inherited from tgenerator_.
void impl_draw_children (surface &frame_buffer)
 Inherited from tgenerator_.
void impl_draw_children (surface &frame_buffer, int x_offset, int y_offset)
 Inherited from tgenerator_.
void child_populate_dirty_list (twindow &caller, const std::vector< twidget * > &call_stack)
 Inherited from tgenerator_.
twidgetfind_at (const tpoint &coordinate, const bool must_be_active)
 Inherited from tgenerator_.
const twidgetfind_at (const tpoint &coordinate, const bool must_be_active) const
 Inherited from tgenerator_.
bool disable_click_dismiss () const
 Inherited from widget.
virtual iterator::twalker_create_walker ()
 Inherited from twidget.
void handle_key_up_arrow (SDLMod modifier, bool &handled)
 Inherited from tgenerator_.
void handle_key_down_arrow (SDLMod modifier, bool &handled)
 Inherited from tgenerator_.
void handle_key_left_arrow (SDLMod modifier, bool &handled)
 Inherited from tgenerator_.
void handle_key_right_arrow (SDLMod modifier, bool &handled)
 Inherited from tgenerator_.

Protected Member Functions

void do_select_item (const unsigned index)
 Inherited from tgenerator_.
void do_deselect_item (const unsigned index)
 Inherited from tgenerator_.

Private Member Functions

void set_item_selected (const unsigned index, const bool selected)
 Sets the selected state of an item.
template<class T >
void impl_create_items (const int index, tbuilder_grid_const_ptr list_builder, const std::vector< T > &data, void(*callback)(twidget *))
 Helper function for create_items().
void init (tgrid *grid, const std::map< std::string, string_map > &data, void(*callback)(twidget *))
 Helper function to initialize a grid.

Private Attributes

unsigned selected_item_count_
 The number of selected items.
int last_selected_item_
 The last item selected.
std::vector< titem * > items_
 The items in the generator.

Detailed Description

template<class minimum_selection, class maximum_selection, class placement, class select_action>
class gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >

Basic template class to generate new items.

The class is policy based so the behaviour can be selected.

Definition at line 540 of file generator_private.hpp.


Constructor & Destructor Documentation

template<class minimum_selection , class maximum_selection , class placement , class select_action >
gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::tgenerator (  )  [inline]

Definition at line 548 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::~tgenerator (  )  [inline]

Definition at line 559 of file generator_private.hpp.

References gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::clear().

Here is the call graph for this function:


Member Function Documentation

template<class minimum_selection , class maximum_selection , class placement , class select_action >
tpoint gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::calculate_best_size (  )  const [inline]

Inherited from tgenerator_.

Definition at line 773 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::child_populate_dirty_list ( twindow caller,
const std::vector< twidget * > &  call_stack 
) [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::clear (  )  [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
tgrid& gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::create_item ( const int  index,
tbuilder_grid_const_ptr  list_builder,
const string_map item_data,
void(*)(twidget *)  callback 
) [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
tgrid& gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::create_item ( const int  index,
tbuilder_grid_const_ptr  list_builder,
const std::map< std::string, string_map > &  item_data,
void(*)(twidget *)  callback 
) [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
virtual void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::create_items ( const int  index,
tbuilder_grid_const_ptr  list_builder,
const std::vector< std::map< std::string, string_map > > &  data,
void(*)(twidget *)  callback 
) [inline, virtual]

Inherited from tgenerator_.

Definition at line 732 of file generator_private.hpp.

References gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::impl_create_items().

Here is the call graph for this function:

template<class minimum_selection , class maximum_selection , class placement , class select_action >
virtual void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::create_items ( const int  index,
tbuilder_grid_const_ptr  list_builder,
const std::vector< string_map > &  data,
void(*)(twidget *)  callback 
) [inline, virtual]

Inherited from tgenerator_.

Definition at line 742 of file generator_private.hpp.

References gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::impl_create_items().

Here is the call graph for this function:

template<class minimum_selection , class maximum_selection , class placement , class select_action >
virtual iterator::twalker_* gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::create_walker (  )  [inline, virtual]

Inherited from twidget.

Todo:
Implement properly.

Definition at line 866 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::delete_item ( const unsigned  index  )  [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
bool gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::disable_click_dismiss (  )  const [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::do_deselect_item ( const unsigned  index  )  [inline, protected]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::do_select_item ( const unsigned  index  )  [inline, protected]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
twidget* gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::find_at ( const tpoint coordinate,
const bool  must_be_active 
) [inline]

Inherited from tgenerator_.

Definition at line 837 of file generator_private.hpp.

Referenced by gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::find_at().

Here is the caller graph for this function:

template<class minimum_selection , class maximum_selection , class placement , class select_action >
const twidget* gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::find_at ( const tpoint coordinate,
const bool  must_be_active 
) const [inline]

Inherited from tgenerator_.

Definition at line 844 of file generator_private.hpp.

References gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::find_at().

Here is the call graph for this function:

template<class minimum_selection , class maximum_selection , class placement , class select_action >
unsigned gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::get_item_count (  )  const [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
virtual bool gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::get_item_shown ( const unsigned  index  )  const [inline, virtual]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
int gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::get_selected_item (  )  const [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
unsigned gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::get_selected_item_count (  )  const [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::handle_key_down_arrow ( SDLMod  modifier,
bool &  handled 
) [inline]

Inherited from tgenerator_.

Definition at line 877 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::handle_key_left_arrow ( SDLMod  modifier,
bool &  handled 
) [inline]

Inherited from tgenerator_.

Definition at line 883 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::handle_key_right_arrow ( SDLMod  modifier,
bool &  handled 
) [inline]

Inherited from tgenerator_.

Definition at line 889 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::handle_key_up_arrow ( SDLMod  modifier,
bool &  handled 
) [inline]

Inherited from tgenerator_.

Definition at line 871 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
template<class T >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::impl_create_items ( const int  index,
tbuilder_grid_const_ptr  list_builder,
const std::vector< T > &  data,
void(*)(twidget *)  callback 
) [inline, private]

Helper function for create_items().

Template Parameters:
T Type of the data, this should be one of the valid parameters for create_item().
Parameters:
index The item before which to add the new item, 0 == begin, -1 == end.
list_builder A grid builder that's will build the contents of the new item.
data The data to initialize the parameters of the new item.
callback The callback function to call when an item in the grid is (de)selected.

Definition at line 983 of file generator_private.hpp.

References gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::create_item().

Referenced by gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::create_items().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::impl_draw_children ( surface frame_buffer  )  [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::impl_draw_children ( surface frame_buffer,
int  x_offset,
int  y_offset 
) [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::init ( tgrid grid,
const std::map< std::string, string_map > &  data,
void(*)(twidget *)  callback 
) [inline, private]

Helper function to initialize a grid.

The actual part is implemented in select_action, see those implementations for more information.

Parameters:
grid The grid to initialize.
data The data to initialize the parameters of the new item.
callback The callback function to call when an item in the grid is (de)selected.

Definition at line 1009 of file generator_private.hpp.

References gui2::twidget::set_parent().

Referenced by gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::create_item().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class minimum_selection , class maximum_selection , class placement , class select_action >
bool gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::is_selected ( const unsigned  index  )  const [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
const tgrid& gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::item ( const unsigned  index  )  const [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
tgrid& gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::item ( const unsigned  index  )  [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::layout_init ( const bool  full_initialization  )  [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::place ( const tpoint origin,
const tpoint size 
) [inline]

Inherited from tgenerator_.

Definition at line 779 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::request_reduce_height ( const unsigned  maximum_height  )  [inline]

Inherited from tgenerator_.

Definition at line 767 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::request_reduce_width ( const unsigned  maximum_width  )  [inline]

Inherited from tgenerator_.

Definition at line 761 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::select_item ( const unsigned  index,
const bool  select = true 
) [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::set_item_selected ( const unsigned  index,
const bool  selected 
) [inline, private]

Sets the selected state of an item.

Parameters:
index The item to modify.
selected Select or deselect.

Definition at line 959 of file generator_private.hpp.

References preferences::grid(), and gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::items_.

Referenced by gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::do_deselect_item(), and gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::do_select_item().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::set_item_shown ( const unsigned  index,
const bool  show 
) [inline]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::set_origin ( const tpoint origin  )  [inline]

Inherited from tgenerator_.

Definition at line 788 of file generator_private.hpp.

template<class minimum_selection , class maximum_selection , class placement , class select_action >
void gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::set_visible_area ( const SDL_Rect &  area  )  [inline]

Inherited from tgenerator_.

Definition at line 797 of file generator_private.hpp.


Member Data Documentation

template<class minimum_selection , class maximum_selection , class placement , class select_action >
std::vector<titem*> gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::items_ [private]

The items in the generator.

Definition at line 951 of file generator_private.hpp.

Referenced by gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::child_populate_dirty_list(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::clear(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::create_item(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::delete_item(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::disable_click_dismiss(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::do_deselect_item(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::do_select_item(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::get_item_count(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::get_item_shown(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::get_selected_item(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::impl_draw_children(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::is_selected(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::item(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::layout_init(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::select_item(), gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::set_item_selected(), and gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::set_item_shown().

template<class minimum_selection , class maximum_selection , class placement , class select_action >
int gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::last_selected_item_ [private]
template<class minimum_selection , class maximum_selection , class placement , class select_action >
unsigned gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::selected_item_count_ [private]

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

Generated by doxygen 1.7.1 on Thu May 24 2012 01:22:50 for The Battle for Wesnoth
Gna! | Forum | Wiki | CIA | devdocs