convert property_foo().set_value(bar) to property_foo() = bar
[ardour.git] / gtk2_ardour / mixer_ui.h
index d8600c19c762d14b1c6b137fdcb73d4ba68dfd20..f1f004351ae2435565e4d2abebd087fa839a9f01 100644 (file)
@@ -52,7 +52,7 @@ namespace ARDOUR {
 class MixerStrip;
 class PluginSelector;
 
-class Mixer_UI : public Gtk::Window, public KeyboardTarget
+class Mixer_UI : public Gtk::Window
 {
   public:
        Mixer_UI (ARDOUR::AudioEngine&);
@@ -88,21 +88,21 @@ class Mixer_UI : public Gtk::Window, public KeyboardTarget
        Gtk::HBox                scroller_hpacker;
        Gtk::VBox                mixer_scroller_vpacker;
        Gtk::VBox                list_vpacker;
-       Gtk::Label               group_list_button_label;
-       Gtk::Button              group_list_button;
+       Gtk::Label               group_display_button_label;
+       Gtk::Button              group_display_button;
        Gtk::ScrolledWindow      track_display_scroller;
-       Gtk::ScrolledWindow      group_list_scroller;
+       Gtk::ScrolledWindow      group_display_scroller;
        Gtk::ScrolledWindow      snapshot_display_scroller;
-       Gtk::VBox                group_list_vbox;
+       Gtk::VBox                group_display_vbox;
        Gtk::Frame               track_display_frame;
-       Gtk::Frame               group_list_frame;
+       Gtk::Frame               group_display_frame;
        Gtk::VPaned              rhs_pane1;
        Gtk::VPaned              rhs_pane2;
        Gtk::HBox                strip_packer;
        Gtk::HBox                out_packer;
        Gtk::HPaned              list_hpane;
 
-       void pane_allocation_handler (GtkAllocation*, Gtk::Paned*);
+       void pane_allocation_handler (Gtk::Allocation&, Gtk::Paned*);
        
        list<MixerStrip *> strips;
 
@@ -122,6 +122,9 @@ class Mixer_UI : public Gtk::Window, public KeyboardTarget
        void unselect_all_audiobus_strips ();
        void select_all_audiobus_strips ();
 
+       void strip_select_op (bool audiotrack, bool select);
+       void select_strip_op (MixerStrip*, bool select);
+
        void follow_strip_selection ();
 
        gint start_updating ();
@@ -134,18 +137,16 @@ class Mixer_UI : public Gtk::Window, public KeyboardTarget
        sigc::connection fast_screen_update_connection;
        void fast_update_strips ();
 
-       void snapshot_display_selected (gint row, gint col, GdkEvent* ev);
-
        void track_display_selected (gint row, gint col, GdkEvent *ev);
        void track_display_unselected (gint row, gint col, GdkEvent *ev);
        void queue_track_display_reordered (gint row, gint col);
-       gint track_display_reordered ();
+       void track_display_reordered_proxy (const Gtk::TreePath& path, const Gtk::TreeIter& i, int* n);
+       void track_display_reordered ();
        void track_name_changed (MixerStrip *);
 
        void group_selected (gint row, gint col, GdkEvent *ev);
        void group_unselected (gint row, gint col, GdkEvent *ev);
-       gint group_list_button_press_event (GdkEventButton *);
-       void group_list_button_clicked();
+       void group_display_active_clicked();
        void new_mix_group ();
        void add_mix_group (ARDOUR::RouteGroup *);
 
@@ -166,27 +167,40 @@ class Mixer_UI : public Gtk::Window, public KeyboardTarget
 
        /* various treeviews */
        
-       template<class T> struct TextDataModelColumns : public Gtk::TreeModel::ColumnRecord {
-           TrackListModelColumns() { 
+       struct TrackDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
+           TrackDisplayModelColumns() { 
+                   add (text);
+                   add (route);
+                   add (strip);
+           }
+           Gtk::TreeModelColumn<Glib::ustring>  text;
+           Gtk::TreeModelColumn<ARDOUR::Route*> route;
+           Gtk::TreeModelColumn<MixerStrip*>    strip;
+       };
+
+       struct GroupDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
+           GroupDisplayModelColumns() { 
+                   add (active);
                    add (text);
-                   add (data);
+                   add (group);
            }
-           Gtk::TreeModelColumn<std::string> text;
-           Gtk::TreeModelColumn<T*> data;
+           Gtk::TreeModelColumn<bool>                active;
+           Gtk::TreeModelColumn<Glib::ustring>       text;
+           Gtk::TreeModelColumn<ARDOUR::RouteGroup*> group;
        };
 
-       struct TextPairModelColumns : public Gtk::TreeModel::ColumnRecord {
-           TrackListModelColumns() { 
-                   add (visible);
-                   add (hidden);
+       struct SnapshotDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
+           SnapshotDisplayModelColumns() { 
+                   add (visible_name);
+                   add (real_name);
            }
-           Gtk::TreeModelColumn<std::string> visible;
-           Gtk::TreeModelColumn<std::string> hidden;
+           Gtk::TreeModelColumn<Glib::ustring> visible_name;
+           Gtk::TreeModelColumn<Glib::ustring> real_name;
        };
 
-       TextDataModelColumns<ARDOUR::Route>                track_display_columns;
-       TextDataGroupListModelColumns<ARDOUR::RouteGroup>  group_list_columns;
-       TextPairModelColumns                               snapshot_display_columns;
+       TrackDisplayModelColumns    track_display_columns;
+       GroupDisplayModelColumns    group_display_columns;
+       SnapshotDisplayModelColumns snapshot_display_columns;
 
        Gtk::TreeView track_display;
        Gtk::TreeView group_display;