The Battle for Wesnoth  1.15.2+dev
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
editor::editor_palette< Item > Class Template Referenceabstract

#include <editor_palettes.hpp>

Inheritance diagram for editor::editor_palette< Item >:
Inheritance graph

Public Member Functions

 editor_palette (editor_display &gui, const config &, std::size_t item_size, std::size_t item_width, editor_toolkit &toolkit)
 
virtual sdl_handler_vector handler_members () override
 
void set_start_item (std::size_t index) override
 
std::size_t start_num (void) override
 
void expand_palette_groups_menu (std::vector< config > &items, int i) override
 Menu expanding for palette group list. More...
 
void set_group (std::size_t index) override
 
const std::vector< item_group > & get_groups () const override
 
virtual void draw () override
 
virtual void draw_contents () override
 
void next_group () override
 
void prev_group () override
 
void adjust_size (const SDL_Rect &target) override
 Update the size of this widget. More...
 
virtual bool scroll_up () override
 Scroll the editor-palette up one step if possible. More...
 
virtual bool can_scroll_up () override
 
virtual bool scroll_down () override
 Scroll the editor-palette down one step if possible. More...
 
virtual bool can_scroll_down () override
 
void swap () override
 
virtual std::string get_help_string ()=0
 
const Item & selected_fg_item () const
 Return the currently selected foreground/background item. More...
 
const Item & selected_bg_item () const
 
- Public Member Functions inherited from editor::tristate_palette
 tristate_palette (CVideo &video)
 
- Public Member Functions inherited from editor::common_palette
 common_palette (CVideo &video)
 
virtual ~common_palette ()
 
virtual bool supports_swap ()
 
virtual std::vector< std::string > action_pressed () const
 
- Public Member Functions inherited from gui::widget
const SDL_Rect & location () const
 
virtual void set_location (const SDL_Rect &rect)
 
void set_location (int x, int y)
 
void set_width (int w)
 
void set_height (int h)
 
void set_measurements (int w, int h)
 
int width () const
 
int height () const
 
bool focus (const SDL_Event *event)
 
void set_focus (bool focus)
 
bool hidden () const
 
virtual void enable (bool new_val=true)
 
bool enabled () const
 
void set_clip_rect (const SDL_Rect &rect)
 
void set_volatile (bool val=true)
 
void set_dirty (bool dirty=true)
 
bool dirty () const
 
const std::string & id () const
 
void set_id (const std::string &id)
 
void set_help_string (const std::string &str)
 
void set_tooltip_string (const std::string &str)
 
virtual void process_help_string (int mousex, int mousey)
 
virtual void process_tooltip_string (int mousex, int mousey)
 
- Public Member Functions inherited from events::sdl_handler
virtual void process_event ()
 
virtual bool requires_event_focus (const SDL_Event *=nullptr) const
 
virtual void join ()
 
virtual void join (context &c)
 
virtual void join_same (sdl_handler *parent)
 
virtual void leave ()
 
virtual void join_global ()
 
virtual void leave_global ()
 
virtual bool has_joined ()
 
virtual bool has_joined_global ()
 
sdl_handleroperator= (sdl_handler &&)=delete
 Moving would require two instances' context membership to be handled, it's simpler to delete these and require the two instances to be separately constructed / destructed. More...
 
 sdl_handler (sdl_handler &&)=delete
 

Protected Types

typedef std::map< std::string, Item > item_map
 

Protected Member Functions

virtual void set_group (const std::string &id)
 Sets a group active id. More...
 
const std::vector< std::string > & active_group ()
 
virtual void select_fg_item (const std::string &item_id) override
 Select a foreground item. More...
 
virtual void select_bg_item (const std::string &item_id) override
 
- Protected Member Functions inherited from gui::widget
 widget (CVideo &video, const bool auto_join=true)
 
virtual ~widget ()
 
void bg_register (const SDL_Rect &rect)
 
void bg_restore () const
 
void bg_restore (const SDL_Rect &rect) const
 
void bg_update ()
 
void bg_cancel ()
 
CVideovideo () const
 
virtual void update_location (const SDL_Rect &rect)
 
const SDL_Rect * clip_rect () const
 
