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-2020 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  aInfo.SetBuildDate( GetBuildDate() );
81 
82  /* wxWidgets version */
83  wxString libVersion;
84  libVersion << wxGetLibraryVersionInfo().GetVersionString();
85 
86  /* Unicode or ANSI version */
87 #if wxUSE_UNICODE
88  libVersion << wxT( " Unicode " );
89 #else
90  libVersion << wxT( " ANSI " );
91 #endif
92 
93  // Just in case someone builds KiCad with the platform native of Boost instead of
94  // the version included with the KiCad source.
95  libVersion << "and Boost " << ( BOOST_VERSION / 100000 ) << "."
96  << ( BOOST_VERSION / 100 % 1000 ) << "." << ( BOOST_VERSION % 100 )
97  << "\n";
98 
99  // Operating System Information
100 
101  wxPlatformInfo platformInfo;
102 
103  libVersion << "Platform: " << wxGetOsDescription() << ", " << platformInfo.GetArchName();
104 
105  aInfo.SetLibVersion( libVersion );
106 
107 
108  /* info/description part HTML formatted */
109 
110  wxString description;
111 
112  /* short description */
113  description << "<p>";
114  description << "<b><u>"
115  << _( "Description" )
116  << "</u></b>"; // bold & underlined font for caption
117 
118  description << "<p>"
119  << _( "The KiCad EDA Suite is a set of open source applications for the "
120  "creation of electronic schematics and printed circuit boards." )
121  << "</p>";
122 
123  description << "</p>";
124 
125  /* websites */
126  description << "<p><b><u>"
127  << _( "KiCad on the web" )
128  << "</u></b>"; // bold & underlined font for caption
129 
130  // bullet-ed list with some http links
131  description << "<ul>";
132  description << "<li>"
133  << _( "The official KiCad website - " )
134  << HtmlHyperlink( "http://www.kicad-pcb.org" )
135  << "</li>";
136  description << "<li>"
137  << _( "Developer website on Launchpad - " )
138  << HtmlHyperlink( "https://launchpad.net/kicad" )
139  << "</li>";
140 
141  description << "<li>"
142  << _("Official KiCad library repositories - " )
143  << HtmlHyperlink( "https://kicad.github.io" )
144  << "</li>";
145 
146  description << "</ul></p>";
147 
148  description << "<p><b><u>"
149  << _( "Bug tracker" )
150  << "</u></b>"; // bold & underlined font caption
151 
152  // bullet-ed list with some http links
153  description << "<ul>";
154  description << "<li>"
155  << _( "Report or examine bugs - " )
156  << HtmlHyperlink( "https://gitlab.com/kicad/code/kicad/issues" )
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 << "</ul></p>";
171 
172  aInfo.SetDescription( description );
173 
174 
175  // License information also HTML formatted:
176  wxString license;
177  license
178  << "<div align='center'>"
179  << HtmlNewline( 4 )
180  << _( "The complete KiCad EDA Suite is released under the" ) << HtmlNewline( 2 )
181  << HtmlHyperlink( "http://www.gnu.org/licenses",
182  _( "GNU Affero General Public License (AGPL) version 3 or any later version" ) )
183  << "</div>";
184 
185  aInfo.SetLicense( license );
186 
187 
188  /* A contributor consists of the following information:
189  * Mandatory:
190  * - Name
191  * Optional:
192  * - EMail address
193  * - Category
194  * - Category specific icon
195  *
196  * All contributors of the same category will be enumerated under this category
197  * which should be represented by the same icon.
198  */
199 
200  // The core developers
201  aInfo.AddDeveloper( new CONTRIBUTOR( "Jean-Pierre Charras" ) );
202  aInfo.AddDeveloper( new CONTRIBUTOR( "Dick Hollenbeck" ) );
203  aInfo.AddDeveloper( new CONTRIBUTOR( "Wayne Stambaugh" ) );
204 
205  // alphabetically by last name after main 3 above:
206  aInfo.AddDeveloper( new CONTRIBUTOR( "Frank Bennett" ) );
207  aInfo.AddDeveloper( new CONTRIBUTOR( "Cirilo Bernardo" ) );
208  aInfo.AddDeveloper( new CONTRIBUTOR( "Kevin Cozens" ) );
209  aInfo.AddDeveloper( new CONTRIBUTOR( "Jonas Diemer" ) );
210  aInfo.AddDeveloper( new CONTRIBUTOR( "Jon Evans" ) );
211  aInfo.AddDeveloper( new CONTRIBUTOR( "Seth Hillbrand" ) );
212  aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Torsten Hüter" ) ) );
213  aInfo.AddDeveloper( new CONTRIBUTOR( "Jerry Jacobs" ) );
214  aInfo.AddDeveloper( new CONTRIBUTOR( "Mario Luzeiro" ) );
215  aInfo.AddDeveloper( new CONTRIBUTOR( "Daniel Majewski" ) );
216  aInfo.AddDeveloper( new CONTRIBUTOR( "Lorenzo Marcantonio" ) );
217  aInfo.AddDeveloper( new CONTRIBUTOR( "Marco Mattila" ) );
218  aInfo.AddDeveloper( new CONTRIBUTOR( "Ian McInerney" ) );
219  aInfo.AddDeveloper( new CONTRIBUTOR( "Russell Oliver" ) );
220  aInfo.AddDeveloper( new CONTRIBUTOR( "Alexis Lockwood" ) );
221  aInfo.AddDeveloper( new CONTRIBUTOR( "Miguel Angel Ajo Pelayo" ) );
222  aInfo.AddDeveloper( new CONTRIBUTOR( "Jacobo Aragunde Perez" ) );
223  aInfo.AddDeveloper( new CONTRIBUTOR( "Simon Richter" ) );
224  aInfo.AddDeveloper( new CONTRIBUTOR( "Mark Roszko" ) );
225  aInfo.AddDeveloper( new CONTRIBUTOR( "Marco Serantoni" ) );
226  aInfo.AddDeveloper( new CONTRIBUTOR( "Brian Sidebotham" ) );
227  aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ) ) );
228  aInfo.AddDeveloper( new CONTRIBUTOR( "Rafael Sokolowski" ) );
229  aInfo.AddDeveloper( new CONTRIBUTOR( "Vesa Solonen" ) );
230  aInfo.AddDeveloper( new CONTRIBUTOR( "Bernhard Stegmaier" ) );
231  aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Orson (Maciej Sumiński)" ) ) );
232  aInfo.AddDeveloper( new CONTRIBUTOR( "Oliver Walters" ) );
233  aInfo.AddDeveloper( new CONTRIBUTOR( "Tomasz Wlostowski" ) );
234  aInfo.AddDeveloper( new CONTRIBUTOR( "Adam Wolf" ) );
235  aInfo.AddDeveloper( new CONTRIBUTOR( "Jeff Young" ) );
236  aInfo.AddDeveloper( new CONTRIBUTOR( "Alexander Zakamaldin" ) );
237  aInfo.AddDeveloper( new CONTRIBUTOR( "Henner Zeller" ) );
238  aInfo.AddDeveloper( new CONTRIBUTOR( "Andrew Zonenberg" ) );
239  aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nick Østergaard" ) ) );
240 
241  // The document writers
242  aInfo.AddDocWriter( new CONTRIBUTOR( "Jean-Pierre Charras" ) );
243  aInfo.AddDocWriter( new CONTRIBUTOR( "Marco Ciampa" ) );
244  aInfo.AddDocWriter( new CONTRIBUTOR( "Dick Hollenbeck" ) );
245  aInfo.AddDocWriter( new CONTRIBUTOR( "Igor Plyatov" ) );
246  aInfo.AddDocWriter( new CONTRIBUTOR( "Wayne Stambaugh" ) );
247  aInfo.AddDocWriter( new CONTRIBUTOR( "Fabrizio Tappero" ) );
248 
249  /* The translators
250  * As category the language to which the translation was done is used
251  * and as icon the national flag of the corresponding country.
252  */
253  aInfo.AddTranslator( new CONTRIBUTOR( "Robert Buj",
254  wxEmptyString,
255  wxEmptyString,
256  "Catalan (CA)",
257  aInfo.CreateKiBitmap( lang_ca_xpm ) ) );
258  aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Martin Kratoška" ),
259  wxEmptyString,
260  wxEmptyString,
261  "Czech (CZ)",
262  aInfo.CreateKiBitmap( lang_cs_xpm ) ) );
263  aInfo.AddTranslator( new CONTRIBUTOR( "Jerry Jacobs",
264  wxEmptyString,
265  wxEmptyString,
266  "Dutch (NL)",
267  aInfo.CreateKiBitmap( lang_nl_xpm ) ) );
268  aInfo.AddTranslator( new CONTRIBUTOR( "Vesa Solonen",
269  wxEmptyString,
270  wxEmptyString,
271  "Finnish (FI)",
272  aInfo.CreateKiBitmap( lang_fi_xpm ) ) );
273  aInfo.AddTranslator( new CONTRIBUTOR( "Jean-Pierre Charras",
274  wxEmptyString,
275  wxEmptyString,
276  "French (FR)",
277  aInfo.CreateKiBitmap( lang_fr_xpm ) ) );
278  aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ),
279  wxEmptyString,
280  wxEmptyString,
281  "Polish (PL)",
282  aInfo.CreateKiBitmap( lang_pl_xpm ) ) );
283  aInfo.AddTranslator( new CONTRIBUTOR( "Kerusey Karyu",
284  wxEmptyString,
285  wxEmptyString,
286  "Polish (PL)",
287  aInfo.CreateKiBitmap( lang_pl_xpm ) ) );
288  aInfo.AddTranslator( new CONTRIBUTOR( "Renie Marquet",
289  wxEmptyString,
290  wxEmptyString,
291  "Portuguese (PT)",
292  aInfo.CreateKiBitmap( lang_pt_xpm ) ) );
293  aInfo.AddTranslator( new CONTRIBUTOR( "Igor Plyatov",
294  wxEmptyString,
295  wxEmptyString,
296  "Russian (RU)",
297  aInfo.CreateKiBitmap( lang_ru_xpm ) ) );
298  aInfo.AddTranslator( new CONTRIBUTOR( "Andrey Fedorushkov",
299  wxEmptyString,
300  wxEmptyString,
301  "Russian (RU)",
302  aInfo.CreateKiBitmap( lang_ru_xpm ) ) );
303  aInfo.AddTranslator( new CONTRIBUTOR( "Eldar Khayrullin",
304  wxEmptyString,
305  wxEmptyString,
306  "Russian (RU)",
307  aInfo.CreateKiBitmap( lang_ru_xpm ) ) );
308  aInfo.AddTranslator( new CONTRIBUTOR( "Pedro Martin del Valle",
309  wxEmptyString,
310  wxEmptyString,
311  "Spanish (ES)",
312  aInfo.CreateKiBitmap( lang_es_xpm ) ) );
313  aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
314  wxEmptyString,
315  wxEmptyString,
316  "Spanish (ES)",
317  aInfo.CreateKiBitmap( lang_es_xpm ) ) );
318  aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Figuero" ),
319  wxEmptyString,
320  wxEmptyString,
321  "Spanish (ES)",
322  aInfo.CreateKiBitmap( lang_es_xpm ) ) );
323  aInfo.AddTranslator( new CONTRIBUTOR( "Rafael Sokolowski",
324  wxEmptyString,
325  wxEmptyString,
326  "German (DE)",
327  aInfo.CreateKiBitmap( lang_de_xpm ) ) );
328  aInfo.AddTranslator( new CONTRIBUTOR( "Kenta Yonekura",
329  wxEmptyString,
330  wxEmptyString,
331  "Japanese (JA)",
332  aInfo.CreateKiBitmap( lang_jp_xpm ) ) );
333  aInfo.AddTranslator( new CONTRIBUTOR( "Manolis Stefanis",
334  wxEmptyString,
335  wxEmptyString,
336  "Greek (el_GR)",
337  aInfo.CreateKiBitmap( lang_gr_xpm ) ) );
338  aInfo.AddTranslator( new CONTRIBUTOR( "Athanasios Vlastos",
339  wxEmptyString,
340  wxEmptyString,
341  "Greek (el_GR)",
342  aInfo.CreateKiBitmap( lang_gr_xpm ) ) );
343  aInfo.AddTranslator( new CONTRIBUTOR( "Milonas Kostas",
344  wxEmptyString,
345  wxEmptyString,
346  "Greek (el_GR)",
347  aInfo.CreateKiBitmap( lang_gr_xpm ) ) );
348  aInfo.AddTranslator( new CONTRIBUTOR( "Michail Misirlis",
349  wxEmptyString,
350  wxEmptyString,
351  "Greek (el_GR)",
352  aInfo.CreateKiBitmap( lang_gr_xpm ) ) );
353  aInfo.AddTranslator( new CONTRIBUTOR( "Massimo Cioce",
354  wxEmptyString,
355  wxEmptyString,
356  "Italian (IT)",
357  aInfo.CreateKiBitmap( lang_it_xpm ) ) );
358  aInfo.AddTranslator( new CONTRIBUTOR( "Marco Ciampa",
359  wxEmptyString,
360  wxEmptyString,
361  "Italian (IT)",
362  aInfo.CreateKiBitmap( lang_it_xpm ) ) );
363  aInfo.AddTranslator( new CONTRIBUTOR( "Evgeniy Ivanov",
364  wxEmptyString,
365  wxEmptyString,
366  "Bulgarian (BG)",
367  aInfo.CreateKiBitmap( lang_bg_xpm ) ) );
368  aInfo.AddTranslator( new CONTRIBUTOR( "Liu Guang",
369  wxEmptyString,
370  wxEmptyString,
371  "Simplified Chinese (zh_CN)",
372  aInfo.CreateKiBitmap( lang_zh_xpm ) ) );
373  aInfo.AddTranslator( new CONTRIBUTOR( "Taotieren",
374  wxEmptyString,
375  wxEmptyString,
376  "Simplified Chinese (zh_CN)",
377  aInfo.CreateKiBitmap( lang_zh_xpm ) ) );
378 
379  // Maintainer who helper in translations, but not in a specific translation
380  #define OTHERS_IN_TRANSLATION _( "Others" )
381  aInfo.AddTranslator( new CONTRIBUTOR( "Remy Halvick",
382  wxEmptyString,
383  wxEmptyString,
385  aInfo.AddTranslator( new CONTRIBUTOR( "David Briscoe",
386  wxEmptyString,
387  wxEmptyString,
389  aInfo.AddTranslator( new CONTRIBUTOR( "Dominique Laigle",
390  wxEmptyString,
391  wxEmptyString,
393  aInfo.AddTranslator( new CONTRIBUTOR( "Paul Burke",
394  wxEmptyString,
395  wxEmptyString,
397 
398  // Program credits for icons
399  #define ICON_CONTRIBUTION _( "Icons by" )
400  aInfo.AddArtist( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
401  wxEmptyString,
402  wxEmptyString,
404  aInfo.CreateKiBitmap( svg_file_xpm ) ) );
405  aInfo.AddArtist( new CONTRIBUTOR( "Konstantin Baranovskiy",
406  wxEmptyString,
407  wxEmptyString,
409  aInfo.CreateKiBitmap( svg_file_xpm ) ) );
410  aInfo.AddArtist( new CONTRIBUTOR( "Fabrizio Tappero",
411  wxEmptyString,
412  wxEmptyString,
414  aInfo.CreateKiBitmap( svg_file_xpm ) ) );
415 
416  // Program credits for 3d models
417  #define MODELS_3D_CONTRIBUTION _( "3D models by" )
418  aInfo.AddArtist( new CONTRIBUTOR( "GitHub contributors",
419  wxEmptyString,
420  "https://github.com/KiCad/kicad-packages3D/graphs/contributors",
422  aInfo.CreateKiBitmap( three_d_xpm ) ) );
423  aInfo.AddArtist( new CONTRIBUTOR( "Christophe Boschat",
424  wxEmptyString,
425  wxEmptyString,
427  aInfo.CreateKiBitmap( three_d_xpm ) ) );
428  aInfo.AddArtist( new CONTRIBUTOR( "Renie Marquet",
429  wxEmptyString,
430  wxEmptyString,
432  aInfo.CreateKiBitmap( three_d_xpm ) ) );
433 
434  #define SYMBOL_LIB_CONTRIBUTION _( "Symbols by" )
435  aInfo.AddArtist( new CONTRIBUTOR( "GitHub contributors",
436  wxEmptyString,
437  "https://github.com/KiCad/kicad-symbols/graphs/contributors",
439  aInfo.CreateKiBitmap( new_component_xpm ) ) );
440 
441  #define FOOTPRINT_LIB_CONTRIBUTION _( "Footprints by" )
442  aInfo.AddArtist( new CONTRIBUTOR( "GitHub contributors",
443  wxEmptyString,
444  "https://github.com/KiCad/kicad-footprints/graphs/contributors",
446  aInfo.CreateKiBitmap( edit_module_xpm ) ) );
447 
448  // Program credits for package developers.
449  aInfo.AddPackager( new CONTRIBUTOR( "Jean-Samuel Reynaud" ) );
450  aInfo.AddPackager( new CONTRIBUTOR( "Bernhard Stegmaier" ) );
451  aInfo.AddPackager( new CONTRIBUTOR( "Adam Wolf" ) );
452  aInfo.AddPackager( new CONTRIBUTOR( wxT( "Nick Østergaard" ) ) );
453 }
454 
455 
457 {
458  ABOUT_APP_INFO info;
459  buildKicadAboutBanner( aParent, info );
460 
461  DIALOG_ABOUT dlg( aParent, info );
462  dlg.ShowModal();
463 }
464 
465 
469 
479 static wxString HtmlHyperlink( const wxString& aUrl, const wxString& aDescription )
480 {
481  wxString hyperlink = wxEmptyString;
482 
483  if( aDescription.IsEmpty() )
484  hyperlink << "<a href='" << aUrl << "'>" << aUrl << "</a>";
485  else
486  hyperlink << "<a href='" << aUrl << "'>" << aDescription << "</a>";
487 
488  return hyperlink;
489 }
490 
491 
499 static wxString HtmlNewline( const unsigned int aCount )
500 {
501  wxString newlineTags = wxEmptyString;
502 
503  for( size_t i = 0; i<aCount; ++i )
504  newlineTags << "<br>";
505 
506  return newlineTags;
507 }
void SetCopyright(const wxString &text)
Definition: aboutinfo.h:92
const BITMAP_OPAQUE three_d_xpm[1]
Definition: three_d.cpp:35
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:104
#define ICON_CONTRIBUTION
const BITMAP_OPAQUE edit_module_xpm[1]
Definition: edit_module.cpp:50
void AddTranslator(const CONTRIBUTOR *translator)
Definition: aboutinfo.h:68
const BITMAP_OPAQUE new_component_xpm[1]
const BITMAP_OPAQUE lang_ca_xpm[1]
Definition: lang_ca.cpp:27
const BITMAP_OPAQUE lang_nl_xpm[1]
Definition: lang_nl.cpp:23
#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.
const BITMAP_OPAQUE lang_bg_xpm[1]
Definition: lang_bg.cpp:19
const BITMAP_OPAQUE lang_cs_xpm[1]
Definition: lang_cs.cpp:33
const BITMAP_OPAQUE lang_fr_xpm[1]
Definition: lang_fr.cpp:24
void SetAppIcon(const wxIcon &aIcon)
Definition: aboutinfo.h:107
An object of this class is meant to be used to store application specific information like who has co...
Definition: aboutinfo.h:44
const BITMAP_OPAQUE svg_file_xpm[1]
Definition: svg_file.cpp:68
const BITMAP_OPAQUE lang_es_xpm[1]
Definition: lang_es.cpp:30
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
const BITMAP_OPAQUE lang_zh_xpm[1]
Definition: lang_zh.cpp:28
const BITMAP_OPAQUE lang_jp_xpm[1]
Definition: lang_jp.cpp:31
wxBitmap * CreateKiBitmap(BITMAP_DEF aBitmap)
Wrapper to manage memory allocation for bitmaps
Definition: aboutinfo.h:111
void ShowAboutDialog(EDA_BASE_FRAME *aParent)
void SetBuildVersion(const wxString &version)
Definition: aboutinfo.h:98
void SetDescription(const wxString &text)
Definition: aboutinfo.h:86
const BITMAP_OPAQUE lang_ru_xpm[1]
Definition: lang_ru.cpp:23
wxString GetBuildVersion()
Get the full KiCad version string.
const BITMAP_OPAQUE lang_fi_xpm[1]
Definition: lang_fi.cpp:27
void SetLibVersion(const wxString &version)
Definition: aboutinfo.h:104
#define MODELS_3D_CONTRIBUTION
Base window classes and related definitions.
const BITMAP_OPAQUE lang_gr_xpm[1]
Definition: lang_gr.cpp:32
const BITMAP_OPAQUE lang_de_xpm[1]
Definition: lang_de.cpp:24
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.
wxString GetBuildDate()
Get the build date as a string.
see class PGM_BASE
#define _(s)
Definition: 3d_actions.cpp:33
void SetBuildDate(const wxString &date)
Definition: aboutinfo.h:101
A contributor, a person which was involved in the development of the application or which has contrib...
Definition: aboutinfo.h:152
The base frame for deriving all KiCad main window classes.
void AddPackager(const CONTRIBUTOR *packager)
Definition: aboutinfo.h:74
const BITMAP_OPAQUE lang_pl_xpm[1]
Definition: lang_pl.cpp:22
The common library.
void AddDeveloper(const CONTRIBUTOR *developer)
Definition: aboutinfo.h:50
const BITMAP_OPAQUE lang_pt_xpm[1]
Definition: lang_pt.cpp:35
#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
const BITMAP_OPAQUE lang_it_xpm[1]
Definition: lang_it.cpp:24