more verbose debug output for slave debugging
[ardour.git] / gtk2_ardour / editor.h
index c78c85ffc62984cb239b433688a6dd6628692df0..68ba1101234b985522252bf44a7b63ce0affc96c 100644 (file)
 #include <gtkmm/layout.h>
 
 #include "gtkmm2ext/bindings.h"
-#include "gtkmm2ext/click_box.h"
 #include "gtkmm2ext/dndtreeview.h"
-#include "gtkmm2ext/pane.h"
-#include "gtkmm2ext/selector.h"
-#include "gtkmm2ext/stateful_button.h"
 
 #include "pbd/stateful.h"
 #include "pbd/signals.h"
 #include "canvas/fwd.h"
 #include "canvas/ruler.h"
 
-#include "ardour_button.h"
+#include "widgets/ardour_button.h"
+#include "widgets/ardour_dropdown.h"
+#include "widgets/pane.h"
+
 #include "ardour_dialog.h"
-#include "ardour_dropdown.h"
 #include "public_editor.h"
 #include "editing.h"
 #include "enums.h"
@@ -102,7 +100,6 @@ class AutomationLine;
 class AutomationSelection;
 class AutomationTimeAxisView;
 class BundleManager;
-class ButtonJoiner;
 class ControlPoint;
 class CursorContext;
 class DragManager;
@@ -115,7 +112,6 @@ class EditorRoutes;
 class EditorRouteGroups;
 class EditorSnapshots;
 class EditorSummary;
-class GroupedButtons;
 class GUIObjectState;
 class ArdourMarker;
 class MidiRegionView;
@@ -196,7 +192,7 @@ public:
        void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>);
        void add_to_idle_resize (TimeAxisView*, int32_t);
 
-       RouteTimeAxisView* get_route_view_by_route_id (const PBD::ID& id) const;
+       StripableTimeAxisView* get_stripable_time_axis_by_id (const PBD::ID& id) const;
 
        void consider_auditioning (boost::shared_ptr<ARDOUR::Region>);
        void hide_a_region (boost::shared_ptr<ARDOUR::Region>);
@@ -368,6 +364,9 @@ public:
        void set_group_tabs ();
        void toggle_measure_visibility ();
 
+       /* returns the left-most and right-most time that the gui should allow the user to scroll to */
+       std::pair <framepos_t,framepos_t> session_gui_extents( bool use_extra = true ) const; 
+
        /* fades */
 
        void toggle_region_fades (int dir);
@@ -639,8 +638,8 @@ private:
        void add_notebook_page (std::string const &, Gtk::Widget &);
        bool notebook_tab_clicked (GdkEventButton *, Gtk::Widget *);
 
-       Gtkmm2ext::HPane   edit_pane;
-       Gtkmm2ext::VPane   editor_summary_pane;
+       ArdourWidgets::HPane edit_pane;
+       ArdourWidgets::VPane editor_summary_pane;
 
        Gtk::EventBox meter_base;
        Gtk::HBox     meter_box;
@@ -1118,7 +1117,8 @@ private:
        void control_scroll (float);
        void control_select (boost::shared_ptr<ARDOUR::Stripable>, Selection::Operation);
        void control_unselect ();
-       void access_action (std::string,std::string);
+       void access_action (const std::string&, const std::string&);
+       void set_toggleaction (const std::string&, const std::string&, bool);
        bool deferred_control_scroll (framepos_t);
        sigc::connection control_scroll_connection;
 
@@ -1342,6 +1342,7 @@ private:
        void calc_extra_zoom_edges(framepos_t &start, framepos_t &end);
        void temporal_zoom_selection (Editing::ZoomAxis);
        void temporal_zoom_session ();
+       void temporal_zoom_extents ();
        void temporal_zoom (framecnt_t samples_per_pixel);
        void temporal_zoom_by_frame (framepos_t start, framepos_t end);
        void temporal_zoom_to_frame (bool coarser, framepos_t frame);
@@ -1705,7 +1706,6 @@ private:
        void toggle_marker_lock_style ();
        void toggle_tempo_clamped ();
        void toggle_tempo_type ();
-       void continue_previous_tempo ();
        void ramp_to_next_tempo ();
        void toggle_marker_menu_lock ();
        void toggle_marker_menu_glue ();
@@ -1769,14 +1769,14 @@ private:
        void editor_mixer_button_toggled ();
        void editor_list_button_toggled ();
 
