synfig-studio  1.0.3
widget_curves.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_STUDIO_WIDGET_CURVES_H
26 #define __SYNFIG_STUDIO_WIDGET_CURVES_H
27 
28 /* === H E A D E R S ======================================================= */
29 
30 #include <gtkmm/box.h>
31 #include <gtkmm/table.h>
32 #include <gtkmm/spinbutton.h>
33 #include <gtkmm/adjustment.h>
34 #include <gtkmm/drawingarea.h>
35 #include <gtkmm/layout.h>
36 #include <synfig/color.h>
37 #include <synfigapp/value_desc.h>
38 #include <list>
39 
40 /* === M A C R O S ========================================================= */
41 
42 /* === T Y P E D E F S ===================================================== */
43 
44 /* === C L A S S E S & S T R U C T S ======================================= */
45 
46 namespace studio {
47 
48 class Widget_Curves : public Gtk::DrawingArea
49 {
50  struct Channel;
51  struct CurveStruct;
52 
53  Glib::RefPtr<Gtk::Adjustment> time_adjustment_;
54  Glib::RefPtr<Gtk::Adjustment> range_adjustment_;
55 
56  std::list<CurveStruct> curve_list_;
57 
58 public:
59 
60  Widget_Curves();
62 
63  void set_value_descs(std::list<synfigapp::ValueDesc> value_descs);
64  void clear();
65  void refresh();
66 
67  Glib::RefPtr<Gtk::Adjustment> get_range_adjustment() { return range_adjustment_; }
68  Glib::RefPtr<Gtk::Adjustment> get_time_adjustment() { return time_adjustment_; }
69  void set_time_adjustment(const Glib::RefPtr<Gtk::Adjustment>&);
70 
71 private:
72  bool on_draw(const Cairo::RefPtr<Cairo::Context> &cr);
73  bool on_event(GdkEvent *event);
74 
75 }; // END of class Widget_Curves
76 
77 }; // END of namespace studio
78 
79 /* === E N D =============================================================== */
80 
81 #endif