X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_dialog.h;h=d994c0a6d110ce37fa23de8b4df6fc574a444579;hb=0b1ee476edaed41f4c679f89e93a486e4d487333;hp=3384c013d40ae4969e72fadbb1071819619844d4;hpb=e0aaed6d65f160c328cb8b56d7c6552ee15d65e2;p=ardour.git diff --git a/gtk2_ardour/ardour_dialog.h b/gtk2_ardour/ardour_dialog.h index 3384c013d4..d994c0a6d1 100644 --- a/gtk2_ardour/ardour_dialog.h +++ b/gtk2_ardour/ardour_dialog.h @@ -20,47 +20,38 @@ #ifndef __ardour_dialog_h__ #define __ardour_dialog_h__ -#include "ardour/ardour.h" #include #include -namespace ARDOUR { - class Session; +#include "ardour/session_handle.h" + +namespace WM { + class ProxyTemporary; } /* * This virtual parent class is so that each dialog box uses the - * same mechanism to declare its closing, and to have a common - * method of connecting and disconnecting from a Session. + * same mechanism to declare its closing. It shares a common + * method of connecting and disconnecting from a Session with + * all other objects that have a handle on a Session. */ -class ArdourDialog : public Gtk::Dialog +class ArdourDialog : public Gtk::Dialog, public ARDOUR::SessionHandlePtr { public: ArdourDialog (std::string title, bool modal = false, bool use_separator = false); - ArdourDialog (Gtk::Window& parent, std::string title, bool modal = false, bool use_separator = false); + ArdourDialog (Gtk::Window& parent, std::string title, bool modal = false, bool use_separator = false); ~ArdourDialog(); - static int close_all_current_dialogs (int response); - - bool on_key_press_event (GdkEventKey *); bool on_enter_notify_event (GdkEventCrossing*); bool on_leave_notify_event (GdkEventCrossing*); + bool on_delete_event (GdkEventAny*); + bool on_key_press_event (GdkEventKey*); void on_unmap (); void on_show (); - ARDOUR::Session *session; - - virtual void set_session (ARDOUR::Session* s) { - session = s; - } - - virtual void session_gone () { - set_session (0); - } - - static void close_all_dialogs () { CloseAllDialogs(); } - private: + WM::ProxyTemporary* proxy; + bool _splash_pushed; void init (); static sigc::signal CloseAllDialogs;