synfig-studio  1.0.3
main.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 __SYNFIGAPP_MAIN_H
26 #define __SYNFIGAPP_MAIN_H
27 
28 /* === H E A D E R S ======================================================= */
29 
30 #include <ETL/ref_count>
31 #include <synfig/string.h>
32 #include <synfig/general.h>
33 #include <synfig/main.h>
34 #include <synfig/distance.h>
35 #include <synfig/real.h>
36 #include <synfig/waypoint.h>
37 #include <sigc++/signal.h>
38 #include <sigc++/object.h>
39 #include "inputdevice.h"
40 #include "settings.h"
41 
42 /* === M A C R O S ========================================================= */
43 
44 /* === T Y P E D E F S ===================================================== */
45 
46 /* === C L A S S E S & S T R U C T S ======================================= */
47 
48 namespace synfig {
49  class Color;
50  class Gradient;
51 };
52 
53 namespace synfigapp {
54 
60 class Main : public synfig::Main
61 {
62  etl::reference_counter ref_count_;
63 public:
64  Main(const synfig::String &basepath,synfig::ProgressCallback *cb=0);
65  ~Main();
66 
67  const etl::reference_counter& ref_count()const { return ref_count_; }
68 
69  static const synfig::Color& get_outline_color();
70  static const synfig::Color& get_fill_color();
71  static const synfig::Gradient& get_gradient();
72  static const synfig::Distance& get_bline_width();
73  static synfig::Waypoint::Interpolation get_interpolation();
74 
75 
76  static void set_interpolation(synfig::Waypoint::Interpolation x);
77  static void set_bline_width(synfig::Distance x);
78  static void set_outline_color(synfig::Color color);
79  static void set_fill_color(synfig::Color color);
80  static void set_gradient(synfig::Gradient gradient);
81  static void set_gradient_default_colors();
82  static void color_swap();
83 
84  static synfig::Color::BlendMethod get_blend_method();
85  //static const synfig::Real& get_opacity();
86  //static void set_blend_method(synfig::Color::BlendMethod);
87  //static void set_opacity(synfig::Real);
88  //static sigc::signal<void>& signal_blend_method_changed();
89  //static sigc::signal<void>& signal_opacity_changed();
90  static sigc::signal<void>& signal_interpolation_changed();
91 
92  // Input Device stuff
93  static InputDevice::Handle add_input_device(const synfig::String id_, InputDevice::Type type_=InputDevice::TYPE_MOUSE);
94  static InputDevice::Handle find_input_device(const synfig::String id_);
95  static InputDevice::Handle select_input_device(const synfig::String id_);
96  static bool select_input_device(InputDevice::Handle input_device);
98  static void set_state(synfig::String state);
99 
100  static Settings& settings();
101 
102  // Signal interfaces
103  static sigc::signal<void>& signal_outline_color_changed();
104  static sigc::signal<void>& signal_fill_color_changed();
105  static sigc::signal<void>& signal_gradient_changed();
106  static sigc::signal<void>& signal_bline_width_changed();
107 
108  static synfig::String get_user_app_directory();
109 
110 }; // END of class Main
111 
112 }; // END if namespace synfigapp
113 /* === E N D =============================================================== */
114 
115 #endif