]>
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 | |
23324ae1 FM |
15 | @library{wxcore} |
16 | @category{cmndlg} | |
7c913512 | 17 | |
e54c96f1 | 18 | @see @ref overview_wxmessagedialogoverview "wxMessageDialog overview" |
23324ae1 FM |
19 | */ |
20 | class wxMessageDialog : public wxDialog | |
21 | { | |
22 | public: | |
23 | /** | |
8ad89211 VZ |
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{wxYES_DEFAULT} | |
43 | Makes the "Yes" button default, this is the default behaviour and | |
44 | this flag exists solely for symmetry with @c wxNO_DEFAULT. | |
45 | @style{wxICON_EXCLAMATION} | |
46 | Displays an exclamation mark symbol. | |
47 | @style{wxICON_ERROR} | |
48 | Displays an error symbol. | |
49 | @style{wxICON_HAND} | |
50 | Displays an error symbol, this is a MSW-inspired synonym for @c | |
51 | wxICON_ERROR. | |
52 | @style{wxICON_QUESTION} | |
53 | Displays a question mark symbol. This icon is automatically used | |
54 | with @c wxYES_NO so it's usually unnecessary to specify it | |
55 | explicitly. | |
56 | @style{wxICON_INFORMATION} | |
57 | Displays an information symbol. This icon is used by default if @c | |
58 | wxYES_NO is not given so it is usually unnecessary to specify it | |
59 | explicitly. | |
60 | @style{wxSTAY_ON_TOP} | |
61 | Makes the message box stay on top of all other windows (currently | |
62 | implemented only under MSW). | |
63 | @endStyleTable | |
3c4f71cc | 64 | |
7c913512 | 65 | @param parent |
4cc4bfaf | 66 | Parent window. |
7c913512 | 67 | @param message |
8ad89211 | 68 | Message to show in the dialog. |
7c913512 | 69 | @param caption |
8ad89211 | 70 | The dialog title. |
7c913512 | 71 | @param style |
8ad89211 | 72 | Combination of style flags described above. |
7c913512 | 73 | @param pos |
8ad89211 | 74 | Dialog position (ignored under MSW). |
23324ae1 FM |
75 | */ |
76 | wxMessageDialog(wxWindow* parent, const wxString& message, | |
77 | const wxString& caption = "Message box", | |
4cc4bfaf | 78 | long style = wxOK | wxCANCEL, |
23324ae1 FM |
79 | const wxPoint& pos = wxDefaultPosition); |
80 | ||
81 | /** | |
8ad89211 VZ |
82 | Sets the extended message for the dialog: this message is usually an |
83 | extension of the short message specified in the constructor or set with | |
84 | SetMessage(). | |
85 | ||
86 | If it is set, the main message appears highlighted -- if supported -- | |
87 | and this message appears beneath it in normal font. On the platforms | |
88 | which don't support extended messages, it is simply appended to the | |
89 | normal message with a new line separating them. | |
23324ae1 | 90 | */ |
8ad89211 | 91 | void SetExtendedMessage(const wxString extendedMessage); |
23324ae1 FM |
92 | |
93 | /** | |
94 | Sets the message shown by the dialog. | |
95 | */ | |
96 | void SetMessage(const wxString msg); | |
97 | ||
98 | /** | |
99 | Overrides the default labels of the OK and Cancel buttons. | |
8ad89211 VZ |
100 | |
101 | Please see the remarks in SetYesNoLabels() documentation. | |
23324ae1 FM |
102 | */ |
103 | bool SetOKCancelLabels(const wxString ok, const wxString cancel); | |
104 | ||
105 | /** | |
106 | Overrides the default label of the OK button. | |
8ad89211 VZ |
107 | |
108 | Please see the remarks in SetYesNoLabels() documentation. | |
23324ae1 FM |
109 | */ |
110 | bool SetOKLabel(const wxString ok); | |
111 | ||
112 | /** | |
113 | Overrides the default labels of the Yes, No and Cancel buttons. | |
8ad89211 VZ |
114 | |
115 | Please see the remarks in SetYesNoLabels() documentation. | |
23324ae1 FM |
116 | */ |
117 | bool SetYesNoCancelLabels(const wxString yes, const wxString no, | |
118 | const wxString cancel); | |
119 | ||
120 | /** | |
121 | Overrides the default labels of the Yes and No buttons. | |
8ad89211 VZ |
122 | |
123 | Notice that this function is not currently available on all platforms, | |
124 | so it may return @false to indicate that the labels couldn't be | |
125 | changed. If it returns @true (currently only under wxMac), the labels | |
126 | were set successfully. Typically, if the function was used | |
127 | successfully, the main dialog message may need to be changed, e.g.: | |
128 | @code | |
129 | wxMessageDialog dlg(...); | |
130 | if ( dlg.SetYesNoLabels(_("&Quit"), _("&Don't quit")) ) | |
131 | dlg.SetMessage(_("What do you want to do?")); | |
132 | else // buttons have standard "Yes"/"No" values, so rephrase the question | |
133 | dlg.SetMessage(_("Do you really want to quit?")); | |
134 | @endcode | |
23324ae1 FM |
135 | */ |
136 | bool SetYesNoLabels(const wxString yes, const wxString no); | |
137 | ||
138 | /** | |
8ad89211 VZ |
139 | Shows the dialog, returning one of wxID_OK, wxID_CANCEL, wxID_YES, |
140 | wxID_NO. | |
141 | ||
142 | Notice that this method returns the identifier of the button which was | |
143 | clicked unlike wxMessageBox() function. | |
23324ae1 FM |
144 | */ |
145 | int ShowModal(); | |
146 | }; | |
147 | ||
148 | ||
e54c96f1 | 149 | |
23324ae1 FM |
150 | // ============================================================================ |
151 | // Global functions/macros | |
152 | // ============================================================================ | |
153 | ||
ba2874ff BP |
154 | /** @ingroup group_funcmacro_dialog */ |
155 | //@{ | |
156 | ||
23324ae1 | 157 | /** |
8ad89211 VZ |
158 | Show a general purpose message dialog. |
159 | ||
160 | This is a convenient function which is usually used instead of using | |
161 | wxMessageDialog directly. Notice however that some of the features, such as | |
162 | extended text and custom labels for the message box buttons, are not | |
163 | provided by this function but only by wxMessageDialog. | |
164 | ||
165 | The return value is one of: @c wxYES, @c wxNO, @c wxCANCEL or @c wxOK | |
166 | (notice that this return value is @b different from the return value of | |
167 | wxMessageDialog::ShowModal()). | |
4cc4bfaf | 168 | |
8ad89211 | 169 | For example: |
23324ae1 | 170 | @code |
ba2874ff BP |
171 | int answer = wxMessageBox("Quit program?", "Confirm", |
172 | wxYES_NO | wxCANCEL, main_frame); | |
173 | if (answer == wxYES) | |
174 | main_frame->Close(); | |
23324ae1 | 175 | @endcode |
7c913512 | 176 | |
ba2874ff BP |
177 | @a message may contain newline characters, in which case the message will |
178 | be split into separate lines, to cater for large messages. | |
179 | ||
8ad89211 VZ |
180 | @param message |
181 | Message to show in the dialog. | |
182 | @param caption | |
183 | The dialog title. | |
184 | @param parent | |
185 | Parent window. | |
186 | @param style | |
187 | Combination of style flags described in wxMessageDialog documentation. | |
188 | @param x | |
189 | Horizontal dialog position (ignored under MSW). Use @c wxDefaultCoord | |
190 | for @a x and @a y to let the system position the window. | |
191 | @param y | |
192 | Vertical dialog position (ignored under MSW). | |
ba2874ff | 193 | @header{wx/msgdlg.h} |
23324ae1 FM |
194 | */ |
195 | int wxMessageBox(const wxString& message, | |
196 | const wxString& caption = "Message", | |
197 | int style = wxOK, | |
4cc4bfaf | 198 | wxWindow* parent = NULL, |
8ad89211 VZ |
199 | int x = wxDefaultCoord, |
200 | int y = wxDefaultCoord); | |
23324ae1 | 201 | |
ba2874ff BP |
202 | //@} |
203 |