# action.h File Reference

Template File. More...

`#include <synfig/string.h>`
`#include <synfig/canvas.h>`
`#include <ETL/handle>`
`#include <ETL/stringf>`
`#include <ETL/trivial>`
`#include <map>`
`#include <list>`
`#include <synfig/layer.h>`
`#include <synfig/valuenode.h>`
`#include <synfigapp/value_desc.h>`
`#include <synfig/value.h>`
`#include <synfig/activepoint.h>`
`#include <synfig/valuenode_animated.h>`
`#include <synfig/keyframe.h>`
`#include "action_param.h"`
`#include "editmode.h"`

Go to the source code of this file.

## Namespaces

namespace | synfig
namespace | synfigapp
namespace | synfigapp::Action

## Classes

class | synfigapp::Action::Error
| Exception class, thrown when redoing or undoing an action. More...
class | synfigapp::Action::Base
| Top-level base class for all actions. More...
class | synfigapp::Action::Undoable
| Undoable Action Base Class. More...
class | synfigapp::Action::CanvasSpecific
| Action base class for canvas-specific actions. More...
class | synfigapp::Action::Super
| Super-Action base class for actions composed of several other actions. More...
class | synfigapp::Action::Group
struct | synfigapp::Action::BookEntry
class | synfigapp::Action::CandidateList
class | synfigapp::Action::Main

## Defines

#define | ACTION_MODULE_EXT
#define | ACTION_SET_NAME(class, x) const char class::name__[]=x
#define | ACTION_SET_CATEGORY(class, x) const Category class::category__(x)
#define | ACTION_SET_TASK(class, x) const char class::task__[]=x
#define | ACTION_SET_PRIORITY(class, x) const int class::priority__=x
#define | ACTION_SET_LOCAL_NAME(class, x) const char class::local_name__[]=x
#define | ACTION_SET_VERSION(class, x) const char class::version__[]=x
#define | ACTION_SET_CVS_ID(class, x) const char class::cvs_id__[]=x
#define | ACTION_INIT_NO_GET_LOCAL_NAME(class)
| don't define get_local_name() - allow the action code to define its own
#define | ACTION_INIT(class)

## Typedefs

typedef Action::Base *(* | synfigapp::Action::Factory )()
typedef bool(* | synfigapp::Action::CandidateChecker )(const ParamList &x)
typedef ParamVocab(* | synfigapp::Action::GetParamVocab )()
typedef etl::handle< Base > | synfigapp::Action::Handle
typedef std::list< etl::handle < Action::Undoable > > | synfigapp::Action::ActionList
typedef std::map < synfig::String, BookEntry > | synfigapp::Action::Book

## Enumerations

enum

synfigapp::Action::Category {
synfigapp::Action::CATEGORY_NONE = 0, synfigapp::Action::CATEGORY_LAYER = (1<<0), synfigapp::Action::CATEGORY_CANVAS = (1<<1), synfigapp::Action::CATEGORY_WAYPOINT = (1<<2),
synfigapp::Action::CATEGORY_ACTIVEPOINT = (1<<3), synfigapp::Action::CATEGORY_VALUEDESC = (1<<4), synfigapp::Action::CATEGORY_VALUENODE = (1<<5), synfigapp::Action::CATEGORY_KEYFRAME = (1<<6),
synfigapp::Action::CATEGORY_GROUP = (1<<7), synfigapp::Action::CATEGORY_BEZIER = (1<<8), synfigapp::Action::CATEGORY_OTHER = (1<<12), synfigapp::Action::CATEGORY_DRAG = (1<<24),
synfigapp::Action::CATEGORY_HIDDEN = (1<<31), synfigapp::Action::CATEGORY_ALL = (~0)-(1<<31)
}

## Functions

Category | synfigapp::Action::operator| (Category lhs, Category rhs)
Book & | synfigapp::Action::book ()
Handle | synfigapp::Action::create (const synfig::String &name)
CandidateList | synfigapp::Action::compile_candidate_list (const ParamList &param_list, Category category=CATEGORY_ALL)
| Compiles a list of potential candidate actions with the given param_list and category.

## Detailed Description

Template File.

$Id$

## Define Documentation

#define ACTION_MODULE_EXT

Value:

    public: \
        static const char name__[], local_name__[], version__[], cvs_id__[], task__[]; \
        static const Category category__; \
        static const int priority__; \
        static Action::Base *create(); \
        virtual synfig::String get_name()const; \
        virtual synfig::String get_local_name()const;

#define ACTION_SET_NAME | ( | class,
|  | x |  | ) | const char class::name__[]=x

#define ACTION_SET_CATEGORY | ( | class,
|  | x |  | ) | const Category class::category__(x)

#define ACTION_SET_TASK | ( | class,
|  | x |  | ) | const char class::task__[]=x

#define ACTION_SET_PRIORITY | ( | class,
|  | x |  | ) | const int class::priority__=x

#define ACTION_SET_LOCAL_NAME | ( | class,
|  | x |  | ) | const char class::local_name__[]=x

#define ACTION_SET_VERSION | ( | class,
|  | x |  | ) | const char class::version__[]=x

#define ACTION_SET_CVS_ID | ( | class,
|  | x |  | ) | const char class::cvs_id__[]=x

#define ACTION_INIT_NO_GET_LOCAL_NAME | ( | class |  | ) |

Value:

    Action::Base* class::create() { return new class(); } \
        synfig::String class::get_name()const { return name__; }

don't define get_local_name() - allow the action code to define its own

#define ACTION_INIT | ( | class |  | ) |

Value:

    ACTION_INIT_NO_GET_LOCAL_NAME(class) \
        synfig::String class::get_local_name()const { return dgettext("synfigstudio",local_name__); }