diff options
author | Nick Mainsbridge <beatroute@iprimus.com.au> | 2006-02-14 19:12:35 +0000 |
---|---|---|
committer | Nick Mainsbridge <beatroute@iprimus.com.au> | 2006-02-14 19:12:35 +0000 |
commit | 1638bcf7cb3dc19ca9bba0ad8f081202e40348f3 (patch) | |
tree | 6b920cec70f5e03d584f747026193eeef550a69b /gtk2_ardour/mixer_ui.cc | |
parent | 517d411bb013d27f0df188584bbfa684438cc544 (diff) |
mix groups work again
git-svn-id: svn://localhost/trunk/ardour2@327 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/mixer_ui.cc')
-rw-r--r-- | gtk2_ardour/mixer_ui.cc | 51 |
1 files changed, 32 insertions, 19 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 2de21b2e35..5d1c925116 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -99,23 +99,37 @@ Mixer_UI::Mixer_UI (AudioEngine& eng) group_display_model = ListStore::create (group_display_columns); group_display.set_model (group_display_model); - group_display.append_column (_("active"), group_display_columns.active); group_display.append_column (_("groupname"), group_display_columns.text); + group_display.append_column (_("active"), group_display_columns.active); group_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0)); group_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1)); + group_display.set_name ("MixerGroupList"); + group_display.get_selection()->set_mode (Gtk::SELECTION_NONE); + group_display.set_reorderable (true); + group_display.set_size_request (150, -1); + group_display.set_headers_visible (true); + group_display.set_headers_clickable (false); /* use checkbox for the active column */ - CellRendererToggle *active_cell = dynamic_cast<CellRendererToggle*>(group_display.get_column_cell_renderer (0)); + CellRendererToggle* active_cell = dynamic_cast<CellRendererToggle*>(group_display.get_column_cell_renderer (1)); active_cell->property_activatable() = true; active_cell->property_radio() = false; - - group_display.set_name ("MixerGroupList"); - group_display.set_reorderable (true); - group_display.set_size_request (true); + + group_display.signal_button_press_event().connect (mem_fun (*this, &Mixer_UI::group_display_button_press), false); + group_display.get_selection()->signal_changed().connect (mem_fun (*this, &Mixer_UI::group_display_selection_changed)); + group_display_scroller.add (group_display); group_display_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); + group_display_button_label.set_name ("NewMixGroupLabel"); + group_display_button_label.set_text (_("New Mix Group")); + group_display_button.add (group_display_button_label); + group_display_button.set_name ("NewMixGroup"); + ARDOUR_UI::instance()->tooltips().set_tip (group_display_button, _("add a new mix group")); + group_display_button.signal_clicked().connect (mem_fun (*this, &Mixer_UI::new_mix_group)); + + group_display_vbox.pack_start (group_display_button, false, false); group_display_vbox.pack_start (group_display_scroller, true, true); @@ -162,9 +176,6 @@ Mixer_UI::Mixer_UI (AudioEngine& eng) signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), static_cast<Gtk::Window *>(this))); add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK); - group_display.signal_button_press_event().connect (mem_fun (*this, &Mixer_UI::group_display_button_press)); - group_display.get_selection()->signal_changed().connect (mem_fun (*this, &Mixer_UI::group_display_selection_changed)); - _plugin_selector = new PluginSelector (PluginManager::the_manager()); signal_configure_event().connect (mem_fun (*ARDOUR_UI::instance(), &ARDOUR_UI::configure_handler)); @@ -720,26 +731,28 @@ Mixer_UI::group_display_button_press (GdkEventButton* ev) switch (GPOINTER_TO_UINT (column->get_data (X_("colnum")))) { case 0: + if (Keyboard::is_edit_event (ev)) { + // RouteGroup* group = (RouteGroup *) group_display.row(row).get_data (); + // edit_mix_group (group); + + } else { + /* allow regular select to occur */ + return false; + } + break; + + case 1: /* active column click */ if ((iter = group_display_model->get_iter (path))) { /* path points to a valid node */ if ((group = (*iter)[group_display_columns.group]) != 0) { group->set_active (!group->is_active (), this); + (*iter)[group_display_columns.active] = group->is_active (); } } break; - case 1: - if (Keyboard::is_edit_event (ev)) { - // RouteGroup* group = (RouteGroup *) group_display.row(row).get_data (); - // edit_mix_group (group); - - } else { - /* allow regular select to occur */ - return false; - } - break; } return true; |