26 #ifndef __SYNFIG_GTKMM_CELLRENDERER_TIMETRACK_H
27 #define __SYNFIG_GTKMM_CELLRENDERER_TIMETRACK_H
32 #include <gtkmm/arrow.h>
33 #include <gtkmm/image.h>
34 #include <gdkmm/pixbufloader.h>
35 #include <gtkmm/viewport.h>
36 #include <gtkmm/adjustment.h>
37 #include <gtkmm/scrolledwindow.h>
38 #include <gtkmm/table.h>
39 #include <gtkmm/statusbar.h>
40 #include <gtkmm/button.h>
41 #include <gtkmm/progressbar.h>
42 #include <gtkmm/paned.h>
43 #include <gtkmm/treeview.h>
44 #include <gtkmm/treestore.h>
45 #include <gtkmm/box.h>
46 #include <gtkmm/scrollbar.h>
47 #include <gtkmm/cellrenderer.h>
49 #include <gtkmm/dialog.h>
50 #include <gtkmm/menu.h>
52 #include <glibmm/property.h>
56 #include <synfig/valuenodes/valuenode_animated.h>
57 #include <synfig/valuenodes/valuenode_dynamiclist.h>
58 #include <synfig/string.h>
59 #include <synfig/time.h>
69 class Widget_ValueBase;
75 public Gtk::CellRenderer
84 Glib::RefPtr<Gtk::Adjustment> adjustment_;
87 sigc::signal<void, const etl::handle<synfig::Node>&,
const synfig::Time&,
const synfig::Time&,
const synfig::Time&,
int> signal_waypoint_clicked_cellrenderer_;
89 sigc::signal<void, synfig::Waypoint, synfig::ValueNode::Handle> signal_waypoint_changed_;
92 synfig::ValueNode_Animated::WaypointList::iterator selected_waypoint;
94 synfig::UniqueID selected;
98 std::set<synfig::Time> sel_times;
100 synfig::Time actual_time;
101 synfig::Time actual_dragtime;
105 synfig::Time selected_time;
115 synfig::Time drag_time;
117 etl::loose_handle<synfigapp::CanvasInterface> canvas_interface_;
126 Glib::Property<synfigapp::ValueDesc> property_valuedesc_;
129 Glib::Property<synfig::Canvas::Handle> property_canvas_;
132 Glib::Property< Glib::RefPtr<Gtk::Adjustment> > property_adjustment_;
135 Glib::Property<bool> property_enable_timing_info_;
143 void draw_activepoint_off(
144 const ::Cairo::RefPtr< ::Cairo::Context>& cr,
145 Gdk::Color inactive_color,
171 {
return signal_waypoint_clicked_cellrenderer_; }
174 {
return signal_waypoint_changed_; }
188 etl::loose_handle<synfigapp::CanvasInterface>
canvas_interface()
const {
return canvas_interface_;}
193 bool is_selected(
const synfig::Waypoint& waypoint)
const;
195 synfig::ValueNode_Animated::WaypointList::iterator
find_editable_waypoint(
const synfig::Time& t,
const synfig::Time& scope=synfig::Time::end());
199 const ::Cairo::RefPtr< ::Cairo::Context>& cr,
201 const Gdk::Rectangle& background_area,
202 const Gdk::Rectangle& cell_area,
203 Gtk::CellRendererState flags);
208 const Glib::ustring& path,
209 const Gdk::Rectangle& background_area,
210 const Gdk::Rectangle& cell_area,
211 Gtk::CellRendererState flags);