KiCad PCB EDA Suite
Loading...
Searching...
No Matches
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 The 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 /* KiCad build version */
67 wxString version;
68 version << ( KIPLATFORM::APP::IsOperatingSystemUnsupported() ? wxString( wxS( "(UNSUPPORTED)" ) )
69 : GetBuildVersion() )
70#ifdef DEBUG
71 << wxT( ", debug" )
72#else
73 << wxT( ", release" )
74#endif
75 << wxT( " build" );
76
77 aInfo.SetBuildVersion( version );
78 aInfo.SetBuildDate( GetBuildDate() );
79
80 /* wxWidgets version */
81 wxString libVersion;
82 libVersion << wxGetLibraryVersionInfo().GetVersionString();
83
84 /* Unicode or ANSI version */
85#if wxUSE_UNICODE
86 libVersion << wxT( " Unicode " );
87#else
88 libVersion << wxT( " ANSI " );
89#endif
90
91 // Just in case someone builds KiCad with the platform native of Boost instead of
92 // the version included with the KiCad source.
93 libVersion << wxT( "and Boost " ) << ( BOOST_VERSION / 100000 ) << wxT( "." )
94 << ( BOOST_VERSION / 100 % 1000 ) << wxT( "." ) << ( BOOST_VERSION % 100 )
95 << wxT( "\n" );
96
97 // Operating System Information
98
99 wxPlatformInfo platformInfo;
100
101 libVersion << wxT( "Platform: " ) << wxGetOsDescription() << wxT( ", " )
103
104 aInfo.SetLibVersion( libVersion );
105
106 // info/description part HTML formatted:
107 wxString description;
108
109 /* short description */
110 description << wxT( "<p>" );
111 description << wxT( "<b><u>" )
112 << _( "Description" )
113 << wxT( "</u></b>" ); // bold & underlined font for caption
114
115 description << wxT( "<p>" )
116 << _( "The KiCad EDA Suite is a set of open source applications for the "
117 "creation of electronic schematics and printed circuit boards." )
118 << wxT( "</p>" );
119
120 description << wxT( "</p>" );
121
122 /* websites */
123 description << wxT( "<p><b><u>" )
124 << _( "KiCad on the web" )
125 << wxT( "</u></b>" ); // bold & underlined font for caption
126
127 // bullet-ed list with some http links
128 description << wxT( "<ul>" );
129 description << wxT( "<li>" )
130 << _( "The official KiCad website - " )
131 << HtmlHyperlink( wxS( "http://www.kicad.org" ) )
132 << wxT( "</li>" );
133 description << wxT( "<li>" )
134 << _( "Developer website - " )
135 << HtmlHyperlink( wxS( "https://go.kicad.org/dev" ) )
136 << wxT( "</li>" );
137
138 description << wxT( "<li>" )
139 << _("Official KiCad library repositories - " )
140 << HtmlHyperlink( wxS( "https://go.kicad.org/libraries" ) )
141 << wxT( "</li>" );
142
143 description << wxT( "</ul></p>" );
144
145 description << wxT( "<p><b><u>" )
146 << _( "Bug tracker" )
147 << wxT( "</u></b>" ); // bold & underlined font caption
148
149 // bullet-ed list with some http links
150 description << wxT( "<ul>" );
151 description << wxT( "<li>" )
152 << _( "Report or examine bugs - " )
153 << HtmlHyperlink( wxS( "https://go.kicad.org/bugs" ) )
154 << wxT( "</li>" );
155 description << wxT( "</ul></p>" );
156
157 description << wxT( "<p><b><u>" )
158 << _( "KiCad users group and community" )
159 << wxT( "</u></b>" ); // bold & underlined font caption
160
161 description << wxT( "<ul>" );
162 description << wxT( "<li>" )
163 << _( "KiCad forum - " )
164 << HtmlHyperlink( wxS( "https://go.kicad.org/forum" ) )
165 << wxT( "</li>" );
166
167 description << wxT( "</ul></p>" );
168
169 aInfo.SetDescription( description );
170
171
172 // License information also HTML formatted:
173 wxString license;
174 license
175 << wxT( "<div align='center'>" )
176 << HtmlNewline( 4 )
177 << _( "The complete KiCad EDA Suite is released under the" ) << HtmlNewline( 2 )
178 << HtmlHyperlink( wxS( "http://www.gnu.org/licenses" ),
179 _( "GNU General Public License (GPL) version 3 or any later version" ) )
180 << wxT( "</div>" );
181
182 aInfo.SetLicense( license );
183
184
185 /* A contributor consists of the following information:
186 * Mandatory:
187 * - Name
188 * Optional:
189 * - EMail address
190 * - Category
191 * - Category specific icon
192 *
193 * All contributors of the same category will be enumerated under this category
194 * which should be represented by the same icon.
195 */
196
197 // The core developers
198#define ADD_DEV( name, category ) aInfo.AddDeveloper( new CONTRIBUTOR( name, category ) )
199#define LEAD_DEV _( "Lead Development Team" )
200#define FORMER_DEV _( "Lead Development Alumni" )
201#define CONTRIB_DEV _( "Additional Contributions By")
202 ADD_DEV( wxT( "Jean-Pierre Charras" ), LEAD_DEV );
203 ADD_DEV( wxT( "Wayne Stambaugh" ), LEAD_DEV );
204
205 // Alphabetical after the first two
206 ADD_DEV( wxT( "John Beard" ), LEAD_DEV );
207 ADD_DEV( wxT( "Jon Evans" ), LEAD_DEV );
208 ADD_DEV( wxT( "Roberto Fernandez Bautista" ), LEAD_DEV );
209 ADD_DEV( wxT( "Ethan Chien" ), LEAD_DEV );
210 ADD_DEV( wxT( "Fabien Corona" ), LEAD_DEV );
211 ADD_DEV( wxT( "Seth Hillbrand" ), LEAD_DEV );
212 ADD_DEV( wxT( "James Jackson" ), LEAD_DEV );
213 ADD_DEV( wxT( "Ian McInerney" ), LEAD_DEV );
214 ADD_DEV( wxT( "Mark Roszko" ), LEAD_DEV );
215 ADD_DEV( wxT( "Alex Shvartzkop" ), LEAD_DEV );
216 ADD_DEV( wxT( "Mike Williams" ), LEAD_DEV );
217 ADD_DEV( wxT( "Tomasz Wlostowski" ), LEAD_DEV );
218 ADD_DEV( wxT( "Jeff Young" ), LEAD_DEV );
219 ADD_DEV( wxT( "Eric Zhuang" ), LEAD_DEV );
220
221 ADD_DEV( wxT( "Dick Hollenbeck" ), FORMER_DEV );
222 ADD_DEV( wxT( "Alexis Lockwood" ), FORMER_DEV );
223 ADD_DEV( wxT( "Thomas Pointhuber" ), FORMER_DEV );
224 ADD_DEV( wxT( "Brian Sidebotham" ), FORMER_DEV );
225 ADD_DEV( wxT( "Orson (Maciej Sumiński)" ), FORMER_DEV );
226 ADD_DEV( wxT( "Mikolaj Wielgus" ), FORMER_DEV );
227
228 ADD_DEV( wxT( "Martin Aberg" ), CONTRIB_DEV );
229 ADD_DEV( wxT( "Yüksel Açikgöz" ), CONTRIB_DEV );
230 ADD_DEV( wxT( "Rohan Agrawal" ), CONTRIB_DEV );
231 ADD_DEV( wxT( "Johannes Agricola" ), CONTRIB_DEV );
232 ADD_DEV( wxT( "Erik Agsjö" ), CONTRIB_DEV );
233 ADD_DEV( wxT( "Nabeel Ahmad" ), CONTRIB_DEV );
234 ADD_DEV( wxT( "Werner Almesberger" ), CONTRIB_DEV );
235 ADD_DEV( wxT( "Shawn Anastasio" ), CONTRIB_DEV );
236 ADD_DEV( wxT( "Collin Anderson" ), CONTRIB_DEV );
237 ADD_DEV( wxT( "Tom Andrews" ), CONTRIB_DEV );
238 ADD_DEV( wxT( "Subaru Arai" ), CONTRIB_DEV );
239 ADD_DEV( wxT( "Mikael Arguedas" ), CONTRIB_DEV );
240 ADD_DEV( wxT( "Lachlan Audas" ), CONTRIB_DEV );
241 ADD_DEV( wxT( "Jean-Noel Avila" ), CONTRIB_DEV );
242
243 ADD_DEV( wxT( "Pascal Baerten" ), CONTRIB_DEV );
244 ADD_DEV( wxT( "Konstantin Baranovskiy" ), CONTRIB_DEV );
245 ADD_DEV( wxT( "Roman Bashkov" ), CONTRIB_DEV );
246 ADD_DEV( wxT( "Michael Beardsworth" ), CONTRIB_DEV );
247 ADD_DEV( wxT( "Matthew Beckler" ), CONTRIB_DEV );
248 ADD_DEV( wxT( "Markus Becker" ), CONTRIB_DEV );
249 ADD_DEV( wxT( "Konrad Beckmann" ), CONTRIB_DEV );
250 ADD_DEV( wxT( "Eduardo Behr" ), CONTRIB_DEV );
251 ADD_DEV( wxT( "David Beinder" ), CONTRIB_DEV );
252 ADD_DEV( wxT( "Frank Bennett" ), CONTRIB_DEV );
253 ADD_DEV( wxT( "Roman Beranek" ), CONTRIB_DEV );
254 ADD_DEV( wxT( "Francois Berder" ), CONTRIB_DEV );
255 ADD_DEV( wxT( "Martin Berglund" ), CONTRIB_DEV );
256 ADD_DEV( wxT( "Gustav Bergquist" ), CONTRIB_DEV );
257 ADD_DEV( wxT( "Cirilo Bernardo" ), CONTRIB_DEV );
258 ADD_DEV( wxT( "Joël Bertrand" ), CONTRIB_DEV );
259 ADD_DEV( wxT( "Harry Best" ), CONTRIB_DEV );
260 ADD_DEV( wxT( "Andreas Beutling" ), CONTRIB_DEV );
261 ADD_DEV( wxT( "Brian F. G. Bidulock" ), CONTRIB_DEV );
262 ADD_DEV( wxT( "Anton Blanchard" ), CONTRIB_DEV );
263 ADD_DEV( wxT( "Steve Bollinger" ), CONTRIB_DEV );
264 ADD_DEV( wxT( "Blair Bonnett" ), CONTRIB_DEV );
265 ADD_DEV( wxT( "Markus Bonk" ), CONTRIB_DEV );
266 ADD_DEV( wxT( "Franck Bourdonnec" ), CONTRIB_DEV );
267 ADD_DEV( wxT( "Carlo Bramini" ), CONTRIB_DEV );
268 ADD_DEV( wxT( "Matthias Breithaupt" ), CONTRIB_DEV );
269 ADD_DEV( wxT( "Stefan Brüns" ), CONTRIB_DEV );
270 ADD_DEV( wxT( "Andreas Buhr" ), CONTRIB_DEV );
271 ADD_DEV( wxT( "Ryan Bunch" ), CONTRIB_DEV );
272 ADD_DEV( wxT( "Emery Burhan" ), CONTRIB_DEV );
273
274 ADD_DEV( wxT( "Scott Candey" ), CONTRIB_DEV );
275 ADD_DEV( wxT( "Phinitnan Chanasabaeng" ), CONTRIB_DEV );
276 ADD_DEV( wxT( "Shivpratap Chauhan" ), CONTRIB_DEV );
277 ADD_DEV( wxT( "Kevin Cozens" ), CONTRIB_DEV );
278 ADD_DEV( wxT( "Joseph Y. Chen" ), CONTRIB_DEV );
279 ADD_DEV( wxT( "Alexey Chernov" ), CONTRIB_DEV );
280 ADD_DEV( wxT( "Marco Ciampa" ), CONTRIB_DEV );
281 ADD_DEV( wxT( "Marcus Comstedt" ), CONTRIB_DEV );
282 ADD_DEV( wxT( "Diogo Condeco" ), CONTRIB_DEV );
283 ADD_DEV( wxT( "Colin Cooper" ), CONTRIB_DEV );
284 ADD_DEV( wxT( "Emile Cormier" ), CONTRIB_DEV );
285 ADD_DEV( wxT( "Garth Corral" ), CONTRIB_DEV );
286 ADD_DEV( wxT( "Sergio Costas" ), CONTRIB_DEV );
287 ADD_DEV( wxT( "Kevin Cozens" ), CONTRIB_DEV );
288 ADD_DEV( wxT( "Dan Cross" ), CONTRIB_DEV );
289
290 ADD_DEV( wxT( "Andrew D'Addesio" ), CONTRIB_DEV );
291 ADD_DEV( wxT( "Martin d'Allens" ), CONTRIB_DEV );
292 ADD_DEV( wxT( "Greg Davill" ), CONTRIB_DEV );
293 ADD_DEV( wxT( "Camille Delbegue" ), CONTRIB_DEV );
294 ADD_DEV( wxT( "Albin Dennevi" ), CONTRIB_DEV );
295 ADD_DEV( wxT( "Ruben De Smet" ), CONTRIB_DEV );
296 ADD_DEV( wxT( "Alexander Dewing" ), CONTRIB_DEV );
297 ADD_DEV( wxT( "Okan Demir" ), CONTRIB_DEV );
298 ADD_DEV( wxT( "Troy Denton" ), CONTRIB_DEV );
299 ADD_DEV( wxT( "Jonas Diemer" ), CONTRIB_DEV );
300 ADD_DEV( wxT( "Ben Dooks" ), CONTRIB_DEV );
301 ADD_DEV( wxT( "Pavel Dovgalyuk" ), CONTRIB_DEV );
302 ADD_DEV( wxT( "Andrew Downing" ), CONTRIB_DEV );
303 ADD_DEV( wxT( "Jan Dubiec" ), CONTRIB_DEV );
304 ADD_DEV( wxT( "Lucas Dumont" ), CONTRIB_DEV );
305
306 ADD_DEV( wxT( "Gerd Egidy" ), CONTRIB_DEV );
307 ADD_DEV( wxT( "Jean Philippe Eimer" ), CONTRIB_DEV );
308 ADD_DEV( wxT( "Ben Ellis" ), CONTRIB_DEV );
309 ADD_DEV( wxT( "Oleg Endo" ), CONTRIB_DEV );
310 ADD_DEV( wxT( "Damien Espitallier" ), CONTRIB_DEV );
311 ADD_DEV( wxT( "Paul Ewing" ), CONTRIB_DEV );
312
313 ADD_DEV( wxT( "Andrey Fedorushkov" ), CONTRIB_DEV );
314 ADD_DEV( wxT( "Julian Fellinger" ), CONTRIB_DEV );
315 ADD_DEV( wxT( "Joe Ferner" ), CONTRIB_DEV );
316 ADD_DEV( wxT( "Brian Fiete" ), CONTRIB_DEV );
317 ADD_DEV( wxT( "Thomas Figueroa" ), CONTRIB_DEV );
318 ADD_DEV( wxT( "Gilbert J.M. Forkel" ), CONTRIB_DEV );
319 ADD_DEV( wxT( "Vincenzo Fortunato" ), CONTRIB_DEV );
320 ADD_DEV( wxT( "Drew Fustini" ), CONTRIB_DEV );
321
322 ADD_DEV( wxT( "Ronnie Gaensli" ), CONTRIB_DEV );
323 ADD_DEV( wxT( "Christian Gagneraud" ), CONTRIB_DEV );
324 ADD_DEV( wxT( "Ben Gamari" ), CONTRIB_DEV );
325 ADD_DEV( wxT( "Ashutosh Gangwar" ), CONTRIB_DEV );
326 ADD_DEV( wxT( "Kamil Galik" ), CONTRIB_DEV );
327 ADD_DEV( wxT( "Alessandro Gatti" ), CONTRIB_DEV );
328 ADD_DEV( wxT( "Thomas Gambier" ), CONTRIB_DEV );
329 ADD_DEV( wxT( "Hal Gentz" ), CONTRIB_DEV );
330 ADD_DEV( wxT( "Lucas Gerads" ), CONTRIB_DEV );
331 ADD_DEV( wxT( "Davide Gerhard" ), CONTRIB_DEV );
332 ADD_DEV( wxT( "Michael Geselbracht" ), CONTRIB_DEV );
333 ADD_DEV( wxT( "Giulio Girardi" ), CONTRIB_DEV );
334 ADD_DEV( wxT( "Jeff Glass" ), CONTRIB_DEV );
335 ADD_DEV( wxT( "Alexander Golubev" ), CONTRIB_DEV );
336 ADD_DEV( wxT( "Angus Gratton" ), CONTRIB_DEV );
337 ADD_DEV( wxT( "Andrea Greco" ), CONTRIB_DEV );
338 ADD_DEV( wxT( "Element Green" ), CONTRIB_DEV );
339 ADD_DEV( wxT( "Mathias Grimmberger" ), CONTRIB_DEV );
340 ADD_DEV( wxT( "Johan Grip" ), CONTRIB_DEV );
341 ADD_DEV( wxT( "Michal Grzegorzek" ), CONTRIB_DEV );
342 ADD_DEV( wxT( "Hildo Guillardi Júnior" ), CONTRIB_DEV );
343 ADD_DEV( wxT( "Niki Guldbrand" ), CONTRIB_DEV );
344 ADD_DEV( wxT( "Tanay Gupta" ), CONTRIB_DEV );
345 ADD_DEV( wxT( "Alexander Guy" ), CONTRIB_DEV );
346 ADD_DEV( wxT( "Zoltan Gyarmati" ), CONTRIB_DEV );
347
348 ADD_DEV( wxT( "Jonathan Haas" ), CONTRIB_DEV );
349 ADD_DEV( wxT( "Mark Hämmerling" ), CONTRIB_DEV );
350 ADD_DEV( wxT( "Stefan Hamminga" ), CONTRIB_DEV );
351 ADD_DEV( wxT( "Ma Han" ), CONTRIB_DEV );
352 ADD_DEV( wxT( "Scott Hanson" ), CONTRIB_DEV );
353 ADD_DEV( wxT( "Ben Harris" ), CONTRIB_DEV );
354 ADD_DEV( wxT( "Lukas F. Hartmann" ), CONTRIB_DEV );
355 ADD_DEV( wxT( "Jakob Haufe" ), CONTRIB_DEV );
356 ADD_DEV( wxT( "Aylons Hazzud" ), CONTRIB_DEV );
357 ADD_DEV( wxT( "Stefan Helmert" ), CONTRIB_DEV );
358 ADD_DEV( wxT( "Hartmut Henkel" ), CONTRIB_DEV );
359 ADD_DEV( wxT( "Brian Henning" ), CONTRIB_DEV );
360 ADD_DEV( wxT( "Paulo Henrique Silva" ), CONTRIB_DEV );
361 ADD_DEV( wxT( "Hans Henry von Tresckow" ), CONTRIB_DEV );
362 ADD_DEV( wxT( "Diego Herranz" ), CONTRIB_DEV );
363 ADD_DEV( wxT( "Marco Hess" ), CONTRIB_DEV );
364 ADD_DEV( wxT( "Petri Hodju" ), CONTRIB_DEV );
365 ADD_DEV( wxT( "David Holdeman" ), CONTRIB_DEV );
366 ADD_DEV( wxT( "Laurens Holst" ), CONTRIB_DEV );
367 ADD_DEV( wxT( "Yang Hongbo" ), CONTRIB_DEV );
368 ADD_DEV( wxT( "Mario Hros" ), CONTRIB_DEV );
369 ADD_DEV( wxT( "Josue Huaroto" ), CONTRIB_DEV );
370 ADD_DEV( wxT( "Matt Huszagh" ), CONTRIB_DEV );
371 ADD_DEV( wxT( "Torsten Hüter" ), CONTRIB_DEV );
372
373 ADD_DEV( wxT( "José Ignacio Romero" ), CONTRIB_DEV );
374 ADD_DEV( wxT( "Marco Inacio" ), CONTRIB_DEV );
375 ADD_DEV( wxT( "Kinichiro Inoguchi" ), CONTRIB_DEV );
376 ADD_DEV( wxT( "Fabián Inostroza" ), CONTRIB_DEV );
377 ADD_DEV( wxT( "Vlad Ivanov" ), CONTRIB_DEV );
378 ADD_DEV( wxT( "Andre Iwers" ), CONTRIB_DEV );
379
380 ADD_DEV( wxT( "Hasan Jaafar" ), CONTRIB_DEV );
381 ADD_DEV( wxT( "Jerry Jacobs" ), CONTRIB_DEV );
382 ADD_DEV( wxT( "Christian Jacobsen" ), CONTRIB_DEV );
383 ADD_DEV( wxT( "Michal Jahelka" ), CONTRIB_DEV );
384 ADD_DEV( wxT( "Martin Janitschke" ), CONTRIB_DEV );
385 ADD_DEV( wxT( "Jonathan Jara-Almonte" ), CONTRIB_DEV );
386 ADD_DEV( wxT( "Zhuang Jiezhi" ), CONTRIB_DEV );
387 ADD_DEV( wxT( "José Jorge Enríquez" ), CONTRIB_DEV );
388 ADD_DEV( wxT( "Franck Jullien" ), CONTRIB_DEV );
389
390 ADD_DEV( wxT( "Eeli Kaikkonen" ), CONTRIB_DEV );
391 ADD_DEV( wxT( "Lajos Kamocsay" ), CONTRIB_DEV );
392 ADD_DEV( wxT( "Povilas Kanapickas" ), CONTRIB_DEV );
393 ADD_DEV( wxT( "Mikhail Karpenko" ), CONTRIB_DEV );
394 ADD_DEV( wxT( "Kerusey Karyu" ), CONTRIB_DEV );
395 ADD_DEV( wxT( "Michael Kavanagh" ), CONTRIB_DEV );
396 ADD_DEV( wxT( "Tom Keddie" ), CONTRIB_DEV );
397 ADD_DEV( wxT( "Graham Keeth" ), CONTRIB_DEV );
398 ADD_DEV( wxT( "Yury Khalyavin" ), CONTRIB_DEV );
399 ADD_DEV( wxT( "Eldar Khayrullin" ), CONTRIB_DEV );
400 ADD_DEV( wxT( "Georges Khaznadar" ), CONTRIB_DEV );
401 ADD_DEV( wxT( "Gary Kim" ), CONTRIB_DEV );
402 ADD_DEV( wxT( "Aristeidis Kimirtzis" ), CONTRIB_DEV );
403 ADD_DEV( wxT( "Ingo Kletti" ), CONTRIB_DEV );
404 ADD_DEV( wxT( "Kliment" ), CONTRIB_DEV );
405 ADD_DEV( wxT( "Sylwester Kocjan" ), CONTRIB_DEV );
406 ADD_DEV( wxT( "Uli Köhler" ), CONTRIB_DEV );
407 ADD_DEV( wxT( "Clemens Koller" ), CONTRIB_DEV );
408 ADD_DEV( wxT( "Asuki Kono" ), CONTRIB_DEV );
409 ADD_DEV( wxT( "Jakub Kozdon" ), CONTRIB_DEV );
410 ADD_DEV( wxT( "Andrej Krpic" ), CONTRIB_DEV );
411 ADD_DEV( wxT( "Hajo Nils Krabbenhöft" ), CONTRIB_DEV );
412 ADD_DEV( wxT( "Simon Kueppers" ), CONTRIB_DEV );
413 ADD_DEV( wxT( "Martijn Kuipers" ), CONTRIB_DEV );
414 ADD_DEV( wxT( "Dhinesh Kumar" ), CONTRIB_DEV );
415 ADD_DEV( wxT( "Eric Kuzmenko" ), CONTRIB_DEV );
416
417 ADD_DEV( wxT( "Robbert Lagerweij" ), CONTRIB_DEV );
418 ADD_DEV( wxT( "Dimitris Lampridis" ), CONTRIB_DEV );
419 ADD_DEV( wxT( "Marco Langer" ), CONTRIB_DEV );
420 ADD_DEV( wxT( "Kevin Lannen" ), CONTRIB_DEV );
421 ADD_DEV( wxT( "Mika Laitio" ), CONTRIB_DEV );
422 ADD_DEV( wxT( "Floris Lambrechts" ), CONTRIB_DEV );
423 ADD_DEV( wxT( "lê văn lập" ), CONTRIB_DEV );
424 ADD_DEV( wxT( "Denis Latyshev" ), CONTRIB_DEV );
425 ADD_DEV( wxT( "Anton Lazarev" ), CONTRIB_DEV );
426 ADD_DEV( wxT( "Dag Lem" ), CONTRIB_DEV );
427 ADD_DEV( wxT( "Ludovic Léau-mercier" ), CONTRIB_DEV );
428 ADD_DEV( wxT( "Paul LeoNerd Evens" ), CONTRIB_DEV );
429 ADD_DEV( wxT( "Jonatan Liljedahl" ), CONTRIB_DEV );
430 ADD_DEV( wxT( "Huanyin Liu" ), CONTRIB_DEV );
431 ADD_DEV( wxT( "Alexander Lunev" ), CONTRIB_DEV );
432 ADD_DEV( wxT( "Andrew Lutsenko" ), CONTRIB_DEV );
433 ADD_DEV( wxT( "Mario Luzeiro" ), CONTRIB_DEV );
434
435 ADD_DEV( wxT( "Johannes Maibaum" ), CONTRIB_DEV );
436 ADD_DEV( wxT( "Mateusz Majchrzycki" ), CONTRIB_DEV );
437 ADD_DEV( wxT( "Daniel Majewski" ), CONTRIB_DEV );
438 ADD_DEV( wxT( "Rachel Mant" ), CONTRIB_DEV );
439 ADD_DEV( wxT( "Lorenzo Marcantonio" ), CONTRIB_DEV );
440 ADD_DEV( wxT( "Miklós Márton" ), CONTRIB_DEV );
441 ADD_DEV( wxT( "Marco Mattila" ), CONTRIB_DEV );
442 ADD_DEV( wxT( "Steffen Mauch" ), CONTRIB_DEV );
443 ADD_DEV( wxT( "Brian Mayton" ), CONTRIB_DEV );
444 ADD_DEV( wxT( "Maui" ), CONTRIB_DEV );
445 ADD_DEV( wxT( "Kirill Mavreshko" ), CONTRIB_DEV );
446 ADD_DEV( wxT( "Miles McCoo" ), CONTRIB_DEV );
447 ADD_DEV( wxT( "Charles McDowell" ), CONTRIB_DEV );
448 ADD_DEV( wxT( "Moses McKnight" ), CONTRIB_DEV );
449 ADD_DEV( wxT( "Martin McNamara" ), CONTRIB_DEV );
450 ADD_DEV( wxT( "Cameron McQuinn" ), CONTRIB_DEV );
451 ADD_DEV( wxT( "Ievgenii Meshcheriakov" ), CONTRIB_DEV );
452 ADD_DEV( wxT( "Mojca Miklavec" ), CONTRIB_DEV );
453 ADD_DEV( wxT( "Ashley Mills" ), CONTRIB_DEV );
454 ADD_DEV( wxT( "Christoph Moench-Tegeder" ), CONTRIB_DEV );
455 ADD_DEV( wxT( "Peter Montgomery" ), CONTRIB_DEV );
456 ADD_DEV( wxT( "Alejandro García Montoro" ), CONTRIB_DEV );
457 ADD_DEV( wxT( "Chris Morgan" ), CONTRIB_DEV );
458 ADD_DEV( wxT( "Felix Morgner" ), CONTRIB_DEV );
459 ADD_DEV( wxT( "Jan Mrázek" ), CONTRIB_DEV );
460 ADD_DEV( wxT( "Frank Muenstermann" ), CONTRIB_DEV );
461
462 ADD_DEV( wxT( "Michael Narigon" ), CONTRIB_DEV );
463 ADD_DEV( wxT( "Jon Neal" ), CONTRIB_DEV );
464 ADD_DEV( wxT( "Bastian Neumann" ), CONTRIB_DEV );
465 ADD_DEV( wxT( "Daniil Nikolaev" ), CONTRIB_DEV );
466 ADD_DEV( wxT( "Kristian Nielsen" ), CONTRIB_DEV );
467 ADD_DEV( wxT( "Érico Nogueira" ), CONTRIB_DEV );
468 ADD_DEV( wxT( "Allan Nordhøy" ), CONTRIB_DEV );
469 ADD_DEV( wxT( "Henrik Nyberg" ), CONTRIB_DEV );
470
471 ADD_DEV( wxT( "Kristoffer Ödmark" ), CONTRIB_DEV );
472 ADD_DEV( wxT( "Russell Oliver" ), CONTRIB_DEV );
473 ADD_DEV( wxT( "Jason Oster" ), CONTRIB_DEV );
474
475 ADD_DEV( wxT( "Frank Palazzolo" ), CONTRIB_DEV );
476 ADD_DEV( wxT( "Sven Pauli" ), CONTRIB_DEV );
477 ADD_DEV( wxT( "Matus Pavelek" ), CONTRIB_DEV );
478 ADD_DEV( wxT( "luz paz" ), CONTRIB_DEV );
479 ADD_DEV( wxT( "Miguel Angel Ajo Pelayo" ), CONTRIB_DEV );
480 ADD_DEV( wxT( "Patrick Pereira" ), CONTRIB_DEV );
481 ADD_DEV( wxT( "Jacobo Aragunde Perez" ), CONTRIB_DEV );
482 ADD_DEV( wxT( "Matthew Petroff" ), CONTRIB_DEV );
483 ADD_DEV( wxT( "Johannes Pfister" ), CONTRIB_DEV );
484 ADD_DEV( wxT( "Fabian Pflug" ), CONTRIB_DEV );
485 ADD_DEV( wxT( "Christian Pfluger" ), CONTRIB_DEV );
486 ADD_DEV( wxT( "Brian Piccioni" ), CONTRIB_DEV );
487 ADD_DEV( wxT( "Mathieu Pilato" ), CONTRIB_DEV );
488 ADD_DEV( wxT( "Nicolas Planel" ), CONTRIB_DEV );
489 ADD_DEV( wxT( "Paweł Płóciennik" ), CONTRIB_DEV );
490 ADD_DEV( wxT( "Carl Poirier" ), CONTRIB_DEV );
491 ADD_DEV( wxT( "Reece Pollack" ), CONTRIB_DEV );
492 ADD_DEV( wxT( "Alain Portal" ), CONTRIB_DEV );
493 ADD_DEV( wxT( "Andrei Pozolotin" ), CONTRIB_DEV );
494 ADD_DEV( wxT( "Antia Puentes" ), CONTRIB_DEV );
495 ADD_DEV( wxT( "Zoltan Puskas" ), CONTRIB_DEV );
496 ADD_DEV( wxT( "Heikki Pulkkinen" ), CONTRIB_DEV );
497
498 ADD_DEV( wxT( "Morgan Quigley" ), CONTRIB_DEV );
499
500 ADD_DEV( wxT( "Barabas Raffai" ), CONTRIB_DEV );
501 ADD_DEV( wxT( "Urja Rannikko" ), CONTRIB_DEV );
502 ADD_DEV( wxT( "Alexander Rauth" ), CONTRIB_DEV );
503 ADD_DEV( wxT( "Hendrik v. Raven" ), CONTRIB_DEV );
504 ADD_DEV( wxT( "Joshua Redstone" ), CONTRIB_DEV );
505 ADD_DEV( wxT( "Michele Renda" ), CONTRIB_DEV );
506 ADD_DEV( wxT( "Jean-Samuel Reynaud" ), CONTRIB_DEV );
507 ADD_DEV( wxT( "Dmitry Rezvanov" ), CONTRIB_DEV );
508 ADD_DEV( wxT( "Simon Richter" ), CONTRIB_DEV );
509 ADD_DEV( wxT( "Christoph Riehl" ), CONTRIB_DEV );
510 ADD_DEV( wxT( "Thiadmer Riemersma" ), CONTRIB_DEV );
511 ADD_DEV( wxT( "Gregor Riepl" ), CONTRIB_DEV );
512 ADD_DEV( wxT( "RigoLigoRLC" ), CONTRIB_DEV );
513 ADD_DEV( wxT( "Ola Rinta-Koski" ), CONTRIB_DEV );
514 ADD_DEV( wxT( "Lubomir Rintel" ), CONTRIB_DEV );
515 ADD_DEV( wxT( "Érico Rolim" ), CONTRIB_DEV );
516 ADD_DEV( wxT( "Marcus A. Romer" ), CONTRIB_DEV );
517 ADD_DEV( wxT( "Heiko Rosemann" ), CONTRIB_DEV );
518 ADD_DEV( wxT( "Fabio Rossi" ), CONTRIB_DEV );
519 ADD_DEV( wxT( "Ian Roth" ), CONTRIB_DEV );
520 ADD_DEV( wxT( "Huang Rui" ), CONTRIB_DEV );
521
522 ADD_DEV( wxT( "Clément Saccoccio" ), CONTRIB_DEV );
523 ADD_DEV( wxT( "J. Morio Sakaguchi" ), CONTRIB_DEV );
524 ADD_DEV( wxT( "Simon Schaak" ), CONTRIB_DEV );
525 ADD_DEV( wxT( "Ross Schlaikjer" ), CONTRIB_DEV );
526 ADD_DEV( wxT( "Julius Schmidt" ), CONTRIB_DEV );
527 ADD_DEV( wxT( "Felix Schneider" ), CONTRIB_DEV );
528 ADD_DEV( wxT( "Marvin Schmidt" ), CONTRIB_DEV );
529 ADD_DEV( wxT( "Carsten Schoenert" ), CONTRIB_DEV );
530 ADD_DEV( wxT( "Armin Schoisswohl" ), CONTRIB_DEV );
531 ADD_DEV( wxT( "Simon Schubert" ), CONTRIB_DEV );
532 ADD_DEV( wxT( "Michal Schulz" ), CONTRIB_DEV );
533 ADD_DEV( wxT( "Adrian Scripca" ), CONTRIB_DEV );
534 ADD_DEV( wxT( "Pradeepa Senanayake" ), CONTRIB_DEV );
535 ADD_DEV( wxT( "Marco Serantoni" ), CONTRIB_DEV );
536 ADD_DEV( wxT( "Frank Severinsen" ), CONTRIB_DEV );
537 ADD_DEV( wxT( "Cheng Sheng" ), CONTRIB_DEV );
538 ADD_DEV( wxT( "Yang Sheng" ), CONTRIB_DEV );
539 ADD_DEV( wxT( "Chetan Shinde" ), CONTRIB_DEV );
540 ADD_DEV( wxT( "Alexander Shuklin" ), CONTRIB_DEV );
541 ADD_DEV( wxT( "Adam Simpkins" ), CONTRIB_DEV );
542 ADD_DEV( wxT( "Slawomir Siudym" ), CONTRIB_DEV );
543 ADD_DEV( wxT( "Marco Serantoni" ), CONTRIB_DEV );
544 ADD_DEV( wxT( "Guillaume Simard" ), CONTRIB_DEV );
545 ADD_DEV( wxT( "Martin Sivak" ), CONTRIB_DEV );
546 ADD_DEV( wxT( "Mateusz Skowroński" ), CONTRIB_DEV );
547 ADD_DEV( wxT( "Dominik Sliwa" ), CONTRIB_DEV );
548 ADD_DEV( wxT( "Kacper Słomiński" ), CONTRIB_DEV );
549 ADD_DEV( wxT( "Blake Smith" ), CONTRIB_DEV );
550 ADD_DEV( wxT( "Ikoma So" ), CONTRIB_DEV );
551 ADD_DEV( wxT( "Michal Sojka" ), CONTRIB_DEV );
552 ADD_DEV( wxT( "Rafael Sokolowski" ), CONTRIB_DEV );
553 ADD_DEV( wxT( "Vesa Solonen" ), CONTRIB_DEV );
554 ADD_DEV( wxT( "Ronald Sousa" ), CONTRIB_DEV );
555 ADD_DEV( wxT( "Craig Southeren" ), CONTRIB_DEV );
556 ADD_DEV( wxT( "Thomas Spindler" ), CONTRIB_DEV );
557 ADD_DEV( wxT( "Seppe Stas" ), CONTRIB_DEV );
558 ADD_DEV( wxT( "Bernhard Stegmaier" ), CONTRIB_DEV );
559 ADD_DEV( wxT( "Michael Steinberg" ), CONTRIB_DEV );
560 ADD_DEV( wxT( "Marco Sterbik" ), CONTRIB_DEV );
561 ADD_DEV( wxT( "Alexander Stock" ), CONTRIB_DEV );
562 ADD_DEV( wxT( "Martin Stoilov" ), CONTRIB_DEV );
563 ADD_DEV( wxT( "Hiroki Suenaga" ), CONTRIB_DEV );
564 ADD_DEV( wxT( "Kuba Sunderland-Ober" ), CONTRIB_DEV );
565
566 ADD_DEV( wxT( "Nimish Telang" ), CONTRIB_DEV );
567 ADD_DEV( wxT( "Martin Thierer" ), CONTRIB_DEV );
568 ADD_DEV( wxT( "Karl Thorén" ), CONTRIB_DEV );
569 ADD_DEV( wxT( "Hiroshi Tokita" ), CONTRIB_DEV );
570 ADD_DEV( wxT( "Daniel Treffenstädt" ), CONTRIB_DEV );
571
572 ADD_DEV( wxT( "Vladimir Ur" ), CONTRIB_DEV );
573 ADD_DEV( wxT( "Yon Uriarte" ), CONTRIB_DEV );
574 ADD_DEV( wxT( "Matthias Urlichs" ), CONTRIB_DEV );
575 ADD_DEV( wxT( "Vladimir Uryvaev" ), CONTRIB_DEV );
576
577 ADD_DEV( wxT( "Julie Vairai" ), CONTRIB_DEV );
578 ADD_DEV( wxT( "Henri Valta" ), CONTRIB_DEV );
579 ADD_DEV( wxT( "Dave Vandenbout" ), CONTRIB_DEV );
580 ADD_DEV( wxT( "Edwin van den Oetelaar" ), CONTRIB_DEV );
581 ADD_DEV( wxT( "Mark van Doesburg" ), CONTRIB_DEV );
582 ADD_DEV( wxT( "Nils van Zuijlen" ), CONTRIB_DEV );
583 ADD_DEV( wxT( "Fabio Varesano" ), CONTRIB_DEV );
584 ADD_DEV( wxT( "Benjamin Vernoux" ), CONTRIB_DEV );
585 ADD_DEV( wxT( "Frank Villaro-Dixon" ), CONTRIB_DEV );
586 ADD_DEV( wxT( "Mark Visser" ), CONTRIB_DEV );
587 ADD_DEV( wxT( "Forrest Voight" ), CONTRIB_DEV );
588 ADD_DEV( wxT( "Tormod Volden" ), CONTRIB_DEV );
589
590 ADD_DEV( wxT( "Bartek Wacławik" ), CONTRIB_DEV );
591 ADD_DEV( wxT( "Johannes Wågen" ), CONTRIB_DEV );
592 ADD_DEV( wxT( "Oliver Walters" ), CONTRIB_DEV );
593 ADD_DEV( wxT( "Jonathan Warner" ), CONTRIB_DEV );
594 ADD_DEV( wxT( "Dan Weatherill" ), CONTRIB_DEV );
595 ADD_DEV( wxT( "Stefan Weber" ), CONTRIB_DEV );
596 ADD_DEV( wxT( "Christian Weickhmann" ), CONTRIB_DEV );
597 ADD_DEV( wxT( "Bernhard M. Wiedemann" ), CONTRIB_DEV );
598 ADD_DEV( wxT( "Bevan Weiss" ), CONTRIB_DEV );
599 ADD_DEV( wxT( "Simon Wells" ), CONTRIB_DEV );
600 ADD_DEV( wxT( "Dominik Wernberger" ), CONTRIB_DEV );
601 ADD_DEV( wxT( "Jan Wichmann" ), CONTRIB_DEV );
602 ADD_DEV( wxT( "Nick Winters" ), CONTRIB_DEV );
603 ADD_DEV( wxT( "Adam Wolf" ), CONTRIB_DEV );
604 ADD_DEV( wxT( "Andrzej Wolski" ), CONTRIB_DEV );
605 ADD_DEV( wxT( "Céleste Wouters" ), CONTRIB_DEV );
606 ADD_DEV( wxT( "Damian Wrobel" ), CONTRIB_DEV );
607 ADD_DEV( wxT( "Andrew Wygle" ), CONTRIB_DEV );
608
609 ADD_DEV( wxT( "xx" ), CONTRIB_DEV );
610
611 ADD_DEV( wxT( "Jiaxun Yang" ), CONTRIB_DEV );
612 ADD_DEV( wxT( "Robert Yates" ), CONTRIB_DEV );
613 ADD_DEV( wxT( "Yegor Yefremov" ), CONTRIB_DEV );
614 ADD_DEV( wxT( "Kenta Yonekura" ), CONTRIB_DEV );
615
616 ADD_DEV( wxT( "Alexander Zakamaldin" ), CONTRIB_DEV );
617 ADD_DEV( wxT( "Frank Zeeman" ), CONTRIB_DEV );
618 ADD_DEV( wxT( "Henner Zeller" ), CONTRIB_DEV );
619 ADD_DEV( wxT( "Andrew Zonenberg" ), CONTRIB_DEV );
620 ADD_DEV( wxT( "Karl Zeilhofer" ), CONTRIB_DEV );
621 ADD_DEV( wxT( "Kevin Zheng" ), CONTRIB_DEV );
622
623 ADD_DEV( wxT( "Nick Østergaard" ), CONTRIB_DEV );
624 ADD_DEV( wxT( "木 王" ), CONTRIB_DEV );
625
626 // The document writers
627#define DOC_TEAM _( "Documentation Team" )
628#define ADD_WRITER( name, category ) aInfo.AddDocWriter( new CONTRIBUTOR( name, category ) )
629 ADD_WRITER( wxT( "Scott Candey" ), DOC_TEAM );
630 ADD_WRITER( wxS( "Jean-Pierre Charras" ), DOC_TEAM );
631 ADD_WRITER( wxS( "Marco Ciampa" ), DOC_TEAM );
632 ADD_WRITER( wxS( "Jon Evans" ), DOC_TEAM );
633 ADD_WRITER( wxS( "Dick Hollenbeck" ), DOC_TEAM );
634 ADD_WRITER( wxS( "James Jackson" ), DOC_TEAM );
635 ADD_WRITER( wxS( "Graham Keeth" ), DOC_TEAM );
636 ADD_WRITER( wxS( "Igor Plyatov" ), DOC_TEAM );
637 ADD_WRITER( wxS( "Wayne Stambaugh" ), DOC_TEAM );
638 ADD_WRITER( wxS( "Fabrizio Tappero" ), DOC_TEAM );
639 ADD_WRITER( wxS( "taotieren" ), DOC_TEAM );
640
641 /* The translators
642 * As category the language to which the translation was done is used
643 */
644#define ADD_TRANSLATOR( name, category ) aInfo.AddTranslator( new CONTRIBUTOR( name, category ) )
645 ADD_TRANSLATOR( wxT( "Radovan Blažek" ), wxS( "Czech (CS)" ) );
646 ADD_TRANSLATOR( wxT( "Ondřej Čertík" ), wxS( "Czech (CS)" ) );
647 ADD_TRANSLATOR( wxT( "Martin Kratoška" ), wxS( "Czech (CS)" ) );
648 ADD_TRANSLATOR( wxT( "Radek Kuznik" ), wxS( "Czech (CS)" ) );
649 ADD_TRANSLATOR( wxT( "Roman Ondráček" ), wxS( "Czech (CS)" ) );
650 ADD_TRANSLATOR( wxT( "Petr Pazourek" ), wxS( "Czech (CS)" ) );
651 ADD_TRANSLATOR( wxT( "René Široký" ), wxS( "Czech (CS)" ) );
652 ADD_TRANSLATOR( wxT( "Jan Straka" ), wxS( "Czech (CS)" ) );
653 ADD_TRANSLATOR( wxT( "Andrej Valek" ), wxS( "Czech (CS)" ) );
654 ADD_TRANSLATOR( wxT( "Jan Vykydal" ), wxS( "Czech (CS)" ) );
655
656 ADD_TRANSLATOR( wxS( "Mads Dyrmann" ), wxS( "Danish (DA)" ) );
657 ADD_TRANSLATOR( wxS( "Henrik Kauhanen" ), wxS( "Danish (DA)" ) );
658 ADD_TRANSLATOR( wxS( "Nick Østergaard" ), wxS( "Danish (DA)" ) );
659
660 ADD_TRANSLATOR( wxS( "Ettore Atalan" ), wxS( "German (DE)" ) );
661 ADD_TRANSLATOR( wxS( "Ivan Chuba" ), wxS( "German (DE)" ) );
662 ADD_TRANSLATOR( wxS( "Julian Daube" ), wxS( "German (DE)" ) );
663 ADD_TRANSLATOR( wxS( "Benedikt Freisen" ), wxS( "German (DE)" ) );
664 ADD_TRANSLATOR( wxS( "Jonathan Haas" ), wxS( "German (DE)" ) );
665 ADD_TRANSLATOR( wxT( "Mark Hämmerling" ), wxS( "German (DE)" ) );
666 ADD_TRANSLATOR( wxT( "Johannes Maibaum" ), wxS( "German (DE)" ) );
667 ADD_TRANSLATOR( wxT( "Henrik Kauhanen" ), wxS( "German (DE)" ) );
668 ADD_TRANSLATOR( wxT( "Mathias Neumann" ), wxS( "German (DE)" ) );
669 ADD_TRANSLATOR( wxT( "Ken Ovo" ), wxS( "German (DE)" ) );
670 ADD_TRANSLATOR( wxT( "Karl Schuh" ), wxS( "German (DE)" ) );
671 ADD_TRANSLATOR( wxT( "Frank Sonnenberg" ), wxS( "German (DE)" ) );
672 ADD_TRANSLATOR( wxT( "Lauritz Tieste" ), wxS( "German (DE)" ) );
673 ADD_TRANSLATOR( wxT( "Dominik Wernberger" ), wxS( "German (DE)" ) );
674
675 ADD_TRANSLATOR( wxS( "Manolis Stefanis" ), wxS( "Greek (el_GR)" ) );
676 ADD_TRANSLATOR( wxS( "Athanasios Vlastos" ), wxS( "Greek (el_GR)" ) );
677 ADD_TRANSLATOR( wxS( "Milonas Kostas" ), wxS( "Greek (el_GR)" ) );
678 ADD_TRANSLATOR( wxS( "Michail Misirlis" ), wxS( "Greek (el_GR)" ) );
679 ADD_TRANSLATOR( wxS( "Aristeidis Kimirtzis" ), wxS( "Greek (el_GR)" ) );
680
681 ADD_TRANSLATOR( wxT( "Adolfo Jayme Barrientos" ), wxS( "Spanish (ES)" ) );
682 ADD_TRANSLATOR( wxT( "Roberto Fernandez Bautista" ), wxS( "Spanish (ES)" ) );
683 ADD_TRANSLATOR( wxT( "Pablo Bianchi" ), wxS( "Spanish (ES)" ) );
684 ADD_TRANSLATOR( wxT( "Iñigo Figuero" ), wxS( "Spanish (ES)" ) );
685 ADD_TRANSLATOR( wxT( "Augusto Fraga Giachero" ), wxS( "Spanish (ES)" ) );
686 ADD_TRANSLATOR( wxS( "Pedro Martin del Valle" ), wxS( "Spanish (ES)" ) );
687 ADD_TRANSLATOR( wxS( "Gabriel Martinez" ), wxS( "Spanish (ES)" ) );
688 ADD_TRANSLATOR( wxT( "Gallego Novato" ), wxS( "Spanish (ES)" ) );
689 ADD_TRANSLATOR( wxT( "Jose Perez" ), wxS( "Spanish (ES)" ) );
690 ADD_TRANSLATOR( wxT( "Iñigo Zuluaga" ), wxS( "Spanish (ES)" ) );
691 ADD_TRANSLATOR( wxT( "Ulices Avila Hernandez" ), wxS( "Spanish (ES)" ) );
692 ADD_TRANSLATOR( wxT( "VicSanRoPe" ), wxS( "Spanish (ES)" ) );
693
694 ADD_TRANSLATOR( wxT( "VicSanRoPe" ), wxS( "Spanish - Latin American (ES)" ) );
695 ADD_TRANSLATOR( wxT( "Ulices Avila Hernandez" ), wxS( "Spanish - Latin American (ES)" ) );
696
697 ADD_TRANSLATOR( wxT( "Vesa Solonen" ), wxS( "Finnish (FI)" ) );
698 ADD_TRANSLATOR( wxT( "Alex Gellen" ), wxS( "Finnish (FI)" ) );
699 ADD_TRANSLATOR( wxT( "Toni Laiho" ), wxS( "Finnish (FI)" ) );
700 ADD_TRANSLATOR( wxT( "Henrik Kauhanen" ), wxS( "Finnish (FI)" ) );
701 ADD_TRANSLATOR( wxT( "Toni Laiho" ), wxS( "Finnish (FI)" ) );
702 ADD_TRANSLATOR( wxT( "J. Lavoie" ), wxS( "Finnish (FI)" ) );
703 ADD_TRANSLATOR( wxT( "Purkka Koodari" ), wxS( "Finnish (FI)" ) );
704 ADD_TRANSLATOR( wxT( "Simo Mattila" ), wxS( "Finnish (FI)" ) );
705 ADD_TRANSLATOR( wxT( "Petri Niemelä" ), wxS( "Finnish (FI)" ) );
706 ADD_TRANSLATOR( wxT( "Ola Rinta-Koski" ), wxS( "Finnish (FI)" ) );
707 ADD_TRANSLATOR( wxT( "Riku Viitanen" ), wxS( "Finnish (FI)" ) );
708
709 ADD_TRANSLATOR( wxT( "Jean-Pierre Charras" ), wxS( "French (FR)" ) );
710
711 ADD_TRANSLATOR( wxT( "Boromyr" ), wxS( "Italian (IT)" ) );
712 ADD_TRANSLATOR( wxT( "Marco Ciampa" ), wxS( "Italian (IT)" ) );
713
714 ADD_TRANSLATOR( wxT( "Subaru Arai" ), wxS( "Japanese (JA)" ) );
715 ADD_TRANSLATOR( wxT( "Ji Yoon Choi" ), wxS( "Japanese (JA)" ) );
716 ADD_TRANSLATOR( wxT( "Hidemichi Gotou" ), wxS( "Japanese (JA)" ) );
717 ADD_TRANSLATOR( wxT( "Kinichiro Inoguchi" ), wxS( "Japanese (JA)" ) );
718 ADD_TRANSLATOR( wxT( "Keisuke Nakao" ), wxS( "Japanese (JA)" ) );
719 ADD_TRANSLATOR( wxT( "Norio Suzuki" ), wxS( "Japanese (JA)" ) );
720 ADD_TRANSLATOR( wxT( "starfort-jp" ), wxS( "Japanese (JA)" ) );
721 ADD_TRANSLATOR( wxT( "Hiroshi Tokita" ), wxS( "Japanese (JA)" ) );
722 ADD_TRANSLATOR( wxT( "Yutaro Urata" ), wxS( "Japanese (JA)" ) );
723 ADD_TRANSLATOR( wxT( "Kenta Yonekura" ), wxS( "Japanese (JA)" ) );
724 ADD_TRANSLATOR( wxT( "Kaoru Zenyouji" ), wxS( "Japanese (JA)" ) );
725
726 ADD_TRANSLATOR( wxT( "킴슨김랑기" ), wxS( "Korean (KO)" ) );
727 ADD_TRANSLATOR( wxT( "Ji Yoon Choi" ), wxS( "Korean (KO)" ) );
728 ADD_TRANSLATOR( wxT( "jeongsuAn" ), wxS( "Korean (KO)" ) );
729 ADD_TRANSLATOR( wxT( "이상수" ), wxS( "Korean (KO)" ) );
730 ADD_TRANSLATOR( wxT( "jehunseo" ), wxS( "Korean (KO)" ) );
731 ADD_TRANSLATOR( wxT( "Uibeom Jung" ), wxS( "Korean (KO)" ) );
732 ADD_TRANSLATOR( wxT( "박준언" ), wxS( "Korean (KO)" ) );
733 ADD_TRANSLATOR( wxT( "방준영" ), wxS( "Korean (KO)" ) );
734 ADD_TRANSLATOR( wxT( "박기정" ), wxS( "Korean (KO)" ) );
735 ADD_TRANSLATOR( wxT( "hokim" ), wxS( "Korean (KO)" ) );
736 ADD_TRANSLATOR( wxT( "김낙환" ), wxS( "Korean (KO)" ) );
737 ADD_TRANSLATOR( wxT( "이기형" ), wxS( "Korean (KO)" ) );
738 ADD_TRANSLATOR( wxT( "남우근" ), wxS( "Korean (KO)" ) );
739 ADD_TRANSLATOR( wxT( "강명구" ), wxS( "Korean (KO)" ) );
740 ADD_TRANSLATOR( wxT( "김용재" ), wxS( "Korean (KO)" ) );
741 ADD_TRANSLATOR( wxT( "서범기" ), wxS( "Korean (KO)" ) );
742 ADD_TRANSLATOR( wxT( "김세영" ), wxS( "Korean (KO)" ) );
743 ADD_TRANSLATOR( wxT( "이윤성" ), wxS( "Korean (KO)" ) );
744 ADD_TRANSLATOR( wxT( "김랑기" ), wxS( "Korean (KO)" ) );
745 ADD_TRANSLATOR( wxT( "KwonHyeokbeom" ), wxS( "Korean (KO)" ) );
746 ADD_TRANSLATOR( wxT( "Minsu Kim (0xGabriel)" ), wxS( "Korean (KO)" ) );
747 ADD_TRANSLATOR( wxT( "Pedro Moreira" ), wxS( "Korean (KO)" ) );
748 ADD_TRANSLATOR( wxT( "jeong-sangwon" ), wxS( "Korean (KO)" ) );
749
750 ADD_TRANSLATOR( wxT( "Ignas Brašiškis" ), wxS( "Lithuanian (LT)" ) );
751 ADD_TRANSLATOR( wxT( "Henrik Kauhanen" ), wxS( "Lithuanian (LT)" ) );
752 ADD_TRANSLATOR( wxT( "Dainius Mazuika" ), wxS( "Lithuanian (LT)" ) );
753
754 ADD_TRANSLATOR( wxT( "Stefan De Raedemaeker" ), wxS( "Dutch (NL)" ) );
755 ADD_TRANSLATOR( wxT( "Laurens Holst" ), wxS( "Dutch (NL)" ) );
756 ADD_TRANSLATOR( wxT( "Pim Jansen" ), wxS( "Dutch (NL)" ) );
757 ADD_TRANSLATOR( wxT( "Henrik Kauhanen" ), wxS( "Dutch (NL)" ) );
758 ADD_TRANSLATOR( wxT( "Tom Niesse" ), wxS( "Dutch (NL)" ) );
759 ADD_TRANSLATOR( wxT( "Christiaan Nieuwlaat" ), wxS( "Dutch (NL)" ) );
760 ADD_TRANSLATOR( wxT( "Ranforingus" ), wxS( "Dutch (NL)" ) );
761 ADD_TRANSLATOR( wxT( "CJ van der Hoeven" ), wxS( "Dutch (NL)" ) );
762 ADD_TRANSLATOR( wxT( "Arend-Jan van Hilten" ), wxS( "Dutch (NL)" ) );
763 ADD_TRANSLATOR( wxT( "Bas Wijnen" ), wxS( "Dutch (NL)" ) );
764
765 ADD_TRANSLATOR( wxT( "Jarl Gjessing" ), wxS( "Norwegian (NO)" ) );
766 ADD_TRANSLATOR( wxT( "Henrik Kauhanen" ), wxS( "Norwegian (NO)" ) );
767 ADD_TRANSLATOR( wxT( "Allan Nordhøy" ), wxS( "Norwegian (NO)" ) );
768 ADD_TRANSLATOR( wxT( "Petter Reinholdtsen" ), wxS( "Norwegian (NO)" ) );
769 ADD_TRANSLATOR( wxT( "Håvard Syslak" ), wxS( "Norwegian (NO)" ) );
770
771 ADD_TRANSLATOR( wxT( "Ivan Chuba" ), wxS( "Polish (PL)" ) );
772 ADD_TRANSLATOR( wxT( "Kerusey Karyu" ), wxS( "Polish (PL)" ) );
773 ADD_TRANSLATOR( wxT( "Krzysztof Kawa" ), wxS( "Polish (PL)" ) );
774 ADD_TRANSLATOR( wxT( "J Kolod" ), wxS( "Polish (PL)" ) );
775 ADD_TRANSLATOR( wxT( "Eryk Michalak" ), wxS( "Polish (PL)" ) );
776 ADD_TRANSLATOR( wxT( "Filip Piękoś" ), wxS( "Polish (PL)" ) );
777 ADD_TRANSLATOR( wxT( "Mark Roszko" ), wxS( "Polish (PL)" ) );
778 ADD_TRANSLATOR( wxT( "Mateusz Skowroński" ), wxS( "Polish (PL)" ) );
779 ADD_TRANSLATOR( wxT( "Jan Sobków" ), wxS( "Polish (PL)" ) );
780 ADD_TRANSLATOR( wxT( "Grzegorz Szymaszek" ), wxS( "Polish (PL)" ) );
781 ADD_TRANSLATOR( wxT( "ZbeeGin" ), wxS( "Polish (PL)" ) );
782
783 ADD_TRANSLATOR( wxT( "Augusto Fraga Giachero" ), wxS( "Brazilian Portuguese (PT_BR)" ) );
784 ADD_TRANSLATOR( wxT( "Pedro Moreira" ), wxS( "Brazilian Portuguese (PT_BR)" ) );
785 ADD_TRANSLATOR( wxT( "Wellington Terumi Uemura" ), wxS( "Brazilian Portuguese (PT_BR)" ) );
786
787 ADD_TRANSLATOR( wxT( "Julio Dias" ), wxS( "Portuguese (PT)" ) );
788 ADD_TRANSLATOR( wxT( "Augusto Fraga Giachero" ), wxS( "Portuguese (PT)" ) );
789 ADD_TRANSLATOR( wxT( "Renie Marquet" ), wxS( "Portuguese (PT)" ) );
790 ADD_TRANSLATOR( wxT( "Rafael Silva" ), wxS( "Portuguese (PT)" ) );
791 ADD_TRANSLATOR( wxT( "ssantos" ), wxS( "Portuguese (PT)" ) );
792
793 ADD_TRANSLATOR( wxT( "Konstantin Baranovskiy" ), wxS( "Russian (RU)" ) );
794 ADD_TRANSLATOR( wxT( "Дмитрий Дёмин" ), wxS( "Russian (RU)" ) );
795 ADD_TRANSLATOR( wxT( "Andrey Fedorushkov" ), wxS( "Russian (RU)" ) );
796 ADD_TRANSLATOR( wxT( "Alevtina Karashokova" ), wxS( "Russian (RU)" ) );
797 ADD_TRANSLATOR( wxT( "Eldar Khayrullin" ), wxS( "Russian (RU)" ) );
798 ADD_TRANSLATOR( wxT( "Alex Life" ), wxS( "Russian (RU)" ) );
799 ADD_TRANSLATOR( wxT( "Dmitry Mikhirev" ), wxS( "Russian (RU)" ) );
800 ADD_TRANSLATOR( wxT( "Igor Plyatov" ), wxS( "Russian (RU)" ) );
801
802 ADD_TRANSLATOR( wxT( "Hanna Breisand" ), wxS( "Swedish (SV)" ) );
803 ADD_TRANSLATOR( wxT( "Axel Henriksson" ), wxS( "Swedish (SV)" ) );
804 ADD_TRANSLATOR( wxT( "Richard Jonsson" ), wxS( "Swedish (SV)" ) );
805 ADD_TRANSLATOR( wxT( "Henrik Kauhanen" ), wxS( "Swedish (SV)" ) );
806 ADD_TRANSLATOR( wxT( "Allan Nordhøy" ), wxS( "Swedish (SV)" ) );
807 ADD_TRANSLATOR( wxT( "Elias Sjögreen" ), wxS( "Swedish (SV)" ) );
808
809 ADD_TRANSLATOR( wxT( "Boonchai Kingrungped" ), wxS( "Thai (TH)" ) );
810
811 ADD_TRANSLATOR( wxT( "Artem" ), wxS( "Ukrainian (UK)" ) );
812 ADD_TRANSLATOR( wxT( "Ivan Chuba" ), wxS( "Ukrainian (UK)" ) );
813 ADD_TRANSLATOR( wxT( "Stanislav Kaliuk" ), wxS( "Ukrainian (UK)" ) );
814 ADD_TRANSLATOR( wxT( "Alexsandr Kuzemko" ), wxS( "Ukrainian (UK)" ) );
815 ADD_TRANSLATOR( wxT( "Andrii Shelestov" ), wxS( "Ukrainian (UK)" ) );
816
817 ADD_TRANSLATOR( wxT( "欠陥電気" ), wxS( "Simplified Chinese (zh_CN)" ) );
818 ADD_TRANSLATOR( wxT( "向阳阳" ), wxS( "Simplified Chinese (zh_CN)" ) );
819 ADD_TRANSLATOR( wxT( "David Chen" ), wxS( "Simplified Chinese (zh_CN)" ) );
820 ADD_TRANSLATOR( wxT( "Dingzhong Chen" ), wxS( "Simplified Chinese (zh_CN)" ) );
821 ADD_TRANSLATOR( wxT( "Eric" ), wxS( "Simplified Chinese (zh_CN)" ) );
822 ADD_TRANSLATOR( wxT( "Hubert Hu" ), wxS( "Simplified Chinese (zh_CN)" ) );
823 ADD_TRANSLATOR( wxT( "Liu Guang" ), wxS( "Simplified Chinese (zh_CN)" ) );
824 ADD_TRANSLATOR( wxT( "HalfSweet" ), wxS( "Simplified Chinese (zh_CN)" ) );
825 ADD_TRANSLATOR( wxT( "Huanyin Liu" ), wxS( "Simplified Chinese (zh_CN)" ) );
826 ADD_TRANSLATOR( wxT( "Pinpang Liao" ), wxS( "Simplified Chinese (zh_CN)" ) );
827 ADD_TRANSLATOR( wxT( "Rigo Ligo" ), wxS( "Simplified Chinese (zh_CN)" ) );
828 ADD_TRANSLATOR( wxT( "Zhen Sun" ), wxS( "Simplified Chinese (zh_CN)" ) );
829 ADD_TRANSLATOR( wxT( "Jason Tan" ), wxS( "Simplified Chinese (zh_CN)" ) );
830 ADD_TRANSLATOR( wxT( "Taotieren" ), wxS( "Simplified Chinese (zh_CN)" ) );
831 ADD_TRANSLATOR( wxT( "Tian Yunhao" ), wxS( "Simplified Chinese (zh_CN)" ) );
832 ADD_TRANSLATOR( wxT( "Li Yidong" ), wxS( "Simplified Chinese (zh_CN)" ) );
833 ADD_TRANSLATOR( wxT( "yangyangdaji" ), wxS( "Simplified Chinese (zh_CN)" ) );
834 ADD_TRANSLATOR( wxT( "Lao Zhu" ), wxS( "Simplified Chinese (zh_CN)" ) );
835 ADD_TRANSLATOR( wxT( "zly20129" ), wxS( "Simplified Chinese (zh_CN)" ) );
836
837 ADD_TRANSLATOR( wxT( "撒景賢" ), wxS( "Traditional Chinese (zh_TW)" ) );
838 ADD_TRANSLATOR( wxT( "David Chen" ), wxS( "Traditional Chinese (zh_TW)" ) );
839 ADD_TRANSLATOR( wxT( "pon dahai" ), wxS( "Traditional Chinese (zh_TW)" ) );
840 ADD_TRANSLATOR( wxT( "kai chiao chuang" ), wxS( "Traditional Chinese (zh_TW)" ) );
841 ADD_TRANSLATOR( wxT( "Poming Lee" ), wxS( "Traditional Chinese (zh_TW)" ) );
842 ADD_TRANSLATOR( wxT( "William Lin" ), wxS( "Traditional Chinese (zh_TW)" ) );
843 ADD_TRANSLATOR( wxT( "Taotieren" ), wxS( "Traditional Chinese (zh_TW)" ) );
844 ADD_TRANSLATOR( wxT( "Li Yidong" ), wxS( "Traditional Chinese (zh_TW)" ) );
845
846 ADD_TRANSLATOR( wxT( "Remy Halvick" ), wxS( "Other" ) );
847 ADD_TRANSLATOR( wxS( "David J S Briscoe" ), wxS( "Other" ) );
848 ADD_TRANSLATOR( wxS( "Dominique Laigle" ), wxS( "Other" ) );
849 ADD_TRANSLATOR( wxS( "Paul Burke" ), wxS( "Other" ) );
850
851
852 // Program credits for library team
853#define LIBRARIANS _( "Librarian Team" )
854#define ADD_LIBRARIAN( name ) aInfo.AddLibrarian( new CONTRIBUTOR( name, LIBRARIANS ) )
855
856 // Lead librarians
857 ADD_LIBRARIAN( wxT( "Carsten Presser") );
858
859 // Active librarians (last 2 years)
860 ADD_LIBRARIAN( wxT( "Geries AbuAkel" ) );
861 ADD_LIBRARIAN( wxT( "Patrick Baus" ) );
862 ADD_LIBRARIAN( wxT( "John Beard" ) );
863 ADD_LIBRARIAN( wxT( "Jeremy Boynes" ) );
864 ADD_LIBRARIAN( wxT( "Greg Cormier" ) );
865 ADD_LIBRARIAN( wxT( "Tobias Falk" ) );
866 ADD_LIBRARIAN( wxT( "Simon Fivat" ) );
867 ADD_LIBRARIAN( wxT( "Jan Sebastian Götte (jaseg)" ) );
868 ADD_LIBRARIAN( wxT( "Petr Hodina" ) );
869 ADD_LIBRARIAN( wxT( "Mikkel Jeppesen" ) );
870 ADD_LIBRARIAN( wxT( "Aristeidis Kimirtzis" ) );
871 ADD_LIBRARIAN( wxT( "Brandon Kirisaki" ) );
872 ADD_LIBRARIAN( wxT( "Uli Köhler" ) );
873 ADD_LIBRARIAN( wxT( "Graham Keeth" ) );
874 ADD_LIBRARIAN( wxT( "Andrew Lutsenko" ) );
875 ADD_LIBRARIAN( wxT( "Mojca Miklavec" ) );
876 ADD_LIBRARIAN( wxT( "Jorge Neiva" ) );
877 ADD_LIBRARIAN( wxT( "Carlos Nieves Ónega" ) );
878 ADD_LIBRARIAN( wxT( "Lynn Ochs" ) );
879 ADD_LIBRARIAN( wxT( "Ed Peguillan" ) );
880 ADD_LIBRARIAN( wxT( "Dash Peters" ) );
881 ADD_LIBRARIAN( wxT( "Sergio Rocha" ) );
882 ADD_LIBRARIAN( wxT( "Benjamin Reynier" ) );
883 ADD_LIBRARIAN( wxT( "Armin Schoisswohl" ) );
884 ADD_LIBRARIAN( wxT( "Joel Schulz-Andres" ) );
885 ADD_LIBRARIAN( wxT( "Frank Severinsen" ) );
886 ADD_LIBRARIAN( wxT( "Martin Sotirov" ) );
887 ADD_LIBRARIAN( wxT( "Philipp Swoboda" ) );
888 ADD_LIBRARIAN( wxT( "Kliment Yanev" ) );
889
890 // Previously active librarians
891 ADD_LIBRARIAN( wxT( "Christian Schlüter" ) );
892 ADD_LIBRARIAN( wxT( "Rene Poeschl" ) );
893 ADD_LIBRARIAN( wxT( "Antonio Vázquez Blanco " ) );
894 ADD_LIBRARIAN( wxT( "Daniel Giesbrecht" ) );
895 ADD_LIBRARIAN( wxT( "Otavio Augusto Gomes" ) );
896 ADD_LIBRARIAN( wxT( "herostrat" ) );
897 ADD_LIBRARIAN( wxT( "Diego Herranz" ) );
898 ADD_LIBRARIAN( wxT( "Joel Guittet" ) );
899 ADD_LIBRARIAN( wxT( "Chris Morgan" ) );
900 ADD_LIBRARIAN( wxT( "Thomas Pointhuber" ) );
901 ADD_LIBRARIAN( wxT( "Evan Shultz" ) );
902 ADD_LIBRARIAN( wxT( "Bob Cousins" ) );
903 ADD_LIBRARIAN( wxT( "Nick Østergaard" ) );
904 ADD_LIBRARIAN( wxT( "Oliver Walters" ) );
905
906#define MODELS_3D_CONTRIBUTION _( "3D models" )
907#define SYMBOL_LIB_CONTRIBUTION _( "Symbols" )
908#define FOOTPRINT_LIB_CONTRIBUTION _( "Footprints" )
909 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "Scripts by Maui" ),
911 wxS( "https://gitlab.com/kicad/libraries/kicad-footprint-generator" ) ) );
912 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
914 wxS( "https://gitlab.com/kicad/libraries/kicad-packages3D/-/graphs/master" ) ) );
915
916 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
918 wxS( "https://gitlab.com/kicad/libraries/kicad-symbols/-/graphs/master" ) ) );
919
920 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "Scripts by Thomas Pointhuber" ),
922 wxS( "https://gitlab.com/kicad/libraries/kicad-footprint-generator" ) ) );
923 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
925 wxS( "https://gitlab.com/kicad/libraries/kicad-footprints/-/graphs/master" ) ) );
926
927 // Program credits for icons
928#define ICON_CONTRIBUTION _( "Icons" )
929 aInfo.AddArtist( new CONTRIBUTOR( wxT( "Aleksandr Zyrianov" ), ICON_CONTRIBUTION ) );
930 aInfo.AddArtist( new CONTRIBUTOR( wxT( "Anda Subero" ), ICON_CONTRIBUTION ) );
931 aInfo.AddArtist( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ), ICON_CONTRIBUTION ) );
932 aInfo.AddArtist( new CONTRIBUTOR( wxS( "Fabrizio Tappero" ), ICON_CONTRIBUTION ) );
933
934 // Program credits for package developers.
935#define PACKAGE_DEVS _( "Package Developers" )
936
937 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Steven Falco" ), PACKAGE_DEVS ) );
938 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Johannes Maibaum" ), PACKAGE_DEVS ) );
939 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Jean-Samuel Reynaud" ), PACKAGE_DEVS ) );
940 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Bernhard Stegmaier" ), PACKAGE_DEVS ) );
941 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Adam Wolf" ) , PACKAGE_DEVS ) );
942 aInfo.AddPackager( new CONTRIBUTOR( wxT( "Nick Østergaard" ), PACKAGE_DEVS ) );
943}
944
945
947{
949 buildKicadAboutBanner( aParent, info );
950
951 DIALOG_ABOUT dlg( aParent, info );
952 dlg.ShowModal();
953}
954
955
959
969static wxString HtmlHyperlink( const wxString& aUrl, const wxString& aDescription )
970{
971 wxString hyperlink = wxEmptyString;
972
973 if( aDescription.IsEmpty() )
974 hyperlink << wxS( "<a href='" ) << aUrl << wxS( "'>" ) << aUrl << wxS( "</a>" );
975 else
976 hyperlink << wxS( "<a href='" )<< aUrl << wxS( "'>" ) << aDescription << wxS( "</a>" );
977
978 return hyperlink;
979}
980
981
989static wxString HtmlNewline( const unsigned int aCount )
990{
991 wxString newlineTags = wxEmptyString;
992
993 for( size_t i = 0; i<aCount; ++i )
994 newlineTags << wxS( "<br>" );
995
996 return newlineTags;
997}
#define MODELS_3D_CONTRIBUTION
static wxString HtmlNewline(const unsigned int amount=1)
Create an HTML newline character sequence of aCount.
#define ADD_TRANSLATOR(name, category)
#define ICON_CONTRIBUTION
static wxString HtmlHyperlink(const wxString &url, const wxString &description=wxEmptyString)
Helper functions.
#define LEAD_DEV
#define FORMER_DEV
#define ADD_WRITER(name, category)
#define PACKAGE_DEVS
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
#define DOC_TEAM
#define ADD_DEV(name, category)
#define ADD_LIBRARIAN(name)
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 SetBuildDate(const wxString &date)
Definition: aboutinfo.h:105
void SetAppName(const wxString &name)
Definition: aboutinfo.h:99
void SetDescription(const wxString &text)
Definition: aboutinfo.h:93
void SetLibVersion(const wxString &version)
Definition: aboutinfo.h:108
void AddArtist(const CONTRIBUTOR *artist)
Definition: aboutinfo.h:68
void SetBuildVersion(const wxString &version)
Definition: aboutinfo.h:102
void SetAppIcon(const wxIcon &aIcon)
Definition: aboutinfo.h:111
void SetLicense(const wxString &text)
Definition: aboutinfo.h:96
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:157
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: unix/app.cpp:58
PGM_BASE & Pgm()
The global program "get" accessor.
Definition: pgm_base.cpp:1073
see class PGM_BASE