X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12f5e1e78fe906050ff2fee9529476db332633f0..ff3fd98a080f92ed9123d938d0eb26997cae5bea:/interface/wx/msgdlg.h diff --git a/interface/wx/msgdlg.h b/interface/wx/msgdlg.h index ea998ee6e8..4477d22675 100644 --- a/interface/wx/msgdlg.h +++ b/interface/wx/msgdlg.h @@ -12,55 +12,61 @@ This class represents a dialog that shows a single or multi-line message, with a choice of OK, Yes, No and Cancel buttons. + @beginStyleTable + @style{wxOK} + Puts an Ok button in the message box. May be combined with @c wxCANCEL. + @style{wxCANCEL} + Puts a Cancel button in the message box. Must be combined with + either @c wxOK or @c wxYES_NO. + @style{wxYES_NO} + Puts Yes and No buttons in the message box. May be combined with + @c wxCANCEL. + @style{wxNO_DEFAULT} + Makes the "No" button default, can only be used with @c wxYES_NO. + @style{wxCANCEL_DEFAULT} + Makes the "Cancel" button default, can only be used with @c wxCANCEL + @style{wxYES_DEFAULT} + Makes the "Yes" button default, this is the default behaviour and + this flag exists solely for symmetry with @c wxNO_DEFAULT. + @style{wxOK_DEFAULT} + Makes the "OK" button default, this is the default behaviour and + this flag exists solely for symmetry with @c wxCANCEL_DEFAULT. + @style{wxICON_EXCLAMATION} + Displays an exclamation mark symbol. + @style{wxICON_ERROR} + Displays an error symbol. + @style{wxICON_HAND} + Displays an error symbol, this is a MSW-inspired synonym for @c wxICON_ERROR. + @style{wxICON_QUESTION} + Displays a question mark symbol. This icon is automatically used + with @c wxYES_NO so it's usually unnecessary to specify it explicitly. + @style{wxICON_INFORMATION} + Displays an information symbol. This icon is used by default if + @c wxYES_NO is not given so it is usually unnecessary to specify it + explicitly. + @style{wxSTAY_ON_TOP} + Makes the message box stay on top of all other windows (currently + implemented only under MSW). + @endStyleTable + @library{wxcore} @category{cmndlg} - @see @ref overview_wxmessagedialogoverview "wxMessageDialog overview" + @see @ref overview_cmndlg_msg */ class wxMessageDialog : public wxDialog { public: /** Constructor specifying the message box properties. - Use ShowModal() to show the dialog. - @a style may be a bit list of the following identifiers: - - @beginStyleTable - @style{wxOK} - Puts an Ok button in the message box. May be combined with @c - wxCANCEL. - @style{wxCANCEL} - Puts a Cancel button in the message box. Must be combined with - either @c wxOK or @c wxYES_NO. - @style{wxYES_NO} - Puts Yes and No buttons in the message box. May be combined with - @c wxCANCEL. - @style{wxNO_DEFAULT} - Makes the "No" button default, can only be used with @c wxYES_NO. - @style{wxYES_DEFAULT} - Makes the "Yes" button default, this is the default behaviour and - this flag exists solely for symmetry with @c wxNO_DEFAULT. - @style{wxICON_EXCLAMATION} - Displays an exclamation mark symbol. - @style{wxICON_ERROR} - Displays an error symbol. - @style{wxICON_HAND} - Displays an error symbol, this is a MSW-inspired synonym for @c - wxICON_ERROR. - @style{wxICON_QUESTION} - Displays a question mark symbol. This icon is automatically used - with @c wxYES_NO so it's usually unnecessary to specify it - explicitly. - @style{wxICON_INFORMATION} - Displays an information symbol. This icon is used by default if @c - wxYES_NO is not given so it is usually unnecessary to specify it - explicitly. - @style{wxSTAY_ON_TOP} - Makes the message box stay on top of all other windows (currently - implemented only under MSW). - @endStyleTable + @a style may be a bit list of the identifiers described above. + + Notice that not all styles are compatible: only one of @c wxOK and + @c wxYES_NO may be specified (and one of them must be specified) and at + most one default button style can be used and it is only valid if the + corresponding button is shown in the message box. @param parent Parent window. @@ -74,8 +80,8 @@ public: Dialog position (ignored under MSW). */ wxMessageDialog(wxWindow* parent, const wxString& message, - const wxString& caption = "Message box", - long style = wxOK | wxCANCEL, + const wxString& caption = wxMessageBoxCaptionStr, + long style = wxOK | wxCENTRE, const wxPoint& pos = wxDefaultPosition); /** @@ -88,42 +94,58 @@ public: which don't support extended messages, it is simply appended to the normal message with a new line separating them. */ - void SetExtendedMessage(const wxString extendedMessage); + virtual void SetExtendedMessage(const wxString& extendedMessage); /** Sets the message shown by the dialog. */ - void SetMessage(const wxString msg); + virtual void SetMessage(const wxString& message); /** Overrides the default labels of the OK and Cancel buttons. Please see the remarks in SetYesNoLabels() documentation. */ - bool SetOKCancelLabels(const wxString ok, const wxString cancel); + virtual bool SetOKCancelLabels(const ButtonLabel& ok, + const ButtonLabel& cancel); /** Overrides the default label of the OK button. Please see the remarks in SetYesNoLabels() documentation. */ - bool SetOKLabel(const wxString ok); + virtual bool SetOKLabel(const ButtonLabel& ok); /** Overrides the default labels of the Yes, No and Cancel buttons. Please see the remarks in SetYesNoLabels() documentation. */ - bool SetYesNoCancelLabels(const wxString yes, const wxString no, - const wxString cancel); + virtual bool SetYesNoCancelLabels(const ButtonLabel& yes, + const ButtonLabel& no, + const ButtonLabel& cancel); /** Overrides the default labels of the Yes and No buttons. - Notice that this function is not currently available on all platforms, - so it may return @false to indicate that the labels couldn't be - changed. If it returns @true (currently only under wxMac), the labels - were set successfully. Typically, if the function was used + The arguments of this function can be either strings or one of the + standard identifiers, such as @c wxID_APPLY or @c wxID_OPEN. Notice + that even if the label is specified as an identifier, the return value + of the dialog ShowModal() method still remains one of @c wxID_OK, @c + wxID_CANCEL, @c wxID_YES or @c wxID_NO values, i.e. this identifier + changes only the label appearance but not the return code generated by + the button. It is possible to mix stock identifiers and string labels + in the same function call, for example: + @code + wxMessageDialog dlg(...); + dlg.SetYesNoLabels(wxID_SAVE, _("&Don't save")); + @endcode + + Also notice that this function is not currently available on all + platforms (although as of wxWidgets 2.9.0 it is implemented in all + major ports), so it may return @false to indicate that the labels + couldn't be changed. If it returns @true (currently only under wxMac), + the labels were set successfully. Typically, if the function was used successfully, the main dialog message may need to be changed, e.g.: @code wxMessageDialog dlg(...); @@ -133,16 +155,15 @@ public: dlg.SetMessage(_("Do you really want to quit?")); @endcode */ - bool SetYesNoLabels(const wxString yes, const wxString no); + virtual bool SetYesNoLabels(const ButtonLabel& yes, const ButtonLabel& no); /** - Shows the dialog, returning one of wxID_OK, wxID_CANCEL, wxID_YES, - wxID_NO. + Shows the dialog, returning one of wxID_OK, wxID_CANCEL, wxID_YES, wxID_NO. Notice that this method returns the identifier of the button which was clicked unlike wxMessageBox() function. */ - int ShowModal(); + virtual int ShowModal(); }; @@ -151,7 +172,7 @@ public: // Global functions/macros // ============================================================================ -/** @ingroup group_funcmacro_dialog */ +/** @addtogroup group_funcmacro_dialog */ //@{ /** @@ -186,7 +207,7 @@ public: @param style Combination of style flags described in wxMessageDialog documentation. @param x - Horizontal dialog position (ignored under MSW). Use @c wxDefaultCoord + Horizontal dialog position (ignored under MSW). Use ::wxDefaultCoord for @a x and @a y to let the system position the window. @param y Vertical dialog position (ignored under MSW).