// Purpose: wxMessageDialog class
// Author: Gareth Simpson
// Created: 2007-10-29
+// RCS-ID: $Id$
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
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)
+ DECLARE_NO_COPY_CLASS(wxCocoaMessageDialog)
};
#endif // _WX_MSGDLG_H_