implement support for custom button labels in wxMessageBox under MSW; refactor the code to reuse the existing setters in Mac ports for MSW as well

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-09-05 14:39:36 +00:00
parent 433aca2d0d
commit 23e00c551b
7 changed files with 285 additions and 154 deletions

View File

@@ -25,26 +25,22 @@ DECLARE_WXCOCOA_OBJC_CLASS(NSAlert);
#endif
#endif
#include "wx/generic/msgdlgg.h"
#if wxUSE_COCOA_NATIVE_MSGDLG
#define wxMessageDialog wxCocoaMessageDialog
#else
#include "wx/generic/msgdlgg.h"
#define wxMessageDialog wxGenericMessageDialog
#endif
//-------------------------------------------------------------------------
// wxMsgDialog
//-------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// wxCocoaMessageDialog
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxCocoaMessageDialog: public wxMessageDialogBase
class WXDLLIMPEXP_CORE wxCocoaMessageDialog
: public wxMessageDialogWithCustomLabels
{
DECLARE_DYNAMIC_CLASS(wxCocoaMessageDialog)
DECLARE_NO_COPY_CLASS(wxCocoaMessageDialog)
public:
wxCocoaMessageDialog(wxWindow *parent,
const wxString& message,
@@ -52,28 +48,23 @@ public:
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);
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 wxString& value);
DECLARE_DYNAMIC_CLASS(wxCocoaMessageDialog)
DECLARE_NO_COPY_CLASS(wxCocoaMessageDialog)
};
#endif // _WX_MSGDLG_H_