-       ArdourButton              zoom_in_button;
-       ArdourButton              zoom_out_button;
-       ArdourButton              zoom_out_full_button;
+       ArdourWidgets::ArdourButton   zoom_in_button;
+       ArdourWidgets::ArdourButton   zoom_out_button;
+       ArdourWidgets::ArdourButton   zoom_out_full_button;
 
-       ArdourButton              tav_expand_button;
-       ArdourButton              tav_shrink_button;
-       ArdourDropdown            visible_tracks_selector;
-       ArdourDropdown            zoom_preset_selector;
+       ArdourWidgets::ArdourButton   tav_expand_button;
+       ArdourWidgets::ArdourButton   tav_shrink_button;
+       ArdourWidgets::ArdourDropdown visible_tracks_selector;
+       ArdourWidgets::ArdourDropdown zoom_preset_selector;
 
        int32_t                   _visible_track_count;
        void build_track_count_menu ();
@@ -1789,15 +1789,15 @@ private:
        Gtk::Table               toolbar_selection_clock_table;
        Gtk::Label               toolbar_selection_cursor_label;
 
-       ArdourButton mouse_select_button;
-       ArdourButton mouse_draw_button;
-       ArdourButton mouse_move_button;
-       ArdourButton mouse_timefx_button;
-       ArdourButton mouse_content_button;
-       ArdourButton mouse_audition_button;
-       ArdourButton mouse_cut_button;
+       ArdourWidgets::ArdourButton mouse_select_button;
+       ArdourWidgets::ArdourButton mouse_draw_button;
+       ArdourWidgets::ArdourButton mouse_move_button;
+       ArdourWidgets::ArdourButton mouse_timefx_button;
+       ArdourWidgets::ArdourButton mouse_content_button;
+       ArdourWidgets::ArdourButton mouse_audition_button;
+       ArdourWidgets::ArdourButton mouse_cut_button;
 
-       ArdourButton smart_mode_button;
+       ArdourWidgets::ArdourButton smart_mode_button;
        Glib::RefPtr<Gtk::ToggleAction> smart_mode_action;
 
        void                     mouse_mode_toggled (Editing::MouseMode m);
@@ -1810,20 +1810,20 @@ private:
        Gtk::Button              automation_mode_button;
 
        //edit mode menu stuff
-       ArdourDropdown  edit_mode_selector;
-       void edit_mode_selection_done ( ARDOUR::EditMode m );
+       ArdourWidgets::ArdourDropdown   edit_mode_selector;
+       void edit_mode_selection_done (ARDOUR::EditMode);
        void build_edit_mode_menu ();
-       Gtk::VBox         edit_mode_box;
+       Gtk::VBox edit_mode_box;
 
        void set_edit_mode (ARDOUR::EditMode);
        void cycle_edit_mode ();
 
-       ArdourDropdown snap_type_selector;
+       ArdourWidgets::ArdourDropdown snap_type_selector;
        void build_snap_type_menu ();
 
-       ArdourDropdown snap_mode_selector;
+       ArdourWidgets::ArdourDropdown snap_mode_selector;
        void build_snap_mode_menu ();
-       Gtk::HBox         snap_box;
+       Gtk::HBox snap_box;
 
        std::vector<std::string> snap_type_strings;
        std::vector<std::string> snap_mode_strings;
@@ -1837,8 +1837,8 @@ private:
        Glib::RefPtr<Gtk::RadioAction> snap_mode_action (Editing::SnapMode);
 
        //zoom focus meu stuff
-       ArdourDropdown  zoom_focus_selector;
-       void zoom_focus_selection_done ( Editing::ZoomFocus f );
+       ArdourWidgets::ArdourDropdown   zoom_focus_selector;
+       void zoom_focus_selection_done (Editing::ZoomFocus);
        void build_zoom_focus_menu ();
        std::vector<std::string> zoom_focus_strings;
 
@@ -1846,16 +1846,16 @@ private:
 
        Glib::RefPtr<Gtk::RadioAction> zoom_focus_action (Editing::ZoomFocus);
 
-       Gtk::HBox           _track_box;
+       Gtk::HBox _track_box;
 
-       Gtk::HBox           _zoom_box;
-       void                zoom_adjustment_changed();
+       Gtk::HBox _zoom_box;
+       void zoom_adjustment_changed();
 
        void setup_toolbar ();
 
        void setup_tooltips ();
 
-       Gtk::HBox                toolbar_hbox;
+       Gtk::HBox toolbar_hbox;
 
        void setup_midi_toolbar ();
 
@@ -1893,35 +1893,35 @@ private:
 
        /* transport range select process */
 
