summaryrefslogtreecommitdiff
path: root/gtk2_ardour/add_route_dialog.cc
diff options
context:
space:
mode:
authorTaybin Rutkin <taybin@taybin.com>2005-09-25 18:42:24 +0000
committerTaybin Rutkin <taybin@taybin.com>2005-09-25 18:42:24 +0000
commit209d967b1bb80a9735d690d8f4f0455ecb9970ca (patch)
tree9d76ddcd7c1ac9d91bb2b1a33d31b66ce4ded5de /gtk2_ardour/add_route_dialog.cc
parente4b9aed743fc765219ac775905a221c017c88fba (diff)
Initial import of gtk2_ardour.
git-svn-id: svn://localhost/trunk/ardour2@24 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/add_route_dialog.cc')
-rw-r--r--gtk2_ardour/add_route_dialog.cc148
1 files changed, 148 insertions, 0 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc
new file mode 100644
index 0000000000..669248a371
--- /dev/null
+++ b/gtk2_ardour/add_route_dialog.cc
@@ -0,0 +1,148 @@
+/*
+ Copyright (C) 2003 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ $Id$
+*/
+
+#include <cstdio>
+#include <cmath>
+
+#include <sigc++/bind.h>
+
+#include <gtkmmext/utils.h>
+
+#include "utils.h"
+#include "add_route_dialog.h"
+#include "i18n.h"
+
+using namespace Gtk;
+using namespace Gtkmmext;
+using namespace SigC;
+
+extern std::vector<string> channel_combo_strings;
+
+AddRouteDialog::AddRouteDialog ()
+ : ArdourDialog ("add route dialog"),
+ ok_button (_("OK")),
+ cancel_button (_("Cancel")),
+ track_button (_("Tracks")),
+ bus_button (_("Busses")),
+ routes_adjustment (1, 1, 32, 1, 4),
+ routes_spinner (routes_adjustment)
+{
+ set_name ("AddRouteDialog");
+ set_title (_("ardour: add track/bus"));
+ set_wmclass (X_("ardour_add_track_bus"), "Ardour");
+ set_position (GTK_WIN_POS_MOUSE);
+ set_keyboard_input (true);
+
+ name_template_entry.set_name ("AddRouteDialogNameTemplateEntry");
+ track_button.set_name ("AddRouteDialogRadioButton");
+ bus_button.set_name ("AddRouteDialogRadioButton");
+ ok_button.set_name ("AddRouteDialogButton");
+ cancel_button.set_name ("AddRouteDialogButton");
+ routes_spinner.set_name ("AddRouteDialogSpinner");
+
+ bus_button.set_group (track_button.group());
+ track_button.set_active (true);
+
+ HBox *hbrb = manage (new HBox);
+
+ hbrb->set_spacing (6);
+ hbrb->pack_start (*(manage (new Label (_("Add")))), false, false);
+ hbrb->pack_start (routes_spinner, false, false);
+ hbrb->pack_start (track_button, false, false);
+ hbrb->pack_start (bus_button, false, false);
+
+ channel_combo.set_popdown_strings (channel_combo_strings);
+ channel_combo.set_value_in_list (true, false);
+ channel_combo.set_name (X_("ChannelCountSelector"));
+ channel_combo.get_entry()->set_name (X_("ChannelCountSelector"));
+ channel_combo.get_popwin()->set_name (X_("ChannelCountSelector"));
+
+ VBox *vbcc = manage (new VBox);
+
+ vbcc->set_spacing (6);
+ vbcc->pack_start (*(manage (new Label ("Channel configuration"))), false, false);
+ vbcc->pack_start (channel_combo, false, false);
+
+#if NOT_USEFUL_YET
+ HBox *hbnt = manage (new HBox);
+
+ hbnt->pack_start (*(manage (new Label (_("Name (template)")))), false, false);
+ hbnt->pack_start (name_template_entry, true, true);
+#endif
+
+ HBox* hbbut = manage (new HBox);
+
+ set_usize_to_display_given_text (ok_button, _("Cancel"), 20, 15); // this is cancel on purpose
+ set_usize_to_display_given_text (cancel_button, _("Cancel"), 20, 15);
+
+ hbbut->set_homogeneous (true);
+ hbbut->set_spacing (6);
+ hbbut->pack_end (cancel_button, false, false);
+ hbbut->pack_end (ok_button, false, false);
+
+ HBox* hbbutouter = manage (new HBox);
+ hbbutouter->set_border_width (12);
+ hbbutouter->pack_end (*hbbut, false, false);
+
+ VBox* vb2 = manage (new VBox);
+
+ vb2->set_border_width (12);
+ vb2->set_spacing (6);
+ vb2->pack_start (*hbrb, false, false);
+ vb2->pack_start (*vbcc, false, false);
+#if NOT_USEFUL_YET
+ vb2->pack_start (*hbnt, false, false);
+#endif
+ vb2->pack_start (*hbbutouter, false, false);
+
+ add (*vb2);
+
+ delete_event.connect (slot (*this, &ArdourDialog::wm_close_event));
+ ok_button.clicked.connect (bind (slot (*this, &ArdourDialog::stop), 0));
+ cancel_button.clicked.connect (bind (slot (*this, &ArdourDialog::stop), 1));
+}
+
+AddRouteDialog::~AddRouteDialog ()
+{
+}
+
+bool
+AddRouteDialog::track ()
+{
+ return track_button.get_active ();
+}
+
+string
+AddRouteDialog::name_template ()
+{
+ return name_template_entry.get_text ();
+}
+
+int
+AddRouteDialog::count ()
+{
+ return (int) floor (routes_adjustment.get_value ());
+}
+
+int
+AddRouteDialog::channels ()
+{
+ return channel_combo_get_channel_count (channel_combo);
+}