Compare commits
71 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bff0068065 | |||
| d0932944fc | |||
| 5c3a56bdcc | |||
| e9bfcc28c3 | |||
| 3cdac44ac2 | |||
| 2cebaa2d79 | |||
| 609b996abe | |||
| ea0c187e09 | |||
| bf6cd8445a | |||
| c50763bd5b | |||
| 1aa6932b12 | |||
| 342ec2be0e | |||
| d451800d0a | |||
| 48435c5cb3 | |||
| 8999ae9fb2 | |||
| 8184ba1cf3 | |||
| 228ed4ea41 | |||
| 3031a3f5cf | |||
| 42aa93e34b | |||
| eb8b407717 | |||
| eaea15fbef | |||
| 72a69f9428 | |||
| c66656c5d4 | |||
| 14363262c2 | |||
| 509e71fdb3 | |||
| 6c5e2f3900 | |||
| f46272bed9 | |||
| 2f7b3ab56e | |||
| b526227529 | |||
| e93c815e02 | |||
| 5c8f7c7a3a | |||
| 7fb6698e29 | |||
| f11b426151 | |||
| 827dad3197 | |||
| 593c974063 | |||
| 7b0d981f21 | |||
| a68b3cb486 | |||
| 6e9237593d | |||
| 7f49fc9a03 | |||
| 19e06f13fc | |||
| da9f68911c | |||
| 407aa9c586 | |||
| c1b46e6ed8 | |||
| e511afdf0f | |||
| 22fb7dafba | |||
| 9dc5bc4c66 | |||
| 2afee8fb58 | |||
| 08d9b362be | |||
| 4b85adb7d3 | |||
| 4749921bbc | |||
| bbba5d5c47 | |||
| 72b0593fdb | |||
| 20b6346180 | |||
| 21d700facc | |||
| ebdc1e4b17 | |||
| 7f9a07334e | |||
| f31f129ce7 | |||
| 49d75d5850 | |||
| d5aef07816 | |||
| 3e8b4503d1 | |||
| 4141a250fe | |||
| 19075e3434 | |||
| c3b51b0d07 | |||
| a356293fee | |||
| 8f79b4fb11 | |||
| 34f1c0ea2d | |||
| 16c2c398e9 | |||
| a988d7a2f1 | |||
| 91391a5975 | |||
| 6cc91a074b | |||
| ce81524b83 |
@@ -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 );
|
||||
|
||||
@@ -572,7 +572,10 @@ void EDA_3D_CANVAS::buildTechLayers3DView( REPORTER* aErrorMessages, REPORTER* a
|
||||
|
||||
// bufferPolys contains polygons to merge. Many overlaps .
|
||||
// Calculate merged polygons and remove pads and vias holes
|
||||
if( bufferPolys.IsEmpty() )
|
||||
if( layer != B_Mask && layer != F_Mask && bufferPolys.IsEmpty() )
|
||||
// if a layer has no iten to draw, skip it
|
||||
// However solder mask layers are negative layers, so no item
|
||||
// means only a full layer mask
|
||||
continue;
|
||||
|
||||
// Solder mask layers are "negative" layers.
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
+37
-26
@@ -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()
|
||||
|
||||
@@ -21,6 +21,13 @@ set_source_files_properties( bitmap2cmp_gui.cpp PROPERTIES
|
||||
COMPILE_DEFINITIONS "COMPILING_DLL"
|
||||
)
|
||||
|
||||
if( MINGW )
|
||||
# BITMAP2COMPONENT_RESOURCES variable is set by the macro.
|
||||
mingw_resource_compiler( bitmap2component )
|
||||
else()
|
||||
set( BITMAP2COMPONENT_RESOURCES bitmap2component.rc )
|
||||
endif()
|
||||
|
||||
if( APPLE )
|
||||
# setup bundle
|
||||
set( BITMAP2COMPONENT_RESOURCES bitmap2component.icns )
|
||||
@@ -81,11 +88,3 @@ if( false ) # linker map with cross reference
|
||||
LINK_FLAGS "${TO_LINKER},-cref ${TO_LINKER},-Map=bitmap2component.map"
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
if( MINGW )
|
||||
# BITMAP2COMPONENT_RESOURCES variable is set by the macro.
|
||||
mingw_resource_compiler( bitmap2component )
|
||||
else()
|
||||
set( BITMAP2COMPONENT_RESOURCES bitmap2component.rc )
|
||||
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>
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -89,36 +89,6 @@ const PAGE_INFO PAGE_INFO::pageUSLedger( wxSize( 17000, 11000 ), wxT( "USLedge
|
||||
int PAGE_INFO::s_user_width = 17000;
|
||||
int PAGE_INFO::s_user_height = 11000;
|
||||
|
||||
/*
|
||||
wxArrayString PAGE_INFO::GetStandardSizes()
|
||||
{
|
||||
wxArrayString ret;
|
||||
|
||||
static const PAGE_INFO* stdPageSizes[] = {
|
||||
&pageA4,
|
||||
&pageA3,
|
||||
&pageA2,
|
||||
&pageA1,
|
||||
&pageA0,
|
||||
&pageA,
|
||||
&pageB,
|
||||
&pageC,
|
||||
&pageD,
|
||||
&pageE,
|
||||
// &pageGERBER, // standard?
|
||||
&pageUSLetter,
|
||||
&pageUSLegal,
|
||||
&pageUSLedger,
|
||||
&pageUser,
|
||||
};
|
||||
|
||||
for( unsigned i=0; i < DIM( stdPageSizes ); ++i )
|
||||
ret.Add( stdPageSizes[i]->GetType() );
|
||||
|
||||
return ret;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
inline void PAGE_INFO::updatePortrait()
|
||||
{
|
||||
|
||||
@@ -223,8 +223,6 @@ void HPGL_PLOTTER::SetViewport( const wxPoint& aOffset, double aIusPerDecimil,
|
||||
paperSize.y *= 10.0 * aIusPerDecimil;
|
||||
SetDefaultLineWidth( 0 ); // HPGL has pen sizes instead
|
||||
m_plotMirror = aMirror;
|
||||
penOverlap = 0;
|
||||
penDiameter = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -685,7 +683,12 @@ void HPGL_PLOTTER::FlashPadTrapez( const wxPoint& aPadPos, const wxPoint* aCorne
|
||||
}
|
||||
|
||||
// Calculation of dd = number of segments was traced to fill.
|
||||
jj = jj / (int) ( penDiameter - penOverlap );
|
||||
int delta = (int) ( penDiameter - penOverlap );
|
||||
|
||||
if( delta )
|
||||
jj = jj / delta;
|
||||
else
|
||||
jj = 0;
|
||||
|
||||
// Trace the outline.
|
||||
for( ; jj > 0; jj-- )
|
||||
|
||||
@@ -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
|
||||
|
||||
+1
-70
@@ -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();
|
||||
|
||||
};
|
||||
|
||||
@@ -52,26 +52,29 @@
|
||||
|
||||
|
||||
// List of page formats.
|
||||
// should be statically initialized, because we need both
|
||||
// the translated and the not translated version.
|
||||
// they are prefixed by "_HKI" (already in use for hotkeys) instead of "_",
|
||||
// because we need both the translated and the not translated version.
|
||||
// when displayed in dialog we should explicitely call wxGetTranslation()
|
||||
// to show the translated version.
|
||||
// See hotkeys_basic.h for more info
|
||||
#define _HKI( x ) wxT( x )
|
||||
static const wxString pageFmts[] =
|
||||
{
|
||||
_("A4 210x297mm"),
|
||||
_("A3 297x420mm"),
|
||||
_("A2 420x594mm"),
|
||||
_("A1 594x841mm"),
|
||||
_("A0 841x1189mm"),
|
||||
_("A 8.5x11in"),
|
||||
_("B 11x17in"),
|
||||
_("C 17x22in"),
|
||||
_("D 22x34in"),
|
||||
_("E 34x44in"),
|
||||
_("USLetter 8.5x11in"), // USLetter without space is correct
|
||||
_("USLegal 8.5x14in"), // USLegal without space is correct
|
||||
_("USLedger 11x17in"), // USLedger without space is correct
|
||||
_("User (Custom)"),
|
||||
_HKI("A4 210x297mm"),
|
||||
_HKI("A3 297x420mm"),
|
||||
_HKI("A2 420x594mm"),
|
||||
_HKI("A1 594x841mm"),
|
||||
_HKI("A0 841x1189mm"),
|
||||
_HKI("A 8.5x11in"),
|
||||
_HKI("B 11x17in"),
|
||||
_HKI("C 17x22in"),
|
||||
_HKI("D 22x34in"),
|
||||
_HKI("E 34x44in"),
|
||||
_HKI("USLetter 8.5x11in"), // USLetter without space is correct
|
||||
_HKI("USLegal 8.5x14in"), // USLegal without space is correct
|
||||
_HKI("USLedger 11x17in"), // USLedger without space is correct
|
||||
_HKI("User (Custom)"), // size defined by user. The string must contain "Custom"
|
||||
// to be reconized in code
|
||||
};
|
||||
|
||||
void EDA_DRAW_FRAME::Process_PageSettings( wxCommandEvent& event )
|
||||
|
||||
@@ -45,6 +45,13 @@ WX_HTML_REPORT_PANEL::~WX_HTML_REPORT_PANEL()
|
||||
}
|
||||
|
||||
|
||||
void WX_HTML_REPORT_PANEL::MsgPanelSetMinSize( const wxSize& aMinSize )
|
||||
{
|
||||
m_htmlView->SetMinSize( aMinSize );
|
||||
GetSizer()->SetSizeHints( this );
|
||||
}
|
||||
|
||||
|
||||
REPORTER& WX_HTML_REPORT_PANEL::Reporter()
|
||||
{
|
||||
return m_reporter;
|
||||
|
||||
@@ -46,6 +46,9 @@ public:
|
||||
const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL );
|
||||
~WX_HTML_REPORT_PANEL();
|
||||
|
||||
///> Set the min size of the area which displays html messages:
|
||||
void MsgPanelSetMinSize( const wxSize& aMinSize );
|
||||
|
||||
///> returns the reporter object that reports to this panel
|
||||
REPORTER& Reporter();
|
||||
|
||||
|
||||
+39
-59
@@ -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
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -147,6 +147,9 @@ void EDA_DRAW_PANEL_GAL::onPaint( wxPaintEvent& WXUNUSED( aEvent ) )
|
||||
m_gal->BeginDrawing();
|
||||
m_gal->ClearScreen( m_painter->GetSettings()->GetBackgroundColor() );
|
||||
|
||||
KIGFX::COLOR4D gridColor = static_cast<KIGFX::PCB_RENDER_SETTINGS*> (m_painter->GetSettings())->GetLayerColor( ITEM_GAL_LAYER ( GRID_VISIBLE ) );
|
||||
m_gal->SetGridColor ( gridColor );
|
||||
|
||||
if( m_view->IsDirty() )
|
||||
{
|
||||
m_view->ClearTargets();
|
||||
|
||||
+3
-2
@@ -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();
|
||||
|
||||
|
||||
@@ -257,38 +257,6 @@ void CAIRO_GAL::DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEnd
|
||||
}
|
||||
|
||||
|
||||
void CAIRO_GAL::DrawPolyline( std::deque<VECTOR2D>& aPointList )
|
||||
{
|
||||
// Iterate over the point list and draw the segments
|
||||
std::deque<VECTOR2D>::const_iterator it = aPointList.begin();
|
||||
|
||||
cairo_move_to( currentContext, it->x, it->y );
|
||||
|
||||
for( ++it; it != aPointList.end(); ++it )
|
||||
{
|
||||
cairo_line_to( currentContext, it->x, it->y );
|
||||
}
|
||||
|
||||
isElementAdded = true;
|
||||
}
|
||||
|
||||
|
||||
void CAIRO_GAL::DrawPolygon( const std::deque<VECTOR2D>& aPointList )
|
||||
{
|
||||
// Iterate over the point list and draw the polygon
|
||||
std::deque<VECTOR2D>::const_iterator it = aPointList.begin();
|
||||
|
||||
cairo_move_to( currentContext, it->x, it->y );
|
||||
|
||||
for( ++it; it != aPointList.end(); ++it )
|
||||
{
|
||||
cairo_line_to( currentContext, it->x, it->y );
|
||||
}
|
||||
|
||||
isElementAdded = true;
|
||||
}
|
||||
|
||||
|
||||
void CAIRO_GAL::DrawCurve( const VECTOR2D& aStartPoint, const VECTOR2D& aControlPointA,
|
||||
const VECTOR2D& aControlPointB, const VECTOR2D& aEndPoint )
|
||||
{
|
||||
@@ -1059,6 +1027,39 @@ void CAIRO_GAL::setCompositor()
|
||||
}
|
||||
|
||||
|
||||
void CAIRO_GAL::drawPoly( const std::deque<VECTOR2D>& aPointList )
|
||||
{
|
||||
// Iterate over the point list and draw the segments
|
||||
std::deque<VECTOR2D>::const_iterator it = aPointList.begin();
|
||||
|
||||
cairo_move_to( currentContext, it->x, it->y );
|
||||
|
||||
for( ++it; it != aPointList.end(); ++it )
|
||||
{
|
||||
cairo_line_to( currentContext, it->x, it->y );
|
||||
}
|
||||
|
||||
isElementAdded = true;
|
||||
}
|
||||
|
||||
|
||||
void CAIRO_GAL::drawPoly( const VECTOR2D aPointList[], int aListSize )
|
||||
{
|
||||
// Iterate over the point list and draw the segments
|
||||
const VECTOR2D* ptr = aPointList;
|
||||
|
||||
cairo_move_to( currentContext, ptr->x, ptr->y );
|
||||
|
||||
for( int i = 0; i < aListSize; ++i )
|
||||
{
|
||||
++ptr;
|
||||
cairo_line_to( currentContext, ptr->x, ptr->y );
|
||||
}
|
||||
|
||||
isElementAdded = true;
|
||||
}
|
||||
|
||||
|
||||
unsigned int CAIRO_GAL::getNewGroupNumber()
|
||||
{
|
||||
wxASSERT_MSG( groups.size() < std::numeric_limits<unsigned int>::max(),
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (C) 2012 Torsten Hueter, torstenhtr <at> gmx.de
|
||||
* Copyright (C) 2012 Kicad Developers, see change_log.txt for contributors.
|
||||
* Copyright (C) 2013-2015 CERN
|
||||
* Copyright (C) 2013-2016 CERN
|
||||
* @author Maciej Suminski <maciej.suminski@cern.ch>
|
||||
*
|
||||
* Graphics Abstraction Layer (GAL) for OpenGL
|
||||
@@ -358,7 +358,7 @@ void OPENGL_GAL::DrawArc( const VECTOR2D& aCenterPoint, double aRadius, double a
|
||||
SWAP( aStartAngle, >, aEndAngle );
|
||||
|
||||
Save();
|
||||
currentManager->Translate( aCenterPoint.x, aCenterPoint.y, layerDepth );
|
||||
currentManager->Translate( aCenterPoint.x, aCenterPoint.y, 0.0 );
|
||||
|
||||
if( isStrokeEnabled )
|
||||
{
|
||||
@@ -448,7 +448,7 @@ void OPENGL_GAL::DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEn
|
||||
}
|
||||
|
||||
|
||||
void OPENGL_GAL::DrawPolyline( std::deque<VECTOR2D>& aPointList )
|
||||
void OPENGL_GAL::DrawPolyline( const std::deque<VECTOR2D>& aPointList )
|
||||
{
|
||||
if( aPointList.empty() )
|
||||
return;
|
||||
@@ -476,19 +476,43 @@ void OPENGL_GAL::DrawPolyline( std::deque<VECTOR2D>& aPointList )
|
||||
}
|
||||
|
||||
|
||||
void OPENGL_GAL::DrawPolyline( const VECTOR2D aPointList[], int aListSize )
|
||||
{
|
||||
currentManager->Color( strokeColor.r, strokeColor.g, strokeColor.b, strokeColor.a );
|
||||
|
||||
// Start from the second point
|
||||
for( int i = 1; i < aListSize; ++i )
|
||||
{
|
||||
const VECTOR2D startEndVector = ( aPointList[i] - aPointList[i - 1] );
|
||||
double lineAngle = startEndVector.Angle();
|
||||
|
||||
drawLineQuad( aPointList[i - 1], aPointList[i] );
|
||||
|
||||
// There is no need to draw line caps on both ends of polyline's segments
|
||||
drawFilledSemiCircle( aPointList[i - 1], lineWidth / 2, lineAngle + M_PI / 2 );
|
||||
}
|
||||
|
||||
// ..and now - draw the ending cap
|
||||
const VECTOR2D startEndVector = ( aPointList[aListSize - 1] - aPointList[aListSize - 2] );
|
||||
double lineAngle = startEndVector.Angle();
|
||||
drawFilledSemiCircle( aPointList[aListSize - 1], lineWidth / 2, lineAngle - M_PI / 2 );
|
||||
}
|
||||
|
||||
|
||||
void OPENGL_GAL::DrawPolygon( const std::deque<VECTOR2D>& aPointList )
|
||||
{
|
||||
// Any non convex polygon needs to be tesselated
|
||||
// for this purpose the GLU standard functions are used
|
||||
currentManager->Shader( SHADER_NONE );
|
||||
currentManager->Color( fillColor.r, fillColor.g, fillColor.b, fillColor.a );
|
||||
|
||||
// Any non convex polygon needs to be tesselated
|
||||
// for this purpose the GLU standard functions are used
|
||||
TessParams params = { currentManager, tessIntersects };
|
||||
gluTessBeginPolygon( tesselator, ¶ms );
|
||||
gluTessBeginContour( tesselator );
|
||||
|
||||
boost::shared_array<GLdouble> points( new GLdouble[3 * aPointList.size()] );
|
||||
int v = 0;
|
||||
|
||||
for( std::deque<VECTOR2D>::const_iterator it = aPointList.begin(); it != aPointList.end(); ++it )
|
||||
{
|
||||
points[v] = it->x;
|
||||
@@ -508,6 +532,41 @@ void OPENGL_GAL::DrawPolygon( const std::deque<VECTOR2D>& aPointList )
|
||||
}
|
||||
|
||||
|
||||
void OPENGL_GAL::DrawPolygon( const VECTOR2D aPointList[], int aListSize )
|
||||
{
|
||||
currentManager->Shader( SHADER_NONE );
|
||||
currentManager->Color( fillColor.r, fillColor.g, fillColor.b, fillColor.a );
|
||||
|
||||
// Any non convex polygon needs to be tesselated
|
||||
// for this purpose the GLU standard functions are used
|
||||
TessParams params = { currentManager, tessIntersects };
|
||||
gluTessBeginPolygon( tesselator, ¶ms );
|
||||
gluTessBeginContour( tesselator );
|
||||
|
||||
boost::shared_array<GLdouble> points( new GLdouble[3 * aListSize] );
|
||||
int v = 0;
|
||||
const VECTOR2D* ptr = aPointList;
|
||||
|
||||
for( int i = 0; i < aListSize; ++i )
|
||||
{
|
||||
points[v] = ptr->x;
|
||||
points[v + 1] = ptr->y;
|
||||
points[v + 2] = layerDepth;
|
||||
gluTessVertex( tesselator, &points[v], &points[v] );
|
||||
++ptr;
|
||||
v += 3;
|
||||
}
|
||||
|
||||
gluTessEndContour( tesselator );
|
||||
gluTessEndPolygon( tesselator );
|
||||
|
||||
// Free allocated intersecting points
|
||||
tessIntersects.clear();
|
||||
|
||||
// vertexList destroyed here
|
||||
}
|
||||
|
||||
|
||||
void OPENGL_GAL::DrawCurve( const VECTOR2D& aStartPoint, const VECTOR2D& aControlPointA,
|
||||
const VECTOR2D& aControlPointB, const VECTOR2D& aEndPoint )
|
||||
{
|
||||
@@ -962,7 +1021,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
|
||||
|
||||
+22
-80
@@ -28,33 +28,26 @@
|
||||
* @brief Functions for file management
|
||||
*/
|
||||
|
||||
// For compilers that support precompilation, includes "wx.h".
|
||||
#include <fctsys.h>
|
||||
#include <pgm_base.h>
|
||||
#include <confirm.h>
|
||||
|
||||
#include <common.h>
|
||||
#include <macros.h>
|
||||
#include <gestfich.h>
|
||||
|
||||
#include <wx/mimetype.h>
|
||||
#include <wx/filename.h>
|
||||
#include <wx/dir.h>
|
||||
|
||||
// For compilers that support precompilation, includes "wx.h".
|
||||
#include <fctsys.h>
|
||||
#include <pgm_base.h>
|
||||
#include <confirm.h>
|
||||
#include <common.h>
|
||||
#include <macros.h>
|
||||
|
||||
#include <gestfich.h>
|
||||
|
||||
void AddDelimiterString( wxString& string )
|
||||
{
|
||||
wxString text;
|
||||
|
||||
if( !string.StartsWith( wxT( "\"" ) ) )
|
||||
text = wxT( "\"" );
|
||||
|
||||
text += string;
|
||||
|
||||
if( (text.Last() != '"' ) || (text.length() <= 1) )
|
||||
text += wxT( "\"" );
|
||||
|
||||
string = text;
|
||||
{
|
||||
string.Prepend ( wxT( "\"" ) );
|
||||
string.Append ( wxT( "\"" ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -227,6 +220,8 @@ int ExecuteFile( wxWindow* frame, const wxString& ExecFile, const wxString& para
|
||||
#ifdef __WXMAC__
|
||||
else
|
||||
{
|
||||
AddDelimiterString( fullFileName );
|
||||
|
||||
if( !param.IsEmpty() )
|
||||
fullFileName += wxT( " " ) + param;
|
||||
|
||||
@@ -351,8 +346,6 @@ bool OpenPDF( const wxString& file )
|
||||
{
|
||||
wxString command;
|
||||
wxString filename = file;
|
||||
wxString type;
|
||||
bool success = false;
|
||||
|
||||
Pgm().ReadPdfBrowserInfos();
|
||||
|
||||
@@ -363,71 +356,21 @@ bool OpenPDF( const wxString& file )
|
||||
}
|
||||
else
|
||||
{
|
||||
wxFileType* filetype = NULL;
|
||||
wxFileType::MessageParameters params( filename, type );
|
||||
filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( wxT( "pdf" ) );
|
||||
wxFileType* filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( wxT( "pdf" ) );
|
||||
|
||||
if( filetype )
|
||||
success = filetype->GetOpenCommand( &command, params );
|
||||
command = filetype->GetOpenCommand( filename );
|
||||
|
||||
delete filetype;
|
||||
|
||||
#ifndef __WINDOWS__
|
||||
|
||||
// Bug ? under linux wxWidgets returns acroread as PDF viewer, even if
|
||||
// it does not exist.
|
||||
if( command.StartsWith( wxT( "acroread" ) ) ) // Workaround
|
||||
success = false;
|
||||
#endif
|
||||
|
||||
if( success && !command.IsEmpty() )
|
||||
{
|
||||
success = ProcessExecute( command );
|
||||
|
||||
if( success )
|
||||
return success;
|
||||
}
|
||||
|
||||
success = false;
|
||||
command.clear();
|
||||
|
||||
if( !success )
|
||||
{
|
||||
#if !defined(__WINDOWS__)
|
||||
AddDelimiterString( filename );
|
||||
|
||||
// here is a list of PDF viewers candidates
|
||||
static const wxChar* tries[] =
|
||||
{
|
||||
wxT( "/usr/bin/evince" ),
|
||||
wxT( "/usr/bin/okular" ),
|
||||
wxT( "/usr/bin/gpdf" ),
|
||||
wxT( "/usr/bin/konqueror" ),
|
||||
wxT( "/usr/bin/kpdf" ),
|
||||
wxT( "/usr/bin/xpdf" ),
|
||||
wxT( "/usr/bin/open" ), // BSD and OSX file & dir opener
|
||||
wxT( "/usr/bin/xdg-open" ), // Freedesktop file & dir opener
|
||||
};
|
||||
|
||||
for( unsigned ii = 0; ii<DIM(tries); ii++ )
|
||||
{
|
||||
if( wxFileExists( tries[ii] ) )
|
||||
{
|
||||
command = tries[ii];
|
||||
command += wxT( ' ' );
|
||||
command += filename;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if( !command.IsEmpty() )
|
||||
{
|
||||
success = ProcessExecute( command );
|
||||
|
||||
if( !success )
|
||||
if( ProcessExecute( command ) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf( _( "Problem while running the PDF viewer\nCommand is '%s'" ),
|
||||
@@ -440,10 +383,9 @@ bool OpenPDF( const wxString& file )
|
||||
wxString msg;
|
||||
msg.Printf( _( "Unable to find a PDF viewer for <%s>" ), GetChars( filename ) );
|
||||
DisplayError( NULL, msg );
|
||||
success = false;
|
||||
}
|
||||
|
||||
return success;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+13
-19
@@ -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 );
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -212,7 +212,7 @@ KIFACE* KIWAY::KiFACE( FACE_T aFaceId, bool doLoad )
|
||||
if( ! wxFileExists( dname ) )
|
||||
msg << wxT( "It is missing.\n" );
|
||||
else
|
||||
msg << wxT( "Perhaps a wxWidgets shared (.dll or .so) file is missing.\n" );
|
||||
msg << wxT( "Perhaps a shared library (.dll or .so) file is missing.\n" );
|
||||
|
||||
msg << wxT( "From command line: argv[0]:\n'" );
|
||||
msg << wxStandardPaths::Get().GetExecutablePath() << wxT( "'\n" );
|
||||
|
||||
@@ -101,14 +101,14 @@ bool KIWAY_PLAYER::ShowModal( wxString* aResult, wxWindow* aResultantFocusWindow
|
||||
m_modal_resultant_parent = aResultantFocusWindow;
|
||||
|
||||
Show( true );
|
||||
Raise(); // Needed on sole Window managers to always display the frame
|
||||
Raise(); // Needed on some Window managers to always display the frame
|
||||
|
||||
SetFocus();
|
||||
|
||||
{
|
||||
// We have to disable all frames but the the modal one.
|
||||
// wxWindowDisabler does that, but remember it disables all top level windows
|
||||
// We do not want to disable top level windows which are child off the modal one,
|
||||
// wxWindowDisabler does that, but it also disables all top level windows
|
||||
// We do not want to disable top level windows which are child of the modal one,
|
||||
// if they are enabled.
|
||||
// An example is an aui toolbar which was moved
|
||||
// or a dialog or an other frame or miniframe opened by the modal one.
|
||||
@@ -119,19 +119,18 @@ bool KIWAY_PLAYER::ShowModal( wxString* aResult, wxWindow* aResultantFocusWindow
|
||||
if( wlist[ii]->IsTopLevel() && wlist[ii]->IsEnabled() )
|
||||
enabledTopLevelWindows.push_back( wlist[ii] );
|
||||
|
||||
|
||||
// exception safe way to disable all top level windows except the modal one,
|
||||
// re-enables only those that were disabled on exit
|
||||
wxWindowDisabler toggle( this );
|
||||
wxWindowDisabler toggle( this );
|
||||
|
||||
for( unsigned ii = 0; ii < enabledTopLevelWindows.size(); ii++ )
|
||||
enabledTopLevelWindows[ii]->Enable( true );
|
||||
enabledTopLevelWindows[ii]->Enable( true );
|
||||
|
||||
WX_EVENT_LOOP event_loop;
|
||||
m_modal_loop = &event_loop;
|
||||
event_loop.Run();
|
||||
|
||||
} // End of scop for some variables.
|
||||
} // End of scope for some variables.
|
||||
// End nesting before setting focus below.
|
||||
|
||||
if( aResult )
|
||||
|
||||
+37
-4
@@ -441,7 +441,7 @@ LSEQ LSET::SeqStackupBottom2Top() const
|
||||
}
|
||||
|
||||
|
||||
LAYER_ID FlipLayer( LAYER_ID aLayerId )
|
||||
LAYER_ID FlipLayer( LAYER_ID aLayerId, int aCopperLayersCount )
|
||||
{
|
||||
switch( aLayerId )
|
||||
{
|
||||
@@ -466,14 +466,28 @@ LAYER_ID FlipLayer( LAYER_ID aLayerId )
|
||||
case B_Fab: return F_Fab;
|
||||
case F_Fab: return B_Fab;
|
||||
|
||||
// No change for the other layers
|
||||
default:
|
||||
default: // change internal layer if aCopperLayersCount is >= 4
|
||||
if( IsCopperLayer( aLayerId ) && aCopperLayersCount >= 4 )
|
||||
{
|
||||
// internal copper layers count is aCopperLayersCount-2
|
||||
LAYER_ID fliplayer = LAYER_ID(aCopperLayersCount - 2 - ( aLayerId - In1_Cu ) );
|
||||
// Ensure fliplayer has a value which does not crash pcbnew:
|
||||
if( fliplayer < F_Cu )
|
||||
fliplayer = F_Cu;
|
||||
|
||||
if( fliplayer > B_Cu )
|
||||
fliplayer = B_Cu;
|
||||
|
||||
return fliplayer;
|
||||
}
|
||||
|
||||
// No change for the other layers
|
||||
return aLayerId;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
LSET FlipLayerMask( LSET aMask )
|
||||
LSET FlipLayerMask( LSET aMask, int aCopperLayersCount )
|
||||
{
|
||||
// layers on physical outside of a board:
|
||||
const static LSET and_mask( 16, // !! update count
|
||||
@@ -537,6 +551,25 @@ LSET FlipLayerMask( LSET aMask )
|
||||
if( aMask[F_Fab] )
|
||||
newMask.set( B_Fab );
|
||||
|
||||
if( aCopperLayersCount >= 4 ) // Internal layers exist
|
||||
{
|
||||
LSET internalMask = aMask & ~LSET::InternalCuMask();
|
||||
|
||||
if( internalMask != LSET::InternalCuMask() )
|
||||
{ // the mask does not include all internal layers. Therefore
|
||||
// the flipped mask for internal copper layers must be built
|
||||
int innerLayerCnt = aCopperLayersCount -2;
|
||||
|
||||
for( int ii = 0; ii < innerLayerCnt; ii++ )
|
||||
{
|
||||
if( internalMask[innerLayerCnt - ii + In1_Cu] )
|
||||
newMask.set( ii + In1_Cu );
|
||||
else
|
||||
newMask.reset( ii + In1_Cu );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return newMask;
|
||||
}
|
||||
|
||||
|
||||
+40
-11
@@ -416,6 +416,8 @@ bool PGM_BASE::initPgm()
|
||||
{
|
||||
wxString envVarName = wxT( "KIGITHUB" );
|
||||
ENV_VAR_ITEM envVarItem;
|
||||
wxString envValue;
|
||||
wxFileName tmpFileName;
|
||||
|
||||
envVarItem.SetValue( wxString( wxT( "https://github.com/KiCad" ) ) );
|
||||
envVarItem.SetDefinedExternally( wxGetEnv( envVarName, NULL ) );
|
||||
@@ -429,24 +431,51 @@ bool PGM_BASE::initPgm()
|
||||
baseSharePath.AppendDir( wxT( "kicad" ) );
|
||||
#endif
|
||||
|
||||
wxFileName tmpFileName = baseSharePath;
|
||||
tmpFileName.AppendDir( wxT( "modules" ) );
|
||||
// KISYSMOD
|
||||
envVarName = wxT( "KISYSMOD" );
|
||||
envVarItem.SetValue( tmpFileName.GetPath() );
|
||||
envVarItem.SetDefinedExternally( wxGetEnv( envVarName, NULL ) );
|
||||
if( wxGetEnv( envVarName, &envValue ) == true && !envValue.IsEmpty() )
|
||||
{
|
||||
tmpFileName.AssignDir( envValue );
|
||||
envVarItem.SetDefinedExternally( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
tmpFileName = baseSharePath;
|
||||
tmpFileName.AppendDir( wxT( "modules" ) );
|
||||
envVarItem.SetDefinedExternally( false );
|
||||
}
|
||||
envVarItem.SetValue( tmpFileName.GetFullPath() );
|
||||
m_local_env_vars[ envVarName ] = envVarItem;
|
||||
|
||||
// KISYS3DMOD
|
||||
envVarName = wxT( "KISYS3DMOD" );
|
||||
tmpFileName.AppendDir( wxT( "packages3d" ) );
|
||||
envVarItem.SetValue( tmpFileName.GetPath() );
|
||||
envVarItem.SetDefinedExternally( wxGetEnv( envVarName, NULL ) );
|
||||
if( wxGetEnv( envVarName, &envValue ) == true && !envValue.IsEmpty() )
|
||||
{
|
||||
tmpFileName.AssignDir( envValue );
|
||||
envVarItem.SetDefinedExternally( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
tmpFileName.AppendDir( wxT( "packages3d" ) );
|
||||
envVarItem.SetDefinedExternally( false );
|
||||
}
|
||||
envVarItem.SetValue( tmpFileName.GetFullPath() );
|
||||
m_local_env_vars[ envVarName ] = envVarItem;
|
||||
|
||||
// KICAD_PTEMPLATES
|
||||
envVarName = wxT( "KICAD_PTEMPLATES" );
|
||||
tmpFileName = baseSharePath;
|
||||
tmpFileName.AppendDir( wxT( "template" ) );
|
||||
envVarItem.SetValue( tmpFileName.GetPath() );
|
||||
envVarItem.SetDefinedExternally( wxGetEnv( envVarName, NULL ) );
|
||||
if( wxGetEnv( envVarName, &envValue ) == true && !envValue.IsEmpty() )
|
||||
{
|
||||
tmpFileName.AssignDir( envValue );
|
||||
envVarItem.SetDefinedExternally( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
tmpFileName = baseSharePath;
|
||||
tmpFileName.AppendDir( wxT( "template" ) );
|
||||
envVarItem.SetDefinedExternally( false );
|
||||
}
|
||||
envVarItem.SetValue( tmpFileName.GetFullPath() );
|
||||
m_local_env_vars[ envVarName ] = envVarItem;
|
||||
}
|
||||
|
||||
|
||||
@@ -66,6 +66,8 @@ void TOOL_INTERACTIVE::goInternal( TOOL_STATE_FUNC& aState, const TOOL_EVENT_LIS
|
||||
|
||||
void TOOL_INTERACTIVE::SetContextMenu( CONTEXT_MENU* aMenu, CONTEXT_MENU_TRIGGER aTrigger )
|
||||
{
|
||||
aMenu->SetTool( this );
|
||||
if( aMenu )
|
||||
aMenu->SetTool( this );
|
||||
|
||||
m_toolMgr->ScheduleContextMenu( this, aMenu, aTrigger );
|
||||
}
|
||||
|
||||
+8
-8
@@ -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,
|
||||
|
||||
@@ -56,6 +56,8 @@ set( CVPCB_SRCS
|
||||
if( MINGW )
|
||||
# CVPCB_RESOURCES variable is set by the macro.
|
||||
mingw_resource_compiler( cvpcb )
|
||||
else()
|
||||
set( CVPCB_RESOURCES cvpcb.rc )
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
@@ -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 ]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -191,6 +191,8 @@ set( EESCHEMA_COMMON_SRCS
|
||||
if( MINGW )
|
||||
# EESCHEMA_RESOURCES variable is set by the macro.
|
||||
mingw_resource_compiler( eeschema )
|
||||
else()
|
||||
set( EESCHEMA_RESOURCES eeschema.rc )
|
||||
endif()
|
||||
|
||||
# Create a C++ compilable string initializer containing html text into a *.h file:
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -886,7 +886,7 @@ bool LIB_PART::Load( LINE_READER& aLineReader, wxString& aErrorMsg )
|
||||
{
|
||||
p = strtok( line, " \t\n" );
|
||||
|
||||
if( stricmp( p, "ENDDEF" ) == 0 )
|
||||
if( p && stricmp( p, "ENDDEF" ) == 0 )
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -948,6 +948,9 @@ bool LIB_PART::Load( LINE_READER& aLineReader, wxString& aErrorMsg )
|
||||
if( *line == '#' ) // a comment
|
||||
continue;
|
||||
|
||||
if( p == NULL ) // empty line
|
||||
continue;
|
||||
|
||||
if( line[0] == 'T' && line[1] == 'i' )
|
||||
result = LoadDateAndTime( aLineReader );
|
||||
else if( *line == 'F' )
|
||||
@@ -1036,7 +1039,12 @@ bool LIB_PART::LoadDrawEntries( LINE_READER& aLineReader, wxString& aErrorMsg )
|
||||
break;
|
||||
|
||||
case '#': // Comment
|
||||
continue;
|
||||
continue;
|
||||
|
||||
case '\n':
|
||||
case '\r':
|
||||
case 0: // empty line
|
||||
continue;
|
||||
|
||||
default:
|
||||
aErrorMsg.Printf( wxT( "undefined DRAW command %c" ), line[0] );
|
||||
@@ -1746,16 +1754,16 @@ void LIB_PART::SetAliases( const wxArrayString& aAliasList )
|
||||
}
|
||||
|
||||
// Remove names in the current component that are not in the new alias list.
|
||||
LIB_ALIASES::iterator it;
|
||||
LIB_ALIASES::iterator it = m_aliases.begin();
|
||||
|
||||
for( it = m_aliases.begin(); it < m_aliases.end(); it++ )
|
||||
while( it != m_aliases.end() )
|
||||
{
|
||||
int index = aAliasList.Index( (*it)->GetName(), false );
|
||||
|
||||
if( index != wxNOT_FOUND || (*it)->IsRoot() )
|
||||
continue;
|
||||
|
||||
it = m_aliases.erase( it );
|
||||
++it;
|
||||
else
|
||||
it = m_aliases.erase( it );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -447,6 +447,8 @@ bool SCH_EDIT_FRAME::AppendOneEEProject()
|
||||
bs = nextbs;
|
||||
}
|
||||
}
|
||||
|
||||
OnModify();
|
||||
|
||||
// redraw base screen (ROOT) if necessary
|
||||
GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId );
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -912,11 +912,9 @@ bool SCH_SHEET_LIST::TestForRecursion( const SCH_SHEET_LIST& aSrcSheetHierarchy,
|
||||
|
||||
SCH_SHEET* SCH_SHEET_LIST::FindSheetByName( const wxString& aSheetName )
|
||||
{
|
||||
SCH_SHEET* sheet = NULL;
|
||||
|
||||
for( int i = 0; i < m_count; i++ )
|
||||
{
|
||||
sheet = m_list[i].FindSheetByName( aSheetName );
|
||||
SCH_SHEET* sheet = m_list[i].FindSheetByName( aSheetName );
|
||||
|
||||
if( sheet )
|
||||
return sheet;
|
||||
|
||||
@@ -78,6 +78,8 @@ set( GERBVIEW_EXTRA_SRCS
|
||||
if( MINGW )
|
||||
# GERBVIEW_RESOURCES variable is set by the macro.
|
||||
mingw_resource_compiler( gerbview )
|
||||
else()
|
||||
set( GERBVIEW_RESOURCES gerbview.rc )
|
||||
endif()
|
||||
|
||||
if( APPLE )
|
||||
|
||||
@@ -130,6 +130,7 @@ void GERBER_LAYER_WIDGET::ReFillRender()
|
||||
void GERBER_LAYER_WIDGET::installRightLayerClickHandler()
|
||||
{
|
||||
int rowCount = GetLayerRowCount();
|
||||
|
||||
for( int row=0; row<rowCount; ++row )
|
||||
{
|
||||
for( int col=0; col<LYR_COLUMN_COUNT; ++col )
|
||||
|
||||
@@ -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.
|
||||
|
||||
+1
-15
@@ -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.
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -112,10 +112,12 @@ public:
|
||||
virtual void DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint );
|
||||
|
||||
/// @copydoc GAL::DrawPolyline()
|
||||
virtual void DrawPolyline( std::deque<VECTOR2D>& aPointList );
|
||||
virtual void DrawPolyline( const std::deque<VECTOR2D>& aPointList ) { drawPoly( aPointList ); }
|
||||
virtual void DrawPolyline( const VECTOR2D aPointList[], int aListSize ) { drawPoly( aPointList, aListSize ); }
|
||||
|
||||
/// @copydoc GAL::DrawPolygon()
|
||||
virtual void DrawPolygon( const std::deque<VECTOR2D>& aPointList );
|
||||
virtual void DrawPolygon( const std::deque<VECTOR2D>& aPointList ) { drawPoly( aPointList ); }
|
||||
virtual void DrawPolygon( const VECTOR2D aPointList[], int aListSize ) { drawPoly( aPointList, aListSize ); }
|
||||
|
||||
/// @copydoc GAL::DrawCurve()
|
||||
virtual void DrawCurve( const VECTOR2D& startPoint, const VECTOR2D& controlPointA,
|
||||
@@ -381,6 +383,10 @@ private:
|
||||
/// Prepare the compositor
|
||||
void setCompositor();
|
||||
|
||||
/// Drawing polygons & polylines is the same in cairo, so here is the common code
|
||||
void drawPoly( const std::deque<VECTOR2D>& aPointList );
|
||||
void drawPoly( const VECTOR2D aPointList[], int aListSize );
|
||||
|
||||
/**
|
||||
* @brief Returns a valid key that can be used as a new group number.
|
||||
*
|
||||
|
||||
@@ -105,7 +105,8 @@ public:
|
||||
*
|
||||
* @param aPointList is a list of 2D-Vectors containing the polyline points.
|
||||
*/
|
||||
virtual void DrawPolyline( std::deque<VECTOR2D>& aPointList ) {};
|
||||
virtual void DrawPolyline( const std::deque<VECTOR2D>& aPointList ) {};
|
||||
virtual void DrawPolyline( const VECTOR2D aPointList[], int aListSize ) {};
|
||||
|
||||
/**
|
||||
* @brief Draw a circle using world coordinates.
|
||||
@@ -140,6 +141,7 @@ public:
|
||||
* @param aPointList is the list of the polygon points.
|
||||
*/
|
||||
virtual void DrawPolygon( const std::deque<VECTOR2D>& aPointList ) {};
|
||||
virtual void DrawPolygon( const VECTOR2D aPointList[], int aListSize ) {};
|
||||
|
||||
/**
|
||||
* @brief Draw a cubic bezier spline.
|
||||
@@ -635,8 +637,11 @@ public:
|
||||
{
|
||||
gridOrigin = aGridOrigin;
|
||||
|
||||
gridOffset = VECTOR2D( (long) gridOrigin.x % (long) gridSize.x,
|
||||
(long) gridOrigin.y % (long) gridSize.y );
|
||||
if( gridSize.x == 0.0 || gridSize.y == 0.0 )
|
||||
gridOffset = VECTOR2D(0.0, 0.0);
|
||||
else
|
||||
gridOffset = VECTOR2D( (long) gridOrigin.x % (long) gridSize.x,
|
||||
(long) gridOrigin.y % (long) gridSize.y );
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (C) 2012 Torsten Hueter, torstenhtr <at> gmx.de
|
||||
* Copyright (C) 2012 Kicad Developers, see change_log.txt for contributors.
|
||||
* Copyright (C) 2013-2015 CERN
|
||||
* Copyright (C) 2013-2016 CERN
|
||||
* @author Maciej Suminski <maciej.suminski@cern.ch>
|
||||
*
|
||||
* Graphics Abstraction Layer (GAL) for OpenGL
|
||||
@@ -113,10 +113,12 @@ public:
|
||||
virtual void DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint );
|
||||
|
||||
/// @copydoc GAL::DrawPolyline()
|
||||
virtual void DrawPolyline( std::deque<VECTOR2D>& aPointList );
|
||||
virtual void DrawPolyline( const std::deque<VECTOR2D>& aPointList );
|
||||
virtual void DrawPolyline( const VECTOR2D aPointList[], int aListSize );
|
||||
|
||||
/// @copydoc GAL::DrawPolygon()
|
||||
virtual void DrawPolygon( const std::deque<VECTOR2D>& aPointList );
|
||||
virtual void DrawPolygon( const VECTOR2D aPointList[], int aListSize );
|
||||
|
||||
/// @copydoc GAL::DrawCurve()
|
||||
virtual void DrawCurve( const VECTOR2D& startPoint, const VECTOR2D& controlPointA,
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -616,16 +616,24 @@ inline bool IsBackLayer( LAYER_ID aLayerId )
|
||||
/**
|
||||
* Function FlippedLayerNumber
|
||||
* @return the layer number after flipping an item
|
||||
* some (not all) layers: external copper, Mask, Paste, and solder
|
||||
* some (not all) layers: external copper, and paired layers( Mask, Paste, solder ... )
|
||||
* are swapped between front and back sides
|
||||
* internal layers are flipped only if the copper layers count is known
|
||||
* @param aLayer = the LAYER_ID to flip
|
||||
* @param aCopperLayersCount = the number of copper layers. if 0 (in fact if < 4 )
|
||||
* internal layers will be not flipped because the layer count is not known
|
||||
*/
|
||||
LAYER_ID FlipLayer( LAYER_ID oldlayer );
|
||||
LAYER_ID FlipLayer( LAYER_ID aLayerId, int aCopperLayersCount = 0 );
|
||||
|
||||
/**
|
||||
* Calculate the mask layer when flipping a footprint
|
||||
* BACK and FRONT copper layers, mask, paste, solder layers are swapped
|
||||
* internal layers are flipped only if the copper layers count is known
|
||||
* @param aMask = the LSET to flip
|
||||
* @param aCopperLayersCount = the number of copper layers. if 0 (in fact if < 4 )
|
||||
* internal layers will be not flipped because the layer count is not known
|
||||
*/
|
||||
LSET FlipLayerMask( LSET aMask );
|
||||
LSET FlipLayerMask( LSET aMask, int aCopperLayersCount = 0 );
|
||||
|
||||
/**
|
||||
* Return a string (to be shown to the user) describing a layer mask.
|
||||
|
||||
@@ -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
|
||||
|
||||
+11
-2
@@ -495,6 +495,16 @@ public:
|
||||
*/
|
||||
bool OnHotkeyRotateItem( int aIdCommand );
|
||||
|
||||
/**
|
||||
* Function OnHotkeyFlipItem
|
||||
* Flip the item (text or footprint) found under the mouse cursor
|
||||
* @note This command can be used with an item currently in edit.
|
||||
* Only some items can be rotated (footprints and texts).
|
||||
* @param aIdCommand = the hotkey command id
|
||||
* @return true if an item was moved
|
||||
*/
|
||||
bool OnHotkeyFlipItem( int aIdCommand );
|
||||
|
||||
/**
|
||||
* Function OnHotkeyBeginRoute
|
||||
* If the current active layer is a copper layer,
|
||||
@@ -1105,9 +1115,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_
|
||||
|
||||
@@ -25,6 +25,8 @@ set( KICAD_SRCS
|
||||
if( MINGW )
|
||||
# KICAD_RESOURCES variable is set by the macro.
|
||||
mingw_resource_compiler( kicad )
|
||||
else()
|
||||
set( KICAD_RESOURCES kicad.rc )
|
||||
endif()
|
||||
|
||||
if( APPLE )
|
||||
|
||||
@@ -173,7 +173,8 @@ void TREEPROJECT_ITEM::Activate( TREE_PROJECT_FRAME* prjframe )
|
||||
wxString fullFileName = GetFileName();
|
||||
wxTreeItemId id = GetId();
|
||||
|
||||
KICAD_MANAGER_FRAME* frame = (KICAD_MANAGER_FRAME*) Pgm().App().GetTopWindow();
|
||||
KICAD_MANAGER_FRAME* frame = prjframe->m_Parent;
|
||||
wxASSERT( frame );
|
||||
|
||||
switch( GetType() )
|
||||
{
|
||||
|
||||
+12
-2
@@ -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;
|
||||
}
|
||||
|
||||
@@ -50,6 +50,8 @@ set( PL_EDITOR_EXTRA_SRCS
|
||||
if( MINGW )
|
||||
# PL_EDITOR_RESOURCES variable is set by the macro.
|
||||
mingw_resource_compiler( pl_editor )
|
||||
else()
|
||||
set( PL_EDITOR_RESOURCES pl_editor.rc )
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
@@ -237,8 +237,9 @@ void WORKSHEET_LAYOUT_IO::format( WORKSHEET_DATAITEM_TEXT* aItem, int aNestLevel
|
||||
m_out->Print( 0, " (%s %s)", getTokenName( T_rotate ),
|
||||
double2Str(aItem->m_Orient ).c_str() );
|
||||
|
||||
// Write font info
|
||||
bool write_size = aItem->m_TextSize.x != 0.0 && aItem->m_TextSize.y != 0.0;
|
||||
// Write font info, only if it is not the default setup
|
||||
bool write_size = aItem->m_TextSize.x != 0.0 || aItem->m_TextSize.y != 0.0;
|
||||
|
||||
if( write_size || aItem->IsBold() || aItem->IsItalic() )
|
||||
{
|
||||
m_out->Print( 0, " (%s", getTokenName( T_font ) );
|
||||
|
||||
@@ -40,6 +40,8 @@ set( PCB_CALCULATOR_SRCS
|
||||
if( MINGW )
|
||||
# PCB_CALCULATOR_RESOURCES variable is set by the macro.
|
||||
mingw_resource_compiler( pcb_calculator )
|
||||
else()
|
||||
set( PCB_CALCULATOR_RESOURCES pcb_calculator.rc )
|
||||
endif()
|
||||
|
||||
if( APPLE )
|
||||
|
||||
@@ -1,69 +1,125 @@
|
||||
/* XPM */
|
||||
static const char *microstrip_zodd_zeven_xpm[] = {
|
||||
const char *microstrip_zodd_zeven_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"119 47 16 1",
|
||||
"& c #686A26",
|
||||
"+ c #080808",
|
||||
"# c #9E9E99",
|
||||
"@ c #6B5760",
|
||||
"$ c #272726",
|
||||
"O c #797071",
|
||||
"X c #575846",
|
||||
"; c #990922",
|
||||
"o c #543C40",
|
||||
"* c #7D7D03",
|
||||
"% c #747449",
|
||||
"239 103 16 1",
|
||||
"o c #594142",
|
||||
"$ c #7B7070",
|
||||
": c #95273A",
|
||||
"X c #282815",
|
||||
"& c #3F3F13",
|
||||
"* c #575709",
|
||||
"% c #515246",
|
||||
"@ c #65655A",
|
||||
" c None",
|
||||
". c #838382",
|
||||
"= c #0B209D",
|
||||
": c #94273A",
|
||||
"- c #53530F",
|
||||
"+ c #838383",
|
||||
"# c #6E5460",
|
||||
". c #9F9E9E",
|
||||
"= c #7F7F02",
|
||||
"O c #040303",
|
||||
"; c #9A031D",
|
||||
"- c #051AA6",
|
||||
/* pixels */
|
||||
" .XooXooo. O....... O+++++++o OOOOOOO@",
|
||||
" o+++++++O ++++++++ O+++++++o #++++++++",
|
||||
" X+oOO.O.# oXoooo++# O+X ++oXoX@X",
|
||||
" o+. ++ @+@ #++ ",
|
||||
" o+O ++# O+X #+$ ",
|
||||
" ##.#.$+. ++# @XoXo$+@ #++ ",
|
||||
" #+++++++. +++++++X +++++++@ o++++++$ ",
|
||||
" #$$$$o$o# $++++++o OOOO...# X++++++$ ",
|
||||
" ",
|
||||
" %%%&%&%%%%%%%X .%%%%%%%%%%%%X #&&&&&&&&&&&&&$ %&%&%&%&%&%%&X ",
|
||||
" &***&=@******--# %****X=&*****-- #&***o==******-& &***&==X*****-% ",
|
||||
" %**X====*****&*- .****X==@*****&& #***====@*****-*& &**X====&****-*% ",
|
||||
" &**======*****-**# .****&===*****&*% #&**=====X****-**& &**&=====****-**% ",
|
||||
" %***X====&****-**& .****&===*****-**% #****X====****-***% %****o====****-**# ",
|
||||
" &****o====****-***# .*****===&****-**% #&****=====***-***& %****&====@***-**O ",
|
||||
" %****X===@=***-***. .*****===X****-**&# #*****===X=@***&**& %*****===&=X**-**& ",
|
||||
" &****&===*****-***. #*****o==o****-***. #&****o==o*****-**&# %*****===X****-**& ",
|
||||
" %****&===*****-***O #***X====@*****&**O #*****X==@*****-***# %*****===X****-**&# ",
|
||||
" &*****===&****-***% #&***=====*****&**% #&****&===*****-***. %*****o==@****-***. ",
|
||||
" %*****===X****-***& #*****====o****-**& #*****&===*****-***. O*****X===*****&**% ",
|
||||
" &*****@==@****-&**& #&*****=====&**-***# #******===&****-***% .*****&===*****-**% ",
|
||||
" %*****&==o****&&**& #&*****X===X***-***. #&*****X==&****-***XOOX******@==*****-**&.#### ## ",
|
||||
" &*******o@*****-***# #&******XoX****&***O #********oX****--**-$o$********o&****--*-$+$+$++++$",
|
||||
" &**************-***. -**************-**X.......OO .--*-*&*-*&*-*--&**&..X---*--*-*-*-*--***X........$O",
|
||||
" %--------*------***++++---------------**-$$$$$o$o$+. %**************-**-O..X**************-**X........X$ ",
|
||||
" .**************-**XO..%**************-*&O........oo %**************-**O...&**************-*&O........+# ",
|
||||
" .**************-*X....X**************-*X........O+# %**************-*@....X**************--O........o@ ",
|
||||
" .**************-X.....X**************-X.........+. %**************-@.....&**************-@........@+# ",
|
||||
" #%%%O%%O&O%.&$XXO.....OXXXXXXXXXXXXXXo.........oo #O.....%.X$X@@X@......@@X@@X@X@X@X@X@@.........$. ",
|
||||
" @;O #+O................................@$# #;:+O...............O...................X$ ",
|
||||
" O;;;.+@.................................+. :;;:...................................O+# ",
|
||||
" :;;;;@.................................$X @;;;;@.....OOOO.........................$@ ",
|
||||
" .::;;;@..@;:;:;..........@:....@;......@$# :;;;::...:;;;;:........................@$ ",
|
||||
" :;:....O@@:;:..........o;....@;......+. .+;:......OO:;@..O...O......O....O.O...+. ",
|
||||
" ;;@.......;;..@:;:..O:::;.O:;:;.....$@ #+@;:O......@;:..:;;@O;@.:;.:;;@O:::;;.oo ",
|
||||
" $;;@......:;O..;:O::.;:O;:.;:O:;....@+ $@@;:......O;:..O;.@;.::O;@O;O@;O@;O@;@$# ",
|
||||
" o$:;@.....:;@..@;O.o;O;@.:;.;@.:;...O+# o$.O;:.....O;;...:;;:;OO;@;.o;;::O::.O;+O ",
|
||||
" X$.:;@...O@;o...O;@.::.;@.::.;@.:;...$@ O$..@;:.....:;@@OO@;O@@..;;:.O;OO:.:;.O;$ ",
|
||||
" @$O.:;@....:;;;;;.:;;;O.:;;;;.@;;:;..@$ #+O..@;:.....;;;;;;.:;;o..o;@..:;;o.o:.@;. ",
|
||||
" O$O..:;@O...O@O@@@..O@....OOOO..O@O@.O+# +@...O;:.............O..........O......$@ ",
|
||||
" .+O:;;;;;;;O..........................$@ $o.@;;;;;;;@...........................@+ ",
|
||||
" .+O.:;;;;;;;O.........................X$ @$..@;;;;;;;o..........................O$. ",
|
||||
" #+O...OO.O.O..........................O+# .+....OOOOOOO...........................oo ",
|
||||
" #+@....................................$O #+O.....................................O+# ",
|
||||
"#$@....................................Xo +@......................................$O ",
|
||||
"$+$o$o$oooooooooooo$oooo$oo$oo$o$o$oo$$+# o$XX@X@X@XX@XX@@X@@@XO@@@O@O@O@O@O@O@O@Oo$ ",
|
||||
"..OO.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..# Oooooooooooooo$oo$o$o$$o$$$$$$$$$$$$$$$$+# "
|
||||
" . . .... .XoXXXXXXXXOXOXOO. ",
|
||||
" .OOOOOOOOOOOOOOOO+ +@#@@$@$$$$$+$++. .OOOOOOOOOOOOOOOO. .#@#%#%%o%ooooooo",
|
||||
" OOOOOOOOOOOOOOOO. XOOOOOOOOOOOOOOO% +OOOOOOOOOOOOOOOO. +OOOOOOOOOOOOOOOO",
|
||||
" .OOOOOOOOOOOOOOOO. oOOOOOOOOOOOOOOOo .OOOOOOOOOOOOOOOO. +OOOOOOOOOOOOOOOO",
|
||||
" OOOOOOOOOOOOOOOO+ XOOOOOOOOOOOOOOO% .OOOO+$$+$+++++++ +OOOOOOOOOOOOOOOO",
|
||||
" .OOOO........ . . %oXoXoXXXXXXOOOOo .OOOO +OOOO#o%%%%#%@#@@",
|
||||
" .OOOO %OOO% +OOOO +OOOX ",
|
||||
" .OOOO @OOOo .OOOO +OOOO ",
|
||||
" .OOOO #OOOo +OOOO +OOOX ",
|
||||
" .OOOO @OOOo +OOOO +OOOX ",
|
||||
" .OOOO @OOOo .OOOX $OOOX ",
|
||||
" .OOOO @OOOo . .$OOOO +OOOX ",
|
||||
" ..+.++++++@OOOO @OOOo $OOOOOOOOOOOOOOX $OOOX ",
|
||||
" +OOOOOOOOOOOOOOO @OOOOoooo%o%%%#$ +OOOOOOOOOOOOOOO +XXXXXXXXOXOOOOX ",
|
||||
" +OOOOOOOOOOOOOOO @OOOOOOOOOOOOOOX +OOOOOOOOOOOOOOX @OOOOOOOOOOOOOOX ",
|
||||
" .OOOOOOOOOOOOOOO $OOOOOOOOOOOOOOX +OOOOOOOOOOOOOOX $OOOOOOOOOOOOOOX ",
|
||||
" +OOOOOOXOXOXXXXo $OOOOOOOOOOOOOOX ........ . @OOOOOOOOOOOOOO& ",
|
||||
" .$$@$@@@%@%%%%%@ .$$$$$$$+++++.+. ",
|
||||
" ",
|
||||
" . ",
|
||||
" .%%%%%%%%%%%%%%%%%%@%%@%@@@%+ ++$++++++++++++++.++...+..+. $&***&*&*&&&&*&*&*%&*&%&&&oX% %%&%%&%%%%%%%%*%%%%%%%%%%%&$ ",
|
||||
" .&=========================*X% +**==*=*=***=**=*=**=******O. .*==========================X& %==========================O+ ",
|
||||
" .&==========%#==============X*@ +*=========o-%=============X&. .&=========%--==============X=o $*=========*#--============X*+ ",
|
||||
" &========*----=============&*=@ .*=========----@===========**& .&========-----=============X==% +*========%-----===========&**. ",
|
||||
" &=======%------============*&==@ .o=========------==========*&=& .&=======-------============&*==% .&=======%------#==========**=*. ",
|
||||
" o======%--------===========*X===% &=========#-----%==========X==& &=====*---------===========*&===& .&======o--------%=========*X==& ",
|
||||
" %=====%---------%===========X====@ &=========%------==========X===& .&====%----------#==========*&====% &=====#----------==========X===& ",
|
||||
" %=====-----------===========X=====% %==========------==========&*===& o=====o----------*==========X=====% &======-----------=========X====& ",
|
||||
" @*=====@----------==========X======@ @*=========------%=========*&====o o=======#---------==========X======% o========----------========**====* ",
|
||||
" $*=======*---------=========&*=====*+ $*=========------#==========X=====% %=========o--------=========&*=====*+ %==========--------%========X====*o ",
|
||||
" +*=========--------#========*&=====*% .*=========%------==========X=====&. @*=========--------#========**=====*@ $*=========%--------%=======X=====& ",
|
||||
" .*=========o--------%=======*X======o .&=========%------==========&*====*+ $*=========---------%=======*&=====*% +*==========---------=======&*====&. ",
|
||||
" .&=========@---------========X======&. .&==========------@=========*&====*% +*=========%---------@======*X======o .&==========----------======**====*$ ",
|
||||
" .&=========*------#---=======X======&. &==========------%==========X=====& +*=========%------%---=======X======&. .&==========------%@---=====*X=====& ",
|
||||
" .&==========------%=%--======&*=====*+ o==========#------==========X=====&. .&==========------===--======X======*+ &==========%------===-#=====X=====& ",
|
||||
" &==========------#===@%=====&*=====*% o==========%------==========&*====*$ .&==========------%==========&*=====*$ &==========%------==========X=====*+ ",
|
||||
" .&==========o------==========*X======% @======%====------==========*&=====% .&==========o-----#==========*&=====*% o===========------%=========**====*@ ",
|
||||
" o==========%------===========X======&. $*=====%--==------%==========X=====o. &==========#------==========*&======o @===========------%=========*X=====& ",
|
||||
" %===========------*==========X======&. .*======#---------#==========X=====*+ &==========*------===========X======&. $*==========#-----#==========X=====&. ",
|
||||
" %===========------%==========X*=====*$ .&=======----------==========&*====*# &===========------%==========X======&. +*==========%------==========X=====*$ ",
|
||||
" @*==========o-----#==========&*=====*@ .&========---------==========*&=====& o===========------%==========X*=====*$ .&===========------==========*&=====o ",
|
||||
" $*==========#------==========*&======& &========%--------*==========X=====&. %===========#-----#==========&*=====*% .&===========------%=========*X=====X ",
|
||||
" +*==========*------==========*X======& &=========%--------%=========X=====*+ @*==========%------==========*&======o &===========------%==========X=====*. ",
|
||||
" +*===========------%==========X======&. %==========o---------%=======&*=====o $*===========------==========*X======&. &===========o------==========X=====*@ ",
|
||||
" .&===========------o==========X======*+ @*==========-----------======*&=====& $*===========------%==========X======&. o===========@------==========*&=====o ",
|
||||
" .&===========#-----#==========X*=====*@ +*===========----------%=====*X=====&. +*===========------#==========X======*$ @============------==========*X=====&. ",
|
||||
" .&============------==========&*======o .&===========@--------========X=====*@ .&============------==========X*=====*@ @*===========%-----%==========X=====*+ ",
|
||||
" &============%-----==========*X======& .&============%-----#=========&*=====& .&============%-----==========&&======Xoo%o%o*============%----#==========X*=====o........... . . ",
|
||||
" X==============----%==========X======&. .&=============o---#==========*&=====& .&==============#---%=========*X======OOOOOOOX==============----==========&&=====XOOOOOOOOOOOOOOOOOO$",
|
||||
" &===============%o-%==========X======*+ &==============%#%============X=====*+ &================%%==========*X======&o%oo%oX================*%==========*X=====&OOOOOOOOOOOOOOOOOOOX",
|
||||
" %=============================X*=====*@ &=============================X======% X=============================X======*%++++$X=============================X=====*%++++++++++++++++$OO@",
|
||||
" %*============================&*======% %*============================X*=====& . . ......... &=============================X*=====*o+++++X=============================X*=====X+++++++++++++$+++oOO ",
|
||||
" %X&X&&&&&&&&&&&&&&&&&&&&&&&&&&X&======&+++++oX*&&&&&&&&&&X&X&&X&X&X&X&X&X&X&=====XOOOOOOOOOOOOOOOOOOOO %XXXX&XX&X&X&X&X&X&X&X&X&X&XX&X*======&+++++oXXXXXX&XX&XX&XX&XX&XX&X&X&XXXX&=====&$++++++++++++++++$OO+ ",
|
||||
" %*============================X======XOOOOOOO****=*=*==*==================X=====*OOOOOOOOOOOOOOOOOOOOO+ %=============================&*=====X$+++++o=============================&=====&#++++++++++$++++++oOX ",
|
||||
" &=============================X=====&OXOXOXXX=============================X=====X$$$$$+$+$+++++++++XOo %=============================&=====&$+++$++&=============================&*====o+++$+++++++++++++@OO. ",
|
||||
" %=============================X====*o+$+++++&=============================X====X$+++++++++++++++++#OO. %=============================&*===*#+$+++++o=============================&====X$+++++++$+++++++++XO% ",
|
||||
" &=============================X====o++++++++&=============================X===*@++++++++++++++++++OO@ %=============================&===*o++++++++&=============================&*==&$+++++++++++++++++#OO. ",
|
||||
" %=============================X===X$++++++++&=============================X==*o+++$+++$++++++++++XOX @=============================&*==&+++++++++o=============================&==*%++++++++++++++++++OO# ",
|
||||
" &=============================X==&$+++++++++X=============================X==X+++++++++++++$++++@OO. @=============================&*=X+$++++++++o=============================&*=&+++++$+++++++$++++oOX. ",
|
||||
" %=============================X=&@++++++++++o=============================X=&$++++++++++++++++++OO% @*============================**&$++++++$+++%*============================&*X$++++++++++++++++++OO$ ",
|
||||
" o=============================X*%+++++$+++++X=============================X*%++++++++++++++++++oOX. @=============================&X@+++++++++++o=============================*X@++++++++++$+++++++XOX ",
|
||||
" o=*=*=*=*=*=*=*=*=*=*=*=*=*=*=XX++++++++++++&=*===*===*==*==*==*===*======XX++++++++++++$+++++$OO$ $X&&&&&&&&&&&&&&&&&&XXX&X&&&X&XX++++++++++++%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XX++++$+++++++++++++$OO+ ",
|
||||
" +$@@$@@$@$@$@$$o#$$$$$$$oOOo%%%$++++++++++++@oooooooooo%ooooooooooooooooooo$++++++++++++++++++XOo .+ .OO#++++++++++++$++++++++++$+$++++$++$+$+$+$+$+$+$+$+$+$++$+++++++++++++++++XOo ",
|
||||
" .;; +OOo+++++++++++++++++$++++++++++$++++++++++++++++++++++++$+++$++++++++#OO. :;. XOX$++++$+++++++++++++$+++++++++$+++++++++++++++++++++++++++++++++$++++++++@OO. ",
|
||||
" ;;;: .OOo$++++++++++++++++++++++++++++++++++++++++++$+++++++$+++++++++++++++OO$ $;;:oOO+++++++++++++++++++++++++$++++++++$++++++++++++++++++++++++++++++++++++++OO# ",
|
||||
" #;;;;+ OOX++++++++++++++++$+++++$+++$++++++++++++++++++++++++++++++++++++++++XOX. .;;;;OO@+++++++++++++++++++++++++++++++++++++++++++++$++++++++++++++++++++++++++oOX. ",
|
||||
" .;;;;;;. XOX$+++++++++++++++++++++++++++++++++$+++$++++++++++++++++++++++++++++#OO. :;;;;;:++++++++++$++++++++++++++++++++++++++++$++++++++++++++++++++++++++++++++$OO$ ",
|
||||
" :;;;;;;:oOO$++++++++++++++++++++++++++++++++++++++++++$+++++++++++++++++++$+++$XOo +;;;;;;;++++++++++++++$++++++++++++++++++++++++++++$++++++$+++++++$+++$++++$+++$oOX ",
|
||||
" #;;;;;;;;OO@+++++++++++++++++++++++++++++++$++++++++++++++++++++++++++$++++++++oOO .;;;;;;;;:+++++$+++++++++++$+++$+++++++$+++$++++++++++++++++++$+++++++++++++++++$OO+ ",
|
||||
" .;;;;;;;;;;o+++++++++++++++++++++++$+++++++++++++++++++++++++++++++++++++++++++$OO$ :;;;;;;;;;#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++XOo ",
|
||||
" ;;;;;;;;;;;:++$+++#:#:o:o:o:#$++++++++++$+++++++++#o#+++++++++##:$+++++++++++++XOo $;;;;;;;;;;;+++++++#;;;;;;;;;;$++++$++++++++++++$+++++++$+++++++++++++++++++++++#OO. ",
|
||||
" +#$:;;;;O:::++++++o;;;;;;;;;;+++++++++++++++++++++;;;+++++++++:;;$++$+++++++++#OO. +::;;;;;;;;;$$+++++$;;;;;;;;;;$+++++++++++++++++++++++++++++++++++++++++++++++++XO% ",
|
||||
" $;;;;X$++++++++o;;;;;;;;;;+++++++++++++++++++++:;;+++++++++o;;$++++++++++++OO$ +O;;;;$++++++++++#::::o:;;;;$++++++++++++++++++++++++++++++++++++++++++++++++%OO ",
|
||||
" $;;;;$++++++++++$$$$$$;;;:++++++++$++++++++++++;;;+++++++++:;;$+++++++++++XOX. OO;;;;$++++++++++++++++#;;;#++++++++$+++++++++++++++++++++++++++++$+++++++++$OO@ ",
|
||||
" +;;;;++++$++++$++++++;;;:$+++++###$+++++++$##$+:;;+++++###+:;;$+++++$++++#OO. XOX;;;;$+++++++$+++++++$;;;:+++++::;:#+++:::$++++:::+++#:;::$+++$::$$:;::++++oOX ",
|
||||
" o;;;:+++++++++++++++:;;;$++++#;;;;;:+++++#;;;;::;;+++$;;;;::;;$+++++++++$XOo @OO$;;;;$+++++++++++++++:;;:$++++;;;;;;:++#;;o+++#;;o++:;;;;;:$++#;;:;;;;;:++$OO+ ",
|
||||
" +O;;;;++++++++++++++#;;;#++++$;;;;;;;;+++#;;;;;;;;;+++;;;;;;;;;$+$+++++++oOO +OO#+;;;;$+$++++++++++++:;;;$++++:;;:#:;;#+$;;:+++:;;$+#;;;#:;;:++$;;;:#:;;;++XOo ",
|
||||
" .OO;;;:+++++++++++++$;;;:+++++;;;:$#:;;o++:;;:+$:;;;++o;;:$+o;;;$++++++++$OO$ XOX+$;;;;$+++++++++++++#;;;#++++$;;:+++;;:++:;;$+$;;:++:;;$++:;;$+#;;;+++:;;$@OO. ",
|
||||
" .XO;;;;;+++++++$+++++:;;:+++++#;;:+++$;;;++;;:+++$;;;++:;;$+++;;;$++++++++XOo oOO+++;;;;$+++++$++++++$;;;:+++++#;;:+$$:;;++#;;#+#;;#++;;;+$$#;;#+#;;:+++:;;$OO# ",
|
||||
" XOX#;;;;++$+++++++++:;;;$+++++#;;#++++:;;$$;;:++++;;;++;;;++++:;;$+++++++#OO. +OO@++$;;;;$++++++++++++:;;:++++++#;;;;;;;;;$++;;:+:;;++$;;;;;;;;;#+$;;:+++:;;oOO. ",
|
||||
" oOO$#;;;:+++++++++++#;;;#++++++o;;#++++:;;$#;;:++++:;;++;;;++++:;;$+++++++OO@ .OOo++++;;;;$+++++++++++o;;;$++++++#;;:::::::$++:;;$;;:++$;;;::::::#+#;;#+++#;;OO$ ",
|
||||
" #OO@+#;;;;++++++++++$;;;o+++++++#;;o++++:;;++;;;++++;;;++:;;++++:;;$++++++XOX XOX+++++;;;;$$+++++++++#;;;#+++++++#;;:+++++++++$;;:;;#+++;;;++++++++#;;:+++:;;OX ",
|
||||
" $OO%++#;;;;++++++$+++:;;:++++++++$;;:+++$;;;++;;;+++#;;;++:;;#+++;;;$+$+++@OO+ #OO$+++$+;;;;$+++++++++$;;;:$$$$$$$++;;;+++;;o++++;;;;;++++:;;$++:;:$+$;;#+++o;;O+ ",
|
||||
" .OOo+++#;;;;+++++++++#;;;::::::::$+:;;;##;;;#++o;;:$#;;;;++#;;;$#;;;;$+++++OOo .OO%++++++;;;;$++++$++++$;;;;;;;;;;;:+:;;;::;;:++++#;;;:++++#;;;::;;;++#;;:+++:;;X ",
|
||||
" .OOX++++#;;;:+++++++++#;;;;;;;;;;;#+$;;;;;;;:+++$;;;;;;:;;+++:;;;;;:;;$++++oOO OOo+++++++;;;;$+++++++++$;;;;;;;;;;;#+$:;;;;;:+++++$;;;$++$++#;;;;;;$++#;;#+++:;;+ ",
|
||||
" XOX+++++#;;;;+++++++++#;;;;;;;;;;;#++$:;;;;o+++++$:;;;$:;;+++$:;;;##;;$+++$OO$ oOX$+++++++;;;;$+++++++++$#:#:#:#:#:##+++#o::#++$++++#:#+++++++##::o$+++$#o#+++XO:. ",
|
||||
" XOO++++++#;;;;+++++++++++++++++++++++++++$$+++$+++$+$$+$++++++++$$+++++++++XOo +OO@++++++++;;;;$++++++++$+++$++++++$+++$+++$++++++++$+++++++++++$+++++++$+++++%OO ",
|
||||
" %OO$$+$+$$#;;;;$$$$$$++++++++++++++++++$+++++++++++++++++++++++++++++++++++#OO. .OOo+++++++++;;;;$+++++++++++++++$+++++++++++++++++++++++$++++++++++++++++++++++OO# ",
|
||||
" @OO#+#;;;;;;;;;;;;;;;o++++++++++++++++++++++++++++++++++++++++++++++++++++++OO# XOX+++$:;:;:;;;;;;;;;;:++++++++++++++++++++++++++++++++++++++++++++++++++++++++oOX ",
|
||||
" +OOo++o;;;;;;;;;;;;;;;#+++++++++++++++$+++++++++++++++++++++++++++++++$+++++XOX #OO$+++$;;;;;;;;;;;;;;;:++++++++++++++++++++++++++++$+++++++++++++++++++$++++++$OO+ ",
|
||||
" .OOo+++#;;;;;;;;;;;;;;;o+++++++++++++++++++++$+++++++++++++++++$+++$++++++++@OO+ .OO%++++$;;;;;;;;;;;;;;;:$+++$++++++++++++++++++++++++++++++++$+++$+++++++++++++XOX ",
|
||||
" OOX++++#;;;;;;;;;;;;;;;#+++$+++$+++$++++++++++++$+++$+++$+++++++++++++++++++OOo OOo+++++$;;;;;;;;;;;;;;;:++++++++++++$+++$+++$+++$+++++++++++++++++++++++++++++#OO. ",
|
||||
" XOX$++++$$$$$+$+$+$++$+++$++++++++++++++++$++++++++++++++++++$++++++++++++++oOO oOX$++++++##########$##$#$+++++++++++++++++++++++++++++++++++++++++++++$++++++++XO% ",
|
||||
" oOO$++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++$OO$ +OO@+++++++++++++++++++++++++++++++$+++++++++++++++++++++$+++$++++++++++++++++++#OO. ",
|
||||
" #OO@+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++XOo .OOo++++++++++++++++++++++++++$++++++++++++++++++++++++++++++++++++++++++++++++++OO$ ",
|
||||
" $OO%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#OO. XOX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++$+++$+++++++++oOO ",
|
||||
" .OOo++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OO@ #OO$++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++$OO+ ",
|
||||
" .OOo++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++XOX +OO#+++++++++++++++++++++++++++++++++++++$+++++++++++++++++++++++++++++++++++++++XOX ",
|
||||
".XOX$+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@OO+ .XOo+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@OO. ",
|
||||
"oOOooooooooooooooooooooooo%o%oo%oo%o%o%o%o%o%o%o%%o%%%o%%%%%%%%%%%%#%%%ooooXoXOOo oOX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++$XOo ",
|
||||
"XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO +OOOOOOOOOOOOOOOOOOXOOXOOXOXOXOXOXXOXXXXXXXXXXXXXXXXXXXXXXXXXXoXXoXXoXoXoXooXooXooOO ",
|
||||
"+%%%%%%o%%o%%o%o%o%o%oo%oooooooooooooooooooooooooooooooooooXoooXooXooXoo%%#@@$$. XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@ ",
|
||||
" ....................+..+.+.+.++.+++++++++++++++$+$+$+$$$$$$$$$$$$$@$@$@$@@@@@@#XX "
|
||||
};
|
||||
|
||||
@@ -10,12 +10,15 @@
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="120"
|
||||
height="52"
|
||||
width="240"
|
||||
height="104"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="microstrip_zodd_zeven.svg">
|
||||
sodipodi:docname="microstrip_zodd_zeven.svg"
|
||||
inkscape:export-filename="E:\kicad-launchpad\testing\pcb_calculator\bitmaps\microstrip_zodd_zeven.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
@@ -41,9 +44,9 @@
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.0963465"
|
||||
inkscape:cx="55.447239"
|
||||
inkscape:cy="12.507837"
|
||||
inkscape:zoom="5.6083333"
|
||||
inkscape:cx="120"
|
||||
inkscape:cy="59.132244"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
@@ -51,7 +54,9 @@
|
||||
inkscape:window-height="842"
|
||||
inkscape:window-x="223"
|
||||
inkscape:window-y="171"
|
||||
inkscape:window-maximized="0" />
|
||||
inkscape:window-maximized="0"
|
||||
showborder="true"
|
||||
inkscape:showpageshadow="false" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
@@ -60,7 +65,7 @@
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
@@ -68,266 +73,272 @@
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1000.3622)">
|
||||
<path
|
||||
style="fill:#828282;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 0.51238178,1047.6176 c 39.84853122,0.2975 39.06036222,-0.099 39.06036222,-0.099 l -0.199288,0.1992 14.946567,-22.1209 -34.078173,0.4983 z"
|
||||
id="path3012"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
transform="translate(0,-948.3622)">
|
||||
<g
|
||||
id="g5003"
|
||||
transform="matrix(1,0,0,0.73291858,-8.4471144,278.0582)">
|
||||
id="g3037"
|
||||
transform="matrix(2.0058991,0,0,2.1735333,-0.01245482,-1227.6881)"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3012"
|
||||
d="m 0.51238178,1047.6176 c 39.84853122,0.2975 39.06036222,-0.099 39.06036222,-0.099 l -0.199288,0.1992 14.946567,-22.1209 -34.078173,0.4983 z"
|
||||
style="fill:#828282;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<g
|
||||
transform="translate(0.35229396,-10.216525)"
|
||||
id="g4999">
|
||||
transform="matrix(1,0,0,0.73291858,-8.4471144,278.0582)"
|
||||
id="g5003">
|
||||
<g
|
||||
id="g4999"
|
||||
transform="translate(0.35229396,-10.216525)">
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#9b001b;stroke-width:2.35320044;stroke-linecap:square;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.619655,1051.261 -0.0379,-10.6898"
|
||||
id="path4835-5-1" />
|
||||
<path
|
||||
style="fill:#9b001b;fill-opacity:1;stroke:#9b001b;stroke-width:0.50915164;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.650366,1036.3564 2.924609,5.3618 -5.646349,-0.079 z"
|
||||
id="path4839-8-4" />
|
||||
</g>
|
||||
<path
|
||||
id="path4835-5-1"
|
||||
d="m 19.619655,1051.261 -0.0379,-10.6898"
|
||||
id="path4835-5-1-9"
|
||||
d="m 22.763027,1043.3097 -5.857755,0.068"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#9b001b;stroke-width:2.35320044;stroke-linecap:square;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
id="path4839-8-4"
|
||||
d="m 19.650366,1036.3564 2.924609,5.3618 -5.646349,-0.079 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#9b001b;fill-opacity:1;stroke:#9b001b;stroke-width:0.50915164;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#9b001b;stroke-width:2.32358861;stroke-linecap:square;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#9b001b;stroke-width:2.32358861;stroke-linecap:square;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 22.763027,1043.3097 -5.857755,0.068"
|
||||
id="path4835-5-1-9" />
|
||||
</g>
|
||||
<g
|
||||
id="g3840"
|
||||
transform="translate(3.4824157,-1.8132564)">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805"
|
||||
d="m 0.44700789,1027.4531 15.09099111,-0.1708 0.03477,4.4259 -15.0487657,0 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-3"
|
||||
d="m 15.232526,1012.5609 13.47153,0.1239 -13.172244,14.7178 -15.04876558,0 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-1"
|
||||
d="m 15.488268,1027.5787 13.215609,-14.9388 0.0093,3.927 -13.147894,15.0997 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
id="g3840-4"
|
||||
transform="translate(25.440502,-1.7884083)">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-6"
|
||||
d="m 0.44700789,1027.4531 15.09099111,-0.1708 0.03477,4.4259 -15.0487657,0 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-3-0"
|
||||
d="m 14.38702,1012.7018 13.260154,0.053 -12.115362,14.6473 -15.04876558,0 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-1-3"
|
||||
d="m 15.488268,1027.5787 12.088268,-14.9388 -0.272535,3.9975 -11.738718,15.0292 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
id="g4901"
|
||||
transform="matrix(0.60201967,0.4999142,-0.5122192,0.60410661,561.21213,379.62342)">
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:3;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.728362,1031.4702 v 16.639"
|
||||
id="path4835" />
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:0.63842267;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.693302,1050.4826 -3.608306,-6.6105 h 7.146014 z"
|
||||
id="path4839" />
|
||||
</g>
|
||||
<g
|
||||
id="g4901-4"
|
||||
transform="matrix(-0.60201967,-0.4999142,0.5122192,-0.60410661,-502.34634,1656.1693)">
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:3;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.728362,1031.4702 v 16.639"
|
||||
id="path4835-5" />
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:0.63842267;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.693302,1050.4826 -3.608306,-6.6105 h 7.146014 z"
|
||||
id="path4839-8" />
|
||||
</g>
|
||||
<g
|
||||
id="g3880">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4929"
|
||||
d="m 20.039629,1008.1212 5.495786,-0.071 0.07046,-5.3549 6.059456,-0.07"
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
id="g3877">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4929-1"
|
||||
d="m 51.887894,1008.4162 -5.495786,-0.071 -0.07046,-5.3549 -6.059456,-0.07"
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#9b001b;fill-opacity:1;stroke:none;font-family:Comic Sans MS;-inkscape-font-specification:Comic Sans MS"
|
||||
x="17.34667"
|
||||
y="1040.807"
|
||||
id="text5009"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5011"
|
||||
x="17.34667"
|
||||
<g
|
||||
transform="translate(3.4824157,-1.8132564)"
|
||||
id="g3840">
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 0.44700789,1027.4531 15.09099111,-0.1708 0.03477,4.4259 -15.0487657,0 z"
|
||||
id="path3805"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 15.232526,1012.5609 13.47153,0.1239 -13.172244,14.7178 -15.04876558,0 z"
|
||||
id="path3805-3"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 15.488268,1027.5787 13.215609,-14.9388 0.0093,3.927 -13.147894,15.0997 z"
|
||||
id="path3805-1"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(25.440502,-1.7884083)"
|
||||
id="g3840-4">
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 0.44700789,1027.4531 15.09099111,-0.1708 0.03477,4.4259 -15.0487657,0 z"
|
||||
id="path3805-6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 14.38702,1012.7018 13.260154,0.053 -12.115362,14.6473 -15.04876558,0 z"
|
||||
id="path3805-3-0"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 15.488268,1027.5787 12.088268,-14.9388 -0.272535,3.9975 -11.738718,15.0292 z"
|
||||
id="path3805-1-3"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.60201967,0.4999142,-0.5122192,0.60410661,561.21213,379.62342)"
|
||||
id="g4901">
|
||||
<path
|
||||
id="path4835"
|
||||
d="m 19.728362,1031.4702 v 16.639"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:3;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
id="path4839"
|
||||
d="m 19.693302,1050.4826 -3.608306,-6.6105 h 7.146014 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:0.63842267;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(-0.60201967,-0.4999142,0.5122192,-0.60410661,-502.34634,1656.1693)"
|
||||
id="g4901-4">
|
||||
<path
|
||||
id="path4835-5"
|
||||
d="m 19.728362,1031.4702 v 16.639"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:3;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
id="path4839-8"
|
||||
d="m 19.693302,1050.4826 -3.608306,-6.6105 h 7.146014 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:0.63842267;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
id="g3880">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 20.039629,1008.1212 5.495786,-0.071 0.07046,-5.3549 6.059456,-0.07"
|
||||
id="path4929"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g3877">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 51.887894,1008.4162 -5.495786,-0.071 -0.07046,-5.3549 -6.059456,-0.07"
|
||||
id="path4929-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text5009"
|
||||
y="1040.807"
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#9b001b;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial Bold">Zodd</tspan></text>
|
||||
<path
|
||||
style="fill:#828282;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 63.769085,1047.86 c 39.848525,0.2975 39.764945,0.1829 39.764945,0.1829 l 0.36438,0.3401 15.08749,-24.5165 -36.332852,-0.3472 z"
|
||||
id="path3012-1"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<g
|
||||
id="g5003-2"
|
||||
transform="matrix(1,0,0,0.73291858,55.091424,278.15961)">
|
||||
x="17.34667"
|
||||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#9b001b;fill-opacity:1;stroke:none;font-family:Comic Sans MS;-inkscape-font-specification:Comic Sans MS"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#9b001b;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial Bold"
|
||||
y="1040.807"
|
||||
x="17.34667"
|
||||
id="tspan5011"
|
||||
sodipodi:role="line">Zodd</tspan></text>
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3012-1"
|
||||
d="m 63.769085,1047.86 c 39.848525,0.2975 39.764945,0.1829 39.764945,0.1829 l 0.36438,0.3401 15.08749,-24.5165 -36.332852,-0.3472 z"
|
||||
style="fill:#828282;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<g
|
||||
transform="translate(0.35229396,-10.216525)"
|
||||
id="g4999-3">
|
||||
transform="matrix(1,0,0,0.73291858,55.091424,278.15961)"
|
||||
id="g5003-2">
|
||||
<g
|
||||
id="g4999-3"
|
||||
transform="translate(0.35229396,-10.216525)">
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#9b001b;stroke-width:2.35320044;stroke-linecap:square;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.619655,1051.261 -0.0379,-10.6898"
|
||||
id="path4835-5-1-2" />
|
||||
<path
|
||||
style="fill:#9b001b;fill-opacity:1;stroke:#9b001b;stroke-width:0.50915164;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.650366,1036.3564 2.924609,5.3618 -5.646349,-0.079 z"
|
||||
id="path4839-8-4-2" />
|
||||
</g>
|
||||
<path
|
||||
id="path4835-5-1-2"
|
||||
d="m 19.619655,1051.261 -0.0379,-10.6898"
|
||||
id="path4835-5-1-9-1"
|
||||
d="m 22.763027,1043.3097 -5.857755,0.068"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#9b001b;stroke-width:2.35320044;stroke-linecap:square;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
id="path4839-8-4-2"
|
||||
d="m 19.650366,1036.3564 2.924609,5.3618 -5.646349,-0.079 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#9b001b;fill-opacity:1;stroke:#9b001b;stroke-width:0.50915164;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#9b001b;stroke-width:2.32358861;stroke-linecap:square;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#9b001b;stroke-width:2.32358861;stroke-linecap:square;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 22.763027,1043.3097 -5.857755,0.068"
|
||||
id="path4835-5-1-9-1" />
|
||||
</g>
|
||||
<g
|
||||
id="g3840-7"
|
||||
transform="translate(67.443707,-1.9936944)">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-4"
|
||||
d="m 0.44700789,1027.4531 15.09099111,-0.1708 0.03477,4.4259 -15.0487657,0 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-3-09"
|
||||
d="m 15.232526,1012.5609 13.47153,0.1239 -13.172244,14.7178 -15.04876558,0 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-1-4"
|
||||
d="m 15.488268,1027.5787 13.215609,-14.9388 0.0093,3.927 -13.147894,15.0997 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
id="g3840-4-8"
|
||||
transform="translate(89.401793,-1.9687944)">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-6-8"
|
||||
d="m 0.44700789,1027.4531 15.09099111,-0.1708 0.03477,4.4259 -15.0487657,0 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-3-0-2"
|
||||
d="m 14.38702,1012.7018 13.260154,0.053 -12.115362,14.6473 -15.04876558,0 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3805-1-3-4"
|
||||
d="m 15.488268,1027.5787 12.088268,-14.9388 -0.272535,3.9975 -11.738718,15.0292 z"
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
id="g4901-5"
|
||||
transform="matrix(-0.60201967,-0.4999142,0.5122192,-0.60410661,-416.58059,1655.9424)">
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:3;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.728362,1031.4702 v 16.639"
|
||||
id="path4835-51" />
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:0.63842267;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.693302,1050.4826 -3.608306,-6.6105 h 7.146014 z"
|
||||
id="path4839-7" />
|
||||
</g>
|
||||
<g
|
||||
id="g4901-4-1"
|
||||
transform="matrix(-0.60201967,-0.4999142,0.5122192,-0.60410661,-438.38505,1655.989)">
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:3;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.728362,1031.4702 v 16.639"
|
||||
id="path4835-5-15" />
|
||||
<path
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:0.63842267;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.693302,1050.4826 -3.608306,-6.6105 h 7.146014 z"
|
||||
id="path4839-8-2" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#9b001b;fill-opacity:1;stroke:none;font-family:Comic Sans MS;-inkscape-font-specification:Comic Sans MS"
|
||||
x="81.307961"
|
||||
y="1040.6267"
|
||||
id="text5009-6"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5011-8"
|
||||
x="81.307961"
|
||||
<g
|
||||
transform="translate(67.443707,-1.9936944)"
|
||||
id="g3840-7">
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 0.44700789,1027.4531 15.09099111,-0.1708 0.03477,4.4259 -15.0487657,0 z"
|
||||
id="path3805-4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 15.232526,1012.5609 13.47153,0.1239 -13.172244,14.7178 -15.04876558,0 z"
|
||||
id="path3805-3-09"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 15.488268,1027.5787 13.215609,-14.9388 0.0093,3.927 -13.147894,15.0997 z"
|
||||
id="path3805-1-4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(89.401793,-1.9687944)"
|
||||
id="g3840-4-8">
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 0.44700789,1027.4531 15.09099111,-0.1708 0.03477,4.4259 -15.0487657,0 z"
|
||||
id="path3805-6-8"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 14.38702,1012.7018 13.260154,0.053 -12.115362,14.6473 -15.04876558,0 z"
|
||||
id="path3805-3-0-2"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#808000;fill-opacity:1;stroke:#000000;stroke-width:0.25849029;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 15.488268,1027.5787 12.088268,-14.9388 -0.272535,3.9975 -11.738718,15.0292 z"
|
||||
id="path3805-1-3-4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(-0.60201967,-0.4999142,0.5122192,-0.60410661,-416.58059,1655.9424)"
|
||||
id="g4901-5">
|
||||
<path
|
||||
id="path4835-51"
|
||||
d="m 19.728362,1031.4702 v 16.639"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:3;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
id="path4839-7"
|
||||
d="m 19.693302,1050.4826 -3.608306,-6.6105 h 7.146014 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:0.63842267;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(-0.60201967,-0.4999142,0.5122192,-0.60410661,-438.38505,1655.989)"
|
||||
id="g4901-4-1">
|
||||
<path
|
||||
id="path4835-5-15"
|
||||
d="m 19.728362,1031.4702 v 16.639"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:3;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
id="path4839-8-2"
|
||||
d="m 19.693302,1050.4826 -3.608306,-6.6105 h 7.146014 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#0017aa;fill-opacity:1;stroke:#0017aa;stroke-width:0.63842267;stroke-linecap:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text5009-6"
|
||||
y="1040.6267"
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#9b001b;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial Bold">Zeven</tspan></text>
|
||||
<g
|
||||
transform="translate(64.334774,-0.35935805)"
|
||||
id="g3880-5">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4929-7"
|
||||
d="m 20.039629,1008.1212 5.495786,-0.071 0.07046,-5.3549 6.059456,-0.07"
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(86.740669,0.20431232)"
|
||||
id="g3880-6">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4929-18"
|
||||
d="m 20.039629,1008.1212 5.495786,-0.071 0.07046,-5.3549 6.059456,-0.07"
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
x="81.307961"
|
||||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#9b001b;fill-opacity:1;stroke:none;font-family:Comic Sans MS;-inkscape-font-specification:Comic Sans MS"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#9b001b;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial Bold"
|
||||
y="1040.6267"
|
||||
x="81.307961"
|
||||
id="tspan5011-8"
|
||||
sodipodi:role="line">Zeven</tspan></text>
|
||||
<g
|
||||
id="g3880-5"
|
||||
transform="translate(64.334774,-0.35935805)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 20.039629,1008.1212 5.495786,-0.071 0.07046,-5.3549 6.059456,-0.07"
|
||||
id="path4929-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g3880-6"
|
||||
transform="translate(86.740669,0.20431232)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 20.039629,1008.1212 5.495786,-0.071 0.07046,-5.3549 6.059456,-0.07"
|
||||
id="path4929-18"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 17 KiB |
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -497,6 +497,8 @@ endif()
|
||||
if( MINGW )
|
||||
# PCBNEW_RESOURCES variable is set by the macro.
|
||||
mingw_resource_compiler( pcbnew )
|
||||
else()
|
||||
set( PCBNEW_RESOURCES pcbnew.rc )
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -752,6 +752,7 @@ void PCB_EDIT_FRAME::Block_Flip()
|
||||
itemsList->SetPickedItemStatus( UR_FLIPPED, ii );
|
||||
item->Flip( center );
|
||||
|
||||
// If a connected item is flipped, the ratsnest is no more OK
|
||||
switch( item->Type() )
|
||||
{
|
||||
case PCB_MODULE_T:
|
||||
@@ -759,9 +760,8 @@ void PCB_EDIT_FRAME::Block_Flip()
|
||||
m_Pcb->m_Status_Pcb = 0;
|
||||
break;
|
||||
|
||||
// Move and rotate the track segments
|
||||
case PCB_TRACE_T: // a track segment (segment on a copper layer)
|
||||
case PCB_VIA_T: // a via (like track segment on a copper layer)
|
||||
case PCB_TRACE_T:
|
||||
case PCB_VIA_T:
|
||||
m_Pcb->m_Status_Pcb = 0;
|
||||
break;
|
||||
|
||||
|
||||
@@ -161,6 +161,9 @@ void DIMENSION::Rotate( const wxPoint& aRotCentre, double aAngle )
|
||||
void DIMENSION::Flip( const wxPoint& aCentre )
|
||||
{
|
||||
Mirror( aCentre );
|
||||
|
||||
// DIMENSION items are not usually on copper layers, so
|
||||
// copper layers count is not taken in accoun in Flip transform
|
||||
SetLayer( FlipLayer( GetLayer() ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -138,6 +138,8 @@ void DRAWSEGMENT::Flip( const wxPoint& aCentre )
|
||||
if( m_Shape == S_ARC )
|
||||
m_Angle = -m_Angle;
|
||||
|
||||
// DRAWSEGMENT items are not allowed on copper layers, so
|
||||
// copper layers count is not taken in accoun in Flip transform
|
||||
SetLayer( FlipLayer( GetLayer() ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -318,6 +318,10 @@ void EDGE_MODULE::Flip( const wxPoint& aCentre )
|
||||
MIRROR( m_PolyPoints[ii].y, 0 );
|
||||
}
|
||||
|
||||
// DRAWSEGMENT items are not usually on copper layers, but
|
||||
// it can happen in microwave apps.
|
||||
// However, currently, only on Front or Back layers.
|
||||
// So the copper layers count is not taken in account
|
||||
SetLayer( FlipLayer( GetLayer() ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
+7
-25
@@ -292,6 +292,9 @@ void D_PAD::Flip( const wxPoint& aCentre )
|
||||
SetOrientation( -GetOrientation() );
|
||||
|
||||
// flip pads layers
|
||||
// PADS items are currently on all copper layers, or
|
||||
// currently, only on Front or Back layers.
|
||||
// So the copper layers count is not taken in account
|
||||
SetLayerSet( FlipLayerMask( m_layerMask ) );
|
||||
|
||||
// m_boundingRadius = -1; the shape has not been changed
|
||||
@@ -335,16 +338,11 @@ const wxPoint D_PAD::ShapePos() const
|
||||
if( m_Offset.x == 0 && m_Offset.y == 0 )
|
||||
return m_Pos;
|
||||
|
||||
wxPoint shape_pos;
|
||||
int dX, dY;
|
||||
wxPoint loc_offset = m_Offset;
|
||||
|
||||
dX = m_Offset.x;
|
||||
dY = m_Offset.y;
|
||||
RotatePoint( &loc_offset, m_Orient );
|
||||
|
||||
RotatePoint( &dX, &dY, m_Orient );
|
||||
|
||||
shape_pos.x = m_Pos.x + dX;
|
||||
shape_pos.y = m_Pos.y + dY;
|
||||
wxPoint shape_pos = m_Pos + loc_offset;
|
||||
|
||||
return shape_pos;
|
||||
}
|
||||
@@ -352,26 +350,10 @@ const wxPoint D_PAD::ShapePos() const
|
||||
|
||||
const wxString D_PAD::GetPadName() const
|
||||
{
|
||||
#if 0 // m_Padname is not ASCII and not UTF8, it is LATIN1 basically, whatever
|
||||
// 8 bit font is supported in KiCad plotting and drawing.
|
||||
|
||||
// Return pad name as wxString, assume it starts as a non-terminated
|
||||
// utf8 character sequence
|
||||
|
||||
char temp[sizeof(m_Padname)+1]; // a place to terminate with '\0'
|
||||
|
||||
strncpy( temp, m_Padname, sizeof(m_Padname) );
|
||||
|
||||
temp[sizeof(m_Padname)] = 0;
|
||||
|
||||
return FROM_UTF8( temp );
|
||||
#else
|
||||
|
||||
wxString name;
|
||||
|
||||
StringPadName( name );
|
||||
return name;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -988,7 +970,7 @@ unsigned int D_PAD::ViewGetLOD( int aLayer ) const
|
||||
if( ( m_Size.x == 0 ) && ( m_Size.y == 0 ) )
|
||||
return UINT_MAX;
|
||||
|
||||
return ( 100000000 / std::max( m_Size.x, m_Size.y ) );
|
||||
return ( Millimeter2iu( 100 ) / std::max( m_Size.x, m_Size.y ) );
|
||||
}
|
||||
|
||||
// Other layers are shown without any conditions
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -480,6 +480,14 @@ void PCB_LAYER_WIDGET::OnLayerVisible( int aLayer, bool isVisible, bool isFinal
|
||||
void PCB_LAYER_WIDGET::OnRenderColorChange( int aId, EDA_COLOR_T aColor )
|
||||
{
|
||||
myframe->GetBoard()->SetVisibleElementColor( aId, aColor );
|
||||
|
||||
if( myframe->GetGalCanvas() )
|
||||
{
|
||||
KIGFX::VIEW* view = myframe->GetGalCanvas()->GetView();
|
||||
view->GetPainter()->GetSettings()->ImportLegacyColors( myframe->GetBoard()->GetColorsSettings() );
|
||||
view->UpdateLayerColor( aId );
|
||||
}
|
||||
|
||||
myframe->GetCanvas()->Refresh();
|
||||
}
|
||||
|
||||
|
||||
@@ -179,7 +179,8 @@ void TEXTE_PCB::Rotate( const wxPoint& aRotCentre, double aAngle )
|
||||
void TEXTE_PCB::Flip(const wxPoint& aCentre )
|
||||
{
|
||||
m_Pos.y = aCentre.y - ( m_Pos.y - aCentre.y );
|
||||
SetLayer( FlipLayer( GetLayer() ) );
|
||||
int copperLayerCount = GetBoard()->GetCopperLayerCount();
|
||||
SetLayer( FlipLayer( GetLayer(), copperLayerCount ) );
|
||||
m_Mirror = !m_Mirror;
|
||||
}
|
||||
|
||||
|
||||
+13
-1
@@ -339,7 +339,8 @@ void TRACK::Flip( const wxPoint& aCentre )
|
||||
{
|
||||
m_Start.y = aCentre.y - (m_Start.y - aCentre.y);
|
||||
m_End.y = aCentre.y - (m_End.y - aCentre.y);
|
||||
SetLayer( FlipLayer( GetLayer() ) );
|
||||
int copperLayerCount = GetBoard()->GetCopperLayerCount();
|
||||
SetLayer( FlipLayer( GetLayer(), copperLayerCount ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -347,6 +348,17 @@ void VIA::Flip( const wxPoint& aCentre )
|
||||
{
|
||||
m_Start.y = aCentre.y - (m_Start.y - aCentre.y);
|
||||
m_End.y = aCentre.y - (m_End.y - aCentre.y);
|
||||
|
||||
if( GetViaType() != VIA_THROUGH )
|
||||
{
|
||||
int copperLayerCount = GetBoard()->GetCopperLayerCount();
|
||||
LAYER_ID top_layer;
|
||||
LAYER_ID bottom_layer;
|
||||
LayerPair( &top_layer, &bottom_layer );
|
||||
top_layer = FlipLayer( top_layer, copperLayerCount );
|
||||
bottom_layer = FlipLayer( bottom_layer, copperLayerCount );
|
||||
SetLayerPair( top_layer, bottom_layer );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -722,7 +722,8 @@ void ZONE_CONTAINER::Rotate( const wxPoint& centre, double angle )
|
||||
void ZONE_CONTAINER::Flip( const wxPoint& aCentre )
|
||||
{
|
||||
Mirror( aCentre );
|
||||
SetLayer( FlipLayer( GetLayer() ) );
|
||||
int copperLayerCount = GetBoard()->GetCopperLayerCount();
|
||||
SetLayer( FlipLayer( GetLayer(), copperLayerCount ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -852,4 +853,4 @@ wxString ZONE_CONTAINER::GetSelectMenuText() const
|
||||
GetChars( GetLayerName() ) );
|
||||
|
||||
return msg;
|
||||
}
|
||||
}
|
||||
|
||||
+15
-10
@@ -38,14 +38,15 @@
|
||||
*/
|
||||
void PCB_EDIT_FRAME::ExecuteRemoteCommand( const char* cmdline )
|
||||
{
|
||||
char line[1024];
|
||||
wxString msg;
|
||||
wxString modName;
|
||||
char* idcmd;
|
||||
char* text;
|
||||
MODULE* module = 0;
|
||||
BOARD* pcb = GetBoard();
|
||||
wxPoint pos;
|
||||
char line[1024];
|
||||
wxString msg;
|
||||
wxString modName;
|
||||
char* idcmd;
|
||||
char* text;
|
||||
MODULE* module = NULL;
|
||||
D_PAD* pad = NULL;
|
||||
BOARD* pcb = GetBoard();
|
||||
wxPoint pos;
|
||||
|
||||
strncpy( line, cmdline, sizeof(line) - 1 );
|
||||
line[sizeof(line) - 1] = 0;
|
||||
@@ -75,7 +76,6 @@ void PCB_EDIT_FRAME::ExecuteRemoteCommand( const char* cmdline )
|
||||
else if( strcmp( idcmd, "$PIN:" ) == 0 )
|
||||
{
|
||||
wxString pinName;
|
||||
D_PAD* pad = NULL;
|
||||
int netcode = -1;
|
||||
|
||||
pinName = FROM_UTF8( text );
|
||||
@@ -132,7 +132,12 @@ void PCB_EDIT_FRAME::ExecuteRemoteCommand( const char* cmdline )
|
||||
{
|
||||
if( IsGalCanvasActive() )
|
||||
{
|
||||
GetToolManager()->RunAction( COMMON_ACTIONS::crossProbeSchToPcb, true, module );
|
||||
GetToolManager()->RunAction( COMMON_ACTIONS::crossProbeSchToPcb,
|
||||
true,
|
||||
pad ?
|
||||
static_cast<BOARD_ITEM*>( pad ) :
|
||||
static_cast<BOARD_ITEM*>( module )
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -452,7 +452,9 @@ bool DIALOG_COPPER_ZONE::AcceptOptions( bool aPromptForErrors, bool aUseExportab
|
||||
(double) m_settings.m_ThermalReliefCopperBridge / IU_PER_MILS );
|
||||
}
|
||||
|
||||
if( m_settings.m_ThermalReliefCopperBridge <= m_settings.m_ZoneMinThickness )
|
||||
if( ( m_settings.GetPadConnection() == PAD_ZONE_CONN_THT_THERMAL
|
||||
|| m_settings.GetPadConnection() == PAD_ZONE_CONN_THERMAL )
|
||||
&& m_settings.m_ThermalReliefCopperBridge <= m_settings.m_ZoneMinThickness )
|
||||
{
|
||||
DisplayError( this,
|
||||
_( "Thermal relief spoke must be greater than the minimum width." ) );
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user