25#include <boost/version.hpp> 
   26#include <wx/aboutdlg.h> 
   27#include <wx/arrimpl.cpp> 
   28#include <wx/textctrl.h> 
   47WX_DEFINE_OBJARRAY( CONTRIBUTORS )
 
   50static wxString 
HtmlHyperlink( 
const wxString& url, 
const wxString& description = wxEmptyString );
 
   51static wxString 
HtmlNewline( 
const unsigned int amount = 1 );
 
   82    libVersion << wxGetLibraryVersionInfo().GetVersionString();
 
   86    libVersion << wxT( 
" Unicode " );
 
   88    libVersion << wxT( 
" ANSI " );
 
   93    libVersion << wxT( 
"and Boost " ) << ( BOOST_VERSION / 100000 ) << wxT( 
"." )
 
   94               << ( BOOST_VERSION / 100 % 1000 ) << wxT( 
"." ) << ( BOOST_VERSION % 100 )
 
   99    wxPlatformInfo platformInfo;
 
  101    libVersion << wxT( 
"Platform: " ) << wxGetOsDescription() << wxT( 
", " )
 
  107    wxString description;
 
  110    description << wxT( 
"<p>" );
 
  111    description << wxT( 
"<b><u>" )
 
  112                << 
_( 
"Description" )
 
  113                << wxT( 
"</u></b>" ); 
 
  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." )
 
  120    description << wxT( 
"</p>" );
 
  123    description << wxT( 
"<p><b><u>" )
 
  124                << 
_( 
"KiCad on the web" )
 
  125                << wxT( 
"</u></b>" ); 
 
  128    description << wxT( 
"<ul>" );
 
  129    description << wxT( 
"<li>" )
 
  130                << 
_( 
"The official KiCad website - " )
 
  133    description << wxT( 
"<li>" )
 
  134                << 
_( 
"Developer website - " )
 
  138    description << wxT( 
"<li>" )
 
  139                << 
_(
"Official KiCad library repositories - " )
 
  143    description << wxT( 
"</ul></p>" );
 
  145    description << wxT( 
"<p><b><u>" )
 
  146                << 
_( 
"Bug tracker" )
 
  147                << wxT( 
"</u></b>" ); 
 
  150    description << wxT( 
"<ul>" );
 
  151    description << wxT( 
"<li>" )
 
  152                << 
_( 
"Report or examine bugs - " )
 
  155    description << wxT( 
"</ul></p>" );
 
  157    description << wxT( 
"<p><b><u>" )
 
  158                << 
_( 
"KiCad users group and community" )
 
  159                << wxT( 
"</u></b>" ); 
 
  161    description << wxT( 
"<ul>" );
 
  162    description << wxT( 
"<li>" )
 
  163                << 
_( 
"KiCad forum - " )
 
  167    description << wxT( 
"</ul></p>" );
 
  175        << wxT( 
"<div align='center'>" )
 
  177        << 
