diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-06-25 15:23:05 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-06-25 15:23:05 -0400 |
commit | c381f5b653685457123070e54f958fa71e83e327 (patch) | |
tree | 3121e4a0a2869314a62886e30e755e2ac5b68b2e /gtk2_ardour/ruler_dialog.cc | |
parent | 4b515c178c30426ca0b96ea76122d2c8de4e6791 (diff) |
new ruler dialog class
Diffstat (limited to 'gtk2_ardour/ruler_dialog.cc')
-rw-r--r-- | gtk2_ardour/ruler_dialog.cc | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/gtk2_ardour/ruler_dialog.cc b/gtk2_ardour/ruler_dialog.cc new file mode 100644 index 0000000000..70f39c51b5 --- /dev/null +++ b/gtk2_ardour/ruler_dialog.cc @@ -0,0 +1,86 @@ +/* + Copyright (C) 2014 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. + +*/ + +#include <gtkmm/stock.h> + +#include "actions.h" +#include "ruler_dialog.h" + +#include "i18n.h" + +RulerDialog::RulerDialog () + : ArdourDialog (_("Rulers")) +{ + add_button (Gtk::Stock::OK, Gtk::RESPONSE_ACCEPT); + + get_vbox()->set_spacing (6); + + get_vbox()->pack_start (samples_button); + get_vbox()->pack_start (timecode_button); + get_vbox()->pack_start (minsec_button); + get_vbox()->pack_start (bbt_button); + get_vbox()->pack_start (tempo_button); + get_vbox()->pack_start (meter_button); + get_vbox()->pack_start (loop_punch_button); + get_vbox()->pack_start (range_button); + get_vbox()->pack_start (mark_button); + get_vbox()->pack_start (cdmark_button); + + get_vbox()->show_all (); + + connect_action (samples_button, "samples-ruler"); + connect_action (timecode_button, "timecode-ruler"); + connect_action (minsec_button, "minsec-ruler"); + connect_action (bbt_button, "bbt-ruler"); + connect_action (tempo_button, "tempo-ruler"); + connect_action (meter_button, "meter-ruler"); + connect_action (loop_punch_button, "loop-punch-ruler"); + connect_action (range_button, "range-ruler"); + connect_action (mark_button, "marker-ruler"); + connect_action (cdmark_button, "cd-marker-ruler"); +} + +RulerDialog::~RulerDialog () +{ +} + +void +RulerDialog::on_response (int) +{ + hide (); +} + +void +RulerDialog::connect_action (Gtk::CheckButton& button, std::string const &action_name_part) +{ + std::string action_name = "toggle-"; + action_name += action_name_part; + + Glib::RefPtr<Gtk::Action> act = ActionManager::get_action ("Rulers", action_name.c_str()); + if (!act) { + return; + } + + Glib::RefPtr<Gtk::ToggleAction> tact = Glib::RefPtr<Gtk::ToggleAction>::cast_dynamic (act); + if (!tact) { + return; + } + + tact->connect_proxy (button); +} |