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 <[email protected]>
5 * Copyright (C) 2010-2023 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 * show_3d_xpm; // 3D icon
33 * module_xpm;
34 * icon_kicad_xpm; // Icon of the application
35 */
36#include <bitmaps.h>
37#include <build_version.h>
38#include <common.h>
39#include <kiplatform/app.h>
40#include <pgm_base.h>
41#include <eda_base_frame.h>
42
43#include "aboutinfo.h"
44#include "dialog_about.h"
45
46
47WX_DEFINE_OBJARRAY( CONTRIBUTORS )
48
49// Helper functions:
50static wxString HtmlHyperlink( const wxString& url, const wxString& description = wxEmptyString );
51static wxString HtmlNewline( const unsigned int amount = 1 );
52
53
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( wxT( "(C) 1992-2023 KiCad Developers Team" ) );
68
69 /* KiCad build version */
70 wxString version;
71 version << ( KIPLATFORM::APP::IsOperatingSystemUnsupported() ? wxString( wxS( "(UNSUPPORTED)" ) )
72 : GetBuildVersion() )
73#ifdef DEBUG
74 << wxT( ", debug" )
75#else
76 << wxT( ", release" )
77#endif
78 << wxT( " build" );
79
80 aInfo.SetBuildVersion( version );
81 aInfo.SetBuildDate( GetBuildDate() );
82
83 /* wxWidgets version */
84 wxString libVersion;
85 libVersion << wxGetLibraryVersionInfo().GetVersionString();
86
87 /* Unicode or ANSI version */
88#if wxUSE_UNICODE
89 libVersion << wxT( " Unicode " );
90#else
91 libVersion << wxT( " ANSI " );
92#endif
93
94 // Just in case someone builds KiCad with the platform native of Boost instead of
95 // the version included with the KiCad source.
96 libVersion << wxT( "and Boost " ) << ( BOOST_VERSION / 100000 ) << wxT( "." )
97 << ( BOOST_VERSION / 100 % 1000 ) << wxT( "." ) << ( BOOST_VERSION % 100 )
98 << wxT( "\n" );
99
100 // Operating System Information
101
102 wxPlatformInfo platformInfo;
103
104 libVersion << wxT( "Platform: " ) << wxGetOsDescription() << wxT( ", " )
106
107 aInfo.SetLibVersion( libVersion );
108
109 // info/description part HTML formatted:
110 wxString description;
111
112 /* short description */
113 description << wxT( "<p>" );
114 description << wxT( "<b><u>" )
115 << _( "Description" )
116 << wxT( "</u></b>" ); // bold & underlined font for caption
117
118 description << wxT( "<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 << wxT( "</p>" );
122
123 description << wxT( "</p>" );
124
125 /* websites */
126 description << wxT( "<p><b><u>" )
127 << _( "KiCad on the web" )
128 << wxT( "</u></b>" ); // bold & underlined font for caption
129
130 // bullet-ed list with some http links
131 description << wxT( "<ul>" );
132 description << wxT( "<li>" )
133 << _( "The official KiCad website - " )
134 << HtmlHyperlink( wxS( "http://www.kicad.org" ) )
135 << wxT( "</li>" );
136 description << wxT( "<li>" )
137 << _( "Developer website - " )
138 << HtmlHyperlink( wxS( "https://go.kicad.org/dev" ) )
139 << wxT( "</li>" );
140
141 description << wxT( "<li>" )
142 << _("Official KiCad library repositories - " )
143 << HtmlHyperlink( wxS( "https://go.kicad.org/libraries" ) )
144 << wxT( "</li>" );
145
146 description << wxT( "</ul></p>" );
147
148 description << wxT( "<p><b><u>" )
149 << _( "Bug tracker" )
150 << wxT( "</u></b>" ); // bold & underlined font caption
151
152 // bullet-ed list with some http links
153 description << wxT( "<ul>" );
154 description << wxT( "<li>" )
155 << _( "Report or examine bugs - " )
156 << HtmlHyperlink( wxS( "https://go.kicad.org/bugs" ) )
157 << wxT( "</li>" );
158 description << wxT( "</ul></p>" );
159
160 description << wxT( "<p><b><u>" )
161 << _( "KiCad users group and community" )
162 << wxT( "</u></b>" ); // bold & underlined font caption
163
164 description << wxT( "<ul>" );
165 description << wxT( "<li>" )
166 << _( "KiCad forum - " )
167 << HtmlHyperlink( wxS( "https://go.kicad.org/forum" ) )
168 << wxT( "</li>" );
169
170 description << wxT( "</ul></p>" );
171
172 aInfo.SetDescription( description );
173
174
175 // License information also HTML formatted:
176 wxString license;
177 license
178 << wxT( "<div align='center'>" )
179 << HtmlNewline( 4 )
180 << _( "The complete KiCad EDA Suite is released under the" ) << HtmlNewline( 2 )
181 << HtmlHyperlink( wxS( "http://www.gnu.org/licenses" ),
182 _( "GNU General Public License (GPL) version 3 or any later version" ) )
183 << wxT( "</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#define LEAD_DEV _( "Lead Development Team" )
202#define FORMER_DEV _( "Lead Development Alumni" )
203#define CONTRIB_DEV _( "Additional Contributions By")
204 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Pierre Charras" ), LEAD_DEV, nullptr ) );
205 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Wayne Stambaugh" ), LEAD_DEV, nullptr ) );
206
207 // Alphabetical after the first two
208 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jon Evans" ), LEAD_DEV, nullptr ) );
209 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roberto Fernandez Bautista" ), LEAD_DEV, nullptr ) );
210 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Seth Hillbrand" ), LEAD_DEV, nullptr ) );
211 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ian McInerney" ), LEAD_DEV, nullptr ) );
212 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark Roszko" ), LEAD_DEV, nullptr ) );
213 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Pointhuber" ), LEAD_DEV, nullptr ) );
214 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alex Shvartzkop" ), LEAD_DEV, nullptr ) );
215 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikolaj Wielgus" ), LEAD_DEV, nullptr ) );
216 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mike Williams" ), LEAD_DEV, nullptr ) );
217 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tomasz Wlostowski" ), LEAD_DEV, nullptr ) );
218 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jeff Young" ), LEAD_DEV, nullptr ) );
219
220 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "John Beard" ), FORMER_DEV, nullptr ) );
221 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dick Hollenbeck" ), FORMER_DEV, nullptr ) );
222 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexis Lockwood" ), FORMER_DEV, nullptr ) );
223 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Sidebotham" ), FORMER_DEV, nullptr ) );
224 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Orson (Maciej Sumiński)" ), FORMER_DEV, nullptr ) );
225
226 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Aberg" ), CONTRIB_DEV, nullptr ) );
227 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rohan Agrawal" ), CONTRIB_DEV, nullptr ) );
228 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Agricola" ), CONTRIB_DEV, nullptr ) );
229 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nabeel Ahmad" ), CONTRIB_DEV, nullptr ) );
230 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Werner Almesberger" ), CONTRIB_DEV, nullptr ) );
231 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Shawn Anastasio" ), CONTRIB_DEV, nullptr ) );
232 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Collin Anderson" ), CONTRIB_DEV, nullptr ) );
233 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tom Andrews" ), CONTRIB_DEV, nullptr ) );
234 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikael Arguedas" ), CONTRIB_DEV, nullptr ) );
235 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lachlan Audas" ), CONTRIB_DEV, nullptr ) );
236 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Noel Avila" ), CONTRIB_DEV, nullptr ) );
237
238 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pascal Baerten" ), CONTRIB_DEV, nullptr ) );
239 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Konstantin Baranovskiy" ), CONTRIB_DEV, nullptr ) );
240 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roman Bashkov" ), CONTRIB_DEV, nullptr ) );
241 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Beardsworth" ), CONTRIB_DEV, nullptr ) );
242 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthew Beckler" ), CONTRIB_DEV, nullptr ) );
243 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Konrad Beckmann" ), CONTRIB_DEV, nullptr ) );
244 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "David Beinder" ), CONTRIB_DEV, nullptr ) );
245 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Bennett" ), CONTRIB_DEV, nullptr ) );
246 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roman Beranek" ), CONTRIB_DEV, nullptr ) );
247 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gustav Bergquist" ), CONTRIB_DEV, nullptr ) );
248 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cirilo Bernardo" ), CONTRIB_DEV, nullptr ) );
249 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joël Bertrand" ), CONTRIB_DEV, nullptr ) );
250 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andreas Beutling" ), CONTRIB_DEV, nullptr ) );
251 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian F. G. Bidulock" ), CONTRIB_DEV, nullptr ) );
252 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Anton Blanchard" ), CONTRIB_DEV, nullptr ) );
253 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Blair Bonnett" ), CONTRIB_DEV, nullptr ) );
254 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carlo Bramini" ), CONTRIB_DEV, nullptr ) );
255 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Brüns" ), CONTRIB_DEV, nullptr ) );
256 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andreas Buhr" ), CONTRIB_DEV, nullptr ) );
257 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ryan Bunch" ), CONTRIB_DEV, nullptr ) );
258 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Emery Burhan" ), CONTRIB_DEV, nullptr ) );
259
260 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Phinitnan Chanasabaeng" ), CONTRIB_DEV, nullptr ) );
261 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Shivpratap Chauhan" ), CONTRIB_DEV, nullptr ) );
262 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Cozens" ), CONTRIB_DEV, nullptr ) );
263 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joseph Y. Chen" ), CONTRIB_DEV, nullptr ) );
264 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexey Chernov" ), CONTRIB_DEV, nullptr ) );
265 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Ciampa" ), CONTRIB_DEV, nullptr ) );
266 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marcus Comstedt" ), CONTRIB_DEV, nullptr ) );
267 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Diogo Condeco" ), CONTRIB_DEV, nullptr ) );
268 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Colin Cooper" ), CONTRIB_DEV, nullptr ) );
269 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabien Corona" ), CONTRIB_DEV, nullptr ) );
270 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Garth Corral" ), CONTRIB_DEV, nullptr ) );
271 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Cozens" ), CONTRIB_DEV, nullptr ) );
272 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dan Cross" ), CONTRIB_DEV, nullptr ) );
273
274 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonas Diemer" ), CONTRIB_DEV, nullptr ) );
275 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew D'Addesio" ), CONTRIB_DEV, nullptr ) );
276 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin d'Allens" ), CONTRIB_DEV, nullptr ) );
277 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Camille Delbegue" ), CONTRIB_DEV, nullptr ) );
278 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Albin Dennevi" ), CONTRIB_DEV, nullptr ) );
279 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ruben De Smet" ), CONTRIB_DEV, nullptr ) );
280 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Dooks" ), CONTRIB_DEV, nullptr ) );
281 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Downing" ), CONTRIB_DEV, nullptr ) );
282 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jan Dubiec" ), CONTRIB_DEV, nullptr ) );
283
284 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gerd Egidy" ), CONTRIB_DEV, nullptr ) );
285 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean Philippe Eimer" ), CONTRIB_DEV, nullptr ) );
286 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Ellis" ), CONTRIB_DEV, nullptr ) );
287 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Oleg Endo" ), CONTRIB_DEV, nullptr ) );
288 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Damien Espitallier" ), CONTRIB_DEV, nullptr ) );
289 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paul Ewing" ), CONTRIB_DEV, nullptr ) );
290
291 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrey Fedorushkov" ), CONTRIB_DEV, nullptr ) );
292 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Julian Fellinger" ), CONTRIB_DEV, nullptr ) );
293 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joe Ferner" ), CONTRIB_DEV, nullptr ) );
294 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Figueroa" ), CONTRIB_DEV, nullptr ) );
295 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Drew Fustini" ), CONTRIB_DEV, nullptr ) );
296
297 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ronnie Gaensli" ), CONTRIB_DEV, nullptr ) );
298 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Gagneraud" ), CONTRIB_DEV, nullptr ) );
299 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Gamari" ), CONTRIB_DEV, nullptr ) );
300 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ashutosh Gangwar" ), CONTRIB_DEV, nullptr ) );
301 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alessandro Gatti" ), CONTRIB_DEV, nullptr ) );
302 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hal Gentz" ), CONTRIB_DEV, nullptr ) );
303 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Geselbracht" ), CONTRIB_DEV, nullptr ) );
304 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Giulio Girardi" ), CONTRIB_DEV, nullptr ) );
305 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jeff Glass" ), CONTRIB_DEV, nullptr ) );
306 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Golubev" ), CONTRIB_DEV, nullptr ) );
307 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Angus Gratton" ), CONTRIB_DEV, nullptr ) );
308 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Element Green" ), CONTRIB_DEV, nullptr ) );
309 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mathias Grimmberger" ), CONTRIB_DEV, nullptr ) );
310 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johan Grip" ), CONTRIB_DEV, nullptr ) );
311 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hildo Guillardi Júnior" ), CONTRIB_DEV, nullptr ) );
312 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Niki Guldbrand" ), CONTRIB_DEV, nullptr ) );
313 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Guy" ), CONTRIB_DEV, nullptr ) );
314 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Zoltan Gyarmati" ), CONTRIB_DEV, nullptr ) );
315
316 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Haas" ), CONTRIB_DEV, nullptr ) );
317 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark Hämmerling" ), CONTRIB_DEV, nullptr ) );
318 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Hamminga" ), CONTRIB_DEV, nullptr ) );
319 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Harris" ), CONTRIB_DEV, nullptr ) );
320 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lukas F. Hartmann" ), CONTRIB_DEV, nullptr ) );
321 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jakob Haufe" ), CONTRIB_DEV, nullptr ) );
322 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Aylons Hazzud" ), CONTRIB_DEV, nullptr ) );
323 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Helmert" ), CONTRIB_DEV, nullptr ) );
324 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hartmut Henkel" ), CONTRIB_DEV, nullptr ) );
325 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Henning" ), CONTRIB_DEV, nullptr ) );
326 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paulo Henrique Silva" ), CONTRIB_DEV, nullptr ) );
327 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hans Henry von Tresckow" ), CONTRIB_DEV, nullptr ) );
328 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Diego Herranz" ), CONTRIB_DEV, nullptr ) );
329 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Hess" ), CONTRIB_DEV, nullptr ) );
330 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mario Hros" ), CONTRIB_DEV, nullptr ) );
331 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matt Huszagh" ), CONTRIB_DEV, nullptr ) );
332 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Torsten Hüter" ), CONTRIB_DEV, nullptr ) );
333
334 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "José Ignacio Romero" ), CONTRIB_DEV, nullptr ) );
335 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Inacio" ), CONTRIB_DEV, nullptr ) );
336 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kinichiro Inoguchi" ), CONTRIB_DEV, nullptr ) );
337 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabián Inostroza" ), CONTRIB_DEV, nullptr ) );
338 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vlad Ivanov" ), CONTRIB_DEV, nullptr ) );
339
340 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "James Jackson" ), CONTRIB_DEV, nullptr ) );
341 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jerry Jacobs" ), CONTRIB_DEV, nullptr ) );
342 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Jacobsen" ), CONTRIB_DEV, nullptr ) );
343 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Jahelka" ), CONTRIB_DEV, nullptr ) );
344 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Janitschke" ), CONTRIB_DEV, nullptr ) );
345 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Jara-Almonte" ), CONTRIB_DEV, nullptr ) );
346 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gilbert J.M. Forkel" ), CONTRIB_DEV, nullptr ) );
347 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "José Jorge Enríquez" ), CONTRIB_DEV, nullptr ) );
348 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Franck Jullien" ), CONTRIB_DEV, nullptr ) );
349
350 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eeli Kaikkonen" ), CONTRIB_DEV, nullptr ) );
351 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lajos Kamocsay" ), CONTRIB_DEV, nullptr ) );
352 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Povilas Kanapickas" ), CONTRIB_DEV, nullptr ) );
353 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikhail Karpenko" ), CONTRIB_DEV, nullptr ) );
354 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kerusey Karyu" ), CONTRIB_DEV, nullptr ) );
355 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Kavanagh" ), CONTRIB_DEV, nullptr ) );
356 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Graham Keeth" ), CONTRIB_DEV, nullptr ) );
357 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yury Khalyavin" ), CONTRIB_DEV, nullptr ) );
358 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eldar Khayrullin" ), CONTRIB_DEV, nullptr ) );
359 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ingo Kletti" ), CONTRIB_DEV, nullptr ) );
360 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kliment" ), CONTRIB_DEV, nullptr ) );
361 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Sylwester Kocjan" ), CONTRIB_DEV, nullptr ) );
362 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Clemens Koller" ), CONTRIB_DEV, nullptr ) );
363 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Asuki Kono" ), CONTRIB_DEV, nullptr ) );
364 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jakub Kozdon" ), CONTRIB_DEV, nullptr ) );
365 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hajo Nils Krabbenhöft" ), CONTRIB_DEV, nullptr ) );
366 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Kueppers" ), CONTRIB_DEV, nullptr ) );
367 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martijn Kuipers" ), CONTRIB_DEV, nullptr ) );
368
369 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Robbert Lagerweij" ), CONTRIB_DEV, nullptr ) );
370 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dimitris Lampridis" ), CONTRIB_DEV, nullptr ) );
371 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Lannen" ), CONTRIB_DEV, nullptr ) );
372 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mika Laitio" ), CONTRIB_DEV, nullptr ) );
373 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Floris Lambrechts" ), CONTRIB_DEV, nullptr ) );
374 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "lê văn lập" ), CONTRIB_DEV, nullptr ) );
375 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Anton Lazarev" ), CONTRIB_DEV, nullptr ) );
376 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ludovic Léau-mercier" ), CONTRIB_DEV, nullptr ) );
377 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paul LeoNerd Evens" ), CONTRIB_DEV, nullptr ) );
378 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonatan Liljedahl" ), CONTRIB_DEV, nullptr ) );
379 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Lunev" ), CONTRIB_DEV, nullptr ) );
380 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Lutsenko" ), CONTRIB_DEV, nullptr ) );
381 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mario Luzeiro" ), CONTRIB_DEV, nullptr ) );
382
383 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Maibaum" ), CONTRIB_DEV, nullptr ) );
384 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mateusz Majchrzycki" ), CONTRIB_DEV, nullptr ) );
385 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Daniel Majewski" ), CONTRIB_DEV, nullptr ) );
386 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rachel Mant" ), CONTRIB_DEV, nullptr ) );
387 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lorenzo Marcantonio" ), CONTRIB_DEV, nullptr ) );
388 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Mattila" ), CONTRIB_DEV, nullptr ) );
389 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Maui" ), CONTRIB_DEV, nullptr ) );
390 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kirill Mavreshko" ), CONTRIB_DEV, nullptr ) );
391 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miles McCoo" ), CONTRIB_DEV, nullptr ) );
392 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Charles McDowell" ), CONTRIB_DEV, nullptr ) );
393 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Moses McKnight" ), CONTRIB_DEV, nullptr ) );
394 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin McNamara" ), CONTRIB_DEV, nullptr ) );
395 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cameron McQuinn" ), CONTRIB_DEV, nullptr ) );
396 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ievgenii Meshcheriakov" ), CONTRIB_DEV, nullptr ) );
397 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ashley Mills" ), CONTRIB_DEV, nullptr ) );
398 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christoph Moench-Tegeder" ), CONTRIB_DEV, nullptr ) );
399 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Peter Montgomery" ), CONTRIB_DEV, nullptr ) );
400 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alejandro García Montoro" ), CONTRIB_DEV, nullptr ) );
401 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Felix Morgner" ), CONTRIB_DEV, nullptr ) );
402 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jan Mrázek" ), CONTRIB_DEV, nullptr ) );
403
404 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Narigon" ), CONTRIB_DEV, nullptr ) );
405 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jon Neal" ), CONTRIB_DEV, nullptr ) );
406 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bastian Neumann" ), CONTRIB_DEV, nullptr ) );
407 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kristian Nielsen" ), CONTRIB_DEV, nullptr ) );
408 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Érico Nogueira" ), CONTRIB_DEV, nullptr ) );
409 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Allan Nordhøy" ), CONTRIB_DEV, nullptr ) );
410 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henrik Nyberg" ), CONTRIB_DEV, nullptr ) );
411
412 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kristoffer Ödmark" ), CONTRIB_DEV, nullptr ) );
413 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Russell Oliver" ), CONTRIB_DEV, nullptr ) );
414 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jason Oster" ), CONTRIB_DEV, nullptr ) );
415
416 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "luz paz" ), CONTRIB_DEV, nullptr ) );
417 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miguel Angel Ajo Pelayo" ), CONTRIB_DEV, nullptr ) );
418 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Patrick Pereira" ), CONTRIB_DEV, nullptr ) );
419 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jacobo Aragunde Perez" ), CONTRIB_DEV, nullptr ) );
420 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthew Petroff" ), CONTRIB_DEV, nullptr ) );
421 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Pfister" ), CONTRIB_DEV, nullptr ) );
422 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Pfluger" ), CONTRIB_DEV, nullptr ) );
423 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Piccioni" ), CONTRIB_DEV, nullptr ) );
424 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nicolas Planel" ), CONTRIB_DEV, nullptr ) );
425 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carl Poirier" ), CONTRIB_DEV, nullptr ) );
426 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Reece Pollack" ), CONTRIB_DEV, nullptr ) );
427 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alain Portal" ), CONTRIB_DEV, nullptr ) );
428 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrei Pozolotin" ), CONTRIB_DEV, nullptr ) );
429 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Antia Puentes" ), CONTRIB_DEV, nullptr ) );
430 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Heikki Pulkkinen" ), CONTRIB_DEV, nullptr ) );
431
432 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Morgan Quigley" ), CONTRIB_DEV, nullptr ) );
433
434 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Barabas Raffai" ), CONTRIB_DEV, nullptr ) );
435 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Urja Rannikko" ), CONTRIB_DEV, nullptr ) );
436 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joshua Redstone" ), CONTRIB_DEV, nullptr ) );
437 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michele Renda" ), CONTRIB_DEV, nullptr ) );
438 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Samuel Reynaud" ), CONTRIB_DEV, nullptr ) );
439 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dmitry Rezvanov" ), CONTRIB_DEV, nullptr ) );
440 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Richter" ), CONTRIB_DEV, nullptr ) );
441 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christoph Riehl" ), CONTRIB_DEV, nullptr ) );
442 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thiadmer Riemersma" ), CONTRIB_DEV, nullptr ) );
443 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gregor Riepl" ), CONTRIB_DEV, nullptr ) );
444 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "RigoLigoRLC" ), CONTRIB_DEV, nullptr ) );
445 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ola Rinta-Koski" ), CONTRIB_DEV, nullptr ) );
446 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lubomir Rintel" ), CONTRIB_DEV, nullptr ) );
447 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Érico Rolim" ), CONTRIB_DEV, nullptr ) );
448 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marcus A. Romer" ), CONTRIB_DEV, nullptr ) );
449 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Heiko Rosemann" ), CONTRIB_DEV, nullptr ) );
450 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabio Rossi" ), CONTRIB_DEV, nullptr ) );
451 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ian Roth" ), CONTRIB_DEV, nullptr ) );
452
453 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "J. Morio Sakaguchi" ), CONTRIB_DEV, nullptr ) );
454 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Schaak" ), CONTRIB_DEV, nullptr ) );
455 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ross Schlaikjer" ), CONTRIB_DEV, nullptr ) );
456 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Julius Schmidt" ), CONTRIB_DEV, nullptr ) );
457 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marvin Schmidt" ), CONTRIB_DEV, nullptr ) );
458 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carsten Schoenert" ), CONTRIB_DEV, nullptr ) );
459 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Schubert" ), CONTRIB_DEV, nullptr ) );
460 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Schulz" ), CONTRIB_DEV, nullptr ) );
461 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Adrian Scripca" ), CONTRIB_DEV, nullptr ) );
462 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pradeepa Senanayake" ), CONTRIB_DEV, nullptr ) );
463 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Serantoni" ), CONTRIB_DEV, nullptr ) );
464 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Severinsen" ), CONTRIB_DEV, nullptr ) );
465 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cheng Sheng" ), CONTRIB_DEV, nullptr ) );
466 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Shuklin" ), CONTRIB_DEV, nullptr ) );
467 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Slawomir Siudym" ), CONTRIB_DEV, nullptr ) );
468 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Serantoni" ), CONTRIB_DEV, nullptr ) );
469 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Guillaume Simard" ), CONTRIB_DEV, nullptr ) );
470 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Sivak" ), CONTRIB_DEV, nullptr ) );
471 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ), CONTRIB_DEV, nullptr ) );
472 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dominik Sliwa" ), CONTRIB_DEV, nullptr ) );
473 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Blake Smith" ), CONTRIB_DEV, nullptr ) );
474 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rafael Sokolowski" ), CONTRIB_DEV, nullptr ) );
475 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vesa Solonen" ), CONTRIB_DEV, nullptr ) );
476 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ronald Sousa" ), CONTRIB_DEV, nullptr ) );
477 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Craig Southeren" ), CONTRIB_DEV, nullptr ) );
478 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Spindler" ), CONTRIB_DEV, nullptr ) );
479 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Seppe Stas" ), CONTRIB_DEV, nullptr ) );
480 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bernhard Stegmaier" ), CONTRIB_DEV, nullptr ) );
481 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Steinberg" ), CONTRIB_DEV, nullptr ) );
482 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Sterbik" ), CONTRIB_DEV, nullptr ) );
483 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Stock" ), CONTRIB_DEV, nullptr ) );
484 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Stoilov" ), CONTRIB_DEV, nullptr ) );
485 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hiroki Suenaga" ), CONTRIB_DEV, nullptr ) );
486
487 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Karl Thorén" ), CONTRIB_DEV, nullptr ) );
488 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hiroshi Tokita" ), CONTRIB_DEV, nullptr ) );
489
490 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vladimir Ur" ), CONTRIB_DEV, nullptr ) );
491 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthias Urlichs" ), CONTRIB_DEV, nullptr ) );
492 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vladimir Uryvaev" ), CONTRIB_DEV, nullptr ) );
493
494 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henri Valta" ), CONTRIB_DEV, nullptr ) );
495 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dave Vandenbout" ), CONTRIB_DEV, nullptr ) );
496 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Edwin van den Oetelaar" ), CONTRIB_DEV, nullptr ) );
497 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark van Doesburg" ), CONTRIB_DEV, nullptr ) );
498 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabio Varesano" ), CONTRIB_DEV, nullptr ) );
499 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Benjamin Vernoux" ), CONTRIB_DEV, nullptr ) );
500 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Villaro-Dixon" ), CONTRIB_DEV, nullptr ) );
501 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Forrest Voight" ), CONTRIB_DEV, nullptr ) );
502 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tormod Volden" ), CONTRIB_DEV, nullptr ) );
503
504 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Wågen" ), CONTRIB_DEV, nullptr ) );
505 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Oliver Walters" ), CONTRIB_DEV, nullptr ) );
506 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Warner" ), CONTRIB_DEV, nullptr ) );
507 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dan Weatherill" ), CONTRIB_DEV, nullptr ) );
508 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Weber" ), CONTRIB_DEV, nullptr ) );
509 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Wells" ), CONTRIB_DEV, nullptr ) );
510 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dominik Wernberger" ), CONTRIB_DEV, nullptr ) );
511 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nick Winters" ), CONTRIB_DEV, nullptr ) );
512 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Adam Wolf" ), CONTRIB_DEV, nullptr ) );
513 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrzej Wolski" ), CONTRIB_DEV, nullptr ) );
514 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Damian Wrobel" ), CONTRIB_DEV, nullptr ) );
515 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Wygle" ), CONTRIB_DEV, nullptr ) );
516
517 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jiaxun Yang" ), CONTRIB_DEV, nullptr ) );
518 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Robert Yates" ), CONTRIB_DEV, nullptr ) );
519 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yegor Yefremov" ), CONTRIB_DEV, nullptr ) );
520 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kenta Yonekura" ), CONTRIB_DEV, nullptr ) );
521
522 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Zakamaldin" ), CONTRIB_DEV, nullptr ) );
523 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henner Zeller" ), CONTRIB_DEV, nullptr ) );
524 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Zonenberg" ), CONTRIB_DEV, nullptr ) );
525 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Karl Zeilhofer" ), CONTRIB_DEV, nullptr ) );
526 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Zheng" ), CONTRIB_DEV, nullptr ) );
527
528 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nick Østergaard" ), CONTRIB_DEV, nullptr ) );
529
530 // The document writers
531 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Jean-Pierre Charras" ) ) );
532 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Marco Ciampa" ) ) );
533 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Jon Evans" ) ) );
534 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Dick Hollenbeck" ) ) );
535 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Graham Keeth" ) ) );
536 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Igor Plyatov" ) ) );
537 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Wayne Stambaugh" ) ) );
538 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Fabrizio Tappero" ) ) );
539
540 /* The translators
541 * As category the language to which the translation was done is used
542 */
543 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Martin Kratoška" ),
544 wxEmptyString,
545 wxEmptyString,
546 wxS( "Czech (CS)" ) ) );
547 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Radek Kuznik" ),
548 wxEmptyString,
549 wxEmptyString,
550 wxS( "Czech (CS)" ) ) );
551 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Roman Ondráček" ),
552 wxEmptyString,
553 wxEmptyString,
554 wxS( "Czech (CS)" ) ) );
555 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jan Straka" ),
556 wxEmptyString,
557 wxEmptyString,
558 wxS( "Czech (CS)" ) ) );
559 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jan Vykydal" ),
560 wxEmptyString,
561 wxEmptyString,
562 wxS( "Czech (CS)" ) ) );
563 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Jonathan Haas" ),
564 wxEmptyString,
565 wxEmptyString,
566 wxS( "German (DE)" ) ) );
567 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mark Hämmerling" ),
568 wxEmptyString,
569 wxEmptyString,
570 wxS( "German (DE)" ) ) );
571 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mathias Neumann" ),
572 wxEmptyString,
573 wxEmptyString,
574 wxS( "German (DE)" ) ) );
575 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dominik Wernberger" ),
576 wxEmptyString,
577 wxEmptyString,
578 wxS( "German (DE)" ) ) );
579 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Manolis Stefanis" ),
580 wxEmptyString,
581 wxEmptyString,
582 wxS( "Greek (el_GR)" ) ) );
583 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Athanasios Vlastos" ),
584 wxEmptyString,
585 wxEmptyString,
586 wxS( "Greek (el_GR)" ) ) );
587 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Milonas Kostas" ),
588 wxEmptyString,
589 wxEmptyString,
590 wxS( "Greek (el_GR)" ) ) );
591 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Michail Misirlis" ),
592 wxEmptyString,
593 wxEmptyString,
594 wxS( "Greek (el_GR)" ) ) );
595 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Adolfo Jayme Barrientos" ),
596 wxEmptyString,
597 wxEmptyString,
598 wxS( "Spanish (ES)" ) ) );
599 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Roberto Fernandez Bautista" ),
600 wxEmptyString,
601 wxEmptyString,
602 wxS( "Spanish (ES)" ) ) );
603 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
604 wxEmptyString,
605 wxEmptyString,
606 wxS( "Spanish (ES)" ) ) );
607 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Pedro Martin del Valle" ),
608 wxEmptyString,
609 wxEmptyString,
610 wxS( "Spanish (ES)" ) ) );
611 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Figuero" ),
612 wxEmptyString,
613 wxEmptyString,
614 wxS( "Spanish (ES)" ) ) );
615 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
616 wxEmptyString,
617 wxEmptyString,
618 wxS( "Spanish (ES)" ) ) );
619 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ulices Avila Hernandez" ),
620 wxEmptyString,
621 wxEmptyString,
622 wxS( "Spanish - Latin American (ES)" ) ) );
623 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Vesa Solonen" ),
624 wxEmptyString,
625 wxEmptyString,
626 wxS( "Finnish (FI)" ) ) );
627 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Alex Gellen" ),
628 wxEmptyString,
629 wxEmptyString,
630 wxS( "Finnish (FI)" ) ) );
631 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "J. Lavoie" ),
632 wxEmptyString,
633 wxEmptyString,
634 wxS( "Finnish (FI)" ) ) );
635 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Purkka Koodari" ),
636 wxEmptyString,
637 wxEmptyString,
638 wxS( "Finnish (FI)" ) ) );
639 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ola Rinta-Koski" ),
640 wxEmptyString,
641 wxEmptyString,
642 wxS( "Finnish (FI)" ) ) );
643 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Riku Viitanen" ),
644 wxEmptyString,
645 wxEmptyString,
646 wxS( "Finnish (FI)" ) ) );
647 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Simo Mattila" ),
648 wxEmptyString,
649 wxEmptyString,
650 wxS( "Finnish (FI)" ) ) );
651 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jean-Pierre Charras" ),
652 wxEmptyString,
653 wxEmptyString,
654 wxS( "French (FR)" ) ) );
655 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Marco Ciampa" ),
656 wxEmptyString,
657 wxEmptyString,
658 wxS( "Italian (IT)" ) ) );
659 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hiroshi Tokita" ),
660 wxEmptyString,
661 wxEmptyString,
662 wxS( "Japanese (JA)" ) ) );
663 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kenta Yonekura" ),
664 wxEmptyString,
665 wxEmptyString,
666 wxS( "Japanese (JA)" ) ) );
667 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ji Yoon Choi" ),
668 wxEmptyString,
669 wxEmptyString,
670 wxS( "Japanese (JA)" ) ) );
671 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hidemichi Gotou" ),
672 wxEmptyString,
673 wxEmptyString,
674 wxS( "Japanese (JA)" ) ) );
675 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kaoru Zenyouji" ),
676 wxEmptyString,
677 wxEmptyString,
678 wxS( "Japanese (JA)" ) ) );
679 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kinichiro Inoguchi" ),
680 wxEmptyString,
681 wxEmptyString,
682 wxS( "Japanese (JA)" ) ) );
683 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Norio Suzuki" ),
684 wxEmptyString,
685 wxEmptyString,
686 wxS( "Japanese (JA)" ) ) );
687 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "starfort-jp" ),
688 wxEmptyString,
689 wxEmptyString,
690 wxS( "Japanese (JA)" ) ) );
691 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "킴슨김랑기" ),
692 wxEmptyString,
693 wxEmptyString,
694 wxS( "Korean (KO)" ) ) );
695 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ji Yoon Choi" ),
696 wxEmptyString,
697 wxEmptyString,
698 wxS( "Korean (KO)" ) ) );
699 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "jeongsuAn" ),
700 wxEmptyString,
701 wxEmptyString,
702 wxS( "Korean (KO)" ) ) );
703 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "이상수" ),
704 wxEmptyString,
705 wxEmptyString,
706 wxS( "Korean (KO)" ) ) );
707 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "jehunseo" ),
708 wxEmptyString,
709 wxEmptyString,
710 wxS( "Korean (KO)" ) ) );
711 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Uibeom Jung" ),
712 wxEmptyString,
713 wxEmptyString,
714 wxS( "Korean (KO)" ) ) );
715 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "박준언" ),
716 wxEmptyString,
717 wxEmptyString,
718 wxS( "Korean (KO)" ) ) );
719 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "방준영" ),
720 wxEmptyString,
721 wxEmptyString,
722 wxS( "Korean (KO)" ) ) );
723 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "박기정" ),
724 wxEmptyString,
725 wxEmptyString,
726 wxS( "Korean (KO)" ) ) );
727 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "hokim" ),
728 wxEmptyString,
729 wxEmptyString,
730 wxS( "Korean (KO)" ) ) );
731 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "강명구" ),
732 wxEmptyString,
733 wxEmptyString,
734 wxS( "Korean (KO)" ) ) );
735 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "서범기" ),
736 wxEmptyString,
737 wxEmptyString,
738 wxS( "Korean (KO)" ) ) );
739 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Arend-Jan van Hilten" ),
740 wxEmptyString,
741 wxEmptyString,
742 wxS( "Dutch (NL)" ) ) );
743 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "CJ van der Hoeven" ),
744 wxEmptyString,
745 wxEmptyString,
746 wxS( "Dutch (NL)" ) ) );
747 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Pim Jansen" ),
748 wxEmptyString,
749 wxEmptyString,
750 wxS( "Dutch (NL)" ) ) );
751 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Allan Nordhøy" ),
752 wxEmptyString,
753 wxEmptyString,
754 wxS( "Norwegian (NO)" ) ) );
755 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ),
756 wxEmptyString,
757 wxEmptyString,
758 wxS( "Polish (PL)" ) ) );
759 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kerusey Karyu" ),
760 wxEmptyString,
761 wxEmptyString,
762 wxS( "Polish (PL)" ) ) );
763 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mark Roszko" ),
764 wxEmptyString,
765 wxEmptyString,
766 wxS( "Polish (PL)" ) ) );
767 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "ZbeeGin" ),
768 wxEmptyString,
769 wxEmptyString,
770 wxS( "Polish (PL)" ) ) );
771 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
772 wxEmptyString,
773 wxEmptyString,
774 wxS( "Brazilian Portuguese (PT_BR)" ) ) );
775 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Wellington Terumi Uemura" ),
776 wxEmptyString,
777 wxEmptyString,
778 wxS( "Brazilian Portuguese (PT_BR)" ) ) );
779 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
780 wxEmptyString,
781 wxEmptyString,
782 wxS( "Portuguese (PT)" ) ) );
783 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Renie Marquet" ),
784 wxEmptyString,
785 wxEmptyString,
786 wxS( "Portuguese (PT)" ) ) );
787 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Rafael Silva" ),
788 wxEmptyString,
789 wxEmptyString,
790 wxS( "Portuguese (PT)" ) ) );
791 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Igor Plyatov" ),
792 wxEmptyString,
793 wxEmptyString,
794 wxS( "Russian (RU)" ) ) );
795 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Дмитрий Дёмин" ),
796 wxEmptyString,
797 wxEmptyString,
798 wxS( "Russian (RU)" ) ) );
799 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Andrey Fedorushkov" ),
800 wxEmptyString,
801 wxEmptyString,
802 wxS( "Russian (RU)" ) ) );
803 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Eldar Khayrullin" ),
804 wxEmptyString,
805 wxEmptyString,
806 wxS( "Russian (RU)" ) ) );
807 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Konstantin Baranovskiy" ),
808 wxEmptyString,
809 wxEmptyString,
810 wxS( "Russian (RU)" ) ) );
811 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Axel Henriksson" ),
812 wxEmptyString,
813 wxEmptyString,
814 wxS( "Swedish (SV)" ) ) );
815 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Richard Jonsson" ),
816 wxEmptyString,
817 wxEmptyString,
818 wxS( "Swedish (SV)" ) ) );
819 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Allan Nordhøy" ),
820 wxEmptyString,
821 wxEmptyString,
822 wxS( "Swedish (SV)" ) ) );
823 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Boonchai Kingrungped" ),
824 wxEmptyString,
825 wxEmptyString,
826 wxS( "Thai (TH)" ) ) );
827 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Liu Guang" ),
828 wxEmptyString,
829 wxEmptyString,
830 wxS( "Simplified Chinese (zh_CN)" ) ) );
831 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Taotieren" ),
832 wxEmptyString,
833 wxEmptyString,
834 wxS( "Simplified Chinese (zh_CN)" ) ) );
835 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dingzhong Chen" ),
836 wxEmptyString,
837 wxEmptyString,
838 wxS( "Simplified Chinese (zh_CN)" ) ) );
839 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "David Chen" ),
840 wxEmptyString,
841 wxEmptyString,
842 wxS( "Simplified Chinese (zh_CN)" ) ) );
843 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Rigo Ligo" ),
844 wxEmptyString,
845 wxEmptyString,
846 wxS( "Simplified Chinese (zh_CN)" ) ) );
847 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Tian Yunhao" ),
848 wxEmptyString,
849 wxEmptyString,
850 wxS( "Simplified Chinese (zh_CN)" ) ) );
851 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "David Chen" ),
852 wxEmptyString,
853 wxEmptyString,
854 wxS( "Traditional Chinese (zh_TW)" ) ) );
855 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "kai chiao chuang" ),
856 wxEmptyString,
857 wxEmptyString,
858 wxS( "Traditional Chinese (zh_TW)" ) ) );
859 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Taotieren" ),
860 wxEmptyString,
861 wxEmptyString,
862 wxS( "Traditional Chinese (zh_TW)" ) ) );
863
864 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Remy Halvick" ),
865 wxEmptyString,
866 wxEmptyString,
867 wxS( "Other" ) ) );
868
869 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "David J S Briscoe" ),
870 wxEmptyString,
871 wxEmptyString,
872 wxS( "Other" ) ) );
873
874 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Dominique Laigle" ),
875 wxEmptyString,
876 wxEmptyString,
877 wxS( "Other" ) ) );
878
879 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Paul Burke" ),
880 wxEmptyString,
881 wxEmptyString,
882 wxS( "Other" ) ) );
883
884
885 // Program credits for library team
886 #define LIBRARIANS _( "KiCad Librarian Team" )
887 // Lead librarians
888 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "cpresser"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
889
890 // Active librarians
891 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Aristeidis Kimirtzis"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
892 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "apo"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
893 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Armin Schoisswohl"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
894 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Carlos Nieves Ónega"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
895 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Dash Peters"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
896 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jan Sebastian Götte (jaseg)"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
897 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Greg Cormier"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
898 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jeremy Boynes"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
899 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jorge Neiva"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
900 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Kliment"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
901 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Andrew Lutsenko"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
902
903 // Former librarians
904 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Christian Schlüter"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
905 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Rene Poeschl"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
906 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Antonio Vázquez Blanco "), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
907 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Daniel Giesbrecht"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
908 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Otavio Augusto Gomes"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
909 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "herostrat"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
910 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Diego Herranz"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
911 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Joel Guittet"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
912 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Chris Morgan"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
913 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Thomas Pointhuber"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
914 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Evan Shultz"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
915 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Bob Cousins"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
916 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "nickoe"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
917 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Oliver Walters"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
918
919 #define MODELS_3D_CONTRIBUTION _( "3D models by" )
920 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "Scripts by Maui" ),
921 wxS( "https://github.com/easyw" ),
922 wxS( "https://gitlab.com/kicad/libraries/kicad-packages3D-generator" ),
924 aInfo.CreateKiBitmap( BITMAPS::three_d ) ) );
925 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
926 wxEmptyString,
927 wxS( "https://gitlab.com/kicad/libraries/kicad-packages3D/-/graphs/master" ),
929 aInfo.CreateKiBitmap( BITMAPS::three_d ) ) );
930
931 #define SYMBOL_LIB_CONTRIBUTION _( "Symbols by" )
932 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
933 wxEmptyString,
934 wxS( "https://gitlab.com/kicad/libraries/kicad-symbols/-/graphs/v7" ),
937
938 #define FOOTPRINT_LIB_CONTRIBUTION _( "Footprints by" )
939 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "Scripts by Thomas Pointhuber" ),
940 wxEmptyString,
941 wxS( "https://gitlab.com/kicad/libraries/kicad-footprint-generator" ),
943 aInfo.CreateKiBitmap( BITMAPS::module ) ) );
944 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
945 wxEmptyString,
946 wxS( "https://gitlab.com/kicad/libraries/kicad-footprints/-/graphs/master" ),
948 aInfo.CreateKiBitmap( BITMAPS::module ) ) );
949
950 // Program credits for icons
951 #define ICON_CONTRIBUTION _( "Icons by" )
952 aInfo.AddArtist( new CONTRIBUTOR( wxT( "Aleksandr Zyrianov" ),
953 wxEmptyString,
954 wxEmptyString,
956 aInfo.AddArtist( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
957 wxEmptyString,
958 wxEmptyString,
960 aInfo.AddArtist( new CONTRIBUTOR( wxS( "Fabrizio Tappero" ),
961 wxEmptyString,
962 wxEmptyString,
964
965 // Program credits for package developers.
966 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Steven Falco" ) ) );
967 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Jean-Samuel Reynaud" ) ) );
968 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Bernhard Stegmaier" ) ) );
969 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Adam Wolf" ) ) );
970 aInfo.AddPackager( new CONTRIBUTOR( wxT( "Nick Østergaard" ) ) );
971}
972
973
975{
977 buildKicadAboutBanner( aParent, info );
978
979 DIALOG_ABOUT dlg( aParent, info );
980 dlg.ShowModal();
981}
982
983
987
997static wxString HtmlHyperlink( const wxString& aUrl, const wxString& aDescription )
998{
999 wxString hyperlink = wxEmptyString;
1000
1001 if( aDescription.IsEmpty() )
1002 hyperlink << wxS( "<a href='" ) << aUrl << wxS( "'>" ) << aUrl << wxS( "</a>" );
1003 else
1004 hyperlink << wxS( "<a href='" )<< aUrl << wxS( "'>" ) << aDescription << wxS( "</a>" );
1005
1006 return hyperlink;
1007}
1008
1009
1017static wxString HtmlNewline( const unsigned int aCount )
1018{
1019 wxString newlineTags = wxEmptyString;
1020
1021 for( size_t i = 0; i<aCount; ++i )
1022 newlineTags << wxS( "<br>" );
1023
1024 return newlineTags;
1025}
#define MODELS_3D_CONTRIBUTION
static wxString HtmlNewline(const unsigned int amount=1)
Create an HTML newline character sequence of aCount.
#define ICON_CONTRIBUTION
static wxString HtmlHyperlink(const wxString &url, const wxString &description=wxEmptyString)
Helper functions.
#define LEAD_DEV
#define FORMER_DEV
#define LIBRARIANS
void ShowAboutDialog(EDA_BASE_FRAME *aParent)
#define FOOTPRINT_LIB_CONTRIBUTION
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
#define CONTRIB_DEV
@ add_component
wxString GetBuildVersion()
Get the full KiCad version string.
wxString GetPlatformGetBitnessName()
wxString GetBuildDate()
Get the build date as a string.
An object of this class is meant to be used to store application specific information like who has co...
Definition: aboutinfo.h:45
void AddDocWriter(const CONTRIBUTOR *docwriter)
Definition: aboutinfo.h:56
void SetBuildDate(const wxString &date)
Definition: aboutinfo.h:108
void AddTranslator(const CONTRIBUTOR *translator)
Definition: aboutinfo.h:74
void AddDeveloper(const CONTRIBUTOR *developer)
Definition: aboutinfo.h:50
void SetAppName(const wxString &name)
Definition: aboutinfo.h:102
void SetDescription(const wxString &text)
Definition: aboutinfo.h:93
void SetLibVersion(const wxString &version)
Definition: aboutinfo.h:111
wxBitmap * CreateKiBitmap(BITMAPS aBitmap)
Definition: aboutinfo.h:118
void AddArtist(const CONTRIBUTOR *artist)
Definition: aboutinfo.h:68
void SetBuildVersion(const wxString &version)
Definition: aboutinfo.h:105
void SetAppIcon(const wxIcon &aIcon)
Definition: aboutinfo.h:114
void SetLicense(const wxString &text)
Definition: aboutinfo.h:96
void SetCopyright(const wxString &text)
Definition: aboutinfo.h:99
void AddLibrarian(const CONTRIBUTOR *aLibrarian)
Definition: aboutinfo.h:62
void AddPackager(const CONTRIBUTOR *packager)
Definition: aboutinfo.h:80
A contributor, a person which was involved in the development of the application or which has contrib...
Definition: aboutinfo.h:161
About dialog to show application specific information.
Definition: dialog_about.h:54
The base frame for deriving all KiCad main window classes.
The common library.
#define _(s)
Base window classes and related definitions.
bool IsOperatingSystemUnsupported()
Checks if the Operating System is explicitly unsupported and we want to prevent users from sending bu...
Definition: gtk/app.cpp:51
see class PGM_BASE
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:111