]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/aboutdlg.h
wxMessageBox off the main thread lost result code.
[wxWidgets.git] / interface / wx / aboutdlg.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: aboutdlg.h
463b4bfa 3// Purpose: interface of wxAboutDialogInfo
23324ae1 4// Author: wxWidgets team
526954c5 5// Licence: wxWindows licence
23324ae1
FM
6/////////////////////////////////////////////////////////////////////////////
7
8/**
9 @class wxAboutDialogInfo
7c913512 10
23324ae1 11 wxAboutDialogInfo contains information shown in the standard @e About
3a65144e 12 dialog displayed by the wxAboutBox() function.
7c913512 13
23324ae1
FM
14 This class contains the general information about the program, such as its
15 name, version, copyright and so on, as well as lists of the program developers,
16 documentation writers, artists and translators. The simple properties from the
17 former group are represented as a string with the exception of the program icon
7c913512 18 and the program web site, while the lists from the latter group are stored as
463b4bfa
FM
19 wxArrayString and can be either set entirely at once using
20 wxAboutDialogInfo::SetDevelopers and similar functions or built one by one using
21 wxAboutDialogInfo::AddDeveloper etc.
7c913512 22
23324ae1
FM
23 Please also notice that while all the main platforms have the native
24 implementation of the about dialog, they are often more limited than the
25 generic version provided by wxWidgets and so the generic version is used if
26 wxAboutDialogInfo has any fields not supported by the native version. Currently
27 GTK+ version supports all the possible fields natively but MSW and Mac versions
28 don't support URLs, licence text nor custom icons in the about dialog and if
3a65144e
FM
29 either of those is used, wxAboutBox() will automatically use the generic version
30 so you should avoid specifying these fields to achieve more native look and feel.
7cfac8c8
FM
31
32 Example of usage:
33 @code
34 void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
35 {
36 wxAboutDialogInfo aboutInfo;
37 aboutInfo.SetName("MyApp");
38 aboutInfo.SetVersion(MY_APP_VERSION_STRING);
39 aboutInfo.SetDescription(_("My wxWidgets-based application!"));
40 aboutInfo.SetCopyright("(C) 1992-2010");
41 aboutInfo.SetWebSite("http://myapp.org");
42 aboutInfo.AddDeveloper("My Self");
43
44 wxAboutBox(aboutInfo);
45 }
46 @endcode
7c913512 47
23324ae1 48 @library{wxadv}
3c99e2fd 49 @category{cmndlg,data}
7c913512 50
3a65144e 51 @see wxAboutDialogInfo::SetArtists
23324ae1 52*/
7c913512 53class wxAboutDialogInfo
23324ae1
FM
54{
55public:
56 /**
57 Default constructor leaves all fields are initially uninitialized, in general
463b4bfa 58 you should call at least SetVersion(), SetCopyright() and SetDescription().
23324ae1
FM
59 */
60 wxAboutDialogInfo();
61
62 /**
63 Adds an artist name to be shown in the program credits.
3c4f71cc 64
4cc4bfaf 65 @see SetArtists()
23324ae1
FM
66 */
67 void AddArtist(const wxString& artist);
68
69 /**
70 Adds a developer name to be shown in the program credits.
3c4f71cc 71
4cc4bfaf 72 @see SetDevelopers()
23324ae1
FM
73 */
74 void AddDeveloper(const wxString& developer);
75
76 /**
77 Adds a documentation writer name to be shown in the program credits.
3c4f71cc 78
4cc4bfaf 79 @see SetDocWriters()
23324ae1
FM
80 */
81 void AddDocWriter(const wxString& docwriter);
82
83 /**
84 Adds a translator name to be shown in the program credits. Notice that if no
57ab6f23 85 translator names are specified explicitly, wxAboutBox() will try to use the
463b4bfa
FM
86 translation of the string @c translator-credits from the currently used message
87 catalog -- this can be used to show just the name of the translator of the
88 program in the current language.
3c4f71cc 89
4cc4bfaf 90 @see SetTranslators()
23324ae1
FM
91 */
92 void AddTranslator(const wxString& translator);
93
5b70f2de
VZ
94 /**
95 Get the name of the program.
96
97 @return Name of the program
98 @see SetName()
99 */
9d384299 100 wxString GetName() const;
5b70f2de
VZ
101
102 /**
103 Returns @true if a description string has been specified.
104
105 @see GetDescription()
106 */
107 bool HasDescription() const;
108
109 /**
110 Get the description string.
111
112 @return The description string, free-form.
113 */
114 const wxString& GetDescription();
115
116 /**
117 Returns @true if a copyright string has been specified.
118
119 @see GetCopyright()
120 */
121 bool HasCopyright() const;
122
123 /**
124 Get the copyright string.
125
126 @return The copyright string
127 */
128 const wxString& GetCopyright() const;
129
23324ae1 130 /**
57ab6f23 131 Sets the list of artists to be shown in the program credits.
3c4f71cc 132
4cc4bfaf 133 @see AddArtist()
23324ae1
FM
134 */
135 void SetArtists(const wxArrayString& artists);
136
137 /**
4cc4bfaf
FM
138 Set the short string containing the program copyright information. Notice that
139 any occurrences of @c "(C)" in @a copyright will be replaced by the
23324ae1
FM
140 copyright symbol (circled C) automatically, which means that you can avoid
141 using this symbol in the program source code which can be problematic,
142 */
143 void SetCopyright(const wxString& copyright);
144
145 /**
146 Set brief, but possibly multiline, description of the program.
147 */
148 void SetDescription(const wxString& desc);
149
150 /**
151 Set the list of developers of the program.
3c4f71cc 152
4cc4bfaf 153 @see AddDeveloper()
23324ae1
FM
154 */
155 void SetDevelopers(const wxArrayString& developers);
156
157 /**
158 Set the list of documentation writers.
3c4f71cc 159
4cc4bfaf 160 @see AddDocWriter()
23324ae1
FM
161 */
162 void SetDocWriters(const wxArrayString& docwriters);
163
164 /**
165 Set the icon to be shown in the dialog. By default the icon of the main frame
166 will be shown if the native about dialog supports custom icons. If it doesn't
167 but a valid icon is specified using this method, the generic about dialog is
168 used instead so you should avoid calling this function for maximally native
169 look and feel.
170 */
171 void SetIcon(const wxIcon& icon);
172
173 /**
174 Set the long, multiline string containing the text of the program licence.
463b4bfa 175
23324ae1
FM
176 Only GTK+ version supports showing the licence text in the native about dialog
177 currently so the generic version will be used under all the other platforms if
178 this method is called. To preserve the native look and feel it is advised that
7c913512 179 you do not call this method but provide a separate menu item in the
23324ae1
FM
180 @c "Help" menu for displaying the text of your program licence.
181 */
182 void SetLicence(const wxString& licence);
183
184 /**
185 This is the same as SetLicence().
186 */
187 void SetLicense(const wxString& licence);
188
189 /**
190 Set the name of the program. If this method is not called, the string returned
191 by wxApp::GetAppName will be shown in the dialog.
192 */
193 void SetName(const wxString& name);
194
195 /**
463b4bfa 196 Set the list of translators. Please see AddTranslator() for additional
23324ae1
FM
197 discussion.
198 */
199 void SetTranslators(const wxArrayString& translators);
200
201 /**
704006b3
VZ
202 Set the version of the program. The word "version" shouldn't be included
203 in @a version. Example @a version values: "1.2" and "RC2". In about dialogs
204 with more space set aside for version information, @a longVersion is used.
205 Example @a longVersion values: "Version 1.2" and "Release Candidate 2".
206 If @a version is non-empty but @a longVersion is empty, a long version
207 is constructed automatically, using @a version (by simply prepending
208 "Version " to @a version).
209
210 The generic about dialog and native GTK+ dialog use @a version only,
211 as a suffix to the program name. The native MSW and OS X about dialogs
212 use the long version.
213 */
214 void SetVersion(const wxString& version, const wxString& longVersion = wxString());
23324ae1
FM
215
216 /**
463b4bfa 217 Set the web site for the program and its description (which defaults to @a url
23324ae1 218 itself if empty).
463b4bfa 219
23324ae1
FM
220 Please notice that only GTK+ version currently supports showing the link in the
221 native about dialog so if this method is called, the generic version will be
222 used under all the other platforms.
223 */
224 void SetWebSite(const wxString& url,
225 const wxString& desc = wxEmptyString);
226};
227
228
229// ============================================================================
230// Global functions/macros
231// ============================================================================
232
b21126db 233/** @addtogroup group_funcmacro_dialog */
39fb8056
FM
234//@{
235
23324ae1
FM
236/**
237 This function shows the standard about dialog containing the information
463b4bfa
FM
238 specified in @a info. If the current platform has a native about dialog
239 which is capable of showing all the fields in @a info, the native dialog is
240 used, otherwise the function falls back to the generic wxWidgets version of
241 the dialog, i.e. does the same thing as wxGenericAboutBox.
242
23324ae1 243 Here is an example of how this function may be used:
7c913512 244
23324ae1
FM
245 @code
246 void MyFrame::ShowSimpleAboutDialog(wxCommandEvent& WXUNUSED(event))
247 {
248 wxAboutDialogInfo info;
249 info.SetName(_("My Program"));
250 info.SetVersion(_("1.2.3 Beta"));
251 info.SetDescription(_("This program does something great."));
9a83f860 252 info.SetCopyright(wxT("(C) 2007 Me <my@email.addre.ss>"));
7c913512 253
23324ae1
FM
254 wxAboutBox(info);
255 }
256 @endcode
7c913512 257
e4f1d811
FM
258 Please see the @ref page_samples_dialogs for more examples of using this
259 function and wxAboutDialogInfo for the description of the information which
260 can be shown in the about dialog.
ba2874ff
BP
261
262 @header{wx/aboutdlg.h}
23324ae1 263*/
c173e541 264void wxAboutBox(const wxAboutDialogInfo& info, wxWindow* parent = NULL);
23324ae1
FM
265
266/**
3a65144e 267 This function does the same thing as wxAboutBox() except that it always uses
463b4bfa
FM
268 the generic wxWidgets version of the dialog instead of the native one.
269
270 This is mainly useful if you need to customize the dialog by e.g. adding
271 custom controls to it (customizing the native dialog is not currently
23324ae1 272 supported).
463b4bfa 273
e4f1d811 274 See the @ref page_samples_dialogs for an example of about dialog
4cc4bfaf 275 customization.
7c913512 276
4cc4bfaf 277 @see wxAboutDialogInfo
ba2874ff
BP
278
279 @header{wx/aboutdlg.h}
23324ae1 280*/
c173e541 281void wxGenericAboutBox(const wxAboutDialogInfo& info, wxWindow* parent = NULL);
23324ae1 282
39fb8056 283//@}