virtual sdl_handler_vector member_handlers ()
 
virtual void handle_event (const SDL_Event &)
 
virtual void handle_window_event (const SDL_Event &event)
 
bool mouse_locked () const
 
void aquire_mouse_lock ()
 
void free_mouse_lock ()
 
- Protected Member Functions inherited from events::sdl_handler
 sdl_handler (const bool auto_join=true)
 
 sdl_handler (const sdl_handler &)
 
sdl_handleroperator= (const sdl_handler &)
 
virtual ~sdl_handler ()
 

Protected Attributes

std::vector< item_groupgroups_
 The editor_groups as defined in editor-groups.cfg. More...
 
editor_displaygui_
 
int item_size_
 
int item_width_
 
int item_space_
 
std::map< std::string, std::vector< std::string > > group_map_
 
item_map item_map_
 
int nitems_
 
int nmax_items_
 
int items_start_
 
std::set< std::string > non_core_items_
 
- Protected Attributes inherited from gui::widget
bool focus_
 

Private Member Functions

std::size_t active_group_index ()
 
virtual void draw_item (const Item &item, surface &item_image, std::stringstream &tooltip)=0
 
virtual const std::string & get_id (const Item &item)=0
 
virtual void setup (const config &cfg)=0
 Setup the internal data structure. More...
 
virtual const std::string & active_group_id ()
 
virtual bool is_selected_fg_item (const std::string &id)
 
virtual bool is_selected_bg_item (const std::string &id)
 
int num_items () override
 Return the number of items in the palette. More...
 
int num_visible_items ()
 Return the number of items in the palette. More...
 
void hide (bool hidden) override
 

Private Attributes

unsigned int palette_y_
 
unsigned int palette_x_
 
std::string active_group_
 
std::string selected_fg_item_
 
std::string selected_bg_item_
 
editor_toolkittoolkit_
 
std::vector< gui::tristate_buttonbuttons_
 
int help_handle_
 

Detailed Description

template<class Item>
class editor::editor_palette< Item >

Definition at line 26 of file editor_palettes.hpp.

Member Typedef Documentation

◆ item_map

template<class Item>
typedef std::map<std::string, Item> editor::editor_palette< Item >::item_map
protected

Definition at line 171 of file editor_palettes.hpp.

Constructor & Destructor Documentation

◆ editor_palette()

template<class Item>
editor::editor_palette< Item >::editor_palette ( editor_display gui,
const config ,
std::size_t  item_size,
std::size_t  item_width,
editor_toolkit toolkit 
)
inline

Definition at line 30 of file editor_palettes.hpp.

Member Function Documentation

◆ active_group()

template<class Item>
const std::vector<std::string>& editor::editor_palette< Item >::active_group ( )
inlineprotected

Definition at line 144 of file editor_palettes.hpp.

◆ active_group_id()

template<class Item>
virtual const std::string& editor::editor_palette< Item >::active_group_id ( )
inlineprivatevirtual

Definition at line 115 of file editor_palettes.hpp.

◆ active_group_index()

template<class Item >
std::size_t editor::editor_palette< Item >::active_group_index ( )
private

◆ adjust_size()

template<class Item >
void editor::editor_palette< Item >::adjust_size ( const SDL_Rect &  target)
overridevirtual

Update the size of this widget.

Use if the size_specs have changed.

Implements editor::common_palette.

Definition at line 168 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::prev_group().

◆ can_scroll_down()

template<class Item >
bool editor::editor_palette< Item >::can_scroll_down ( )
overridevirtual

Implements editor::common_palette.

Definition at line 96 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::prev_group().

◆ can_scroll_up()

template<class Item >
bool editor::editor_palette< Item >::can_scroll_up ( )
overridevirtual

Implements editor::common_palette.

Definition at line 90 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::prev_group().

◆ draw()

template<class Item>
virtual void editor::editor_palette< Item >::draw ( )
inlineoverridevirtual

Implements editor::common_palette.

Definition at line 72 of file editor_palettes.hpp.

◆ draw_contents()

template<class Item >
void editor::editor_palette< Item >::draw_contents ( )
overridevirtual

Reimplemented from gui::widget.

