synfig-studio  1.0.3
pluginmanager.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
21 /* ========================================================================= */
22 
23 /* === S T A R T =========================================================== */
24 
25 #ifndef __SYNFIG_APP_PLUGINMANAGER_H
26 #define __SYNFIG_APP_PLUGINMANAGER_H
27 
28 /* === H E A D E R S ======================================================= */
29 
30 #include <synfig/string.h>
31 #include <synfig/canvas.h>
32 #include <list>
33 #include <ETL/handle>
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 
44 {
45 
46  /*
47  -- ** -- P R I V A T E D A T A ---------------------------------------------
48  */
49 
50 private:
51 
52  std::string filename_original; // location of original file
53  std::string filename_processed; // processed file
54  std::string filename_backup; // backup copy
55  std::string output;
56  int exitcode;
57 
58 protected:
59 
60  /*
61  -- ** -- P U B L I C M E T H O D S -----------------------------------------
62  */
63 
64 public:
67 
68  bool execute( std::string script_path, const std::string& synfig_root );
69  bool check_python_version( std::string path);
70  std::string get_result_path();
71  std::string get_original_path() { return filename_original; };
72  std::string get_output() { return output; };
73 
74 }; // END class Plugin
75 
77 {
78  /*
79  -- ** -- P U B L I C T Y P E S ---------------------------------------------
80  */
81 
82 public:
83  struct plugin{
84  std::string id;
85  std::string name;
86  std::string path;
87  };
88 
89  /*
90  -- ** -- P U B L I C D A T A ------------------------------------------------
91  */
92 
93 public:
94 
95  /*
96  -- ** -- P R I V A T E D A T A ---------------------------------------------
97  */
98 
99 private:
100 
101  std::list< plugin > list_;
102 
103 protected:
104 
105  /*
106  -- ** -- P U B L I C M E T H O D S -----------------------------------------
107  */
108 
109 public:
110  PluginManager();
111  ~PluginManager();
112 
113  void load_dir( const std::string &pluginsprefix );
114  void load_plugin( const std::string &path );
115 
116  std::list< plugin > get_list() { return list_; };
117 
118 }; // END class PluginManager
119 
120 
121 }; // END namespace synfigapp
122 
123 /* === E N D =============================================================== */
124 
125 #endif