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