_( 
"The complete KiCad EDA Suite is released under the" ) << 
HtmlNewline( 2 )
 
  179                          _( 
"GNU General Public License (GPL) version 3 or any later version" ) )
 
  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") 
  628#define DOC_TEAM _( "Documentation Team" ) 
  629#define ADD_WRITER( name, category ) aInfo.AddDocWriter( new CONTRIBUTOR( name, category ) ) 
  645#define ADD_TRANSLATOR( name, category ) aInfo.AddTranslator( new CONTRIBUTOR( name, category ) ) 
  664    ADD_TRANSLATOR( wxS( 
"Benedikt Freisen" ), wxS( 
"German (DE)" ) );
 
  667    ADD_TRANSLATOR( wxT( 
"Johannes Maibaum" ), wxS( 
"German (DE)" ) );
 
  672    ADD_TRANSLATOR( wxT( 
"Frank Sonnenberg" ), wxS( 
"German (DE)" ) );
 
  674    ADD_TRANSLATOR( wxT( 
"Dominik Wernberger" ), wxS( 
"German (DE)" ) );
 
  676    ADD_TRANSLATOR( wxS( 
"Manolis Stefanis" ), wxS( 
"Greek (el_GR)" ) );
 
  677    ADD_TRANSLATOR( wxS( 
"Athanasios Vlastos" ), wxS( 
"Greek (el_GR)" ) );
 
  678    ADD_TRANSLATOR( wxS( 
"Milonas Kostas" ), wxS( 
"Greek (el_GR)" ) );
 
  679    ADD_TRANSLATOR( wxS( 
"Michail Misirlis" ), wxS( 
"Greek (el_GR)" ) );
 
  680    ADD_TRANSLATOR( wxS( 
"Aristeidis Kimirtzis" ), wxS( 
"Greek (el_GR)" ) );
 
  682    ADD_TRANSLATOR( wxT( 
"Adolfo Jayme Barrientos" ), wxS( 
"Spanish (ES)" ) );
 
  683    ADD_TRANSLATOR( wxT( 
"Roberto Fernandez Bautista" ), wxS( 
"Spanish (ES)" ) );
 
  686    ADD_TRANSLATOR( wxT( 
"Augusto Fraga Giachero" ), wxS( 
"Spanish (ES)" ) );
 
  687    ADD_TRANSLATOR( wxS( 
"Pedro Martin del Valle" ), wxS( 
"Spanish (ES)" ) );
 
  688    ADD_TRANSLATOR( wxS( 
"Gabriel Martinez" ), wxS( 
"Spanish (ES)" ) );
 
  692    ADD_TRANSLATOR( wxT( 
"Ulices Avila Hernandez" ), wxS( 
"Spanish (ES)" ) );
 
  695    ADD_TRANSLATOR( wxT( 
"VicSanRoPe" ), wxS( 
"Spanish - Latin American (ES)" ) );
 
  696    ADD_TRANSLATOR( wxT( 
"Ulices Avila Hernandez" ), wxS( 
"Spanish - Latin American (ES)" ) );
 
  701    ADD_TRANSLATOR( wxT( 
"Henrik Kauhanen" ), wxS( 
"Finnish (FI)" ) );
 
  707    ADD_TRANSLATOR( wxT( 
"Ola Rinta-Koski" ), wxS( 
"Finnish (FI)" ) );
 
  710    ADD_TRANSLATOR( wxT( 
"Jean-Pierre Charras" ), wxS( 
"French (FR)" ) );
 
  717    ADD_TRANSLATOR( wxT( 
"Hidemichi Gotou" ), wxS( 
"Japanese (JA)" ) );
 
  718    ADD_TRANSLATOR( wxT( 
"Kinichiro Inoguchi" ), wxS( 
"Japanese (JA)" ) );
 
  722    ADD_TRANSLATOR( wxT( 
"Hiroshi Tokita" ), wxS( 
"Japanese (JA)" ) );
 
  724    ADD_TRANSLATOR( wxT( 
"Kenta Yonekura" ), wxS( 
"Japanese (JA)" ) );
 
  725    ADD_TRANSLATOR( wxT( 
"Kaoru Zenyouji" ), wxS( 
"Japanese (JA)" ) );
 
  747    ADD_TRANSLATOR( wxT( 
"Minsu Kim (0xGabriel)" ), wxS( 
"Korean (KO)" ) );
 
  751    ADD_TRANSLATOR( wxT( 
"Ignas Brašiškis" ), wxS( 
"Lithuanian (LT)" ) );
 
  752    ADD_TRANSLATOR( wxT( 
"Henrik Kauhanen" ), wxS( 
"Lithuanian (LT)" ) );
 
  753    ADD_TRANSLATOR( wxT( 
"Dainius Mazuika" ), wxS( 
"Lithuanian (LT)" ) );
 
  755    ADD_TRANSLATOR( wxT( 
"Stefan De Raedemaeker" ), wxS( 
"Dutch (NL)" ) );
 
  760    ADD_TRANSLATOR( wxT( 
"Christiaan Nieuwlaat" ), wxS( 
"Dutch (NL)" ) );
 
  762    ADD_TRANSLATOR( wxT( 
"CJ van der Hoeven" ), wxS( 
"Dutch (NL)" ) );
 
  763    ADD_TRANSLATOR( wxT( 
"Arend-Jan van Hilten" ), wxS( 
"Dutch (NL)" ) );
 
  766    ADD_TRANSLATOR( wxT( 
"Jarl Gjessing" ), wxS( 
"Norwegian (NO)" ) );
 
  767    ADD_TRANSLATOR( wxT( 
"Henrik Kauhanen" ), wxS( 
"Norwegian (NO)" ) );
 
  768    ADD_TRANSLATOR( wxT( 
"Allan Nordhøy" ), wxS( 
"Norwegian (NO)" ) );
 
  769    ADD_TRANSLATOR( wxT( 
"Petter Reinholdtsen" ), wxS( 
"Norwegian (NO)" ) );
 
  770    ADD_TRANSLATOR( wxT( 
"Håvard Syslak" ), wxS( 
"Norwegian (NO)" ) );
 
  779    ADD_TRANSLATOR( wxT( 
"Mateusz Skowroński" ), wxS( 
"Polish (PL)" ) );
 
  781    ADD_TRANSLATOR( wxT( 
"Grzegorz Szymaszek" ), wxS( 
"Polish (PL)" ) );
 
  784    ADD_TRANSLATOR( wxT( 
"Augusto Fraga Giachero" ), wxS( 
"Brazilian Portuguese (PT_BR)" ) );
 
  785    ADD_TRANSLATOR( wxT( 
"Pedro Moreira" ), wxS( 
"Brazilian Portuguese (PT_BR)" ) );
 
  786    ADD_TRANSLATOR( wxT( 
"Wellington Terumi Uemura" ), wxS( 
"Brazilian Portuguese (PT_BR)" ) );
 
  789    ADD_TRANSLATOR( wxT( 
"Augusto Fraga Giachero" ), wxS( 
"Portuguese (PT)" ) );
 
  790    ADD_TRANSLATOR( wxT( 
"Renie Marquet" ), wxS( 
"Portuguese (PT)" ) );
 
  791    ADD_TRANSLATOR( wxT( 
"Rafael Silva" ), wxS( 
"Portuguese (PT)" ) );
 
  794    ADD_TRANSLATOR( wxT( 
"Konstantin Baranovskiy" ), wxS( 
"Russian (RU)" ) );
 
  796    ADD_TRANSLATOR( wxT( 
"Andrey Fedorushkov" ), wxS( 
"Russian (RU)" ) );
 
  797    ADD_TRANSLATOR( wxT( 
"Alevtina Karashokova" ), wxS( 
"Russian (RU)" ) );
 
  798    ADD_TRANSLATOR( wxT( 
"Eldar Khayrullin" ), wxS( 
"Russian (RU)" ) );
 
  800    ADD_TRANSLATOR( wxT( 
"Dmitry Mikhirev" ), wxS( 
"Russian (RU)" ) );
 
  804    ADD_TRANSLATOR( wxT( 
"Axel Henriksson"  ), wxS( 
"Swedish (SV)" ) );
 
  805    ADD_TRANSLATOR( wxT( 
"Richard Jonsson" ), wxS( 
"Swedish (SV)" ) );
 
  806    ADD_TRANSLATOR( wxT( 
"Henrik Kauhanen" ), wxS( 
"Swedish (SV)" ) );
 
  810    ADD_TRANSLATOR( wxT( 
"Boonchai Kingrungped" ), wxS( 
"Thai (TH)" ) );
 
  814    ADD_TRANSLATOR( wxT( 
"Stanislav Kaliuk" ), wxS( 
"Ukrainian (UK)" ) );
 
  815    ADD_TRANSLATOR( wxT( 
"Alexsandr Kuzemko" ), wxS( 
"Ukrainian (UK)" ) );
 
  816    ADD_TRANSLATOR( wxT( 
"Andrii Shelestov" ), wxS( 
"Ukrainian (UK)" ) );
 
  818    ADD_TRANSLATOR( wxT( 
"欠陥電気" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  819    ADD_TRANSLATOR( wxT( 
"向阳阳" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  820    ADD_TRANSLATOR( wxT( 
"David Chen" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  821    ADD_TRANSLATOR( wxT( 
"Dingzhong Chen" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  822    ADD_TRANSLATOR( wxT( 
"Eric" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  823    ADD_TRANSLATOR( wxT( 
"Hubert Hu" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  824    ADD_TRANSLATOR( wxT( 
"Liu Guang" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  825    ADD_TRANSLATOR( wxT( 
"HalfSweet" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  826    ADD_TRANSLATOR( wxT( 
"Huanyin Liu" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  827    ADD_TRANSLATOR( wxT( 
"Pinpang Liao" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  828    ADD_TRANSLATOR( wxT( 
"Rigo Ligo" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  829    ADD_TRANSLATOR( wxT( 
"Zhen Sun" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  830    ADD_TRANSLATOR( wxT( 
"Jason Tan" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  831    ADD_TRANSLATOR( wxT( 
"Taotieren" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  832    ADD_TRANSLATOR( wxT( 
"Tian Yunhao" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  833    ADD_TRANSLATOR( wxT( 
"Li Yidong" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  834    ADD_TRANSLATOR( wxT( 
"yangyangdaji" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  835    ADD_TRANSLATOR( wxT( 
"Lao Zhu" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  836    ADD_TRANSLATOR( wxT( 
"zly20129" ), wxS( 
"Simplified Chinese (zh_CN)" ) );
 
  838    ADD_TRANSLATOR( wxT( 
"撒景賢" ), wxS( 
"Traditional Chinese (zh_TW)" ) );
 
  839    ADD_TRANSLATOR( wxT( 
"David Chen" ), wxS( 
"Traditional Chinese (zh_TW)" ) );
 
  840    ADD_TRANSLATOR( wxT( 
"pon dahai" ), wxS( 
"Traditional Chinese (zh_TW)" ) );
 
  841    ADD_TRANSLATOR( wxT( 
"kai chiao chuang" ), wxS( 
"Traditional Chinese (zh_TW)" ) );
 
  842    ADD_TRANSLATOR( wxT( 
"Poming Lee" ), wxS( 
"Traditional Chinese (zh_TW)" ) );
 
  843    ADD_TRANSLATOR( wxT( 
"William Lin" ), wxS( 
"Traditional Chinese (zh_TW)" ) );
 
  844    ADD_TRANSLATOR( wxT( 
"Taotieren" ), wxS( 
"Traditional Chinese (zh_TW)" ) );
 
  845    ADD_TRANSLATOR( wxT( 
"Li Yidong" ), wxS( 
"Traditional Chinese (zh_TW)" ) );
 
  854#define LIBRARIANS _( "Librarian Team" ) 
  855#define ADD_LIBRARIAN( name ) aInfo.AddLibrarian( new CONTRIBUTOR( name, LIBRARIANS ) ) 
  907#define MODELS_3D_CONTRIBUTION _( "3D models" ) 
  908#define SYMBOL_LIB_CONTRIBUTION _( "Symbols" ) 
  909#define FOOTPRINT_LIB_CONTRIBUTION _( "Footprints" ) 
  912                                         wxS( 
"https://github.com/easyw" ) ) );
 
  915                                         wxS( 
"https://bitbucket.org/hyOzd/freecad-macros/src/master/" ) ) );
 
  918                                         wxS( 
"https://github.com/easyw/kicad-3d-models-in-freecad/graphs/contributors" ) ) );
 
  921                                         wxS( 
"https://gitlab.com/kicad/libraries/kicad-packages3D/-/graphs/master" ) ) );
 
  925                                         wxS( 
"https://gitlab.com/kicad/libraries/kicad-symbols/-/graphs/master" ) ) );
 
  929                                         wxS( 
"https://gitlab.com/kicad/libraries/kicad-footprint-generator" ) ) );
 
  932                                         wxS( 
"https://gitlab.com/kicad/libraries/kicad-footprints/-/graphs/master" ) ) );
 
  935#define ICON_CONTRIBUTION _( "Icons" ) 
  942#define PACKAGE_DEVS _( "Package Developers" ) 
 
  976static wxString 
HtmlHyperlink( 
const wxString& aUrl, 
const wxString& aDescription )
 
  978    wxString hyperlink = wxEmptyString;
 
  980    if( aDescription.IsEmpty() )
 
  981        hyperlink << wxS( 
"<a href='" ) << aUrl << wxS( 
"'>" ) << aUrl << wxS( 
"</a>" );
 
  983        hyperlink << wxS( 
"<a href='" )<< aUrl << wxS( 
"'>" ) << aDescription << wxS( 
"</a>" );
 
 
  998    wxString newlineTags = wxEmptyString;
 
 1000    for( 
size_t i = 0; i<aCount; ++i )
 
 1001        newlineTags << wxS( 
"<br>" );
 
 
#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 ADD_WRITER(name, category)
 
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 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...
 
void SetBuildDate(const wxString &date)
 
void SetAppName(const wxString &name)
 
void SetDescription(const wxString &text)
 
void SetLibVersion(const wxString &version)
 
void AddArtist(const CONTRIBUTOR *artist)
 
void SetBuildVersion(const wxString &version)
 
void SetAppIcon(const wxIcon &aIcon)
 
void SetLicense(const wxString &text)
 
void AddLibrarian(const CONTRIBUTOR *aLibrarian)
 
void AddPackager(const CONTRIBUTOR *packager)
 
A contributor, a person which was involved in the development of the application or which has contrib...
 
About dialog to show application specific information.
 
The base frame for deriving all KiCad main window classes.
 
Base window classes and related definitions.
 
PGM_BASE & Pgm()
The global program "get" accessor.