Definition at line 234 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::draw().

◆ draw_item()

template<class Item>
virtual void editor::editor_palette< Item >::draw_item ( const Item &  item,
surface item_image,
std::stringstream &  tooltip 
)
privatepure virtual

◆ expand_palette_groups_menu()

template<class Item >
void editor::editor_palette< Item >::expand_palette_groups_menu ( std::vector< config > &  items,
int  i 
)
overridevirtual

Menu expanding for palette group list.

Implements editor::common_palette.

Definition at line 41 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::start_num().

◆ get_groups()

template<class Item>
const std::vector<item_group>& editor::editor_palette< Item >::get_groups ( ) const
inlineoverridevirtual

Implements editor::common_palette.

Definition at line 70 of file editor_palettes.hpp.

◆ get_help_string()

template<class Item>
virtual std::string editor::editor_palette< Item >::get_help_string ( )
pure virtual

◆ get_id()

template<class Item>
virtual const std::string& editor::editor_palette< Item >::get_id ( const Item &  item)
privatepure virtual

◆ handler_members()

template<class Item >
sdl_handler_vector editor::editor_palette< Item >::handler_members ( )
overridevirtual

Reimplemented from editor::common_palette.

Definition at line 31 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::editor_palette().

◆ hide()

template<class Item>
void editor::editor_palette< Item >::hide ( bool  hidden)
inlineoverrideprivatevirtual

Reimplemented from gui::widget.

Definition at line 126 of file editor_palettes.hpp.

◆ is_selected_bg_item()

template<class Item >
bool editor::editor_palette< Item >::is_selected_bg_item ( const std::string &  id)
privatevirtual

Reimplemented in editor::unit_palette.

Definition at line 228 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::active_group_id().

◆ is_selected_fg_item()

template<class Item >
bool editor::editor_palette< Item >::is_selected_fg_item ( const std::string &  id)
privatevirtual

◆ next_group()

template<class Item>
void editor::editor_palette< Item >::next_group ( )
inlineoverridevirtual

Implements editor::common_palette.

Definition at line 77 of file editor_palettes.hpp.

◆ num_items()

template<class Item >
int editor::editor_palette< Item >::num_items ( )
overrideprivatevirtual

Return the number of items in the palette.

Implements editor::common_palette.

Definition at line 216 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::active_group_id().

◆ num_visible_items()

template<class Item>
int editor::editor_palette< Item >::num_visible_items ( )
inlineprivate

Return the number of items in the palette.

Definition at line 124 of file editor_palettes.hpp.

◆ prev_group()

template<class Item>
void editor::editor_palette< Item >::prev_group ( )
inlineoverridevirtual

Implements editor::common_palette.

Definition at line 80 of file editor_palettes.hpp.

◆ scroll_down()

template<class Item >
bool editor::editor_palette< Item >::scroll_down ( )
overridevirtual

Scroll the editor-palette down one step if possible.

Implements editor::common_palette.

Definition at line 102 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::prev_group().

◆ scroll_up()

template<class Item >
bool editor::editor_palette< Item >::scroll_up ( )
overridevirtual

Scroll the editor-palette up one step if possible.

Implements editor::common_palette.

Definition at line 75 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::prev_group().

◆ select_bg_item()

template<class Item >
void editor::editor_palette< Item >::select_bg_item ( const std::string &  item_id)
overrideprotectedvirtual

◆ select_fg_item()

template<class Item >
void editor::editor_palette< Item >::select_fg_item ( const std::string &  item_id)
overrideprotectedvirtual

Select a foreground item.

Implements editor::tristate_palette.

Reimplemented in editor::terrain_palette.

Definition at line 185 of file editor_palettes.cpp.

Referenced by editor::editor_palette< overlay >::active_group(), and editor::terrain_palette::select_fg_item().

◆ selected_bg_item()

template<class Item>
const Item& editor::editor_palette< Item >::selected_bg_item ( ) const
inline

Definition at line 102 of file editor_palettes.hpp.

◆ selected_fg_item()

template<class Item>
const Item& editor::editor_palette< Item >::selected_fg_item ( ) const
inline

◆ set_group() [1/2]

