X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor.h;h=8150f44ae3398b6f85a6fe29ca6833db3f37dc0f;hb=c78528dcea03a61685ad0586eaa6302847af6fe9;hp=3582c5828668a91057030e58cadc9ea4b27c4492;hpb=488d54a341b2d4f6bb23f8801d293356f664a96a;p=ardour.git diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 3582c58286..8150f44ae3 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -25,7 +25,6 @@ #include #include #include -#include #include @@ -72,6 +71,7 @@ namespace Gnome { namespace Canvas { namespace Gtkmm2ext { class TearOff; + class Bindings; } namespace ARDOUR { @@ -131,6 +131,7 @@ class RegionLayeringOrderEditor; class ProgressReporter; class EditorCursor; class MouseCursors; +class VerboseCursor; /* */ class ImageFrameView; @@ -325,7 +326,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void show_editor_list (bool yn); void set_selected_mixer_strip (TimeAxisView&); void mixer_strip_width_changed (); - void hide_track_in_display (TimeAxisView* tv, bool temporary = false); + void hide_track_in_display (TimeAxisView* tv, bool apply_to_selection = false); /* nudge is initiated by transport controls owned by ARDOUR_UI */ @@ -416,9 +417,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void get_regions_corresponding_to (boost::shared_ptr region, std::vector& regions); - void show_verbose_canvas_cursor_with (const std::string& txt, int32_t xoffset = 0, int32_t yoffset = 0); - void hide_verbose_canvas_cursor(); - void center_screen (framepos_t); TrackViewList axis_views_from_routes (boost::shared_ptr) const; @@ -448,6 +446,12 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD return _cursors; } + VerboseCursor* verbose_cursor () const { + return _verbose_cursor; + } + + void get_pointer_position (double &, double &) const; + protected: void map_transport_state (); void map_position_change (framepos_t); @@ -498,6 +502,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void post_zoom (); Editing::MouseMode mouse_mode; + Editing::MouseMode pre_internal_mouse_mode; bool _internal_editing; Editing::MouseMode effective_mouse_mode () const; @@ -540,9 +545,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void location_changed (ARDOUR::Location *); void location_flags_changed (ARDOUR::Location *, void *); void refresh_location_display (); - void refresh_location_display_s (const PBD::PropertyChange&); void refresh_location_display_internal (ARDOUR::Locations::LocationList&); void add_new_location (ARDOUR::Location *); + ArdourCanvas::Group* add_new_location_internal (ARDOUR::Location *); void location_gone (ARDOUR::Location *); void remove_marker (ArdourCanvas::Item&, GdkEvent*); gint really_remove_marker (ARDOUR::Location* loc); @@ -690,19 +695,13 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD ArdourCanvas::Canvas* track_canvas; - ArdourCanvas::NoEventText* verbose_canvas_cursor; - bool verbose_cursor_visible; + friend class VerboseCursor; + VerboseCursor* _verbose_cursor; void parameter_changed (std::string); bool track_canvas_motion (GdkEvent*); - void set_verbose_canvas_cursor (const std::string &, double x, double y); - void set_verbose_canvas_cursor_text (const std::string &); - void show_verbose_canvas_cursor(); - - bool verbose_cursor_on; // so far unused - Gtk::EventBox time_canvas_event_box; Gtk::EventBox track_canvas_event_box; Gtk::EventBox time_button_event_box; @@ -773,9 +772,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD Glib::RefPtr ruler_cd_marker_action; bool no_ruler_shown_update; - gint ruler_button_press (GdkEventButton*); - gint ruler_button_release (GdkEventButton*); - gint ruler_mouse_motion (GdkEventMotion*); + bool ruler_button_press (GdkEventButton*); + bool ruler_button_release (GdkEventButton*); + bool ruler_mouse_motion (GdkEventMotion*); bool ruler_scroll (GdkEventScroll* event); Gtk::Widget * ruler_grabbed_widget; @@ -790,7 +789,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void set_ruler_visible (RulerType, bool); void toggle_ruler_visibility (RulerType rt); void ruler_toggled (int); - gint ruler_label_button_release (GdkEventButton*); + bool ruler_label_button_release (GdkEventButton*); void store_ruler_visibility (); void restore_ruler_visibility (); @@ -959,7 +958,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD bool track_canvas_map_handler (GdkEventAny*); - gint edit_controls_button_release (GdkEventButton*); + bool edit_controls_button_release (GdkEventButton*); Gtk::Menu *edit_controls_left_menu; Gtk::Menu *edit_controls_right_menu; @@ -1042,10 +1041,15 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD bool button_press_handler_1 (ArdourCanvas::Item *, GdkEvent *, ItemType); bool button_press_handler_2 (ArdourCanvas::Item *, GdkEvent *, ItemType); bool button_release_handler (ArdourCanvas::Item*, GdkEvent*, ItemType); + bool button_press_dispatch (GdkEventButton*); + bool button_release_dispatch (GdkEventButton*); bool motion_handler (ArdourCanvas::Item*, GdkEvent*, bool from_autoscroll = false); bool enter_handler (ArdourCanvas::Item*, GdkEvent*, ItemType); bool leave_handler (ArdourCanvas::Item*, GdkEvent*, ItemType); + Gtkmm2ext::Bindings* button_bindings; + XMLNode* button_settings () const; + /* KEYMAP HANDLING */ void register_actions (); @@ -1280,9 +1284,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD bool have_pending_keyboard_selection; framepos_t pending_keyboard_selection_start; - boost::shared_ptr select_region_for_operation (int dir, TimeAxisView **tv); - void extend_selection_to_end_of_region (bool next); - void extend_selection_to_start_of_region (bool previous); + void move_range_selection_start_or_end_to_region_boundary (bool, bool); Editing::SnapType _snap_type; Editing::SnapMode _snap_mode; @@ -1329,11 +1331,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void mouse_brush_insert_region (RegionView*, framepos_t pos); - void show_verbose_time_cursor (framepos_t frame, double offset = 0, double xpos=-1, double ypos=-1); - void show_verbose_duration_cursor (framepos_t start, framepos_t end, double offset = 0, double xpos=-1, double ypos=-1); - double clamp_verbose_cursor_x (double); - double clamp_verbose_cursor_y (double); - /* Canvas event handlers */ bool canvas_control_point_event (GdkEvent* event,ArdourCanvas::Item*, ControlPoint*); @@ -1533,7 +1530,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD Gtkmm2ext::StatefulToggleButton internal_edit_button; void toggle_internal_editing (); - gint mouse_select_button_release (GdkEventButton*); + bool mouse_select_button_release (GdkEventButton*); Gtk::VBox automation_box; Gtk::Button automation_mode_button; @@ -1810,6 +1807,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void pitch_shift_region (); int time_fx (RegionSelection&, float val, bool pitching); + void transpose_region (); + /* editor-mixer strip */ MixerStrip *current_mixer_strip;