/////////////////////////////////////////////////////////////////////////////
-// Name: dialog.h
+// Name: wx/osx/dialog.h
// Purpose: wxDialog class
// Author: Stefan Csomor
// Modified by:
#include "wx/panel.h"
-WXDLLIMPEXP_DATA_CORE(extern const char) wxDialogNameStr[];
-
class WXDLLIMPEXP_FWD_CORE wxMacToolTip ;
+class WXDLLIMPEXP_FWD_CORE wxModalEventLoop ;
// Dialog boxes
class WXDLLIMPEXP_CORE wxDialog : public wxDialogBase
// virtual bool Destroy();
virtual bool Show(bool show = true);
- void SetModal(bool flag);
+ // return true if we're showing the dialog modally
virtual bool IsModal() const;
- // For now, same as Show(TRUE) but returns return code
+ // show the dialog modally and return the value passed to EndModal()
virtual int ShowModal();
-
+
virtual void ShowWindowModal();
// may be called to terminate the dialog with the given return code
virtual void EndModal(int retCode);
+ static bool OSXHasModalDialogsOpen();
+ static void OSXBeginModalDialog();
+ static void OSXEndModalDialog();
+
// implementation
// --------------
- // show modal dialog and enter modal loop
- void DoShowModal();
+ wxDialogModality GetModality() const;
+
+#if wxOSX_USE_COCOA
+ virtual void ModalFinishedCallback(void* WXUNUSED(panel), int WXUNUSED(returnCode)) {}
+#endif
protected:
+ // show window modal dialog
+ void DoShowWindowModal();
+
+ // end window modal dialog.
+ void EndWindowModal();
+
// mac also takes command-period as cancel
virtual bool IsEscapeKey(const wxKeyEvent& event);
- // needed for cleanup on the Cocoa side.
- void EndWindowModal();
+
+ wxDialogModality m_modality;
+
+ wxModalEventLoop* m_eventLoop;
private:
void Init();
-
- bool m_isModalStyle;
};
#endif