slowly fixing up ArdourDialog nonsense
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 27 Nov 2005 21:17:41 +0000 (21:17 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Sun, 27 Nov 2005 21:17:41 +0000 (21:17 +0000)
git-svn-id: svn://localhost/trunk/ardour2@132 d708f5d6-7413-0410-9779-e7cbd77b26cf

16 files changed:
gtk2_ardour/add_route_dialog.cc
gtk2_ardour/add_route_dialog.h
gtk2_ardour/ardour_dialog.cc
gtk2_ardour/ardour_dialog.h
gtk2_ardour/ardour_message.cc
gtk2_ardour/ardour_message.h
gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui_dialogs.cc
gtk2_ardour/connection_editor.cc
gtk2_ardour/crossfade_edit.cc
gtk2_ardour/editor.cc
gtk2_ardour/editor_ops.cc
gtk2_ardour/editor_tempodisplay.cc
gtk2_ardour/editor_timefx.cc
gtk2_ardour/redirect_box.cc
gtk2_ardour/tempo_dialog.cc

index b70c76b3ca6955ae348bcea231497cdc8f07a73a..1126bbe53a3dc1a0b58f9f8fcb6fbe796dd77a27 100644 (file)
 using namespace Gtk;
 using namespace Gtkmm2ext;
 using namespace sigc;
+using namespace std;
 
 extern std::vector<string> channel_combo_strings;
 
 AddRouteDialog::AddRouteDialog ()
-       : ArdourDialog ("add route dialog"),
-         ok_button (_("OK")),
-         cancel_button (_("Cancel")),
+       : Dialog (_("ardour: add track/bus")),
          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");
        
        RadioButton::Group g = track_button.get_group();
@@ -85,20 +80,6 @@ AddRouteDialog::AddRouteDialog ()
        hbnt->pack_start (name_template_entry, true, true);
 #endif
 
-       HBox* hbbut = manage (new HBox);
-
-       set_size_request_to_display_given_text (ok_button, _("Cancel"), 20, 15); // this is cancel on purpose
-       set_size_request_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);
@@ -108,13 +89,15 @@ AddRouteDialog::AddRouteDialog ()
 #if NOT_USEFUL_YET
        vb2->pack_start (*hbnt, false, false);
 #endif
-       vb2->pack_start (*hbbutouter, false, false);
-
-       add (*vb2);
-
-       // signal_delete_event().connect (mem_fun(*this, &ArdourDialog::wm_close_event));
-       ok_button.signal_clicked().connect (bind (mem_fun(*this,  &ArdourDialog::stop), 0));
-       cancel_button.signal_clicked().connect (bind (mem_fun(*this, &ArdourDialog::stop), 1));
+       
+       get_vbox()->pack_start (*hbrb, false, false);
+       get_vbox()->pack_start (*vbcc, false, false);
+#if NOT_USEFUL_YET
+       get_vbox()->pack_start (*hbnt, false, false);
+#endif
+       
+       add_button (Stock::OK, RESPONSE_ACCEPT);
+       add_button (Stock::CANCEL, RESPONSE_CANCEL);
 }
 
 AddRouteDialog::~AddRouteDialog ()
index 6a2aea7871231f3fca5d201bfbd6db70dd665429..76481fe025af643f13f5f0e362ffce2aa96b1536 100644 (file)
@@ -4,6 +4,7 @@
 #include <string>
 
 #include <gtkmm/entry.h>
+#include <gtkmm/dialog.h>
 #include <gtkmm/radiobutton.h>
 #include <gtkmm/adjustment.h>
 #include <gtkmm/spinbutton.h>
@@ -12,9 +13,7 @@
 
 #include <gtkmm2ext/click_box.h>
 
