X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_dialog.h;h=76d7ac1d08a34d7c9047c8003c31961f5d496b60;hb=9ccc56e162554c292b25408246e3680b8f14eea7;hp=963c604c5ae74580afaf6a8714bd74a4510b1d04;hpb=25ac88fcae679cb8c1355fee1b4932122dc5fe36;p=ardour.git diff --git a/gtk2_ardour/ardour_dialog.h b/gtk2_ardour/ardour_dialog.h index 963c604c5a..76d7ac1d08 100644 --- a/gtk2_ardour/ardour_dialog.h +++ b/gtk2_ardour/ardour_dialog.h @@ -20,62 +20,46 @@ #ifndef __ardour_dialog_h__ #define __ardour_dialog_h__ -#include #include +#include -#include "keyboard_target.h" +#include "ardour/session_handle.h" -namespace ARDOUR { - class Session; -}; +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::Window, public KeyboardTarget +class ArdourDialog : public Gtk::Dialog, public ARDOUR::SessionHandlePtr { - public: - ArdourDialog (string name); +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(); - bool within_hiding() const { return _within_hiding; } - - void run (); - void stop (int); - void close (); - void set_keyboard_input (bool yn); - void set_hide_on_stop (bool yn); - int run_status(); - - gint on_enter_notify_event (GdkEventCrossing*); - gint on_leave_notify_event (GdkEventCrossing*); - gint on_unmap (GdkEventAny *); + bool on_focus_in_event (GdkEventFocus*); + bool on_focus_out_event (GdkEventFocus*); + bool on_delete_event (GdkEventAny*); + void on_unmap (); + void on_show (); + virtual void on_response (int); - ARDOUR::Session *session; +protected: + void pop_splash (); + void close_self (); - virtual void set_session (ARDOUR::Session* s) { - session = s; - } +private: + WM::ProxyTemporary* proxy; + bool _splash_pushed; + void init (); - virtual void session_gone () { - set_session (0); - } - - void quit (); - void wm_close(); - void wm_doi (); - gint wm_close_event (GdkEventAny *); - gint wm_doi_event (GdkEventAny *); - gint wm_doi_event_stop (GdkEventAny *); - - private: - int _run_status; - bool _within_hiding; - bool kbd_input; - bool running; - bool hide_on_stop; + static sigc::signal CloseAllDialogs; }; #endif // __ardour_dialog_h__ +