6a87ea3c9505965ee86bf404b9eeada0e865a050
[ardour.git] / gtk2_ardour / route_group_dialog.cc
1 #include <gtkmm/stock.h>
2 #include "ardour/route_group.h"
3 #include "route_group_dialog.h"
4 #include "i18n.h"
5
6 using namespace Gtk;
7 using namespace ARDOUR;
8
9 RouteGroupDialog::RouteGroupDialog (RouteGroup* g, StockID const & s)
10         : Dialog (_("Route group")),
11           _group (g),
12           _active (_("Active")),
13           _gain (_("Gain")),
14           _relative (_("Relative")),
15           _mute (_("Muting")),
16           _solo (_("Soloing")),
17           _rec_enable (_("Record enable")),
18           _select (_("Selection")),
19           _edit (_("Editing"))
20 {
21         _name.set_text (_group->name ());
22         _active.set_active (_group->is_active ());
23
24         _gain.set_active (_group->property (RouteGroup::Gain));
25         _relative.set_active (_group->is_relative());
26         _mute.set_active (_group->property (RouteGroup::Mute));
27         _solo.set_active (_group->property (RouteGroup::Solo));
28         _rec_enable.set_active (_group->property (RouteGroup::RecEnable));
29         _select.set_active (_group->property (RouteGroup::Select));
30         _edit.set_active (_group->property (RouteGroup::Edit));
31         
32         HBox* h = manage (new HBox);
33         h->pack_start (*manage (new Label (_("Name:"))));
34         h->pack_start (_name);
35
36         get_vbox()->pack_start (*h);
37         get_vbox()->pack_start (_active);
38         get_vbox()->pack_start (_gain);
39
40         h = manage (new HBox);
41         h->pack_start (_relative, PACK_EXPAND_PADDING);
42         get_vbox()->pack_start (*h);
43
44         get_vbox()->pack_start (_mute);
45         get_vbox()->pack_start (_solo);
46         get_vbox()->pack_start (_rec_enable);
47         get_vbox()->pack_start (_select);
48         get_vbox()->pack_start (_edit);
49
50         get_vbox()->set_border_width (8);
51
52         add_button (Stock::CANCEL, RESPONSE_CANCEL);
53         add_button (s, RESPONSE_OK);
54
55         show_all ();
56 }
57
58 int
59 RouteGroupDialog::do_run ()
60 {
61         int const r = run ();
62
63         if (r == Gtk::RESPONSE_OK) {
64                 _group->set_name (_name.get_text ());
65                 _group->set_active (_active.get_active (), this);
66
67                 _group->set_property (RouteGroup::Gain, _gain.get_active ());
68                 _group->set_property (RouteGroup::Mute, _mute.get_active ());
69                 _group->set_property (RouteGroup::Solo, _solo.get_active ());
70                 _group->set_property (RouteGroup::RecEnable, _rec_enable.get_active ());
71                 _group->set_property (RouteGroup::Select, _select.get_active ());
72                 _group->set_property (RouteGroup::Edit, _edit.get_active ());
73                 _group->set_relative (_relative.get_active(), this);
74         }
75
76         return r;
77 }