template<class Item >
void editor::editor_palette< Item >::set_group ( std::size_t  index)
overridevirtual

◆ set_group() [2/2]

template<class Item >
void editor::editor_palette< Item >::set_group ( const std::string &  id)
protectedvirtual

Sets a group active id.

This can result in no visible selected items.

Definition at line 122 of file editor_palettes.cpp.

◆ set_start_item()

template<class Item>
void editor::editor_palette< Item >::set_start_item ( std::size_t  index)
inlineoverridevirtual

Implements editor::common_palette.

Definition at line 60 of file editor_palettes.hpp.

◆ setup()

template<class Item>
virtual void editor::editor_palette< Item >::setup ( const config cfg)
privatepure virtual

◆ start_num()

template<class Item>
std::size_t editor::editor_palette< Item >::start_num ( void  )
inlineoverridevirtual

Implements editor::common_palette.

Definition at line 62 of file editor_palettes.hpp.

◆ swap()

template<class Item >
void editor::editor_palette< Item >::swap ( )
overridevirtual

Member Data Documentation

◆ active_group_

template<class Item>
std::string editor::editor_palette< Item >::active_group_
private

◆ buttons_

template<class Item>
std::vector<gui::tristate_button> editor::editor_palette< Item >::buttons_
private

◆ group_map_

template<class Item>
std::map<std::string, std::vector<std::string> > editor::editor_palette< Item >::group_map_
protected

◆ groups_

template<class Item>
std::vector<item_group> editor::editor_palette< Item >::groups_
protected

The editor_groups as defined in editor-groups.cfg.

Note the user must make sure the id's here are the same as the editor_group in terrain.cfg.

Definition at line 156 of file editor_palettes.hpp.

Referenced by editor::editor_palette< overlay >::get_groups(), editor::editor_palette< overlay >::next_group(), and editor::editor_palette< overlay >::prev_group().

◆ gui_

template<class Item>
editor_display& editor::editor_palette< Item >::gui_
protected

Definition at line 158 of file editor_palettes.hpp.

Referenced by editor::editor_palette< overlay >::hide().

◆ help_handle_

template<class Item>
int editor::editor_palette< Item >::help_handle_
private

Definition at line 184 of file editor_palettes.hpp.

Referenced by editor::editor_palette< overlay >::hide().

◆ item_map_

template<class Item>
item_map editor::editor_palette< Item >::item_map_
protected

◆ item_size_

template<class Item>
int editor::editor_palette< Item >::item_size_
protected

Definition at line 160 of file editor_palettes.hpp.

◆ item_space_

template<class Item>
int editor::editor_palette< Item >::item_space_
protected

Definition at line 162 of file editor_palettes.hpp.

◆ item_width_

template<class Item>
int editor::editor_palette< Item >::item_width_
protected

Definition at line 161 of file editor_palettes.hpp.

◆ items_start_

template<class Item>
int editor::editor_palette< Item >::items_start_
protected

◆ nitems_

template<class Item>
int editor::editor_palette< Item >::nitems_
protected

Definition at line 173 of file editor_palettes.hpp.

◆ nmax_items_

template<class Item>
int editor::editor_palette< Item >::nmax_items_
protected

Definition at line 173 of file editor_palettes.hpp.

◆ non_core_items_

template<class Item>
std::set<std::string> editor::editor_palette< Item >::non_core_items_
protected

Definition at line 174 of file editor_palettes.hpp.

◆ palette_x_

template<class Item>
unsigned int editor::editor_palette< Item >::palette_x_
private

Definition at line 166 of file editor_palettes.hpp.

◆ palette_y_

template<class Item>
unsigned int editor::editor_palette< Item >::palette_y_
private

Definition at line 165 of file editor_palettes.hpp.

◆ selected_bg_item_

template<class Item>
std::string editor::editor_palette< Item >::selected_bg_item_
private

◆ selected_fg_item_

template<class Item>
std::string editor::editor_palette< Item >::selected_fg_item_
private

◆ toolkit_

template<class Item>
editor_toolkit& editor::editor_palette< Item >::toolkit_
private

Definition at line 181 of file editor_palettes.hpp.


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