1 /* === S Y N F I G ========================================================= */ 2 /*! \file layermakebline.h 3 ** \brief Template File 4 ** 5 ** $Id$ 6 ** 7 ** \legal 8 ** ......... ... 2013 Ivan Mahonin 9 ** 10 ** This package is free software; you can redistribute it and/or 11 ** modify it under the terms of the GNU General Public License as 12 ** published by the Free Software Foundation; either version 2 of 13 ** the License, or (at your option) any later version. 14 ** 15 ** This package is distributed in the hope that it will be useful, 16 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 17 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 ** General Public License for more details. 19 ** \endlegal 20 */ 21 /* ========================================================================= */ 22 23 /* === S T A R T =========================================================== */ 24 25 #ifndef __SYNFIG_APP_ACTION_LAYERMAKEBLINE_H 26 #define __SYNFIG_APP_ACTION_LAYERMAKEBLINE_H 27 28 /* === H E A D E R S ======================================================= */ 29 30 #include <synfig/layer.h> 31 #include <synfigapp/action.h> 32 #include <list> 33 #include <synfig/guid.h> 34 35 /* === M A C R O S ========================================================= */ 36 37 /* === T Y P E D E F S ===================================================== */ 38 39 /* === C L A S S E S & S T R U C T S ======================================= */ 40 41 namespace synfigapp { 42 43 namespace Action { 44 45 class LayerMakeBLine : 46 public Super 47 { 48 private: 49 synfig::Layer::Handle layer; 50 51 public: 52 static ParamVocab get_param_vocab(); 53 static bool is_candidate_for_make_bline(const ParamList &x, const char **possible_layer_names, size_t possible_layer_names_count); 54 55 virtual bool set_param(const synfig::String& name, const Param &); 56 virtual bool is_ready()const; 57 58 void prepare_make_bline(const synfig::String &bline_layer_name, bool put_new_layer_behind); 59 }; 60 61 #define ACTION_LAYERMAKEBLINE_DECLARE(class_name) \ 62 class class_name : public LayerMakeBLine { \ 63 private: \ 64 static const char *possible_layer_names__[]; \ 65 public: \ 66 static bool is_candidate(const ParamList &x); \ 67 virtual void prepare(); \ 68 ACTION_MODULE_EXT \ 69 } 70 71 ACTION_LAYERMAKEBLINE_DECLARE(LayerMakeOutline); 72 ACTION_LAYERMAKEBLINE_DECLARE(LayerMakeAdvancedOutline); 73 ACTION_LAYERMAKEBLINE_DECLARE(LayerMakeRegion); 74 75 #undef ACTION_LAYERMAKEBLINE_DECLARE 76 77 }; // END of namespace action 78 }; // END of namespace studio 79 80 /* === E N D =============================================================== */ 81 82 #endif 83