+ group_display.set_rules_hint (true);
+
+ /* name is directly editable */
+
+ CellRendererText* name_cell = dynamic_cast<CellRendererText*>(group_display.get_column_cell_renderer (0));
+ name_cell->property_editable() = true;
+ name_cell->signal_edited().connect (mem_fun (*this, &Mixer_UI::mix_group_name_edit));
+
+ /* use checkbox for the active column */
+
+ CellRendererToggle* active_cell = dynamic_cast<CellRendererToggle*>(group_display.get_column_cell_renderer (1));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ /* use checkbox for the visible column */
+
+ active_cell = dynamic_cast<CellRendererToggle*>(group_display.get_column_cell_renderer (2));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ group_model->signal_row_changed().connect (mem_fun (*this, &Mixer_UI::mix_group_row_change));
+
+ group_display.signal_button_press_event().connect (mem_fun (*this, &Mixer_UI::group_display_button_press), false);
+
+ group_display_scroller.add (group_display);