X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..da8b1d4b3b535aba94d04494f5b6e2b3e47901ee:/include/wx/msw/msgdlg.h diff --git a/include/wx/msw/msgdlg.h b/include/wx/msw/msgdlg.h index ce1f8023b4..8fd4d7a4e3 100644 --- a/include/wx/msw/msgdlg.h +++ b/include/wx/msw/msgdlg.h @@ -12,31 +12,55 @@ #ifndef _WX_MSGBOXDLG_H_ #define _WX_MSGBOXDLG_H_ -#include "wx/setup.h" -#include "wx/dialog.h" +class WXDLLIMPEXP_CORE wxMessageDialog : public wxMessageDialogWithCustomLabels +{ +public: + wxMessageDialog(wxWindow *parent, + const wxString& message, + const wxString& caption = wxMessageBoxCaptionStr, + long style = wxOK|wxCENTRE, + const wxPoint& WXUNUSED(pos) = wxDefaultPosition) + : wxMessageDialogWithCustomLabels(parent, message, caption, style) + { + m_hook = NULL; + } -/* - * Message box dialog - */ + virtual int ShowModal(); -extern WXDLLEXPORT_DATA(const wxChar*) wxMessageBoxCaptionStr; + // implementation-specific + + // return the font used for the text in the message box + static wxFont GetMessageFont(); + +private: + // hook procedure used to adjust the message box beyond what the standard + // MessageBox() function can do for us + static WXLRESULT wxCALLBACK HookFunction(int code, WXWPARAM, WXLPARAM); + + static const struct ButtonAccessors + { + int id; + wxString (wxMessageDialog::*getter)() const; + } ms_buttons[]; + + // replace the static text control with a text control in order to show + // scrollbar (and also, incidentally, allow text selection) + void ReplaceStaticWithEdit(); + + // adjust the button labels + // + // this is called from HookFunction() and our HWND is valid at this moment + void AdjustButtonLabels(); + + // offset all buttons starting from the first one given by dx to the right + void OffsetButtonsStartingFrom(int first, int dx); -class WXDLLEXPORT wxMessageDialog: public wxDialog, public wxMessageDialogBase -{ -DECLARE_DYNAMIC_CLASS(wxMessageDialog) -protected: - wxString m_caption; - wxString m_message; - wxWindow * m_parent; -public: - wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - int ShowModal(void); + WXHANDLE m_hook; // HHOOK used to position the message box - DECLARE_NO_COPY_CLASS(wxMessageDialog) + DECLARE_DYNAMIC_CLASS(wxMessageDialog) + wxDECLARE_NO_COPY_CLASS(wxMessageDialog); }; -#endif - // _WX_MSGBOXDLG_H_ +#endif // _WX_MSGBOXDLG_H_