X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_summary.h;h=e95406f9784fab093bbb47d2c4c94bbd7f2dde4a;hb=ca6ee56347ede03d87c1b3bdbdec52458fd25662;hp=823a0ca6a800c5b89e2a71201d32a704ae118264;hpb=150d3fdfbfeabde96d528312aa22e839a5aa5f3e;p=ardour.git diff --git a/gtk2_ardour/editor_summary.h b/gtk2_ardour/editor_summary.h index 823a0ca6a8..e95406f978 100644 --- a/gtk2_ardour/editor_summary.h +++ b/gtk2_ardour/editor_summary.h @@ -20,7 +20,7 @@ #ifndef __gtk_ardour_editor_summary_h__ #define __gtk_ardour_editor_summary_h__ -#include "cairo_widget.h" +#include "gtkmm2ext/cairo_widget.h" #include "editor_component.h" namespace ARDOUR { @@ -36,12 +36,16 @@ class EditorSummary : public CairoWidget, public EditorComponent, public ARDOUR: { public: EditorSummary (Editor *); + ~EditorSummary (); void set_session (ARDOUR::Session *); void set_overlays_dirty (); + void set_background_dirty (); void routes_added (std::list const &); private: + void parameter_changed (std::string); + void on_size_allocate (Gtk::Allocation& alloc); enum Position { LEFT, @@ -58,28 +62,37 @@ private: OTHERWISE_OUTSIDE }; - bool on_expose_event (GdkEventExpose *); void on_size_request (Gtk::Requisition *); bool on_button_press_event (GdkEventButton *); bool on_button_release_event (GdkEventButton *); bool on_motion_notify_event (GdkEventMotion *); bool on_scroll_event (GdkEventScroll *); + bool on_key_press_event (GdkEventKey*); + bool on_key_release_event (GdkEventKey*); + bool on_enter_notify_event (GdkEventCrossing*); + bool on_leave_notify_event (GdkEventCrossing*); void centre_on_click (GdkEventButton *); - void render (cairo_t *); + void render (cairo_t *, cairo_rectangle_t*); void render_region (RegionView*, cairo_t*, double) const; void get_editor (std::pair *, std::pair *) const; - void set_editor (std::pair const &, double); - void set_editor (std::pair const &, std::pair const &); - void set_editor_x (std::pair const &); + void set_editor (double, double); + void set_editor (std::pair, double); + void set_editor (std::pair, std::pair); + void set_editor_x (double); + void set_editor_x (std::pair); void set_editor_y (double); - void set_editor_y (std::pair const &); + void set_editor_y (std::pair); void playhead_position_changed (framepos_t); double summary_y_to_editor (double) const; double editor_y_to_summary (double) const; Position get_position (double, double) const; void set_cursor (Position); void route_gui_changed (std::string); + bool suspending_editor_updates () const; + double playhead_frame_to_position (framepos_t) const; + framepos_t position_to_playhead_frame_to_position (double pos) const; + void set_overlays_dirty (int, int, int, int); framepos_t _start; ///< start frame of the overview framepos_t _end; ///< end frame of the overview @@ -103,10 +116,20 @@ private: std::pair _view_rectangle_x; std::pair _view_rectangle_y; + std::pair _pending_editor_x; + std::pair _pending_editor_y; + bool _pending_editor_changed; + bool _zoom_dragging; Position _zoom_position; + bool _old_follow_playhead; + cairo_surface_t* _image; + void render_background_image (); + bool _background_dirty; + PBD::ScopedConnectionList position_connection; + PBD::ScopedConnection route_ctrl_id_connection; PBD::ScopedConnectionList region_property_connection; };