Merge with tip of product branch for 4.0.0 stable release.
This commit is contained in:
commit
a68b3cb486
|
@ -119,8 +119,7 @@ EDA_3D_CANVAS::~EDA_3D_CANVAS()
|
|||
|
||||
// Free the list of parsers list
|
||||
for( unsigned int i = 0; i < m_model_parsers_list.size(); i++ )
|
||||
if( m_model_parsers_list[i] )
|
||||
delete m_model_parsers_list[i];
|
||||
delete m_model_parsers_list[i];
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -290,7 +290,7 @@ void EDA_3D_CANVAS::generateFakeShadowsTextures( REPORTER* aErrorMessages, REPOR
|
|||
void EDA_3D_CANVAS::Redraw()
|
||||
{
|
||||
// SwapBuffer requires the window to be shown before calling
|
||||
if( !IsShown() )
|
||||
if( !IsShownOnScreen() )
|
||||
return;
|
||||
|
||||
wxString err_messages;
|
||||
|
@ -447,7 +447,7 @@ void EDA_3D_CANVAS::Redraw()
|
|||
// Board Body
|
||||
|
||||
GLint shininess_value = 32;
|
||||
glMateriali ( GL_FRONT_AND_BACK, GL_SHININESS, shininess_value );
|
||||
glMateriali( GL_FRONT_AND_BACK, GL_SHININESS, shininess_value );
|
||||
|
||||
if( isEnabled( FL_SHOW_BOARD_BODY ) )
|
||||
{
|
||||
|
@ -460,8 +460,9 @@ void EDA_3D_CANVAS::Redraw()
|
|||
|
||||
// Board
|
||||
|
||||
// specify material parameters for the lighting model.
|
||||
shininess_value = 52;
|
||||
glMateriali ( GL_FRONT_AND_BACK, GL_SHININESS, shininess_value );
|
||||
glMateriali( GL_FRONT_AND_BACK, GL_SHININESS, shininess_value );
|
||||
|
||||
glm::vec4 specular( GetPrm3DVisu().m_CopperColor.m_Red * 0.20f,
|
||||
GetPrm3DVisu().m_CopperColor.m_Green * 0.20f,
|
||||
|
@ -477,7 +478,7 @@ void EDA_3D_CANVAS::Redraw()
|
|||
// Tech layers
|
||||
|
||||
shininess_value = 32;
|
||||
glMateriali ( GL_FRONT_AND_BACK, GL_SHININESS, shininess_value );
|
||||
glMateriali( GL_FRONT_AND_BACK, GL_SHININESS, shininess_value );
|
||||
|
||||
glm::vec4 specularTech( 0.0f, 0.0f, 0.0f, 1.0f );
|
||||
glMaterialfv( GL_FRONT_AND_BACK, GL_SPECULAR, &specularTech.x );
|
||||
|
|
|
@ -222,6 +222,11 @@ EDA_3D_FRAME::EDA_3D_FRAME( KIWAY* aKiway, PCB_BASE_FRAME* aParent,
|
|||
}
|
||||
|
||||
|
||||
EDA_3D_FRAME::~EDA_3D_FRAME()
|
||||
{
|
||||
m_auimgr.UnInit();
|
||||
}
|
||||
|
||||
void EDA_3D_FRAME::Exit3DFrame( wxCommandEvent& event )
|
||||
{
|
||||
Close( true );
|
||||
|
|
|
@ -69,10 +69,7 @@ public:
|
|||
EDA_3D_FRAME( KIWAY* aKiway, PCB_BASE_FRAME* aParent, const wxString& aTitle,
|
||||
long style = KICAD_DEFAULT_3D_DRAWFRAME_STYLE );
|
||||
|
||||
~EDA_3D_FRAME()
|
||||
{
|
||||
m_auimgr.UnInit();
|
||||
};
|
||||
~EDA_3D_FRAME();
|
||||
|
||||
PCB_BASE_FRAME* Parent() const { return (PCB_BASE_FRAME*)GetParent(); }
|
||||
|
||||
|
|
|
@ -72,7 +72,8 @@ public:
|
|||
* @param aFilename = the full file name of the file to load
|
||||
* @return true if as succeeded
|
||||
*/
|
||||
virtual bool Load( const wxString& aFilename ) {
|
||||
virtual bool Load( const wxString& aFilename )
|
||||
{
|
||||
return false;
|
||||
};
|
||||
|
||||
|
|
63
AUTHORS.txt
63
AUTHORS.txt
|
@ -1,11 +1,12 @@
|
|||
* Copyright (C) 1992-2014 Jean-Pierre Charras
|
||||
* Copyright (C) 1992-2014 Kicad Developers Team
|
||||
* Copyright (C) 1992-2015 Jean-Pierre Charras
|
||||
* Copyright (C) 1992-2015 Kicad Developers Team
|
||||
* under GNU General Public License (see copyright.txt)
|
||||
|
||||
== Main Authors
|
||||
Jean-Pierre Charras <jean-pierre.charras[at]gipsa-lab-dot-inpg-dot-fr>
|
||||
Dick Hollenbeck <dick[at]softplc-dot-com>
|
||||
Wayne Stambaugh <stambaughw[at]verizon-dot-net>
|
||||
Wayne Stambaugh <stambaughw[at]gmail-dot-com>
|
||||
|
||||
|
||||
== Contributors
|
||||
Hauptmech <hauptmech[at]gmail-dot-com>
|
||||
|
@ -16,28 +17,37 @@ Marco Serantoni <marco.serantoni[at]gmail-dot-com> (OSX maintener)
|
|||
Rok Markovic <rok[at]kanardia.eu>
|
||||
Tim Hanson <sideskate[at]gmail-dot-com>
|
||||
Vesa Solonen <vesa.solonen[at]hut-dot-fi>
|
||||
Alexander Zakamaldin <zaka62[at]mail.ru>
|
||||
Miguel Angel Ajo Pelayo <miguelangel[at]nbee.es> (Python Scripting)
|
||||
Alexander Lunev <al.lunev[at]yahoo.com> (Pcad to Kicad converter)
|
||||
Jacobo Aragunde Perez <jaragunde[at]igalia.com> for Igalia and the CERN
|
||||
Brian Sidebotham <brian.sidebotham[at]gmail.com>
|
||||
Maciej Sumiński <maciej.suminski[at]cern.ch>
|
||||
Tomasz Wlostowski <tomasz.wlostowski[at]cern.ch>
|
||||
Henner Zeller <h.zeller[at]acm.org>
|
||||
Mark Roszko <mark.roszko[at]gmail.com>
|
||||
Daniel Majewski <lordblick[at]gmail.com>
|
||||
Konstantin Baranovskiy <baranovskiykonstantin[at]gmail.com>
|
||||
Torsten Hüter <torstenhtr[at]gmx.de>
|
||||
Nick Østergaard <oe.nick[at]gmail.com>
|
||||
Andrew Zonenberg <azonenberg[at]drawersteak.com>
|
||||
Cirilo Bernardo <cirilo_bernardo[at]yahoo.com>
|
||||
|
||||
Alexander Zakamaldin <zaka62[at]mail-dot-ru>
|
||||
Miguel Angel Ajo Pelayo <miguelangel[at]nbee-dot-es> (Python Scripting)
|
||||
Alexander Lunev <al.lunev[at]yahoo-dot-com> (Pcad to Kicad converter)
|
||||
Jacobo Aragunde Perez <jaragunde[at]igalia-dot-com> for Igalia and the CERN
|
||||
Brian Sidebotham <brian.sidebotham[at]gmail-dot-com>
|
||||
Maciej Sumiński <maciej.suminski[at]cern-dot-ch>
|
||||
Tomasz Wlostowski <tomasz.wlostowski[at]cern-dot-ch>
|
||||
Henner Zeller <h.zeller[at]acm-dot-org>
|
||||
Mark Roszko <mark.roszko[at]gmail-dot-com>
|
||||
Daniel Majewski <lordblick[at]gmail-dot-com>
|
||||
Konstantin Baranovskiy <baranovskiykonstantin[at]gmail-dot-com>
|
||||
Torsten Hüter <torstenhtr[at]gmx-dot-de>
|
||||
Nick Østergaard <oe.nick[at]gmail-dot-com>
|
||||
Andrew Zonenberg <azonenberg[at]drawersteak-dot-com>
|
||||
Cirilo Bernardo <cirilo_bernardo[at]yahoo-dot-com>
|
||||
Adam Wolf <adamwolf[at]feelslikeburning-dot-com>
|
||||
Bernhard Stegmaier <stegmaier[at]sw-systems-dot-de>
|
||||
Chris Pavlina <pavlina.chris[at]gmail-dot-com>
|
||||
Simon Richter <Simon.Richter[at]hogyros-dot-de>
|
||||
Mario Luzeiro <mrluzeiro[at]ua-dot-pt>
|
||||
Mateusz Skowroński <skowri[at]gmail-dot-com>
|
||||
See also CHANGELOG.txt for contributors.
|
||||
|
||||
|
||||
== Document Writers
|
||||
Jean-Pierre Charras <jean-pierre.charras[at]gipsa-lab.inpg.fr>
|
||||
Igor Plyatov <plyatov[at]gmail.com>
|
||||
Jean-Pierre Charras <jean-pierre.charras[at]gipsa-lab.inpg-dot-fr>
|
||||
Igor Plyatov <plyatov[at]gmail-dot-com>
|
||||
Fabrizio Tappero <fabrizio-dot-tappero[at]gmail-dot-com>
|
||||
Marco Ciampa <ciampix[at]libero-dot-it>
|
||||
Wayne Stambaugh <stambaughw[at]gmail-dot-com
|
||||
|
||||
|
||||
== Translators
|
||||
Czech (CZ) Martin Kratoška <martin[at]ok1rr-dot-com>
|
||||
|
@ -45,20 +55,21 @@ Dutch (NL) Jerry Jacobs <xor.gate.engineering[at]gmail-dot-com>
|
|||
Finnish (FI) Vesa Solonen <vesa.solonen[at]hut-dot-fi>
|
||||
French (FR) Jean-Pierre Charras <jean-pierre.charras[at]inpg-dot-fr>
|
||||
Polish (PL) Mateusz Skowro¿ski <skowri[at]gmail-dot-com>
|
||||
Polish (PL) Kerusey Karyu <keruseykaryu@o2.pl>
|
||||
Polish (PL) Kerusey Karyu <keruseykaryu[at]o2.pl>
|
||||
Portuguese (PT) Renie Marquet <reniemarquet[at]uol-dot-com-dot-br>"
|
||||
Russian (RU) Igor Plyatov <plyatov[at]gmail-dot-com>
|
||||
Russian (RU) Andrey Fedorushkov <andrf@mail.ru>
|
||||
Russian (RU) Andrey Fedorushkov <andrf[at]mail-dot-ru>
|
||||
Russian (RU) Eldar Khayrullin <eldar.khayrullin[at]mail-dot-ru>
|
||||
Spanish (ES) Pedro Martin del Valle <pkicad[at]yahoo-dot-es>
|
||||
Spanish (ES) Iñigo Zuluaga <inigo_zuluaga[at]yahoo-dot-es>
|
||||
German (DE) Rafael Sokolowski <Rafael.Sokolowski[at]web-dot-de
|
||||
Japanese (JA) Kenta Yonekura <midpika@hotmail.com>
|
||||
Japanese (JA) yoneken <midpika@hotmail.com>
|
||||
Japanese (JA) Kenta Yonekura <yoneken[at]kicad-dot-jp>
|
||||
|
||||
Remy Halvick, David Briscoe, Dominique Laigle, Paul Burke
|
||||
|
||||
|
||||
== Programm credits for icons and others
|
||||
Icons by Iñigo Zuluagaz <inigo_zuluaga[at]yahoo-dot-es>
|
||||
New Icons by Fabrizio Tappero <fabrizio-dot-tappero[at]gmail-dot-com>
|
||||
3D modules by Renie Marquet <reniemarquet[at]uol.com-dot-br>
|
||||
3D modules by Renie Marquet <reniemarquet[at]uol-dot-com-dot-br>
|
||||
3D modules by Christophe Boschat <nox454[at]hotmail-dot-fr>
|
||||
|
|
|
@ -49,7 +49,7 @@ set( _wvh_write_version_file ON )
|
|||
|
||||
# Compare the version argument against the version in the existing header file for a mismatch.
|
||||
if( EXISTS ${OUTPUT_FILE} )
|
||||
file( STRINGS ${CMAKE_BINARY_DIR}/version.h _current_version_str
|
||||
file( STRINGS ${OUTPUT_FILE} _current_version_str
|
||||
REGEX "^#define[\t ]+KICAD_BUILD_VERSION[\t ]+.*" )
|
||||
string( REGEX REPLACE "^#define KICAD_BUILD_VERSION \"([()a-zA-Z0-9 -.]+)\".*"
|
||||
"\\1" _wvh_last_version "${_current_version_str}" )
|
||||
|
@ -82,6 +82,6 @@ if( _wvh_write_version_file )
|
|||
endif()
|
||||
|
||||
# There should always be a valid version.h file. Otherwise, the build will fail.
|
||||
if( NOT EXISTS ${CMAKE_BINARY_DIR}/version.h )
|
||||
if( NOT EXISTS ${OUTPUT_FILE} )
|
||||
message( FATAL_ERROR "Configuration failed to write file ${OUTPUT_FILE}." )
|
||||
endif()
|
||||
|
|
|
@ -124,7 +124,7 @@ add_custom_target(
|
|||
version_header ALL
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-DKICAD_BUILD_VERSION=${KICAD_BUILD_VERSION}
|
||||
-DOUTPUT_FILE=${CMAKE_BINARY_DIR}/version.h
|
||||
-DOUTPUT_FILE=${CMAKE_BINARY_DIR}/kicad_build_version.h
|
||||
-DSRC_PATH=${PROJECT_SOURCE_DIR}
|
||||
-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}
|
||||
-P ${CMAKE_MODULE_PATH}/WriteVersionHeader.cmake
|
||||
|
|
|
@ -22,12 +22,12 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
/* Date for KiCad build version */
|
||||
// Date for KiCad build version
|
||||
#include <fctsys.h>
|
||||
|
||||
// The include file version.h is always created even if the repo version cannot be
|
||||
// determined. In this case KICAD_BUILD_VERSION will default to "no-bzr".
|
||||
#include <version.h>
|
||||
#include <kicad_build_version.h>
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -58,7 +58,8 @@ static wxString HtmlNewline( const unsigned int amount = 1 );
|
|||
static void InitKiCadAboutNew( AboutAppInfo& info )
|
||||
{
|
||||
// Set application specific icon
|
||||
const wxTopLevelWindow* const tlw = wxDynamicCast( Pgm().App().GetTopWindow(), wxTopLevelWindow );
|
||||
const wxTopLevelWindow* const tlw = wxDynamicCast( Pgm().App().GetTopWindow(),
|
||||
wxTopLevelWindow );
|
||||
|
||||
if( tlw )
|
||||
info.SetIcon( tlw->GetIcon() );
|
||||
|
@ -92,17 +93,16 @@ static void InitKiCadAboutNew( AboutAppInfo& info )
|
|||
|
||||
/* wxWidgets version */
|
||||
wxString libVersion;
|
||||
libVersion
|
||||
<< wxT( "wxWidgets " )
|
||||
<< wxMAJOR_VERSION << wxT( "." )
|
||||
<< wxMINOR_VERSION << wxT( "." )
|
||||
<< wxRELEASE_NUMBER
|
||||
libVersion << wxT( "wxWidgets " )
|
||||
<< wxMAJOR_VERSION << wxT( "." )
|
||||
<< wxMINOR_VERSION << wxT( "." )
|
||||
<< wxRELEASE_NUMBER
|
||||
|
||||
/* Unicode or ANSI version */
|
||||
#if wxUSE_UNICODE
|
||||
<< wxT( " Unicode " );
|
||||
<< wxT( " Unicode " );
|
||||
#else
|
||||
<< wxT( " ANSI " );
|
||||
<< wxT( " ANSI " );
|
||||
#endif
|
||||
|
||||
// Just in case someone builds KiCad with the platform native of Boost instead of
|
||||
|
@ -127,49 +127,63 @@ static void InitKiCadAboutNew( AboutAppInfo& info )
|
|||
|
||||
/* short description */
|
||||
description << wxT( "<p>" );
|
||||
description << wxT( "<b><u>" ) << _( "Description" ) << wxT( "</u></b>" ); // bold & underlined font for caption
|
||||
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." )
|
||||
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
|
||||
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://iut-tice.ujf-grenoble.fr/kicad" ),
|
||||
_( "The original site of the initiator of KiCad" ) )
|
||||
description << wxT( "<li>" )
|
||||
<< HtmlHyperlink( wxT( "http://www.kicad-pcb.org" ),
|
||||
_( "The official KiCad site" ) )
|
||||
<< wxT( "</li>" );
|
||||
description << wxT( "<li>" )
|
||||
<< HtmlHyperlink( wxT( "http://iut-tice.ujf-grenoble.fr/kicad" ),
|
||||
_( "The original site of the KiCad project founder" ) )
|
||||
<< wxT( "</li>" );
|
||||
description << wxT( "<li>" )
|
||||
<< HtmlHyperlink( wxT( "https://launchpad.net/kicad" ),
|
||||
_( "Developer's website on Launchpad" ) )
|
||||
<< wxT("</li>" );
|
||||
description << wxT( "<li>" )
|
||||
<< HtmlHyperlink( wxT( "http://www.kicadlib.org" ),
|
||||
_( "Repository with additional component libraries" ) )
|
||||
<< wxT( "</li>" );
|
||||
description << wxT( "<li>" ) <<
|
||||
HtmlHyperlink( wxT( "https://launchpad.net/kicad" ), _( "Project on Launchpad" ) ) << wxT(
|
||||
"</li>" );
|
||||
description << wxT( "<li>" ) <<
|
||||
HtmlHyperlink( wxT( "http://www.kicad-pcb.org" ),
|
||||
_( "The new KiCad site" ) ) << wxT( "</li>" );
|
||||
description << wxT( "<li>" ) <<
|
||||
HtmlHyperlink( wxT( "http://www.kicadlib.org" ),
|
||||
_( "Repository with additional component libraries" ) ) << wxT( "</li>" );
|
||||
description << wxT( "</ul>" );
|
||||
|
||||
description << wxT( "</p>" );
|
||||
|
||||
description << wxT( "<p>" );
|
||||
description << wxT( "<b><u>" ) << _( "Contribute to KiCad" ) << wxT( "</u></b>" ); // bold & underlined font caption
|
||||
description << wxT( "<b><u>" )
|
||||
<< _( "Contribute to KiCad" )
|
||||
<< 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" ),
|
||||
_( "Report bugs if you found any" ) ) << wxT( "</li>" );
|
||||
description << wxT( "<li>" ) << HtmlHyperlink( wxT( "https://blueprints.launchpad.net/kicad" ),
|
||||
_( "File an idea for improvement" ) ) << wxT( "</li>" );
|
||||
description << wxT( "<li>" ) <<
|
||||
HtmlHyperlink( wxT( "http://www.kicadlib.org/Kicad_related_links.html" ),
|
||||
_( "KiCad links to user groups, tutorials and much more" ) ) << wxT( "</li>" );
|
||||
description << wxT( "<li>" )
|
||||
<<HtmlHyperlink( wxT( "https://bugs.launchpad.net/kicad" ),
|
||||
_( "Report bugs if you found any" ) )
|
||||
<< wxT( "</li>" );
|
||||
description << wxT( "<li>" )
|
||||
<< HtmlHyperlink( wxT( "https://blueprints.launchpad.net/kicad" ),
|
||||
_( "File an idea for improvement" ) )
|
||||
<< wxT( "</li>" );
|
||||
description << wxT( "<li>" )
|
||||
<< HtmlHyperlink( wxT( "http://www.kicadlib.org/Kicad_related_links.html" ),
|
||||
_( "KiCad links to user groups, tutorials and much more" ) )
|
||||
<< wxT( "</li>" );
|
||||
description << wxT( "</ul>" );
|
||||
|
||||
description << wxT( "</p>" );
|
||||
|
@ -184,7 +198,7 @@ static void InitKiCadAboutNew( AboutAppInfo& info )
|
|||
<< 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 2 or any later version" ) )
|
||||
_( "GNU General Public License (GPL) version 3 or any later version" ) )
|
||||
<< wxT( "</div>" );
|
||||
|
||||
info.SetLicense( license );
|
||||
|
@ -203,135 +217,223 @@ static void InitKiCadAboutNew( AboutAppInfo& info )
|
|||
*/
|
||||
|
||||
// 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@verizon.net" ) ) );
|
||||
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( "Tim Hanson" ), wxT( "sideskate@gmail.com" ) ) );
|
||||
info.AddDeveloper(
|
||||
new Contributor( wxT( "Hauptmech" ), wxT( "hauptmech@gmail.com" ) ) );
|
||||
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( "Daniel Majewski" ), wxT( "lordblick@gmail.com" ) ) );
|
||||
info.AddDeveloper(
|
||||
new Contributor( wxT( "Lorenzo Marcantonio" ), wxT( "lomarcan@tin.it" ) ) );
|
||||
info.AddDeveloper(
|
||||
new Contributor( wxT( "Rok Markovic" ), wxT( "rok@kanardia.eu" ) ) );
|
||||
info.AddDeveloper(
|
||||
new Contributor( wxT( "Marco Mattila" ), wxT( "marcom99@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( "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( "Orson (Maciej Sumiński)" ), wxT( "maciej.suminski@cern.ch" ) ) );
|
||||
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( "Tomasz Wlostowski" ), wxT( "tomasz.wlostowski@cern.ch" ) ) );
|
||||
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" ) ) );
|
||||
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( "Igor Plyatov" ), wxT( "plyatov@gmail.com" ) ) );
|
||||
info.AddDocWriter(
|
||||
new Contributor( wxT( "Fabrizio Tappero" ), wxT( "fabrizio.tappero@gmail.com" ) ) );
|
||||
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( "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( "Rafael Sokolowski" ), wxT( "rafael.sokolowski@web.de" ), wxT( "German (DE)" ), KiBitmapNew( lang_de_xpm ) ) );
|
||||
info.AddTranslator(
|
||||
new Contributor( wxT( "Kenta Yonekura" ), wxT( "midpika@hotmail.com" ), 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 ) ) );
|
||||
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" ) ) );
|
||||
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 Zuluagaz" ), wxT( "inigo_zuluaga@yahoo.es" ), wxT( "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( "Konstantin Baranovskiy" ), wxT( "baranovskiykonstantin@gmail.com" ), wxT( "New icons by" ), KiBitmapNew( edit_module_xpm ) ) );
|
||||
info.AddArtist(
|
||||
new Contributor( wxT( "Renie Marquet" ), wxT( "reniemarquet@uol.com.br" ), wxT( "3D modules by" ), KiBitmapNew( three_d_xpm ) ) );
|
||||
info.AddArtist(
|
||||
new Contributor( wxT( "Christophe Boschat" ), wxT( "nox454@hotmail.fr" ), wxT( "3D modules by" ), KiBitmapNew( three_d_xpm ) ) );
|
||||
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" ) ) );
|
||||
}
|
||||
|
||||
|
||||
|
@ -354,39 +456,43 @@ bool ShowAboutDialog( wxWindow* parent )
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* Wraps the given url with a HTML anchor tag containing a hyperlink text reference
|
||||
* Function HtmlHyperlink
|
||||
*
|
||||
* wraps \a aUrl with a HTML anchor tag containing a hyperlink text reference
|
||||
* to form a HTML hyperlink.
|
||||
*
|
||||
* @param url the url that will be embedded in an anchor tag containing a hyperlink reference
|
||||
* @param description the optional describing text that will be represented as a 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& url, const wxString& description )
|
||||
static wxString HtmlHyperlink( const wxString& aUrl, const wxString& aDescription )
|
||||
{
|
||||
wxString hyperlink = wxEmptyString;
|
||||
|
||||
if( description.IsEmpty() )
|
||||
hyperlink << wxT( "<a href='" ) << url << wxT( "'>" ) << url << wxT( "</a>" );
|
||||
if( aDescription.IsEmpty() )
|
||||
hyperlink << wxT( "<a href='" ) << aUrl << wxT( "'>" ) << aUrl << wxT( "</a>" );
|
||||
else
|
||||
hyperlink << wxT( "<a href='" ) << url << wxT( "'>" ) << description << wxT( "</a>" );
|
||||
hyperlink << wxT( "<a href='" ) << aUrl << wxT( "'>" ) << aDescription << wxT( "</a>" );
|
||||
|
||||
return hyperlink;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a HTML newline character sequence.
|
||||
* Function HtmlNewline
|
||||
*
|
||||
* @param amount - the amount of HTML newline tags to concatenate, default is to return just
|
||||
* one <br> tag
|
||||
* 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 amount )
|
||||
static wxString HtmlNewline( const unsigned int aCount )
|
||||
{
|
||||
wxString newlineTags = wxEmptyString;
|
||||
|
||||
for( size_t i = 0; i<amount; ++i )
|
||||
for( size_t i = 0; i<aCount; ++i )
|
||||
newlineTags << wxT( "<br>" );
|
||||
|
||||
return newlineTags;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* 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 KiCad Developers, see CHANGELOG.TXT for contributors.
|
||||
* 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
|
||||
|
@ -45,19 +45,41 @@ 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 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; }
|
||||
|
@ -79,7 +101,6 @@ public:
|
|||
return copyrightText;
|
||||
}
|
||||
|
||||
|
||||
void SetAppName( const wxString& name ) { appName = name; }
|
||||
wxString& GetAppName() { return appName; }
|
||||
|
||||
|
@ -92,12 +113,12 @@ public:
|
|||
void SetIcon( const wxIcon& icon ) { appIcon = icon; }
|
||||
wxIcon& GetIcon() { return appIcon; }
|
||||
|
||||
protected:
|
||||
private:
|
||||
Contributors developers;
|
||||
Contributors docwriters;
|
||||
Contributors artists;
|
||||
Contributors translators;
|
||||
Contributors packagers;
|
||||
|
||||
wxString description;
|
||||
wxString license;
|
||||
|
@ -110,6 +131,7 @@ private:
|
|||
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.
|
||||
|
@ -131,6 +153,7 @@ public:
|
|||
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; }
|
||||
|
@ -139,7 +162,7 @@ public:
|
|||
wxBitmap* GetIcon() { return m_icon; }
|
||||
void SetChecked( bool status ) { m_checked = status; }
|
||||
bool IsChecked() { return m_checked; }
|
||||
protected:
|
||||
|
||||
private:
|
||||
wxString m_name;
|
||||
wxString m_email;
|
||||
|
|
|
@ -37,6 +37,7 @@ dialog_about::dialog_about(wxWindow *parent, AboutAppInfo& appInfo)
|
|||
picArtists = KiBitmap( palette_xpm );
|
||||
picTranslators = KiBitmap( language_xpm );
|
||||
picLicense = KiBitmap( tools_xpm );
|
||||
picPackagers = KiBitmap( zip_xpm );
|
||||
|
||||
m_bitmapApp->SetBitmap( info.GetIcon() );
|
||||
|
||||
|
@ -62,7 +63,7 @@ dialog_about::~dialog_about()
|
|||
|
||||
wxFlexGridSizer* dialog_about::CreateFlexGridSizer()
|
||||
{
|
||||
// three colums with vertical and horizontal extra space of two pixels
|
||||
// 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 );
|
||||
|
@ -89,6 +90,8 @@ void dialog_about::CreateNotebooks()
|
|||
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() );
|
||||
}
|
||||
|
@ -142,7 +145,7 @@ void dialog_about::CreateNotebookPage( wxAuiNotebook* parent, const wxString& ca
|
|||
}
|
||||
else
|
||||
{
|
||||
fgSizer1->AddSpacer(5);
|
||||
fgSizer1->AddSpacer( 5 );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -232,7 +235,7 @@ void dialog_about::CreateNotebookPageByCategory(wxAuiNotebook* parent, const wxS
|
|||
fgSizer1->AddSpacer( 5 );
|
||||
}
|
||||
|
||||
/* this contributor was added to the gui,
|
||||
/* this contributor was added to the GUI,
|
||||
* thus can be ignored next time
|
||||
*/
|
||||
contributor->SetChecked( true );
|
||||
|
@ -309,15 +312,15 @@ void dialog_about::CreateNotebookHtmlPage( wxAuiNotebook* parent, const wxString
|
|||
// used for all the other widgets
|
||||
wxString htmlColor = ( this->GetBackgroundColour() ).GetAsString( wxC2S_HTML_SYNTAX );
|
||||
|
||||
// beginning of html structure
|
||||
// beginning of HTML structure
|
||||
htmlPage.Append( wxT( "<html><body bgcolor='" ) + htmlColor + wxT( "'>" ) );
|
||||
|
||||
htmlPage.Append( htmlContent );
|
||||
|
||||
// end of html structure indicated by closing tags
|
||||
// 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
|
||||
// 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 );
|
||||
|
||||
|
@ -332,7 +335,7 @@ void dialog_about::CreateNotebookHtmlPage( wxAuiNotebook* parent, const wxString
|
|||
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
|
||||
// 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();
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* 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.
|
||||
* 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
|
||||
|
@ -55,14 +55,20 @@ class dialog_about : public dialog_about_base
|
|||
private:
|
||||
|
||||
// Icons for the various tabs of wxAuiNotebook
|
||||
wxBitmap picInformation, picDevelopers, picDocWriters, picArtists, picTranslators,
|
||||
picLicense;
|
||||
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 );
|
||||
|
@ -89,4 +95,5 @@ private:
|
|||
wxHyperlinkCtrl* CreateHyperlink( wxScrolledWindow* parent, const wxString& email );
|
||||
wxStaticBitmap* CreateStaticBitmap( wxScrolledWindow* parent, wxBitmap* icon );
|
||||
};
|
||||
|
||||
#endif // DIALOG_ABOUT_H
|
||||
|
|
|
@ -234,72 +234,6 @@ void DIALOG_SHIM::onInit( wxInitDialogEvent& aEvent )
|
|||
*/
|
||||
|
||||
|
||||
#if !wxCHECK_VERSION( 2, 9, 4 )
|
||||
wxWindow* DIALOG_SHIM::CheckIfCanBeUsedAsParent( wxWindow* parent ) const
|
||||
{
|
||||
if ( !parent )
|
||||
return NULL;
|
||||
|
||||
extern WXDLLIMPEXP_DATA_BASE(wxList) wxPendingDelete;
|
||||
|
||||
if ( wxPendingDelete.Member(parent) || parent->IsBeingDeleted() )
|
||||
{
|
||||
// this window is being deleted and we shouldn't create any children
|
||||
// under it
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ( parent->GetExtraStyle() & wxWS_EX_TRANSIENT )
|
||||
{
|
||||
// this window is not being deleted yet but it's going to disappear
|
||||
// soon so still don't parent this window under it
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ( !parent->IsShownOnScreen() )
|
||||
{
|
||||
// using hidden parent won't work correctly neither
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// FIXME-VC6: this compiler requires an explicit const cast or it fails
|
||||
// with error C2446
|
||||
if ( const_cast<const wxWindow *>(parent) == this )
|
||||
{
|
||||
// not sure if this can really happen but it doesn't hurt to guard
|
||||
// against this clearly invalid situation
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return parent;
|
||||
}
|
||||
|
||||
|
||||
wxWindow* DIALOG_SHIM::GetParentForModalDialog(wxWindow *parent, long style) const
|
||||
{
|
||||
// creating a parent-less modal dialog will result (under e.g. wxGTK2)
|
||||
// in an unfocused dialog, so try to find a valid parent for it unless we
|
||||
// were explicitly asked not to
|
||||
if ( style & wxDIALOG_NO_PARENT )
|
||||
return NULL;
|
||||
|
||||
// first try the given parent
|
||||
if ( parent )
|
||||
parent = CheckIfCanBeUsedAsParent(wxGetTopLevelParent(parent));
|
||||
|
||||
// then the currently active window
|
||||
if ( !parent )
|
||||
parent = CheckIfCanBeUsedAsParent(
|
||||
wxGetTopLevelParent(wxGetActiveWindow()));
|
||||
|
||||
// and finally the application main window
|
||||
if ( !parent )
|
||||
parent = CheckIfCanBeUsedAsParent(wxTheApp->GetTopWindow());
|
||||
|
||||
return parent;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
/// wxEventLoopActivator but with a friend so it
|
||||
|
@ -583,14 +517,11 @@ void DIALOG_SHIM::EndQuasiModal( int retCode )
|
|||
|
||||
if( m_qmodal_loop )
|
||||
{
|
||||
#if wxCHECK_VERSION( 2, 9, 4 ) // 2.9.4 is only approximate, might be 3, 0, 0.
|
||||
if( m_qmodal_loop->IsRunning() )
|
||||
m_qmodal_loop->Exit( 0 );
|
||||
else
|
||||
m_qmodal_loop->ScheduleExit( 0 );
|
||||
#else
|
||||
m_qmodal_loop->Exit( 0 );
|
||||
#endif
|
||||
|
||||
m_qmodal_loop = NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -14,10 +14,13 @@ DIALOG_ENV_VAR_CONFIG_BASE::DIALOG_ENV_VAR_CONFIG_BASE( wxWindow* parent, wxWind
|
|||
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
|
||||
|
||||
wxBoxSizer* mainSizer;
|
||||
mainSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||
mainSizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxBoxSizer* bSizer1;
|
||||
bSizer1 = new wxBoxSizer( wxVERTICAL );
|
||||
wxBoxSizer* bupperSizer;
|
||||
bupperSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
wxBoxSizer* bleftSizer;
|
||||
bleftSizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_grid = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
|
||||
|
@ -45,48 +48,54 @@ DIALOG_ENV_VAR_CONFIG_BASE::DIALOG_ENV_VAR_CONFIG_BASE( wxWindow* parent, wxWind
|
|||
|
||||
// Cell Defaults
|
||||
m_grid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
|
||||
bSizer1->Add( m_grid, 1, wxALL|wxEXPAND, 5 );
|
||||
bleftSizer->Add( m_grid, 1, wxALL|wxEXPAND, 5 );
|
||||
|
||||
|
||||
mainSizer->Add( bSizer1, 1, wxEXPAND, 5 );
|
||||
bupperSizer->Add( bleftSizer, 1, wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizer2;
|
||||
bSizer2 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_buttonOk = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_buttonOk->SetDefault();
|
||||
bSizer2->Add( m_buttonOk, 0, wxALL, 5 );
|
||||
|
||||
m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizer2->Add( m_buttonCancel, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
|
||||
wxBoxSizer* brightSizer;
|
||||
brightSizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_buttonAdd = new wxButton( this, wxID_ANY, _("Add"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_buttonAdd->SetToolTip( _("Add a new entry to the table.") );
|
||||
|
||||
bSizer2->Add( m_buttonAdd, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
|
||||
brightSizer->Add( m_buttonAdd, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
m_buttonDelete = new wxButton( this, wxID_ANY, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_buttonDelete->SetToolTip( _("Remove the selectect entry from the table.") );
|
||||
|
||||
bSizer2->Add( m_buttonDelete, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
m_buttonHelp = new wxButton( this, wxID_ANY, _("Help"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizer2->Add( m_buttonHelp, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
|
||||
brightSizer->Add( m_buttonDelete, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND, 5 );
|
||||
|
||||
|
||||
mainSizer->Add( bSizer2, 0, wxEXPAND, 5 );
|
||||
bupperSizer->Add( brightSizer, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
mainSizer->Add( bupperSizer, 1, wxEXPAND, 5 );
|
||||
|
||||
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||
mainSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
|
||||
|
||||
m_sdbSizer = new wxStdDialogButtonSizer();
|
||||
m_sdbSizerOK = new wxButton( this, wxID_OK );
|
||||
m_sdbSizer->AddButton( m_sdbSizerOK );
|
||||
m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
|
||||
m_sdbSizer->AddButton( m_sdbSizerCancel );
|
||||
m_sdbSizerHelp = new wxButton( this, wxID_HELP );
|
||||
m_sdbSizer->AddButton( m_sdbSizerHelp );
|
||||
m_sdbSizer->Realize();
|
||||
|
||||
mainSizer->Add( m_sdbSizer, 0, wxALL|wxALIGN_RIGHT, 5 );
|
||||
|
||||
|
||||
this->SetSizer( mainSizer );
|
||||
this->Layout();
|
||||
mainSizer->Fit( this );
|
||||
|
||||
this->Centre( wxBOTH );
|
||||
|
||||
// Connect Events
|
||||
m_buttonAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_CONFIG_BASE::OnAddRow ), NULL, this );
|
||||
m_buttonDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_CONFIG_BASE::OnDeleteSelectedRows ), NULL, this );
|
||||
m_buttonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_CONFIG_BASE::OnHelpRequest ), NULL, this );
|
||||
m_sdbSizerHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_CONFIG_BASE::OnHelpRequest ), NULL, this );
|
||||
}
|
||||
|
||||
DIALOG_ENV_VAR_CONFIG_BASE::~DIALOG_ENV_VAR_CONFIG_BASE()
|
||||
|
@ -94,6 +103,6 @@ DIALOG_ENV_VAR_CONFIG_BASE::~DIALOG_ENV_VAR_CONFIG_BASE()
|
|||
// Disconnect Events
|
||||
m_buttonAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_CONFIG_BASE::OnAddRow ), NULL, this );
|
||||
m_buttonDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_CONFIG_BASE::OnDeleteSelectedRows ), NULL, this );
|
||||
m_buttonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_CONFIG_BASE::OnHelpRequest ), NULL, this );
|
||||
m_sdbSizerHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_CONFIG_BASE::OnHelpRequest ), NULL, this );
|
||||
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -22,6 +22,7 @@ class DIALOG_SHIM;
|
|||
#include <wx/gdicmn.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/statline.h>
|
||||
#include <wx/dialog.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
@ -36,11 +37,13 @@ class DIALOG_ENV_VAR_CONFIG_BASE : public DIALOG_SHIM
|
|||
|
||||
protected:
|
||||
wxGrid* m_grid;
|
||||
wxButton* m_buttonOk;
|
||||
wxButton* m_buttonCancel;
|
||||
wxButton* m_buttonAdd;
|
||||
wxButton* m_buttonDelete;
|
||||
wxButton* m_buttonHelp;
|
||||
wxStaticLine* m_staticline1;
|
||||
wxStdDialogButtonSizer* m_sdbSizer;
|
||||
wxButton* m_sdbSizerOK;
|
||||
wxButton* m_sdbSizerCancel;
|
||||
wxButton* m_sdbSizerHelp;
|
||||
|
||||
// Virtual event handlers, overide them in your derived class
|
||||
virtual void OnAddRow( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
@ -50,7 +53,7 @@ class DIALOG_ENV_VAR_CONFIG_BASE : public DIALOG_SHIM
|
|||
|
||||
public:
|
||||
|
||||
DIALOG_ENV_VAR_CONFIG_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Path Configuration"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
DIALOG_ENV_VAR_CONFIG_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Path Configuration"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 363,177 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
~DIALOG_ENV_VAR_CONFIG_BASE();
|
||||
|
||||
};
|
||||
|
|
|
@ -724,7 +724,6 @@ void EDA_DRAW_PANEL::DrawGrid( wxDC* aDC )
|
|||
if( org.y < m_ClipBox.GetY() )
|
||||
org.y += KiROUND( gridSize.y );
|
||||
|
||||
#if ( defined( __WXMAC__ ) || 1 )
|
||||
// Use a pixel based draw to display grid. There are a lot of calls, so the cost is
|
||||
// high and grid is slowly drawn on some platforms. Please note that this should
|
||||
// always be enabled until the bitmap based solution below is fixed.
|
||||
|
@ -748,63 +747,12 @@ void EDA_DRAW_PANEL::DrawGrid( wxDC* aDC )
|
|||
aDC->DrawPoint( xpos, KiROUND( y ) );
|
||||
}
|
||||
}
|
||||
#else
|
||||
/* This is fast only if the Blit function is fast. Not true on all platforms.
|
||||
*
|
||||
* A first grid column is drawn in a temporary bitmap, and after is duplicated using
|
||||
* the Blit function (copy from a screen area to an other screen area).
|
||||
*/
|
||||
wxMemoryDC tmpDC;
|
||||
wxBitmap tmpBM( 1, aDC->LogicalToDeviceYRel( m_ClipBox.GetHeight() ) );
|
||||
tmpDC.SelectObject( tmpBM );
|
||||
tmpDC.SetLogicalFunction( wxCOPY );
|
||||
tmpDC.SetBackground( wxBrush( GetBackgroundColour() ) );
|
||||
tmpDC.Clear();
|
||||
tmpDC.SetPen( MakeColour( GetParent()->GetGridColor() ) );
|
||||
|
||||
double usx, usy;
|
||||
int lox, loy, dox, doy;
|
||||
|
||||
aDC->GetUserScale( &usx, &usy );
|
||||
aDC->GetLogicalOrigin( &lox, &loy );
|
||||
aDC->GetDeviceOrigin( &dox, &doy );
|
||||
|
||||
// Create a dummy DC for coordinate translation because the actual DC scale and origin
|
||||
// must be reset in order to work correctly.
|
||||
wxBitmap tmpBitmap( 1, 1 );
|
||||
wxMemoryDC scaleDC( tmpBitmap );
|
||||
scaleDC.SetUserScale( usx, usy );
|
||||
scaleDC.SetLogicalOrigin( lox, loy );
|
||||
scaleDC.SetDeviceOrigin( dox, doy );
|
||||
|
||||
double bottom = ( double ) m_ClipBox.GetBottom();
|
||||
|
||||
// Draw a column of grid points.
|
||||
for( double y = (double) org.y; y <= bottom; y += gridSize.y )
|
||||
{
|
||||
tmpDC.DrawPoint( 0, scaleDC.LogicalToDeviceY( KiROUND( y ) ) );
|
||||
}
|
||||
|
||||
// Reset the device context scale and origin and restore on exit.
|
||||
EDA_BLIT_NORMALIZER blitNorm( aDC );
|
||||
|
||||
// Mask of everything but the grid points.
|
||||
tmpDC.SelectObject( wxNullBitmap );
|
||||
tmpBM.SetMask( new wxMask( tmpBM, GetBackgroundColour() ) );
|
||||
tmpDC.SelectObject( tmpBM );
|
||||
|
||||
double right = m_ClipBox.GetRight();
|
||||
|
||||
// Blit the column for each row of the damaged region.
|
||||
for( double x = (double) org.x; x <= right; x += gridSize.x )
|
||||
{
|
||||
aDC->Blit( scaleDC.LogicalToDeviceX( KiROUND( x ) ),
|
||||
scaleDC.LogicalToDeviceY( m_ClipBox.GetY() ),
|
||||
1, tmpBM.GetHeight(), &tmpDC, 0, 0, wxCOPY, true );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// Set to 1 to draw auxirilary axis as lines, 0 to draw as target (circle with cross)
|
||||
#define DRAW_AXIS_AS_LINES 0
|
||||
// Size in pixels of the target shape
|
||||
#define AXIS_SIZE_IN_PIXELS 15
|
||||
|
||||
void EDA_DRAW_PANEL::DrawAuxiliaryAxis( wxDC* aDC, GR_DRAWMODE aDrawMode )
|
||||
{
|
||||
|
@ -813,11 +761,12 @@ void EDA_DRAW_PANEL::DrawAuxiliaryAxis( wxDC* aDC, GR_DRAWMODE aDrawMode )
|
|||
if( origin == wxPoint( 0, 0 ) )
|
||||
return;
|
||||
|
||||
EDA_COLOR_T color = DARKRED;
|
||||
wxSize pageSize = GetParent()->GetPageSizeIU();
|
||||
EDA_COLOR_T color = RED;
|
||||
|
||||
GRSetDrawMode( aDC, aDrawMode );
|
||||
|
||||
#if DRAW_AXIS_AS_LINES
|
||||
wxSize pageSize = GetParent()->GetPageSizeIU();
|
||||
// Draw the Y axis
|
||||
GRLine( &m_ClipBox, aDC, origin.x, -pageSize.y,
|
||||
origin.x, pageSize.y, 0, color );
|
||||
|
@ -825,6 +774,21 @@ void EDA_DRAW_PANEL::DrawAuxiliaryAxis( wxDC* aDC, GR_DRAWMODE aDrawMode )
|
|||
// Draw the X axis
|
||||
GRLine( &m_ClipBox, aDC, -pageSize.x, origin.y,
|
||||
pageSize.x, origin.y, 0, color );
|
||||
#else
|
||||
int radius = aDC->DeviceToLogicalXRel( AXIS_SIZE_IN_PIXELS );
|
||||
int linewidth = aDC->DeviceToLogicalXRel( 1 );
|
||||
|
||||
GRSetColorPen( aDC, color, linewidth );
|
||||
|
||||
GRLine( &m_ClipBox, aDC, origin.x, origin.y-radius,
|
||||
origin.x, origin.y+radius, 0, color );
|
||||
|
||||
// Draw the + shape
|
||||
GRLine( &m_ClipBox, aDC, origin.x-radius, origin.y,
|
||||
origin.x+radius, origin.y, 0, color );
|
||||
|
||||
GRCircle( &m_ClipBox, aDC, origin, radius, linewidth, color );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -834,10 +798,11 @@ void EDA_DRAW_PANEL::DrawGridAxis( wxDC* aDC, GR_DRAWMODE aDrawMode, const wxPoi
|
|||
return;
|
||||
|
||||
EDA_COLOR_T color = GetParent()->GetGridColor();
|
||||
wxSize pageSize = GetParent()->GetPageSizeIU();
|
||||
|
||||
GRSetDrawMode( aDC, aDrawMode );
|
||||
|
||||
#if DRAW_AXIS_AS_LINES
|
||||
wxSize pageSize = GetParent()->GetPageSizeIU();
|
||||
// Draw the Y axis
|
||||
GRLine( &m_ClipBox, aDC, aGridOrigin.x, -pageSize.y,
|
||||
aGridOrigin.x, pageSize.y, 0, color );
|
||||
|
@ -845,6 +810,21 @@ void EDA_DRAW_PANEL::DrawGridAxis( wxDC* aDC, GR_DRAWMODE aDrawMode, const wxPoi
|
|||
// Draw the X axis
|
||||
GRLine( &m_ClipBox, aDC, -pageSize.x, aGridOrigin.y,
|
||||
pageSize.x, aGridOrigin.y, 0, color );
|
||||
#else
|
||||
int radius = aDC->DeviceToLogicalXRel( AXIS_SIZE_IN_PIXELS );
|
||||
int linewidth = aDC->DeviceToLogicalXRel( 1 );
|
||||
|
||||
GRSetColorPen( aDC, GetParent()->GetGridColor(), linewidth );
|
||||
|
||||
GRLine( &m_ClipBox, aDC, aGridOrigin.x-radius, aGridOrigin.y-radius,
|
||||
aGridOrigin.x+radius, aGridOrigin.y+radius, 0, color );
|
||||
|
||||
// Draw the X shape
|
||||
GRLine( &m_ClipBox, aDC, aGridOrigin.x+radius, aGridOrigin.y-radius,
|
||||
aGridOrigin.x-radius, aGridOrigin.y+radius, 0, color );
|
||||
|
||||
GRCircle( &m_ClipBox, aDC, aGridOrigin, radius, linewidth, color );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -94,15 +94,16 @@ bool GetAssociatedDocument( wxWindow* aParent,
|
|||
bool success = false;
|
||||
|
||||
// Is an internet url
|
||||
static const wxChar* url_header[3] = {
|
||||
static const wxChar* url_header[] = {
|
||||
wxT( "http:" ),
|
||||
wxT( "https:" ),
|
||||
wxT( "ftp:" ),
|
||||
wxT( "www." )
|
||||
};
|
||||
|
||||
for( unsigned ii = 0; ii < DIM(url_header); ii++ )
|
||||
{
|
||||
if( aDocName.First( url_header[ii] ) == 0 ) //. seems an internet url
|
||||
if( aDocName.First( url_header[ii] ) == 0 ) // looks like an internet url
|
||||
{
|
||||
wxLaunchDefaultBrowser( aDocName );
|
||||
return true;
|
||||
|
|
|
@ -102,10 +102,14 @@ void FOOTPRINT_INFO::load()
|
|||
std::auto_ptr<MODULE> m( fptable->FootprintLoad( m_nickname, m_fpname ) );
|
||||
|
||||
if( m.get() == NULL ) // Should happen only with malformed/broken libraries
|
||||
{
|
||||
m_pad_count = 0;
|
||||
m_unique_pad_count = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pad_count = m->GetPadCount( DO_NOT_INCLUDE_NPTH );
|
||||
m_unique_pad_count = m->GetUniquePadCount( DO_NOT_INCLUDE_NPTH );
|
||||
m_keywords = m->GetKeywords();
|
||||
m_doc = m->GetDescription();
|
||||
|
||||
|
|
|
@ -962,7 +962,8 @@ unsigned int OPENGL_GAL::getNewGroupNumber()
|
|||
|
||||
bool OPENGL_GAL::runTest()
|
||||
{
|
||||
wxDialog dlgtest( GetParent(), -1, wxT( "opengl test" ), wxPoint( 50, 50 ), wxSize( 50, 50 ) );
|
||||
wxDialog dlgtest( GetParent(), -1, wxT( "opengl test" ), wxPoint( 50, 50 ),
|
||||
wxDLG_UNIT( GetParent(), wxSize( 50, 50 ) ) );
|
||||
OPENGL_TEST* test = new OPENGL_TEST( &dlgtest, this );
|
||||
|
||||
dlgtest.Raise(); // on Linux, on some windows managers (Unity for instance) this is needed to actually show the dialog
|
||||
|
|
|
@ -70,8 +70,6 @@ static int xcliplo = 0,
|
|||
ycliphi = 2000;
|
||||
|
||||
static EDA_COLOR_T s_DC_lastcolor = UNSPECIFIED_COLOR;
|
||||
static int s_DC_lastwidth = -1;
|
||||
static int s_DC_lastpenstyle = -1;
|
||||
static EDA_COLOR_T s_DC_lastbrushcolor = UNSPECIFIED_COLOR;
|
||||
static bool s_DC_lastbrushfill = false;
|
||||
static wxDC* s_DC_lastDC = NULL;
|
||||
|
@ -213,31 +211,27 @@ void GRSetColorPen( wxDC* DC, EDA_COLOR_T Color, int width, wxPenStyle style )
|
|||
width = DC->DeviceToLogicalXRel( 1 );
|
||||
|
||||
if( s_ForceBlackPen )
|
||||
{
|
||||
Color = BLACK;
|
||||
}
|
||||
|
||||
if( s_DC_lastcolor != Color
|
||||
|| s_DC_lastwidth != width
|
||||
|| s_DC_lastpenstyle != style
|
||||
|| s_DC_lastDC != DC
|
||||
|| s_ForceBlackPen )
|
||||
wxColour wx_color = MakeColour( Color );
|
||||
const wxPen& curr_pen = DC->GetPen();
|
||||
|
||||
if( !curr_pen.IsOk() || curr_pen.GetColour() != wx_color
|
||||
|| curr_pen.GetWidth() != width
|
||||
|| curr_pen.GetStyle() != style )
|
||||
{
|
||||
wxPen pen;
|
||||
|
||||
wxColour wx_color = MakeColour( Color );
|
||||
|
||||
wxPen pen;
|
||||
pen.SetColour( wx_color );
|
||||
pen.SetWidth( width );
|
||||
pen.SetStyle( style );
|
||||
|
||||
DC->SetPen( pen );
|
||||
|
||||
s_DC_lastcolor = Color;
|
||||
s_DC_lastwidth = width;
|
||||
s_DC_lastpenstyle = style;
|
||||
s_DC_lastDC = DC;
|
||||
}
|
||||
else
|
||||
// Should be not needed, but on Linux, in printing process
|
||||
// the curr pen settings needs to be sometimes re-initialized
|
||||
// Clearly, this is due to a bug, related to SetBrush(),
|
||||
// but we have to live with it, at least on wxWidgets 3.0
|
||||
DC->SetPen( curr_pen );
|
||||
}
|
||||
|
||||
|
||||
|
|
16
copyright.h
16
copyright.h
|
@ -1,23 +1,23 @@
|
|||
Copyright template
|
||||
|
||||
|
||||
A copyright message which may be added to all source files
|
||||
at their top. There is one line that represents the main copyright holder which
|
||||
is its original author.
|
||||
A copyright message which may be added to all source files at their top.
|
||||
There is one line that represents the main copyright holder which is its
|
||||
original author.
|
||||
|
||||
Workers who earn partial copyright holder status of a source module
|
||||
may choose to document this corresponding work in the CHANGELOG.txt file.
|
||||
Workers who earn partial copyright holder status of a source module may
|
||||
choose to document this corresponding work in the CHANGELOG.txt file.
|
||||
|
||||
|
||||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2014 <author>
|
||||
* Copyright (C) 2014 KiCad Developers, see CHANGELOG.TXT for contributors.
|
||||
* Copyright (C) 2015 <author>
|
||||
* Copyright (C) 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
|
||||
* as published by the Free Software Foundation; either version 3
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
|
|
|
@ -156,7 +156,7 @@ void FOOTPRINTS_LISTBOX::SetFootprints( FOOTPRINT_LIST& aList, const wxString& a
|
|||
continue;
|
||||
|
||||
if( (aFilterType & BY_PIN_COUNT) && aComponent
|
||||
&& aComponent->GetNetCount() != aList.GetItem( ii ).GetPadCount() )
|
||||
&& aComponent->GetNetCount() != aList.GetItem( ii ).GetUniquePadCount() )
|
||||
continue;
|
||||
|
||||
msg.Printf( wxT( "%3d %s:%s" ), int( newList.GetCount() + 1 ),
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,465 @@
|
|||
#VRML V2.0 utf8
|
||||
#Exported from Wings 3D 2.0.1
|
||||
DEF cube4_copy14 Transform {
|
||||
children [
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material DEF pin Material {
|
||||
diffuseColor 0.7200000000000001 0.7200000000000001 0.7200000000000001
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
specularColor 0.40298507462686567 0.40298507462686567 0.40298507462686567
|
||||
ambientIntensity 0.7388059701492539
|
||||
transparency 0.0
|
||||
shininess 1.0
|
||||
}
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate { point [
|
||||
0.49469757557083704 0.9044116856547368 0.5885495998933049,
|
||||
0.49469757557107047 0.9044117988462632 0.4165495998934562,
|
||||
0.8497157948850202 0.904410585242893 0.4165495998934562,
|
||||
0.8497157948847871 0.9044104720513666 0.5885495998933049,
|
||||
0.4946949389278774 -0.3755880511037757 0.18854694630386348,
|
||||
0.4946949389281108 -0.37558793791224976 0.016546946304015004,
|
||||
0.8497131582420605 -0.37558915151562 0.016546946304015004,
|
||||
0.8497131582418275 -0.37558926470714593 0.18854694630386348,
|
||||
0.4946968944379325 0.5737450189895246 0.5885487153633737,
|
||||
0.49469621330556995 0.2430786155604212 0.18854783083379462,
|
||||
0.49469689443816556 0.5737451321810509 0.4165487153635251,
|
||||
0.4946962133058033 0.24307872875194758 0.016547830833946137,
|
||||
0.8497151137521156 0.5737439185776807 0.4165487153635251,
|
||||
0.849714432619753 0.24307751514857734 0.016547830833946137,
|
||||
0.8497151137518822 0.5737438053861543 0.5885487153633737,
|
||||
0.8497144326195201 0.24307740195705096 0.18854783083379462 ] }
|
||||
coordIndex [
|
||||
0, 1, 8, -1,
|
||||
0, 3, 1, -1,
|
||||
0, 8, 3, -1,
|
||||
1, 2, 12, -1,
|
||||
1, 3, 2, -1,
|
||||
1, 10, 8, -1,
|
||||
1, 12, 10, -1,
|
||||
2, 3, 12, -1,
|
||||
3, 8, 14, -1,
|
||||
3, 14, 12, -1,
|
||||
4, 5, 6, -1,
|
||||
4, 6, 7, -1,
|
||||
4, 7, 15, -1,
|
||||
4, 9, 11, -1,
|
||||
4, 11, 5, -1,
|
||||
4, 15, 9, -1,
|
||||
5, 11, 6, -1,
|
||||
6, 11, 13, -1,
|
||||
6, 13, 15, -1,
|
||||
6, 15, 7, -1,
|
||||
8, 9, 15, -1,
|
||||
8, 10, 11, -1,
|
||||
8, 11, 9, -1,
|
||||
8, 15, 14, -1,
|
||||
10, 12, 11, -1,
|
||||
11, 12, 13, -1,
|
||||
12, 14, 15, -1,
|
||||
12, 15, 13, -1 ]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
DEF cube4_copy13 Transform {
|
||||
children [
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material USE pin
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate { point [
|
||||
-0.8593024244219452 0.9044171255138134 0.5885495998933049,
|
||||
-0.859302424421712 0.9044172387053397 0.4165495998934562,
|
||||
-0.5042842051077618 0.9044160251019691 0.4165495998934562,
|
||||
-0.5042842051079948 0.9044159119104427 0.5885495998933049,
|
||||
-0.8593050610649048 -0.37558261124469916 0.18854694630386348,
|
||||
-0.8593050610646716 -0.37558249805317323 0.016546946304015004,
|
||||
-0.5042868417507214 -0.3755837116565439 0.016546946304015004,
|
||||
-0.5042868417509545 -0.37558382484806985 0.18854694630386348,
|
||||
-0.85930310555485 0.5737504588486011 0.5885487153633737,
|
||||
-0.8593037866872122 0.24308405541949774 0.18854783083379462,
|
||||
-0.8593031055546166 0.5737505720401275 0.4165487153635251,
|
||||
-0.8593037866869792 0.2430841686110241 0.016547830833946137,
|
||||
-0.5042848862406663 0.5737493584367568 0.4165487153635251,
|
||||
-0.5042855673730287 0.24308295500765342 0.016547830833946137,
|
||||
-0.5042848862408994 0.5737492452452304 0.5885487153633737,
|
||||
-0.5042855673732618 0.24308284181612705 0.18854783083379462 ] }
|
||||
coordIndex [
|
||||
0, 1, 8, -1,
|
||||
0, 3, 1, -1,
|
||||
0, 8, 3, -1,
|
||||
1, 2, 12, -1,
|
||||
1, 3, 2, -1,
|
||||
1, 10, 8, -1,
|
||||
1, 12, 10, -1,
|
||||
2, 3, 12, -1,
|
||||
3, 8, 14, -1,
|
||||
3, 14, 12, -1,
|
||||
4, 5, 6, -1,
|
||||
4, 6, 7, -1,
|
||||
4, 7, 15, -1,
|
||||
4, 9, 11, -1,
|
||||
4, 11, 5, -1,
|
||||
4, 15, 9, -1,
|
||||
5, 11, 6, -1,
|
||||
6, 11, 13, -1,
|
||||
6, 13, 15, -1,
|
||||
6, 15, 7, -1,
|
||||
8, 9, 15, -1,
|
||||
8, 10, 11, -1,
|
||||
8, 11, 9, -1,
|
||||
8, 15, 14, -1,
|
||||
10, 12, 11, -1,
|
||||
11, 12, 13, -1,
|
||||
12, 14, 15, -1,
|
||||
12, 15, 13, -1 ]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
DEF cube4_sep12 Transform {
|
||||
children [
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material USE pin
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate { point [
|
||||
1.180697575570837 0.9044116856547368 0.5885495998933049,
|
||||
1.1806975755710705 0.9044117988462632 0.4165495998934562,
|
||||
1.5357157948850202 0.904410585242893 0.4165495998934562,
|
||||
1.5357157948847873 0.9044104720513666 0.5885495998933049,
|
||||
1.1806949389278774 -0.3755880511037757 0.18854694630386348,
|
||||
1.1806949389281107 -0.37558793791224976 0.016546946304015004,
|
||||
1.5357131582420604 -0.37558915151562 0.016546946304015004,
|
||||
1.5357131582418275 -0.37558926470714593 0.18854694630386348,
|
||||
1.1806968944379324 0.5737450189895246 0.5885487153633737,
|
||||
1.1806962133055698 0.2430786155604212 0.18854783083379462,
|
||||
1.1806968944381657 0.5737451321810509 0.4165487153635251,
|
||||
1.1806962133058032 0.24307872875194758 0.016547830833946137,
|
||||
1.5357151137521157 0.5737439185776807 0.4165487153635251,
|
||||
1.5357144326197532 0.24307751514857734 0.016547830833946137,
|
||||
1.5357151137518823 0.5737438053861543 0.5885487153633737,
|
||||
1.5357144326195202 0.24307740195705096 0.18854783083379462 ] }
|
||||
coordIndex [
|
||||
0, 1, 8, -1,
|
||||
0, 3, 1, -1,
|
||||
0, 8, 3, -1,
|
||||
1, 2, 12, -1,
|
||||
1, 3, 2, -1,
|
||||
1, 10, 8, -1,
|
||||
1, 12, 10, -1,
|
||||
2, 3, 12, -1,
|
||||
3, 8, 14, -1,
|
||||
3, 14, 12, -1,
|
||||
4, 5, 6, -1,
|
||||
4, 6, 7, -1,
|
||||
4, 7, 15, -1,
|
||||
4, 9, 11, -1,
|
||||
4, 11, 5, -1,
|
||||
4, 15, 9, -1,
|
||||
5, 11, 6, -1,
|
||||
6, 11, 13, -1,
|
||||
6, 13, 15, -1,
|
||||
6, 15, 7, -1,
|
||||
8, 9, 15, -1,
|
||||
8, 10, 11, -1,
|
||||
8, 11, 9, -1,
|
||||
8, 15, 14, -1,
|
||||
10, 12, 11, -1,
|
||||
11, 12, 13, -1,
|
||||
12, 14, 15, -1,
|
||||
12, 15, 13, -1 ]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
DEF cube4_sep11 Transform {
|
||||
children [
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material DEF body Material {
|
||||
diffuseColor 0.44776119402985076 0.44776119402985076 0.44776119402985076
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
specularColor 0.1417910447761194 0.1417910447761194 0.1417910447761194
|
||||
ambientIntensity 0.41791044776119407
|
||||
transparency 0.0
|
||||
shininess 1.0
|
||||
}
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate { point [
|
||||
1.7152182518946473 4.648202041089771 0.21455433502265325,
|
||||
-1.7212817480994713 4.648206473911521 0.21455433502265325,
|
||||
1.715218251893144 4.648201472705371 0.9151563190222725,
|
||||
2.0002170429163337 4.372600412283759 0.915153709418467,
|
||||
-1.975787352051995 4.392370384480033 0.9151537094184671,
|
||||
-1.7212817481009746 4.648205905527121 0.9151563190222725,
|
||||
-1.9005928402305177 0.9877300684708781 0.9903511975572958,
|
||||
1.9250072516857544 0.987720514056661 0.9903511970000083,
|
||||
1.9250169548338514 4.3407105532877495 0.9903536678082394,
|
||||
1.6848051964769646 4.573001455891576 0.990356221445347,
|
||||
-1.690018073116452 4.573005799088463 0.9903562216740227,
|
||||
-1.9005873998329612 4.361336105799042 0.9903536694750094,
|
||||
-1.9152865271521975 0.9730364659199149 0.9756575141597525,
|
||||
-1.870992956009541 0.9125300933792071 0.9151510998145782,
|
||||
-1.9757927946571687 1.0173303844892836 0.9151511749515024,
|
||||
1.897407043978173 0.9125206978536344 0.9151510998145782,
|
||||
2.0002073279192447 1.0153204122985005 0.9151511739199032,
|
||||
1.9408555979327713 0.9718721025896782 0.9745027864966964,
|
||||
1.7152182518955217 4.648202371555615 0.1579523510221698,
|
||||
1.6640182518963231 4.648202744883636 0.1067523510230423,
|
||||
1.7152182518963175 4.699402670482303 0.1067523510230423,
|
||||
2.000217042919113 4.372601490999284 0.15794974141909796,
|
||||
-1.9757873520492162 4.392371463195559 0.15794974141909796,
|
||||
-1.6700817480978067 4.648207028902958 0.1067523510230423,
|
||||
-1.721281748098597 4.648206804377365 0.1579523510221698,
|
||||
-1.721281748097801 4.699407103304052 0.1067523510230423,
|
||||
-1.97579279465439 1.017331463204725 0.15794720695216236,
|
||||
-1.8709929560067624 0.9125311720945917 0.15794713181520903,
|
||||
2.000207327922024 1.0153214910139419 0.15794720592054828,
|
||||
1.897407043980952 0.912521776569019 0.15794713181520903,
|
||||
1.9490169829485158 4.350889392455781 0.10674971307897159,
|
||||
1.7730073864998548 1.0365294400006129 0.10674723322683204,
|
||||
1.7001994515741845 0.9637219084186877 0.10674719811808896,
|
||||
-1.8497850979587613 0.9637311861239397 0.10674719827538891,
|
||||
-1.9245927620025127 1.0385391731419686 0.10674723463826673,
|
||||
-1.924587384580483 4.371241887419728 0.10674971421434783 ] }
|
||||
coordIndex [
|
||||
0, 1, 5, -1,
|
||||
0, 2, 3, -1,
|
||||
0, 3, 21, -1,
|
||||
0, 5, 2, -1,
|
||||
0, 21, 18, -1,
|
||||
1, 4, 5, -1,
|
||||
1, 22, 4, -1,
|
||||
1, 24, 22, -1,
|
||||
2, 5, 9, -1,
|
||||
2, 9, 3, -1,
|
||||
3, 8, 16, -1,
|
||||
3, 9, 8, -1,
|
||||
3, 16, 28, -1,
|
||||
3, 28, 21, -1,
|
||||
4, 11, 5, -1,
|
||||
4, 14, 11, -1,
|
||||
4, 22, 14, -1,
|
||||
5, 10, 9, -1,
|
||||
5, 11, 10, -1,
|
||||
6, 7, 9, -1,
|
||||
6, 9, 11, -1,
|
||||
6, 11, 14, -1,
|
||||
6, 12, 13, -1,
|
||||
6, 13, 7, -1,
|
||||
6, 14, 12, -1,
|
||||
7, 8, 9, -1,
|
||||
7, 13, 15, -1,
|
||||
7, 15, 17, -1,
|
||||
7, 16, 8, -1,
|
||||
7, 17, 16, -1,
|
||||
9, 10, 11, -1,
|
||||
12, 14, 13, -1,
|
||||
13, 14, 27, -1,
|
||||
13, 27, 15, -1,
|
||||
14, 22, 26, -1,
|
||||
14, 26, 27, -1,
|
||||
15, 16, 17, -1,
|
||||
15, 27, 29, -1,
|
||||
15, 28, 16, -1,
|
||||
15, 29, 28, -1,
|
||||
18, 19, 20, -1,
|
||||
18, 21, 30, -1,
|
||||
18, 30, 19, -1,
|
||||
19, 30, 31, -1,
|
||||
19, 31, 35, -1,
|
||||
19, 35, 23, -1,
|
||||
21, 28, 30, -1,
|
||||
22, 23, 35, -1,
|
||||
22, 24, 23, -1,
|
||||
22, 34, 26, -1,
|
||||
22, 35, 34, -1,
|
||||
23, 24, 25, -1,
|
||||
26, 34, 27, -1,
|
||||
27, 32, 29, -1,
|
||||
27, 33, 32, -1,
|
||||
27, 34, 33, -1,
|
||||
28, 29, 32, -1,
|
||||
28, 31, 30, -1,
|
||||
28, 32, 31, -1,
|
||||
31, 32, 35, -1,
|
||||
32, 33, 35, -1,
|
||||
33, 34, 35, -1 ]
|
||||
}
|
||||
},
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material USE pin
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate { point [
|
||||
1.7152182518946473 4.648202041089771 0.21455433502265325,
|
||||
-1.7212817480994713 4.648206473911521 0.21455433502265325,
|
||||
-1.7212817480994713 5.103406473911578 0.21455433502265325,
|
||||
1.7152182518946473 5.103402041089829 0.21455433502265325,
|
||||
1.7152182518963175 5.103402670482479 0.1067523510230423,
|
||||
-1.721281748097801 5.10340710330423 0.1067523510230423,
|
||||
-1.6964817480990886 5.128206582666104 0.18975433502307587,
|
||||
1.6904182518950355 5.128202221920532 0.18975433502307587,
|
||||
1.6904182518959348 5.1282025617278375 0.1315523510226197,
|
||||
-1.6964817480981893 5.128206922473412 0.1315523510226197,
|
||||
1.7152182518955217 4.648202371555615 0.1579523510221698,
|
||||
1.6640182518963231 4.648202744883636 0.1067523510230423,
|
||||
1.7152182518963175 4.699402670482303 0.1067523510230423,
|
||||
-1.6700817480978067 4.648207028902958 0.1067523510230423,
|
||||
-1.721281748098597 4.648206804377365 0.1579523510221698,
|
||||
-1.721281748097801 4.699407103304052 0.1067523510230423 ] }
|
||||
coordIndex [
|
||||
0, 2, 1, -1,
|
||||
0, 3, 2, -1,
|
||||
0, 10, 12, -1,
|
||||
0, 12, 3, -1,
|
||||
1, 2, 15, -1,
|
||||
1, 15, 14, -1,
|
||||
2, 3, 7, -1,
|
||||
2, 5, 15, -1,
|
||||
2, 6, 9, -1,
|
||||
2, 7, 6, -1,
|
||||
2, 9, 5, -1,
|
||||
3, 4, 7, -1,
|
||||
3, 12, 4, -1,
|
||||
4, 5, 9, -1,
|
||||
4, 8, 7, -1,
|
||||
4, 9, 8, -1,
|
||||
4, 11, 13, -1,
|
||||
4, 12, 11, -1,
|
||||
4, 13, 5, -1,
|
||||
5, 13, 15, -1,
|
||||
6, 7, 9, -1,
|
||||
7, 8, 9, -1 ]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
DEF cube4_sep10 Transform {
|
||||
children [
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material USE pin
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate { point [
|
||||
-1.5293024244219453 0.9044171255138134 0.5885495998933049,
|
||||
-1.5293024244217122 0.9044172387053397 0.4165495998934562,
|
||||
-1.174284205107762 0.9044160251019691 0.4165495998934562,
|
||||
-1.174284205107995 0.9044159119104427 0.5885495998933049,
|
||||
-1.529305061064905 -0.37558261124469916 0.18854694630386348,
|
||||
-1.529305061064672 -0.37558249805317323 0.016546946304015004,
|
||||
-1.1742868417507215 -0.3755837116565439 0.016546946304015004,
|
||||
-1.1742868417509547 -0.37558382484806985 0.18854694630386348,
|
||||
-1.52930310555485 0.5737504588486011 0.5885487153633737,
|
||||
-1.5293037866872121 0.24308405541949774 0.18854783083379462,
|
||||
-1.5293031055546167 0.5737505720401275 0.4165487153635251,
|
||||
-1.5293037866869792 0.2430841686110241 0.016547830833946137,
|
||||
-1.1742848862406663 0.5737493584367568 0.4165487153635251,
|
||||
-1.174285567373029 0.24308295500765342 0.016547830833946137,
|
||||
-1.1742848862408997 0.5737492452452304 0.5885487153633737,
|
||||
-1.1742855673732622 0.24308284181612705 0.18854783083379462 ] }
|
||||
coordIndex [
|
||||
0, 1, 8, -1,
|
||||
0, 3, 1, -1,
|
||||
0, 8, 3, -1,
|
||||
1, 2, 12, -1,
|
||||
1, 3, 2, -1,
|
||||
1, 10, 8, -1,
|
||||
1, 12, 10, -1,
|
||||
2, 3, 12, -1,
|
||||
3, 8, 14, -1,
|
||||
3, 14, 12, -1,
|
||||
4, 5, 6, -1,
|
||||
4, 6, 7, -1,
|
||||
4, 7, 15, -1,
|
||||
4, 9, 11, -1,
|
||||
4, 11, 5, -1,
|
||||
4, 15, 9, -1,
|
||||
5, 11, 6, -1,
|
||||
6, 11, 13, -1,
|
||||
6, 13, 15, -1,
|
||||
6, 15, 7, -1,
|
||||
8, 9, 15, -1,
|
||||
8, 10, 11, -1,
|
||||
8, 11, 9, -1,
|
||||
8, 15, 14, -1,
|
||||
10, 12, 11, -1,
|
||||
11, 12, 13, -1,
|
||||
12, 14, 15, -1,
|
||||
12, 15, 13, -1 ]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
DEF cube4_sep26 Transform {
|
||||
children [
|
||||
Shape {
|
||||
appearance Appearance {
|
||||
material USE pin
|
||||
}
|
||||
geometry IndexedFaceSet {
|
||||
coord Coordinate { point [
|
||||
-0.17930242442557165 0.9044143923163264 0.5885495998933049,
|
||||
-0.17930242442533853 0.9044145055078527 0.4165495998934562,
|
||||
0.17571579488861147 0.904413291904482 0.4165495998934562,
|
||||
0.17571579488837835 0.9044131787129557 0.5885495998933049,
|
||||
-0.17930506106853134 -0.37558534444218616 0.18854694630386348,
|
||||
-0.17930506106829822 -0.37558523125066023 0.016546946304015004,
|
||||
0.17571315824565187 -0.3755864448540309 0.016546946304015004,
|
||||
0.17571315824541867 -0.37558655804555685 0.18854694630386348,
|
||||
-0.17930310555847634 0.5737477256511141 0.5885487153633737,
|
||||
-0.1793037866908388 0.24308132222201073 0.18854783083379462,
|
||||
-0.17930310555824314 0.5737478388426405 0.4165487153635251,
|
||||
-0.17930378669060557 0.2430814354135371 0.016547830833946137,
|
||||
0.17571511375570686 0.5737466252392698 0.4165487153635251,
|
||||
0.17571443262334444 0.24308022181016642 0.016547830833946137,
|
||||
0.17571511375547366 0.5737465120477434 0.5885487153633737,
|
||||
0.17571443262311123 0.24308010861864005 0.18854783083379462 ] }
|
||||
coordIndex [
|
||||
0, 1, 8, -1,
|
||||
0, 3, 1, -1,
|
||||
0, 8, 3, -1,
|
||||
1, 2, 12, -1,
|
||||
1, 3, 2, -1,
|
||||
1, 10, 8, -1,
|
||||
1, 12, 10, -1,
|
||||
2, 3, 12, -1,
|
||||
3, 8, 14, -1,
|
||||
3, 14, 12, -1,
|
||||
4, 5, 6, -1,
|
||||
4, 6, 7, -1,
|
||||
4, 7, 15, -1,
|
||||
4, 9, 11, -1,
|
||||
4, 11, 5, -1,
|
||||
4, 15, 9, -1,
|
||||
5, 11, 6, -1,
|
||||
6, 11, 13, -1,
|
||||
6, 13, 15, -1,
|
||||
6, 15, 7, -1,
|
||||
8, 9, 15, -1,
|
||||
8, 10, 11, -1,
|
||||
8, 11, 9, -1,
|
||||
8, 15, 14, -1,
|
||||
10, 12, 11, -1,
|
||||
11, 12, 13, -1,
|
||||
12, 14, 15, -1,
|
||||
12, 15, 13, -1 ]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2013 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2008-2013 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 2004-2015 KiCad Developers, see change_log.txt for contributors.
|
||||
*
|
||||
|
@ -182,7 +182,7 @@ bool SCH_EDIT_FRAME::ProcessCmpToFootprintLinkFile( const wxString& aFullFilenam
|
|||
{
|
||||
reference = value;
|
||||
}
|
||||
else if( buffer.StartsWith( wxT( "IdModule =" ) ) )
|
||||
else if( buffer.StartsWith( wxT( "IdModule" ) ) )
|
||||
{
|
||||
footprint = value;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Mar 9 2015)
|
||||
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -22,23 +22,23 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
wxStaticBoxSizer* optionsSizer;
|
||||
optionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Component") ), wxVERTICAL );
|
||||
|
||||
m_staticTextUnit = new wxStaticText( this, wxID_ANY, _("Unit"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextUnit = new wxStaticText( optionsSizer->GetStaticBox(), wxID_ANY, _("Unit"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextUnit->Wrap( -1 );
|
||||
optionsSizer->Add( m_staticTextUnit, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
wxArrayString unitChoiceChoices;
|
||||
unitChoice = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, unitChoiceChoices, 0 );
|
||||
unitChoice = new wxChoice( optionsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, unitChoiceChoices, 0 );
|
||||
unitChoice->SetSelection( 0 );
|
||||
optionsSizer->Add( unitChoice, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
wxBoxSizer* bSizerUnitsInterchangeable;
|
||||
bSizerUnitsInterchangeable = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
unitsInterchageableText = new wxStaticText( this, wxID_ANY, _("Units are interchangeable:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
unitsInterchageableText = new wxStaticText( optionsSizer->GetStaticBox(), wxID_ANY, _("Units are interchangeable:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
unitsInterchageableText->Wrap( -1 );
|
||||
bSizerUnitsInterchangeable->Add( unitsInterchageableText, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
|
||||
|
||||
unitsInterchageableLabel = new wxStaticText( this, wxID_ANY, _("Yes"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
unitsInterchageableLabel = new wxStaticText( optionsSizer->GetStaticBox(), wxID_ANY, _("Yes"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
unitsInterchageableLabel->Wrap( -1 );
|
||||
bSizerUnitsInterchangeable->Add( unitsInterchageableLabel, 0, wxALL, 5 );
|
||||
|
||||
|
@ -47,7 +47,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
|
||||
wxString orientationRadioBoxChoices[] = { _("0"), _("+90"), _("180"), _("-90") };
|
||||
int orientationRadioBoxNChoices = sizeof( orientationRadioBoxChoices ) / sizeof( wxString );
|
||||
orientationRadioBox = new wxRadioBox( this, wxID_ANY, _("Orientation (Degrees)"), wxDefaultPosition, wxDefaultSize, orientationRadioBoxNChoices, orientationRadioBoxChoices, 1, wxRA_SPECIFY_COLS );
|
||||
orientationRadioBox = new wxRadioBox( optionsSizer->GetStaticBox(), wxID_ANY, _("Orientation (Degrees)"), wxDefaultPosition, wxDefaultSize, orientationRadioBoxNChoices, orientationRadioBoxChoices, 1, wxRA_SPECIFY_COLS );
|
||||
orientationRadioBox->SetSelection( 0 );
|
||||
orientationRadioBox->SetToolTip( _("Select if the component is to be rotated when drawn") );
|
||||
|
||||
|
@ -55,22 +55,21 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
|
||||
wxString mirrorRadioBoxChoices[] = { _("Normal"), _("Mirror ---"), _("Mirror |") };
|
||||
int mirrorRadioBoxNChoices = sizeof( mirrorRadioBoxChoices ) / sizeof( wxString );
|
||||
mirrorRadioBox = new wxRadioBox( this, wxID_ANY, _("Mirror"), wxDefaultPosition, wxDefaultSize, mirrorRadioBoxNChoices, mirrorRadioBoxChoices, 1, wxRA_SPECIFY_COLS );
|
||||
mirrorRadioBox = new wxRadioBox( optionsSizer->GetStaticBox(), wxID_ANY, _("Mirror"), wxDefaultPosition, wxDefaultSize, mirrorRadioBoxNChoices, mirrorRadioBoxChoices, 1, wxRA_SPECIFY_COLS );
|
||||
mirrorRadioBox->SetSelection( 0 );
|
||||
mirrorRadioBox->SetToolTip( _("Pick the graphical transformation to be used when displaying the component, if any") );
|
||||
|
||||
optionsSizer->Add( mirrorRadioBox, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
convertCheckBox = new wxCheckBox( this, wxID_ANY, _("Converted Shape"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
convertCheckBox = new wxCheckBox( optionsSizer->GetStaticBox(), wxID_ANY, _("Converted Shape"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
convertCheckBox->SetToolTip( _("Use the alternate shape of this component.\nFor gates, this is the \"De Morgan\" conversion") );
|
||||
|
||||
optionsSizer->Add( convertCheckBox, 0, wxALL, 5 );
|
||||
|
||||
wxStaticBoxSizer* sbSizerChipName;
|
||||
sbSizerChipName = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Chip Name") ), wxVERTICAL );
|
||||
sbSizerChipName = new wxStaticBoxSizer( new wxStaticBox( optionsSizer->GetStaticBox(), wxID_ANY, _("Chip Name") ), wxVERTICAL );
|
||||
|
||||
chipnameTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
chipnameTextCtrl->SetMaxLength( 32 );
|
||||
chipnameTextCtrl = new wxTextCtrl( sbSizerChipName->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
chipnameTextCtrl->SetToolTip( _("The name of the symbol in the library from which this component came") );
|
||||
|
||||
sbSizerChipName->Add( chipnameTextCtrl, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
|
||||
|
@ -78,10 +77,10 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
wxBoxSizer* bSizerChpinameButt;
|
||||
bSizerChpinameButt = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_buttonTestChipName = new wxButton( this, wxID_ANY, _("Test"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_buttonTestChipName = new wxButton( sbSizerChipName->GetStaticBox(), wxID_ANY, _("Test"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizerChpinameButt->Add( m_buttonTestChipName, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
m_buttonSelectChipName = new wxButton( this, wxID_ANY, _("Select"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_buttonSelectChipName = new wxButton( sbSizerChipName->GetStaticBox(), wxID_ANY, _("Select"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizerChpinameButt->Add( m_buttonSelectChipName, 0, wxTOP|wxBOTTOM, 5 );
|
||||
|
||||
|
||||
|
@ -90,19 +89,19 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
|
||||
optionsSizer->Add( sbSizerChipName, 0, wxEXPAND|wxALL, 5 );
|
||||
|
||||
m_staticTextTimeStamp = new wxStaticText( this, wxID_ANY, _("Timestamp"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextTimeStamp = new wxStaticText( optionsSizer->GetStaticBox(), wxID_ANY, _("Timestamp"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextTimeStamp->Wrap( -1 );
|
||||
optionsSizer->Add( m_staticTextTimeStamp, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_textCtrlTimeStamp = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
|
||||
m_textCtrlTimeStamp = new wxTextCtrl( optionsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
|
||||
m_textCtrlTimeStamp->SetToolTip( _("An unique ID (a time stamp) to identify the component.\nThis is an alternate identifier to the reference.") );
|
||||
|
||||
optionsSizer->Add( m_textCtrlTimeStamp, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||
|
||||
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||
m_staticline1 = new wxStaticLine( optionsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||
optionsSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
|
||||
|
||||
defaultsButton = new wxButton( this, wxID_ANY, _("Reset to Library Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
defaultsButton = new wxButton( optionsSizer->GetStaticBox(), wxID_ANY, _("Reset to Library Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
defaultsButton->SetToolTip( _("Set position and style of fields and component orientation to default lib value.\nFields texts are not modified.") );
|
||||
|
||||
optionsSizer->Add( defaultsButton, 0, wxALL|wxEXPAND, 5 );
|
||||
|
@ -114,24 +113,24 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
fieldsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Fields") ), wxHORIZONTAL );
|
||||
|
||||
wxStaticBoxSizer* gridStaticBoxSizer;
|
||||
gridStaticBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxEmptyString ), wxVERTICAL );
|
||||
gridStaticBoxSizer = new wxStaticBoxSizer( new wxStaticBox( fieldsSizer->GetStaticBox(), wxID_ANY, wxEmptyString ), wxVERTICAL );
|
||||
|
||||
fieldListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES );
|
||||
fieldListCtrl = new wxListCtrl( gridStaticBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES );
|
||||
fieldListCtrl->SetMinSize( wxSize( 220,-1 ) );
|
||||
|
||||
gridStaticBoxSizer->Add( fieldListCtrl, 1, wxALL|wxEXPAND, 8 );
|
||||
|
||||
addFieldButton = new wxButton( this, wxID_ANY, _("Add Field"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
addFieldButton = new wxButton( gridStaticBoxSizer->GetStaticBox(), wxID_ANY, _("Add Field"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
addFieldButton->SetToolTip( _("Add a new custom field") );
|
||||
|
||||
gridStaticBoxSizer->Add( addFieldButton, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
deleteFieldButton = new wxButton( this, wxID_ANY, _("Delete Field"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
deleteFieldButton = new wxButton( gridStaticBoxSizer->GetStaticBox(), wxID_ANY, _("Delete Field"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
deleteFieldButton->SetToolTip( _("Delete one of the optional fields") );
|
||||
|
||||
gridStaticBoxSizer->Add( deleteFieldButton, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
moveUpButton = new wxButton( this, wxID_ANY, _("Move Up"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
moveUpButton = new wxButton( gridStaticBoxSizer->GetStaticBox(), wxID_ANY, _("Move Up"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
moveUpButton->SetToolTip( _("Move the selected optional fields up one position") );
|
||||
|
||||
gridStaticBoxSizer->Add( moveUpButton, 0, wxALL|wxEXPAND, 5 );
|
||||
|
@ -147,13 +146,13 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
|
||||
wxString m_FieldHJustifyCtrlChoices[] = { _("Left"), _("Center"), _("Right") };
|
||||
int m_FieldHJustifyCtrlNChoices = sizeof( m_FieldHJustifyCtrlChoices ) / sizeof( wxString );
|
||||
m_FieldHJustifyCtrl = new wxRadioBox( this, wxID_ANY, _("Horiz. Justify"), wxDefaultPosition, wxDefaultSize, m_FieldHJustifyCtrlNChoices, m_FieldHJustifyCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_FieldHJustifyCtrl = new wxRadioBox( fieldsSizer->GetStaticBox(), wxID_ANY, _("Horiz. Justify"), wxDefaultPosition, wxDefaultSize, m_FieldHJustifyCtrlNChoices, m_FieldHJustifyCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_FieldHJustifyCtrl->SetSelection( 2 );
|
||||
bSizerJustification->Add( m_FieldHJustifyCtrl, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||
|
||||
wxString m_FieldVJustifyCtrlChoices[] = { _("Bottom"), _("Center"), _("Top") };
|
||||
int m_FieldVJustifyCtrlNChoices = sizeof( m_FieldVJustifyCtrlChoices ) / sizeof( wxString );
|
||||
m_FieldVJustifyCtrl = new wxRadioBox( this, wxID_ANY, _("Vert. Justify"), wxDefaultPosition, wxDefaultSize, m_FieldVJustifyCtrlNChoices, m_FieldVJustifyCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_FieldVJustifyCtrl = new wxRadioBox( fieldsSizer->GetStaticBox(), wxID_ANY, _("Vert. Justify"), wxDefaultPosition, wxDefaultSize, m_FieldVJustifyCtrlNChoices, m_FieldVJustifyCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_FieldVJustifyCtrl->SetSelection( 2 );
|
||||
bSizerJustification->Add( m_FieldVJustifyCtrl, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||
|
||||
|
@ -164,14 +163,14 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
bSizerStyle = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
wxStaticBoxSizer* visibilitySizer;
|
||||
visibilitySizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Visibility") ), wxVERTICAL );
|
||||
visibilitySizer = new wxStaticBoxSizer( new wxStaticBox( fieldsSizer->GetStaticBox(), wxID_ANY, _("Visibility") ), wxVERTICAL );
|
||||
|
||||
showCheckBox = new wxCheckBox( this, wxID_ANY, _("Show"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
showCheckBox = new wxCheckBox( visibilitySizer->GetStaticBox(), wxID_ANY, _("Show"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
showCheckBox->SetToolTip( _("Check if you want this field visible") );
|
||||
|
||||
visibilitySizer->Add( showCheckBox, 0, wxALL, 5 );
|
||||
|
||||
rotateCheckBox = new wxCheckBox( this, wxID_ANY, _("Rotate"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
rotateCheckBox = new wxCheckBox( visibilitySizer->GetStaticBox(), wxID_ANY, _("Rotate"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
rotateCheckBox->SetToolTip( _("Check if you want this field's text rotated 90 degrees") );
|
||||
|
||||
visibilitySizer->Add( rotateCheckBox, 0, wxALL, 5 );
|
||||
|
@ -181,7 +180,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
|
||||
wxString m_StyleRadioBoxChoices[] = { _("Normal"), _("Italic"), _("Bold"), _("Bold Italic") };
|
||||
int m_StyleRadioBoxNChoices = sizeof( m_StyleRadioBoxChoices ) / sizeof( wxString );
|
||||
m_StyleRadioBox = new wxRadioBox( this, wxID_ANY, _("Style:"), wxDefaultPosition, wxDefaultSize, m_StyleRadioBoxNChoices, m_StyleRadioBoxChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_StyleRadioBox = new wxRadioBox( fieldsSizer->GetStaticBox(), wxID_ANY, _("Style:"), wxDefaultPosition, wxDefaultSize, m_StyleRadioBoxNChoices, m_StyleRadioBoxChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_StyleRadioBox->SetSelection( 3 );
|
||||
m_StyleRadioBox->SetToolTip( _("The style of the currently selected field's text in the schemati") );
|
||||
|
||||
|
@ -193,27 +192,25 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
wxBoxSizer* fieldNameBoxSizer;
|
||||
fieldNameBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
fieldNameLabel = new wxStaticText( this, wxID_ANY, _("Field Name"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fieldNameLabel = new wxStaticText( fieldsSizer->GetStaticBox(), wxID_ANY, _("Field Name"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fieldNameLabel->Wrap( -1 );
|
||||
fieldNameBoxSizer->Add( fieldNameLabel, 0, wxTOP, 5 );
|
||||
|
||||
fieldNameTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fieldNameTextCtrl->SetMaxLength( 0 );
|
||||
fieldNameTextCtrl = new wxTextCtrl( fieldsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fieldNameTextCtrl->SetToolTip( _("The name of the currently selected field\nSome fixed fields names are not editable") );
|
||||
|
||||
fieldNameBoxSizer->Add( fieldNameTextCtrl, 0, wxBOTTOM|wxEXPAND, 5 );
|
||||
|
||||
fieldValueLabel = new wxStaticText( this, wxID_ANY, _("Field Value"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fieldValueLabel = new wxStaticText( fieldsSizer->GetStaticBox(), wxID_ANY, _("Field Value"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fieldValueLabel->Wrap( -1 );
|
||||
fieldNameBoxSizer->Add( fieldValueLabel, 0, wxALIGN_TOP|wxTOP, 5 );
|
||||
|
||||
fieldValueTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fieldValueTextCtrl->SetMaxLength( 0 );
|
||||
fieldValueTextCtrl = new wxTextCtrl( fieldsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fieldValueTextCtrl->SetToolTip( _("The name of the currently selected field\nSome fixed fields names are not editable") );
|
||||
|
||||
fieldNameBoxSizer->Add( fieldValueTextCtrl, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
m_show_datasheet_button = new wxButton( this, wxID_ANY, _("Show in Browser"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_show_datasheet_button = new wxButton( fieldsSizer->GetStaticBox(), wxID_ANY, _("Show in Browser"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_show_datasheet_button->SetToolTip( _("If your datasheet is an http:// link or a complete file path, then it may show in your browser by pressing this button.") );
|
||||
|
||||
fieldNameBoxSizer->Add( m_show_datasheet_button, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
|
||||
|
@ -227,45 +224,42 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
|
|||
fgSizerPosSize->SetFlexibleDirection( wxBOTH );
|
||||
fgSizerPosSize->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
textSizeLabel = new wxStaticText( this, wxID_ANY, _("Size"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
textSizeLabel = new wxStaticText( fieldsSizer->GetStaticBox(), wxID_ANY, _("Size"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
textSizeLabel->Wrap( -1 );
|
||||
fgSizerPosSize->Add( textSizeLabel, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
textSizeTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
textSizeTextCtrl->SetMaxLength( 0 );
|
||||
textSizeTextCtrl = new wxTextCtrl( fieldsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
textSizeTextCtrl->SetToolTip( _("The size of the currently selected field's text in the schematic") );
|
||||
|
||||
fgSizerPosSize->Add( textSizeTextCtrl, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
m_staticTextUnitSize = new wxStaticText( this, wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextUnitSize = new wxStaticText( fieldsSizer->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextUnitSize->Wrap( -1 );
|
||||
fgSizerPosSize->Add( m_staticTextUnitSize, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
posXLabel = new wxStaticText( this, wxID_ANY, _("PosX"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
posXLabel = new wxStaticText( fieldsSizer->GetStaticBox(), wxID_ANY, _("PosX"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
posXLabel->Wrap( -1 );
|
||||
fgSizerPosSize->Add( posXLabel, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
posXTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
posXTextCtrl->SetMaxLength( 0 );
|
||||
posXTextCtrl = new wxTextCtrl( fieldsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
posXTextCtrl->SetToolTip( _("The X coordinate of the text relative to the component") );
|
||||
|
||||
fgSizerPosSize->Add( posXTextCtrl, 0, wxEXPAND|wxTOP, 5 );
|
||||
|
||||
m_staticTextUnitPosX = new wxStaticText( this, wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextUnitPosX = new wxStaticText( fieldsSizer->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextUnitPosX->Wrap( -1 );
|
||||
fgSizerPosSize->Add( m_staticTextUnitPosX, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
posYLabel = new wxStaticText( this, wxID_ANY, _("PosY"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
posYLabel = new wxStaticText( fieldsSizer->GetStaticBox(), wxID_ANY, _("PosY"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
posYLabel->Wrap( -1 );
|
||||
fgSizerPosSize->Add( posYLabel, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
posYTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
posYTextCtrl->SetMaxLength( 0 );
|
||||
posYTextCtrl = new wxTextCtrl( fieldsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
posYTextCtrl->SetToolTip( _("The Y coordinate of the text relative to the component") );
|
||||
|
||||
fgSizerPosSize->Add( posYTextCtrl, 0, wxEXPAND, 5 );
|
||||
|
||||
m_staticTextUnitPosY = new wxStaticText( this, wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextUnitPosY = new wxStaticText( fieldsSizer->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextUnitPosY->Wrap( -1 );
|
||||
fgSizerPosSize->Add( m_staticTextUnitPosY, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
|
|
@ -777,7 +777,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength">32</property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -2253,11 +2253,11 @@
|
|||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxBOTTOM|wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxBoxSizer" expanded="0">
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">fieldNameBoxSizer</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
|
@ -2380,7 +2380,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -2554,7 +2554,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -2834,7 +2834,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -3091,7 +3091,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -3348,7 +3348,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Mar 9 2015)
|
||||
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
|
|
@ -368,6 +368,7 @@ void SCH_EDIT_FRAME::OnFindReplace( wxFindDialogEvent& aEvent )
|
|||
searchCriteria.SetFlags( aEvent.GetFlags() );
|
||||
searchCriteria.SetFindString( aEvent.GetFindString() );
|
||||
searchCriteria.SetReplaceString( aEvent.GetReplaceString() );
|
||||
m_foundItems.SetReplaceString( aEvent.GetReplaceString() );
|
||||
|
||||
if( IsSearchCacheObsolete( searchCriteria ) )
|
||||
{
|
||||
|
|
|
@ -503,6 +503,12 @@ SEARCH_RESULT SCH_FIND_COLLECTOR::Inspect( EDA_ITEM* aItem, const void* aTestDat
|
|||
}
|
||||
|
||||
|
||||
void SCH_FIND_COLLECTOR::SetReplaceString( const wxString &aReplaceString )
|
||||
{
|
||||
m_findReplaceData.SetReplaceString( aReplaceString );
|
||||
}
|
||||
|
||||
|
||||
void SCH_FIND_COLLECTOR::Collect( SCH_FIND_REPLACE_DATA& aFindReplaceData,
|
||||
SCH_SHEET_PATH* aSheetPath )
|
||||
{
|
||||
|
|
|
@ -352,6 +352,11 @@ public:
|
|||
|
||||
SEARCH_RESULT Inspect( EDA_ITEM* aItem, const void* aTestData = NULL );
|
||||
|
||||
/**
|
||||
* Update the replace string without changing anything else.
|
||||
*/
|
||||
void SetReplaceString( const wxString &aReplaceString );
|
||||
|
||||
/**
|
||||
* Function Collect
|
||||
* scans \a aSheetPath using this class's Inspector method for items matching
|
||||
|
|
|
@ -29,4 +29,4 @@ Usage
|
|||
awk -f fontconv.awk symbol.lib font.lib charlist.txt >newstroke_font.h
|
||||
|
||||
|
||||
Released under CC-BY licence.
|
||||
Released under CC0 licence.
|
||||
|
|
|
@ -29,11 +29,7 @@
|
|||
#include <hashtables.h>
|
||||
#include <kiway_player.h>
|
||||
|
||||
#if wxMINOR_VERSION == 8 && defined(__WXGTK__)
|
||||
#define DLGSHIM_USE_SETFOCUS 1
|
||||
#else
|
||||
#define DLGSHIM_USE_SETFOCUS 0
|
||||
#endif
|
||||
#define DLGSHIM_USE_SETFOCUS 0
|
||||
|
||||
class WDO_ENABLE_DISABLE;
|
||||
class EVENT_LOOP;
|
||||
|
@ -41,13 +37,8 @@ class EVENT_LOOP;
|
|||
// These macros are for DIALOG_SHIM only, NOT for KIWAY_PLAYER. KIWAY_PLAYER
|
||||
// has its own support for quasi modal and its platform specific issues are different
|
||||
// than for a wxDialog.
|
||||
#if wxCHECK_VERSION( 3, 0, 0 )
|
||||
#define SHOWQUASIMODAL ShowQuasiModal
|
||||
#define ENDQUASIMODAL EndQuasiModal
|
||||
#else
|
||||
#define SHOWQUASIMODAL ShowModal
|
||||
#define ENDQUASIMODAL EndModal
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
|
@ -84,11 +75,6 @@ public:
|
|||
|
||||
protected:
|
||||
|
||||
#if !wxCHECK_VERSION( 2, 9, 4 )
|
||||
wxWindow* CheckIfCanBeUsedAsParent( wxWindow* parent ) const;
|
||||
wxWindow* GetParentForModalDialog( wxWindow *parent, long style ) const;
|
||||
#endif
|
||||
|
||||
std::string m_hash_key; // alternate for class_map when classname re-used.
|
||||
|
||||
// variables for quasi-modal behavior support, only used by a few derivatives.
|
||||
|
|
|
@ -68,7 +68,8 @@ public:
|
|||
m_nickname( aNickname ),
|
||||
m_fpname( aFootprintName ),
|
||||
m_num( 0 ),
|
||||
m_pad_count( 0 )
|
||||
m_pad_count( 0 ),
|
||||
m_unique_pad_count( 0 )
|
||||
{
|
||||
#if !USE_FPI_LAZY
|
||||
load();
|
||||
|
@ -93,6 +94,12 @@ public:
|
|||
return m_pad_count;
|
||||
}
|
||||
|
||||
unsigned GetUniquePadCount()
|
||||
{
|
||||
ensure_loaded();
|
||||
return m_unique_pad_count;
|
||||
}
|
||||
|
||||
int GetOrderNum()
|
||||
{
|
||||
ensure_loaded();
|
||||
|
@ -121,16 +128,17 @@ private:
|
|||
/// lazily load stuff not filled in by constructor. This may throw IO_ERRORS.
|
||||
void load();
|
||||
|
||||
FOOTPRINT_LIST* m_owner; ///< provides access to FP_LIB_TABLE
|
||||
FOOTPRINT_LIST* m_owner; ///< provides access to FP_LIB_TABLE
|
||||
|
||||
bool m_loaded;
|
||||
|
||||
wxString m_nickname; ///< library as known in FP_LIB_TABLE
|
||||
wxString m_fpname; ///< Module name.
|
||||
int m_num; ///< Order number in the display list.
|
||||
int m_pad_count; ///< Number of pads
|
||||
wxString m_doc; ///< Footprint description.
|
||||
wxString m_keywords; ///< Footprint keywords.
|
||||
wxString m_nickname; ///< library as known in FP_LIB_TABLE
|
||||
wxString m_fpname; ///< Module name.
|
||||
int m_num; ///< Order number in the display list.
|
||||
int m_pad_count; ///< Number of pads
|
||||
int m_unique_pad_count; ///< Number of unique pads
|
||||
wxString m_doc; ///< Footprint description.
|
||||
wxString m_keywords; ///< Footprint keywords.
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -88,11 +88,8 @@ private:
|
|||
|
||||
class KIWAY_EXPRESS;
|
||||
|
||||
#if wxCHECK_VERSION( 2, 9, 4 )
|
||||
#define WX_EVENT_LOOP wxGUIEventLoop
|
||||
#else
|
||||
#define WX_EVENT_LOOP wxEventLoop
|
||||
#endif
|
||||
#define WX_EVENT_LOOP wxGUIEventLoop
|
||||
|
||||
|
||||
class WX_EVENT_LOOP;
|
||||
|
||||
|
|
|
@ -77,11 +77,7 @@ static inline wxString FROM_UTF8( const char* cstring )
|
|||
*/
|
||||
static inline const wxChar* GetChars( const wxString& s )
|
||||
{
|
||||
#if wxCHECK_VERSION( 2, 9, 0 )
|
||||
return (const wxChar*) s.c_str();
|
||||
#else
|
||||
return s.GetData();
|
||||
#endif
|
||||
}
|
||||
|
||||
/// # of elements in an array
|
||||
|
|
|
@ -1105,9 +1105,8 @@ public:
|
|||
* The ratsnest and pad list are recalculated
|
||||
* @param aModule = footprint to delete
|
||||
* @param aDC = currentDevice Context. if NULL: do not redraw new ratsnest
|
||||
* @param aAskBeforeDeleting : if true: ask for confirmation before deleting
|
||||
*/
|
||||
bool Delete_Module( MODULE* aModule, wxDC* aDC, bool aAskBeforeDeleting );
|
||||
bool Delete_Module( MODULE* aModule, wxDC* aDC );
|
||||
|
||||
/**
|
||||
* Function Change_Side_Module
|
||||
|
|
|
@ -34,9 +34,6 @@
|
|||
|
||||
#include <wx/xml/xml.h>
|
||||
|
||||
#if !wxCHECK_VERSION( 2, 9, 0 )
|
||||
#define wxXmlAttribute wxXmlProperty
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Class XNODE
|
||||
|
@ -98,35 +95,6 @@ public:
|
|||
*/
|
||||
virtual void FormatContents( OUTPUTFORMATTER* out, int nestLevel ) throw( IO_ERROR );
|
||||
|
||||
#if !wxCHECK_VERSION( 2, 9, 0 )
|
||||
// The following functions did not appear in the base class until recently.
|
||||
// Overload them even if they are present in base class, just to make sure
|
||||
// they are present in any older base class implementation.
|
||||
//-----<overloads>---------------------------------------------------------
|
||||
|
||||
wxString GetAttribute( const wxString& attrName, const wxString& defaultVal ) const
|
||||
{
|
||||
return GetPropVal( attrName, defaultVal );
|
||||
}
|
||||
bool GetAttribute( const wxString& attrName, wxString *value ) const
|
||||
{
|
||||
return GetPropVal( attrName, value );
|
||||
}
|
||||
void AddAttribute( const wxString& attrName, const wxString& value )
|
||||
{
|
||||
AddProperty( attrName, value );
|
||||
}
|
||||
bool DeleteAttribute( const wxString& attrName )
|
||||
{
|
||||
return DeleteProperty( attrName );
|
||||
}
|
||||
wxXmlAttribute* GetAttributes() const
|
||||
{
|
||||
return GetProperties();
|
||||
}
|
||||
|
||||
//-----</overloads>--------------------------------------------------------
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // XATTR_H_
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2012 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2013 CERN (www.cern.ch)
|
||||
* Copyright (C) 2004-2015 KiCad Developers, see change_log.txt for contributors.
|
||||
*
|
||||
|
@ -249,7 +249,17 @@ void KICAD_MANAGER_FRAME::TERMINATE_HANDLER::OnTerminate( int pid, int status )
|
|||
wxString msg = wxString::Format( _( "%s closed [pid=%d]\n" ),
|
||||
GetChars( appName ), pid );
|
||||
|
||||
( (KICAD_MANAGER_FRAME*) Pgm().App().GetTopWindow() )->PrintMsg( msg );
|
||||
wxWindow* window = wxWindow::FindWindowByName( KICAD_MANAGER_FRAME_NAME );
|
||||
|
||||
if( window ) // Should always happen.
|
||||
{
|
||||
// Be sure the kicad frame manager is found
|
||||
// This dynamic cast is not really mandatory, but ...
|
||||
KICAD_MANAGER_FRAME* frame = dynamic_cast<KICAD_MANAGER_FRAME*> (window);
|
||||
|
||||
if( frame )
|
||||
frame->PrintMsg( msg );
|
||||
}
|
||||
|
||||
delete this;
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* This program source code file is part of KICAD, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2011 jean-pierre.charras
|
||||
* Copyright (C) 2011 Kicad Developers, see change_log.txt for contributors.
|
||||
* Copyright (C) 2015 jean-pierre.charras
|
||||
* Copyright (C) 2015 Kicad Developers, see change_log.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
|
||||
|
@ -137,5 +137,8 @@ void PCB_CALCULATOR_FRAME::BoardClassesUpdateData( double aUnitScale )
|
|||
txt = NOVAL;
|
||||
m_gridClassesValuesDisplay->SetCellValue(4, ii, txt );
|
||||
}
|
||||
|
||||
m_gridClassesValuesDisplay->SetRowLabelSize( wxGRID_AUTOSIZE );
|
||||
m_gridClassesValuesDisplay->AutoSize();
|
||||
}
|
||||
|
||||
|
|
|
@ -121,10 +121,13 @@ void PCB_CALCULATOR_FRAME::ElectricalSpacingUpdateData( double aUnitScale )
|
|||
wxString txt;
|
||||
double voltage = 500.0; // to calculate values at V > 500V
|
||||
txt = m_ElectricalSpacingVoltage->GetValue();
|
||||
|
||||
if( ! txt.IsEmpty() )
|
||||
voltage = DoubleFromString(txt);
|
||||
|
||||
if( voltage < 500.0 )
|
||||
voltage = 500.0;
|
||||
|
||||
txt.Printf( wxT( "%g" ), voltage );
|
||||
m_ElectricalSpacingVoltage->SetValue( txt );
|
||||
|
||||
|
@ -145,4 +148,6 @@ void PCB_CALCULATOR_FRAME::ElectricalSpacingUpdateData( double aUnitScale )
|
|||
txt.Printf( wxT( "%g" ), spacing / aUnitScale );
|
||||
m_gridElectricalSpacingValues->SetCellValue( CLASS_COUNT-1, jj, txt );
|
||||
}
|
||||
|
||||
m_gridElectricalSpacingValues->SetRowLabelSize( wxGRID_AUTOSIZE );
|
||||
}
|
||||
|
|
|
@ -717,6 +717,39 @@ unsigned MODULE::GetPadCount( INCLUDE_NPTH_T aIncludeNPTH ) const
|
|||
}
|
||||
|
||||
|
||||
unsigned MODULE::GetUniquePadCount( INCLUDE_NPTH_T aIncludeNPTH ) const
|
||||
{
|
||||
std::set<wxUint32> usedNames;
|
||||
|
||||
// Create a set of used pad numbers
|
||||
for( D_PAD* pad = Pads(); pad; pad = pad->Next() )
|
||||
{
|
||||
// Skip pads not on copper layers (used to build complex
|
||||
// solder paste shapes for instance)
|
||||
if( ( pad->GetLayerSet() & LSET::AllCuMask() ).none() )
|
||||
continue;
|
||||
|
||||
// Skip pads with no name, because they are usually "mechanical"
|
||||
// pads, not "electrical" pads
|
||||
if( pad->GetPadName().IsEmpty() )
|
||||
continue;
|
||||
|
||||
if( !aIncludeNPTH )
|
||||
{
|
||||
// skip NPTH
|
||||
if( pad->GetAttribute() == PAD_ATTRIB_HOLE_NOT_PLATED )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
usedNames.insert( pad->GetPackedPadName() );
|
||||
}
|
||||
|
||||
return usedNames.size();
|
||||
}
|
||||
|
||||
|
||||
void MODULE::Add3DModel( S3D_MASTER* a3DModel )
|
||||
{
|
||||
a3DModel->SetParent( this );
|
||||
|
|
|
@ -496,6 +496,20 @@ public:
|
|||
*/
|
||||
unsigned GetPadCount( INCLUDE_NPTH_T aIncludeNPTH = INCLUDE_NPTH_T( INCLUDE_NPTH ) ) const;
|
||||
|
||||
/**
|
||||
* GetUniquePadCount
|
||||
* returns the number of unique pads.
|
||||
* A complex pad can be built with many pads having the same pad name
|
||||
* to create a complex shape or fragmented solder paste areas.
|
||||
*
|
||||
* GetUniquePadCount calculate the count of not blank pad names
|
||||
*
|
||||
* @param aIncludeNPTH includes non-plated through holes when true. Does not include
|
||||
* non-plated through holes when false.
|
||||
* @return the number of unique pads according to \a aIncludeNPTH.
|
||||
*/
|
||||
unsigned GetUniquePadCount( INCLUDE_NPTH_T aIncludeNPTH = INCLUDE_NPTH_T( INCLUDE_NPTH ) ) const;
|
||||
|
||||
/**
|
||||
* Function GetNextPadName
|
||||
* returns the next available pad name in the module
|
||||
|
|
|
@ -105,9 +105,27 @@ public:
|
|||
|
||||
MODULE* GetParent() const { return (MODULE*) m_Parent; }
|
||||
|
||||
/**
|
||||
* Set the pad name (sometimes called pad number, although
|
||||
* it can be an array ref like AA12
|
||||
* the pad name is limited to 4 ASCII chars
|
||||
*/
|
||||
void SetPadName( const wxString& name ); // Change pad name
|
||||
|
||||
/**
|
||||
* @return the pad name
|
||||
* the pad name is limited to 4 ASCII chars
|
||||
*/
|
||||
const wxString GetPadName() const;
|
||||
|
||||
/**
|
||||
* @return the pad name in a wxUint32 which is possible
|
||||
* because the pad name is limited to 4 ASCII chars
|
||||
* The packed pad name should be used only to compare 2
|
||||
* pad names, not to try to print this name
|
||||
*/
|
||||
const wxUint32 GetPackedPadName() const { return m_NumPadName; }
|
||||
|
||||
/*!
|
||||
* Function IncrementItemReference
|
||||
* Implementation of the generic "reference" incrementing interface
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Nov 6 2013)
|
||||
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -60,41 +60,41 @@ DIALOG_COPPER_ZONE_BASE::DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID i
|
|||
wxStaticBoxSizer* m_NetSortOptSizer;
|
||||
m_NetSortOptSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Net Filtering") ), wxVERTICAL );
|
||||
|
||||
m_staticText16 = new wxStaticText( this, wxID_ANY, _("Display:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText16 = new wxStaticText( m_NetSortOptSizer->GetStaticBox(), wxID_ANY, _("Display:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText16->Wrap( -1 );
|
||||
m_NetSortOptSizer->Add( m_staticText16, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||
|
||||
wxString m_NetDisplayOptionChoices[] = { _("Show all (alphabetical)"), _("Show all (pad count)"), _("Filtered (alphabetical)"), _("Filtered (pad count)") };
|
||||
int m_NetDisplayOptionNChoices = sizeof( m_NetDisplayOptionChoices ) / sizeof( wxString );
|
||||
m_NetDisplayOption = new wxChoice( this, ID_M_NETDISPLAYOPTION, wxDefaultPosition, wxDefaultSize, m_NetDisplayOptionNChoices, m_NetDisplayOptionChoices, 0 );
|
||||
m_NetDisplayOption = new wxChoice( m_NetSortOptSizer->GetStaticBox(), ID_M_NETDISPLAYOPTION, wxDefaultPosition, wxDefaultSize, m_NetDisplayOptionNChoices, m_NetDisplayOptionChoices, 0 );
|
||||
m_NetDisplayOption->SetSelection( 0 );
|
||||
m_NetSortOptSizer->Add( m_NetDisplayOption, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
m_staticText5 = new wxStaticText( this, wxID_ANY, _("Hidden net filter:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText5 = new wxStaticText( m_NetSortOptSizer->GetStaticBox(), wxID_ANY, _("Hidden net filter:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText5->Wrap( -1 );
|
||||
m_NetSortOptSizer->Add( m_staticText5, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_DoNotShowNetNameFilter = new wxTextCtrl( this, ID_TEXTCTRL_NETNAMES_FILTER, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
|
||||
m_DoNotShowNetNameFilter = new wxTextCtrl( m_NetSortOptSizer->GetStaticBox(), ID_TEXTCTRL_NETNAMES_FILTER, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
|
||||
m_DoNotShowNetNameFilter->SetMaxLength( 0 );
|
||||
m_DoNotShowNetNameFilter->SetToolTip( _("Pattern to filter net names in filtered list.\nNet names matching this pattern are not displayed.") );
|
||||
|
||||
m_NetSortOptSizer->Add( m_DoNotShowNetNameFilter, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_staticText51 = new wxStaticText( this, wxID_ANY, _("Visible net filter:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText51 = new wxStaticText( m_NetSortOptSizer->GetStaticBox(), wxID_ANY, _("Visible net filter:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText51->Wrap( -1 );
|
||||
m_NetSortOptSizer->Add( m_staticText51, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_ShowNetNameFilter = new wxTextCtrl( this, ID_TEXTCTRL_NETNAMES_FILTER, _("*"), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
|
||||
m_ShowNetNameFilter = new wxTextCtrl( m_NetSortOptSizer->GetStaticBox(), ID_TEXTCTRL_NETNAMES_FILTER, _("*"), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
|
||||
m_ShowNetNameFilter->SetMaxLength( 0 );
|
||||
m_ShowNetNameFilter->SetToolTip( _("Pattern to filter net names in filtered list.\nOnly net names matching this pattern are displayed.") );
|
||||
|
||||
m_NetSortOptSizer->Add( m_ShowNetNameFilter, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||
|
||||
m_buttonRunFilter = new wxButton( this, wxID_APPLY_FILTERS, _("Apply Filters"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_buttonRunFilter = new wxButton( m_NetSortOptSizer->GetStaticBox(), wxID_APPLY_FILTERS, _("Apply Filters"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_NetSortOptSizer->Add( m_buttonRunFilter, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
|
||||
m_OptionsBoxSizer->Add( m_NetSortOptSizer, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_OptionsBoxSizer->Add( m_NetSortOptSizer, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
m_MainBoxSizer->Add( m_OptionsBoxSizer, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
@ -105,39 +105,39 @@ DIALOG_COPPER_ZONE_BASE::DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID i
|
|||
wxBoxSizer* bSizerSettings;
|
||||
bSizerSettings = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_ClearanceValueTitle = new wxStaticText( this, wxID_ANY, _("Clearance"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ClearanceValueTitle = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Clearance"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ClearanceValueTitle->Wrap( -1 );
|
||||
bSizerSettings->Add( m_ClearanceValueTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_ZoneClearanceCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ZoneClearanceCtrl = new wxTextCtrl( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ZoneClearanceCtrl->SetMaxLength( 0 );
|
||||
bSizerSettings->Add( m_ZoneClearanceCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_MinThicknessValueTitle = new wxStaticText( this, wxID_ANY, _("Minimum width"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_MinThicknessValueTitle = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Minimum width"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_MinThicknessValueTitle->Wrap( -1 );
|
||||
m_MinThicknessValueTitle->SetToolTip( _("Minimun thickness of filled areas.") );
|
||||
|
||||
bSizerSettings->Add( m_MinThicknessValueTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
bSizerSettings->Add( m_MinThicknessValueTitle, 0, wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_ZoneMinThicknessCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ZoneMinThicknessCtrl = new wxTextCtrl( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ZoneMinThicknessCtrl->SetMaxLength( 0 );
|
||||
bSizerSettings->Add( m_ZoneMinThicknessCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_staticText151 = new wxStaticText( this, wxID_ANY, _("Corner smoothing:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText151 = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Corner smoothing:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText151->Wrap( -1 );
|
||||
bSizerSettings->Add( m_staticText151, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||
|
||||
wxString m_cornerSmoothingChoiceChoices[] = { _("None"), _("Chamfer"), _("Fillet") };
|
||||
int m_cornerSmoothingChoiceNChoices = sizeof( m_cornerSmoothingChoiceChoices ) / sizeof( wxString );
|
||||
m_cornerSmoothingChoice = new wxChoice( this, ID_CORNER_SMOOTHING, wxDefaultPosition, wxDefaultSize, m_cornerSmoothingChoiceNChoices, m_cornerSmoothingChoiceChoices, 0 );
|
||||
m_cornerSmoothingChoice = new wxChoice( m_ExportableSetupSizer->GetStaticBox(), ID_CORNER_SMOOTHING, wxDefaultPosition, wxDefaultSize, m_cornerSmoothingChoiceNChoices, m_cornerSmoothingChoiceChoices, 0 );
|
||||
m_cornerSmoothingChoice->SetSelection( 0 );
|
||||
bSizerSettings->Add( m_cornerSmoothingChoice, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
m_cornerSmoothingTitle = new wxStaticText( this, wxID_ANY, _("Chamfer distance (mm):"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cornerSmoothingTitle = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Chamfer distance (mm):"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cornerSmoothingTitle->Wrap( -1 );
|
||||
bSizerSettings->Add( m_cornerSmoothingTitle, 0, wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cornerSmoothingCtrl = new wxTextCtrl( this, ID_M_CORNERSMOOTHINGCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cornerSmoothingCtrl = new wxTextCtrl( m_ExportableSetupSizer->GetStaticBox(), ID_M_CORNERSMOOTHINGCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cornerSmoothingCtrl->SetMaxLength( 0 );
|
||||
bSizerSettings->Add( m_cornerSmoothingCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
|
@ -147,34 +147,34 @@ DIALOG_COPPER_ZONE_BASE::DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID i
|
|||
wxBoxSizer* bSizerPadsConnection;
|
||||
bSizerPadsConnection = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_staticText13 = new wxStaticText( this, wxID_ANY, _("Pad connection:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText13 = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Pad connection:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText13->Wrap( -1 );
|
||||
bSizerPadsConnection->Add( m_staticText13, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||
|
||||
wxString m_PadInZoneOptChoices[] = { _("Solid"), _("Thermal relief"), _("THT thermal"), _("None") };
|
||||
int m_PadInZoneOptNChoices = sizeof( m_PadInZoneOptChoices ) / sizeof( wxString );
|
||||
m_PadInZoneOpt = new wxChoice( this, ID_M_PADINZONEOPT, wxDefaultPosition, wxDefaultSize, m_PadInZoneOptNChoices, m_PadInZoneOptChoices, 0 );
|
||||
m_PadInZoneOpt = new wxChoice( m_ExportableSetupSizer->GetStaticBox(), ID_M_PADINZONEOPT, wxDefaultPosition, wxDefaultSize, m_PadInZoneOptNChoices, m_PadInZoneOptChoices, 0 );
|
||||
m_PadInZoneOpt->SetSelection( 0 );
|
||||
bSizerPadsConnection->Add( m_PadInZoneOpt, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
wxStaticBoxSizer* m_ThermalShapesParamsSizer;
|
||||
m_ThermalShapesParamsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Thermal Reliefs") ), wxVERTICAL );
|
||||
m_ThermalShapesParamsSizer = new wxStaticBoxSizer( new wxStaticBox( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Thermal Reliefs") ), wxVERTICAL );
|
||||
|
||||
m_AntipadSizeText = new wxStaticText( this, wxID_ANY, _("Antipad clearance"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_AntipadSizeText = new wxStaticText( m_ThermalShapesParamsSizer->GetStaticBox(), wxID_ANY, _("Antipad clearance"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_AntipadSizeText->Wrap( -1 );
|
||||
m_ThermalShapesParamsSizer->Add( m_AntipadSizeText, 0, wxTOP|wxRIGHT, 5 );
|
||||
|
||||
m_AntipadSizeValue = new wxTextCtrl( this, wxID_ANTIPAD_SIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_AntipadSizeValue = new wxTextCtrl( m_ThermalShapesParamsSizer->GetStaticBox(), wxID_ANTIPAD_SIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_AntipadSizeValue->SetMaxLength( 0 );
|
||||
m_AntipadSizeValue->SetToolTip( _("Clearance between pads in the same net and filled areas.") );
|
||||
|
||||
m_ThermalShapesParamsSizer->Add( m_AntipadSizeValue, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
m_CopperBridgeWidthText = new wxStaticText( this, wxID_ANY, _("Spoke width"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_CopperBridgeWidthText = new wxStaticText( m_ThermalShapesParamsSizer->GetStaticBox(), wxID_ANY, _("Spoke width"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_CopperBridgeWidthText->Wrap( -1 );
|
||||
m_ThermalShapesParamsSizer->Add( m_CopperBridgeWidthText, 0, wxTOP|wxRIGHT, 5 );
|
||||
|
||||
m_CopperWidthValue = new wxTextCtrl( this, wxID_COPPER_BRIDGE_VALUE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_CopperWidthValue = new wxTextCtrl( m_ThermalShapesParamsSizer->GetStaticBox(), wxID_COPPER_BRIDGE_VALUE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_CopperWidthValue->SetMaxLength( 0 );
|
||||
m_CopperWidthValue->SetToolTip( _("Width of copper in thermal reliefs.") );
|
||||
|
||||
|
@ -189,32 +189,32 @@ DIALOG_COPPER_ZONE_BASE::DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID i
|
|||
wxBoxSizer* m_MiddleBox;
|
||||
m_MiddleBox = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_staticText171 = new wxStaticText( this, wxID_ANY, _("Priority level:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText171 = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Priority level:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText171->Wrap( -1 );
|
||||
m_staticText171->SetToolTip( _("On each copper layer, zones are filled by priority order.\nSo when a zone is inside an other zone:\n* If its priority is highter: its outlines are removed from the other layer.\n* If its priority is equal: a DRC error is set.") );
|
||||
|
||||
m_MiddleBox->Add( m_staticText171, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_PriorityLevelCtrl = new wxSpinCtrl( this, ID_M_PRIORITYLEVELCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 0 );
|
||||
m_PriorityLevelCtrl = new wxSpinCtrl( m_ExportableSetupSizer->GetStaticBox(), ID_M_PRIORITYLEVELCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 0 );
|
||||
m_MiddleBox->Add( m_PriorityLevelCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_staticText11 = new wxStaticText( this, wxID_ANY, _("Fill mode:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText11 = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Fill mode:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText11->Wrap( -1 );
|
||||
m_MiddleBox->Add( m_staticText11, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||
|
||||
wxString m_FillModeCtrlChoices[] = { _("Polygon"), _("Segment") };
|
||||
int m_FillModeCtrlNChoices = sizeof( m_FillModeCtrlChoices ) / sizeof( wxString );
|
||||
m_FillModeCtrl = new wxChoice( this, ID_M_FILLMODECTRL, wxDefaultPosition, wxDefaultSize, m_FillModeCtrlNChoices, m_FillModeCtrlChoices, 0 );
|
||||
m_FillModeCtrl = new wxChoice( m_ExportableSetupSizer->GetStaticBox(), ID_M_FILLMODECTRL, wxDefaultPosition, wxDefaultSize, m_FillModeCtrlNChoices, m_FillModeCtrlChoices, 0 );
|
||||
m_FillModeCtrl->SetSelection( 0 );
|
||||
m_MiddleBox->Add( m_FillModeCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
m_staticText12 = new wxStaticText( this, wxID_ANY, _("Segments / 360 deg:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText12 = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Segments / 360 deg:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText12->Wrap( -1 );
|
||||
m_MiddleBox->Add( m_staticText12, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||
|
||||
wxString m_ArcApproximationOptChoices[] = { _("16"), _("32") };
|
||||
int m_ArcApproximationOptNChoices = sizeof( m_ArcApproximationOptChoices ) / sizeof( wxString );
|
||||
m_ArcApproximationOpt = new wxChoice( this, ID_M_ARCAPPROXIMATIONOPT, wxDefaultPosition, wxDefaultSize, m_ArcApproximationOptNChoices, m_ArcApproximationOptChoices, 0 );
|
||||
m_ArcApproximationOpt = new wxChoice( m_ExportableSetupSizer->GetStaticBox(), ID_M_ARCAPPROXIMATIONOPT, wxDefaultPosition, wxDefaultSize, m_ArcApproximationOptNChoices, m_ArcApproximationOptChoices, 0 );
|
||||
m_ArcApproximationOpt->SetSelection( 0 );
|
||||
m_MiddleBox->Add( m_ArcApproximationOpt, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
|
@ -224,23 +224,23 @@ DIALOG_COPPER_ZONE_BASE::DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID i
|
|||
wxBoxSizer* bSizerLowerRight;
|
||||
bSizerLowerRight = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_staticText14 = new wxStaticText( this, wxID_ANY, _("Outline slope:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText14 = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Outline slope:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText14->Wrap( -1 );
|
||||
bSizerLowerRight->Add( m_staticText14, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||
|
||||
wxString m_OrientEdgesOptChoices[] = { _("Arbitrary"), _("H, V, and 45 deg only") };
|
||||
int m_OrientEdgesOptNChoices = sizeof( m_OrientEdgesOptChoices ) / sizeof( wxString );
|
||||
m_OrientEdgesOpt = new wxChoice( this, ID_M_ORIENTEDGESOPT, wxDefaultPosition, wxDefaultSize, m_OrientEdgesOptNChoices, m_OrientEdgesOptChoices, 0 );
|
||||
m_OrientEdgesOpt = new wxChoice( m_ExportableSetupSizer->GetStaticBox(), ID_M_ORIENTEDGESOPT, wxDefaultPosition, wxDefaultSize, m_OrientEdgesOptNChoices, m_OrientEdgesOptChoices, 0 );
|
||||
m_OrientEdgesOpt->SetSelection( 0 );
|
||||
bSizerLowerRight->Add( m_OrientEdgesOpt, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
m_staticText15 = new wxStaticText( this, wxID_ANY, _("Outline style:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText15 = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Outline style:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText15->Wrap( -1 );
|
||||
bSizerLowerRight->Add( m_staticText15, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||
|
||||
wxString m_OutlineAppearanceCtrlChoices[] = { _("Line"), _("Hatched"), _("Fully hatched") };
|
||||
int m_OutlineAppearanceCtrlNChoices = sizeof( m_OutlineAppearanceCtrlChoices ) / sizeof( wxString );
|
||||
m_OutlineAppearanceCtrl = new wxChoice( this, ID_M_OUTLINEAPPEARANCECTRL, wxDefaultPosition, wxDefaultSize, m_OutlineAppearanceCtrlNChoices, m_OutlineAppearanceCtrlChoices, 0 );
|
||||
m_OutlineAppearanceCtrl = new wxChoice( m_ExportableSetupSizer->GetStaticBox(), ID_M_OUTLINEAPPEARANCECTRL, wxDefaultPosition, wxDefaultSize, m_OutlineAppearanceCtrlNChoices, m_OutlineAppearanceCtrlChoices, 0 );
|
||||
m_OutlineAppearanceCtrl->SetSelection( 0 );
|
||||
bSizerLowerRight->Add( m_OutlineAppearanceCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<wxFormBuilder_Project>
|
||||
<FileVersion major="1" minor="11" />
|
||||
<FileVersion major="1" minor="13" />
|
||||
<object class="Project" expanded="1">
|
||||
<property name="class_decoration"></property>
|
||||
<property name="code_generation">C++</property>
|
||||
|
@ -44,7 +44,7 @@
|
|||
<property name="minimum_size"></property>
|
||||
<property name="name">DIALOG_COPPER_ZONE_BASE</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">567,443</property>
|
||||
<property name="size">567,507</property>
|
||||
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
||||
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
|
||||
<property name="title">Copper Zone Properties</property>
|
||||
|
@ -485,7 +485,7 @@
|
|||
</object>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
|
||||
<property name="flag">wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticBoxSizer" expanded="0">
|
||||
<property name="id">wxID_ANY</property>
|
||||
|
@ -1303,7 +1303,7 @@
|
|||
</object>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
|
||||
<property name="flag">wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="0">
|
||||
<property name="BottomDockable">1</property>
|
||||
|
@ -2542,6 +2542,7 @@
|
|||
<event name="OnSize"></event>
|
||||
<event name="OnSpinCtrl"></event>
|
||||
<event name="OnSpinCtrlText"></event>
|
||||
<event name="OnTextEnter"></event>
|
||||
<event name="OnUpdateUI"></event>
|
||||
</object>
|
||||
</object>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Nov 6 2013)
|
||||
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -127,7 +127,7 @@ class DIALOG_COPPER_ZONE_BASE : public DIALOG_SHIM
|
|||
|
||||
public:
|
||||
|
||||
DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID id = ID_DIALOG_COPPER_ZONE_BASE, const wxString& title = _("Copper Zone Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 567,443 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID id = ID_DIALOG_COPPER_ZONE_BASE, const wxString& title = _("Copper Zone Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 567,507 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
~DIALOG_COPPER_ZONE_BASE();
|
||||
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Mar 9 2015)
|
||||
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -167,7 +167,7 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID
|
|||
m_gridPanel->SetSizer( bSizer2 );
|
||||
m_gridPanel->Layout();
|
||||
bSizer2->Fit( m_gridPanel );
|
||||
m_gridTypeNotebook->AddPage( m_gridPanel, _("Grid"), true );
|
||||
m_gridTypeNotebook->AddPage( m_gridPanel, _("Grid Array"), true );
|
||||
m_circularPanel = new wxPanel( m_gridTypeNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||
wxBoxSizer* bSizer4;
|
||||
bSizer4 = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
@ -278,7 +278,7 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID
|
|||
m_circularPanel->SetSizer( bSizer4 );
|
||||
m_circularPanel->Layout();
|
||||
bSizer4->Fit( m_circularPanel );
|
||||
m_gridTypeNotebook->AddPage( m_circularPanel, _("Circular"), false );
|
||||
m_gridTypeNotebook->AddPage( m_circularPanel, _("Circular Array"), false );
|
||||
|
||||
bMainSizer->Add( m_gridTypeNotebook, 1, wxEXPAND | wxALL, 5 );
|
||||
|
||||
|
|
|
@ -177,7 +177,7 @@
|
|||
<event name="OnUpdateUI"></event>
|
||||
<object class="notebookpage" expanded="1">
|
||||
<property name="bitmap">Load From File; </property>
|
||||
<property name="label">Grid</property>
|
||||
<property name="label">Grid Array</property>
|
||||
<property name="select">1</property>
|
||||
<object class="wxPanel" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
|
@ -2962,7 +2962,7 @@
|
|||
</object>
|
||||
<object class="notebookpage" expanded="1">
|
||||
<property name="bitmap"></property>
|
||||
<property name="label">Circular</property>
|
||||
<property name="label">Circular Array</property>
|
||||
<property name="select">0</property>
|
||||
<object class="wxPanel" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Mar 9 2015)
|
||||
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2004-2009 Jean-Pierre Charras, jean-pierre.charras@gpisa-lab.inpg.fr
|
||||
* Copyright (C) 2004-2009 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2009 Dick Hollenbeck, dick@softplc.com
|
||||
* Copyright (C) 2009-2015 KiCad Developers, see change_log.txt for contributors.
|
||||
*
|
||||
|
@ -276,12 +276,17 @@ void DIALOG_DESIGN_RULES::InitDimensionsLists()
|
|||
m_gridViaSizeList->AutoSizeColumns( true );
|
||||
m_gridTrackWidthList->SetColMinimalWidth( 0, 150 );
|
||||
m_gridTrackWidthList->AutoSizeColumns( true );
|
||||
m_gridViaSizeList->SetColMinimalWidth( 1, 150 );
|
||||
|
||||
// Fill cells with actual values:
|
||||
m_gridViaSizeList->SetCellValue( 0, 0, wxEmptyString );
|
||||
m_gridViaSizeList->SetCellValue( 0, 1, wxEmptyString );
|
||||
m_gridTrackWidthList->SetCellValue( 0, 0, wxEmptyString );
|
||||
|
||||
// Give a correct size to row labels column
|
||||
m_gridViaSizeList->SetRowLabelSize( wxGRID_AUTOSIZE );
|
||||
m_gridTrackWidthList->SetRowLabelSize( wxGRID_AUTOSIZE );
|
||||
|
||||
for( unsigned ii = 0; ii < m_TracksWidthList.size(); ii++ )
|
||||
{
|
||||
msg = StringFromValue( g_UserUnit, m_TracksWidthList[ii], false );
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Mar 9 2015)
|
||||
// C++ code generated with wxFormBuilder (version Jun 5 2014)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -32,7 +32,7 @@ DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* pare
|
|||
|
||||
m_ReferenceCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
|
||||
m_ReferenceCtrl->SetMaxLength( 0 );
|
||||
bSizerRef->Add( m_ReferenceCtrl, 1, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
bSizerRef->Add( m_ReferenceCtrl, 1, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
m_button4 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
|
||||
bSizerRef->Add( m_button4, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
|
||||
|
@ -49,7 +49,7 @@ DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* pare
|
|||
|
||||
m_ValueCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
|
||||
m_ValueCtrl->SetMaxLength( 0 );
|
||||
bSizerVal->Add( m_ValueCtrl, 1, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
bSizerVal->Add( m_ValueCtrl, 1, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
m_button5 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
|
||||
bSizerVal->Add( m_button5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
|
||||
|
@ -57,13 +57,13 @@ DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* pare
|
|||
|
||||
bSizerLeft->Add( bSizerVal, 0, wxEXPAND, 5 );
|
||||
|
||||
wxString m_LayerCtrlChoices[] = { _("Top side"), _("Bottom side") };
|
||||
wxString m_LayerCtrlChoices[] = { _("Front"), _("Back") };
|
||||
int m_LayerCtrlNChoices = sizeof( m_LayerCtrlChoices ) / sizeof( wxString );
|
||||
m_LayerCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Side"), wxDefaultPosition, wxDefaultSize, m_LayerCtrlNChoices, m_LayerCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_LayerCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Board Side"), wxDefaultPosition, wxDefaultSize, m_LayerCtrlNChoices, m_LayerCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_LayerCtrl->SetSelection( 0 );
|
||||
bSizerLeft->Add( m_LayerCtrl, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxString m_OrientCtrlChoices[] = { _("0.0"), _("+90.0"), _("-90.0"), _("180.0"), _("Other rotation") };
|
||||
wxString m_OrientCtrlChoices[] = { _("0.0"), _("+90.0"), _("-90.0"), _("180.0"), _("Other") };
|
||||
int m_OrientCtrlNChoices = sizeof( m_OrientCtrlChoices ) / sizeof( wxString );
|
||||
m_OrientCtrl = new wxRadioBox( m_PanelProperties, ID_LISTBOX_ORIENT_SELECT, _("Rotation"), wxDefaultPosition, wxDefaultSize, m_OrientCtrlNChoices, m_OrientCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_OrientCtrl->SetSelection( 0 );
|
||||
|
@ -143,10 +143,10 @@ DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* pare
|
|||
m_AttributsCtrl->SetSelection( 0 );
|
||||
bSizerAttrib->Add( m_AttributsCtrl, 1, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxString m_AutoPlaceCtrlChoices[] = { _("Free"), _("Lock pads"), _("Lock module") };
|
||||
wxString m_AutoPlaceCtrlChoices[] = { _("Free"), _("Lock pads"), _("Lock footprint") };
|
||||
int m_AutoPlaceCtrlNChoices = sizeof( m_AutoPlaceCtrlChoices ) / sizeof( wxString );
|
||||
m_AutoPlaceCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Move and Place"), wxDefaultPosition, wxDefaultSize, m_AutoPlaceCtrlNChoices, m_AutoPlaceCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_AutoPlaceCtrl->SetSelection( 1 );
|
||||
m_AutoPlaceCtrl->SetSelection( 0 );
|
||||
bSizerAttrib->Add( m_AutoPlaceCtrl, 1, wxALL|wxEXPAND, 5 );
|
||||
|
||||
|
||||
|
@ -158,7 +158,7 @@ DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* pare
|
|||
wxBoxSizer* bSizerRotOpt;
|
||||
bSizerRotOpt = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_staticText11 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation 90 degree"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText11 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotate 90 degrees"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText11->Wrap( -1 );
|
||||
bSizerRotOpt->Add( m_staticText11, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
|
||||
|
||||
|
@ -171,7 +171,7 @@ DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* pare
|
|||
wxBoxSizer* bSizerMoveOpt;
|
||||
bSizerMoveOpt = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_staticText12 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation 180 degree"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText12 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotate 180 degrees"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText12->Wrap( -1 );
|
||||
bSizerMoveOpt->Add( m_staticText12, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
|
||||
|
||||
|
@ -262,15 +262,15 @@ DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* pare
|
|||
m_staticTextSolderPaste->Wrap( -1 );
|
||||
m_staticTextSolderPaste->SetToolTip( _("This is the local clearance between pads and the solder paste\nfor this footprint.\nThis value can be superseded by a pad local values.\nThe final clearance value is the sum of this value and the clearance value ratio\nA negative value means a smaller mask size than pad size") );
|
||||
|
||||
fgSizerClearances->Add( m_staticTextSolderPaste, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
fgSizerClearances->Add( m_staticTextSolderPaste, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
m_SolderPasteMarginCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_SolderPasteMarginCtrl->SetMaxLength( 0 );
|
||||
fgSizerClearances->Add( m_SolderPasteMarginCtrl, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||
fgSizerClearances->Add( m_SolderPasteMarginCtrl, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
m_SolderPasteMarginUnits = new wxStaticText( m_PanelProperties, wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_SolderPasteMarginUnits->Wrap( -1 );
|
||||
fgSizerClearances->Add( m_SolderPasteMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 );
|
||||
fgSizerClearances->Add( m_SolderPasteMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
|
||||
|
||||
m_staticTextRatio = new wxStaticText( m_PanelProperties, wxID_ANY, _("Solder paste ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextRatio->Wrap( -1 );
|
||||
|
@ -391,6 +391,7 @@ DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* pare
|
|||
|
||||
this->SetSizer( m_GeneralBoxSizer );
|
||||
this->Layout();
|
||||
m_GeneralBoxSizer->Fit( this );
|
||||
|
||||
// Connect Events
|
||||
m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnEditReference ), NULL, this );
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
<property name="minimum_size"></property>
|
||||
<property name="name">DIALOG_MODULE_BOARD_EDITOR_BASE</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">548,630</property>
|
||||
<property name="size">-1,-1</property>
|
||||
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
||||
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
|
||||
<property name="title">Footprint Properties</property>
|
||||
|
@ -361,7 +361,7 @@
|
|||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxTextCtrl" expanded="0">
|
||||
<property name="BottomDockable">1</property>
|
||||
|
@ -634,7 +634,7 @@
|
|||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxTextCtrl" expanded="0">
|
||||
<property name="BottomDockable">1</property>
|
||||
|
@ -831,7 +831,7 @@
|
|||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="choices">"Top side" "Bottom side"</property>
|
||||
<property name="choices">"Front" "Back"</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
|
@ -846,7 +846,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Side</property>
|
||||
<property name="label">Board Side</property>
|
||||
<property name="majorDimension">1</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
|
@ -921,7 +921,7 @@
|
|||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="choices">"0.0" "+90.0" "-90.0" "180.0" "Other rotation"</property>
|
||||
<property name="choices">"0.0" "+90.0" "-90.0" "180.0" "Other"</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
|
@ -2260,7 +2260,7 @@
|
|||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="choices">"Free" "Lock pads" "Lock module"</property>
|
||||
<property name="choices">"Free" "Lock pads" "Lock footprint"</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
|
@ -2292,7 +2292,7 @@
|
|||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="selection">1</property>
|
||||
<property name="selection">0</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxRA_SPECIFY_COLS</property>
|
||||
|
@ -2387,7 +2387,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Rotation 90 degree</property>
|
||||
<property name="label">Rotate 90 degrees</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -2589,7 +2589,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Rotation 180 degree</property>
|
||||
<property name="label">Rotate 180 degrees</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -3815,7 +3815,7 @@
|
|||
</object>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="0">
|
||||
<property name="BottomDockable">1</property>
|
||||
|
@ -3898,7 +3898,7 @@
|
|||
</object>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxLEFT|wxRIGHT|wxTOP</property>
|
||||
<property name="flag">wxEXPAND|wxLEFT|wxRIGHT</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxTextCtrl" expanded="0">
|
||||
<property name="BottomDockable">1</property>
|
||||
|
@ -3989,7 +3989,7 @@
|
|||
</object>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="0">
|
||||
<property name="BottomDockable">1</property>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Mar 9 2015)
|
||||
// C++ code generated with wxFormBuilder (version Jun 5 2014)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -137,7 +137,7 @@ class DIALOG_MODULE_BOARD_EDITOR_BASE : public DIALOG_SHIM
|
|||
public:
|
||||
wxStaticBoxSizer* m_Sizer3DValues;
|
||||
|
||||
DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Footprint Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 548,630 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Footprint Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
~DIALOG_MODULE_BOARD_EDITOR_BASE();
|
||||
|
||||
};
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
#define PrecisionKey wxT( "DrilltPrecisionOpt" )
|
||||
#define MirrorKey wxT( "DrillMirrorYOpt" )
|
||||
#define MinimalHeaderKey wxT( "DrillMinHeader" )
|
||||
#define MergePTHNPTHKey wxT( "DrillMergePTHNPTH" )
|
||||
#define UnitDrillInchKey wxT( "DrillUnit" )
|
||||
#define DrillOriginIsAuxAxisKey wxT( "DrillAuxAxis" )
|
||||
#define DrillMapFileTypeKey wxT( "DrillMapFileType" )
|
||||
|
@ -90,6 +91,7 @@ int DIALOG_GENDRILL::m_UnitDrillIsInch = true;
|
|||
int DIALOG_GENDRILL::m_ZerosFormat = EXCELLON_WRITER::DECIMAL_FORMAT;
|
||||
bool DIALOG_GENDRILL::m_MinimalHeader = false;
|
||||
bool DIALOG_GENDRILL::m_Mirror = false;
|
||||
bool DIALOG_GENDRILL::m_Merge_PTH_NPTH = false;
|
||||
bool DIALOG_GENDRILL::m_DrillOriginIsAuxAxis = false;
|
||||
int DIALOG_GENDRILL::m_mapFileType = 1;
|
||||
|
||||
|
@ -104,6 +106,7 @@ void DIALOG_GENDRILL::initDialog()
|
|||
{
|
||||
m_config->Read( ZerosFormatKey, &m_ZerosFormat );
|
||||
m_config->Read( MirrorKey, &m_Mirror );
|
||||
m_config->Read( MergePTHNPTHKey, &m_Merge_PTH_NPTH );
|
||||
m_config->Read( MinimalHeaderKey, &m_MinimalHeader );
|
||||
m_config->Read( UnitDrillInchKey, &m_UnitDrillIsInch );
|
||||
m_config->Read( DrillOriginIsAuxAxisKey, &m_DrillOriginIsAuxAxis );
|
||||
|
@ -126,6 +129,7 @@ void DIALOG_GENDRILL::InitDisplayParams()
|
|||
m_Choice_Drill_Offset->SetSelection( 1 );
|
||||
|
||||
m_Check_Mirror->SetValue( m_Mirror );
|
||||
m_Check_Merge_PTH_NPTH->SetValue( m_Merge_PTH_NPTH );
|
||||
m_Choice_Drill_Map->SetSelection( m_mapFileType );
|
||||
m_ViaDrillValue->SetLabel( _( "Use Netclasses values" ) );
|
||||
m_MicroViaDrillValue->SetLabel( _( "Use Netclasses values" ) );
|
||||
|
@ -226,6 +230,7 @@ void DIALOG_GENDRILL::UpdateConfig()
|
|||
|
||||
m_config->Write( ZerosFormatKey, m_ZerosFormat );
|
||||
m_config->Write( MirrorKey, m_Mirror );
|
||||
m_config->Write( MergePTHNPTHKey, m_Merge_PTH_NPTH );
|
||||
m_config->Write( MinimalHeaderKey, m_MinimalHeader );
|
||||
m_config->Write( UnitDrillInchKey, m_UnitDrillIsInch );
|
||||
m_config->Write( DrillOriginIsAuxAxisKey, m_DrillOriginIsAuxAxis );
|
||||
|
@ -328,6 +333,7 @@ void DIALOG_GENDRILL::SetParams()
|
|||
m_UnitDrillIsInch = (m_Choice_Unit->GetSelection() == 0) ? false : true;
|
||||
m_MinimalHeader = m_Check_Minimal->IsChecked();
|
||||
m_Mirror = m_Check_Mirror->IsChecked();
|
||||
m_Merge_PTH_NPTH = m_Check_Merge_PTH_NPTH->IsChecked();
|
||||
m_ZerosFormat = m_Choice_Zeros_Format->GetSelection();
|
||||
m_DrillOriginIsAuxAxis = m_Choice_Drill_Offset->GetSelection();
|
||||
|
||||
|
@ -367,7 +373,8 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap)
|
|||
excellonWriter.SetFormat( !m_UnitDrillIsInch,
|
||||
(EXCELLON_WRITER::ZEROS_FMT) m_ZerosFormat,
|
||||
m_Precision.m_lhs, m_Precision.m_rhs );
|
||||
excellonWriter.SetOptions( m_Mirror, m_MinimalHeader, m_FileDrillOffset );
|
||||
excellonWriter.SetOptions( m_Mirror, m_MinimalHeader,
|
||||
m_FileDrillOffset, m_Merge_PTH_NPTH );
|
||||
excellonWriter.SetMapFileFormat( filefmt[choice] );
|
||||
|
||||
excellonWriter.CreateDrillandMapFilesSet( defaultPath, aGenDrill, aGenMap,
|
||||
|
@ -400,7 +407,8 @@ void DIALOG_GENDRILL::OnGenReportFile( wxCommandEvent& event )
|
|||
excellonWriter.SetFormat( !m_UnitDrillIsInch,
|
||||
(EXCELLON_WRITER::ZEROS_FMT) m_ZerosFormat,
|
||||
m_Precision.m_lhs, m_Precision.m_rhs );
|
||||
excellonWriter.SetOptions( m_Mirror, m_MinimalHeader, m_FileDrillOffset );
|
||||
excellonWriter.SetOptions( m_Mirror, m_MinimalHeader,
|
||||
m_FileDrillOffset, m_Merge_PTH_NPTH );
|
||||
|
||||
bool success = excellonWriter.GenDrillReportFile( dlg.GetPath() );
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ public:
|
|||
static int m_ZerosFormat;
|
||||
static bool m_MinimalHeader;
|
||||
static bool m_Mirror;
|
||||
static bool m_Merge_PTH_NPTH;
|
||||
static bool m_DrillOriginIsAuxAxis; /* Axis selection (main / auxiliary)
|
||||
* for drill origin coordinates */
|
||||
DRILL_PRECISION m_Precision; // Selected precision for drill files
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Jun 6 2014)
|
||||
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -22,11 +22,11 @@ DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, con
|
|||
wxStaticBoxSizer* bdirnameSizer;
|
||||
bdirnameSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Output directory:") ), wxHORIZONTAL );
|
||||
|
||||
m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_outputDirectoryName = new wxTextCtrl( bdirnameSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_outputDirectoryName->SetMaxLength( 0 );
|
||||
bdirnameSizer->Add( m_outputDirectoryName, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_buttonBrowse = new wxButton( this, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_buttonBrowse = new wxButton( bdirnameSizer->GetStaticBox(), wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bdirnameSizer->Add( m_buttonBrowse, 0, wxBOTTOM|wxLEFT, 5 );
|
||||
|
||||
|
||||
|
@ -58,7 +58,7 @@ DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, con
|
|||
wxStaticBoxSizer* sbSizerPrecision;
|
||||
sbSizerPrecision = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Precision") ), wxVERTICAL );
|
||||
|
||||
m_staticTextPrecision = new wxStaticText( this, wxID_ANY, _("Precision"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextPrecision = new wxStaticText( sbSizerPrecision->GetStaticBox(), wxID_ANY, _("Precision"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextPrecision->Wrap( -1 );
|
||||
sbSizerPrecision->Add( m_staticTextPrecision, 0, wxALL, 5 );
|
||||
|
||||
|
@ -82,12 +82,21 @@ DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, con
|
|||
wxStaticBoxSizer* sbOptSizer;
|
||||
sbOptSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Drill File Options:") ), wxVERTICAL );
|
||||
|
||||
m_Check_Mirror = new wxCheckBox( this, wxID_ANY, _("Mirror y axis"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_Check_Mirror = new wxCheckBox( sbOptSizer->GetStaticBox(), wxID_ANY, _("Mirror y axis"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_Check_Mirror->SetToolTip( _("Not recommanded.\nUsed mostly by users who make themselves the boards.") );
|
||||
|
||||
sbOptSizer->Add( m_Check_Mirror, 0, wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_Check_Minimal = new wxCheckBox( this, wxID_ANY, _("Minimal header"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_Check_Minimal = new wxCheckBox( sbOptSizer->GetStaticBox(), wxID_ANY, _("Minimal header"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_Check_Minimal->SetToolTip( _("Not recommanded.\nUse it only for board houses which do not accept fully featured headers.") );
|
||||
|
||||
sbOptSizer->Add( m_Check_Minimal, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_Check_Merge_PTH_NPTH = new wxCheckBox( sbOptSizer->GetStaticBox(), wxID_ANY, _("Merge PTH and NPTH holes into one file"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_Check_Merge_PTH_NPTH->SetToolTip( _("Not recommanded.\nUse it only for board houses which ask for merged PTH and NPTH into onlu one file") );
|
||||
|
||||
sbOptSizer->Add( m_Check_Merge_PTH_NPTH, 0, wxALL, 5 );
|
||||
|
||||
|
||||
bMiddleBoxSizer->Add( sbOptSizer, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
|
@ -108,18 +117,18 @@ DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, con
|
|||
wxStaticBoxSizer* sbSizerInfo;
|
||||
sbSizerInfo = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Info:") ), wxVERTICAL );
|
||||
|
||||
m_DefaultViasDrillSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Default Vias Drill:") ), wxVERTICAL );
|
||||
m_DefaultViasDrillSizer = new wxStaticBoxSizer( new wxStaticBox( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Default Vias Drill:") ), wxVERTICAL );
|
||||
|
||||
m_ViaDrillValue = new wxStaticText( this, wxID_ANY, _("Via Drill Value"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ViaDrillValue = new wxStaticText( m_DefaultViasDrillSizer->GetStaticBox(), wxID_ANY, _("Via Drill Value"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ViaDrillValue->Wrap( -1 );
|
||||
m_DefaultViasDrillSizer->Add( m_ViaDrillValue, 0, wxALL, 5 );
|
||||
|
||||
|
||||
sbSizerInfo->Add( m_DefaultViasDrillSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
|
||||
|
||||
m_MicroViasDrillSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Micro Vias Drill:") ), wxVERTICAL );
|
||||
m_MicroViasDrillSizer = new wxStaticBoxSizer( new wxStaticBox( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Micro Vias Drill:") ), wxVERTICAL );
|
||||
|
||||
m_MicroViaDrillValue = new wxStaticText( this, wxID_ANY, _("Micro Via Drill Value"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_MicroViaDrillValue = new wxStaticText( m_MicroViasDrillSizer->GetStaticBox(), wxID_ANY, _("Micro Via Drill Value"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_MicroViaDrillValue->Wrap( -1 );
|
||||
m_MicroViasDrillSizer->Add( m_MicroViaDrillValue, 0, wxALL, 5 );
|
||||
|
||||
|
@ -127,25 +136,25 @@ DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, con
|
|||
sbSizerInfo->Add( m_MicroViasDrillSizer, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
wxStaticBoxSizer* sbSizerHoles;
|
||||
sbSizerHoles = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Holes Count:") ), wxVERTICAL );
|
||||
sbSizerHoles = new wxStaticBoxSizer( new wxStaticBox( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Holes Count:") ), wxVERTICAL );
|
||||
|
||||
m_PlatedPadsCountInfoMsg = new wxStaticText( this, wxID_ANY, _("Plated Pads:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_PlatedPadsCountInfoMsg = new wxStaticText( sbSizerHoles->GetStaticBox(), wxID_ANY, _("Plated Pads:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_PlatedPadsCountInfoMsg->Wrap( -1 );
|
||||
sbSizerHoles->Add( m_PlatedPadsCountInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_NotPlatedPadsCountInfoMsg = new wxStaticText( this, wxID_ANY, _("Not Plated Pads:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_NotPlatedPadsCountInfoMsg = new wxStaticText( sbSizerHoles->GetStaticBox(), wxID_ANY, _("Not Plated Pads:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_NotPlatedPadsCountInfoMsg->Wrap( -1 );
|
||||
sbSizerHoles->Add( m_NotPlatedPadsCountInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_ThroughViasInfoMsg = new wxStaticText( this, wxID_ANY, _("Through Vias:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ThroughViasInfoMsg = new wxStaticText( sbSizerHoles->GetStaticBox(), wxID_ANY, _("Through Vias:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ThroughViasInfoMsg->Wrap( -1 );
|
||||
sbSizerHoles->Add( m_ThroughViasInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_MicroViasInfoMsg = new wxStaticText( this, wxID_ANY, _("Micro Vias:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_MicroViasInfoMsg = new wxStaticText( sbSizerHoles->GetStaticBox(), wxID_ANY, _("Micro Vias:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_MicroViasInfoMsg->Wrap( -1 );
|
||||
sbSizerHoles->Add( m_MicroViasInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_BuriedViasInfoMsg = new wxStaticText( this, wxID_ANY, _("Buried Vias:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_BuriedViasInfoMsg = new wxStaticText( sbSizerHoles->GetStaticBox(), wxID_ANY, _("Buried Vias:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_BuriedViasInfoMsg->Wrap( -1 );
|
||||
sbSizerHoles->Add( m_BuriedViasInfoMsg, 0, wxALL, 5 );
|
||||
|
||||
|
@ -186,7 +195,7 @@ DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, con
|
|||
wxStaticBoxSizer* bmsgSizer;
|
||||
bmsgSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxVERTICAL );
|
||||
|
||||
m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
|
||||
m_messagesBox = new wxTextCtrl( bmsgSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
|
||||
m_messagesBox->SetMinSize( wxSize( -1,90 ) );
|
||||
|
||||
bmsgSizer->Add( m_messagesBox, 1, wxALL|wxEXPAND, 5 );
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
<property name="minimum_size"></property>
|
||||
<property name="name">DIALOG_GENDRILL_BASE</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">506,471</property>
|
||||
<property name="size">506,518</property>
|
||||
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
||||
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
|
||||
<property name="title">Drill Files Generation</property>
|
||||
|
@ -759,7 +759,7 @@
|
|||
<property name="style"></property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="tooltip">Not recommanded.
Used mostly by users who make themselves the boards.</property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
|
@ -847,7 +847,95 @@
|
|||
<property name="style"></property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="tooltip">Not recommanded.
Use it only for board houses which do not accept fully featured headers.</property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnCheckBox"></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</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="1">
|
||||
<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="checked">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">Merge PTH and NPTH holes into one file</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_Check_Merge_PTH_NPTH</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"></property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">Not recommanded.
Use it only for board houses which ask for merged PTH and NPTH into onlu one file</property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Jun 6 2014)
|
||||
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -48,6 +48,7 @@ class DIALOG_GENDRILL_BASE : public DIALOG_SHIM
|
|||
wxRadioBox* m_Choice_Drill_Map;
|
||||
wxCheckBox* m_Check_Mirror;
|
||||
wxCheckBox* m_Check_Minimal;
|
||||
wxCheckBox* m_Check_Merge_PTH_NPTH;
|
||||
wxRadioBox* m_Choice_Drill_Offset;
|
||||
wxStaticBoxSizer* m_DefaultViasDrillSizer;
|
||||
wxStaticText* m_ViaDrillValue;
|
||||
|
@ -76,7 +77,7 @@ class DIALOG_GENDRILL_BASE : public DIALOG_SHIM
|
|||
|
||||
public:
|
||||
|
||||
DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Drill Files Generation"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 506,471 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Drill Files Generation"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 506,473 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
~DIALOG_GENDRILL_BASE();
|
||||
|
||||
};
|
||||
|
|
|
@ -149,12 +149,11 @@ void DIALOG_PLOT::Init_Dialog()
|
|||
// Could devote a PlotOrder() function in place of UIOrder().
|
||||
m_layerList = m_board->GetEnabledLayers().UIOrder();
|
||||
|
||||
// Populate the check list box by all enabled layers names
|
||||
for( LSEQ seq = m_layerList; seq; ++seq )
|
||||
{
|
||||
LAYER_ID layer = *seq;
|
||||
|
||||
m_layerList.push_back( layer );
|
||||
|
||||
int checkIndex = m_layerCheckListBox->Append( m_board->GetLayerName( layer ) );
|
||||
|
||||
if( m_plotOpts.GetLayerSelection()[layer] )
|
||||
|
|
|
@ -797,7 +797,7 @@ struct EPOLYGON
|
|||
HATCH,
|
||||
CUTOUT,
|
||||
};
|
||||
opt_int pour;
|
||||
int pour;
|
||||
opt_double isolate;
|
||||
opt_bool orphans;
|
||||
opt_bool thermals;
|
||||
|
@ -827,8 +827,10 @@ EPOLYGON::EPOLYGON( CPTREE& aPolygon )
|
|||
layer = attribs.get<int>( "layer" );
|
||||
spacing = attribs.get_optional<double>( "spacing" );
|
||||
isolate = attribs.get_optional<double>( "isolate" );
|
||||
|
||||
// default pour to solid fill
|
||||
pour = EPOLYGON::SOLID;
|
||||
opt_string s = attribs.get_optional<string>( "pour" );
|
||||
|
||||
if( s )
|
||||
{
|
||||
// (solid | hatch | cutout)
|
||||
|
@ -836,8 +838,6 @@ EPOLYGON::EPOLYGON( CPTREE& aPolygon )
|
|||
pour = EPOLYGON::HATCH;
|
||||
else if( !s->compare( "cutout" ) )
|
||||
pour = EPOLYGON::CUTOUT;
|
||||
else
|
||||
pour = EPOLYGON::SOLID;
|
||||
}
|
||||
|
||||
orphans = parseOptionalBool( attribs, "orphans" );
|
||||
|
@ -2434,7 +2434,6 @@ void EAGLE_PLUGIN::loadSignals( CPTREE& aSignals )
|
|||
(void) breakhere;
|
||||
}
|
||||
#endif
|
||||
|
||||
// (contactref | polygon | wire | via)*
|
||||
for( CITER it = net->second.begin(); it != net->second.end(); ++it )
|
||||
{
|
||||
|
@ -2567,8 +2566,6 @@ void EAGLE_PLUGIN::loadSignals( CPTREE& aSignals )
|
|||
zone->SetLayer( layer );
|
||||
zone->SetNetCode( netCode );
|
||||
|
||||
CPolyLine::HATCH_STYLE outline_hatch = CPolyLine::DIAGONAL_EDGE;
|
||||
|
||||
bool first = true;
|
||||
for( CITER vi = it->second.begin(); vi != it->second.end(); ++vi )
|
||||
{
|
||||
|
@ -2581,7 +2578,7 @@ void EAGLE_PLUGIN::loadSignals( CPTREE& aSignals )
|
|||
if( first )
|
||||
{
|
||||
zone->Outline()->Start( layer, kicad_x( v.x ), kicad_y( v.y ),
|
||||
outline_hatch );
|
||||
CPolyLine::NO_HATCH);
|
||||
first = false;
|
||||
}
|
||||
else
|
||||
|
@ -2590,14 +2587,19 @@ void EAGLE_PLUGIN::loadSignals( CPTREE& aSignals )
|
|||
|
||||
zone->Outline()->CloseLastContour();
|
||||
|
||||
// If pour is set the zone should be hatched,
|
||||
// set the hatch size from the spacing variable.
|
||||
if( p.pour )
|
||||
// If the pour is a cutout it needs to be set to a keepout
|
||||
if( p.pour == EPOLYGON::CUTOUT )
|
||||
{
|
||||
zone->Outline()->SetHatch( outline_hatch,
|
||||
zone->SetIsKeepout( true );
|
||||
zone->SetDoNotAllowCopperPour( true );
|
||||
zone->Outline()->SetHatchStyle( CPolyLine::NO_HATCH );
|
||||
}
|
||||
|
||||
// if spacing is set the zone should be hatched
|
||||
if( p.spacing )
|
||||
zone->Outline()->SetHatch( CPolyLine::DIAGONAL_EDGE,
|
||||
*p.spacing,
|
||||
true );
|
||||
}
|
||||
|
||||
// clearances, etc.
|
||||
zone->SetArcSegmentCount( 32 ); // @todo: should be a constructor default?
|
||||
|
|
|
@ -744,7 +744,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
|||
break;
|
||||
}
|
||||
|
||||
if( Delete_Module( (MODULE*) GetCurItem(), &dc, true ) )
|
||||
if( Delete_Module( (MODULE*) GetCurItem(), &dc ) )
|
||||
{
|
||||
SetCurItem( NULL );
|
||||
}
|
||||
|
@ -1268,7 +1268,7 @@ void PCB_EDIT_FRAME::RemoveStruct( BOARD_ITEM* Item, wxDC* DC )
|
|||
switch( Item->Type() )
|
||||
{
|
||||
case PCB_MODULE_T:
|
||||
Delete_Module( (MODULE*) Item, DC, true );
|
||||
Delete_Module( (MODULE*) Item, DC );
|
||||
break;
|
||||
|
||||
case PCB_DIMENSION_T:
|
||||
|
@ -1442,7 +1442,7 @@ void PCB_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent )
|
|||
break;
|
||||
|
||||
case ID_PCB_MODULE_BUTT:
|
||||
SetToolID( id, wxCURSOR_PENCIL, _( "Add module" ) );
|
||||
SetToolID( id, wxCURSOR_PENCIL, _( "Add footprint" ) );
|
||||
break;
|
||||
|
||||
case ID_PCB_ZONES_BUTT:
|
||||
|
@ -1489,7 +1489,7 @@ void PCB_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent )
|
|||
break;
|
||||
|
||||
case ID_COMPONENT_BUTT:
|
||||
SetToolID( id, wxCURSOR_HAND, _( "Add module" ) );
|
||||
SetToolID( id, wxCURSOR_HAND, _( "Add footprint" ) );
|
||||
break;
|
||||
|
||||
case ID_PCB_DIMENSION_BUTT:
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 1992-2012 Jean_Pierre Charras <jp.charras at wanadoo.fr>
|
||||
* Copyright (C) 1992-2012 KiCad Developers, see change_log.txt for contributors.
|
||||
* Copyright (C) 1992-2015 Jean_Pierre Charras <jp.charras at wanadoo.fr>
|
||||
* Copyright (C) 1992-2015 KiCad Developers, see change_log.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
|
||||
|
@ -228,41 +228,45 @@ bool EXCELLON_WRITER::GenDrillMapFile( const wxString& aFullFileName,
|
|||
|
||||
for( unsigned ii = 0; ii < m_toolListBuffer.size(); ii++ )
|
||||
{
|
||||
int plot_diam;
|
||||
DRILL_TOOL& tool = m_toolListBuffer[ii];
|
||||
|
||||
if( m_toolListBuffer[ii].m_TotalCount == 0 )
|
||||
if( tool.m_TotalCount == 0 )
|
||||
continue;
|
||||
|
||||
plotY += intervalle;
|
||||
|
||||
plot_diam = KiROUND( m_toolListBuffer[ii].m_Diameter );
|
||||
int plot_diam = KiROUND( tool.m_Diameter );
|
||||
x = KiROUND( plotX - textmarginaftersymbol * charScale - plot_diam / 2.0 );
|
||||
y = KiROUND( plotY + charSize * charScale );
|
||||
plotter->Marker( wxPoint( x, y ), plot_diam, ii );
|
||||
|
||||
// List the diameter of each drill in mm and inches.
|
||||
sprintf( line, "%2.2fmm / %2.3f\" ",
|
||||
diameter_in_mm( m_toolListBuffer[ii].m_Diameter ),
|
||||
diameter_in_inches( m_toolListBuffer[ii].m_Diameter ) );
|
||||
diameter_in_mm( tool.m_Diameter ),
|
||||
diameter_in_inches( tool.m_Diameter ) );
|
||||
|
||||
msg = FROM_UTF8( line );
|
||||
|
||||
// Now list how many holes and ovals are associated with each drill.
|
||||
if( ( m_toolListBuffer[ii].m_TotalCount == 1 )
|
||||
&& ( m_toolListBuffer[ii].m_OvalCount == 0 ) )
|
||||
if( ( tool.m_TotalCount == 1 )
|
||||
&& ( tool.m_OvalCount == 0 ) )
|
||||
sprintf( line, "(1 hole)" );
|
||||
else if( m_toolListBuffer[ii].m_TotalCount == 1 ) // && ( m_toolListBuffer[ii]m_OvalCount == 1 )
|
||||
else if( tool.m_TotalCount == 1 ) // && ( toolm_OvalCount == 1 )
|
||||
sprintf( line, "(1 slot)" );
|
||||
else if( m_toolListBuffer[ii].m_OvalCount == 0 )
|
||||
sprintf( line, "(%d holes)", m_toolListBuffer[ii].m_TotalCount );
|
||||
else if( m_toolListBuffer[ii].m_OvalCount == 1 )
|
||||
sprintf( line, "(%d holes + 1 slot)", m_toolListBuffer[ii].m_TotalCount - 1 );
|
||||
else // if ( m_toolListBuffer[ii]m_OvalCount > 1 )
|
||||
else if( tool.m_OvalCount == 0 )
|
||||
sprintf( line, "(%d holes)", tool.m_TotalCount );
|
||||
else if( tool.m_OvalCount == 1 )
|
||||
sprintf( line, "(%d holes + 1 slot)", tool.m_TotalCount - 1 );
|
||||
else // if ( toolm_OvalCount > 1 )
|
||||
sprintf( line, "(%d holes + %d slots)",
|
||||
m_toolListBuffer[ii].m_TotalCount - m_toolListBuffer[ii].m_OvalCount,
|
||||
m_toolListBuffer[ii].m_OvalCount );
|
||||
tool.m_TotalCount - tool.m_OvalCount,
|
||||
tool.m_OvalCount );
|
||||
|
||||
msg += FROM_UTF8( line );
|
||||
|
||||
if( tool.m_Hole_NotPlated )
|
||||
msg += wxT( " (not plated)" );
|
||||
|
||||
plotter->Text( wxPoint( plotX, y ), UNSPECIFIED_COLOR, msg, 0,
|
||||
wxSize( KiROUND( charSize * charScale ),
|
||||
KiROUND( charSize * charScale ) ),
|
||||
|
@ -323,12 +327,14 @@ bool EXCELLON_WRITER::GenDrillReportFile( const wxString& aFullFileName )
|
|||
* 3 - Non Plated through holes
|
||||
*/
|
||||
|
||||
bool buildNPTHlist = false;
|
||||
|
||||
// in this loop are plated only:
|
||||
for( unsigned pair_ndx = 0; pair_ndx < hole_sets.size(); ++pair_ndx )
|
||||
{
|
||||
LAYER_PAIR pair = hole_sets[pair_ndx];
|
||||
|
||||
BuildHolesList( pair, false );
|
||||
BuildHolesList( pair, buildNPTHlist );
|
||||
|
||||
if( pair == LAYER_PAIR( F_Cu, B_Cu ) )
|
||||
{
|
||||
|
@ -337,7 +343,7 @@ bool EXCELLON_WRITER::GenDrillReportFile( const wxString& aFullFileName )
|
|||
|
||||
out.Print( 0, " plated through holes:\n" );
|
||||
out.Print( 0, separator );
|
||||
totalHoleCount = printToolSummary( out );
|
||||
totalHoleCount = printToolSummary( out, false );
|
||||
out.Print( 0, " Total plated holes count %u\n", totalHoleCount );
|
||||
}
|
||||
else // blind/buried
|
||||
|
@ -352,25 +358,31 @@ bool EXCELLON_WRITER::GenDrillReportFile( const wxString& aFullFileName )
|
|||
);
|
||||
|
||||
out.Print( 0, separator );
|
||||
totalHoleCount = printToolSummary( out );
|
||||
totalHoleCount = printToolSummary( out, false );
|
||||
out.Print( 0, " Total plated holes count %u\n", totalHoleCount );
|
||||
}
|
||||
|
||||
out.Print( 0, "\n\n" );
|
||||
}
|
||||
|
||||
// NPTHoles:
|
||||
BuildHolesList( LAYER_PAIR( F_Cu, B_Cu ), true );
|
||||
// NPTHoles. Generate the full list (pads+vias) if PTH and NPTH are merged,
|
||||
// or only the NPTH list (which never has vias)
|
||||
if( !m_merge_PTH_NPTH )
|
||||
buildNPTHlist = true;
|
||||
|
||||
// if( m_toolListBuffer.size() ) nothing wrong with an empty NPTH file.
|
||||
{
|
||||
BuildHolesList( LAYER_PAIR( F_Cu, B_Cu ), buildNPTHlist );
|
||||
|
||||
// nothing wrong with an empty NPTH file in report.
|
||||
if( m_merge_PTH_NPTH )
|
||||
out.Print( 0, "Not plated through holes are merged with plated holes\n" );
|
||||
else
|
||||
out.Print( 0, "Drill file '%s' contains\n",
|
||||
TO_UTF8( drillFileName( LAYER_PAIR( F_Cu, B_Cu ), true ) ) );
|
||||
out.Print( 0, " unplated through holes:\n" );
|
||||
out.Print( 0, separator );
|
||||
totalHoleCount = printToolSummary( out );
|
||||
out.Print( 0, " Total unplated holes count %u\n", totalHoleCount );
|
||||
}
|
||||
|
||||
out.Print( 0, " unplated through holes:\n" );
|
||||
out.Print( 0, separator );
|
||||
totalHoleCount = printToolSummary( out, true );
|
||||
out.Print( 0, " Total unplated holes count %u\n", totalHoleCount );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -383,18 +395,16 @@ bool EXCELLON_WRITER::PlotDrillMarks( PLOTTER* aPlotter )
|
|||
|
||||
for( unsigned ii = 0; ii < m_holeListBuffer.size(); ii++ )
|
||||
{
|
||||
pos = m_holeListBuffer[ii].m_Hole_Pos;
|
||||
const HOLE_INFO& hole = m_holeListBuffer[ii];
|
||||
pos = hole.m_Hole_Pos;
|
||||
|
||||
// Always plot the drill symbol (for slots identifies the needed cutter!
|
||||
aPlotter->Marker( pos, m_holeListBuffer[ii].m_Hole_Diameter,
|
||||
m_holeListBuffer[ii].m_Tool_Reference - 1 );
|
||||
aPlotter->Marker( pos, hole.m_Hole_Diameter, hole.m_Tool_Reference - 1 );
|
||||
|
||||
if( m_holeListBuffer[ii].m_Hole_Shape != 0 )
|
||||
if( hole.m_Hole_Shape != 0 )
|
||||
{
|
||||
wxSize oblong_size;
|
||||
oblong_size = m_holeListBuffer[ii].m_Hole_Size;
|
||||
aPlotter->FlashPadOval( pos, oblong_size,
|
||||
m_holeListBuffer[ii].m_Hole_Orient, SKETCH );
|
||||
wxSize oblong_size = hole.m_Hole_Size;
|
||||
aPlotter->FlashPadOval( pos, oblong_size, hole.m_Hole_Orient, SKETCH );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -402,36 +412,41 @@ bool EXCELLON_WRITER::PlotDrillMarks( PLOTTER* aPlotter )
|
|||
}
|
||||
|
||||
|
||||
unsigned EXCELLON_WRITER::printToolSummary( OUTPUTFORMATTER& out ) const
|
||||
unsigned EXCELLON_WRITER::printToolSummary( OUTPUTFORMATTER& out, bool aSummaryNPTH ) const
|
||||
{
|
||||
unsigned totalHoleCount = 0;
|
||||
|
||||
for( unsigned ii = 0; ii < m_toolListBuffer.size(); ii++ )
|
||||
{
|
||||
const DRILL_TOOL& tool = m_toolListBuffer[ii];
|
||||
|
||||
if( aSummaryNPTH && !tool.m_Hole_NotPlated )
|
||||
continue;
|
||||
|
||||
if( !aSummaryNPTH && tool.m_Hole_NotPlated )
|
||||
continue;
|
||||
|
||||
// List the tool number assigned to each drill,
|
||||
// in mm then in inches.
|
||||
out.Print( 0, " T%d %2.2fmm %2.3f\" ",
|
||||
ii + 1,
|
||||
diameter_in_mm( m_toolListBuffer[ii].m_Diameter ),
|
||||
diameter_in_inches( m_toolListBuffer[ii].m_Diameter ) );
|
||||
int tool_number = ii+1;
|
||||
out.Print( 0, " T%d %2.2fmm %2.3f\" ", tool_number,
|
||||
diameter_in_mm( tool.m_Diameter ),
|
||||
diameter_in_inches( tool.m_Diameter ) );
|
||||
|
||||
// Now list how many holes and ovals are associated with each drill.
|
||||
if( ( m_toolListBuffer[ii].m_TotalCount == 1 )
|
||||
&& ( m_toolListBuffer[ii].m_OvalCount == 0 ) )
|
||||
if( ( tool.m_TotalCount == 1 ) && ( tool.m_OvalCount == 0 ) )
|
||||
out.Print( 0, "(1 hole)\n" );
|
||||
else if( m_toolListBuffer[ii].m_TotalCount == 1 )
|
||||
else if( tool.m_TotalCount == 1 )
|
||||
out.Print( 0, "(1 hole) (with 1 slot)\n" );
|
||||
else if( m_toolListBuffer[ii].m_OvalCount == 0 )
|
||||
out.Print( 0, "(%d holes)\n", m_toolListBuffer[ii].m_TotalCount );
|
||||
else if( m_toolListBuffer[ii].m_OvalCount == 1 )
|
||||
out.Print( 0, "(%d holes) (with 1 slot)\n",
|
||||
m_toolListBuffer[ii].m_TotalCount );
|
||||
else // if ( buffer[ii]m_OvalCount > 1 )
|
||||
else if( tool.m_OvalCount == 0 )
|
||||
out.Print( 0, "(%d holes)\n", tool.m_TotalCount );
|
||||
else if( tool.m_OvalCount == 1 )
|
||||
out.Print( 0, "(%d holes) (with 1 slot)\n", tool.m_TotalCount );
|
||||
else // tool.m_OvalCount > 1
|
||||
out.Print( 0, "(%d holes) (with %d slots)\n",
|
||||
m_toolListBuffer[ii].m_TotalCount,
|
||||
m_toolListBuffer[ii].m_OvalCount );
|
||||
tool.m_TotalCount, tool.m_OvalCount );
|
||||
|
||||
totalHoleCount += m_toolListBuffer[ii].m_TotalCount;
|
||||
totalHoleCount += tool.m_TotalCount;
|
||||
}
|
||||
|
||||
out.Print( 0, "\n" );
|
||||
|
|
|
@ -231,7 +231,7 @@ bool DIALOG_GEN_MODULE_POSITION::CreateFiles()
|
|||
ForceAllSmd(), 2 );
|
||||
if( fpcount == 0)
|
||||
{
|
||||
wxMessageBox( _( "No modules for automated placement." ) );
|
||||
wxMessageBox( _( "No footprint for automated placement." ) );
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -56,8 +56,11 @@
|
|||
#include <reporter.h>
|
||||
#include <collectors.h>
|
||||
|
||||
// Comment/uncomment this to write or not a comment
|
||||
// in drill file when PTH and NPTH are merged to flag
|
||||
// tools used for PTH and tools used for NPTH
|
||||
// #define WRITE_PTH_NPTH_COMMENT
|
||||
|
||||
//#include <dialog_gendrill.h> // Dialog box for drill file generation
|
||||
|
||||
EXCELLON_WRITER::EXCELLON_WRITER( BOARD* aPcb )
|
||||
{
|
||||
|
@ -67,6 +70,7 @@ EXCELLON_WRITER::EXCELLON_WRITER( BOARD* aPcb )
|
|||
m_conversionUnits = 0.0001;
|
||||
m_unitsDecimal = true;
|
||||
m_mirror = false;
|
||||
m_merge_PTH_NPTH = false;
|
||||
m_minimalHeader = false;
|
||||
m_ShortHeader = false;
|
||||
m_mapFileFmt = PLOT_FORMAT_PDF;
|
||||
|
@ -83,14 +87,16 @@ void EXCELLON_WRITER::CreateDrillandMapFilesSet( const wxString& aPlotDirectory,
|
|||
|
||||
std::vector<LAYER_PAIR> hole_sets = getUniqueLayerPairs();
|
||||
|
||||
// append a pair representing the NPTH set of holes.
|
||||
hole_sets.push_back( LAYER_PAIR( F_Cu, B_Cu ) );
|
||||
// append a pair representing the NPTH set of holes, for separate drill files.
|
||||
if( !m_merge_PTH_NPTH )
|
||||
hole_sets.push_back( LAYER_PAIR( F_Cu, B_Cu ) );
|
||||
|
||||
for( std::vector<LAYER_PAIR>::const_iterator it = hole_sets.begin();
|
||||
it != hole_sets.end(); ++it )
|
||||
{
|
||||
LAYER_PAIR pair = *it;
|
||||
bool doing_npth = ( it == hole_sets.end() - 1 );
|
||||
// For separate drill files, the last layer pair is the NPTH dril file.
|
||||
bool doing_npth = m_merge_PTH_NPTH ? false : ( it == hole_sets.end() - 1 );
|
||||
|
||||
BuildHolesList( pair, doing_npth );
|
||||
|
||||
|
@ -185,10 +191,32 @@ int EXCELLON_WRITER::CreateDrillFile( FILE* aFile )
|
|||
|
||||
holes_count = 0;
|
||||
|
||||
#ifdef WRITE_PTH_NPTH_COMMENT
|
||||
// if PTH_ and NPTH are merged write a comment in drill file at the
|
||||
// beginning of NPTH section
|
||||
bool writePTHcomment = m_merge_PTH_NPTH;
|
||||
bool writeNPTHcomment = m_merge_PTH_NPTH;
|
||||
#endif
|
||||
|
||||
/* Write the tool list */
|
||||
for( unsigned ii = 0; ii < m_toolListBuffer.size(); ii++ )
|
||||
{
|
||||
DRILL_TOOL& tool_descr = m_toolListBuffer[ii];
|
||||
|
||||
#ifdef WRITE_PTH_NPTH_COMMENT
|
||||
if( writePTHcomment && !tool_descr.m_Hole_NotPlated )
|
||||
{
|
||||
writePTHcomment = false;
|
||||
fprintf( m_file, ";TYPE=PLATED\n" );
|
||||
}
|
||||
|
||||
if( writeNPTHcomment && tool_descr.m_Hole_NotPlated )
|
||||
{
|
||||
writeNPTHcomment = false;
|
||||
fprintf( m_file, ";TYPE=NON_PLATED\n" );
|
||||
}
|
||||
#endif
|
||||
|
||||
fprintf( m_file, "T%dC%.3f\n", ii + 1,
|
||||
tool_descr.m_Diameter * m_conversionUnits );
|
||||
}
|
||||
|
@ -520,11 +548,14 @@ void EXCELLON_WRITER::WriteEXCELLONEndOfFile()
|
|||
|
||||
|
||||
/* Helper function for sorting hole list.
|
||||
* Compare function used for sorting holes by increasing diameter value
|
||||
* and X value
|
||||
* Compare function used for sorting holes type type (plated then not plated)
|
||||
* then by increasing diameter value and X value
|
||||
*/
|
||||
static bool CmpHoleDiameterValue( const HOLE_INFO& a, const HOLE_INFO& b )
|
||||
static bool CmpHoleSettings( const HOLE_INFO& a, const HOLE_INFO& b )
|
||||
{
|
||||
if( a.m_Hole_NotPlated != b.m_Hole_NotPlated )
|
||||
return b.m_Hole_NotPlated;
|
||||
|
||||
if( a.m_Hole_Diameter != b.m_Hole_Diameter )
|
||||
return a.m_Hole_Diameter < b.m_Hole_Diameter;
|
||||
|
||||
|
@ -558,6 +589,7 @@ void EXCELLON_WRITER::BuildHolesList( LAYER_PAIR aLayerPair,
|
|||
new_hole.m_Tool_Reference = -1; // Flag value for Not initialized
|
||||
new_hole.m_Hole_Orient = 0;
|
||||
new_hole.m_Hole_Diameter = hole_sz;
|
||||
new_hole.m_Hole_NotPlated = false;
|
||||
new_hole.m_Hole_Size.x = new_hole.m_Hole_Size.y = new_hole.m_Hole_Diameter;
|
||||
|
||||
new_hole.m_Hole_Shape = 0; // hole shape: round
|
||||
|
@ -583,11 +615,14 @@ void EXCELLON_WRITER::BuildHolesList( LAYER_PAIR aLayerPair,
|
|||
{
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
{
|
||||
if( !aGenerateNPTH_list && pad->GetAttribute() == PAD_ATTRIB_HOLE_NOT_PLATED )
|
||||
continue;
|
||||
if( !m_merge_PTH_NPTH )
|
||||
{
|
||||
if( !aGenerateNPTH_list && pad->GetAttribute() == PAD_ATTRIB_HOLE_NOT_PLATED )
|
||||
continue;
|
||||
|
||||
if( aGenerateNPTH_list && pad->GetAttribute() != PAD_ATTRIB_HOLE_NOT_PLATED )
|
||||
continue;
|
||||
if( aGenerateNPTH_list && pad->GetAttribute() != PAD_ATTRIB_HOLE_NOT_PLATED )
|
||||
continue;
|
||||
}
|
||||
|
||||
if( pad->GetDrillSize().x == 0 )
|
||||
continue;
|
||||
|
@ -603,30 +638,35 @@ void EXCELLON_WRITER::BuildHolesList( LAYER_PAIR aLayerPair,
|
|||
new_hole.m_Hole_Shape = 1; // oval flag set
|
||||
|
||||
new_hole.m_Hole_Size = pad->GetDrillSize();
|
||||
new_hole.m_Hole_Pos = pad->GetPosition(); // hole position
|
||||
new_hole.m_Hole_Pos = pad->GetPosition(); // hole position
|
||||
new_hole.m_Hole_Bottom_Layer = B_Cu;
|
||||
new_hole.m_Hole_Top_Layer = F_Cu;// pad holes are through holes
|
||||
new_hole.m_Hole_Top_Layer = F_Cu; // pad holes are through holes
|
||||
m_holeListBuffer.push_back( new_hole );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sort holes per increasing diameter value
|
||||
sort( m_holeListBuffer.begin(), m_holeListBuffer.end(), CmpHoleDiameterValue );
|
||||
sort( m_holeListBuffer.begin(), m_holeListBuffer.end(), CmpHoleSettings );
|
||||
|
||||
// build the tool list
|
||||
int last_hole = -1; /* Set to not initialized (this is a value not used
|
||||
* for m_holeListBuffer[ii].m_Hole_Diameter) */
|
||||
DRILL_TOOL new_tool( 0 );
|
||||
int last_hole = -1; // Set to not initialized (this is a value not used
|
||||
// for m_holeListBuffer[ii].m_Hole_Diameter)
|
||||
bool last_notplated_opt = false;
|
||||
|
||||
DRILL_TOOL new_tool( 0, false );
|
||||
unsigned jj;
|
||||
|
||||
for( unsigned ii = 0; ii < m_holeListBuffer.size(); ii++ )
|
||||
{
|
||||
if( m_holeListBuffer[ii].m_Hole_Diameter != last_hole )
|
||||
if( m_holeListBuffer[ii].m_Hole_Diameter != last_hole ||
|
||||
m_holeListBuffer[ii].m_Hole_NotPlated != last_notplated_opt )
|
||||
{
|
||||
new_tool.m_Diameter = ( m_holeListBuffer[ii].m_Hole_Diameter );
|
||||
new_tool.m_Diameter = m_holeListBuffer[ii].m_Hole_Diameter;
|
||||
new_tool.m_Hole_NotPlated = m_holeListBuffer[ii].m_Hole_NotPlated;
|
||||
m_toolListBuffer.push_back( new_tool );
|
||||
last_hole = new_tool.m_Diameter;
|
||||
last_notplated_opt = new_tool.m_Hole_NotPlated;
|
||||
}
|
||||
|
||||
jj = m_toolListBuffer.size();
|
||||
|
|
|
@ -37,20 +37,22 @@ class BOARD;
|
|||
class PLOTTER;
|
||||
|
||||
|
||||
/* the DRILL_TOOL class handles tools used in the excellon drill file */
|
||||
// the DRILL_TOOL class handles tools used in the excellon drill file:
|
||||
class DRILL_TOOL
|
||||
{
|
||||
public:
|
||||
int m_Diameter; // the diameter of the used tool (for oblong, the smaller size)
|
||||
int m_TotalCount; // how many times it is used (round and oblong)
|
||||
int m_OvalCount; // oblong count
|
||||
bool m_Hole_NotPlated; // Is the hole plated or not plated
|
||||
|
||||
public:
|
||||
DRILL_TOOL( int diametre )
|
||||
DRILL_TOOL( int aDiameter, bool a_NotPlated )
|
||||
{
|
||||
m_TotalCount = 0;
|
||||
m_OvalCount = 0;
|
||||
m_Diameter = diametre;
|
||||
m_TotalCount = 0;
|
||||
m_OvalCount = 0;
|
||||
m_Diameter = aDiameter;
|
||||
m_Hole_NotPlated = a_NotPlated;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -73,7 +75,7 @@ public:
|
|||
LAYER_ID m_Hole_Bottom_Layer; // hole ending layer (usually back layer)
|
||||
LAYER_ID m_Hole_Top_Layer; // hole starting layer (usually front layer):
|
||||
// m_Hole_Top_Layer < m_Hole_Bottom_Layer
|
||||
bool m_Hole_NotPlated; // hole not plated. Must be in a specific drill file
|
||||
bool m_Hole_NotPlated; // hole not plated. Must be in a specific drill file or section
|
||||
|
||||
public:
|
||||
HOLE_INFO()
|
||||
|
@ -145,6 +147,7 @@ private:
|
|||
// (i.e inches or mm)
|
||||
bool m_mirror;
|
||||
wxPoint m_offset; // Drill offset coordinates
|
||||
bool m_merge_PTH_NPTH; // True to generate only one drill file
|
||||
std::vector<HOLE_INFO> m_holeListBuffer; // Buffer containing holes
|
||||
std::vector<DRILL_TOOL> m_toolListBuffer; // Buffer containing tools
|
||||
|
||||
|
@ -204,11 +207,12 @@ public:
|
|||
* @param aMinimalHeader = true to use a minimal header (no comments, no info)
|
||||
* @param aOffset = drill coordinates offset
|
||||
*/
|
||||
void SetOptions( bool aMirror, bool aMinimalHeader, wxPoint aOffset )
|
||||
void SetOptions( bool aMirror, bool aMinimalHeader, wxPoint aOffset, bool aMerge_PTH_NPTH )
|
||||
{
|
||||
m_mirror = aMirror;
|
||||
m_offset = aOffset;
|
||||
m_minimalHeader = aMinimalHeader;
|
||||
m_merge_PTH_NPTH = aMerge_PTH_NPTH;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -349,8 +353,10 @@ private:
|
|||
/**
|
||||
* Function printToolSummary
|
||||
* prints m_toolListBuffer[] tools to aOut and returns total hole count.
|
||||
* @param aOut = the current OUTPUTFORMATTER to print summary
|
||||
* @param aSummaryNPTH = true to print summary for NPTH, false for PTH
|
||||
*/
|
||||
unsigned printToolSummary( OUTPUTFORMATTER& aOut ) const;
|
||||
unsigned printToolSummary( OUTPUTFORMATTER& aOut, bool aSummaryNPTH ) const;
|
||||
|
||||
const std::string layerPairName( LAYER_PAIR aPair ) const;
|
||||
|
||||
|
|
|
@ -1454,7 +1454,7 @@ void LEGACY_PLUGIN::loadPAD( MODULE* aModule )
|
|||
case 'O': padshape = PAD_SHAPE_OVAL; break;
|
||||
case 'T': padshape = PAD_SHAPE_TRAPEZOID; break;
|
||||
default:
|
||||
m_error.Printf( _( "Unknown padshape '%c=0x%02x' on line: %d of module: '%s'" ),
|
||||
m_error.Printf( _( "Unknown padshape '%c=0x%02x' on line: %d of footprint: '%s'" ),
|
||||
padchar,
|
||||
padchar,
|
||||
m_reader->LineNumber(),
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
|
||||
#define FMT_OK_OVERWRITE _( "Library '%s' exists, OK to replace ?" )
|
||||
#define FMT_CREATE_LIB _( "Create New Library Folder (the .pretty folder is the library)" )
|
||||
#define FMT_OK_DELETE _( "OK to delete module %s in library '%s'" )
|
||||
#define FMT_OK_DELETE _( "OK to delete footprint %s in library '%s'" )
|
||||
#define FMT_IMPORT_MODULE _( "Import Footprint" )
|
||||
#define FMT_FILE_NOT_FOUND _( "File '%s' not found" )
|
||||
#define FMT_NOT_MODULE _( "Not a footprint file" )
|
||||
|
|
|
@ -493,11 +493,11 @@ MODULE* FOOTPRINT_EDIT_FRAME::SelectFootprint( BOARD* aPcb )
|
|||
for( ; module; module = module->Next() )
|
||||
listnames.Add( module->GetReference() );
|
||||
|
||||
msg.Printf( _( "Modules [%u items]" ), (unsigned) listnames.GetCount() );
|
||||
msg.Printf( _( "Footprints [%u items]" ), (unsigned) listnames.GetCount() );
|
||||
|
||||
wxArrayString headers;
|
||||
|
||||
headers.Add( _( "Module" ) );
|
||||
headers.Add( _( "Footprint" ) );
|
||||
|
||||
std::vector<wxArrayString> itemsToDisplay;
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ void FOOTPRINT_EDIT_FRAME::ReCreateMenuBar()
|
|||
// Save module in new lib
|
||||
AddMenuItem( fileMenu, ID_MODEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART,
|
||||
_( "S&ave Footprint in New Library" ),
|
||||
_( "Create a new library and save current module into it" ),
|
||||
_( "Create a new library and save current footprint into it" ),
|
||||
KiBitmap( new_library_xpm ) );
|
||||
|
||||
// Export module
|
||||
|
|
|
@ -168,11 +168,6 @@ void PCB_EDIT_FRAME::ReCreateMenuBar()
|
|||
_( "Generate IPC-D-356 netlist file" ),
|
||||
KiBitmap( netlist_xpm ) );
|
||||
|
||||
AddMenuItem( fabricationOutputsMenu, ID_PCB_GEN_CMP_FILE,
|
||||
_( "&Component (.cmp) File" ),
|
||||
_( "(Re)create components file (*.cmp) for CvPcb" ),
|
||||
KiBitmap( create_cmp_file_xpm ) );
|
||||
|
||||
AddMenuItem( fabricationOutputsMenu, ID_PCB_GEN_BOM_FILE_FROM_BOARD,
|
||||
_( "&BOM File" ),
|
||||
_( "Create a bill of materials from schematic" ),
|
||||
|
@ -222,6 +217,11 @@ void PCB_EDIT_FRAME::ReCreateMenuBar()
|
|||
_( "I&DFv3" ), _( "IDFv3 board and component export" ),
|
||||
KiBitmap( export_idf_xpm ) );
|
||||
|
||||
AddMenuItem( submenuexport, ID_PCB_GEN_CMP_FILE,
|
||||
_( "&Component (.cmp) File" ),
|
||||
_( "Export component file (*.cmp) for Eeschema footprint field back-annotation" ),
|
||||
KiBitmap( create_cmp_file_xpm ) );
|
||||
|
||||
AddMenuItem( filesMenu, submenuexport,
|
||||
ID_GEN_EXPORT_FILE, _( "E&xport" ),
|
||||
_( "Export board" ), KiBitmap( export_xpm ) );
|
||||
|
|
|
@ -249,7 +249,7 @@ void MoveFootprint( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
|||
}
|
||||
|
||||
|
||||
bool PCB_EDIT_FRAME::Delete_Module( MODULE* aModule, wxDC* aDC, bool aAskBeforeDeleting )
|
||||
bool PCB_EDIT_FRAME::Delete_Module( MODULE* aModule, wxDC* aDC )
|
||||
{
|
||||
wxString msg;
|
||||
|
||||
|
@ -258,21 +258,6 @@ bool PCB_EDIT_FRAME::Delete_Module( MODULE* aModule, wxDC* aDC, bool aAskBeforeD
|
|||
|
||||
SetMsgPanel( aModule );
|
||||
|
||||
/* Confirm module delete. */
|
||||
if( aAskBeforeDeleting )
|
||||
{
|
||||
msg.Printf( _( "Delete Footprint %s (value %s) ?" ),
|
||||
GetChars( aModule->GetReference() ),
|
||||
GetChars( aModule->GetValue() ) );
|
||||
|
||||
if( !IsOK( this, msg ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
OnModify();
|
||||
|
||||
/* Remove module from list, and put it in undo command list */
|
||||
m_Pcb->m_Modules.Remove( aModule );
|
||||
aModule->SetState( IS_DELETED, true );
|
||||
|
@ -285,6 +270,8 @@ bool PCB_EDIT_FRAME::Delete_Module( MODULE* aModule, wxDC* aDC, bool aAskBeforeD
|
|||
if( aDC )
|
||||
m_canvas->Refresh();
|
||||
|
||||
OnModify();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1905,7 +1905,7 @@ TEXTE_MODULE* PCB_PARSER::parseTEXTE_MODULE() throw( IO_ERROR, PARSE_ERROR )
|
|||
break; // Default type is user text.
|
||||
|
||||
default:
|
||||
THROW_IO_ERROR( wxString::Format( _( "cannot handle module text type %s" ),
|
||||
THROW_IO_ERROR( wxString::Format( _( "cannot handle footprint text type %s" ),
|
||||
GetChars( FromUTF8() ) ) );
|
||||
}
|
||||
|
||||
|
|
|
@ -86,6 +86,7 @@
|
|||
#define PCB_MAGNETIC_TRACKS_OPT wxT( "PcbMagTrackOpt" )
|
||||
#define SHOW_MICROWAVE_TOOLS wxT( "ShowMicrowaveTools" )
|
||||
#define SHOW_LAYER_MANAGER_TOOLS wxT( "ShowLayerManagerTools" )
|
||||
#define SHOW_PAGE_LIMITS_KEY wxT( "ShowPageLimits" )
|
||||
|
||||
|
||||
BEGIN_EVENT_TABLE( PCB_EDIT_FRAME, PCB_BASE_FRAME )
|
||||
|
@ -743,6 +744,7 @@ void PCB_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg )
|
|||
aCfg->Read( PCB_MAGNETIC_TRACKS_OPT, &g_MagneticTrackOption );
|
||||
aCfg->Read( SHOW_MICROWAVE_TOOLS, &m_show_microwave_tools );
|
||||
aCfg->Read( SHOW_LAYER_MANAGER_TOOLS, &m_show_layer_manager_tools );
|
||||
aCfg->Read( SHOW_PAGE_LIMITS_KEY, &m_showPageLimits );
|
||||
}
|
||||
|
||||
|
||||
|
@ -758,6 +760,7 @@ void PCB_EDIT_FRAME::SaveSettings( wxConfigBase* aCfg )
|
|||
aCfg->Write( PCB_MAGNETIC_TRACKS_OPT, (long) g_MagneticTrackOption );
|
||||
aCfg->Write( SHOW_MICROWAVE_TOOLS, (long) m_show_microwave_tools );
|
||||
aCfg->Write( SHOW_LAYER_MANAGER_TOOLS, (long)m_show_layer_manager_tools );
|
||||
aCfg->Write( SHOW_PAGE_LIMITS_KEY, m_showPageLimits );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ void PlotSilkScreen( BOARD *aBoard, PLOTTER* aPlotter, LSET aLayerMask,
|
|||
{
|
||||
if( ! itemplotter.PlotAllTextsModule( module ) )
|
||||
{
|
||||
wxLogMessage( _( "Your BOARD has a bad layer number for module %s" ),
|
||||
wxLogMessage( _( "Your BOARD has a bad layer number for footprint %s" ),
|
||||
GetChars( module->GetReference() ) );
|
||||
}
|
||||
}
|
||||
|
@ -298,7 +298,7 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
|
|||
{
|
||||
if( ! itemplotter.PlotAllTextsModule( module ) )
|
||||
{
|
||||
wxLogMessage( _( "Your BOARD has a bad layer number for module %s" ),
|
||||
wxLogMessage( _( "Your BOARD has a bad layer number for footprint %s" ),
|
||||
GetChars( module->GetReference() ) );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,9 +87,6 @@ bool PNS_LINE_PLACER::ToggleVia( bool aEnabled )
|
|||
if( !aEnabled )
|
||||
m_head.RemoveVia();
|
||||
|
||||
if( !m_idle )
|
||||
Move( m_currentEnd, NULL );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1021,7 +1018,6 @@ void PNS_LINE_PLACER::UpdateSizes( const PNS_SIZES_SETTINGS& aSizes )
|
|||
if( !m_idle )
|
||||
{
|
||||
initPlacement( m_splitSeg );
|
||||
Move ( m_currentEnd, NULL );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -61,11 +61,12 @@ void PNS_MEANDERED_LINE::MeanderSegment( const SEG& aBase, int aBaseIndex )
|
|||
|
||||
do
|
||||
{
|
||||
PNS_MEANDER_SHAPE* m = new PNS_MEANDER_SHAPE( m_placer, m_width, m_dual );
|
||||
m->SetBaselineOffset( m_baselineOffset );
|
||||
m->SetBaseIndex( aBaseIndex );
|
||||
PNS_MEANDER_SHAPE m( m_placer, m_width, m_dual );
|
||||
|
||||
double thr = (double) m->spacing();
|
||||
m.SetBaselineOffset( m_baselineOffset );
|
||||
m.SetBaseIndex( aBaseIndex );
|
||||
|
||||
double thr = (double) m.spacing();
|
||||
|
||||
bool fail = false;
|
||||
double remaining = base_len - ( m_last - aBase.A ).EuclideanNorm();
|
||||
|
@ -79,10 +80,10 @@ void PNS_MEANDERED_LINE::MeanderSegment( const SEG& aBase, int aBaseIndex )
|
|||
{
|
||||
for( int i = 0; i < 2; i++ )
|
||||
{
|
||||
if ( m->Fit( MT_CHECK_START, aBase, m_last, i ) )
|
||||
if ( m.Fit( MT_CHECK_START, aBase, m_last, i ) )
|
||||
{
|
||||
turning = true;
|
||||
AddMeander( m );
|
||||
AddMeander( new PNS_MEANDER_SHAPE( m ) );
|
||||
side = !i;
|
||||
started = true;
|
||||
break;
|
||||
|
@ -95,9 +96,9 @@ void PNS_MEANDERED_LINE::MeanderSegment( const SEG& aBase, int aBaseIndex )
|
|||
|
||||
for( int i = 0; i < 2; i++ )
|
||||
{
|
||||
if ( m->Fit ( MT_SINGLE, aBase, m_last, i ) )
|
||||
if ( m.Fit ( MT_SINGLE, aBase, m_last, i ) )
|
||||
{
|
||||
AddMeander( m );
|
||||
AddMeander( new PNS_MEANDER_SHAPE( m ) );
|
||||
fail = false;
|
||||
started = false;
|
||||
side = !i;
|
||||
|
@ -106,17 +107,17 @@ void PNS_MEANDERED_LINE::MeanderSegment( const SEG& aBase, int aBaseIndex )
|
|||
}
|
||||
}
|
||||
} else {
|
||||
bool rv = m->Fit( MT_CHECK_FINISH, aBase, m_last, side );
|
||||
bool rv = m.Fit( MT_CHECK_FINISH, aBase, m_last, side );
|
||||
|
||||
if( rv )
|
||||
{
|
||||
m->Fit( MT_TURN, aBase, m_last, side );
|
||||
AddMeander( m );
|
||||
m.Fit( MT_TURN, aBase, m_last, side );
|
||||
AddMeander( new PNS_MEANDER_SHAPE( m ) );
|
||||
started = true;
|
||||
} else {
|
||||
m->Fit( MT_FINISH, aBase, m_last, side );
|
||||
m.Fit( MT_FINISH, aBase, m_last, side );
|
||||
started = false;
|
||||
AddMeander( m );
|
||||
AddMeander( new PNS_MEANDER_SHAPE( m ) );
|
||||
turning = false;
|
||||
}
|
||||
|
||||
|
@ -124,9 +125,9 @@ void PNS_MEANDERED_LINE::MeanderSegment( const SEG& aBase, int aBaseIndex )
|
|||
}
|
||||
} else if( started )
|
||||
{
|
||||
bool rv = m->Fit( MT_FINISH, aBase, m_last, side );
|
||||
bool rv = m.Fit( MT_FINISH, aBase, m_last, side );
|
||||
if( rv )
|
||||
AddMeander( m );
|
||||
AddMeander( new PNS_MEANDER_SHAPE( m ) );
|
||||
|
||||
break;
|
||||
|
||||
|
|
|
@ -416,6 +416,11 @@ public:
|
|||
m_baselineOffset = 0;
|
||||
}
|
||||
|
||||
~PNS_MEANDERED_LINE()
|
||||
{
|
||||
Clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Function AddCorner()
|
||||
*
|
||||
|
|
|
@ -458,9 +458,9 @@ PNS_ROUTER::PNS_ROUTER()
|
|||
m_showInterSteps = false;
|
||||
m_snapshotIter = 0;
|
||||
m_view = NULL;
|
||||
m_currentEndItem = NULL;
|
||||
m_snappingEnabled = false;
|
||||
m_violation = false;
|
||||
m_gridHelper = NULL;
|
||||
|
||||
}
|
||||
|
||||
|
@ -645,7 +645,6 @@ bool PNS_ROUTER::StartRouting( const VECTOR2I& aP, PNS_ITEM* aStartItem, int aLa
|
|||
return false;
|
||||
|
||||
m_currentEnd = aP;
|
||||
m_currentEndItem = NULL;
|
||||
m_state = ROUTE_TRACK;
|
||||
return rv;
|
||||
}
|
||||
|
@ -723,7 +722,6 @@ void PNS_ROUTER::DisplayDebugPoint( const VECTOR2I aPos, int aType )
|
|||
void PNS_ROUTER::Move( const VECTOR2I& aP, PNS_ITEM* endItem )
|
||||
{
|
||||
m_currentEnd = aP;
|
||||
m_currentEndItem = endItem;
|
||||
|
||||
switch( m_state )
|
||||
{
|
||||
|
@ -826,7 +824,6 @@ void PNS_ROUTER::UpdateSizes ( const PNS_SIZES_SETTINGS& aSizes )
|
|||
if( m_state == ROUTE_TRACK)
|
||||
{
|
||||
m_placer->UpdateSizes( m_sizes );
|
||||
movePlacing( m_currentEnd, m_currentEndItem );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -996,7 +993,6 @@ void PNS_ROUTER::FlipPosture()
|
|||
if( m_state == ROUTE_TRACK )
|
||||
{
|
||||
m_placer->FlipPosture();
|
||||
movePlacing ( m_currentEnd, m_currentEndItem );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -263,13 +263,9 @@ private:
|
|||
KIGFX::VIEW* m_view;
|
||||
KIGFX::VIEW_GROUP* m_previewItems;
|
||||
|
||||
PNS_ITEM* m_currentEndItem;
|
||||
|
||||
bool m_snappingEnabled;
|
||||
bool m_violation;
|
||||
|
||||
// optHoverItem m_startItem, m_endItem;
|
||||
|
||||
PNS_ROUTING_SETTINGS m_settings;
|
||||
PNS_PCBNEW_CLEARANCE_FUNC* m_clearanceFunc;
|
||||
|
||||
|
|
|
@ -382,7 +382,7 @@ void ROUTER_TOOL::switchLayerOnViaPlacement()
|
|||
}
|
||||
|
||||
|
||||
bool ROUTER_TOOL::onViaCommand( VIATYPE_T aType )
|
||||
bool ROUTER_TOOL::onViaCommand( TOOL_EVENT& aEvent, VIATYPE_T aType )
|
||||
{
|
||||
BOARD_DESIGN_SETTINGS& bds = m_board->GetDesignSettings();
|
||||
|
||||
|
@ -475,6 +475,8 @@ bool ROUTER_TOOL::onViaCommand( VIATYPE_T aType )
|
|||
m_router->UpdateSizes( sizes );
|
||||
m_router->ToggleViaPlacement();
|
||||
|
||||
updateEndItem( aEvent );
|
||||
|
||||
m_router->Move( m_endSnapPoint, m_endItem ); // refresh
|
||||
|
||||
return false;
|
||||
|
@ -576,15 +578,15 @@ void ROUTER_TOOL::performRouting()
|
|||
}
|
||||
else if( evt->IsAction( &ACT_PlaceThroughVia ) )
|
||||
{
|
||||
onViaCommand( VIA_THROUGH );
|
||||
onViaCommand( *evt, VIA_THROUGH );
|
||||
}
|
||||
else if( evt->IsAction( &ACT_PlaceBlindVia ) )
|
||||
{
|
||||
onViaCommand( VIA_BLIND_BURIED );
|
||||
onViaCommand( *evt, VIA_BLIND_BURIED );
|
||||
}
|
||||
else if( evt->IsAction( &ACT_PlaceMicroVia ) )
|
||||
{
|
||||
onViaCommand( VIA_MICROVIA );
|
||||
onViaCommand( *evt, VIA_MICROVIA );
|
||||
}
|
||||
else if( evt->IsAction( &ACT_SwitchPosture ) )
|
||||
{
|
||||
|
|
|
@ -54,7 +54,7 @@ private:
|
|||
|
||||
int getStartLayer( const PNS_ITEM* aItem );
|
||||
void switchLayerOnViaPlacement();
|
||||
bool onViaCommand( VIATYPE_T aType );
|
||||
bool onViaCommand( TOOL_EVENT& aEvent, VIATYPE_T aType );
|
||||
|
||||
bool prepareInteractive();
|
||||
bool finishInteractive();
|
||||
|
|
|
@ -2005,10 +2005,10 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard )
|
|||
if( netcode == 0 )
|
||||
continue;
|
||||
|
||||
if( old_netcode != netcode
|
||||
|| old_width != track->GetWidth()
|
||||
|| old_layer != track->GetLayer()
|
||||
|| (path && path->points.back() != mapPt(track->GetStart()) )
|
||||
if( old_netcode != netcode ||
|
||||
old_width != track->GetWidth() ||
|
||||
old_layer != track->GetLayer() ||
|
||||
(path && path->points.back() != mapPt(track->GetStart()) )
|
||||
)
|
||||
{
|
||||
old_width = track->GetWidth();
|
||||
|
@ -2042,7 +2042,8 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard )
|
|||
path->AppendPoint( mapPt( track->GetStart() ) );
|
||||
}
|
||||
|
||||
path->AppendPoint( mapPt( track->GetEnd() ) );
|
||||
if( path ) // Should not occur
|
||||
path->AppendPoint( mapPt( track->GetEnd() ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -385,7 +385,7 @@ TOOL_ACTION COMMON_ACTIONS::placeTarget( "pcbnew.EditorControl.placeTarget",
|
|||
|
||||
TOOL_ACTION COMMON_ACTIONS::placeModule( "pcbnew.EditorControl.placeModule",
|
||||
AS_GLOBAL, TOOL_ACTION::LegacyHotKey( HK_ADD_MODULE ),
|
||||
_( "Add modules" ), _( "Add modules" ), NULL, AF_ACTIVATE );
|
||||
_( "Add footprints" ), _( "Add footprints" ), NULL, AF_ACTIVATE );
|
||||
|
||||
TOOL_ACTION COMMON_ACTIONS::drillOrigin( "pcbnew.EditorControl.drillOrigin",
|
||||
AS_GLOBAL, 0,
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include <gal/graphics_abstraction_layer.h>
|
||||
#include <tool/tool_manager.h>
|
||||
#include <router/direction.h>
|
||||
#include <ratsnest_data.h>
|
||||
|
||||
#include <class_board.h>
|
||||
#include <class_edge_mod.h>
|
||||
|
@ -1125,6 +1126,7 @@ int DRAWING_TOOL::drawZone( bool aKeepout )
|
|||
static_cast<PCB_EDIT_FRAME*>( m_frame )->Fill_Zone( zone );
|
||||
|
||||
zone->ViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
||||
m_board->GetRatsnest()->Update( zone );
|
||||
|
||||
m_frame->OnModify();
|
||||
m_frame->SaveCopyInUndoList( zone, UR_NEW );
|
||||
|
|
|
@ -219,7 +219,7 @@ int PCB_EDITOR_CONTROL::PlaceModule( const TOOL_EVENT& aEvent )
|
|||
controls->SetSnapping( true );
|
||||
|
||||
Activate();
|
||||
m_frame->SetToolID( ID_PCB_MODULE_BUTT, wxCURSOR_HAND, _( "Add module" ) );
|
||||
m_frame->SetToolID( ID_PCB_MODULE_BUTT, wxCURSOR_HAND, _( "Add footprint" ) );
|
||||
|
||||
// Main loop: keep receiving events
|
||||
while( OPT_TOOL_EVENT evt = Wait() )
|
||||
|
|
|
@ -345,11 +345,9 @@ void PCB_EDIT_FRAME::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER*
|
|||
SetCurItem( NULL ); // This outline can be deleted when merging outlines
|
||||
|
||||
// Combine zones if possible
|
||||
wxBusyCursor dummy;
|
||||
GetBoard()->OnAreaPolygonModified( &s_AuxiliaryList, aZone );
|
||||
m_canvas->Refresh();
|
||||
|
||||
|
||||
int ii = GetBoard()->GetAreaIndex( aZone ); // test if aZone exists
|
||||
|
||||
if( ii < 0 )
|
||||
|
|
|
@ -442,12 +442,12 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList_NG( BOARD* aPcb )
|
|||
if(g_DumpZonesWhenFilling)
|
||||
dumper->Write( &holes, "feature-holes" );
|
||||
|
||||
holes.Simplify();
|
||||
holes.Simplify( true );
|
||||
|
||||
if (g_DumpZonesWhenFilling)
|
||||
dumper->Write( &holes, "feature-holes-postsimplify" );
|
||||
|
||||
solidAreas.BooleanSubtract( holes );
|
||||
solidAreas.BooleanSubtract( holes, true );
|
||||
|
||||
if (g_DumpZonesWhenFilling)
|
||||
dumper->Write( &solidAreas, "solid-areas-minus-holes" );
|
||||
|
|
|
@ -183,6 +183,7 @@ PolyNode::PolyNode(): Childs(), Parent(0), Index(0), m_IsOpen(false)
|
|||
{
|
||||
// Avoid uninitialized vars
|
||||
m_endtype = etClosedPolygon;
|
||||
m_jointype = jtSquare;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -123,7 +123,8 @@ detect_pretty_repos()
|
|||
|
||||
# Use github API to list repos for org KiCad, then subset the JSON reply for only
|
||||
# *.pretty repos in the "full_name" variable.
|
||||
PRETTY_REPOS=`curl https://api.github.com/orgs/KiCad/repos?per_page=2000 2> /dev/null \
|
||||
PRETTY_REPOS=`curl -s "https://api.github.com/orgs/KiCad/repos?per_page=99&page=1" \
|
||||
"https://api.github.com/orgs/KiCad/repos?per_page=99&page=2" 2> /dev/null \
|
||||
| sed $SED_EREGEXP 's:.+ "full_name".*"KiCad/(.+\.pretty)",:\1:p;d'`
|
||||
|
||||
#echo "PRETTY_REPOS:$PRETTY_REPOS"
|
||||
|
|
Loading…
Reference in New Issue