#include "editing.h"
#include "enums.h"
#include "region_selection.h"
+#include "simplerect.h"
namespace Gtkmm2ext {
class TearOff;
Width editor_mixer_strip_width;
void show_editor_mixer (bool yn);
void set_selected_mixer_strip (TimeAxisView&);
- void unselect_strip_in_display (TimeAxisView& tv);
- void select_strip_in_display (TimeAxisView& tv);
+ void unselect_strip_in_display (TimeAxisView* tv);
+ void select_strip_in_display (TimeAxisView* tv);
/* nudge is initiated by transport controls owned by ARDOUR_UI */
Gtk::VBox global_vpacker;
Gtk::VBox vpacker;
- GdkCursor *current_canvas_cursor;
+ Gdk::Cursor* current_canvas_cursor;
Gnome::Canvas::CanvasAA track_canvas;
Gnome::Canvas::CanvasAA time_canvas;
guint32 visible_timebars;
Gtk::Menu *editor_ruler_menu;
- Gnome::Canvas::Rect* tempo_bar;
- Gnome::Canvas::Rect* meter_bar;
- Gnome::Canvas::Rect* marker_bar;
- Gnome::Canvas::Rect* range_marker_bar;
- Gnome::Canvas::Rect* transport_marker_bar;
+ Gnome::Canvas::SimpleRect* tempo_bar;
+ Gnome::Canvas::SimpleRect* meter_bar;
+ Gnome::Canvas::SimpleRect* marker_bar;
+ Gnome::Canvas::SimpleRect* range_marker_bar;
+ Gnome::Canvas::SimpleRect* transport_marker_bar;
Gnome::Canvas::Line* tempo_line;
/* named selections */
+ struct NamedSelectionDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
+ NamedSelectionDisplayModelColumns() {
+ add (text);
+ add (selection);
+ }
+ Gtk::TreeModelColumn<Glib::ustring> text;
+ Gtk::TreeModelColumn<ARDOUR::NamedSelection*> selection;
+ };
+
+ NamedSelectionDisplayModelColumns named_selection_columns;
+ Glib::RefPtr<Gtk::TreeStore> named_selection_model;
+
Gtk::VPaned region_selection_vpane;
Gtk::TreeView named_selection_display;
Gtk::ScrolledWindow named_selection_scroller;
void redisplay_named_selections ();
gint named_selection_display_button_press (GdkEventButton *ev);
- void named_selection_display_selected (gint row, gint col, GdkEvent *ev);
- void named_selection_display_unselected (gint row, gint col, GdkEvent *ev);
+ void named_selection_display_selection_changed ();
/* track views */
int track_spacing;
TrackViewList track_views;
TimeAxisView *trackview_by_y_position (double ypos);
- static GdkCursor* cross_hair_cursor;
- static GdkCursor* trimmer_cursor;
- static GdkCursor* selector_cursor;
- static GdkCursor* grabber_cursor;
- static GdkCursor* zoom_cursor;
- static GdkCursor* time_fx_cursor;
- static GdkCursor* fader_cursor;
- static GdkCursor* speaker_cursor;
- static GdkCursor* null_cursor;
- static GdkCursor* wait_cursor;
- static GdkCursor* timebar_cursor;
+ static Gdk::Cursor* cross_hair_cursor;
+ static Gdk::Cursor* trimmer_cursor;
+ static Gdk::Cursor* selector_cursor;
+ static Gdk::Cursor* grabber_cursor;
+ static Gdk::Cursor* zoom_cursor;
+ static Gdk::Cursor* time_fx_cursor;
+ static Gdk::Cursor* fader_cursor;
+ static Gdk::Cursor* speaker_cursor;
+ static Gdk::Cursor* null_cursor;
+ static Gdk::Cursor* wait_cursor;
+ static Gdk::Cursor* timebar_cursor;
static void build_cursors ();
void hide_all_tracks (bool with_select);
- void route_list_selected (gint row, gint col, GdkEvent* ev);
- void route_list_unselected (gint row, gint col, GdkEvent* ev);
+ void route_display_selection_changed ();
void redisplay_route_list();
gint route_list_reordered ();
bool ignore_route_list_reorder;
- void queue_route_list_reordered (gint row, gint col);
+ void queue_route_list_reordered ();
struct DragInfo {
GnomeCanvasItem* item;
LineDragInfo current_line_drag_info;
- void start_grab (GdkEvent*, GdkCursor* cursor = 0);
+ void start_grab (GdkEvent*, Gdk::Cursor* cursor = 0);
bool end_grab (GnomeCanvasItem*, GdkEvent*);
Gtk::Menu fade_context_menu;
TimeLineList free_measure_lines;
TimeLineList used_measure_lines;
- GnomeCanvasItem* time_line_group;
+ Gnome::Canvas::Group* time_line_group;
GnomeCanvasItem* get_time_line ();
void hide_measures ();
void draw_measures ();
void end_range_markerbar_op (GnomeCanvasItem* item, GdkEvent* event);
- GnomeCanvasItem *range_bar_drag_rect;
- GnomeCanvasItem *transport_bar_drag_rect;
- GnomeCanvasItem *marker_drag_line;
- GnomeCanvasPoints *marker_drag_line_points;
- GnomeCanvasItem *range_marker_drag_rect;
+ Gnome::Canvas::Item *range_bar_drag_rect;
+ Gnome::Canvas::Item *transport_bar_drag_rect;
+ Gnome::Canvas::Item *marker_drag_line;
+ Gnome::Canvas::Points *marker_drag_line_points;
+ Gnome::Canvas::Item *range_marker_drag_rect;
void update_marker_drag_item (ARDOUR::Location *);
GnomeCanvasItem *transport_bar_range_rect;
GnomeCanvasItem *transport_bar_preroll_rect;
GnomeCanvasItem *transport_bar_postroll_rect;
- GnomeCanvasItem *transport_loop_range_rect;
- GnomeCanvasItem *transport_punch_range_rect;
- GnomeCanvasItem *transport_punchin_line;
- GnomeCanvasItem *transport_punchout_line;
+ Gnome::Canvas::Item *transport_loop_range_rect;
+ Gnome::Canvas::Item *transport_punch_range_rect;
+ Gnome::Canvas::Item *transport_punchin_line;
+ Gnome::Canvas::Item *transport_punchout_line;
GnomeCanvasItem *transport_preroll_rect;
GnomeCanvasItem *transport_postroll_rect;
bool select_all_within (jack_nframes_t start, jack_nframes_t end, gdouble topy, gdouble boty, bool add);
- GnomeCanvasItem *rubberband_rect;
+ Gnome::Canvas::Item *rubberband_rect;
/* mouse zoom process */
void drag_mouse_zoom (GnomeCanvasItem* item, GdkEvent* event);
void end_mouse_zoom (GnomeCanvasItem* item, GdkEvent* event);
- GnomeCanvasItem *zoom_rect;
+ Gnome::Canvas::Item *zoom_rect;
void reposition_zoom_rect (jack_nframes_t start, jack_nframes_t end);
/* diskstream/route display management */
- Gtk::TreeView route_list;
+ struct RouteDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
+ RouteDisplayModelColumns() {
+ add (text);
+ add (tv);
+ }
+ Gtk::TreeModelColumn<Glib::ustring> text;
+ Gtk::TreeModelColumn<TimeAxisView*> tv;
+ };
+
+ RouteDisplayModelColumns route_display_columns;
+ Glib::RefPtr<Gtk::ListStore> route_display_model;
+ Glib::RefPtr<Gtk::TreeSelection> route_display_selection;
+
+ gint route_list_compare_func (Gtk::TreeModel::iterator, Gtk::TreeModel::iterator);
+ Gtk::TreeView route_list; //GTK2FIX rename to route_display
Gtk::ScrolledWindow route_list_scroller;
Gtk::Menu *route_list_menu;
- void route_list_column_click (gint);
+ void route_list_column_click ();
void build_route_list_menu ();
void select_all_routes ();
void unselect_all_routes ();
/* edit group management */
+ struct GroupListModelColumns : public Gtk::TreeModel::ColumnRecord {
+ GroupListModelColumns () {
+ add (is_active);
+ add (text);
+ add (routegroup);
+ }
+ Gtk::TreeModelColumn<bool> is_active;
+ Gtk::TreeModelColumn<std::string> text;
+ Gtk::TreeModelColumn<ARDOUR::RouteGroup*> routegroup;
+ };
+
+ GroupListModelColumns group_columns;
+ Glib::RefPtr<Gtk::ListStore> group_model;
+ Glib::RefPtr<Gtk::TreeSelection> group_selection;
+
Gtk::Button edit_group_list_button;
Gtk::Label edit_group_list_button_label;
Gtk::TreeView edit_group_list;
Gtk::Menu *edit_group_list_menu;
Gtk::VBox edit_group_vbox;
-
void edit_group_list_column_click (gint);
void build_edit_group_list_menu ();
void select_all_edit_groups ();
void new_edit_group ();
void edit_group_list_button_clicked ();
gint edit_group_list_button_press_event (GdkEventButton* ev);
- void edit_group_selected (gint row, gint col, GdkEvent* ev);
- void edit_group_unselected (gint row, gint col, GdkEvent* ev);
+ void edit_group_selection_changed ();
void fake_add_edit_group (ARDOUR::RouteGroup* group);
void add_edit_group (ARDOUR::RouteGroup* group);
void group_flags_changed (void*, ARDOUR::RouteGroup*);