]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/msgdlg.h
added support for bitmaps in wxButton to wxOSX/Cocoa
[wxWidgets.git] / interface / wx / msgdlg.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: msgdlg.h
e54c96f1 3// Purpose: interface of wxMessageDialog
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxMessageDialog
7c913512 11
23324ae1
FM
12 This class represents a dialog that shows a single or multi-line message,
13 with a choice of OK, Yes, No and Cancel buttons.
7c913512 14
11dd61cb
FM
15 @beginStyleTable
16 @style{wxOK}
17 Puts an Ok button in the message box. May be combined with @c wxCANCEL.
18 @style{wxCANCEL}
19 Puts a Cancel button in the message box. Must be combined with
20 either @c wxOK or @c wxYES_NO.
21 @style{wxYES_NO}
22 Puts Yes and No buttons in the message box. May be combined with
23 @c wxCANCEL.
24 @style{wxNO_DEFAULT}
25 Makes the "No" button default, can only be used with @c wxYES_NO.
26 @style{wxCANCEL_DEFAULT}
27 Makes the "Cancel" button default, can only be used with @c wxCANCEL
28 @style{wxYES_DEFAULT}
29 Makes the "Yes" button default, this is the default behaviour and
30 this flag exists solely for symmetry with @c wxNO_DEFAULT.
31 @style{wxOK_DEFAULT}
32 Makes the "OK" button default, this is the default behaviour and
33 this flag exists solely for symmetry with @c wxCANCEL_DEFAULT.
34 @style{wxICON_EXCLAMATION}
35 Displays an exclamation mark symbol.
36 @style{wxICON_ERROR}
37 Displays an error symbol.
38 @style{wxICON_HAND}
39 Displays an error symbol, this is a MSW-inspired synonym for @c wxICON_ERROR.
40 @style{wxICON_QUESTION}
41 Displays a question mark symbol. This icon is automatically used
42 with @c wxYES_NO so it's usually unnecessary to specify it explicitly.
43 @style{wxICON_INFORMATION}
44 Displays an information symbol. This icon is used by default if
45 @c wxYES_NO is not given so it is usually unnecessary to specify it
46 explicitly.
47 @style{wxSTAY_ON_TOP}
48 Makes the message box stay on top of all other windows (currently
49 implemented only under MSW).
50 @endStyleTable
51
23324ae1
FM
52 @library{wxcore}
53 @category{cmndlg}
7c913512 54
ba1d7a6c 55 @see @ref overview_cmndlg_msg
23324ae1
FM
56*/
57class wxMessageDialog : public wxDialog
58{
59public:
60 /**
8ad89211 61 Constructor specifying the message box properties.
8ad89211
VZ
62 Use ShowModal() to show the dialog.
63
11dd61cb 64 @a style may be a bit list of the identifiers described above.
3c4f71cc 65
ba1d7a6c
FM
66 Notice that not all styles are compatible: only one of @c wxOK and
67 @c wxYES_NO may be specified (and one of them must be specified) and at
f45d6ade
VZ
68 most one default button style can be used and it is only valid if the
69 corresponding button is shown in the message box.
70
7c913512 71 @param parent
4cc4bfaf 72 Parent window.
7c913512 73 @param message
8ad89211 74 Message to show in the dialog.
7c913512 75 @param caption
8ad89211 76 The dialog title.
7c913512 77 @param style
8ad89211 78 Combination of style flags described above.
7c913512 79 @param pos
8ad89211 80 Dialog position (ignored under MSW).
23324ae1
FM
81 */
82 wxMessageDialog(wxWindow* parent, const wxString& message,
0a98423e 83 const wxString& caption = wxMessageBoxCaptionStr,
f45d6ade 84 long style = wxOK | wxCENTRE,
23324ae1
FM
85 const wxPoint& pos = wxDefaultPosition);
86
87 /**
8ad89211
VZ
88 Sets the extended message for the dialog: this message is usually an
89 extension of the short message specified in the constructor or set with
90 SetMessage().
91
92 If it is set, the main message appears highlighted -- if supported --
93 and this message appears beneath it in normal font. On the platforms
94 which don't support extended messages, it is simply appended to the
95 normal message with a new line separating them.
23324ae1 96 */
43c48e1e 97 virtual void SetExtendedMessage(const wxString& extendedMessage);
23324ae1
FM
98
99 /**
100 Sets the message shown by the dialog.
101 */
43c48e1e 102 virtual void SetMessage(const wxString& message);
23324ae1
FM
103
104 /**
105 Overrides the default labels of the OK and Cancel buttons.
8ad89211
VZ
106
107 Please see the remarks in SetYesNoLabels() documentation.
23324ae1 108 */
adaaa686
FM
109 virtual bool SetOKCancelLabels(const ButtonLabel& ok,
110 const ButtonLabel& cancel);
23324ae1
FM
111
112 /**
113 Overrides the default label of the OK button.
8ad89211
VZ
114
115 Please see the remarks in SetYesNoLabels() documentation.
23324ae1 116 */
adaaa686 117 virtual bool SetOKLabel(const ButtonLabel& ok);
23324ae1
FM
118
119 /**
120 Overrides the default labels of the Yes, No and Cancel buttons.
8ad89211
VZ
121
122 Please see the remarks in SetYesNoLabels() documentation.
23324ae1 123 */
fadc2df6
FM
124 virtual bool SetYesNoCancelLabels(const ButtonLabel& yes,
125 const ButtonLabel& no,
126 const ButtonLabel& cancel);
23324ae1
FM
127
128 /**
129 Overrides the default labels of the Yes and No buttons.
8ad89211 130
e08931c0
VZ
131 The arguments of this function can be either strings or one of the
132 standard identifiers, such as @c wxID_APPLY or @c wxID_OPEN. Notice
133 that even if the label is specified as an identifier, the return value
134 of the dialog ShowModal() method still remains one of @c wxID_OK, @c
135 wxID_CANCEL, @c wxID_YES or @c wxID_NO values, i.e. this identifier
136 changes only the label appearance but not the return code generated by
137 the button. It is possible to mix stock identifiers and string labels
138 in the same function call, for example:
139 @code
140 wxMessageDialog dlg(...);
141 dlg.SetYesNoLabels(wxID_SAVE, _("&Don't save"));
142 @endcode
143
144 Also notice that this function is not currently available on all
145 platforms (although as of wxWidgets 2.9.0 it is implemented in all
146 major ports), so it may return @false to indicate that the labels
147 couldn't be changed. If it returns @true (currently only under wxMac),
148 the labels were set successfully. Typically, if the function was used
8ad89211
VZ
149 successfully, the main dialog message may need to be changed, e.g.:
150 @code
151 wxMessageDialog dlg(...);
152 if ( dlg.SetYesNoLabels(_("&Quit"), _("&Don't quit")) )
153 dlg.SetMessage(_("What do you want to do?"));
154 else // buttons have standard "Yes"/"No" values, so rephrase the question
155 dlg.SetMessage(_("Do you really want to quit?"));
156 @endcode
23324ae1 157 */
adaaa686 158 virtual bool SetYesNoLabels(const ButtonLabel& yes, const ButtonLabel& no);
23324ae1
FM
159
160 /**
ba1d7a6c 161 Shows the dialog, returning one of wxID_OK, wxID_CANCEL, wxID_YES, wxID_NO.
8ad89211
VZ
162
163 Notice that this method returns the identifier of the button which was
164 clicked unlike wxMessageBox() function.
23324ae1 165 */
adaaa686 166 virtual int ShowModal();
23324ae1
FM
167};
168
169
e54c96f1 170
23324ae1
FM
171// ============================================================================
172// Global functions/macros
173// ============================================================================
174
b21126db 175/** @addtogroup group_funcmacro_dialog */
ba2874ff
BP
176//@{
177
23324ae1 178/**
8ad89211
VZ
179 Show a general purpose message dialog.
180
181 This is a convenient function which is usually used instead of using
182 wxMessageDialog directly. Notice however that some of the features, such as
183 extended text and custom labels for the message box buttons, are not
184 provided by this function but only by wxMessageDialog.
185
186 The return value is one of: @c wxYES, @c wxNO, @c wxCANCEL or @c wxOK
187 (notice that this return value is @b different from the return value of
188 wxMessageDialog::ShowModal()).
4cc4bfaf 189
8ad89211 190 For example:
23324ae1 191 @code
ba2874ff
BP
192 int answer = wxMessageBox("Quit program?", "Confirm",
193 wxYES_NO | wxCANCEL, main_frame);
194 if (answer == wxYES)
195 main_frame->Close();
23324ae1 196 @endcode
7c913512 197
ba2874ff
BP
198 @a message may contain newline characters, in which case the message will
199 be split into separate lines, to cater for large messages.
200
8ad89211
VZ
201 @param message
202 Message to show in the dialog.
203 @param caption
204 The dialog title.
205 @param parent
206 Parent window.
207 @param style
208 Combination of style flags described in wxMessageDialog documentation.
209 @param x
76e2b570 210 Horizontal dialog position (ignored under MSW). Use ::wxDefaultCoord
8ad89211
VZ
211 for @a x and @a y to let the system position the window.
212 @param y
213 Vertical dialog position (ignored under MSW).
ba2874ff 214 @header{wx/msgdlg.h}
23324ae1
FM
215*/
216int wxMessageBox(const wxString& message,
217 const wxString& caption = "Message",
218 int style = wxOK,
4cc4bfaf 219 wxWindow* parent = NULL,
8ad89211
VZ
220 int x = wxDefaultCoord,
221 int y = wxDefaultCoord);
23324ae1 222
ba2874ff
BP
223//@}
224