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);