The Battle for Wesnoth  1.13.4+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
editor::editor_action Class Referenceabstract

Base class for all editor actions. More...

#include <action_base.hpp>

Inheritance diagram for editor::editor_action:
Inheritance graph

Public Member Functions

 editor_action ()
 
virtual ~editor_action ()
 
virtual editor_actionclone () const =0
 Action cloning. More...
 
virtual editor_actionperform (map_context &) const
 Perform the action, returning an undo action that, when performed, shall reverse any effects of this action. More...
 
virtual void perform_without_undo (map_context &) const =0
 Perform the action without creating an undo action. More...
 
virtual int action_count () const
 
virtual const char * get_name () const
 
virtual std::string get_description () const
 A textual description of the action. More...
 
int get_id () const
 Debugging aid. More...
 

Static Public Member Functions

static int get_instance_count ()
 Debugging aid. More...
 

Private Attributes

const int id_
 

Static Private Attributes

static int next_id_ = 1
 
static int instance_count_ = 0
 

Detailed Description

Base class for all editor actions.

An editor_action object encapsulates the action to be performed on a map, in separation from the user interface or display, and provides a way of reversing its affects by creating an "undo" action. All the actions can be processed via this base class' virtual functions.

Definition at line 41 of file action_base.hpp.

Constructor & Destructor Documentation

editor::editor_action::editor_action ( )

Definition at line 33 of file action.cpp.

References id_, instance_count_, and LOG_ED.

editor::editor_action::~editor_action ( )
virtual

Definition at line 42 of file action.cpp.

References id_, instance_count_, and LOG_ED.

Member Function Documentation

int editor::editor_action::action_count ( ) const
virtual
Returns
the actual number of actions contained within

Reimplemented in editor::editor_action_chain.

Definition at line 50 of file action.cpp.

virtual editor_action* editor::editor_action::clone ( ) const
pure virtual
std::string editor::editor_action::get_description ( ) const
virtual

A textual description of the action.

For use e.g. in the undo menu, to have a "Undo: Fill with Grassland" item rather than just "Undo". Should be overridden by derived Actions, defaults to a debug message.

Definition at line 55 of file action.cpp.

int editor::editor_action::get_id ( ) const
inline

Debugging aid.

Return an unique identifier of this Action.

Definition at line 89 of file action_base.hpp.

References id_.

Referenced by editor::map_context::perform_action(), and editor::map_context::perform_partial_action().

static int editor::editor_action::get_instance_count ( )
inlinestatic

Debugging aid.

Return number of existing instances of Actions.

Definition at line 94 of file action_base.hpp.

References instance_count_.

Referenced by editor::map_context::perform_action(), editor::map_context::perform_partial_action(), and editor::start().

virtual const char* editor::editor_action::get_name ( ) const
inlinevirtual
editor_action * editor::editor_action::perform ( map_context mc) const
virtual
virtual void editor::editor_action::perform_without_undo ( map_context ) const
pure virtual

Member Data Documentation

const int editor::editor_action::id_
private

Definition at line 99 of file action_base.hpp.

Referenced by editor_action(), get_id(), and ~editor_action().

int editor::editor_action::instance_count_ = 0
staticprivate

Definition at line 98 of file action_base.hpp.

Referenced by editor_action(), get_instance_count(), and ~editor_action().

int editor::editor_action::next_id_ = 1
staticprivate

Definition at line 97 of file action_base.hpp.


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