diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-09-10 21:27:39 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-09-10 21:27:39 +0000 |
commit | c86210a9d5bdb7b36ad58552a1f99f53d48781b3 (patch) | |
tree | 6ab06935a1e2bc4ef6a4448dd01b09f5b2628c66 /gtk2_ardour/editor.h | |
parent | 68e943265edf04e63a8e8b8f62bab20f99d9c637 (diff) |
merge 2.0-ongoing into 3.0 @ 3581 - 3710
git-svn-id: svn://localhost/ardour2/branches/3.0@3712 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor.h')
-rw-r--r-- | gtk2_ardour/editor.h | 56 |
1 files changed, 42 insertions, 14 deletions
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index e8af889ad1..eb03922eaf 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -600,7 +600,6 @@ class Editor : public PublicEditor Gdk::Cursor* which_grabber_cursor (); ArdourCanvas::Canvas* track_canvas; - ArdourCanvas::Canvas* time_canvas; ArdourCanvas::Text* first_action_message; ArdourCanvas::Text* verbose_canvas_cursor; @@ -620,7 +619,7 @@ class Editor : public PublicEditor Gtk::EventBox time_canvas_event_box; Gtk::EventBox track_canvas_event_box; Gtk::EventBox time_button_event_box; - Gtk::Frame time_button_frame; + Gtk::EventBox ruler_label_event_box; ArdourCanvas::Group *minsec_group; ArdourCanvas::Pixbuf *logo_item; @@ -633,6 +632,34 @@ class Editor : public PublicEditor ArdourCanvas::Group *range_marker_group; ArdourCanvas::Group *transport_marker_group; ArdourCanvas::Group* cd_marker_group; + + ArdourCanvas::Group* timebar_group; + + /* These bars never need to be scrolled */ + ArdourCanvas::Group* meter_bar_group; + ArdourCanvas::Group* tempo_bar_group; + ArdourCanvas::Group* marker_bar_group; + ArdourCanvas::Group* range_marker_bar_group; + ArdourCanvas::Group* transport_marker_bar_group; + ArdourCanvas::Group* cd_marker_bar_group; + + /* + The _master_group is the group containing all items + that require horizontal scrolling.. + It is primarily used to separate canvas items + that require horizontal scrolling from those that do not. + */ + ArdourCanvas::Group* _master_group; + /* + The _trackview_group is the group containing all trackviews. + It is only scrolled vertically. + */ + ArdourCanvas::Group* _trackview_group; + /* + This canvas group is used for region motion. + It sits on top of the _trackview_group + */ + ArdourCanvas::Group* _region_motion_group; enum RulerType { ruler_metric_smpte = 0, @@ -755,6 +782,7 @@ class Editor : public PublicEditor static const double timebar_height; guint32 visible_timebars; + gdouble canvas_timebars_vsize; Gtk::Menu *editor_ruler_menu; ArdourCanvas::SimpleRect* tempo_bar; @@ -858,12 +886,12 @@ class Editor : public PublicEditor nframes64_t last_canvas_frame; bool track_canvas_map_handler (GdkEventAny*); - bool time_canvas_map_handler (GdkEventAny*); gint edit_controls_button_release (GdkEventButton*); Gtk::Menu *edit_controls_left_menu; Gtk::Menu *edit_controls_right_menu; + Gtk::VBox ruler_label_vbox; Gtk::VBox track_canvas_vbox; Gtk::VBox time_canvas_vbox; Gtk::VBox edit_controls_vbox; @@ -874,7 +902,11 @@ class Editor : public PublicEditor bool deferred_control_scroll (nframes64_t); sigc::connection control_scroll_connection; + gdouble get_trackview_group_vertical_offset () const { return vertical_adjustment.get_value () - canvas_timebars_vsize;} + ArdourCanvas::Group* get_trackview_group () const { return _trackview_group; } void tie_vertical_scrolling (); + void scroll_canvas_horizontally (); + void scroll_canvas_vertically (); void canvas_horizontally_scrolled (); void canvas_scroll_to (nframes64_t); @@ -1464,15 +1496,12 @@ public: bool canvas_playhead_cursor_event (GdkEvent* event, ArdourCanvas::Item*); bool track_canvas_scroll (GdkEventScroll* event); - bool time_canvas_scroll (GdkEventScroll* event); bool track_canvas_scroll_event (GdkEventScroll* event); bool track_canvas_button_press_event (GdkEventButton* event); bool track_canvas_button_release_event (GdkEventButton* event); bool track_canvas_motion_notify_event (GdkEventMotion* event); - bool time_canvas_scroll_event (GdkEventScroll* event); - Gtk::Allocation canvas_allocation; bool canvas_idle_queued; void track_canvas_allocate (Gtk::Allocation alloc); @@ -1489,9 +1518,6 @@ public: void handle_new_duration (); void initialize_canvas (); - int canvas_hroizontally_scrolled_handler_id; - void reset_horizontally_scrolling_region (Gtk::Allocation* alloc = 0); - void reset_scrolling_region (Gtk::Allocation* alloc = 0); /* display control */ @@ -1505,11 +1531,12 @@ public: ARDOUR::TempoMap::BBTPointList *current_bbt_points; + typedef vector<ArdourCanvas::SimpleLine*> TimeLineList; + TimeLineList free_measure_lines; + TimeLineList used_measure_lines; + ArdourCanvas::Group* time_line_group; - ArdourCanvas::Group* marker_time_line_group; - - TempoLines* tempo_lines; - TempoLines* marker_tempo_lines; + ArdourCanvas::SimpleLine* get_time_line (); void hide_measures (); void draw_measures (); @@ -1887,12 +1914,13 @@ public: uint32_t autoscroll_cnt; nframes64_t autoscroll_x_distance; double autoscroll_y_distance; - + static gint _autoscroll_canvas (void *); bool autoscroll_canvas (); void start_canvas_autoscroll (int x, int y); void stop_canvas_autoscroll (); void maybe_autoscroll (GdkEventMotion*); + void maybe_autoscroll_horizontally (GdkEventMotion*); bool allow_vertical_scroll; /* trimming */ |