///////////////////////////////////////////////////////////////////////////// // Name: wx/msw/msgdlg.h // Purpose: wxMessageDialog class // Author: Julian Smart // Modified by: // Created: 01/02/97 // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_MSGBOXDLG_H_ #define _WX_MSGBOXDLG_H_ class WXDLLIMPEXP_CORE wxMessageDialog : public wxMessageDialogBase { public: wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption = wxASCII_STR(wxMessageBoxCaptionStr), long style = wxOK|wxCENTRE, const wxPoint& WXUNUSED(pos) = wxDefaultPosition) : wxMessageDialogBase(parent, message, caption, style) { m_hook = NULL; } virtual int ShowModal() wxOVERRIDE; virtual long GetEffectiveIcon() const wxOVERRIDE; // implementation-specific // return the font used for the text in the message box static wxFont GetMessageFont(); protected: // Override this as task dialogs are always centered on parent. virtual void DoCentre(int dir) wxOVERRIDE; 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); // used by ShowModal() to display a message box when task dialogs // aren't available. int ShowMessageBox(); WXHANDLE m_hook; // HHOOK used to position the message box wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMessageDialog); }; #endif // _WX_MSGBOXDLG_H_