#include <cmath>
-#include <gtkmm/layout.h>
#include <gtkmm/comboboxtext.h>
+#include <gtkmm/layout.h>
#include <gtkmm2ext/selector.h>
#include <gtkmm2ext/click_box.h>
#include "pbd/stateful.h"
#include "ardour/session.h"
#include "ardour/tempo.h"
-#include "ardour/stretch.h"
#include "ardour/location.h"
#include "ardour/audioregion.h"
#include "ardour/track.h"
class EditorRoutes;
class EditorRouteGroups;
class EditorRegions;
+class EditorSnapshots;
/* <CMT Additions> */
class ImageFrameView;
void set_mouse_mode (Editing::MouseMode, bool force=true);
void step_mouse_mode (bool next);
Editing::MouseMode current_mouse_mode () const { return mouse_mode; }
-
- void set_midi_edit_cursor (Editing::MidiEditMode);
- void set_midi_edit_mode (Editing::MidiEditMode, bool force=true);
- Editing::MidiEditMode current_midi_edit_mode () const { return midi_edit_mode; }
+ Editing::MidiEditMode current_midi_edit_mode () const;
+
+ bool internal_editing() const { return _internal_editing ; }
+ void set_internal_edit (bool yn);
#ifdef WITH_CMT
void add_imageframe_time_axis(const std::string & track_name, void*) ;
void post_zoom ();
Editing::MouseMode mouse_mode;
- Editing::MidiEditMode midi_edit_mode;
-
+ bool _internal_editing;
+
int post_maximal_editor_width;
int post_maximal_pane_position;
int pre_maximal_pane_position;
void add_crossfade_context_items (AudioStreamView*, boost::shared_ptr<ARDOUR::Crossfade>, Gtk::Menu_Helpers::MenuList&, bool many);
void add_selection_context_items (Gtk::Menu_Helpers::MenuList&);
- void add_item_with_sensitivity (Gtk::Menu_Helpers::MenuList&, Gtk::Menu_Helpers::MenuElem, bool) const;
-
void handle_new_route (ARDOUR::RouteList&);
void remove_route (TimeAxisView *);
bool route_removal;
void end_location_changed (ARDOUR::Location*);
- /* snapshots */
-
- Gtk::ScrolledWindow snapshot_display_scroller;
- struct SnapshotDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
- SnapshotDisplayModelColumns() {
- add (visible_name);
- add (real_name);
- }
- Gtk::TreeModelColumn<Glib::ustring> visible_name;
- Gtk::TreeModelColumn<Glib::ustring> real_name;
- };
-
- SnapshotDisplayModelColumns snapshot_display_columns;
- Glib::RefPtr<Gtk::ListStore> snapshot_display_model;
- Gtk::TreeView snapshot_display;
- Gtk::Menu snapshot_context_menu;
-
- bool snapshot_display_button_press (GdkEventButton*);
- void snapshot_display_selection_changed ();
- void redisplay_snapshots();
- void popup_snapshot_context_menu (int, int32_t, Glib::ustring);
-
/* named selections */
struct NamedSelectionDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
void create_named_selection ();
void paste_named_selection (float times);
void remove_selected_named_selections ();
- void remove_snapshot (Glib::ustring);
- void rename_snapshot (Glib::ustring);
void handle_new_named_selection ();
void add_named_selection_to_named_selection_display (ARDOUR::NamedSelection&);
/* track views */
TrackViewList track_views;
std::pair<TimeAxisView*, ARDOUR::layer_t> trackview_by_y_position (double);
+ TimeAxisView* axis_view_from_route (ARDOUR::Route *) const;
TrackSelection axis_views_from_routes (std::list<ARDOUR::Route *>) const;
+ TrackSelection get_tracks_for_range_action () const;
+
static Gdk::Cursor* cross_hair_cursor;
static Gdk::Cursor* trimmer_cursor;
static Gdk::Cursor* selector_cursor;
bool typed_event (ArdourCanvas::Item*, GdkEvent*, ItemType);
bool button_press_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
+ 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 motion_handler (ArdourCanvas::Item*, GdkEvent*, bool from_autoscroll = false);
bool enter_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
void cut_copy_points (Editing::CutCopyOp);
void cut_copy_regions (Editing::CutCopyOp, RegionSelection&);
void cut_copy_ranges (Editing::CutCopyOp);
+ void cut_copy_midi (Editing::CutCopyOp);
void mouse_paste ();
void paste_internal (nframes64_t position, float times);
Gtk::HBox mouse_mode_button_box;
Gtkmm2ext::TearOff* mouse_mode_tearoff;
- Gtk::ToggleButton mouse_select_button;
- Gtk::ToggleButton mouse_move_button;
- Gtk::ToggleButton mouse_gain_button;
- Gtk::ToggleButton mouse_zoom_button;
- Gtk::ToggleButton mouse_timefx_button;
- Gtk::ToggleButton mouse_audition_button;
- Gtk::ToggleButton mouse_note_button;
- GroupedButtons *mouse_mode_button_set;
+ Gtk::ToggleButton mouse_select_button;
+ Gtk::ToggleButton mouse_move_button;
+ Gtk::ToggleButton mouse_gain_button;
+ Gtk::ToggleButton mouse_zoom_button;
+ Gtk::ToggleButton mouse_timefx_button;
+ Gtk::ToggleButton mouse_audition_button;
+
void mouse_mode_toggled (Editing::MouseMode m);
bool ignore_mouse_mode_toggle;
+ Gtk::ToggleButton internal_edit_button;
+ void toggle_internal_editing ();
+
gint mouse_select_button_release (GdkEventButton*);
Gtk::VBox automation_box;
/* midi toolbar */
- Gtk::HBox midi_tool_button_box;
- Gtk::ToggleButton midi_tool_pencil_button;
- Gtk::ToggleButton midi_tool_select_button;
- Gtk::ToggleButton midi_tool_resize_button;
- Gtk::ToggleButton midi_tool_erase_button;
+ Gtk::HBox panic_box;
Gtk::Button midi_panic_button;
Gtk::ToggleButton midi_sound_notes;
- GroupedButtons *midi_tool_button_set;
- void midi_edit_mode_toggled (Editing::MidiEditMode m);
void midi_panic_button_pressed ();
bool sound_notes () const { return midi_sound_notes.get_active(); }
- bool ignore_midi_edit_mode_toggle;
-
- Gtkmm2ext::TearOff* midi_tools_tearoff;
- Gtk::HBox midi_toolbar_hbox;
- Gtk::EventBox midi_toolbar_base;
- Gtk::Frame midi_toolbar_frame;
-
void setup_midi_toolbar ();
/* selection process */
EditorRouteGroups* _route_groups;
EditorRoutes* _routes;
EditorRegions* _regions;
+ EditorSnapshots* _snapshots;
/* diskstream/route display management */
Glib::RefPtr<Gdk::Pixbuf> rec_enabled_icon;