#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"
class AutomationSelection;
class AutomationTimeAxisView;
class BundleManager;
-class ButtonJoiner;
class ControlPoint;
class CursorContext;
class DragManager;
class EditorRouteGroups;
class EditorSnapshots;
class EditorSummary;
-class GroupedButtons;
class GUIObjectState;
class ArdourMarker;
class MidiRegionView;
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>);
typedef std::pair<TimeAxisView*,XMLNode*> TAVState;
struct VisualState {
- VisualState (bool with_tracks);
- ~VisualState ();
- double y_position;
- framecnt_t samples_per_pixel;
- framepos_t leftmost_frame;
- Editing::ZoomFocus zoom_focus;
- GUIObjectState* gui_state;
+ VisualState (bool with_tracks);
+ ~VisualState ();
+ double y_position;
+ framecnt_t samples_per_pixel;
+ framepos_t leftmost_frame;
+ Editing::ZoomFocus zoom_focus;
+ GUIObjectState* gui_state;
};
std::list<VisualState*> undo_visual_stack;
Editing::ZoomFocus zoom_focus;
void set_samples_per_pixel (framecnt_t);
+ void on_samples_per_pixel_changed ();
Editing::MouseMode mouse_mode;
Editing::SnapType pre_internal_snap_type;
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;
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;
enum Type {
TimeOrigin = 0x1,
ZoomLevel = 0x2,
- YOrigin = 0x4
+ YOrigin = 0x4,
+ VideoTimeline = 0x8
};
Type pending;
};
VisualChange pending_visual_change;
+ bool visual_change_queued;
+
+ void pre_render ();
static int _idle_visual_changer (void *arg);
int idle_visual_changer ();
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 ();
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 ();
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);
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;
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;
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 ();
/* 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::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;
- 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::Location* temp_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::Rectangle* rubberband_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;
bool sync_track_view_list_and_routes ();
- Gtk::VBox list_vpacker;
+ Gtk::VBox list_vpacker;
/* autoscrolling */
/* 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;
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);
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,
friend class ControlPointDrag;
friend class LineDrag;
friend class RubberbandSelectDrag;
- friend class RulerZoomDrag;
friend class EditorRubberbandSelectDrag;
friend class TimeFXDrag;
friend class ScrubDrag;