-#include "ardour_dialog.h"
-
-class AddRouteDialog : public ArdourDialog
+class AddRouteDialog : public Gtk::Dialog
 {
   public:
        AddRouteDialog ();
@@ -25,9 +24,6 @@ class AddRouteDialog : public ArdourDialog
        int channels ();
        int count ();
 
-       Gtk::Button ok_button;
-       Gtk::Button cancel_button;
-
   private:
        Gtk::Entry name_template_entry;
        Gtk::RadioButton track_button;
index 030be0486e4bf3e11a66a0c9917e1dca55cffc29..22f3f260483089ac93c917f023a0fd752218e7bd 100644 (file)
 #include "ardour_ui.h"
 
 
-ArdourDialog::ArdourDialog (string name)
-       : Dialog (name)
+ArdourDialog::ArdourDialog (string title, bool modal)
+       : Dialog (title, modal)
 {
        session = 0;
-       kbd_input = false;
-       running = false;
-       _run_status = 0;
-       _within_hiding = false;
-       hide_on_stop = true;
 }
 
 ArdourDialog::~ArdourDialog ()
@@ -64,64 +59,5 @@ ArdourDialog::on_leave_notify_event (GdkEventCrossing *ev)
 void
 ArdourDialog::on_unmap ()
 {
-       _within_hiding = true;
-       _within_hiding = false;
        Dialog::on_unmap ();
 }
-
-void
-ArdourDialog::set_hide_on_stop (bool yn)
-{
-       hide_on_stop = yn;
-}
-
-void
-ArdourDialog::stop (int rr)
-{
-       if (hide_on_stop) {
-               hide_all ();
-       }
-
-       if (running) {
-               if (rr == 0) {
-                       response (GTK_RESPONSE_ACCEPT);
-               } else {
-                       response (GTK_RESPONSE_CANCEL);
-               }
-               running = false;
-       }
-}
-
-void
-ArdourDialog::run ()
-{
-       show_all ();
-
-       running = true;
-       switch (Dialog::run ()) {
-       case GTK_RESPONSE_ACCEPT:
-               _run_status = 0;
-               break;
-               
-       case GTK_RESPONSE_DELETE_EVENT:
-               _run_status = -1;
-               break;
-
-       default:
-               _run_status = -1;
-       }
-
-       hide_all ();
-}
-
-void
-ArdourDialog::set_keyboard_input (bool yn)
-{
-       kbd_input = yn;
-}
-
-int
-ArdourDialog::run_status ()
-{
-       return _run_status;
-}
index 9af434993acba57ebd331efac963fa03aa75c1e4..0b93dfb37b25b3d384c4d62fb896b2dc0b6aae4d 100644 (file)
@@ -36,17 +36,9 @@ namespace ARDOUR {
 class ArdourDialog : public Gtk::Dialog
 {
   public:
-       ArdourDialog (string name);
+       ArdourDialog (std::string title, bool modal = false);
        ~ArdourDialog();
 
-       bool within_hiding() const { return _within_hiding; }
-
-       void run ();
-       void stop (int);
-       void set_keyboard_input (bool yn);
-       void set_hide_on_stop (bool yn);
-       int  run_status();
-
        bool on_enter_notify_event (GdkEventCrossing*);
        bool on_leave_notify_event (GdkEventCrossing*);
        void on_unmap ();
@@ -60,15 +52,6 @@ class ArdourDialog : public Gtk::Dialog
        virtual void session_gone () {
                set_session (0);
        }
-
-       void quit ();
-
-  private:
-       int  _run_status;
-       bool _within_hiding;
-       bool kbd_input;
-       bool running;
-       bool hide_on_stop;
 };
 
 #endif // __ardour_dialog_h__
index f79defdf8abbb727cc1cb9b1fd389e70e67dcdca..48cfa80caffdcdfbf5744a952aae19babebe2dc5 100644 (file)
@@ -19,7 +19,7 @@
 
 */
 
-#include <gtkmm2ext/utils.h>
+#include <gtkmm/stock.h>
 
 #include "ardour_message.h"
 #include "i18n.h"
 using namespace std;
 using namespace Gtk;
 
-
 ArdourMessage::ArdourMessage (Gtk::Window* parent, 
                              string name, string msg, 
                              bool grab_focus, bool auto_run)
-       : ArdourDialog (name),
-         ok_button (_("OK"))
+       : ArdourDialog (name)
 {
-       set_keyboard_input (true);
-
        label.set_text (msg);
        label.set_alignment (0.5, 0.5);
        label.set_name (X_("PrompterLabel"));
-       
-       ok_button.set_name ("EditorGTKButton"); 
-       ok_button.signal_clicked().connect (bind (mem_fun(*this, &ArdourDialog::stop), 1));
-       
-       packer.set_spacing (10);
-       packer.set_border_width (10);
-       packer.pack_start (label);
-       packer.pack_start (ok_button);
+
+       get_vbox()->pack_start (label);
+
+       Button* ok_button = add_button (Stock::OK, RESPONSE_ACCEPT);
        
        set_name (X_("Prompter"));
        set_position (Gtk::WIN_POS_MOUSE);
        set_modal (true);
-       add (packer);
-       show_all ();
-       
-       signal_realize().connect (bind (sigc::ptr_fun (Gtkmm2ext::set_decoration), this, Gdk::WMDecoration (GDK_DECOR_BORDER|GDK_DECOR_RESIZEH)));
+       set_type_hint (Gdk::WINDOW_TYPE_HINT_MENU);
 
        if (grab_focus) {
-               ok_button.grab_focus ();
+               ok_button->grab_focus ();
        }
 
        if (parent) {
index f50ddc232d59e2bfaed4daec8ac4e5acd5e17390..a9ac02a5bc748a91e9004f5d2e8056b73ff982a2 100644 (file)
@@ -40,8 +40,6 @@ class ArdourMessage : public ArdourDialog
        ~ArdourMessage();
 
   private:
-       Gtk::VBox   packer;
-       Gtk::Button ok_button;
        Gtk::Label  label;
        
 };
index cae22667e806ab41292adeb57e5c7ee2a59d842f..ae45db10c627eb5b31b983bbdd60464f1402fa09 100644 (file)
@@ -1098,24 +1098,16 @@ If you still wish to quit, please use the\n\n\
 int
 ARDOUR_UI::ask_about_saving_session (string what)
 {
-       ArdourDialog window ("saving dialog");
-       Gtk::VBox   packer;
+       ArdourDialog window (_("ardour: save session?"));
        Gtk::Label  prompt_label;
-       Gtk::HBox   button_packer;
-
        string msg;
 
        msg = string_compose(_("Save and %1"), what);
-       
-       Gtk::Button save_button (msg);
-       save_button.set_name ("EditorGTKButton");
-
+       window.add_button (msg, RESPONSE_ACCEPT);
        msg = string_compose(_("Just %1"), what);
-
-       Gtk::Button nosave_button (msg);
-       nosave_button.set_name ("EditorGTKButton");
-
+       window.add_button (msg, RESPONSE_REJECT);
        msg = string_compose(_("Don't %1"), what);
+       window.add_button (msg, RESPONSE_REJECT);
 
        Gtk::Button noquit_button (msg);
        noquit_button.set_name ("EditorGTKButton");
@@ -1134,36 +1126,30 @@ ARDOUR_UI::ask_about_saving_session (string what)
        prompt_label.set_text (prompt);
        prompt_label.set_alignment (0.5, 0.5);
        prompt_label.set_name (X_("PrompterLabel"));
-
-       save_button.signal_clicked().connect (bind(mem_fun(window,&ArdourDialog::stop), 1));
-       nosave_button.signal_clicked().connect (bind(mem_fun(window,&ArdourDialog::stop), 0));
-       noquit_button.signal_clicked().connect (bind(mem_fun(window,&ArdourDialog::stop), -1));
-
-       button_packer.set_spacing (10);
-       button_packer.pack_start (save_button);
-       button_packer.pack_start (nosave_button);
-       button_packer.pack_start (noquit_button);
        
-       packer.set_spacing (10);
-       packer.set_border_width (10);
-       packer.pack_start (prompt_label);
-       packer.pack_start (button_packer);
+       window.get_vbox()->pack_start (prompt_label);
 
        window.set_name (_("Prompter"));
-       window.set_title (_("ardour: save session?"));
        window.set_position (Gtk::WIN_POS_MOUSE);
        window.set_modal (true);
-       window.add (packer);
        window.show_all ();
-       window.set_keyboard_input (true);
 
        save_the_session = 0;
 
        editor->ensure_float (window);
 
-       window.run ();
+       ResponseType r = (ResponseType) window.run();
+
+       window.hide ();
 
-       return window.run_status();
+       switch (r) {
+       case RESPONSE_ACCEPT:
+               return 0;
+       default:
+               break;
+       }
+
+       return -1;
 }
        
 gint
@@ -1719,17 +1705,10 @@ ARDOUR_UI::build_session_selector ()
 {
        session_selector_window = new ArdourDialog ("session selector");
        
-       Gtk::VBox *vpacker = manage (new Gtk::VBox);
        Gtk::ScrolledWindow *scroller = manage (new Gtk::ScrolledWindow);
-       Gtk::HBox *button_packer = manage (new Gtk::HBox);
-       Gtk::Button *cancel_button = manage (new Gtk::Button (_("cancel")));
-       Gtk::Button *rescan_button = manage (new Gtk::Button (_("rescan")));
 
-       button_packer->pack_start (*rescan_button);
-       button_packer->pack_start (*cancel_button);
-
-       vpacker->pack_start (*scroller);
-       vpacker->pack_start (*button_packer, false, false);
+       session_selector_window->add_button (Stock::OK, RESPONSE_ACCEPT);
+       session_selector_window->add_button (Stock::CANCEL, RESPONSE_CANCEL);
 
        recent_session_model = TreeStore::create (recent_session_columns);
        recent_session_display.set_model (recent_session_model);
@@ -1739,9 +1718,9 @@ ARDOUR_UI::build_session_selector ()
        scroller->add (recent_session_display);
        scroller->set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
 
-       session_selector_window->add (*vpacker);
        session_selector_window->set_name ("SessionSelectorWindow");
        session_selector_window->set_size_request (200, 400);
+       session_selector_window->get_vbox()->pack_start (*scroller);
 }
 
 void
@@ -1755,13 +1734,13 @@ ARDOUR_UI::open_recent_session ()
 
        redisplay_recent_sessions ();
 
-       session_selector_window->run ();
+       ResponseType r = (ResponseType) session_selector_window->run ();
 
+       session_selector_window->hide();
 
-       switch (session_selector_window->run_status()) {
-       case 0:
+       switch (r) {
+       case RESPONSE_ACCEPT:
                break;
-
        default:
                return;
        }
@@ -1775,11 +1754,9 @@ ARDOUR_UI::open_recent_session ()
        Glib::ustring path = (*i)[recent_session_columns.fullpath];
        Glib::ustring state = (*i)[recent_session_columns.visible_name];
 
-       session_selector_window->response (RESPONSE_ACCEPT);
        _session_is_new = false;
 
        load_session (path, state);
-
 }
 
 bool
@@ -2886,7 +2863,7 @@ require some unused files to continue to exist."));
                return;
        } 
 
-       ArdourDialog results ("cleanup results");
+       ArdourDialog results (_("ardour: cleanup"), true);
        
        struct CleanupResultsModelColumns : public Gtk::TreeModel::ColumnRecord {
            CleanupResultsModelColumns() { 
@@ -2909,11 +2886,6 @@ require some unused files to continue to exist."));
 
        Gtk::ScrolledWindow list_scroller;
        Gtk::Label txt;
-       Gtk::Button ok_button (_("OK"));
-       Gtk::VBox vpacker;
-       
-       vpacker.set_border_width (10);
-       vpacker.set_spacing (10);
 
        if (rep.space < 1048576.0f) {
                if (removed > 1) {
@@ -2929,7 +2901,7 @@ require some unused files to continue to exist."));
                }
        }
 
-       vpacker.pack_start (txt, false, false);
+       results.get_vbox()->pack_start (txt, false, false);
        
        for (vector<string>::iterator i = rep.paths.begin(); i != rep.paths.end(); ++i) {
                TreeModel::Row row = *(results_model->append());
@@ -2941,14 +2913,9 @@ require some unused files to continue to exist."));
        list_scroller.set_size_request (-1, 250);
        list_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
        
-       vpacker.pack_start (list_scroller, true, true);
-       vpacker.pack_start (ok_button, false, false);
-       
-       results.add (vpacker);
-       
+       results.get_vbox()->pack_start (list_scroller, true, true);
+       results.add_button (Stock::OK, RESPONSE_ACCEPT);
        results.set_position (Gtk::WIN_POS_MOUSE);
-       results.set_title (_("ardour: cleanup"));
-       results.set_modal (true);
 
        results.run ();
 }
@@ -2961,40 +2928,22 @@ ARDOUR_UI::cleanup ()
                return;
        }
 
-       ArdourDialog checker (X_("cleanup confirm dialog"));
+       ArdourDialog checker (_("ardour cleanup"));
        Gtk::Label label (_("\
 Cleanup is a destructive operation.\n\
 ALL undo/redo information will be lost if you cleanup.\n\
 Unused audio files will be moved to a \"dead sounds\" location."));
-
-       Gtk::Button ok_button (_("Proceed with cleanup"));
-       Gtk::Button cancel_button (_("Cancel"));
-       Gtk::HBox   bbox;
-       Gtk::VBox   vbox;
-
-       bbox.set_border_width (6);
-       bbox.set_spacing (12);
-       bbox.pack_start (ok_button, true, false);
-       bbox.pack_start (cancel_button, true, false);
        
-       vbox.set_border_width (6);
-       vbox.set_spacing (12);
-       vbox.pack_start (label, false, false);
-       vbox.pack_start (bbox, false, false);
-       
-       checker.add (vbox);
+       checker.get_vbox()->pack_start (label, false, false);
+       checker.add_button (Stock::OK, RESPONSE_ACCEPT);
+       checker.add_button (Stock::CANCEL, RESPONSE_CANCEL);
+
        checker.set_name (_("CleanupDialog"));
-       checker.set_title (_("ardour cleanup"));
        checker.set_wmclass (_("ardour_cleanup"), "Ardour");
        checker.set_position (Gtk::WIN_POS_MOUSE);
 
-       ok_button.signal_clicked().connect (bind (mem_fun (checker, &ArdourDialog::stop), 1));
-       cancel_button.signal_clicked().connect (bind (mem_fun (checker, &ArdourDialog::stop), 0));
-
-       checker.run ();
-
-       switch (checker.run_status()) {
-       case 0:
+       switch (checker.run()) {
+       case RESPONSE_ACCEPT:
                break;
        default:
                return;
@@ -3056,10 +3005,16 @@ ARDOUR_UI::add_route ()
                return;
        }
 
-       add_route_dialog->run ();
+       ResponseType r = (ResponseType) add_route_dialog->run ();
+       
+       add_route_dialog->hide();
 
-       if (add_route_dialog->run_status()) {
+       switch (r) {
+       case RESPONSE_ACCEPT:
+               break;
+       default:
                return;
+               break;
        }
 
        if ((count = add_route_dialog->count()) <= 0) {
@@ -3214,8 +3169,6 @@ int
 ARDOUR_UI::pending_state_dialog ()
 {
        ArdourDialog dialog ("pending state dialog");
-       Button use_button (_("Recover from crash"));
-       Button cancel_button (_("Ignore crash data"));
        Label  message (_("\
 This session appears to have been in\n\
 middle of recording when ardour or\n\
@@ -3224,28 +3177,18 @@ the computer was shutdown.\n\
 Ardour can recover any captured audio for\n\
 you, or it can ignore it. Please decide\n\
 what you would like to do.\n"));
-       HBox hpacker;
-       VBox vpacker;
-
-       vpacker.set_border_width (12);
-       vpacker.set_spacing (7);
-       vpacker.pack_start (message);
-       vpacker.pack_start (hpacker);
 
-       hpacker.set_spacing (7);
-       hpacker.pack_start (use_button);
-       hpacker.pack_start (cancel_button);
-       
-       use_button.signal_clicked().connect (bind (mem_fun (dialog, &ArdourDialog::stop), 0));
-       cancel_button.signal_clicked().connect (bind (mem_fun (dialog, &ArdourDialog::stop), 1));
+       dialog.get_vbox()->pack_start (message);
+       dialog.add_button (_("Recover from crash"), RESPONSE_ACCEPT);
+       dialog.add_button (_("Ignore crash data"), RESPONSE_REJECT);
 
-       dialog.add (vpacker);
        dialog.set_position (WIN_POS_CENTER);
        dialog.show_all ();
        
-       dialog.run ();
-
-       if (dialog.run_status () != 0) {
+       switch (dialog.run ()) {
+       case RESPONSE_ACCEPT:
+               break;
+       default:
                return 1;
        }
 
index c524e15526918c291613757576fbd8c3300ece9e..93efa57110c9c71faba7771265fca5f2847ed39e 100644 (file)
@@ -248,13 +248,8 @@ ARDOUR_UI::toggle_connection_editor ()
        //GTK2FIX
 #if 0
 
-       if (connection_editor->within_hiding()) {
-               return;
-       }
-                                                     
-
        if (connection_editor_check->get_active()){
-               connection_editor->show_all();
+               connection_editor->present();
        } else {
                connection_editor->hide_all();
        }
@@ -291,9 +286,7 @@ ARDOUR_UI::toggle_options_window ()
                option_editor = new OptionEditor (*this, *editor, *mixer);
                option_editor->signal_unmap().connect(mem_fun(*this, &ARDOUR_UI::option_hiding));
                option_editor->set_session (session);
-       } else if (option_editor->within_hiding()) {
-               return;
-       }
+       } 
 
        if (option_editor->is_visible()) {
                option_editor->hide ();
@@ -335,10 +328,6 @@ ARDOUR_UI::toggle_location_window ()
                return;
        }
 
-       if (location_ui->within_hiding()) {
-               return;
-       }
-
        if (location_ui->is_visible()) {
                location_ui->hide();
        } else {
@@ -370,10 +359,6 @@ ARDOUR_UI::toggle_route_params_window ()
                return;
        }
 
-       if (route_params->within_hiding()) {
-               return;
-       }
-
        if (route_params->is_visible ()) {
                route_params->hide ();
        } else {
index 0b67ac8477f028d63783d9b20b389c2f46d455c8..f1ee07149fa9480ab29a4d6292e20979dc6a1df8 100644 (file)
@@ -47,7 +47,7 @@ using namespace Gtk;
 using namespace sigc;
 
 ConnectionEditor::ConnectionEditor ()
-       : ArdourDialog ("connection editor"),
+       : ArdourDialog (_("ardour: connections")),
          input_frame (_("Input Connections")),
          output_frame (_("Output Connections")),
          new_input_connection_button (_("New Input")),
@@ -193,11 +193,7 @@ ConnectionEditor::ConnectionEditor ()
        main_vbox.pack_start (main_hbox);
        main_vbox.pack_start (button_frame, false, false);
 
-       set_title (_("ardour: connections"));
-       add (main_vbox);
-
-       // GTK2FIX
-       // signal_delete_event.connect (bind (ptr_fun (just_hide_it), reinterpret_cast<Window *> (this)));
+       get_vbox()->pack_start (main_vbox);
        
        clear_button.signal_clicked().connect (mem_fun(*this, &ConnectionEditor::clear));
        add_port_button.signal_clicked().connect (mem_fun(*this, &ConnectionEditor::add_port));
index ffef903d9ab974b2f0d61a539f16cb4d0d751681..b5242d5cf55a3aafce9877afaa9552143e4be033 100644 (file)
@@ -71,7 +71,7 @@ CrossfadeEditor::Half::Half ()
 }
 
 CrossfadeEditor::CrossfadeEditor (Session& s, Crossfade& xf, double my, double mxy)
-       : ArdourDialog (_("crossfade editor")),
+       : ArdourDialog (_("ardour: x-fade edit")),
          cancel_button (_("Cancel")),
          ok_button (_("OK")),
          xfade (xf),
@@ -98,10 +98,8 @@ CrossfadeEditor::CrossfadeEditor (Session& s, Crossfade& xf, double my, double m
 {
        set_wmclass ("ardour_automationedit", "Ardour");
        set_name ("CrossfadeEditWindow");
-       set_title (_("ardour: x-fade edit"));
        set_position (Gtk::WIN_POS_MOUSE);
 
-       add (vpacker);
        add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::POINTER_MOTION_MASK);
 
        RadioButtonGroup sel_but_group = select_in_button.get_group();
@@ -281,10 +279,8 @@ CrossfadeEditor::CrossfadeEditor (Session& s, Crossfade& xf, double my, double m
        curve_button_box.pack_start (*vpacker2, false, false, 12);
        curve_button_box.pack_start (fade_in_table, false, false, 12);
        
-       vpacker.set_border_width (12);
-       vpacker.set_spacing (5);
-       vpacker.pack_start (*canvas_frame, true, true);
-       vpacker.pack_start (curve_button_box, false, false);
+       get_vbox()->pack_start (*canvas_frame, true, true);
+       get_vbox()->pack_start (curve_button_box, false, false);
 
        /* button to allow hackers to check the actual curve values */
 
index f98c34029839d941a2e560731129762d464e4d3a..057639897eeba008b4f0745fbfea0a5983943617 100644 (file)
@@ -3759,49 +3759,27 @@ Editor::duplicate_dialog (bool dup_region)
        ArdourDialog win ("duplicate dialog");
        Entry  entry;
        Label  label (_("Duplicate how many times?"));
-       HBox   hbox;
-       HBox   button_box;
-       Button ok_button (_("OK"));
-       Button cancel_button (_("Cancel"));
-       VBox   vbox;
-
-       button_box.set_spacing (7);
-       set_size_request_to_display_given_text (ok_button, _("Cancel"), 20, 15); // this is cancel on purpose
-       set_size_request_to_display_given_text (cancel_button, _("Cancel"), 20, 15);
-       button_box.pack_end (ok_button, false, false);
-       button_box.pack_end (cancel_button, false, false);
-       
-       hbox.set_spacing (5);
-       hbox.pack_start (label);
-       hbox.pack_start (entry, true, true);
-       
-       vbox.set_spacing (5);
-       vbox.set_border_width (5);
-       vbox.pack_start (hbox);
-       vbox.pack_start (button_box);
 
-       win.add (vbox);
-       win.set_position (Gtk::WIN_POS_MOUSE);
-       win.show_all ();
+       win.get_vbox()->pack_start (label);
+       win.add_action_widget (entry, RESPONSE_ACCEPT);
+       win.add_button (Stock::OK, RESPONSE_ACCEPT);
+       win.add_button (Stock::CANCEL, RESPONSE_CANCEL);
 
-       ok_button.signal_clicked().connect (bind (mem_fun (win, &ArdourDialog::stop), 0));
-       entry.signal_activate().connect (bind (mem_fun (win, &ArdourDialog::stop), 0));
-       cancel_button.signal_clicked().connect (bind (mem_fun (win, &ArdourDialog::stop), 1));
+       win.set_position (Gtk::WIN_POS_MOUSE);
 
        entry.set_text ("1");
        set_size_request_to_display_given_text (entry, X_("12345678"), 20, 15);
        entry.select_region (0, entry.get_text_length());
+       entry.grab_focus ();
 
-       win.set_position (Gtk::WIN_POS_MOUSE);
-       // GTK2FIX
-       // win.realize ();
+        // GTK2FIX
        // win.get_window()->set_decorations (Gdk::WMDecoration (Gdk::DECOR_BORDER|Gdk::DECOR_RESIZEH));
 
-       entry.grab_focus ();
 
-       win.run ();
-
-       if (win.run_status() != 0) {
+       switch (win.run ()) {
+       case RESPONSE_ACCEPT:
+               break;
+       default:
                return;
        }
 
@@ -4286,17 +4264,18 @@ Editor::edit_xfade (Crossfade* xfade)
                
        ensure_float (cew);
        
-       cew.ok_button.signal_clicked().connect (bind (mem_fun (cew, &ArdourDialog::stop), 1));
-       cew.cancel_button.signal_clicked().connect (bind (mem_fun (cew, &ArdourDialog::stop), 0));
        // GTK2FIX
        // cew.signal_delete_event().connect (mem_fun (cew, &ArdourDialog::wm_doi_event_stop));
 
-       cew.run ();
-       
-       if (cew.run_status() == 1) {
-               cew.apply ();
-               xfade->StateChanged (Change (~0));
+       switch (cew.run ()) {
+       case RESPONSE_ACCEPT:
+               break;
+       default:
+               return;
        }
+       
+       cew.apply ();
+       xfade->StateChanged (Change (~0));
 }
 
 PlaylistSelector&
@@ -4331,56 +4310,30 @@ Editor::playlist_deletion_dialog (Playlist* pl)
                                 "If left alone, no audio files used by it will be cleaned.\n"
                                 "If deleted, audio files used by it alone by will cleaned."),
                               pl->name()));
-       HBox   button_box;
-       Button del_button (_("Delete playlist"));
-       Button keep_button (_("Keep playlist"));
-       Button abort_button (_("Cancel cleanup"));
-       VBox   vbox;
-
-       button_box.set_spacing (7);
-       button_box.set_homogeneous (true);
-       button_box.pack_end (del_button, false, false);
-       button_box.pack_end (keep_button, false, false);
-       button_box.pack_end (abort_button, false, false);
-       
-       vbox.set_spacing (5);
-       vbox.set_border_width (5);
-       vbox.pack_start (label);
-       vbox.pack_start (button_box);
 
-       dialog.add (vbox);
        dialog.set_position (Gtk::WIN_POS_CENTER);
-       dialog.show_all ();
+       dialog.get_vbox()->pack_start (label);
 
-       del_button.signal_clicked().connect (bind (mem_fun (dialog, &ArdourDialog::stop), 0));
-       keep_button.signal_clicked().connect (bind (mem_fun (dialog, &ArdourDialog::stop), 1));
-       abort_button.signal_clicked().connect (bind (mem_fun (dialog, &ArdourDialog::stop), 2));
-
-       // GTK2FIX
-       // dialog.realize ();
-       // dialog.get_window()->set_decorations (Gdk::WMDecoration (Gdk::DECOR_BORDER|Gdk::DECOR_RESIZEH));
+       dialog.add_button (_("Delete playlist"), RESPONSE_ACCEPT);
+       dialog.add_button (_("Keep playlist"), RESPONSE_CANCEL);
+       dialog.add_button (_("Cancel"), RESPONSE_CANCEL);
 
-       dialog.run ();
-
-       switch (dialog.run_status()) {
-       case 1:
-               /* keep the playlist */
-               return 1;
-               break;
-       case 0:
+       switch (dialog.run ()) {
+       case RESPONSE_ACCEPT:
                /* delete the playlist */
                return 0;
                break;
-       case 2:
-               /* abort cleanup */
-               return -1;
+
+       case RESPONSE_REJECT:
+               /* keep the playlist */
+               return 1;
                break;
+
        default:
                break;
        }
 
-       /* keep the playlist */
-       return 1;
+       return -1;
 }
 
 bool
index a594587e6e8663af3115e2f6c8a8c42fb638a3c3..260d2ce387ec7daa4fcba8a9b3cf86ba6455f2b9 100644 (file)
@@ -1818,23 +1818,21 @@ Editor::audition_playlist_region_standalone (AudioRegion& region)
 void
 Editor::build_interthread_progress_window ()
 {
-       interthread_progress_window = new ArdourDialog (X_("interthread progress"));
+       interthread_progress_window = new ArdourDialog (X_("interthread progress"), true);
 
        interthread_progress_bar.set_orientation (Gtk::PROGRESS_LEFT_TO_RIGHT);
        
-       interthread_progress_vbox.set_border_width (10);
-       interthread_progress_vbox.set_spacing (5);
-       interthread_progress_vbox.pack_start (interthread_progress_label, false, false);
-       interthread_progress_vbox.pack_start (interthread_progress_bar,false, false);
-       interthread_progress_vbox.pack_start (interthread_cancel_button,false, false);
+       interthread_progress_window->get_vbox()->pack_start (interthread_progress_label, false, false);
+       interthread_progress_window->get_vbox()->pack_start (interthread_progress_bar,false, false);
+
+       // GTK2FIX: this button needs a modifiable label
+
+       Button* b = interthread_progress_window->add_button (Stock::CANCEL, RESPONSE_CANCEL);
+       b->signal_clicked().connect (mem_fun(*this, &Editor::interthread_cancel_clicked));
 
        interthread_cancel_button.add (interthread_cancel_label);
 
-       interthread_cancel_button.signal_clicked().connect (mem_fun(*this, &Editor::interthread_cancel_clicked));
-       
-       interthread_progress_window->set_modal (true);
        interthread_progress_window->set_default_size (200, 100);
-       interthread_progress_window->add (interthread_progress_vbox);
 }
 
 void
index 715adf72847c04ddcae87e9dca1b0c5a12c50adb..c3436119672683f2c8378510e06103a89a073002 100644 (file)
@@ -243,14 +243,9 @@ Editor::mouse_add_new_tempo_event (jack_nframes_t frame)
                return;
        }
 
-
        TempoMap& map(session->tempo_map());
        TempoDialog tempo_dialog (map, frame, _("add"));
        
-       tempo_dialog.bpm_entry.signal_activate().connect (bind (mem_fun (tempo_dialog, &ArdourDialog::stop), 0));
-       tempo_dialog.ok_button.signal_clicked().connect (bind (mem_fun (tempo_dialog, &ArdourDialog::stop), 0));
-       tempo_dialog.cancel_button.signal_clicked().connect (bind (mem_fun (tempo_dialog, &ArdourDialog::stop), -1));
-
        tempo_dialog.set_position (Gtk::WIN_POS_MOUSE);
        // GTK2FIX
        // tempo_dialog.realize ();
@@ -258,26 +253,28 @@ Editor::mouse_add_new_tempo_event (jack_nframes_t frame)
 
        ensure_float (tempo_dialog);
 
-       tempo_dialog.run();
-
-       if (tempo_dialog.run_status() == 0) {
-               
-               double bpm = 0;
-               BBT_Time requested;
-
-               bpm = tempo_dialog.get_bpm ();
-               bpm = max (0.01, bpm);
-
-               tempo_dialog.get_bbt_time (requested);
-
-               begin_reversible_command (_("add tempo mark"));
-               session->add_undo (map.get_memento());
-               map.add_tempo (Tempo (bpm), requested);
-               session->add_redo_no_execute (map.get_memento());
-               commit_reversible_command ();
-
-               map.dump (cerr);
+       switch (tempo_dialog.run()) {
+       case RESPONSE_ACCEPT:
+               break;
+       default:
+               return;
        }
+
+       double bpm = 0;
+       BBT_Time requested;
+       
+       bpm = tempo_dialog.get_bpm ();
+       bpm = max (0.01, bpm);
+       
+       tempo_dialog.get_bbt_time (requested);
+       
+       begin_reversible_command (_("add tempo mark"));
+       session->add_undo (map.get_memento());
+       map.add_tempo (Tempo (bpm), requested);
+       session->add_redo_no_execute (map.get_memento());
+       commit_reversible_command ();
+       
+       map.dump (cerr);
 }
 
 void
@@ -291,9 +288,6 @@ Editor::mouse_add_new_meter_event (jack_nframes_t frame)
        TempoMap& map(session->tempo_map());
        MeterDialog meter_dialog (map, frame, _("add"));
 
-       meter_dialog.ok_button.signal_clicked().connect (bind (mem_fun (meter_dialog, &ArdourDialog::stop), 0));
-       meter_dialog.cancel_button.signal_clicked().connect (bind (mem_fun (meter_dialog, &ArdourDialog::stop), -1));
-
        meter_dialog.set_position (Gtk::WIN_POS_MOUSE);
        // GTK2FIX
        // meter_dialog.realize ();
@@ -301,26 +295,28 @@ Editor::mouse_add_new_meter_event (jack_nframes_t frame)
 
        ensure_float (meter_dialog);
        
-       meter_dialog.run ();
-       
-       if (meter_dialog.run_status() == 0) {
-               
-               double bpb = meter_dialog.get_bpb ();
-               bpb = max (1.0, bpb); // XXX is this a reasonable limit?
-
-               double note_type = meter_dialog.get_note_type ();
-               BBT_Time requested;
-
-               meter_dialog.get_bbt_time (requested);
-
-               begin_reversible_command (_("add meter mark"));
-               session->add_undo (map.get_memento());
-               map.add_meter (Meter (bpb, note_type), requested);
-               session->add_redo_no_execute (map.get_memento());
-               commit_reversible_command ();
-
-               map.dump (cerr);
+       switch (meter_dialog.run ()) {
+       case RESPONSE_ACCEPT:
+               break;
+       default:
+               return;
        }
+
+       double bpb = meter_dialog.get_bpb ();
+       bpb = max (1.0, bpb); // XXX is this a reasonable limit?
+       
+       double note_type = meter_dialog.get_note_type ();
+       BBT_Time requested;
+       
+       meter_dialog.get_bbt_time (requested);
+       
+       begin_reversible_command (_("add meter mark"));
+       session->add_undo (map.get_memento());
+       map.add_meter (Meter (bpb, note_type), requested);
+       session->add_redo_no_execute (map.get_memento());
+       commit_reversible_command ();
+       
+       map.dump (cerr);
 }
 
 void
@@ -349,9 +345,6 @@ Editor::edit_meter_section (MeterSection* section)
 {
        MeterDialog meter_dialog (*section, _("done"));
 
-       meter_dialog.ok_button.signal_clicked().connect (bind (mem_fun (meter_dialog, &ArdourDialog::stop), 0));
-       meter_dialog.cancel_button.signal_clicked().connect (bind (mem_fun (meter_dialog, &ArdourDialog::stop), -1));
-
        meter_dialog.set_position (Gtk::WIN_POS_MOUSE);
        // GTK2FIX
        // meter_dialog.realize ();
@@ -359,21 +352,23 @@ Editor::edit_meter_section (MeterSection* section)
 
        ensure_float (meter_dialog);
 
-       meter_dialog.run ();
-
-       if (meter_dialog.run_status() == 0) {
-
-               double bpb = meter_dialog.get_bpb ();
-               bpb = max (1.0, bpb); // XXX is this a reasonable limit?
+       switch (meter_dialog.run()) {
+       case RESPONSE_ACCEPT:
+               break;
+       default:
+               return;
+       }
 
-               double note_type = meter_dialog.get_note_type ();
+       double bpb = meter_dialog.get_bpb ();
+       bpb = max (1.0, bpb); // XXX is this a reasonable limit?
+       
+       double note_type = meter_dialog.get_note_type ();
 
-               begin_reversible_command (_("replace tempo mark"));
-               session->add_undo (session->tempo_map().get_memento());
-               session->tempo_map().replace_meter (*section, Meter (bpb, note_type));
-               session->add_redo_no_execute (session->tempo_map().get_memento());
-               commit_reversible_command ();
-       }
+       begin_reversible_command (_("replace tempo mark"));
+       session->add_undo (session->tempo_map().get_memento());
+       session->tempo_map().replace_meter (*section, Meter (bpb, note_type));
+       session->add_redo_no_execute (session->tempo_map().get_memento());
+       commit_reversible_command ();
 }
 
 void
@@ -381,10 +376,6 @@ Editor::edit_tempo_section (TempoSection* section)
 {
        TempoDialog tempo_dialog (*section, _("done"));
 
-       tempo_dialog.bpm_entry.signal_activate().connect (bind (mem_fun (tempo_dialog, &ArdourDialog::stop), 0));
-       tempo_dialog.ok_button.signal_clicked().connect (bind (mem_fun (tempo_dialog, &ArdourDialog::stop), 0));
-       tempo_dialog.cancel_button.signal_clicked().connect (bind (mem_fun (tempo_dialog, &ArdourDialog::stop), -1));
-
        tempo_dialog.set_position (Gtk::WIN_POS_MOUSE);
        // GTK2FIX
        // tempo_dialog.realize ();
@@ -392,22 +383,24 @@ Editor::edit_tempo_section (TempoSection* section)
 
        ensure_float (tempo_dialog);
        
-       tempo_dialog.run ();
-
-       if (tempo_dialog.run_status() == 0) {
-
-               double bpm = tempo_dialog.get_bpm ();
-               BBT_Time when;
-               tempo_dialog.get_bbt_time(when);
-               bpm = max (0.01, bpm);
-
-               begin_reversible_command (_("replace tempo mark"));
-               session->add_undo (session->tempo_map().get_memento());
-               session->tempo_map().replace_tempo (*section, Tempo (bpm));
-               session->tempo_map().move_tempo (*section, when);
-               session->add_redo_no_execute (session->tempo_map().get_memento());
-               commit_reversible_command ();
+       switch (tempo_dialog.run ()) {
+       case RESPONSE_ACCEPT:
+               break;
+       default:
+               return;
        }
+
+       double bpm = tempo_dialog.get_bpm ();
+       BBT_Time when;
+       tempo_dialog.get_bbt_time(when);
+       bpm = max (0.01, bpm);
+       
+       begin_reversible_command (_("replace tempo mark"));
+       session->add_undo (session->tempo_map().get_memento());
+       session->tempo_map().replace_tempo (*section, Tempo (bpm));
+       session->tempo_map().move_tempo (*section, when);
+       session->add_redo_no_execute (session->tempo_map().get_memento());
+       commit_reversible_command ();
 }
 
 void
index 805c4e0b1daee20997e7526d10350dcde2f220c9..aba6a13011084239f27d416054bd1f3b83fe33c6 100644 (file)
@@ -57,8 +57,6 @@ Editor::TimeStretchDialog::TimeStretchDialog (Editor& e)
        set_title (_("ardour: timestretch"));
        set_name (N_("TimeStretchDialog"));
 
-       set_hide_on_stop (false);
-
        add (packer);
 
        packer.set_spacing (5);
@@ -85,7 +83,8 @@ Editor::TimeStretchDialog::TimeStretchDialog (Editor& e)
        antialias_button.set_name (N_("TimeStretchButton"));
        progress_bar.set_name (N_("TimeStretchProgress"));
 
-       action_button.signal_clicked().connect (bind (mem_fun(*this, &ArdourDialog::stop), 1));
+       // GTK2FIX
+       // action_button.signal_clicked().connect (bind (mem_fun(*this, &ArdourDialog::stop), 1));
 }
 
 gint
@@ -120,16 +119,16 @@ Editor::run_timestretch (AudioRegionSelection& regions, float fraction)
        }
 
        current_timestretch->progress_bar.set_fraction (0.0f);
-       current_timestretch->first_cancel = current_timestretch->cancel_button.signal_clicked().connect (bind (mem_fun (*current_timestretch, &ArdourDialog::stop), -1));
        // GTK2FIX
+       // current_timestretch->first_cancel = current_timestretch->cancel_button.signal_clicked().connect (bind (mem_fun (*current_timestretch, &ArdourDialog::stop), -1));
        // current_timestretch->first_delete = current_timestretch->signal_delete_event().connect (mem_fun (*current_timestretch, &ArdourDialog::wm_close_event));
 
-       current_timestretch->run ();
-
-       if (current_timestretch->run_status() != 1) {
-               // GTK2FIX
-               // current_timestretch->close ();
-               return 1; /* no error, but we did nothing */
+       switch (current_timestretch->run ()) {
+       case RESPONSE_ACCEPT:
+               break;
+       default:
+               current_timestretch->hide ();
+               return 1;
        }
 
        current_timestretch->status = 0;
@@ -165,8 +164,7 @@ Editor::run_timestretch (AudioRegionSelection& regions, float fraction)
 
        c.disconnect ();
        
-       // GTK2FIX
-       // current_timestretch->close ();
+       current_timestretch->hide ();
        return current_timestretch->status;
 }
 
index 041f73e5a9505bd98db6afb7b0645dd5ecc9dceb..4c827de7dc08568e4554b8e61a684aa865e0e880 100644 (file)
@@ -429,9 +429,6 @@ RedirectBox::wierd_plugin_dialog (Plugin& p, uint32_t streams, IO& io)
 {
        ArdourDialog dialog ("wierd plugin dialog");
        Label label;
-       Button button (_("OK"));
-       VBox vpacker;
-       HBox button_box;
 
        /* i hate this kind of code */
 
@@ -479,16 +476,9 @@ RedirectBox::wierd_plugin_dialog (Plugin& p, uint32_t streams, IO& io)
                                         streams));
        }
 
-       button_box.pack_start (button, false, true);
+       dialog.get_vbox()->pack_start (label);
+       dialog.add_button (Stock::OK, RESPONSE_ACCEPT);
 
-       vpacker.set_spacing (12);
-       vpacker.set_border_width (12);
-       vpacker.pack_start (label);
-       vpacker.pack_start (button_box);
-
-       button.signal_clicked().connect (bind (mem_fun (dialog, &ArdourDialog::stop), 0));
-
-       dialog.add (vpacker);
        dialog.set_name (X_("PluginIODialog"));
        dialog.set_position (Gtk::WIN_POS_MOUSE);
        dialog.set_modal (true);
@@ -705,25 +695,16 @@ RedirectBox::compute_redirect_sort_keys ()
 
                ArdourDialog dialog ("wierd plugin dialog");
                Label label;
-               Button button (_("OK"));
-               VBox vpacker;
-               HBox button_box;
 
                label.set_text (_("\
 You cannot reorder this set of redirects\n\
 in that way because the inputs and\n\
 outputs do not work correctly."));
 
-               button_box.pack_start (button, false, true);
-               
-               vpacker.set_spacing (12);
-               vpacker.set_border_width (12);
-               vpacker.pack_start (label);
-               vpacker.pack_start (button_box);
-               
-               button.signal_clicked().connect (bind (mem_fun (dialog, &ArdourDialog::stop), 0));
                
-               dialog.add (vpacker);
+               dialog.get_vbox()->pack_start (label);
+               dialog.add_button (Stock::OK, RESPONSE_ACCEPT);
+
                dialog.set_name (X_("PluginIODialog"));
                dialog.set_position (Gtk::WIN_POS_MOUSE);
                dialog.set_modal (true);
@@ -825,47 +806,32 @@ RedirectBox::idle_delete_redirect (Redirect *redirect)
 void
 RedirectBox::rename_redirect (Redirect* redirect)
 {
-       ArdourDialog dialog ("rename redirect dialog");
+       ArdourDialog dialog (_("ardour: rename redirect"), true);
        Entry  entry;
        VBox   vbox;
        HBox   hbox;
        Button ok_button (_("OK"));
        Button cancel_button (_("Cancel"));
 
-       dialog.set_title (_("ardour: rename redirect"));
        dialog.set_name ("RedirectRenameWindow");
        dialog.set_size_request (300, -1);
        dialog.set_position (Gtk::WIN_POS_MOUSE);
-       dialog.set_modal (true);
 
-       vbox.set_border_width (12);
-       vbox.set_spacing (12);
-       vbox.pack_start (entry, false, false);
-       vbox.pack_start (hbox, false, false);
-       hbox.pack_start (ok_button);
-       hbox.pack_start (cancel_button);
+       dialog.add_action_widget (entry, RESPONSE_ACCEPT);
+       dialog.add_button (Stock::OK, RESPONSE_ACCEPT);
+       dialog.add_button (Stock::CANCEL, RESPONSE_CANCEL);
        
-       dialog.add (vbox);
-
        entry.set_name ("RedirectNameDisplay");
        entry.set_text (redirect->name());
        entry.select_region (0, -1);
        entry.grab_focus ();
 
-       ok_button.set_name ("EditorGTKButton");
-       cancel_button.set_name ("EditorGTKButton");
-
-       entry.signal_activate().connect (bind (mem_fun (dialog, &ArdourDialog::stop), 1));
-       cancel_button.signal_clicked().connect (bind (mem_fun (dialog, &ArdourDialog::stop), -1));
-       ok_button.signal_clicked().connect (bind (mem_fun (dialog, &ArdourDialog::stop), 1));
-
-       /* recurse */
-       
-       dialog.set_keyboard_input (true);
-       dialog.run ();
-
-       if (dialog.run_status() == 1) {
+       switch (dialog.run ()) {
+       case RESPONSE_ACCEPT:
                redirect->set_name (entry.get_text(), this);
+               break;
+       default:
+               break;
        }
 }
 
index 060cb9217f7538f9523af8a9cdf0e9d3d378ad00..5b4a7de07355b2c0f551a42ec6aea38c5932f314 100644 (file)
@@ -1,5 +1,6 @@
 #include <cstdio> // for snprintf, grrr 
 
+#include <gtkmm/stock.h>
 #include <gtkmm2ext/utils.h>
 
 #include "tempo_dialog.h"
@@ -106,8 +107,6 @@ TempoDialog::init (const BBT_Time& when, double bpm, bool movable)
 
        add (vpacker);
        set_name ("MetricDialog");
-
-       set_keyboard_input(true);
 }
 
 double 
@@ -222,15 +221,6 @@ MeterDialog::init (const BBT_Time& when, double bpb, double note_type, bool mova
        note_frame.add (vspacer1);
        bpb_frame.add (vspacer2);
 
-       button_box.set_border_width (10);
-       button_box.set_spacing (5);
-       button_box.set_homogeneous (true);
-       button_box.pack_start (ok_button); 
-       button_box.pack_start (cancel_button); 
-
-       vpacker.set_border_width (10);
-       vpacker.set_spacing (5);
-       
        if (movable) {
                snprintf (buf, sizeof (buf), "%" PRIu32, when.bars);
                when_bar_entry.set_text (buf);
@@ -263,20 +253,18 @@ MeterDialog::init (const BBT_Time& when, double bpb, double note_type, bool mova
                vpacker.pack_start (when_frame, false, false);
        }
 
-       vpacker.pack_start (bpb_frame, false, false);
-       vpacker.pack_start (note_frame, false, false);
-       vpacker.pack_start (button_box, false, false);
+       get_vbox()->pack_start (bpb_frame, false, false);
+       get_vbox()->pack_start (note_frame, false, false);
        
        bpb_frame.set_name ("MetricDialogFrame");
        note_frame.set_name ("MetricDialogFrame");
        bpb_entry.set_name ("MetricEntry");
-       ok_button.set_name ("MetricButton");
-       cancel_button.set_name ("MetricButton");
 
-       add (vpacker);
-       set_name ("MetricDialog");
+       add_action_widget (bpb_entry, RESPONSE_ACCEPT);
+       add_button (Stock::OK, RESPONSE_ACCEPT);
+       add_button (Stock::CANCEL, RESPONSE_CANCEL);
 
-       set_keyboard_input(true);
+       set_name ("MetricDialog");
 }
 
 double