Split TimeFXDialog from Editor.
[ardour.git] / gtk2_ardour / editor_timefx.cc
index 7552dfe8f7bdd5d5102cd6468f0b52a51dcc82dd..79266c2285cdf6cc8c596391e8efe1986a92d8fe 100644 (file)
 #include <gtkmm2ext/window_title.h>
 #include <gtkmm2ext/utils.h>
 
-#include "editor.h"
-#include "audio_time_axis.h"
 #include "audio_region_view.h"
+#include "audio_time_axis.h"
+#include "editor.h"
 #include "region_selection.h"
+#include "time_fx_dialog.h"
 
 #include "ardour/session.h"
 #include "ardour/region.h"
@@ -59,132 +60,6 @@ using namespace sigc;
 using namespace Gtk;
 using namespace Gtkmm2ext;
 
-Editor::TimeFXDialog::TimeFXDialog (Editor& e, bool pitch)
-       : ArdourDialog (X_("time fx dialog")),
-         editor (e),
-         pitching (pitch),
-         pitch_octave_adjustment (0.0, -4.0, 4.0, 1, 2.0),
-         pitch_semitone_adjustment (0.0, -12.0, 12.0, 1.0, 4.0),
-         pitch_cent_adjustment (0.0, -499.0, 500.0, 5.0, 15.0),
-         pitch_octave_spinner (pitch_octave_adjustment),
-         pitch_semitone_spinner (pitch_semitone_adjustment),
-         pitch_cent_spinner (pitch_cent_adjustment),
-         quick_button (_("Quick but Ugly")),
-         antialias_button (_("Skip Anti-aliasing")),
-         stretch_opts_label (_("Contents:")),
-         precise_button (_("Strict Linear")),
-         preserve_formants_button(_("Preserve Formants"))
-{
-       set_modal (true);
-       set_position (Gtk::WIN_POS_MOUSE);
-       set_name (N_("TimeFXDialog"));
-
-       WindowTitle title(Glib::get_application_name());
-       if (pitching) {
-               title += _("Pitch Shift");
-       } else {
-               title += _("Time Stretch");
-       }
-       set_title(title.get_string());
-
-       cancel_button = add_button (_("Cancel"), Gtk::RESPONSE_CANCEL);
-
-       get_vbox()->set_spacing (5);
-       get_vbox()->set_border_width (12);
-
-       if (pitching) {
-
-               upper_button_box.set_spacing (5);
-               upper_button_box.set_border_width (5);
-               
-               Gtk::Label* l;
-
-               l = manage (new Label (_("Octaves")));
-               upper_button_box.pack_start (*l, false, false);
-               upper_button_box.pack_start (pitch_octave_spinner, false, false);
-
-               l = manage (new Label (_("Semitones (12TET)")));
-               upper_button_box.pack_start (*l, false, false);
-               upper_button_box.pack_start (pitch_semitone_spinner, false, false);
-
-               l = manage (new Label (_("Cents")));
-               upper_button_box.pack_start (*l, false, false);
-               upper_button_box.pack_start (pitch_cent_spinner, false, false);
-
-               pitch_cent_spinner.set_digits (1);
-
-               upper_button_box.pack_start (preserve_formants_button, false, false);
-
-
-               add_button (_("Shift"), Gtk::RESPONSE_ACCEPT);
-
-               get_vbox()->pack_start (upper_button_box, false, false);
-
-       } else {
-
-#ifdef USE_RUBBERBAND
-               opts_box.set_spacing (5);
-               opts_box.set_border_width (5);
-               vector<string> strings;
-
-               set_popdown_strings (stretch_opts_selector, editor.rb_opt_strings);
-               /* set default */
-               stretch_opts_selector.set_active_text (editor.rb_opt_strings[4]);
-
-               opts_box.pack_start (precise_button, false, false);
-               opts_box.pack_start (stretch_opts_label, false, false);
-               opts_box.pack_start (stretch_opts_selector, false, false);
-
-               get_vbox()->pack_start (opts_box, false, false);
-
-#else
-               upper_button_box.set_homogeneous (true);
-               upper_button_box.set_spacing (5);
-               upper_button_box.set_border_width (5);
-
-               upper_button_box.pack_start (quick_button, true, true);
-               upper_button_box.pack_start (antialias_button, true, true);
-
-               quick_button.set_name (N_("TimeFXButton"));
-               antialias_button.set_name (N_("TimeFXButton"));
-
-               get_vbox()->pack_start (upper_button_box, false, false);
-
-#endif 
-               add_button (_("Stretch/Shrink"), Gtk::RESPONSE_ACCEPT);
-       }
-
-       get_vbox()->pack_start (progress_bar);
-
-       progress_bar.set_name (N_("TimeFXProgress"));
-
-       show_all_children ();
-}
-
-gint
-Editor::TimeFXDialog::update_progress ()
-{
-       progress_bar.set_fraction (request.progress);
-       return !request.done;
-}
-
-void
-Editor::TimeFXDialog::cancel_in_progress ()
-{
-       status = -2;
-       request.cancel = true;
-       first_cancel.disconnect();
-}
-
-gint
-Editor::TimeFXDialog::delete_in_progress (GdkEventAny* ev)
-{
-       status = -2;
-       request.cancel = true;
-       first_delete.disconnect();
-       return TRUE;
-}
-
 int
 Editor::time_stretch (RegionSelection& regions, float fraction)
 {