diff options
Diffstat (limited to 'common/dialog_about')
-rw-r--r-- | common/dialog_about/AboutDialog_main.cpp | 501 | ||||
-rw-r--r-- | common/dialog_about/aboutinfo.h | 174 | ||||
-rw-r--r-- | common/dialog_about/dialog_about.cpp | 399 | ||||
-rw-r--r-- | common/dialog_about/dialog_about.h | 99 | ||||
-rw-r--r-- | common/dialog_about/dialog_about_base.cpp | 82 | ||||
-rw-r--r-- | common/dialog_about/dialog_about_base.fbp | 752 | ||||
-rw-r--r-- | common/dialog_about/dialog_about_base.h | 56 |
7 files changed, 2063 insertions, 0 deletions
diff --git a/common/dialog_about/AboutDialog_main.cpp b/common/dialog_about/AboutDialog_main.cpp new file mode 100644 index 0000000..662229a --- /dev/null +++ b/common/dialog_about/AboutDialog_main.cpp @@ -0,0 +1,501 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2010 Rafael Sokolowski <Rafael.Sokolowski@web.de> + * Copyright (C) 2010-2015 KiCad Developers, see CHANGELOG.TXT for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <dialog_about.h> +#include <aboutinfo.h> +#include <wx/aboutdlg.h> +#include <wx/textctrl.h> +#include <boost/version.hpp> + + +/* Used icons: + * lang_xx_xpm[]; // Icons of various national flags + * show_3d_xpm[]; // 3D icon + * edit_module_xpm[]; + * icon_kicad_xpm[]; // Icon of the application + */ +#include <bitmaps.h> +#include <wxstruct.h> +#include <common.h> +#include <pgm_base.h> +#include <build_version.h> + + +#include <wx/arrimpl.cpp> +WX_DEFINE_OBJARRAY( Contributors ) + +// Helper functions: +static wxString HtmlHyperlink( const wxString& url, const wxString& description = wxEmptyString ); +static wxString HtmlNewline( const unsigned int amount = 1 ); + + +/** + * Initializes the <code>AboutAppInfo</code> object with application specific information. + * + * This the object which holds all information about the application + */ +static void InitKiCadAboutNew( AboutAppInfo& info ) +{ + // Set application specific icon + const wxTopLevelWindow* const tlw = wxDynamicCast( Pgm().App().GetTopWindow(), + wxTopLevelWindow ); + + if( tlw ) + info.SetIcon( tlw->GetIcon() ); + else + { + wxBitmap bitmap = KiBitmap( icon_kicad_xpm ); + wxIcon icon; + + icon.CopyFromBitmap( bitmap ); + + info.SetIcon( icon ); + } + + /* Set title */ + info.SetAppName( wxT( ".: " ) + Pgm().App().GetAppName() + wxT( " :." ) ); + + /* Copyright information */ + info.SetCopyright( wxT( "(C) 1992-2015 KiCad Developers Team" ) ); + + /* KiCad build version */ + wxString version; + version << wxT( "Version: " ) << GetBuildVersion() +#ifdef DEBUG + << wxT( ", debug" ) +#else + << wxT( ", release" ) +#endif + << wxT( " build" ); + + info.SetBuildVersion( version ); + + /* wxWidgets version */ + wxString libVersion; + libVersion << wxT( "wxWidgets " ) + << wxMAJOR_VERSION << wxT( "." ) + << wxMINOR_VERSION << wxT( "." ) + << wxRELEASE_NUMBER + + /* Unicode or ANSI version */ +#if wxUSE_UNICODE + << wxT( " Unicode " ); +#else + << wxT( " ANSI " ); +#endif + + // Just in case someone builds KiCad with the platform native of Boost instead of + // the version included with the KiCad source. + libVersion << wxT( "and Boost " ) << ( BOOST_VERSION / 100000 ) << wxT( "." ) + << ( BOOST_VERSION / 100 % 1000 ) << wxT( "." ) << ( BOOST_VERSION % 100 ) + << wxT( "\n" ); + + // Operating System Information + + wxPlatformInfo platformInfo; + + libVersion << wxT( "Platform: " ) << wxGetOsDescription() << wxT( ", " ) + << platformInfo.GetArchName(); + + info.SetLibVersion( libVersion ); + + + /* info/description part HTML formatted */ + + wxString description; + + /* short description */ + description << wxT( "<p>" ); + description << wxT( "<b><u>" ) + << _( "Description" ) + << wxT( "</u></b>" ); // bold & underlined font for caption + + description << wxT( "<p>" ) + << _( "The KiCad EDA Suite is a set of open source applications for the " + "creation of electronic schematics and to design printed circuit boards." ) + << wxT( "</p>" ); + + description << wxT( "</p>" ); + + /* websites */ + description << wxT( "<p>" ); + description << wxT( "<b><u>" ) + << _( "KiCad on the web" ) + << wxT( "</u></b>" ); // bold & underlined font for caption + + // bullet-ed list with some http links + description << wxT( "<ul>" ); + description << wxT( "<li>" ) + << HtmlHyperlink( wxT( "http://www.kicad-pcb.org" ), + _( "The official KiCad website" ) ) + << wxT( "</li>" ); + description << wxT( "<li>" ) + << HtmlHyperlink( wxT( "https://launchpad.net/kicad" ), + _( "Developer's website on Launchpad" ) ) + << wxT("</li>" ); + description << wxT( "<li>" ) + << HtmlHyperlink( wxT( "https://github.com/KiCad/" ), + _( "Official repository for component and footprint libraries" ) ) + << wxT( "</li>" ); + description << wxT( "</ul>" ); + description << wxT( "</p>" ); + + description << wxT( "<p><b><u>" ) + << _( "Bug tracker" ) + << wxT( "</u></b>" ); // bold & underlined font caption + + // bullet-ed list with some http links + description << wxT( "<ul>" ); + description << wxT( "<li>" ) + << HtmlHyperlink( wxT( "https://bugs.launchpad.net/kicad/+bugs?orderby=-id&start=0" ), + _( "Report or examine bugs" ) ) + << wxT( "</li>" ); + description << wxT( "</ul></p>" ); + + description << wxT( "<p><b><u>" ) + << _( "KiCad user's groups and community" ) + << wxT( "</u></b>" ); // bold & underlined font caption + + description << wxT( "<ul>" ); + description << wxT( "<li>" ) + << HtmlHyperlink( wxT( "https://groups.yahoo.com/neo/groups/kicad-users/info" ), + _( "KiCad user's group" ) ) + << wxT( "</li>" ); + + description << wxT( "<li>" ) + << HtmlHyperlink( wxT( "https://forum.kicad.info" ), + _( "KiCad forum" ) ) + << wxT( "</li>" ); + + description << wxT( "</ul></p>" ); + + info.SetDescription( description ); + + + /* License information also HTML formatted */ + wxString license; + license + << wxT( "<div align='center'>" ) + << HtmlNewline( 4 ) + << _( "The complete KiCad EDA Suite is released under the" ) << HtmlNewline( 2 ) + << HtmlHyperlink( wxT( "http://www.gnu.org/licenses" ), + _( "GNU General Public License (GPL) version 3 or any later version" ) ) + << wxT( "</div>" ); + + info.SetLicense( license ); + + + /* A contributor consists of the following information: + * Mandatory: + * - Name + * - EMail address + * Optional: + * - Category + * - Category specific icon + * + * All contributors of the same category will be enumerated under this category + * which should be represented by the same icon. + */ + + // The core developers + info.AddDeveloper( new Contributor( wxT( "Jean-Pierre Charras" ), + wxT( "jp.charras@wanadoo.fr" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Dick Hollenbeck" ), + wxT( "dick@softplc.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Wayne Stambaugh" ), + wxT( "stambaughw@gmail.com" ) ) ); + + // alphabetically by last name after main 3 above: + info.AddDeveloper( new Contributor( wxT( "Frank Bennett" ), + wxT( "bennett78@lpbroadband.net" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Cirilo Bernardo" ), + wxT( "cirilo_bernardo@yahoo.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Jonas Diemer" ), + wxT( "diemer@gmx.de" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Torsten Hüter" ), + wxT( "torstenhtr@gmx.de" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Jerry Jacobs" ), + wxT( "xor.gate.engineering@gmail.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Mario Luzeiro" ), + wxT( "mrluzeiro@ua.pt" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Daniel Majewski" ), + wxT( "lordblick@gmail.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Lorenzo Marcantonio" ), + wxT( "lomarcan@tin.it" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Marco Mattila" ), + wxT( "marcom99@gmail.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Chris Pavlina" ), + wxT( "pavlina.chris@gmail.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Miguel Angel Ajo Pelayo" ), + wxT( "miguelangel@nbee.es" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Jacobo Aragunde Perez" ), + wxT( "jaragunde@igalia.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Simon Richter" ), + wxT( "Simon.Richter@hogyros.de" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Mark Roszko" ), + wxT( "mark.roszko@gmail.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Marco Serantoni" ), + wxT( "marco.serantoni@gmail.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Brian Sidebotham" ), + wxT( "brian.sidebotham@gmail.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Mateusz Skowroński" ), + wxT( "skowri@gmail.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Rafael Sokolowski" ), + wxT( "rafael.sokolowski@web.de" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Vesa Solonen" ), + wxT( "vesa.solonen@hut.fi" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Bernhard Stegmaier" ), + wxT( "stegmaier@sw-systems.de" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Orson (Maciej Sumiński)" ), + wxT( "maciej.suminski@cern.ch" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Tomasz Wlostowski" ), + wxT( "tomasz.wlostowski@cern.ch" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Adam Wolf" ), + wxT( "adamwolf@feelslikeburning.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Alexander Zakamaldin" ), + wxT( "zaka62@mail.ru" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Henner Zeller" ), + wxT( "h.zeller@acm.org" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Andrew Zonenberg" ), + wxT( "azonenberg@drawersteak.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Nick Østergaard" ), + wxT( "oe.nick@gmail.com" ) ) ); + + // The document writers + info.AddDocWriter( new Contributor( wxT( "Jean-Pierre Charras" ), + wxT( "jp.charras@wanadoo.fr" ) ) ); + info.AddDocWriter( new Contributor( wxT( "Marco Ciampa" ), + wxT( "ciampix@libero.it" ) ) ); + info.AddDocWriter( new Contributor( wxT( "Dick Hollenbeck" ), + wxT( "dick@softplc.com" ) ) ); + info.AddDocWriter( new Contributor( wxT( "Igor Plyatov" ), + wxT( "plyatov@gmail.com" ) ) ); + info.AddDocWriter( new Contributor( wxT( "Wayne Stambaugh" ), + wxT( "stambaughw@gmail.com" ) ) ); + info.AddDocWriter( new Contributor( wxT( "Fabrizio Tappero" ), + wxT( "fabrizio.tappero@gmail.com" ) ) ); + + /* The translators + * As category the language to which the translation was done is used + * and as icon the national flag of the corresponding country. + */ + info.AddTranslator( new Contributor( wxT( "Martin Kratoška" ), + wxT( "martin@ok1rr.com" ), + wxT( "Czech (CZ)" ), + KiBitmapNew( lang_cs_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Jerry Jacobs" ), + wxT( "xor.gate.engineering@gmail.com" ), + wxT( "Dutch (NL)" ), + KiBitmapNew( lang_nl_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Vesa Solonen" ), + wxT( "vesa.solonen@hut.fi" ), + wxT( "Finnish (FI)" ), + KiBitmapNew( lang_fi_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Jean-Pierre Charras" ), + wxT( "jp.charras@wanadoo.fr" ), + wxT( "French (FR)" ), + KiBitmapNew( lang_fr_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Mateusz Skowroński" ), + wxT( "skowri@gmail.com" ), + wxT( "Polish (PL)" ), + KiBitmapNew( lang_pl_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Kerusey Karyu" ), + wxT( "keruseykaryu@o2.pl" ), + wxT( "Polish (PL)" ), + KiBitmapNew( lang_pl_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Renie Marquet" ), + wxT( "reniemarquet@uol.com.br" ), + wxT( "Portuguese (PT)" ), + KiBitmapNew( lang_pt_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Igor Plyatov" ), + wxT( "plyatov@gmail.com" ), + wxT( "Russian (RU)" ), + KiBitmapNew( lang_ru_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Andrey Fedorushkov" ), + wxT( "andrf@mail.ru" ), + wxT( "Russian (RU)" ), + KiBitmapNew( lang_ru_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Eldar Khayrullin" ), + wxT( "eldar.khayrullin@mail.ru" ), + wxT( "Russian (RU)" ), + KiBitmapNew( lang_ru_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Pedro Martin del Valle" ), + wxT( "pkicad@yahoo.es" ), + wxT( "Spanish (ES)" ), + KiBitmapNew( lang_es_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Iñigo Zuluaga" ), + wxT( "inigo_zuluaga@yahoo.es" ), + wxT( "Spanish (ES)" ), + KiBitmapNew( lang_es_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Iñigo Figuero" ), + wxT( "ifs@elektroquark.com" ), + wxT( "Spanish (ES)" ), + KiBitmapNew( lang_es_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Rafael Sokolowski" ), + wxT( "rafael.sokolowski@web.de" ), + wxT( "German (DE)" ), + KiBitmapNew( lang_de_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Kenta Yonekura" ), + wxT( "yoneken@kicad.jp" ), + wxT( "Japanese (JA)" ), + KiBitmapNew( lang_jp_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Manolis Stefanis" ), + wxT( "" ), + wxT( "Greek (el_GR)" ), + KiBitmapNew( lang_gr_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Athanasios Vlastos" ), + wxT( "" ), + wxT( "Greek (el_GR)" ), + KiBitmapNew( lang_gr_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Milonas Kostas" ), + wxT( "milonas.ko@gmail.com" ), + wxT( "Greek (el_GR)" ), + KiBitmapNew( lang_gr_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Michail Misirlis" ), + wxT( "mmisirlis@gmail.com" ), + wxT( "Greek (el_GR)" ), + KiBitmapNew( lang_gr_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Massimo Cioce" ), + wxT( "ciocemax@alice.it" ), + wxT( "Italian (IT)" ), + KiBitmapNew( lang_it_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Marco Ciampa" ), + wxT( "ciampix@libero.it" ), + wxT( "Italian (IT)" ), + KiBitmapNew( lang_it_xpm ) ) ); + info.AddTranslator( new Contributor( wxT( "Evgeniy Ivanov" ), + wxT( "evgeniy_p_ivanov@yahoo.ca" ), + wxT( "Bulgarian (BG)" ), + KiBitmapNew( lang_bg_xpm ) ) ); + + // TODO: are these all russian translators, + // placed them here now, + // or else align them below other language maintainer with mail adress + info.AddTranslator( new Contributor( wxT( "Remy Halvick" ), + wxEmptyString, + wxT( "Others" ) ) ); + info.AddTranslator( new Contributor( wxT( "David Briscoe" ), + wxEmptyString, + wxT( "Others" ) ) ); + info.AddTranslator( new Contributor( wxT( "Dominique Laigle" ), + wxEmptyString, + wxT( "Others" ) ) ); + info.AddTranslator( new Contributor( wxT( "Paul Burke" ), + wxEmptyString, + wxT( "Others" ) ) ); + + // Programm credits for icons + info.AddArtist( new Contributor( wxT( "Iñigo Zuluaga" ), + wxT( "inigo_zuluaga@yahoo.es" ), + wxT( "Icons by" ), + KiBitmapNew( edit_module_xpm ) ) ); + info.AddArtist( new Contributor( wxT( "Konstantin Baranovskiy" ), + wxT( "baranovskiykonstantin@gmail.com" ), + wxT( "New icons by" ), + KiBitmapNew( edit_module_xpm ) ) ); + info.AddArtist( new Contributor( wxT( "Fabrizio Tappero" ), + wxT( "fabrizio.tappero@gmail.com" ), + wxT( "New icons by" ), + KiBitmapNew( edit_module_xpm ) ) ); + info.AddArtist( new Contributor( wxT( "Christophe Boschat" ), + wxT( "nox454@hotmail.fr" ), + wxT( "3D models by" ), + KiBitmapNew( three_d_xpm ) ) ); + info.AddArtist( new Contributor( wxT( "Renie Marquet" ), + wxT( "reniemarquet@uol.com.br" ), + wxT( "3D models by" ), + KiBitmapNew( three_d_xpm ) ) ); + + // Programm credits for package developers. + info.AddPackager( new Contributor( wxT( "Jean-Samuel Reynaud" ), + wxT( "js.reynaud@gmail.com" ) ) ); + info.AddPackager( new Contributor( wxT( "Bernhard Stegmaier" ), + wxT( "stegmaier@sw-systems.de" ) ) ); + info.AddPackager( new Contributor( wxT( "Adam Wolf" ), + wxT( "adamwolf@feelslikeburning.com" ) ) ); + info.AddPackager( new Contributor( wxT( "Nick Østergaard" ), + wxT( "oe.nick@gmail.com" ) ) ); +} + + +bool ShowAboutDialog( wxWindow* parent ) +{ + AboutAppInfo info; + + InitKiCadAboutNew( info ); + + dialog_about* dlg = new dialog_about( parent, info ); + dlg->SetIcon( info.GetIcon() ); + dlg->Show(); + + return true; +} + + +/////////////////////////////////////////////////////////////////////////////// +/// Helper functions +/////////////////////////////////////////////////////////////////////////////// + +/** + * Function HtmlHyperlink + * + * wraps \a aUrl with a HTML anchor tag containing a hyperlink text reference + * to form a HTML hyperlink. + * + * @param aUrl the url that will be embedded in an anchor tag containing a hyperlink reference + * @param aDescription the optional describing text that will be represented as a hyperlink. + * If not specified the url will be used as hyperlink. + * @return a HTML conform hyperlink like <a href='url'>description</a> + */ +static wxString HtmlHyperlink( const wxString& aUrl, const wxString& aDescription ) +{ + wxString hyperlink = wxEmptyString; + + if( aDescription.IsEmpty() ) + hyperlink << wxT( "<a href='" ) << aUrl << wxT( "'>" ) << aUrl << wxT( "</a>" ); + else + hyperlink << wxT( "<a href='" ) << aUrl << wxT( "'>" ) << aDescription << wxT( "</a>" ); + + return hyperlink; +} + + +/** + * Function HtmlNewline + * + * creates an HTML newline character sequence of \a aCount. + * + * @param aCount the number of HTML newline tags to concatenate, default is to return just + * one <br> tag. + * @return the concatenated amount of HTML newline tag(s) <br> + */ +static wxString HtmlNewline( const unsigned int aCount ) +{ + wxString newlineTags = wxEmptyString; + + for( size_t i = 0; i<aCount; ++i ) + newlineTags << wxT( "<br>" ); + + return newlineTags; +} diff --git a/common/dialog_about/aboutinfo.h b/common/dialog_about/aboutinfo.h new file mode 100644 index 0000000..8e19c59 --- /dev/null +++ b/common/dialog_about/aboutinfo.h @@ -0,0 +1,174 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2014 Rafael Sokolowski <Rafael.Sokolowski@web.de> + * Copyright (C) 2014-2015 KiCad Developers, see CHANGELOG.TXT for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef ABOUTAPPINFO_H +#define ABOUTAPPINFO_H + +#include <wx/aboutdlg.h> +#include <wx/bitmap.h> +#include <wx/dynarray.h> + +class Contributor; + +WX_DECLARE_OBJARRAY( Contributor, Contributors ); + + +/** + * An object of this class is meant to be used to store application specific information + * like who has contributed in which area of the application, the license, copyright + * and other descriptive information. + */ +class AboutAppInfo +{ +public: + AboutAppInfo() {}; + virtual ~AboutAppInfo() {}; + + void AddDeveloper( const Contributor* developer ) + { + if( developer != NULL ) + developers.Add( developer ); + } + + void AddDocWriter( const Contributor* docwriter ) + { + if( docwriter != NULL ) + docwriters.Add( docwriter ); + } + + void AddArtist( const Contributor* artist ) + { + if( artist != NULL ) + artists.Add( artist ); + } + + void AddTranslator( const Contributor* translator ) + { + if( translator != NULL ) + translators.Add( translator ); + } + + void AddPackager( const Contributor* packager ) + { + if( packager != NULL ) + packagers.Add( packager ); + } + + Contributors GetDevelopers() { return developers; } + Contributors GetDocWriters() { return docwriters; } + Contributors GetArtists() { return artists; } + Contributors GetTranslators() { return translators; } + Contributors GetPackagers() { return packagers; } + + void SetDescription( const wxString& text ) { description = text; } + wxString& GetDescription() { return description; } + + void SetLicense( const wxString& text ) { license = text; } + wxString& GetLicense() { return license; } + + void SetCopyright( const wxString& text ) { copyright = text; } + wxString GetCopyright() + { + wxString copyrightText = copyright; + +#if wxUSE_UNICODE + const wxString utf8_copyrightSign = wxString::FromUTF8( "\xc2\xa9" ); + copyrightText.Replace( _T( "(c)" ), utf8_copyrightSign ); + copyrightText.Replace( _T( "(C)" ), utf8_copyrightSign ); +#endif // wxUSE_UNICODE + + return copyrightText; + } + + void SetAppName( const wxString& name ) { appName = name; } + wxString& GetAppName() { return appName; } + + void SetBuildVersion( const wxString& version ) { buildVersion = version; } + wxString& GetBuildVersion() { return buildVersion; } + + void SetLibVersion( const wxString& version ) { libVersion = version; } + wxString& GetLibVersion() { return libVersion; } + + void SetIcon( const wxIcon& icon ) { appIcon = icon; } + wxIcon& GetIcon() { return appIcon; } + +private: + Contributors developers; + Contributors docwriters; + Contributors artists; + Contributors translators; + Contributors packagers; + + wxString description; + wxString license; + + wxString copyright; // Todo: copyright sign in unicode + wxString appName; + wxString buildVersion; + wxString libVersion; + + wxIcon appIcon; +}; + + +/** + * A contributor, a person which was involved in the development of the application + * or which has contributed in any kind somehow to the project. + * + * A contributor consists of the following mandatory information: + * - Name + * - EMail address + * + * Each contributor can have optional information assigned like: + * - A category + * - A category specific icon + */ +class Contributor +{ +public: + Contributor( const wxString& name, + const wxString& email, + const wxString& category = wxEmptyString, + wxBitmap* icon = NULL ) : + m_checked( false ) + { m_name = name; m_email = email; m_category = category; m_icon = icon; } + + virtual ~Contributor() {} + + wxString& GetName() { return m_name; } + wxString& GetEMail() { return m_email; } + wxString& GetCategory() { return m_category; } + wxBitmap* GetIcon() { return m_icon; } + void SetChecked( bool status ) { m_checked = status; } + bool IsChecked() { return m_checked; } + +private: + wxString m_name; + wxString m_email; + wxString m_category; + wxBitmap* m_icon; + bool m_checked; +}; + +#endif // ABOUTAPPINFO_H diff --git a/common/dialog_about/dialog_about.cpp b/common/dialog_about/dialog_about.cpp new file mode 100644 index 0000000..e947c87 --- /dev/null +++ b/common/dialog_about/dialog_about.cpp @@ -0,0 +1,399 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2010 Rafael Sokolowski <Rafael.Sokolowski@web.de> + * Copyright (C) 2014 KiCad Developers, see CHANGELOG.TXT for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <dialog_about.h> + +/////////////////////////////////////////////////////////////////////////////// +/// Class dialog_about methods +/////////////////////////////////////////////////////////////////////////////// + +dialog_about::dialog_about(wxWindow *parent, AboutAppInfo& appInfo) + : dialog_about_base(parent), info(appInfo) +{ + picInformation = KiBitmap( info_xpm ); + picDevelopers = KiBitmap( preference_xpm ); + picDocWriters = KiBitmap( editor_xpm ); + picArtists = KiBitmap( palette_xpm ); + picTranslators = KiBitmap( language_xpm ); + picLicense = KiBitmap( tools_xpm ); + picPackagers = KiBitmap( zip_xpm ); + + m_bitmapApp->SetBitmap( info.GetIcon() ); + + m_staticTextAppTitle->SetLabel( info.GetAppName() ); + m_staticTextCopyright->SetLabel( info.GetCopyright() ); + m_staticTextBuildVersion->SetLabel( info.GetBuildVersion() ); + m_staticTextLibVersion->SetLabel( info.GetLibVersion() ); + + DeleteNotebooks(); + CreateNotebooks(); + + GetSizer()->SetSizeHints( this ); + m_auiNotebook->Update(); + SetFocus(); + Centre(); +} + + +dialog_about::~dialog_about() +{ +} + + +wxFlexGridSizer* dialog_about::CreateFlexGridSizer() +{ + // three columns with vertical and horizontal extra space of two pixels + wxFlexGridSizer* fgSizer1 = new wxFlexGridSizer( 3, 2, 2 ); + fgSizer1->SetFlexibleDirection( wxHORIZONTAL ); + fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + return fgSizer1; +} + + +void dialog_about::DeleteNotebooks() +{ + for( size_t i=0; i<m_auiNotebook->GetPageCount(); ++i ) + m_auiNotebook->DeletePage( i ); +} + + +void dialog_about::CreateNotebooks() +{ + CreateNotebookHtmlPage( m_auiNotebook, _( "Information" ), picInformation, + info.GetDescription() ); + + CreateNotebookPage( m_auiNotebook, _( "Developers" ) , picDevelopers, info.GetDevelopers() ); + CreateNotebookPage( m_auiNotebook, _( "Doc Writers" ), picDocWriters, info.GetDocWriters() ); + + CreateNotebookPageByCategory( m_auiNotebook, _( "Artists" ), picArtists, info.GetArtists() ); + CreateNotebookPageByCategory( m_auiNotebook, _( "Translators" ), picTranslators, + info.GetTranslators() ); + CreateNotebookPageByCategory( m_auiNotebook, _( "Packagers" ), picPackagers, + info.GetPackagers() ); + + CreateNotebookHtmlPage( m_auiNotebook, _( "License" ), picLicense, info.GetLicense() ); +} + +void dialog_about::CreateNotebookPage( wxAuiNotebook* parent, const wxString& caption, + const wxBitmap& icon, const Contributors& contributors ) +{ + wxBoxSizer* bSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxScrolledWindow* m_scrolledWindow1 = new wxScrolledWindow( parent, wxID_ANY, + wxDefaultPosition, + wxDefaultSize, + wxHSCROLL|wxVSCROLL ); + m_scrolledWindow1->SetScrollRate( 5, 5 ); + + /* Panel for additional space at the left, + * but can also be used to show an additional bitmap. + */ + wxPanel* panel1 = new wxPanel( m_scrolledWindow1 ); + + wxFlexGridSizer* fgSizer1 = CreateFlexGridSizer(); + + for( size_t i=0; i<contributors.GetCount(); ++i ) + { + Contributor* contributor = &contributors.Item( i ); + + // Icon at first column + wxStaticBitmap* m_bitmap1 = CreateStaticBitmap( m_scrolledWindow1, contributor->GetIcon() ); + fgSizer1->Add( m_bitmap1, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, 5 ); + + // Name of contributor at second column + if ( contributor->GetName() != wxEmptyString ) + { + wxStaticText* m_staticText1 = new wxStaticText( m_scrolledWindow1, wxID_ANY, + contributor->GetName(), + wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText1->Wrap( -1 ); + fgSizer1->Add( m_staticText1, 0, wxALIGN_LEFT|wxBOTTOM, 2 ); + } + else + { + fgSizer1->AddSpacer( 5 ); + } + + // Email address of contributor at third column + if ( contributor->GetEMail() != wxEmptyString ) + { + wxHyperlinkCtrl* hyperlink = CreateHyperlink( m_scrolledWindow1, + contributor->GetEMail() ); + fgSizer1->Add( hyperlink, 0, wxALIGN_LEFT|wxBOTTOM, 2 ); + } + else + { + fgSizer1->AddSpacer( 5 ); + } + } + + bSizer->Add( panel1, 1, wxEXPAND|wxALL, 10 ); + bSizer->Add( fgSizer1, 7, wxEXPAND|wxALL, 10 ); // adjust width of panel with first int value + m_scrolledWindow1->SetSizer( bSizer ); + m_scrolledWindow1->Layout(); + bSizer->Fit( m_scrolledWindow1 ); + parent->AddPage( m_scrolledWindow1, caption, false, icon ); +} + + +void dialog_about::CreateNotebookPageByCategory(wxAuiNotebook* parent, const wxString& caption, + const wxBitmap& icon, + const Contributors& contributors) +{ + wxBoxSizer* bSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxScrolledWindow* m_scrolledWindow1 = new wxScrolledWindow( parent, wxID_ANY, + wxDefaultPosition, + wxDefaultSize, + wxHSCROLL|wxVSCROLL ); + m_scrolledWindow1->SetScrollRate( 5, 5 ); + + /* Panel for additional space at the left, + * but can also be used to show an additional bitmap. + */ + wxPanel* panel1 = new wxPanel( m_scrolledWindow1 ); + + wxFlexGridSizer* fgSizer1 = CreateFlexGridSizer(); + + for( size_t i=0; i<contributors.GetCount(); ++i ) + { + Contributor* contributor = &contributors.Item( i ); + + wxBitmap* icon = contributor->GetIcon(); + wxString category = contributor->GetCategory(); + + /* to construct the next row we expect to have + * a category and a contributor that was not considered up to now + */ + if( ( category != wxEmptyString ) && !( contributor->IsChecked() ) ) + { + // Icon at first column + wxStaticBitmap* m_bitmap1 = CreateStaticBitmap( m_scrolledWindow1, icon ); + fgSizer1->Add( m_bitmap1, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, 5 ); + + // Category name at second column + wxStaticText* m_staticText1 = new wxStaticText( m_scrolledWindow1, wxID_ANY, + contributor->GetCategory() + wxT( ":" ), + wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText1->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, + wxEmptyString ) ); // bold font + m_staticText1->Wrap( -1 ); + fgSizer1->Add( m_staticText1, 0, wxALIGN_LEFT|wxBOTTOM, 2 ); + + // Nothing at third column + fgSizer1->AddSpacer( 5 ); + + // Now, all contributors of the same category will follow + for( size_t j=0; j<contributors.GetCount(); ++j ) + { + Contributor* contributor = &contributors.Item( j ); + + if ( contributor->GetCategory() == category ) + { + // First column is empty + fgSizer1->AddSpacer(5); + + // Name of contributor at second column + wxStaticText* m_staticText2 = new wxStaticText( m_scrolledWindow1, wxID_ANY, + wxT(" • ") + contributor->GetName(), + wxDefaultPosition, + wxDefaultSize, 0 ); + m_staticText1->Wrap( -1 ); + fgSizer1->Add( m_staticText2, 0, wxALIGN_LEFT|wxBOTTOM, 2 ); + + // Email address of contributor at third column + if( contributor->GetEMail() != wxEmptyString ) + { + wxHyperlinkCtrl* hyperlink = CreateHyperlink( m_scrolledWindow1, + contributor->GetEMail() ); + fgSizer1->Add( hyperlink, 0, wxALIGN_LEFT|wxBOTTOM, 2 ); + } + else + { + fgSizer1->AddSpacer( 5 ); + } + + /* this contributor was added to the GUI, + * thus can be ignored next time + */ + contributor->SetChecked( true ); + } + } + } + else + { + continue; + } + } + + /* Now, lets list the remaining contributors that have not been considered + * because they were not assigned to any category. + */ + for ( size_t k=0; k<contributors.GetCount(); ++k ) + { + Contributor* contributor = &contributors.Item( k ); + + if ( contributor->IsChecked() ) + continue; + + // Icon at first column + wxStaticBitmap* m_bitmap1 = CreateStaticBitmap( m_scrolledWindow1, contributor->GetIcon() ); + fgSizer1->Add( m_bitmap1, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, 5 ); + + // Name of contributor at second column + if( contributor->GetName() != wxEmptyString ) + { + wxStaticText* m_staticText1 = new wxStaticText( m_scrolledWindow1, wxID_ANY, + contributor->GetName(), + wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText1->Wrap( -1 ); + fgSizer1->Add( m_staticText1, 0, wxALIGN_LEFT|wxBOTTOM, 2 ); + } + else + { + fgSizer1->AddSpacer( 5 ); + } + + // Email address of contributor at third column + if ( contributor->GetEMail() != wxEmptyString ) + { + wxHyperlinkCtrl* hyperlink = CreateHyperlink( m_scrolledWindow1, + contributor->GetEMail() ); + fgSizer1->Add( hyperlink, 0, wxALIGN_LEFT|wxBOTTOM, 2 ); + } + else + { + fgSizer1->AddSpacer( 5 ); + } + } + + bSizer->Add( panel1, 1, wxEXPAND|wxALL, 10 ); + bSizer->Add( fgSizer1, 7, wxEXPAND|wxALL, 10 ); // adjust width of panel with first int value + m_scrolledWindow1->SetSizer( bSizer ); + m_scrolledWindow1->Layout(); + bSizer->Fit( m_scrolledWindow1 ); + parent->AddPage( m_scrolledWindow1, caption, false, icon ); +} + + +void dialog_about::CreateNotebookHtmlPage( wxAuiNotebook* parent, const wxString& caption, + const wxBitmap& icon, const wxString& html ) +{ + wxPanel* panel = new wxPanel( parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, + wxTAB_TRAVERSAL ); + + wxBoxSizer* bSizer = new wxBoxSizer( wxVERTICAL ); + + wxString htmlPage = wxEmptyString, htmlContent = html; + + // to have a unique look background color for HTML pages is set to the default as it is + // used for all the other widgets + wxString htmlColor = ( this->GetBackgroundColour() ).GetAsString( wxC2S_HTML_SYNTAX ); + + // beginning of HTML structure + htmlPage.Append( wxT( "<html><body bgcolor='" ) + htmlColor + wxT( "'>" ) ); + + htmlPage.Append( htmlContent ); + + // end of HTML structure indicated by closing tags + htmlPage.Append( wxT( "</body></html>" ) ); + + // the HTML page is going to be created with previously created HTML content + wxHtmlWindow* htmlWindow = new wxHtmlWindow( panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, + wxHW_SCROLLBAR_AUTO|wxHW_NO_SELECTION ); + + // HTML font set to font properties as they are used for widgets to have an unique look + // under different platforms with HTML + wxFont font = this->GetFont(); + htmlWindow->SetStandardFonts( font.GetPointSize(), font.GetFaceName(), font.GetFaceName() ); + htmlWindow->SetPage( htmlPage ); + + // the HTML window shall not be used to open external links, thus this task is delegated + // to users default browser + htmlWindow->Connect( wxEVT_COMMAND_HTML_LINK_CLICKED, + wxHtmlLinkEventHandler( dialog_about::OnHtmlLinkClicked ), NULL, this ); + + // no additional space around the HTML window as it is also the case by the other notebook pages + bSizer->Add( htmlWindow, 1, wxALL|wxEXPAND, 0 ); + panel->SetSizer( bSizer ); + panel->Layout(); + bSizer->Fit( panel ); + parent->AddPage( panel, caption, false, icon ); +} + + +wxHyperlinkCtrl* dialog_about::CreateHyperlink(wxScrolledWindow* parent, const wxString& email) +{ + wxHyperlinkCtrl* hyperlink = new wxHyperlinkCtrl( + parent, wxID_ANY, + wxT( "<" ) + email + wxT( ">" ), /* the label */ + wxT( "mailto:" ) + email + + wxT( "?subject=KiCad - " ) + + info.GetBuildVersion() + + wxT( " , " ) + info.GetLibVersion() + ); /* the url */ + + return hyperlink; +} + + +wxStaticBitmap* dialog_about::CreateStaticBitmap(wxScrolledWindow* parent, wxBitmap* icon) +{ + wxStaticBitmap* bitmap = new wxStaticBitmap( parent, wxID_ANY, wxNullBitmap, + wxDefaultPosition, wxDefaultSize, 0 ); + + if( icon ) + { + bitmap->SetBitmap( *icon ); + } + else + { + bitmap->SetBitmap( KiBitmap( right_xpm ) ); + } + + return bitmap; +} + + +/////////////////////////////////////////////////////////////////////////////// +/// Event handlers +/////////////////////////////////////////////////////////////////////////////// + +void dialog_about::OnClose( wxCloseEvent &event ) +{ + Destroy(); +} + + +void dialog_about::OnOkClick( wxCommandEvent &event ) +{ + Destroy(); +} + + +void dialog_about::OnHtmlLinkClicked( wxHtmlLinkEvent& event ) +{ + ::wxLaunchDefaultBrowser( event.GetLinkInfo().GetHref() ); +} diff --git a/common/dialog_about/dialog_about.h b/common/dialog_about/dialog_about.h new file mode 100644 index 0000000..067ee63 --- /dev/null +++ b/common/dialog_about/dialog_about.h @@ -0,0 +1,99 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2010 Rafael Sokolowski <Rafael.Sokolowski@web.de> + * Copyright (C) 2010-2015 KiCad Developers, see CHANGELOG.TXT for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef DIALOG_ABOUT_H +#define DIALOG_ABOUT_H + +#include <wx/html/htmlwin.h> +#include <wx/statbmp.h> +#include <wx/stattext.h> +#include <wx/hyperlink.h> + +#include <aboutinfo.h> +#include <dialog_about_base.h> + +/* Pixel information of icons in XPM format. + * All KiCad icons are linked into shared library 'libbitmaps.a'. + * Icons: + * preference_xpm[]; // Icon for 'Developers' tab + * editor_xpm[]; // Icon for 'Doc Writers' tab + * palette_xpm[]; // Icon for 'Artists' tab + * language_xpm[]; // Icon for 'Translators' tab + * right_xpm[]; // Right arrow icon for list items + * info_xpm[]; // Bulb for description tab + * tools_xpm[]; // Sheet of paper icon for license info tab + */ +#include <bitmaps.h> + +/** + * About dialog to show application specific information. + * Needs an <code>AboutAppInfo</code> object that contains the data to be displayed. + */ +class dialog_about : public dialog_about_base +{ +private: + + // Icons for the various tabs of wxAuiNotebook + wxBitmap picInformation; + wxBitmap picDevelopers; + wxBitmap picDocWriters; + wxBitmap picArtists; + wxBitmap picTranslators; + wxBitmap picPackagers; + wxBitmap picLicense; + + AboutAppInfo info; + +public: + dialog_about( wxWindow* dlg, AboutAppInfo& appInfo ); + ~dialog_about(); + +private: + void initDialog(); + virtual void OnClose( wxCloseEvent& event ); + virtual void OnOkClick( wxCommandEvent& event ); + virtual void OnHtmlLinkClicked( wxHtmlLinkEvent& event ); + + // Notebook pages + wxFlexGridSizer* CreateFlexGridSizer(); + void DeleteNotebooks(); + void CreateNotebooks(); + void CreateNotebookPage( wxAuiNotebook* parent, + const wxString& caption, + const wxBitmap& icon, + const Contributors& contributors ); + void CreateNotebookPageByCategory( wxAuiNotebook* parent, + const wxString& caption, + const wxBitmap& icon, + const Contributors& contributors ); + void CreateNotebookHtmlPage( wxAuiNotebook* parent, + const wxString& caption, + const wxBitmap& icon, + const wxString& html ); + + wxHyperlinkCtrl* CreateHyperlink( wxScrolledWindow* parent, const wxString& email ); + wxStaticBitmap* CreateStaticBitmap( wxScrolledWindow* parent, wxBitmap* icon ); +}; + +#endif // DIALOG_ABOUT_H diff --git a/common/dialog_about/dialog_about_base.cpp b/common/dialog_about/dialog_about_base.cpp new file mode 100644 index 0000000..19b9db7 --- /dev/null +++ b/common/dialog_about/dialog_about_base.cpp @@ -0,0 +1,82 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Jun 5 2014) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_about_base.h" + +/////////////////////////////////////////////////////////////////////////// + +dialog_about_base::dialog_about_base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); + + wxBoxSizer* bSizer1; + bSizer1 = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizer3; + bSizer3 = new wxBoxSizer( wxHORIZONTAL ); + + + bSizer3->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_bitmapApp = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); + bSizer3->Add( m_bitmapApp, 1, wxALIGN_CENTER|wxALL, 5 ); + + wxBoxSizer* b_apptitleSizer; + b_apptitleSizer = new wxBoxSizer( wxVERTICAL ); + + m_staticTextAppTitle = new wxStaticText( this, wxID_ANY, _("App Title"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE ); + m_staticTextAppTitle->Wrap( -1 ); + m_staticTextAppTitle->SetFont( wxFont( 14, 70, 90, 92, false, wxEmptyString ) ); + + b_apptitleSizer->Add( m_staticTextAppTitle, 0, wxALIGN_CENTER|wxALL, 5 ); + + m_staticTextCopyright = new wxStaticText( this, wxID_ANY, _("Copyright Info"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE ); + m_staticTextCopyright->Wrap( -1 ); + b_apptitleSizer->Add( m_staticTextCopyright, 0, wxALIGN_CENTER|wxALL, 1 ); + + m_staticTextBuildVersion = new wxStaticText( this, wxID_ANY, _("Build Version Info"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE ); + m_staticTextBuildVersion->Wrap( -1 ); + b_apptitleSizer->Add( m_staticTextBuildVersion, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT|wxTOP, 5 ); + + m_staticTextLibVersion = new wxStaticText( this, wxID_ANY, _("Lib Version Info"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE ); + m_staticTextLibVersion->Wrap( -1 ); + b_apptitleSizer->Add( m_staticTextLibVersion, 0, wxALIGN_CENTER|wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + + bSizer3->Add( b_apptitleSizer, 10, wxEXPAND, 5 ); + + + bSizer3->Add( 0, 0, 2, wxEXPAND, 5 ); + + + bSizer1->Add( bSizer3, 0, wxEXPAND, 5 ); + + wxStaticLine* m_staticline1; + m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizer1->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); + + m_auiNotebook = new wxAuiNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_SCROLL_BUTTONS|wxAUI_NB_TAB_FIXED_WIDTH ); + m_auiNotebook->SetMinSize( wxSize( 750,350 ) ); + + + bSizer1->Add( m_auiNotebook, 2, wxEXPAND | wxALL, 5 ); + + m_sdbSizer = new wxStdDialogButtonSizer(); + m_sdbSizerOK = new wxButton( this, wxID_OK ); + m_sdbSizer->AddButton( m_sdbSizerOK ); + m_sdbSizer->Realize(); + + bSizer1->Add( m_sdbSizer, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); + + + this->SetSizer( bSizer1 ); + this->Layout(); +} + +dialog_about_base::~dialog_about_base() +{ +} diff --git a/common/dialog_about/dialog_about_base.fbp b/common/dialog_about/dialog_about_base.fbp new file mode 100644 index 0000000..e776d48 --- /dev/null +++ b/common/dialog_about/dialog_about_base.fbp @@ -0,0 +1,752 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<wxFormBuilder_Project> + <FileVersion major="1" minor="13" /> + <object class="Project" expanded="1"> + <property name="class_decoration"></property> + <property name="code_generation">C++</property> + <property name="disconnect_events">1</property> + <property name="disconnect_mode">source_name</property> + <property name="disconnect_php_events">0</property> + <property name="disconnect_python_events">0</property> + <property name="embedded_files_path">res</property> + <property name="encoding">UTF-8</property> + <property name="event_generation">connect</property> + <property name="file">dialog_about_base</property> + <property name="first_id">1000</property> + <property name="help_provider">none</property> + <property name="internationalize">1</property> + <property name="name">MyProject</property> + <property name="namespace"></property> + <property name="path">.</property> + <property name="precompiled_header"></property> + <property name="relative_path">1</property> + <property name="skip_lua_events">1</property> + <property name="skip_php_events">1</property> + <property name="skip_python_events">1</property> + <property name="ui_table">UI</property> + <property name="use_enum">1</property> + <property name="use_microsoft_bom">0</property> + <object class="Dialog" expanded="1"> + <property name="aui_managed">0</property> + <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property> + <property name="bg"></property> + <property name="center"></property> + <property name="context_help"></property> + <property name="context_menu">1</property> + <property name="enabled">1</property> + <property name="event_handler">impl_virtual</property> + <property name="extra_style"></property> + <property name="fg"></property> + <property name="font"></property> + <property name="hidden">0</property> + <property name="id">wxID_ANY</property> + <property name="maximum_size"></property> + <property name="minimum_size">-1,-1</property> + <property name="name">dialog_about_base</property> + <property name="pos"></property> + <property name="size">750,437</property> + <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSTAY_ON_TOP</property> + <property name="subclass"></property> + <property name="title">About...</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + <event name="OnActivate"></event> + <event name="OnActivateApp"></event> + <event name="OnAuiFindManager"></event> + <event name="OnAuiPaneButton"></event> + <event name="OnAuiPaneClose"></event> + <event name="OnAuiPaneMaximize"></event> + <event name="OnAuiPaneRestore"></event> + <event name="OnAuiRender"></event> + <event name="OnChar"></event> + <event name="OnClose"></event> + <event name="OnEnterWindow"></event> + <event name="OnEraseBackground"></event> + <event name="OnHibernate"></event> + <event name="OnIconize"></event> + <event name="OnIdle"></event> + <event name="OnInitDialog"></event> + <event name="OnKeyDown"></event> + <event name="OnKeyUp"></event> + <event name="OnKillFocus"></event> + <event name="OnLeaveWindow"></event> + <event name="OnLeftDClick"></event> + <event name="OnLeftDown"></event> + <event name="OnLeftUp"></event> + <event name="OnMiddleDClick"></event> + <event name="OnMiddleDown"></event> + <event name="OnMiddleUp"></event> + <event name="OnMotion"></event> + <event name="OnMouseEvents"></event> + <event name="OnMouseWheel"></event> + <event name="OnPaint"></event> + <event name="OnRightDClick"></event> + <event name="OnRightDown"></event> + <event name="OnRightUp"></event> + <event name="OnSetFocus"></event> + <event name="OnSize"></event> + <event name="OnUpdateUI"></event> + <object class="wxBoxSizer" expanded="1"> + <property name="minimum_size"></property> + <property name="name">bSizer1</property> + <property name="orient">wxVERTICAL</property> + <property name="permission">none</property> + <object class="sizeritem" expanded="0"> + <property name="border">5</property> + <property name="flag">wxEXPAND</property> + <property name="proportion">0</property> + <object class="wxBoxSizer" expanded="0"> + <property name="minimum_size"></property> + <property name="name">bSizer3</property> + <property name="orient">wxHORIZONTAL</property> + <property name="permission">none</property> + <object class="sizeritem" expanded="0"> + <property name="border">5</property> + <property name="flag">wxEXPAND</property> + <property name="proportion">1</property> + <object class="spacer" expanded="0"> + <property name="height">0</property> + <property name="permission">protected</property> + <property name="width">0</property> + </object> + </object> + <object class="sizeritem" expanded="0"> + <property name="border">5</property> + <property name="flag">wxALIGN_CENTER|wxALL</property> + <property name="proportion">1</property> + <object class="wxStaticBitmap" expanded="0"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer"></property> + <property name="aui_name"></property> + <property name="aui_position"></property> + <property name="aui_row"></property> + <property name="best_size"></property> + <property name="bg"></property> + <property name="bitmap"></property> + <property name="caption"></property> + <property name="caption_visible">1</property> + <property name="center_pane">0</property> + <property name="close_button">1</property> + <property name="context_help"></property> + <property name="context_menu">1</property> + <property name="default_pane">0</property> + <property name="dock">Dock</property> + <property name="dock_fixed">0</property> + <property name="docking">Left</property> + <property name="enabled">1</property> + <property name="fg"></property> + <property name="floatable">1</property> + <property name="font"></property> + <property name="gripper">0</property> + <property name="hidden">0</property> + <property name="id">wxID_ANY</property> + <property name="max_size"></property> + <property name="maximize_button">0</property> + <property name="maximum_size"></property> + <property name="min_size"></property> + <property name="minimize_button">0</property> + <property name="minimum_size"></property> + <property name="moveable">1</property> + <property name="name">m_bitmapApp</property> + <property name="pane_border">1</property> + <property name="pane_position"></property> + <property name="pane_size"></property> + <property name="permission">protected</property> + <property name="pin_button">1</property> + <property name="pos"></property> + <property name="resize">Resizable</property> + <property name="show">1</property> + <property name="size"></property> + <property name="subclass"></property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + <event name="OnChar"></event> + <event name="OnEnterWindow"></event> + <event name="OnEraseBackground"></event> + <event name="OnKeyDown"></event> + <event name="OnKeyUp"></event> + <event name="OnKillFocus"></event> + <event name="OnLeaveWindow"></event> + <event name="OnLeftDClick"></event> + <event name="OnLeftDown"></event> + <event name="OnLeftUp"></event> + <event name="OnMiddleDClick"></event> + <event name="OnMiddleDown"></event> + <event name="OnMiddleUp"></event> + <event name="OnMotion"></event> + <event name="OnMouseEvents"></event> + <event name="OnMouseWheel"></event> + <event name="OnPaint"></event> + <event name="OnRightDClick"></event> + <event name="OnRightDown"></event> + <event name="OnRightUp"></event> + <event name="OnSetFocus"></event> + <event name="OnSize"></event> + <event name="OnUpdateUI"></event> + </object> + </object> + <object class="sizeritem" expanded="0"> + <property name="border">5</property> + <property name="flag">wxEXPAND</property> + <property name="proportion">10</property> + <object class="wxBoxSizer" expanded="0"> + <property name="minimum_size"></property> + <property name="name">b_apptitleSizer</property> + <property name="orient">wxVERTICAL</property> + <property name="permission">none</property> + <object class="sizeritem" expanded="0"> + <property name="border">5</property> + <property name="flag">wxALIGN_CENTER|wxALL</property> + <property name="proportion">0</property> + <object class="wxStaticText" expanded="0"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer"></property> + <property name="aui_name"></property> + <property name="aui_position"></property> + <property name="aui_row"></property> + <property name="best_size"></property> + <property name="bg"></property> + <property name="caption"></property> + <property name="caption_visible">1</property> + <property name="center_pane">0</property> + <property name="close_button">1</property> + <property name="context_help"></property> + <property name="context_menu">1</property> + <property name="default_pane">0</property> + <property name="dock">Dock</property> + <property name="dock_fixed">0</property> + <property name="docking">Left</property> + <property name="enabled">1</property> + <property name="fg"></property> + <property name="floatable">1</property> + <property name="font">,90,92,14,70,0</property> + <property name="gripper">0</property> + <property name="hidden">0</property> + <property name="id">wxID_ANY</property> + <property name="label">App Title</property> + <property name="max_size"></property> + <property name="maximize_button">0</property> + <property name="maximum_size"></property> + <property name="min_size"></property> + <property name="minimize_button">0</property> + <property name="minimum_size"></property> + <property name="moveable">1</property> + <property name="name">m_staticTextAppTitle</property> + <property name="pane_border">1</property> + <property name="pane_position"></property> + <property name="pane_size"></property> + <property name="permission">protected</property> + <property name="pin_button">1</property> + <property name="pos"></property> + <property name="resize">Resizable</property> + <property name="show">1</property> + <property name="size"></property> + <property name="style">wxALIGN_CENTRE</property> + <property name="subclass"></property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + <property name="wrap">-1</property> + <event name="OnChar"></event> + <event name="OnEnterWindow"></event> + <event name="OnEraseBackground"></event> + <event name="OnKeyDown"></event> + <event name="OnKeyUp"></event> + <event name="OnKillFocus"></event> + <event name="OnLeaveWindow"></event> + <event name="OnLeftDClick"></event> + <event name="OnLeftDown"></event> + <event name="OnLeftUp"></event> + <event name="OnMiddleDClick"></event> + <event name="OnMiddleDown"></event> + <event name="OnMiddleUp"></event> + <event name="OnMotion"></event> + <event name="OnMouseEvents"></event> + <event name="OnMouseWheel"></event> + <event name="OnPaint"></event> + <event name="OnRightDClick"></event> + <event name="OnRightDown"></event> + <event name="OnRightUp"></event> + <event name="OnSetFocus"></event> + <event name="OnSize"></event> + <event name="OnUpdateUI"></event> + </object> + </object> + <object class="sizeritem" expanded="0"> + <property name="border">1</property> + <property name="flag">wxALIGN_CENTER|wxALL</property> + <property name="proportion">0</property> + <object class="wxStaticText" expanded="0"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer"></property> + <property name="aui_name"></property> + <property name="aui_position"></property> + <property name="aui_row"></property> + <property name="best_size"></property> + <property name="bg"></property> + <property name="caption"></property> + <property name="caption_visible">1</property> + <property name="center_pane">0</property> + <property name="close_button">1</property> + <property name="context_help"></property> + <property name="context_menu">1</property> + <property name="default_pane">0</property> + <property name="dock">Dock</property> + <property name="dock_fixed">0</property> + <property name="docking">Left</property> + <property name="enabled">1</property> + <property name="fg"></property> + <property name="floatable">1</property> + <property name="font"></property> + <property name="gripper">0</property> + <property name="hidden">0</property> + <property name="id">wxID_ANY</property> + <property name="label">Copyright Info</property> + <property name="max_size"></property> + <property name="maximize_button">0</property> + <property name="maximum_size"></property> + <property name="min_size"></property> + <property name="minimize_button">0</property> + <property name="minimum_size"></property> + <property name="moveable">1</property> + <property name="name">m_staticTextCopyright</property> + <property name="pane_border">1</property> + <property name="pane_position"></property> + <property name="pane_size"></property> + <property name="permission">protected</property> + <property name="pin_button">1</property> + <property name="pos"></property> + <property name="resize">Resizable</property> + <property name="show">1</property> + <property name="size"></property> + <property name="style">wxALIGN_CENTRE</property> + <property name="subclass"></property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + <property name="wrap">-1</property> + <event name="OnChar"></event> + <event name="OnEnterWindow"></event> + <event name="OnEraseBackground"></event> + <event name="OnKeyDown"></event> + <event name="OnKeyUp"></event> + <event name="OnKillFocus"></event> + <event name="OnLeaveWindow"></event> + <event name="OnLeftDClick"></event> + <event name="OnLeftDown"></event> + <event name="OnLeftUp"></event> + <event name="OnMiddleDClick"></event> + <event name="OnMiddleDown"></event> + <event name="OnMiddleUp"></event> + <event name="OnMotion"></event> + <event name="OnMouseEvents"></event> + <event name="OnMouseWheel"></event> + <event name="OnPaint"></event> + <event name="OnRightDClick"></event> + <event name="OnRightDown"></event> + <event name="OnRightUp"></event> + <event name="OnSetFocus"></event> + <event name="OnSize"></event> + <event name="OnUpdateUI"></event> + </object> + </object> + <object class="sizeritem" expanded="0"> + <property name="border">5</property> + <property name="flag">wxALIGN_CENTER|wxLEFT|wxRIGHT|wxTOP</property> + <property name="proportion">0</property> + <object class="wxStaticText" expanded="0"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer"></property> + <property name="aui_name"></property> + <property name="aui_position"></property> + <property name="aui_row"></property> + <property name="best_size"></property> + <property name="bg"></property> + <property name="caption"></property> + <property name="caption_visible">1</property> + <property name="center_pane">0</property> + <property name="close_button">1</property> + <property name="context_help"></property> + <property name="context_menu">1</property> + <property name="default_pane">0</property> + <property name="dock">Dock</property> + <property name="dock_fixed">0</property> + <property name="docking">Left</property> + <property name="enabled">1</property> + <property name="fg"></property> + <property name="floatable">1</property> + <property name="font"></property> + <property name="gripper">0</property> + <property name="hidden">0</property> + <property name="id">wxID_ANY</property> + <property name="label">Build Version Info</property> + <property name="max_size"></property> + <property name="maximize_button">0</property> + <property name="maximum_size"></property> + <property name="min_size"></property> + <property name="minimize_button">0</property> + <property name="minimum_size"></property> + <property name="moveable">1</property> + <property name="name">m_staticTextBuildVersion</property> + <property name="pane_border">1</property> + <property name="pane_position"></property> + <property name="pane_size"></property> + <property name="permission">protected</property> + <property name="pin_button">1</property> + <property name="pos"></property> + <property name="resize">Resizable</property> + <property name="show">1</property> + <property name="size"></property> + <property name="style">wxALIGN_CENTRE</property> + <property name="subclass"></property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + <property name="wrap">-1</property> + <event name="OnChar"></event> + <event name="OnEnterWindow"></event> + <event name="OnEraseBackground"></event> + <event name="OnKeyDown"></event> + <event name="OnKeyUp"></event> + <event name="OnKillFocus"></event> + <event name="OnLeaveWindow"></event> + <event name="OnLeftDClick"></event> + <event name="OnLeftDown"></event> + <event name="OnLeftUp"></event> + <event name="OnMiddleDClick"></event> + <event name="OnMiddleDown"></event> + <event name="OnMiddleUp"></event> + <event name="OnMotion"></event> + <event name="OnMouseEvents"></event> + <event name="OnMouseWheel"></event> + <event name="OnPaint"></event> + <event name="OnRightDClick"></event> + <event name="OnRightDown"></event> + <event name="OnRightUp"></event> + <event name="OnSetFocus"></event> + <event name="OnSize"></event> + <event name="OnUpdateUI"></event> + </object> + </object> + <object class="sizeritem" expanded="0"> + <property name="border">5</property> + <property name="flag">wxALIGN_CENTER|wxBOTTOM|wxLEFT|wxRIGHT</property> + <property name="proportion">0</property> + <object class="wxStaticText" expanded="0"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer"></property> + <property name="aui_name"></property> + <property name="aui_position"></property> + <property name="aui_row"></property> + <property name="best_size"></property> + <property name="bg"></property> + <property name="caption"></property> + <property name="caption_visible">1</property> + <property name="center_pane">0</property> + <property name="close_button">1</property> + <property name="context_help"></property> + <property name="context_menu">1</property> + <property name="default_pane">0</property> + <property name="dock">Dock</property> + <property name="dock_fixed">0</property> + <property name="docking">Left</property> + <property name="enabled">1</property> + <property name="fg"></property> + <property name="floatable">1</property> + <property name="font"></property> + <property name="gripper">0</property> + <property name="hidden">0</property> + <property name="id">wxID_ANY</property> + <property name="label">Lib Version Info</property> + <property name="max_size"></property> + <property name="maximize_button">0</property> + <property name="maximum_size"></property> + <property name="min_size"></property> + <property name="minimize_button">0</property> + <property name="minimum_size"></property> + <property name="moveable">1</property> + <property name="name">m_staticTextLibVersion</property> + <property name="pane_border">1</property> + <property name="pane_position"></property> + <property name="pane_size"></property> + <property name="permission">protected</property> + <property name="pin_button">1</property> + <property name="pos"></property> + <property name="resize">Resizable</property> + <property name="show">1</property> + <property name="size"></property> + <property name="style">wxALIGN_CENTRE</property> + <property name="subclass"></property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + <property name="wrap">-1</property> + <event name="OnChar"></event> + <event name="OnEnterWindow"></event> + <event name="OnEraseBackground"></event> + <event name="OnKeyDown"></event> + <event name="OnKeyUp"></event> + <event name="OnKillFocus"></event> + <event name="OnLeaveWindow"></event> + <event name="OnLeftDClick"></event> + <event name="OnLeftDown"></event> + <event name="OnLeftUp"></event> + <event name="OnMiddleDClick"></event> + <event name="OnMiddleDown"></event> + <event name="OnMiddleUp"></event> + <event name="OnMotion"></event> + <event name="OnMouseEvents"></event> + <event name="OnMouseWheel"></event> + <event name="OnPaint"></event> + <event name="OnRightDClick"></event> + <event name="OnRightDown"></event> + <event name="OnRightUp"></event> + <event name="OnSetFocus"></event> + <event name="OnSize"></event> + <event name="OnUpdateUI"></event> + </object> + </object> + </object> + </object> + <object class="sizeritem" expanded="0"> + <property name="border">5</property> + <property name="flag">wxEXPAND</property> + <property name="proportion">2</property> + <object class="spacer" expanded="0"> + <property name="height">0</property> + <property name="permission">protected</property> + <property name="width">0</property> + </object> + </object> + </object> + </object> + <object class="sizeritem" expanded="0"> + <property name="border">5</property> + <property name="flag">wxEXPAND | wxALL</property> + <property name="proportion">0</property> + <object class="wxStaticLine" expanded="0"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer"></property> + <property name="aui_name"></property> + <property name="aui_position"></property> + <property name="aui_row"></property> + <property name="best_size"></property> + <property name="bg"></property> + <property name="caption"></property> + <property name="caption_visible">1</property> + <property name="center_pane">0</property> + <property name="close_button">1</property> + <property name="context_help"></property> + <property name="context_menu">1</property> + <property name="default_pane">0</property> + <property name="dock">Dock</property> + <property name="dock_fixed">0</property> + <property name="docking">Left</property> + <property name="enabled">1</property> + <property name="fg"></property> + <property name="floatable">1</property> + <property name="font"></property> + <property name="gripper">0</property> + <property name="hidden">0</property> + <property name="id">wxID_ANY</property> + <property name="max_size"></property> + <property name="maximize_button">0</property> + <property name="maximum_size"></property> + <property name="min_size"></property> + <property name="minimize_button">0</property> + <property name="minimum_size"></property> + <property name="moveable">1</property> + <property name="name">m_staticline1</property> + <property name="pane_border">1</property> + <property name="pane_position"></property> + <property name="pane_size"></property> + <property name="permission">none</property> + <property name="pin_button">1</property> + <property name="pos"></property> + <property name="resize">Resizable</property> + <property name="show">1</property> + <property name="size"></property> + <property name="style">wxLI_HORIZONTAL</property> + <property name="subclass"></property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + <event name="OnChar"></event> + <event name="OnEnterWindow"></event> + <event name="OnEraseBackground"></event> + <event name="OnKeyDown"></event> + <event name="OnKeyUp"></event> + <event name="OnKillFocus"></event> + <event name="OnLeaveWindow"></event> + <event name="OnLeftDClick"></event> + <event name="OnLeftDown"></event> + <event name="OnLeftUp"></event> + <event name="OnMiddleDClick"></event> + <event name="OnMiddleDown"></event> + <event name="OnMiddleUp"></event> + <event name="OnMotion"></event> + <event name="OnMouseEvents"></event> + <event name="OnMouseWheel"></event> + <event name="OnPaint"></event> + <event name="OnRightDClick"></event> + <event name="OnRightDown"></event> + <event name="OnRightUp"></event> + <event name="OnSetFocus"></event> + <event name="OnSize"></event> + <event name="OnUpdateUI"></event> + </object> + </object> + <object class="sizeritem" expanded="0"> + <property name="border">5</property> + <property name="flag">wxEXPAND | wxALL</property> + <property name="proportion">2</property> + <object class="wxAuiNotebook" expanded="0"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer"></property> + <property name="aui_name"></property> + <property name="aui_position"></property> + <property name="aui_row"></property> + <property name="best_size"></property> + <property name="bg"></property> + <property name="caption"></property> + <property name="caption_visible">1</property> + <property name="center_pane">0</property> + <property name="close_button">1</property> + <property name="context_help"></property> + <property name="context_menu">1</property> + <property name="default_pane">0</property> + <property name="dock">Dock</property> + <property name="dock_fixed">0</property> + <property name="docking">Left</property> + <property name="enabled">1</property> + <property name="fg"></property> + <property name="floatable">1</property> + <property name="font"></property> + <property name="gripper">0</property> + <property name="hidden">0</property> + <property name="id">wxID_ANY</property> + <property name="max_size"></property> + <property name="maximize_button">0</property> + <property name="maximum_size"></property> + <property name="min_size"></property> + <property name="minimize_button">0</property> + <property name="minimum_size">750,350</property> + <property name="moveable">1</property> + <property name="name">m_auiNotebook</property> + <property name="pane_border">1</property> + <property name="pane_position"></property> + <property name="pane_size"></property> + <property name="permission">protected</property> + <property name="pin_button">1</property> + <property name="pos"></property> + <property name="resize">Resizable</property> + <property name="show">1</property> + <property name="size"></property> + <property name="style">wxAUI_NB_SCROLL_BUTTONS|wxAUI_NB_TAB_FIXED_WIDTH</property> + <property name="subclass"></property> + <property name="tab_ctrl_height">-1</property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="uniform_bitmap_size"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + <event name="OnAuiNotebookAllowDND"></event> + <event name="OnAuiNotebookBeginDrag"></event> + <event name="OnAuiNotebookButton"></event> + <event name="OnAuiNotebookDragMotion"></event> + <event name="OnAuiNotebookEndDrag"></event> + <event name="OnAuiNotebookPageChanged"></event> + <event name="OnAuiNotebookPageChanging"></event> + <event name="OnAuiNotebookPageClose"></event> + <event name="OnChar"></event> + <event name="OnEnterWindow"></event> + <event name="OnEraseBackground"></event> + <event name="OnKeyDown"></event> + <event name="OnKeyUp"></event> + <event name="OnKillFocus"></event> + <event name="OnLeaveWindow"></event> + <event name="OnLeftDClick"></event> + <event name="OnLeftDown"></event> + <event name="OnLeftUp"></event> + <event name="OnMiddleDClick"></event> + <event name="OnMiddleDown"></event> + <event name="OnMiddleUp"></event> + <event name="OnMotion"></event> + <event name="OnMouseEvents"></event> + <event name="OnMouseWheel"></event> + <event name="OnPaint"></event> + <event name="OnRightDClick"></event> + <event name="OnRightDown"></event> + <event name="OnRightUp"></event> + <event name="OnSetFocus"></event> + <event name="OnSize"></event> + <event name="OnUpdateUI"></event> + </object> + </object> + <object class="sizeritem" expanded="1"> + <property name="border">5</property> + <property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL</property> + <property name="proportion">0</property> + <object class="wxStdDialogButtonSizer" expanded="1"> + <property name="Apply">0</property> + <property name="Cancel">0</property> + <property name="ContextHelp">0</property> + <property name="Help">0</property> + <property name="No">0</property> + <property name="OK">1</property> + <property name="Save">0</property> + <property name="Yes">0</property> + <property name="minimum_size"></property> + <property name="name">m_sdbSizer</property> + <property name="permission">protected</property> + <event name="OnApplyButtonClick"></event> + <event name="OnCancelButtonClick"></event> + <event name="OnContextHelpButtonClick"></event> + <event name="OnHelpButtonClick"></event> + <event name="OnNoButtonClick"></event> + <event name="OnOKButtonClick"></event> + <event name="OnSaveButtonClick"></event> + <event name="OnYesButtonClick"></event> + </object> + </object> + </object> + </object> + </object> +</wxFormBuilder_Project> diff --git a/common/dialog_about/dialog_about_base.h b/common/dialog_about/dialog_about_base.h new file mode 100644 index 0000000..9098984 --- /dev/null +++ b/common/dialog_about/dialog_about_base.h @@ -0,0 +1,56 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Jun 5 2014) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_ABOUT_BASE_H__ +#define __DIALOG_ABOUT_BASE_H__ + +#include <wx/artprov.h> +#include <wx/xrc/xmlres.h> +#include <wx/intl.h> +#include <wx/bitmap.h> +#include <wx/image.h> +#include <wx/icon.h> +#include <wx/statbmp.h> +#include <wx/gdicmn.h> +#include <wx/font.h> +#include <wx/colour.h> +#include <wx/settings.h> +#include <wx/string.h> +#include <wx/stattext.h> +#include <wx/sizer.h> +#include <wx/statline.h> +#include <wx/aui/auibook.h> +#include <wx/button.h> +#include <wx/dialog.h> + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class dialog_about_base +/////////////////////////////////////////////////////////////////////////////// +class dialog_about_base : public wxDialog +{ + private: + + protected: + wxStaticBitmap* m_bitmapApp; + wxStaticText* m_staticTextAppTitle; + wxStaticText* m_staticTextCopyright; + wxStaticText* m_staticTextBuildVersion; + wxStaticText* m_staticTextLibVersion; + wxAuiNotebook* m_auiNotebook; + wxStdDialogButtonSizer* m_sdbSizer; + wxButton* m_sdbSizerOK; + + public: + + dialog_about_base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About..."), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 750,437 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSTAY_ON_TOP ); + ~dialog_about_base(); + +}; + +#endif //__DIALOG_ABOUT_BASE_H__ |