#include "gtk-custom-ruler.h"
#include "ardour_button.h"
#include "ardour_dialog.h"
+#include "ardour_dropdown.h"
#include "public_editor.h"
#include "editing.h"
#include "enums.h"
class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr
{
- public:
+ public:
Editor ();
~Editor ();
void set_internal_edit (bool yn);
bool toggle_internal_editing_from_double_click (GdkEvent*);
+ void _ensure_time_axis_view_is_visible (const TimeAxisView& tav, bool at_top);
void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>);
void add_to_idle_resize (TimeAxisView*, int32_t);
void nudge_forward_capture_offset ();
void nudge_backward_capture_offset ();
+ void sequence_regions ();
+
/* playhead/screen stuff */
void set_stationary_playhead (bool yn);
void show_window ();
- void ensure_time_axis_view_is_visible (const TimeAxisView& tav);
void scroll_tracks_down_line ();
void scroll_tracks_up_line ();
bool scroll_up_one_track ();
ArdourCanvas::Group* get_trackview_group () const { return _trackview_group; }
ArdourCanvas::Group* get_time_bars_group () const;
ArdourCanvas::Group* get_track_canvas_group () const;
- ArdourCanvas::GtkCanvasViewport* get_time_bars_canvas () const;
ArdourCanvas::GtkCanvasViewport* get_track_canvas () const;
+ void override_visible_track_count ();
protected:
void map_transport_state ();
ArdourCanvas::GtkCanvas* _track_canvas;
ArdourCanvas::GtkCanvasViewport* _track_canvas_viewport;
- ArdourCanvas::GtkCanvas* _time_bars_canvas;
- ArdourCanvas::GtkCanvasViewport* _time_bars_canvas_viewport;
-
bool within_track_canvas;
friend class VerboseCursor;
ArdourCanvas::Group* transport_marker_bar_group;
ArdourCanvas::Group* cd_marker_bar_group;
- /* The group containing all trackviews. Only scrolled vertically. */
+ /* The group containing all other groups that are scrolled vertically
+ and horizontally.
+ */
+ ArdourCanvas::Group* hv_scroll_group;
+
+ /* The group containing all other groups that are scrolled vertically ONLY
+ */
+ ArdourCanvas::Group* v_scroll_group;
+
+ /* The group containing all other groups that are scrolled horizontally ONLY
+ */
+ ArdourCanvas::Group* h_scroll_group;
+
+ /* The group containing all trackviews. */
ArdourCanvas::Group* _trackview_group;
/* The group used for region motion. Sits on top of _trackview_group */
ArdourCanvas::Group* _region_motion_group;
+ /* a rect that sits at the bottom of all tracks to act as a drag-no-drop/clickable
+ * target area.
+ */
+ ArdourCanvas::Rectangle* _canvas_bottom_rect;
+ bool canvas_bottom_rect_event (GdkEvent* event);
+
enum RulerType {
ruler_metric_timecode = 0,
ruler_metric_bbt = 1,
/* track views */
TrackViewList track_views;
std::pair<TimeAxisView*, double> trackview_by_y_position (double);
- TimeAxisView* axis_view_from_route (boost::shared_ptr<ARDOUR::Route>) const;
+ RouteTimeAxisView* axis_view_from_route (boost::shared_ptr<ARDOUR::Route>) const;
TrackViewList get_tracks_for_range_action () const;
void escape ();
Gtk::Menu fade_context_menu;
- void popup_fade_context_menu (int, int, ArdourCanvas::Item*, ItemType);
Gtk::Menu xfade_in_context_menu;
Gtk::Menu xfade_out_context_menu;
bool canvas_start_xfade_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
bool canvas_end_xfade_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
bool canvas_fade_in_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
- bool canvas_fade_in_handle_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
+ bool canvas_fade_in_handle_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*, bool trim = false);
bool canvas_fade_out_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
- bool canvas_fade_out_handle_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
+ bool canvas_fade_out_handle_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*, bool trim = false);
bool canvas_region_view_event (GdkEvent* event,ArdourCanvas::Item*, RegionView*);
bool canvas_frame_handle_event (GdkEvent* event,ArdourCanvas::Item*, RegionView*);
bool canvas_region_view_name_highlight_event (GdkEvent* event,ArdourCanvas::Item*, RegionView*);
Gtk::Allocation _canvas_viewport_allocation;
void track_canvas_viewport_allocate (Gtk::Allocation alloc);
- bool track_canvas_viewport_size_allocated ();
+ void track_canvas_viewport_size_allocated ();
bool track_canvas_drag_motion (Glib::RefPtr<Gdk::DragContext> const &, int, int, guint);
bool track_canvas_key_press (GdkEventKey *);
bool track_canvas_key_release (GdkEventKey *);
ArdourButton tav_expand_button;
ArdourButton tav_shrink_button;
+ ArdourDropdown visible_tracks_selector;
+
+ int32_t _visible_track_count;
+ void build_track_count_menu ();
+ void set_visible_track_count (int32_t);
Gtk::VBox toolbar_clock_vbox;
Gtk::VBox toolbar_selection_clock_vbox;
Gtk::VBox automation_box;
Gtk::Button automation_mode_button;
- Gtk::ComboBoxText edit_mode_selector;
+ //edit mode menu stuff
+ ArdourDropdown edit_mode_selector;
+ void edit_mode_selection_done ( ARDOUR::EditMode m );
+ void build_edit_mode_menu ();
Gtk::VBox edit_mode_box;
std::vector<std::string> edit_mode_strings;
void set_edit_mode (ARDOUR::EditMode);
void cycle_edit_mode ();
- void edit_mode_selection_done ();
- Gtk::ComboBoxText snap_type_selector;
- Gtk::ComboBoxText snap_mode_selector;
+ ArdourDropdown snap_type_selector;
+ void build_snap_type_menu ();
+
+ ArdourDropdown snap_mode_selector;
+ void build_snap_mode_menu ();
Gtk::HBox snap_box;
std::vector<std::string> snap_type_strings;
std::vector<std::string> snap_mode_strings;
- void snap_type_selection_done ();
- void snap_mode_selection_done ();
+ void snap_type_selection_done (Editing::SnapType);
+ void snap_mode_selection_done (Editing::SnapMode);
void snap_mode_chosen (Editing::SnapMode);
void snap_type_chosen (Editing::SnapType);
Glib::RefPtr<Gtk::RadioAction> snap_type_action (Editing::SnapType);
Glib::RefPtr<Gtk::RadioAction> snap_mode_action (Editing::SnapMode);
- Gtk::ComboBoxText zoom_focus_selector;
- Gtk::VBox zoom_focus_box;
-
+ //zoom focus meu stuff
+ ArdourDropdown zoom_focus_selector;
+ void zoom_focus_selection_done ( Editing::ZoomFocus f );
+ void build_zoom_focus_menu ();
std::vector<std::string> zoom_focus_strings;
- void zoom_focus_selection_done ();
void zoom_focus_chosen (Editing::ZoomFocus);
Glib::RefPtr<Gtk::RadioAction> zoom_focus_action (Editing::ZoomFocus);
Editing::EditPoint _edit_point;
- Gtk::ComboBoxText edit_point_selector;
+ ArdourDropdown edit_point_selector;
+ void build_edit_point_menu();
void set_edit_point_preference (Editing::EditPoint ep, bool force = false);
void cycle_edit_point (bool with_marker);
void set_edit_point ();
- void edit_point_selection_done ();
+ void edit_point_selection_done (Editing::EditPoint);
void edit_point_chosen (Editing::EditPoint);
Glib::RefPtr<Gtk::RadioAction> edit_point_action (Editing::EditPoint);
std::vector<std::string> edit_point_strings;