]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/dialog.h
guarding agains NULL
[wxWidgets.git] / include / wx / osx / dialog.h
index 2544d290bb156471b2301ecb857c5bf4dd6094ab..9efc8a59d28054f694c1b7d63a4b95d108fa10c5 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        dialog.h
+// Name:        wx/osx/dialog.h
 // Purpose:     wxDialog class
 // Author:      Stefan Csomor
 // Modified by:
@@ -14,9 +14,8 @@
 
 #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
@@ -50,34 +49,47 @@ public:
 //    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