2 Copyright (C) 2003 Paul Davis
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 #include <sigc++/bind.h>
26 #include <gtkmm2ext/utils.h>
29 #include "add_route_dialog.h"
33 using namespace Gtkmm2ext;
37 extern std::vector<string> channel_combo_strings;
39 AddRouteDialog::AddRouteDialog ()
40 : Dialog (_("ardour: add track/bus")),
41 track_button (_("Tracks")),
42 bus_button (_("Busses")),
43 routes_adjustment (1, 1, 32, 1, 4),
44 routes_spinner (routes_adjustment)
46 set_name ("AddRouteDialog");
47 set_wmclass (X_("ardour_add_track_bus"), "Ardour");
48 set_position (Gtk::WIN_POS_MOUSE);
50 name_template_entry.set_name ("AddRouteDialogNameTemplateEntry");
51 track_button.set_name ("AddRouteDialogRadioButton");
52 bus_button.set_name ("AddRouteDialogRadioButton");
53 routes_spinner.set_name ("AddRouteDialogSpinner");
55 RadioButton::Group g = track_button.get_group();
56 bus_button.set_group (g);
57 track_button.set_active (true);
59 HBox *hbrb = manage (new HBox);
61 hbrb->set_spacing (6);
62 hbrb->pack_start (*(manage (new Label (_("Add")))), false, false);
63 hbrb->pack_start (routes_spinner, false, false);
64 hbrb->pack_start (track_button, false, false);
65 hbrb->pack_start (bus_button, false, false);
67 set_popdown_strings (channel_combo, channel_combo_strings);
68 channel_combo.set_name (X_("ChannelCountSelector"));
70 VBox *vbcc = manage (new VBox);
72 vbcc->set_spacing (6);
73 vbcc->pack_start (*(manage (new Label ("Channel configuration"))), false, false);
74 vbcc->pack_start (channel_combo, false, false);
77 HBox *hbnt = manage (new HBox);
79 hbnt->pack_start (*(manage (new Label (_("Name (template)")))), false, false);
80 hbnt->pack_start (name_template_entry, true, true);
83 VBox* vb2 = manage (new VBox);
85 vb2->set_border_width (12);
87 vb2->pack_start (*hbrb, false, false);
88 vb2->pack_start (*vbcc, false, false);
90 vb2->pack_start (*hbnt, false, false);
93 get_vbox()->pack_start (*hbrb, false, false);
94 get_vbox()->pack_start (*vbcc, false, false);
96 get_vbox()->pack_start (*hbnt, false, false);
99 add_button (Stock::OK, RESPONSE_ACCEPT);
100 add_button (Stock::CANCEL, RESPONSE_CANCEL);
103 AddRouteDialog::~AddRouteDialog ()
108 AddRouteDialog::track ()
110 return track_button.get_active ();
114 AddRouteDialog::name_template ()
116 return name_template_entry.get_text ();
120 AddRouteDialog::count ()
122 return (int) floor (routes_adjustment.get_value ());
126 AddRouteDialog::channels ()
128 return channel_combo_get_channel_count (channel_combo);