X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2bda0e173844e8e0f8acf4e8ad8b5c26e5c6fe5d..7011055c55538a9f38bc265bbafab4afa3ae2981:/include/wx/msw/msgdlg.h diff --git a/include/wx/msw/msgdlg.h b/include/wx/msw/msgdlg.h index 7188bb2f62..30573d8eac 100644 --- a/include/wx/msw/msgdlg.h +++ b/include/wx/msw/msgdlg.h @@ -1,49 +1,73 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msgdlg.h +// Name: wx/msw/msgdlg.h // Purpose: wxMessageDialog class // Author: Julian Smart // Modified by: // Created: 01/02/97 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Copyright: (c) Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __MSGBOXDLGH__ -#define __MSGBOXDLGH__ +#ifndef _WX_MSGBOXDLG_H_ +#define _WX_MSGBOXDLG_H_ -#ifdef __GNUG__ -#pragma interface "msgdlg.h" -#endif +class WXDLLIMPEXP_CORE wxMessageDialog : public wxMessageDialogBase +{ +public: + wxMessageDialog(wxWindow *parent, + const wxString& message, + const wxString& caption = wxMessageBoxCaptionStr, + long style = wxOK|wxCENTRE, + const wxPoint& WXUNUSED(pos) = wxDefaultPosition) + : wxMessageDialogBase(parent, message, caption, style) + { + m_hook = NULL; + } -#include "wx/setup.h" -#include "wx/dialog.h" + virtual int ShowModal(); -/* - * Message box dialog - */ + // implementation-specific -WXDLLEXPORT_DATA(extern const char*) wxMessageBoxCaptionStr; + // return the font used for the text in the message box + static wxFont GetMessageFont(); -class WXDLLEXPORT wxMessageDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxMessageDialog) protected: - wxString m_caption; - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; -public: - wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, const wxPoint& pos = wxDefaultPosition); + // Override this as task dialogs are always centered on parent. + virtual void DoCentre(int dir); - int ShowModal(void); -}; +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); +}; -int WXDLLEXPORT wxMessageBox(const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - const long style = wxOK|wxCENTRE, - wxWindow *parent = NULL, const int x = -1, const int y = -1); -#endif - // __MSGBOXDLGH__ +#endif // _WX_MSGBOXDLG_H_