]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/dialog.h
Only compile wxStd{Input,Output}Stream if wxUSE_STREAMS==1.
[wxWidgets.git] / include / wx / osx / dialog.h
index 351f6b8aee924f5d78b2bf96e317cae69ea3959e..9442b943739918c235c2bc5f674bb61e21c4f213 100644 (file)
@@ -17,6 +17,7 @@
 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,29 +51,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);
 
+
+    wxDialogModality m_modality;
+    
+    wxModalEventLoop* m_eventLoop;
+
 private:
     void Init();
-
-    bool m_isModalStyle;
 };
 
 #endif