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