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