]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cocoa/msgdlg.h
Add lambda-friendly wxDialog::ShowWindowModalThenDo().
[wxWidgets.git] / include / wx / cocoa / msgdlg.h
index aa03ad79931b4c3d0a3e2e1c54b7bc45941584d6..4a313c44af5cd14f17c887dae5b20a73a0797aef 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        wx/cocoa/dirdlg.h
+// Name:        wx/cocoa/msgdlg.h
 // Purpose:     wxMessageDialog class
 // Author:      Gareth Simpson
 // Created:     2007-10-29
 
 DECLARE_WXCOCOA_OBJC_CLASS(NSAlert);
 
+#ifndef wxUSE_COCOA_NATIVE_MSGDLG
+// trunk: Always use Cocoa dialog
+// 2.8: Only use Cocoa dialog if ABI incompatible features is on
+// Build both on both branches (there was no wxCocoaMessageDialog class so it's not an ABI issue)
+    #if 1/* wxUSE_ABI_INCOMPATIBLE_FEATURES */
+        #define wxUSE_COCOA_NATIVE_MSGDLG 1
+    #else
+        #define wxUSE_COCOA_NATIVE_MSGDLG 0
+    #endif
+#endif
 
+#if wxUSE_COCOA_NATIVE_MSGDLG
+    #define wxMessageDialog wxCocoaMessageDialog
+#else
+    #include "wx/generic/msgdlgg.h"
 
-#define wxMessageDialog wxCocoaMessageDialog
-//-------------------------------------------------------------------------
-// wxMsgDialog
-//-------------------------------------------------------------------------
+    #define wxMessageDialog wxGenericMessageDialog
+#endif
 
+// ----------------------------------------------------------------------------
+// wxCocoaMessageDialog
+// ----------------------------------------------------------------------------
 
 
-class WXDLLEXPORT wxMessageDialog: public wxMessageDialogBase
+class WXDLLIMPEXP_CORE wxCocoaMessageDialog
+    : public wxMessageDialogWithCustomLabels
 {
-    DECLARE_DYNAMIC_CLASS(wxMessageDialog)
-    DECLARE_NO_COPY_CLASS(wxMessageDialog)
-
-
 public:
-    wxMessageDialog(wxWindow *parent,
+    wxCocoaMessageDialog(wxWindow *parent,
                     const wxString& message,
                     const wxString& caption = wxMessageBoxCaptionStr,
                     long style = wxOK|wxCENTRE,
                     const wxPoint& pos = wxDefaultPosition);
-                                               
-       virtual ~wxCocoaMessageDialog();
 
-       virtual int ShowModal();
-       
-    // customization of the message box
-    virtual bool SetYesNoLabels(const wxString& yes,const wxString& no);
-    virtual bool SetYesNoCancelLabels(const wxString& yes, const wxString& no, const wxString& cancel);
-    virtual bool SetOKLabel(const wxString& ok);
-    virtual bool SetOKCancelLabels(const wxString& ok, const wxString& cancel);
+    virtual int ShowModal();
 
 protected:
     // not supported for message dialog
     virtual void DoSetSize(int WXUNUSED(x), int WXUNUSED(y),
                            int WXUNUSED(width), int WXUNUSED(height),
                            int WXUNUSED(sizeFlags) = wxSIZE_AUTO) {}
-       
-private:
-       wxString m_yes,
-                        m_no,
-                        m_ok,
-                        m_cancel;
 
+    // override wxMessageDialogWithCustomLabels method to get rid of
+    // accelerators in the custom label strings
+    //
+    // VZ: I have no idea _why_ do we do this but the old version did and
+    //     I didn't want to change the existing behaviour
+    virtual void DoSetCustomLabel(wxString& var, const ButtonLabel& label);
+
+    DECLARE_DYNAMIC_CLASS(wxCocoaMessageDialog)
+    wxDECLARE_NO_COPY_CLASS(wxCocoaMessageDialog);
 };
 
 #endif // _WX_MSGDLG_H_