KiCad PCB EDA Suite
AboutDialog_main.cpp
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2010 Rafael Sokolowski <Rafael.Sokolowski@web.de>
5  * Copyright (C) 2010-2018 KiCad Developers, see AUTHORS.txt for contributors.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, you may find one here:
19  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20  * or you may search the http://www.gnu.org website for the version 2 license,
21  * or you may write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23  */
24 
25 #include <boost/version.hpp>
26 #include <wx/aboutdlg.h>
27 #include <wx/arrimpl.cpp>
28 #include <wx/textctrl.h>
29 #include <wx/utils.h>
30 
31 /* Used icons:
32  * lang_xx_xpm; // Icons of various national flags
33  * show_3d_xpm; // 3D icon
34  * edit_module_xpm;
35  * icon_kicad_xpm; // Icon of the application
36  */
37 #include <bitmaps.h>
38 #include <build_version.h>
39 #include <common.h>
40 #include <pgm_base.h>
41 #include <eda_base_frame.h>
42 
43 #include "aboutinfo.h"
44 #include "dialog_about.h"
45 
46 
47 WX_DEFINE_OBJARRAY( CONTRIBUTORS )
48 
49 // Helper functions:
50 static wxString HtmlHyperlink( const wxString& url, const wxString& description = wxEmptyString );
51 static wxString HtmlNewline( const unsigned int amount = 1 );
52 
53 
58 static void buildKicadAboutBanner( EDA_BASE_FRAME* aParent, ABOUT_APP_INFO& aInfo )
59 {
60  // Set application specific icon
61  aInfo.SetAppIcon( aParent->GetIcon() );
62 
63  /* Set title */
64  aInfo.SetAppName( Pgm().App().GetAppName() );
65 
66  /* Copyright information */
67  aInfo.SetCopyright( "(C) 1992-2019 KiCad Developers Team" );
68 
69  /* KiCad build version */
70  wxString version;
71  version << GetBuildVersion()
72 #ifdef DEBUG
73  << ", debug"
74 #else
75  << ", release"
76 #endif
77  << " build";
78 
79  aInfo.SetBuildVersion( version );
80 
81  /* wxWidgets version */
82  wxString libVersion;
83  libVersion << wxGetLibraryVersionInfo().GetVersionString();
84 
85  /* Unicode or ANSI version */
86 #if wxUSE_UNICODE
87  libVersion << wxT( " Unicode " );
88 #else
89  libVersion << wxT( " ANSI " );
90 #endif
91 
92  // Just in case someone builds KiCad with the platform native of Boost instead of
93  // the version included with the KiCad source.
94  libVersion << "and Boost " << ( BOOST_VERSION / 100000 ) << "."
95  << ( BOOST_VERSION / 100 % 1000 ) << "." << ( BOOST_VERSION % 100 )
96  << "\n";
97 
98  // Operating System Information
99 
100  wxPlatformInfo platformInfo;
101 
102  libVersion << "Platform: " << wxGetOsDescription() << ", " << platformInfo.GetArchName();
103 
104  aInfo.SetLibVersion( libVersion );
105 
106 
107  /* info/description part HTML formatted */
108 
109  wxString description;
110 
111  /* short description */
112  description << "<p>";
113  description << "<b><u>"
114  << _( "Description" )
115  << "</u></b>"; // bold & underlined font for caption
116 
117  description << "<p>"
118  << _( "The KiCad EDA Suite is a set of open source applications for the "
119  "creation of electronic schematics and printed circuit boards." )
120  << "</p>";
121 
122  description << "</p>";
123 
124  /* websites */
125  description << "<p><b><u>"
126  << _( "KiCad on the web" )
127  << "</u></b>"; // bold & underlined font for caption
128 
129  // bullet-ed list with some http links
130  description << "<ul>";
131  description << "<li>"
132  << _( "The official KiCad website - " )
133  << HtmlHyperlink( "http://www.kicad-pcb.org" )
134  << "</li>";
135  description << "<li>"
136  << _( "Developer website on Launchpad - " )
137  << HtmlHyperlink( "https://launchpad.net/kicad" )
138  << "</li>";
139 
140  description << "<li>"
141  << _("Official KiCad library repositories - " )
142  << HtmlHyperlink( "https://kicad.github.io" )
143  << "</li>";
144 
145  description << "</ul></p>";
146 
147  description << "<p><b><u>"
148  << _( "Bug tracker" )
149  << "</u></b>"; // bold & underlined font caption
150 
151  // bullet-ed list with some http links
152  description << "<ul>";
153  description << "<li>"
154  << _( "Report or examine bugs - " )
155  << HtmlHyperlink( "https://bugs.launchpad.net/kicad/+bugs?orderby=-id&start=0",
156  "https://bugs.launchpad.net/kicad" )
157  << "</li>";
158  description << "</ul></p>";
159 
160  description << "<p><b><u>"
161  << _( "KiCad user's groups and community" )
162  << "</u></b>"; // bold & underlined font caption
163 
164  description << "<ul>";
165  description << "<li>"
166  << _( "KiCad forum - " )
167  << HtmlHyperlink( "https://forum.kicad.info" )
168  << "</li>";
169 
170  description << "<li>"
171  <<_( "KiCad user's group - " )
172  << HtmlHyperlink( "https://groups.yahoo.com/neo/groups/kicad-users/info" )
173  << "</li>";
174 
175  description << "</ul></p>";
176 
177  aInfo.SetDescription( description );
178 
179 
180  // License information also HTML formatted:
181  wxString license;
182  license
183  << "<div align='center'>"
184  << HtmlNewline( 4 )
185  << _( "The complete KiCad EDA Suite is released under the" ) << HtmlNewline( 2 )
186  << HtmlHyperlink( "http://www.gnu.org/licenses",
187  _( "GNU Affero General Public License (AGPL) version 3 or any later version" ) )
188  << "</div>";
189 
190  aInfo.SetLicense( license );
191 
192 
193  /* A contributor consists of the following information:
194  * Mandatory:
195  * - Name
196  * Optional:
197  * - EMail address
198  * - Category
199  * - Category specific icon
200  *
201  * All contributors of the same category will be enumerated under this category
202  * which should be represented by the same icon.
203  */
204 
205  // The core developers
206  aInfo.AddDeveloper( new CONTRIBUTOR( "Jean-Pierre Charras" ) );
207  aInfo.AddDeveloper( new CONTRIBUTOR( "Dick Hollenbeck" ) );
208  aInfo.AddDeveloper( new CONTRIBUTOR( "Wayne Stambaugh" ) );
209 
210  // alphabetically by last name after main 3 above:
211  aInfo.AddDeveloper( new CONTRIBUTOR( "Frank Bennett" ) );
212  aInfo.AddDeveloper( new CONTRIBUTOR( "Cirilo Bernardo" ) );
213  aInfo.AddDeveloper( new CONTRIBUTOR( "Kevin Cozens" ) );
214  aInfo.AddDeveloper( new CONTRIBUTOR( "Jonas Diemer" ) );
215  aInfo.AddDeveloper( new CONTRIBUTOR( "Jon Evans" ) );
216  aInfo.AddDeveloper( new CONTRIBUTOR( "Seth Hillbrand" ) );
217  aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Torsten Hüter" ) ) );
218  aInfo.AddDeveloper( new CONTRIBUTOR( "Jerry Jacobs" ) );
219  aInfo.AddDeveloper( new CONTRIBUTOR( "Mario Luzeiro" ) );
220  aInfo.AddDeveloper( new CONTRIBUTOR( "Daniel Majewski" ) );
221  aInfo.AddDeveloper( new CONTRIBUTOR( "Lorenzo Marcantonio" ) );
222  aInfo.AddDeveloper( new CONTRIBUTOR( "Marco Mattila" ) );
223  aInfo.AddDeveloper( new CONTRIBUTOR( "Ian McInerney" ) );
224  aInfo.AddDeveloper( new CONTRIBUTOR( "Russell Oliver" ) );
225  aInfo.AddDeveloper( new CONTRIBUTOR( "Alexis Lockwood" ) );
226  aInfo.AddDeveloper( new CONTRIBUTOR( "Miguel Angel Ajo Pelayo" ) );
227  aInfo.AddDeveloper( new CONTRIBUTOR( "Jacobo Aragunde Perez" ) );
228  aInfo.AddDeveloper( new CONTRIBUTOR( "Simon Richter" ) );
229  aInfo.AddDeveloper( new CONTRIBUTOR( "Mark Roszko" ) );
230  aInfo.AddDeveloper( new CONTRIBUTOR( "Marco Serantoni" ) );
231  aInfo.AddDeveloper( new CONTRIBUTOR( "Brian Sidebotham" ) );
232  aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ) ) );
233  aInfo.AddDeveloper( new CONTRIBUTOR( "Rafael Sokolowski" ) );
234  aInfo.AddDeveloper( new CONTRIBUTOR( "Vesa Solonen" ) );
235  aInfo.AddDeveloper( new CONTRIBUTOR( "Bernhard Stegmaier" ) );
236  aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Orson (Maciej Sumiński)" ) ) );
237  aInfo.AddDeveloper( new CONTRIBUTOR( "Oliver Walters" ) );
238  aInfo.AddDeveloper( new CONTRIBUTOR( "Tomasz Wlostowski" ) );
239  aInfo.AddDeveloper( new CONTRIBUTOR( "Adam Wolf" ) );
240  aInfo.AddDeveloper( new CONTRIBUTOR( "Jeff Young" ) );
241  aInfo.AddDeveloper( new CONTRIBUTOR( "Alexander Zakamaldin" ) );
242  aInfo.AddDeveloper( new CONTRIBUTOR( "Henner Zeller" ) );
243  aInfo.AddDeveloper( new CONTRIBUTOR( "Andrew Zonenberg" ) );
244  aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nick Østergaard" ) ) );
245 
246  // The document writers
247  aInfo.AddDocWriter( new CONTRIBUTOR( "Jean-Pierre Charras" ) );
248  aInfo.AddDocWriter( new CONTRIBUTOR( "Marco Ciampa" ) );
249  aInfo.AddDocWriter( new CONTRIBUTOR( "Dick Hollenbeck" ) );
250  aInfo.AddDocWriter( new CONTRIBUTOR( "Igor Plyatov" ) );
251  aInfo.AddDocWriter( new CONTRIBUTOR( "Wayne Stambaugh" ) );
252  aInfo.AddDocWriter( new CONTRIBUTOR( "Fabrizio Tappero" ) );
253 
254  /* The translators
255  * As category the language to which the translation was done is used
256  * and as icon the national flag of the corresponding country.
257  */
258  aInfo.AddTranslator( new CONTRIBUTOR( "Robert Buj",
259  wxEmptyString,
260  wxEmptyString,
261  "Catalan (CA)",
262  aInfo.CreateKiBitmap( lang_ca_xpm ) ) );
263  aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Martin Kratoška" ),
264  wxEmptyString,
265  wxEmptyString,
266  "Czech (CZ)",
267  aInfo.CreateKiBitmap( lang_cs_xpm ) ) );
268  aInfo.AddTranslator( new CONTRIBUTOR( "Jerry Jacobs",
269  wxEmptyString,
270  wxEmptyString,
271  "Dutch (NL)",
272  aInfo.CreateKiBitmap( lang_nl_xpm ) ) );
273  aInfo.AddTranslator( new CONTRIBUTOR( "Vesa Solonen",
274  wxEmptyString,
275  wxEmptyString,
276  "Finnish (FI)",
277  aInfo.CreateKiBitmap( lang_fi_xpm ) ) );
278  aInfo.AddTranslator( new CONTRIBUTOR( "Jean-Pierre Charras",
279  wxEmptyString,
280  wxEmptyString,
281  "French (FR)",
282  aInfo.CreateKiBitmap( lang_fr_xpm ) ) );
283  aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ),
284  wxEmptyString,
285  wxEmptyString,
286  "Polish (PL)",
287  aInfo.CreateKiBitmap( lang_pl_xpm ) ) );
288  aInfo.AddTranslator( new CONTRIBUTOR( "Kerusey Karyu",
289  wxEmptyString,
290  wxEmptyString,
291  "Polish (PL)",
292  aInfo.CreateKiBitmap( lang_pl_xpm ) ) );
293  aInfo.AddTranslator( new CONTRIBUTOR( "Renie Marquet",
294  wxEmptyString,
295  wxEmptyString,
296  "Portuguese (PT)",
297  aInfo.CreateKiBitmap( lang_pt_xpm ) ) );
298  aInfo.AddTranslator( new CONTRIBUTOR( "Igor Plyatov",
299  wxEmptyString,
300  wxEmptyString,
301  "Russian (RU)",
302  aInfo.CreateKiBitmap( lang_ru_xpm ) ) );
303  aInfo.AddTranslator( new CONTRIBUTOR( "Andrey Fedorushkov",
304  wxEmptyString,
305  wxEmptyString,
306  "Russian (RU)",
307  aInfo.CreateKiBitmap( lang_ru_xpm ) ) );
308  aInfo.AddTranslator( new CONTRIBUTOR( "Eldar Khayrullin",
309  wxEmptyString,
310  wxEmptyString,
311  "Russian (RU)",
312  aInfo.CreateKiBitmap( lang_ru_xpm ) ) );
313  aInfo.AddTranslator( new CONTRIBUTOR( "Pedro Martin del Valle",
314  wxEmptyString,
315  wxEmptyString,
316  "Spanish (ES)",
317  aInfo.CreateKiBitmap( lang_es_xpm ) ) );
318  aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
319  wxEmptyString,
320  wxEmptyString,
321  "Spanish (ES)",
322  aInfo.CreateKiBitmap( lang_es_xpm ) ) );
323  aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Figuero" ),
324  wxEmptyString,
325  wxEmptyString,
326  "Spanish (ES)",
327  aInfo.CreateKiBitmap( lang_es_xpm ) ) );
328  aInfo.AddTranslator( new CONTRIBUTOR( "Rafael Sokolowski",
329  wxEmptyString,
330  wxEmptyString,
331  "German (DE)",
332  aInfo.CreateKiBitmap( lang_de_xpm ) ) );
333  aInfo.AddTranslator( new CONTRIBUTOR( "Kenta Yonekura",
334  wxEmptyString,
335  wxEmptyString,
336  "Japanese (JA)",
337  aInfo.CreateKiBitmap( lang_jp_xpm ) ) );
338  aInfo.AddTranslator( new CONTRIBUTOR( "Manolis Stefanis",
339  wxEmptyString,
340  wxEmptyString,
341  "Greek (el_GR)",
342  aInfo.CreateKiBitmap( lang_gr_xpm ) ) );
343  aInfo.AddTranslator( new CONTRIBUTOR( "Athanasios Vlastos",
344  wxEmptyString,
345  wxEmptyString,
346  "Greek (el_GR)",
347  aInfo.CreateKiBitmap( lang_gr_xpm ) ) );
348  aInfo.AddTranslator( new CONTRIBUTOR( "Milonas Kostas",
349  wxEmptyString,
350  wxEmptyString,
351  "Greek (el_GR)",
352  aInfo.CreateKiBitmap( lang_gr_xpm ) ) );
353  aInfo.AddTranslator( new CONTRIBUTOR( "Michail Misirlis",
354  wxEmptyString,
355  wxEmptyString,
356  "Greek (el_GR)",
357  aInfo.CreateKiBitmap( lang_gr_xpm ) ) );
358  aInfo.AddTranslator( new CONTRIBUTOR( "Massimo Cioce",
359  wxEmptyString,
360  wxEmptyString,
361  "Italian (IT)",
362  aInfo.CreateKiBitmap( lang_it_xpm ) ) );
363  aInfo.AddTranslator( new CONTRIBUTOR( "Marco Ciampa",
364  wxEmptyString,
365  wxEmptyString,
366  "Italian (IT)",
367  aInfo.CreateKiBitmap( lang_it_xpm ) ) );
368  aInfo.AddTranslator( new CONTRIBUTOR( "Evgeniy Ivanov",
369  wxEmptyString,
370  wxEmptyString,
371  "Bulgarian (BG)",
372  aInfo.CreateKiBitmap( lang_bg_xpm ) ) );
373  aInfo.AddTranslator( new CONTRIBUTOR( "Liu Guang",
374  wxEmptyString,
375  wxEmptyString,
376  "Simplified Chinese (zh_CN)",
377  aInfo.CreateKiBitmap( lang_zh_xpm ) ) );
378  aInfo.AddTranslator( new CONTRIBUTOR( "Taotieren",
379  wxEmptyString,
380  wxEmptyString,
381  "Simplified Chinese (zh_CN)",
382  aInfo.CreateKiBitmap( lang_zh_xpm ) ) );
383 
384  // Maintainer who helper in translations, but not in a specific translation
385  #define OTHERS_IN_TRANSLATION _( "Others" )
386  aInfo.AddTranslator( new CONTRIBUTOR( "Remy Halvick",
387  wxEmptyString,
388  wxEmptyString,
390  aInfo.AddTranslator( new CONTRIBUTOR( "David Briscoe",
391  wxEmptyString,
392  wxEmptyString,
394  aInfo.AddTranslator( new CONTRIBUTOR( "Dominique Laigle",
395  wxEmptyString,
396  wxEmptyString,
398  aInfo.AddTranslator( new CONTRIBUTOR( "Paul Burke",
399  wxEmptyString,
400  wxEmptyString,
402 
403  // Programm credits for icons
404  #define ICON_CONTRIBUTION _( "Icons by" )
405  aInfo.AddArtist( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
406  wxEmptyString,
407  wxEmptyString,
409  aInfo.CreateKiBitmap( svg_file_xpm ) ) );
410  aInfo.AddArtist( new CONTRIBUTOR( "Konstantin Baranovskiy",
411  wxEmptyString,
412  wxEmptyString,
414  aInfo.CreateKiBitmap( svg_file_xpm ) ) );
415  aInfo.AddArtist( new CONTRIBUTOR( "Fabrizio Tappero",
416  wxEmptyString,
417  wxEmptyString,
419  aInfo.CreateKiBitmap( svg_file_xpm ) ) );
420 
421  // Program credits for 3d models
422  #define MODELS_3D_CONTRIBUTION _( "3D models by" )
423  aInfo.AddArtist( new CONTRIBUTOR( "GitHub contributors",
424  wxEmptyString,
425  "https://github.com/KiCad/kicad-packages3D/graphs/contributors",
427  aInfo.CreateKiBitmap( three_d_xpm ) ) );
428  aInfo.AddArtist( new CONTRIBUTOR( "Christophe Boschat",
429  wxEmptyString,
430  wxEmptyString,
432  aInfo.CreateKiBitmap( three_d_xpm ) ) );
433  aInfo.AddArtist( new CONTRIBUTOR( "Renie Marquet",
434  wxEmptyString,
435  wxEmptyString,
437  aInfo.CreateKiBitmap( three_d_xpm ) ) );
438 
439  #define SYMBOL_LIB_CONTRIBUTION _( "Symbols by" )
440  aInfo.AddArtist( new CONTRIBUTOR( "GitHub contributors",
441  wxEmptyString,
442  "https://github.com/KiCad/kicad-symbols/graphs/contributors",
444  aInfo.CreateKiBitmap( new_component_xpm ) ) );
445 
446  #define FOOTPRINT_LIB_CONTRIBUTION _( "Footprints by" )
447  aInfo.AddArtist( new CONTRIBUTOR( "GitHub contributors",
448  wxEmptyString,
449  "https://github.com/KiCad/kicad-footprints/graphs/contributors",
451  aInfo.CreateKiBitmap( edit_module_xpm ) ) );
452 
453  // Program credits for package developers.
454  aInfo.AddPackager( new CONTRIBUTOR( "Jean-Samuel Reynaud" ) );
455  aInfo.AddPackager( new CONTRIBUTOR( "Bernhard Stegmaier" ) );
456  aInfo.AddPackager( new CONTRIBUTOR( "Adam Wolf" ) );
457  aInfo.AddPackager( new CONTRIBUTOR( wxT( "Nick Østergaard" ) ) );
458 }
459 
460 
462 {
463  ABOUT_APP_INFO info;
464  buildKicadAboutBanner( aParent, info );
465 
466  DIALOG_ABOUT dlg( aParent, info );
467  dlg.ShowModal();
468 }
469 
470 
474 
484 static wxString HtmlHyperlink( const wxString& aUrl, const wxString& aDescription )
485 {
486  wxString hyperlink = wxEmptyString;
487 
488  if( aDescription.IsEmpty() )
489  hyperlink << "<a href='" << aUrl << "'>" << aUrl << "</a>";
490  else
491  hyperlink << "<a href='" << aUrl << "'>" << aDescription << "</a>";
492 
493  return hyperlink;
494 }
495 
496 
504 static wxString HtmlNewline( const unsigned int aCount )
505 {
506  wxString newlineTags = wxEmptyString;
507 
508  for( size_t i = 0; i<aCount; ++i )
509  newlineTags << "<br>";
510 
511  return newlineTags;
512 }
void SetCopyright(const wxString &text)
Definition: aboutinfo.h:92
#define ICON_CONTRIBUTION
void AddTranslator(const CONTRIBUTOR *translator)
Definition: aboutinfo.h:68
#define OTHERS_IN_TRANSLATION
void AddDocWriter(const CONTRIBUTOR *docwriter)
Definition: aboutinfo.h:56
static wxString HtmlNewline(const unsigned int amount=1)
Create an HTML newline character sequence of aCount.
PGM_BASE & Pgm()
The global Program "get" accessor.
Definition: kicad.cpp:65
void SetAppIcon(const wxIcon &aIcon)
Definition: aboutinfo.h:104
An object of this class is meant to be used to store application specific information like who has co...
Definition: aboutinfo.h:44
static void buildKicadAboutBanner(EDA_BASE_FRAME *aParent, ABOUT_APP_INFO &aInfo)
Initializes the ABOUT_APP_INFO object with application specific information.
#define SYMBOL_LIB_CONTRIBUTION
wxBitmap * CreateKiBitmap(BITMAP_DEF aBitmap)
Wrapper to manage memory allocation for bitmaps
Definition: aboutinfo.h:108
void ShowAboutDialog(EDA_BASE_FRAME *aParent)
void SetBuildVersion(const wxString &version)
Definition: aboutinfo.h:98
void SetDescription(const wxString &text)
Definition: aboutinfo.h:86
wxString GetBuildVersion()
Function GetBuildVersion Return the build version string.
void SetLibVersion(const wxString &version)
Definition: aboutinfo.h:101
#define MODELS_3D_CONTRIBUTION
Base window classes and related definitions.
#define _(s)
void AddArtist(const CONTRIBUTOR *artist)
Definition: aboutinfo.h:62
void SetLicense(const wxString &text)
Definition: aboutinfo.h:89
static wxString HtmlHyperlink(const wxString &url, const wxString &description=wxEmptyString)
Helper functions.
see class PGM_BASE
A contributor, a person which was involved in the development of the application or which has contrib...
Definition: aboutinfo.h:148
The base frame for deriving all KiCad main window classes.
size_t i
Definition: json11.cpp:597
void AddPackager(const CONTRIBUTOR *packager)
Definition: aboutinfo.h:74
The common library.
void AddDeveloper(const CONTRIBUTOR *developer)
Definition: aboutinfo.h:50
#define FOOTPRINT_LIB_CONTRIBUTION
About dialog to show application specific information.
Definition: dialog_about.h:40
void SetAppName(const wxString &name)
Definition: aboutinfo.h:95