*** route_group_dialog.cc.old	2009-06-27 14:17:12.000000000 +0200
--- route_group_dialog.cc	2009-06-28 22:53:17.000000000 +0200
***************
*** 1,26 ****
  #include <gtkmm/stock.h>
  #include "ardour/route_group.h"
  #include "route_group_dialog.h"
  #include "i18n.h"
  
  using namespace Gtk;
  using namespace ARDOUR;
  
  RouteGroupDialog::RouteGroupDialog (RouteGroup* g, StockID const & s)
! 	: Dialog (_("Route group")),
! 	  _group (g),
! 	  _active (_("Active")),
! 	  _gain (_("Gain")),
! 	  _relative (_("Relative")),
! 	  _mute (_("Muting")),
! 	  _solo (_("Soloing")),
! 	  _rec_enable (_("Record enable")),
! 	  _select (_("Selection")),
! 	  _edit (_("Editing"))
  {
  	_name.set_text (_group->name ());
! 	_active.set_active (_group->is_active ());
  
  	_gain.set_active (_group->property (RouteGroup::Gain));
  	_relative.set_active (_group->is_relative());
  	_mute.set_active (_group->property (RouteGroup::Mute));
--- 1,65 ----
+ #include <gtkmm/table.h>
  #include <gtkmm/stock.h>
+ #include <gtkmm2ext/window_title.h>
+ 
  #include "ardour/route_group.h"
+ 
  #include "route_group_dialog.h"
+ 
  #include "i18n.h"
  
  using namespace Gtk;
+ using namespace Gtkmm2ext;
  using namespace ARDOUR;
  
  RouteGroupDialog::RouteGroupDialog (RouteGroup* g, StockID const & s)
! 	: ArdourDialog (X_("route group dialog"))
! 	, _group (g)
! 	, _active (_("Active"))
! 	, _gain (_("Gain"))
! 	, _relative (_("Relative"))
! 	, _mute (_("Muting"))
! 	, _solo (_("Soloing"))
! 	, _rec_enable (_("Record enable"))
! 	, _select (_("Selection"))
! 	, _edit (_("Editing"))
  {
+ 	set_modal (true);
+ 	set_skip_taskbar_hint (true);
+ 	set_resizable (false);
+ 	set_position (Gtk::WIN_POS_MOUSE);
+ 	set_name (N_("RouteGroupDialog"));
+ 
+ 	WindowTitle title(Glib::get_application_name());
+ 	title += _("Route group");
+ 	set_title(title.get_string());
+ 
+ 	VBox* vbox = manage (new VBox);
+ 	Gtk::Label* l;
+ 
+ 	get_vbox()->set_spacing (4);
+ 
+ 	vbox->set_spacing (18);
+ 	vbox->set_border_width (5);
+ 
+ 	HBox* hbox = manage (new HBox);
+ 	hbox->set_spacing (6);
+ 	l = manage (new Label (_("Name:"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false ));
  	_name.set_text (_group->name ());
! 	hbox->pack_start (*l, false, true);
! 	hbox->pack_start (_name, true, true);
! 
! 	vbox->pack_start (*hbox, false, true);
! 
  
+ 	VBox* options_box = manage (new VBox);
+ 	options_box->set_spacing (6);
+ 
+ 	l = manage (new Label (_("<b>Sharing</b>"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false ));
+ 	l->set_use_markup ();
+ 	options_box->pack_start (*l, false, true);
+ 
+ 	_active.set_active (_group->is_active ());
  	_gain.set_active (_group->property (RouteGroup::Gain));
  	_relative.set_active (_group->is_relative());
  	_mute.set_active (_group->property (RouteGroup::Mute));
***************
*** 28,58 ****
  	_rec_enable.set_active (_group->property (RouteGroup::RecEnable));
  	_select.set_active (_group->property (RouteGroup::Select));
  	_edit.set_active (_group->property (RouteGroup::Edit));
  	
! 	HBox* h = manage (new HBox);
! 	h->pack_start (*manage (new Label (_("Name:"))));
! 	h->pack_start (_name);
! 
! 	get_vbox()->pack_start (*h);
! 	get_vbox()->pack_start (_active);
! 	get_vbox()->pack_start (_gain);
! 
! 	h = manage (new HBox);
! 	h->pack_start (_relative, PACK_EXPAND_PADDING);
! 	get_vbox()->pack_start (*h);
! 
! 	get_vbox()->pack_start (_mute);
! 	get_vbox()->pack_start (_solo);
! 	get_vbox()->pack_start (_rec_enable);
! 	get_vbox()->pack_start (_select);
! 	get_vbox()->pack_start (_edit);
  
! 	get_vbox()->set_border_width (8);
  
  	add_button (Stock::CANCEL, RESPONSE_CANCEL);
  	add_button (s, RESPONSE_OK);
  
! 	show_all ();
  }
  
  int
--- 67,108 ----
  	_rec_enable.set_active (_group->property (RouteGroup::RecEnable));
  	_select.set_active (_group->property (RouteGroup::Select));
  	_edit.set_active (_group->property (RouteGroup::Edit));
+ 
+ 	gain_toggled ();
  	
! 	Table* table = manage (new Table (8, 3, false));
! 	table->set_row_spacings	(6);
! 
! 	l = manage (new Label ("", Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false));
! 	l->set_padding (8, 0);
! 	table->attach (*l, 0, 1, 0, 8, Gtk::FILL, Gtk::FILL, 0, 0);
  
! 	table->attach (_active, 1, 3, 0, 1, Gtk::FILL, Gtk::FILL, 0, 0);
! 	table->attach (_gain, 1, 3, 1, 2, Gtk::FILL, Gtk::FILL, 0, 0);
! 
! 	l = manage (new Label ("", Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false));
! 	l->set_padding (0, 0);
! 	table->attach (*l, 1, 2, 2, 3, Gtk::FILL, Gtk::FILL, 0, 0);
! 	table->attach (_relative, 2, 3, 2, 3, Gtk::FILL, Gtk::FILL, 0, 0);
! 
! 	table->attach (_mute, 1, 3, 3, 4, Gtk::FILL, Gtk::FILL, 0, 0);
! 	table->attach (_solo, 1, 3, 4, 5, Gtk::FILL, Gtk::FILL, 0, 0);
! 	table->attach (_rec_enable, 1, 3, 5, 6, Gtk::FILL, Gtk::FILL, 0, 0);
! 	table->attach (_select, 1, 3, 6, 7, Gtk::FILL, Gtk::FILL, 0, 0);
! 	table->attach (_edit, 1, 3, 7, 8, Gtk::FILL, Gtk::FILL, 0, 0);
! 
! 
! 	options_box->pack_start (*table, false, true);
! 	vbox->pack_start (*options_box, false, true);
! 
! 	get_vbox()->pack_start (*vbox, false, false);
! 
! 	_gain.signal_toggled().connect(mem_fun (*this, &RouteGroupDialog::gain_toggled));
  
  	add_button (Stock::CANCEL, RESPONSE_CANCEL);
  	add_button (s, RESPONSE_OK);
  
! 	show_all_children ();
  }
  
  int
***************
*** 75,77 ****
--- 125,137 ----
  
  	return r;
  }
+ 
+ void
+ RouteGroupDialog::gain_toggled ()
+ {
+ 	if (_gain.get_active ()) {
+ 		_relative.set_sensitive (true);
+ 	} else {
+ 		_relative.set_sensitive (false);
+ 	}
+ }

*** route_group_dialog.h.old	2009-06-28 21:51:46.000000000 +0200
--- route_group_dialog.h	2009-06-28 22:36:48.000000000 +0200
***************
*** 5,11 ****
  #include <gtkmm/entry.h>
  #include <gtkmm/checkbutton.h>
  
! class RouteGroupDialog : public Gtk::Dialog
  {
  public:
  	RouteGroupDialog (ARDOUR::RouteGroup *, Gtk::StockID const &);
--- 5,13 ----
  #include <gtkmm/entry.h>
  #include <gtkmm/checkbutton.h>
  
! #include "ardour_dialog.h"
! 
! class RouteGroupDialog : public ArdourDialog
  {
  public:
  	RouteGroupDialog (ARDOUR::RouteGroup *, Gtk::StockID const &);
***************
*** 14,19 ****
--- 16,22 ----
  
  private:	
  	ARDOUR::RouteGroup* _group;
+ 
  	Gtk::Entry _name;
  	Gtk::CheckButton _active;
  	Gtk::CheckButton _gain;
***************
*** 23,28 ****
--- 26,33 ----
  	Gtk::CheckButton _rec_enable;
  	Gtk::CheckButton _select;
  	Gtk::CheckButton _edit;
+ 
+ 	void gain_toggled ();
  };
  
  