-       ArdourCanvas::Rectangle*  cd_marker_bar_drag_rect;
-       ArdourCanvas::Rectangle*  range_bar_drag_rect;
-       ArdourCanvas::Rectangle*  transport_bar_drag_rect;
-       ArdourCanvas::Rectangle     *transport_bar_range_rect;
-       ArdourCanvas::Rectangle     *transport_bar_preroll_rect;
-       ArdourCanvas::Rectangle     *transport_bar_postroll_rect;
-       ArdourCanvas::Rectangle     *transport_loop_range_rect;
-       ArdourCanvas::Rectangle     *transport_punch_range_rect;
-       ArdourCanvas::Line     *transport_punchin_line;
-       ArdourCanvas::Line     *transport_punchout_line;
-       ArdourCanvas::Rectangle     *transport_preroll_rect;
-       ArdourCanvas::Rectangle     *transport_postroll_rect;
+       ArdourCanvas::Rectangle* cd_marker_bar_drag_rect;
+       ArdourCanvas::Rectangle* range_bar_drag_rect;
+       ArdourCanvas::Rectangle* transport_bar_drag_rect;
+       ArdourCanvas::Rectangletransport_bar_range_rect;
+       ArdourCanvas::Rectangletransport_bar_preroll_rect;
+       ArdourCanvas::Rectangletransport_bar_postroll_rect;
+       ArdourCanvas::Rectangletransport_loop_range_rect;
+       ArdourCanvas::Rectangletransport_punch_range_rect;
+       ArdourCanvas::Line*      transport_punchin_line;
+       ArdourCanvas::Line*      transport_punchout_line;
+       ArdourCanvas::Rectangletransport_preroll_rect;
+       ArdourCanvas::Rectangletransport_postroll_rect;
 
-       ARDOUR::Location*  transport_loop_location();
-       ARDOUR::Location*  transport_punch_location();
+       ARDOUR::Location* transport_loop_location();
+       ARDOUR::Location* transport_punch_location();
 
-       ARDOUR::Location   *temp_location;
+       ARDOUR::Locationtemp_location;
 
        /* object rubberband select process */
 
        void select_all_within (framepos_t, framepos_t, double, double, TrackViewList const &, Selection::Operation, bool);
 
-       ArdourCanvas::Rectangle   *rubberband_rect;
+       ArdourCanvas::Rectanglerubberband_rect;
 
        EditorRouteGroups* _route_groups;
-       EditorRoutes* _routes;
-       EditorRegions* _regions;
-       EditorSnapshots* _snapshots;
-       EditorLocations* _locations;
+       EditorRoutes*      _routes;
+       EditorRegions*     _regions;
+       EditorSnapshots*   _snapshots;
+       EditorLocations*   _locations;
 
        /* diskstream/route display management */
        Glib::RefPtr<Gdk::Pixbuf> rec_enabled_icon;
@@ -1931,7 +1931,7 @@ private:
 
        bool sync_track_view_list_and_routes ();
 
-       Gtk::VBox           list_vpacker;
+       Gtk::VBox list_vpacker;
 
        /* autoscrolling */
 
@@ -2089,8 +2089,8 @@ private:
 
        /* nudge */
 
-       ArdourButton      nudge_forward_button;
-       ArdourButton      nudge_backward_button;
+       ArdourWidgets::ArdourButton      nudge_forward_button;
+       ArdourWidgets::ArdourButton      nudge_backward_button;
        Gtk::HBox        nudge_hbox;
        Gtk::VBox        nudge_vbox;
        AudioClock*       nudge_clock;
@@ -2152,7 +2152,7 @@ private:
 
        Editing::EditPoint _edit_point;
 
-       ArdourDropdown edit_point_selector;
+       ArdourWidgets::ArdourDropdown edit_point_selector;
        void build_edit_point_menu();
 
        void set_edit_point_preference (Editing::EditPoint ep, bool force = false);
@@ -2180,8 +2180,8 @@ private:
        void stop_updating_meters ();
        bool meters_running;
 
-       void select_next_route ();
-       void select_prev_route ();
+       void select_next_stripable (bool routes_only = true);
+       void select_prev_stripable (bool routes_only = true);
 
        void snap_to_internal (ARDOUR::MusicFrame& first,
                               ARDOUR::RoundMode   direction = ARDOUR::RoundNearest,
@@ -2319,7 +2319,6 @@ private:
        friend class ControlPointDrag;
        friend class LineDrag;
        friend class RubberbandSelectDrag;
-       friend class RulerZoomDrag;
        friend class EditorRubberbandSelectDrag;
        friend class TimeFXDrag;
        friend class ScrubDrag;