all new implementation of audio clocks, with entirely new editing model. not entirely...
[ardour.git] / gtk2_ardour / insert_time_dialog.cc
index 1d62c369941a3afd705d514f27e3e0fe9acea18d..ae0e9a1f8ff05fa83d530e212655a708f097da09 100644 (file)
@@ -20,6 +20,7 @@
 #include <gtkmm/table.h>
 #include <gtkmm/comboboxtext.h>
 #include <gtkmm/stock.h>
+#include <gtkmm/alignment.h>
 #include "insert_time_dialog.h"
 #include "audio_clock.h"
 #include "i18n.h"
@@ -30,11 +31,11 @@ using namespace Editing;
 InsertTimeDialog::InsertTimeDialog (PublicEditor& e)
        : ArdourDialog (_("Insert Time"))
        , _editor (e)
-       , _clock ("insertTimeClock", true, X_("InsertTimeClock"), true, false, true, true)
+       , _clock ("insertTimeClock", true, "", true, false, true, false)
 {
        set_session (_editor.session ());
-       
-       nframes64_t const pos = _editor.get_preferred_edit_position ();
+
+       framepos_t const pos = _editor.get_preferred_edit_position ();
 
        get_vbox()->set_border_width (12);
        get_vbox()->set_spacing (4);
@@ -61,16 +62,32 @@ InsertTimeDialog::InsertTimeDialog (PublicEditor& e)
 
        get_vbox()->pack_start (*table);
 
+       _all_playlists.set_label (_("Insert time on all the track's playlists"));
+       get_vbox()->pack_start (_all_playlists);
+
        _move_glued.set_label (_("Move glued regions"));
        get_vbox()->pack_start (_move_glued);
        _move_markers.set_label (_("Move markers"));
        get_vbox()->pack_start (_move_markers);
+       _move_markers.signal_toggled().connect (sigc::mem_fun (*this, &InsertTimeDialog::move_markers_toggled));
+       _move_glued_markers.set_label (_("Move glued markers"));
+       Alignment* indent = manage (new Alignment);
+       indent->set_padding (0, 0, 12, 0);
+       indent->add (_move_glued_markers);
+       get_vbox()->pack_start (*indent);
+       _move_locked_markers.set_label (_("Move locked markers"));
+       indent = manage (new Alignment);
+       indent->set_padding (0, 0, 12, 0);
+       indent->add (_move_locked_markers);
+       get_vbox()->pack_start (*indent);
        _move_tempos.set_label (_("Move tempo and meter changes"));
        get_vbox()->pack_start (_move_tempos);
 
        add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
        add_button (_("Insert time"), Gtk::RESPONSE_OK);
        show_all ();
+
+       move_markers_toggled ();
 }
 
 InsertTimeOption
@@ -94,6 +111,12 @@ InsertTimeDialog::intersected_region_action ()
        return opt;
 }
 
+bool
+InsertTimeDialog::all_playlists () const
+{
+       return _all_playlists.get_active ();
+}
+
 bool
 InsertTimeDialog::move_glued () const
 {
@@ -112,8 +135,27 @@ InsertTimeDialog::move_markers () const
        return _move_markers.get_active ();
 }
 
-nframes64_t
+bool
+InsertTimeDialog::move_glued_markers () const
+{
+       return _move_glued_markers.get_active ();
+}
+
+bool
+InsertTimeDialog::move_locked_markers () const
+{
+       return _move_locked_markers.get_active ();
+}
+
+framepos_t
 InsertTimeDialog::distance () const
 {
        return _clock.current_duration (_editor.get_preferred_edit_position ());
 }
+
+void
+InsertTimeDialog::move_markers_toggled ()
+{
+       _move_glued_markers.set_sensitive (_move_markers.get_active ());
+       _move_locked_markers.set_sensitive (_move_markers.get_active ());
+}