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