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 + +#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 act = ActionManager::get_action ("Rulers", action_name.c_str()); + if (!act) { + return; + } + + Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); + if (!tact) { + return; + } + + tact->connect_proxy (button); +} diff --git a/gtk2_ardour/ruler_dialog.h b/gtk2_ardour/ruler_dialog.h new file mode 100644 index 0000000000..a833905e03 --- /dev/null +++ b/gtk2_ardour/ruler_dialog.h @@ -0,0 +1,53 @@ +/* + 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. + +*/ + +#ifndef __gtk_ardour_ruler_h__ +#define __gtk_ardour_ruler _h__ + +#include +#include + +#include "ardour_dialog.h" + + +class Editor; + +class RulerDialog : public ArdourDialog +{ + public: + RulerDialog (); + ~RulerDialog (); + + private: + Gtk::CheckButton samples_button; + Gtk::CheckButton timecode_button; + Gtk::CheckButton minsec_button; + Gtk::CheckButton bbt_button; + Gtk::CheckButton tempo_button; + Gtk::CheckButton meter_button; + Gtk::CheckButton loop_punch_button; + Gtk::CheckButton range_button; + Gtk::CheckButton mark_button; + Gtk::CheckButton cdmark_button; + + void connect_action (Gtk::CheckButton& button, std::string const &action_name_part); + void on_response (int); +}; + +#endif /* __gtk_ardour_add_route_dialog_h__ */