diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-05-02 21:13:36 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-05-02 21:13:36 -0400 |
commit | 6fd66bd46768f205e4eb02d6e14ef4a3a20700d2 (patch) | |
tree | 144b4179d2ca84116533320dd94aa0f224bdc18b /gtk2_ardour | |
parent | 00f94a04cca8ac27a64924263e134ff0ab3daa4d (diff) |
move CloseAllDialogs signal and associated method from ArdourDialog to ARDOUR_UI, and make ArdourWindow obey it too
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour_dialog.cc | 9 | ||||
-rw-r--r-- | gtk2_ardour/ardour_dialog.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 3 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 3 | ||||
-rw-r--r-- | gtk2_ardour/ardour_window.cc | 5 |
5 files changed, 13 insertions, 9 deletions
diff --git a/gtk2_ardour/ardour_dialog.cc b/gtk2_ardour/ardour_dialog.cc index 87b48d986a..cd7d0fbd55 100644 --- a/gtk2_ardour/ardour_dialog.cc +++ b/gtk2_ardour/ardour_dialog.cc @@ -23,6 +23,7 @@ #include <gtkmm2ext/doi.h> #include "ardour_dialog.h" +#include "ardour_ui.h" #include "keyboard.h" #include "splash.h" @@ -30,8 +31,6 @@ using namespace std; using namespace Gtk; using namespace Gtkmm2ext; -sigc::signal<void> ArdourDialog::CloseAllDialogs; - ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator) : Dialog (title, modal, use_seperator) , _splash_pushed (false) @@ -98,9 +97,7 @@ ArdourDialog::on_show () void ArdourDialog::init () { - set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG); set_border_width (10); - CloseAllDialogs.connect ( - sigc::bind (sigc::mem_fun (*this, &ArdourDialog::response), - RESPONSE_CANCEL)); + // set_type_hint (Gdk::WINDOW_TYPE_HINT_DIALOG); + ARDOUR_UI::CloseAllDialogs.connect (sigc::bind (sigc::mem_fun (*this, &ArdourDialog::response), RESPONSE_CANCEL)); } diff --git a/gtk2_ardour/ardour_dialog.h b/gtk2_ardour/ardour_dialog.h index 1008f63000..041b62e1cd 100644 --- a/gtk2_ardour/ardour_dialog.h +++ b/gtk2_ardour/ardour_dialog.h @@ -43,8 +43,6 @@ class ArdourDialog : public Gtk::Dialog, public ARDOUR::SessionHandlePtr void on_unmap (); void on_show (); - static void close_all_dialogs () { CloseAllDialogs(); } - private: bool _splash_pushed; void init (); diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index c138fb1567..a5c8cee44c 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -136,6 +136,7 @@ sigc::signal<void,bool> ARDOUR_UI::Blink; sigc::signal<void> ARDOUR_UI::RapidScreenUpdate; sigc::signal<void> ARDOUR_UI::SuperRapidScreenUpdate; sigc::signal<void, framepos_t, bool, framepos_t> ARDOUR_UI::Clock; +sigc::signal<void> ARDOUR_UI::CloseAllDialogs; ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir) @@ -886,7 +887,7 @@ If you still wish to quit, please use the\n\n\ _session = 0; } - ArdourDialog::close_all_dialogs (); + close_all_dialogs (); engine->stop (true); quit (); } diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index a326669ec3..a695f7b8bd 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -189,6 +189,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr */ static sigc::signal<void, framepos_t, bool, framepos_t> Clock; + static void close_all_dialogs () { CloseAllDialogs(); } + static sigc::signal<void> CloseAllDialogs; + XMLNode* editor_settings() const; XMLNode* mixer_settings () const; XMLNode* keyboard_settings () const; diff --git a/gtk2_ardour/ardour_window.cc b/gtk2_ardour/ardour_window.cc index 6330ecd6ac..f16032dc74 100644 --- a/gtk2_ardour/ardour_window.cc +++ b/gtk2_ardour/ardour_window.cc @@ -23,6 +23,7 @@ #include <gtkmm2ext/doi.h> #include "ardour_window.h" +#include "ardour_ui.h" #include "keyboard.h" using namespace std; @@ -83,8 +84,12 @@ ArdourWindow::init () (a) utility & dialog windows are considered to be part of the same level (b) they will float above normal windows without any particular effort + (c) present()-ing them will make a utility float over a dialog or + vice versa. */ set_type_hint (Gdk::WINDOW_TYPE_HINT_UTILITY); + + ARDOUR_UI::CloseAllDialogs.connect (sigc::mem_fun (*this, &ArdourWindow::hide)); } |