Commit ccbc4882 authored by jean-pierre charras's avatar jean-pierre charras

Pcbnew: fix bug Bug #1194219 (Solder mask clearance ignored for oval pads )

When KISYSMOD is not defined , in GetAllFiles, skip hidden directories
Gerbview: fix a collision name for GetLayout method.
Eeschema: fix potential crash when editing a pin electrical type (The user was able to enter a non existing type)
parents 0a11144c 10352b1d
...@@ -165,7 +165,7 @@ extern const char defaultPageLayout[]; ...@@ -165,7 +165,7 @@ extern const char defaultPageLayout[];
// Default page layout (sizes are in mm) // Default page layout (sizes are in mm)
const char defaultPageLayout[] = "( page_layout\n" const char defaultPageLayout[] = "( page_layout\n"
"(setup (textsize 1.5 1.5) (linewidth 0.15) (textlinewidth 0.15) )" "(setup (textsize 1.5 1.5) (linewidth 0.15) (textlinewidth 0.15) )"
"(rect (comment rect around the title block) (linewidth 0.15) (start 110 34) (end 2 2) )\n" "(rect (comment \"rect around the title block\") (linewidth 0.15) (start 110 34) (end 2 2) )\n"
"(rect (start 0 0 ltcorner) (end 0 0 rbcorner) (repeat 2) (incrx 2) (incry 2) )\n" "(rect (start 0 0 ltcorner) (end 0 0 rbcorner) (repeat 2) (incrx 2) (incry 2) )\n"
"(line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) )\n" "(line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) )\n"
"(tbtext \"1\" (pos 25 1 ltcorner) (font (size 1.3 1.3))(repeat 100) (incrx 50) )\n" "(tbtext \"1\" (pos 25 1 ltcorner) (font (size 1.3 1.3))(repeat 100) (incrx 50) )\n"
...@@ -177,21 +177,21 @@ const char defaultPageLayout[] = "( page_layout\n" ...@@ -177,21 +177,21 @@ const char defaultPageLayout[] = "( page_layout\n"
"(tbtext \"A\" (pos 1 25 rtcorner) (font (size 1.3 1.3)) (justify center) (repeat 100) (incry 50) )\n" "(tbtext \"A\" (pos 1 25 rtcorner) (font (size 1.3 1.3)) (justify center) (repeat 100) (incry 50) )\n"
"(tbtext \"Date: %D\" (pos 87 6.9) )\n" "(tbtext \"Date: %D\" (pos 87 6.9) )\n"
"(line (start 110 5.5) end 2 5.5) )\n" "(line (start 110 5.5) end 2 5.5) )\n"
"(tbtext \"%K\" (pos 109 4.1) (comment Kicad version ) )\n" "(tbtext \"%K\" (pos 109 4.1) (comment \"Kicad version\" ) )\n"
"(line (start 110 8.5) end 2 8.5) )\n" "(line (start 110 8.5) end 2 8.5) )\n"
"(tbtext \"Rev: %R\" (pos 24 6.9)(font bold)(justify left) )\n" "(tbtext \"Rev: %R\" (pos 24 6.9)(font bold)(justify left) )\n"
"(tbtext \"Size: %Z\" (comment Paper format name)(pos 109 6.9) )\n" "(tbtext \"Size: %Z\" (comment \"Paper format name\")(pos 109 6.9) )\n"
"(tbtext \"Id: %S/%N\" (comment Sheet id)(pos 24 4.1) )\n" "(tbtext \"Id: %S/%N\" (comment \"Sheet id\")(pos 24 4.1) )\n"
"(line (start 110 12.5) end 2 12.5) )\n" "(line (start 110 12.5) end 2 12.5) )\n"
"(tbtext \"Title: %T\" (pos 109 10.7)(font bold italic (size 2 2)) )\n" "(tbtext \"Title: %T\" (pos 109 10.7)(font bold italic (size 2 2)) )\n"
"(tbtext \"File: %F\" (pos 109 14.3) )\n" "(tbtext \"File: %F\" (pos 109 14.3) )\n"
"(line (start 110 18.5) end 2 18.5) )\n" "(line (start 110 18.5) end 2 18.5) )\n"
"(tbtext \"Sheet: %P\" (pos 109 17) )\n" "(tbtext \"Sheet: %P\" (pos 109 17) )\n"
"(tbtext \"%Y\" (comment Company name) (pos 109 20)(font bold) )\n" "(tbtext \"%Y\" (comment \"Company name\") (pos 109 20)(font bold) )\n"
"(tbtext \"%C0\" (comment Comment 0) (pos 109 23) )\n" "(tbtext \"%C0\" (comment \"Comment 0\") (pos 109 23) )\n"
"(tbtext \"%C1\" (comment Comment 0) (pos 109 26) )\n" "(tbtext \"%C1\" (comment \"Comment 1\") (pos 109 26) )\n"
"(tbtext \"%C2\" (comment Comment 0) (pos 109 29) )\n" "(tbtext \"%C2\" (comment \"Comment 2\") (pos 109 29) )\n"
"(tbtext \"%C3\" (comment Comment 0) (pos 109 32) )\n" "(tbtext \"%C3\" (comment \"Comment 3\") (pos 109 32) )\n"
"(line (start 90 8.5) end 90 5.5) )\n" "(line (start 90 8.5) end 90 5.5) )\n"
"(line (start 26 8.5) end 26 2) )\n" "(line (start 26 8.5) end 26 2) )\n"
")\n" ")\n"
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 11 2012) // C++ code generated with wxFormBuilder (version Oct 8 2012)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
#include "wx/bmpcbox.h"
#include "dialog_lib_edit_pin_base.h" #include "dialog_lib_edit_pin_base.h"
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
...@@ -33,6 +35,7 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID ...@@ -33,6 +35,7 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID
fgSizerPins->Add( m_staticTextPinName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); fgSizerPins->Add( m_staticTextPinName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_textPinName = new wxTextCtrl( this, ID_M_TEXTPINNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_textPinName = new wxTextCtrl( this, ID_M_TEXTPINNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_textPinName->SetMaxLength( 0 );
fgSizerPins->Add( m_textPinName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); fgSizerPins->Add( m_textPinName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 );
m_staticTextPadName = new wxStaticText( this, ID_M_STATICTEXTPADNAME, _("Pin n&umber:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextPadName = new wxStaticText( this, ID_M_STATICTEXTPADNAME, _("Pin n&umber:"), wxDefaultPosition, wxDefaultSize, 0 );
...@@ -42,13 +45,14 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID ...@@ -42,13 +45,14 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID
fgSizerPins->Add( m_staticTextPadName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); fgSizerPins->Add( m_staticTextPadName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_textPadName = new wxTextCtrl( this, ID_M_TEXTPADNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_textPadName = new wxTextCtrl( this, ID_M_TEXTPADNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_textPadName->SetMaxLength( 0 );
fgSizerPins->Add( m_textPadName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); fgSizerPins->Add( m_textPadName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 );
m_staticTextOrient = new wxStaticText( this, wxID_ANY, _("&Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextOrient = new wxStaticText( this, wxID_ANY, _("&Orientation:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextOrient->Wrap( -1 ); m_staticTextOrient->Wrap( -1 );
fgSizerPins->Add( m_staticTextOrient, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); fgSizerPins->Add( m_staticTextOrient, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_choiceOrientation = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); m_choiceOrientation = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizerPins->Add( m_choiceOrientation, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); fgSizerPins->Add( m_choiceOrientation, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
m_staticTextEType = new wxStaticText( this, wxID_ANY, _("&Electrical type:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextEType = new wxStaticText( this, wxID_ANY, _("&Electrical type:"), wxDefaultPosition, wxDefaultSize, 0 );
...@@ -57,14 +61,14 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID ...@@ -57,14 +61,14 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID
fgSizerPins->Add( m_staticTextEType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); fgSizerPins->Add( m_staticTextEType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_choiceElectricalType = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); m_choiceElectricalType = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizerPins->Add( m_choiceElectricalType, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); fgSizerPins->Add( m_choiceElectricalType, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
m_staticTextGstyle = new wxStaticText( this, wxID_ANY, _("Graphic &Style:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextGstyle = new wxStaticText( this, wxID_ANY, _("Graphic &Style:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextGstyle->Wrap( -1 ); m_staticTextGstyle->Wrap( -1 );
fgSizerPins->Add( m_staticTextGstyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); fgSizerPins->Add( m_staticTextGstyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_choiceStyle = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); m_choiceStyle = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
fgSizerPins->Add( m_choiceStyle, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); fgSizerPins->Add( m_choiceStyle, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
...@@ -115,6 +119,7 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID ...@@ -115,6 +119,7 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID
fgSizerTextsSizes->Add( m_staticTextNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); fgSizerTextsSizes->Add( m_staticTextNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_textPinNameTextSize = new wxTextCtrl( this, ID_M_TEXTPINNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_textPinNameTextSize = new wxTextCtrl( this, ID_M_TEXTPINNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_textPinNameTextSize->SetMaxLength( 0 );
fgSizerTextsSizes->Add( m_textPinNameTextSize, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); fgSizerTextsSizes->Add( m_textPinNameTextSize, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 );
m_staticNameTextSizeUnits = new wxStaticText( this, ID_M_STATICNAMETEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticNameTextSizeUnits = new wxStaticText( this, ID_M_STATICNAMETEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 );
...@@ -126,6 +131,7 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID ...@@ -126,6 +131,7 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID
fgSizerTextsSizes->Add( m_staticTextPadNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); fgSizerTextsSizes->Add( m_staticTextPadNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
m_textPadNameTextSize = new wxTextCtrl( this, ID_M_TEXTPADNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_textPadNameTextSize = new wxTextCtrl( this, ID_M_TEXTPADNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_textPadNameTextSize->SetMaxLength( 0 );
fgSizerTextsSizes->Add( m_textPadNameTextSize, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxEXPAND, 3 ); fgSizerTextsSizes->Add( m_textPadNameTextSize, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxEXPAND, 3 );
m_staticNumberTextSizeUnits = new wxStaticText( this, ID_M_STATICNUMBERTEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticNumberTextSizeUnits = new wxStaticText( this, ID_M_STATICNUMBERTEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 );
...@@ -137,6 +143,7 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID ...@@ -137,6 +143,7 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID
fgSizerTextsSizes->Add( m_staticTextPinLen, 0, wxALL, 5 ); fgSizerTextsSizes->Add( m_staticTextPinLen, 0, wxALL, 5 );
m_textLength = new wxTextCtrl( this, ID_M_TEXTLENGTH, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_textLength = new wxTextCtrl( this, ID_M_TEXTLENGTH, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_textLength->SetMaxLength( 0 );
fgSizerTextsSizes->Add( m_textLength, 0, wxTOP|wxBOTTOM|wxEXPAND, 5 ); fgSizerTextsSizes->Add( m_textLength, 0, wxTOP|wxBOTTOM|wxEXPAND, 5 );
m_staticLengthUnits = new wxStaticText( this, ID_M_STATICLENGTHUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticLengthUnits = new wxStaticText( this, ID_M_STATICLENGTHUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 );
......
...@@ -607,7 +607,7 @@ ...@@ -607,7 +607,7 @@
<property name="selection">-1</property> <property name="selection">-1</property>
<property name="show">1</property> <property name="show">1</property>
<property name="size"></property> <property name="size"></property>
<property name="style"></property> <property name="style">wxCB_READONLY</property>
<property name="subclass">wxBitmapComboBox; wx/bmpcbox.h</property> <property name="subclass">wxBitmapComboBox; wx/bmpcbox.h</property>
<property name="toolbar_pane">0</property> <property name="toolbar_pane">0</property>
<property name="tooltip"></property> <property name="tooltip"></property>
...@@ -781,7 +781,7 @@ ...@@ -781,7 +781,7 @@
<property name="selection">-1</property> <property name="selection">-1</property>
<property name="show">1</property> <property name="show">1</property>
<property name="size"></property> <property name="size"></property>
<property name="style"></property> <property name="style">wxCB_READONLY</property>
<property name="subclass">wxBitmapComboBox; wx/bmpcbox.h</property> <property name="subclass">wxBitmapComboBox; wx/bmpcbox.h</property>
<property name="toolbar_pane">0</property> <property name="toolbar_pane">0</property>
<property name="tooltip"></property> <property name="tooltip"></property>
...@@ -955,7 +955,7 @@ ...@@ -955,7 +955,7 @@
<property name="selection">-1</property> <property name="selection">-1</property>
<property name="show">1</property> <property name="show">1</property>
<property name="size"></property> <property name="size"></property>
<property name="style"></property> <property name="style">wxCB_READONLY</property>
<property name="subclass">wxBitmapComboBox; wx/bmpcbox.h</property> <property name="subclass">wxBitmapComboBox; wx/bmpcbox.h</property>
<property name="toolbar_pane">0</property> <property name="toolbar_pane">0</property>
<property name="tooltip"></property> <property name="tooltip"></property>
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 11 2012) // C++ code generated with wxFormBuilder (version Oct 8 2012)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
...@@ -11,7 +11,9 @@ ...@@ -11,7 +11,9 @@
#include <wx/artprov.h> #include <wx/artprov.h>
#include <wx/xrc/xmlres.h> #include <wx/xrc/xmlres.h>
#include <wx/intl.h> #include <wx/intl.h>
#include "wx/bmpcbox.h" class DIALOG_SHIM;
class wxBitmapComboBox;
#include "dialog_shim.h" #include "dialog_shim.h"
#include <wx/string.h> #include <wx/string.h>
#include <wx/stattext.h> #include <wx/stattext.h>
......
...@@ -311,7 +311,8 @@ void LIB_PIN::SetOrientation( int orientation ) ...@@ -311,7 +311,8 @@ void LIB_PIN::SetOrientation( int orientation )
for( size_t i = 0; i < pinList.size(); i++ ) for( size_t i = 0; i < pinList.size(); i++ )
{ {
if( ( pinList[i]->m_Flags & IS_LINKED ) == 0 || pinList[i]->m_orientation == orientation ) if( ( pinList[i]->m_Flags & IS_LINKED ) == 0 ||
pinList[i]->m_orientation == orientation )
continue; continue;
pinList[i]->m_orientation = orientation; pinList[i]->m_orientation = orientation;
...@@ -349,6 +350,12 @@ void LIB_PIN::SetShape( int aShape ) ...@@ -349,6 +350,12 @@ void LIB_PIN::SetShape( int aShape )
void LIB_PIN::SetType( int aType ) void LIB_PIN::SetType( int aType )
{ {
if( aType < 0 )
aType = 0;
if( aType >= (int)PIN_ELECTRICAL_TYPE_CNT )
aType = PIN_ELECTRICAL_TYPE_CNT - 1;
if( m_type != aType ) if( m_type != aType )
{ {
m_type = aType; m_type = aType;
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 1992-2010 <Jean-Pierre Charras> * Copyright (C) 1992-2013 Jean-Pierre Charras jp.charras at wanadoo.fr
* Copyright (C) 1992-2010 KiCad Developers, see change_log.txt for contributors. * Copyright (C) 1992-2013 KiCad Developers, see change_log.txt for contributors.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
...@@ -308,7 +308,7 @@ void GERBER_IMAGE::StepAndRepeatItem( const GERBER_DRAW_ITEM& aItem ) ...@@ -308,7 +308,7 @@ void GERBER_IMAGE::StepAndRepeatItem( const GERBER_DRAW_ITEM& aItem )
move_vector.y = scaletoIU( jj * GetLayerParams().m_StepForRepeat.y, move_vector.y = scaletoIU( jj * GetLayerParams().m_StepForRepeat.y,
GetLayerParams().m_StepForRepeatMetric ); GetLayerParams().m_StepForRepeatMetric );
dupItem->MoveXY( move_vector ); dupItem->MoveXY( move_vector );
m_Parent->GetLayout()->m_Drawings.Append( dupItem ); m_Parent->GetGerberLayout()->m_Drawings.Append( dupItem );
} }
} }
} }
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#include <dlist.h> #include <dlist.h>
// #include <layers_id_colors_and_visibility.h>
#include <class_colors_design_settings.h> #include <class_colors_design_settings.h>
#include <common.h> // PAGE_INFO #include <common.h> // PAGE_INFO
#include <class_title_block.h> #include <class_title_block.h>
......
...@@ -7,13 +7,7 @@ ...@@ -7,13 +7,7 @@
#include <macros.h> #include <macros.h>
#include <class_gbr_screen.h> #include <class_gbr_screen.h>
#include <base_units.h> #include <base_units.h>
#include <gerbview_id.h>
#include <pcbnew.h>
#include <class_board_design_settings.h>
#include <layers_id_colors_and_visibility.h>
#include <pcbnew_id.h>
#define DMIL_GRID( x ) wxRealPoint( x * IU_PER_DECIMILS,\ #define DMIL_GRID( x ) wxRealPoint( x * IU_PER_DECIMILS,\
x * IU_PER_DECIMILS ) x * IU_PER_DECIMILS )
...@@ -23,7 +17,6 @@ ...@@ -23,7 +17,6 @@
/** /**
Default GerbView zoom values. Default GerbView zoom values.
Limited to 19 values to keep a decent size to menus.
Roughly a 1.5 progression. Roughly a 1.5 progression.
*/ */
static const double gbrZoomList[] = static const double gbrZoomList[] =
......
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com * Copyright (C) 2013 Jean-Pierre Charras, jpierre.charras at wanadoo
* Copyright (C) 2011 Wayne Stambaugh <stambaughw@verizon.net> * Copyright (C) 2013 Wayne Stambaugh <stambaughw@verizon.net>
* Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 1992-2013 KiCad Developers, see AUTHORS.txt for contributors.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
...@@ -59,7 +59,7 @@ void GERBVIEW_FRAME::PrintPage( wxDC* aDC, LAYER_MSK aPrintMasklayer, ...@@ -59,7 +59,7 @@ void GERBVIEW_FRAME::PrintPage( wxDC* aDC, LAYER_MSK aPrintMasklayer,
m_canvas->SetPrintMirrored( aPrintMirrorMode ); m_canvas->SetPrintMirrored( aPrintMirrorMode );
// XXX -1 as drawmode? // XXX -1 as drawmode?
GetLayout()->Draw( m_canvas, aDC, UNSPECIFIED_DRAWMODE, wxPoint( 0, 0 ) ); GetGerberLayout()->Draw( m_canvas, aDC, UNSPECIFIED_DRAWMODE, wxPoint( 0, 0 ) );
m_canvas->SetPrintMirrored( false ); m_canvas->SetPrintMirrored( false );
...@@ -73,7 +73,7 @@ void GERBVIEW_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) ...@@ -73,7 +73,7 @@ void GERBVIEW_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg )
{ {
GBR_SCREEN* screen = (GBR_SCREEN*) GetScreen(); GBR_SCREEN* screen = (GBR_SCREEN*) GetScreen();
if( !GetLayout() ) if( !GetGerberLayout() )
return; return;
wxBusyCursor dummy; wxBusyCursor dummy;
...@@ -96,7 +96,7 @@ void GERBVIEW_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) ...@@ -96,7 +96,7 @@ void GERBVIEW_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg )
} }
// Draw according to the current setting. This needs to be GR_COPY or GR_OR. // Draw according to the current setting. This needs to be GR_COPY or GR_OR.
GetLayout()->Draw( m_canvas, DC, drawMode, wxPoint( 0, 0 ) ); GetGerberLayout()->Draw( m_canvas, DC, drawMode, wxPoint( 0, 0 ) );
// Draw the "background" now, i.e. grid and axis after gerber layers // Draw the "background" now, i.e. grid and axis after gerber layers
// because most of time the actual background is erased by successive drawings of each gerber // because most of time the actual background is erased by successive drawings of each gerber
......
...@@ -487,8 +487,8 @@ bool EXCELLON_IMAGE::Execute_Drill_Command( char*& text ) ...@@ -487,8 +487,8 @@ bool EXCELLON_IMAGE::Execute_Drill_Command( char*& text )
ReportMessage( msg ); ReportMessage( msg );
return false; return false;
} }
gbritem = new GERBER_DRAW_ITEM( GetParent()->GetLayout(), this ); gbritem = new GERBER_DRAW_ITEM( GetParent()->GetGerberLayout(), this );
GetParent()->GetLayout()->m_Drawings.Append( gbritem ); GetParent()->GetGerberLayout()->m_Drawings.Append( gbritem );
if( m_SlotOn ) // Oval hole if( m_SlotOn ) // Oval hole
{ {
fillLineGBRITEM( gbritem, fillLineGBRITEM( gbritem,
......
...@@ -70,7 +70,7 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* aParent, const wxString& aTitle, ...@@ -70,7 +70,7 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* aParent, const wxString& aTitle,
aStyle, GERBVIEW_FRAME_NAME ) aStyle, GERBVIEW_FRAME_NAME )
{ {
m_colorsSettings = &g_ColorsSettings; m_colorsSettings = &g_ColorsSettings;
m_Layout = NULL; m_gerberLayout = NULL;
m_FrameName = GERBVIEW_FRAME_NAME; m_FrameName = GERBVIEW_FRAME_NAME;
m_show_layer_manager_tools = true; m_show_layer_manager_tools = true;
...@@ -95,7 +95,7 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* aParent, const wxString& aTitle, ...@@ -95,7 +95,7 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* aParent, const wxString& aTitle,
SetVisibleLayers( FULL_LAYERS ); // All 32 layers visible. SetVisibleLayers( FULL_LAYERS ); // All 32 layers visible.
SetScreen( new GBR_SCREEN( GetLayout()->GetPageSettings().GetSizeIU() ) ); SetScreen( new GBR_SCREEN( GetGerberLayout()->GetPageSettings().GetSizeIU() ) );
// Create the PCB_LAYER_WIDGET *after* SetLayout(): // Create the PCB_LAYER_WIDGET *after* SetLayout():
wxFont font = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT ); wxFont font = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT );
...@@ -112,10 +112,10 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* aParent, const wxString& aTitle, ...@@ -112,10 +112,10 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* aParent, const wxString& aTitle,
LoadSettings(); LoadSettings();
SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y ); SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y );
if( m_LastGridSizeId < ID_POPUP_GRID_LEVEL_1000 ) if( m_LastGridSizeId < 0 )
m_LastGridSizeId = m_LastGridSizeId; m_LastGridSizeId = 0;
if( m_LastGridSizeId > ID_POPUP_GRID_LEVEL_0_0_1MM ) if( m_LastGridSizeId > ID_POPUP_GRID_LEVEL_0_0_1MM-ID_POPUP_GRID_LEVEL_1000 )
m_LastGridSizeId = ID_POPUP_GRID_LEVEL_0_0_1MM; m_LastGridSizeId = ID_POPUP_GRID_LEVEL_0_0_1MM-ID_POPUP_GRID_LEVEL_1000;
GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId ); GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId );
ReCreateMenuBar(); ReCreateMenuBar();
...@@ -184,13 +184,13 @@ void GERBVIEW_FRAME::OnCloseWindow( wxCloseEvent& Event ) ...@@ -184,13 +184,13 @@ void GERBVIEW_FRAME::OnCloseWindow( wxCloseEvent& Event )
double GERBVIEW_FRAME::BestZoom() double GERBVIEW_FRAME::BestZoom()
{ {
GERBER_DRAW_ITEM* item = GetLayout()->m_Drawings; GERBER_DRAW_ITEM* item = GetGerberLayout()->m_Drawings;
// gives a minimal value to zoom, if no item in list // gives a minimal value to zoom, if no item in list
if( item == NULL ) if( item == NULL )
return ZOOM_FACTOR( 350.0 ); return ZOOM_FACTOR( 350.0 );
EDA_RECT bbox = GetLayout()->ComputeBoundingBox(); EDA_RECT bbox = GetGerberLayout()->ComputeBoundingBox();
wxSize size = m_canvas->GetClientSize(); wxSize size = m_canvas->GetClientSize();
...@@ -552,7 +552,7 @@ LAYER_MSK GERBVIEW_FRAME::GetVisibleLayers() const ...@@ -552,7 +552,7 @@ LAYER_MSK GERBVIEW_FRAME::GetVisibleLayers() const
*/ */
void GERBVIEW_FRAME::SetVisibleLayers( LAYER_MSK aLayerMask ) void GERBVIEW_FRAME::SetVisibleLayers( LAYER_MSK aLayerMask )
{ {
GetLayout()->SetVisibleLayers( aLayerMask ); GetGerberLayout()->SetVisibleLayers( aLayerMask );
} }
...@@ -567,7 +567,7 @@ bool GERBVIEW_FRAME::IsLayerVisible( LAYER_NUM aLayer ) const ...@@ -567,7 +567,7 @@ bool GERBVIEW_FRAME::IsLayerVisible( LAYER_NUM aLayer ) const
if( ! m_DisplayOptions.m_IsPrinting ) if( ! m_DisplayOptions.m_IsPrinting )
return m_LayersManager->IsLayerVisible( aLayer ); return m_LayersManager->IsLayerVisible( aLayer );
else else
return GetLayout()->IsLayerVisible( aLayer ); return GetGerberLayout()->IsLayerVisible( aLayer );
} }
...@@ -693,8 +693,8 @@ void GERBVIEW_FRAME::setActiveLayer( LAYER_NUM aLayer, bool doLayerWidgetUpdate ...@@ -693,8 +693,8 @@ void GERBVIEW_FRAME::setActiveLayer( LAYER_NUM aLayer, bool doLayerWidgetUpdate
void GERBVIEW_FRAME::SetPageSettings( const PAGE_INFO& aPageSettings ) void GERBVIEW_FRAME::SetPageSettings( const PAGE_INFO& aPageSettings )
{ {
wxASSERT( m_Layout ); wxASSERT( m_gerberLayout );
m_Layout->SetPageSettings( aPageSettings ); m_gerberLayout->SetPageSettings( aPageSettings );
if( GetScreen() ) if( GetScreen() )
GetScreen()->InitDataPoints( aPageSettings.GetSizeIU() ); GetScreen()->InitDataPoints( aPageSettings.GetSizeIU() );
...@@ -703,47 +703,47 @@ void GERBVIEW_FRAME::SetPageSettings( const PAGE_INFO& aPageSettings ) ...@@ -703,47 +703,47 @@ void GERBVIEW_FRAME::SetPageSettings( const PAGE_INFO& aPageSettings )
const PAGE_INFO& GERBVIEW_FRAME::GetPageSettings() const const PAGE_INFO& GERBVIEW_FRAME::GetPageSettings() const
{ {
wxASSERT( m_Layout ); wxASSERT( m_gerberLayout );
return m_Layout->GetPageSettings(); return m_gerberLayout->GetPageSettings();
} }
const wxSize GERBVIEW_FRAME::GetPageSizeIU() const const wxSize GERBVIEW_FRAME::GetPageSizeIU() const
{ {
wxASSERT( m_Layout ); wxASSERT( m_gerberLayout );
// this function is only needed because EDA_DRAW_FRAME is not compiled // this function is only needed because EDA_DRAW_FRAME is not compiled
// with either -DPCBNEW or -DEESCHEMA, so the virtual is used to route // with either -DPCBNEW or -DEESCHEMA, so the virtual is used to route
// into an application specific source file. // into an application specific source file.
return m_Layout->GetPageSettings().GetSizeIU(); return m_gerberLayout->GetPageSettings().GetSizeIU();
} }
const TITLE_BLOCK& GERBVIEW_FRAME::GetTitleBlock() const const TITLE_BLOCK& GERBVIEW_FRAME::GetTitleBlock() const
{ {
wxASSERT( m_Layout ); wxASSERT( m_gerberLayout );
return m_Layout->GetTitleBlock(); return m_gerberLayout->GetTitleBlock();
} }
void GERBVIEW_FRAME::SetTitleBlock( const TITLE_BLOCK& aTitleBlock ) void GERBVIEW_FRAME::SetTitleBlock( const TITLE_BLOCK& aTitleBlock )
{ {
wxASSERT( m_Layout ); wxASSERT( m_gerberLayout );
m_Layout->SetTitleBlock( aTitleBlock ); m_gerberLayout->SetTitleBlock( aTitleBlock );
} }
const wxPoint& GERBVIEW_FRAME::GetOriginAxisPosition() const const wxPoint& GERBVIEW_FRAME::GetOriginAxisPosition() const
{ {
wxASSERT( m_Layout ); wxASSERT( m_gerberLayout );
return m_Layout->GetOriginAxisPosition(); return m_gerberLayout->GetOriginAxisPosition();
} }
void GERBVIEW_FRAME::SetOriginAxisPosition( const wxPoint& aPosition ) void GERBVIEW_FRAME::SetOriginAxisPosition( const wxPoint& aPosition )
{ {
wxASSERT( m_Layout ); wxASSERT( m_gerberLayout );
m_Layout->SetOriginAxisPosition( aPosition ); m_gerberLayout->SetOriginAxisPosition( aPosition );
} }
...@@ -768,13 +768,13 @@ void GERBVIEW_FRAME::SetCurItem( GERBER_DRAW_ITEM* aItem, bool aDisplayInfo ) ...@@ -768,13 +768,13 @@ void GERBVIEW_FRAME::SetCurItem( GERBER_DRAW_ITEM* aItem, bool aDisplayInfo )
/* /*
* Function GetLayoutBoundingBox * Function GetGerberLayoutBoundingBox
* returns the bounding box containing all gerber items. * returns the bounding box containing all gerber items.
*/ */
EDA_RECT GERBVIEW_FRAME::GetLayoutBoundingBox() EDA_RECT GERBVIEW_FRAME::GetGerberLayoutBoundingBox()
{ {
GetLayout()->ComputeBoundingBox(); GetGerberLayout()->ComputeBoundingBox();
return GetLayout()->GetBoundingBox(); return GetGerberLayout()->GetBoundingBox();
} }
/* /*
......
...@@ -82,26 +82,26 @@ public: ...@@ -82,26 +82,26 @@ public:
class GERBVIEW_FRAME : public EDA_DRAW_FRAME // PCB_BASE_FRAME class GERBVIEW_FRAME : public EDA_DRAW_FRAME // PCB_BASE_FRAME
{ {
GBR_LAYOUT* m_Layout; GBR_LAYOUT* m_gerberLayout;
public: public:
GBR_DISPLAY_OPTIONS m_DisplayOptions; GBR_DISPLAY_OPTIONS m_DisplayOptions;
/** /**
* Function SetLayout * Function SetLayout
* sets the m_Layout member in such as way as to ensure deleting any previous * sets the m_gerberLayout member in such as way as to ensure deleting any previous
* GBR_LAYOUT. * GBR_LAYOUT.
* @param aLayout The GBR_LAYOUT to put into the frame. * @param aLayout The GBR_LAYOUT to put into the frame.
*/ */
void SetLayout( GBR_LAYOUT* aLayout ) void SetLayout( GBR_LAYOUT* aLayout )
{ {
delete m_Layout; delete m_gerberLayout;
m_Layout = aLayout; m_gerberLayout = aLayout;
} }
GBR_LAYOUT* GetLayout() const GBR_LAYOUT* GetGerberLayout() const
{ {
wxASSERT( m_Layout ); wxASSERT( m_gerberLayout );
return m_Layout; return m_gerberLayout;
} }
/** /**
...@@ -110,17 +110,17 @@ public: ...@@ -110,17 +110,17 @@ public:
*/ */
GERBER_DRAW_ITEM* GetItemsList() GERBER_DRAW_ITEM* GetItemsList()
{ {
GERBER_DRAW_ITEM* item = GetLayout()->m_Drawings; GERBER_DRAW_ITEM* item = GetGerberLayout()->m_Drawings;
return (GERBER_DRAW_ITEM*) item; return (GERBER_DRAW_ITEM*) item;
} }
/** /**
* Function GetLayoutBoundingBox * Function GetGerberLayoutBoundingBox
* calculates the bounding box containing all gerber items. * calculates the bounding box containing all gerber items.
* @return EDA_RECT - the items bounding box * @return EDA_RECT - the items bounding box
*/ */
EDA_RECT GetLayoutBoundingBox(); EDA_RECT GetGerberLayoutBoundingBox();
void SetPageSettings( const PAGE_INFO& aPageSettings ); // overload void SetPageSettings( const PAGE_INFO& aPageSettings ); // overload
const PAGE_INFO& GetPageSettings() const; // overload const PAGE_INFO& GetPageSettings() const; // overload
......
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 2007 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com * Copyright (C) 2013 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 1992-2013 KiCad Developers, see AUTHORS.txt for contributors.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
...@@ -41,7 +41,7 @@ bool GERBVIEW_FRAME::Clear_Pcb( bool query ) ...@@ -41,7 +41,7 @@ bool GERBVIEW_FRAME::Clear_Pcb( bool query )
{ {
LAYER_NUM layer; LAYER_NUM layer;
if( GetLayout() == NULL ) if( GetGerberLayout() == NULL )
return false; return false;
if( query && GetScreen()->IsModify() ) if( query && GetScreen()->IsModify() )
...@@ -50,7 +50,7 @@ bool GERBVIEW_FRAME::Clear_Pcb( bool query ) ...@@ -50,7 +50,7 @@ bool GERBVIEW_FRAME::Clear_Pcb( bool query )
return false; return false;
} }
GetLayout()->m_Drawings.DeleteAll(); GetGerberLayout()->m_Drawings.DeleteAll();
for( layer = FIRST_LAYER; layer < NB_GERBER_LAYERS; ++layer ) for( layer = FIRST_LAYER; layer < NB_GERBER_LAYERS; ++layer )
{ {
...@@ -61,7 +61,7 @@ bool GERBVIEW_FRAME::Clear_Pcb( bool query ) ...@@ -61,7 +61,7 @@ bool GERBVIEW_FRAME::Clear_Pcb( bool query )
} }
} }
GetLayout()->SetBoundingBox( EDA_RECT() ); GetGerberLayout()->SetBoundingBox( EDA_RECT() );
SetScreen( new GBR_SCREEN( GetPageSettings().GetSizeIU() ) ); SetScreen( new GBR_SCREEN( GetPageSettings().GetSizeIU() ) );
...@@ -84,7 +84,7 @@ void GERBVIEW_FRAME::Erase_Current_Layer( bool query ) ...@@ -84,7 +84,7 @@ void GERBVIEW_FRAME::Erase_Current_Layer( bool query )
SetCurItem( NULL ); SetCurItem( NULL );
GERBER_DRAW_ITEM* item = GetLayout()->m_Drawings; GERBER_DRAW_ITEM* item = GetGerberLayout()->m_Drawings;
GERBER_DRAW_ITEM * next; GERBER_DRAW_ITEM * next;
for( ; item; item = next ) for( ; item; item = next )
......
...@@ -5,12 +5,8 @@ ...@@ -5,12 +5,8 @@
#include <fctsys.h> #include <fctsys.h>
#include <class_drawpanel.h> #include <class_drawpanel.h>
#include <common.h> #include <common.h>
//#include "gestfich.h"
//#include "appl_wxstruct.h"
#include <gerbview.h> #include <gerbview.h>
//#include "pcbplot.h"
//#include "kicad_device_context.h"
#include <gerbview_id.h> #include <gerbview_id.h>
#include <class_GERBER.h> #include <class_GERBER.h>
#include <dialog_helpers.h> #include <dialog_helpers.h>
......
...@@ -8,11 +8,6 @@ ...@@ -8,11 +8,6 @@
#include <gerbview.h> #include <gerbview.h>
#include <pcbplot.h> #include <pcbplot.h>
/**************************************************************/
/* void PCB_BASE_FRAME::ToPlotter(wxCommandEvent& event) */
/***************************************************************/
/** TODO */ /** TODO */
void GERBVIEW_FRAME::ToPlotter(wxCommandEvent& event) void GERBVIEW_FRAME::ToPlotter(wxCommandEvent& event)
{ {
......
/********************/ /**
/**** rs274d.cpp ****/ * @file rs274d.cpp
/********************/ * @brief functions to read the rs274d commands from a rs274d/rs274x file
*/
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2013 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <fctsys.h> #include <fctsys.h>
#include <common.h> #include <common.h>
...@@ -511,9 +535,9 @@ bool GERBER_IMAGE::Execute_G_Command( char*& text, int G_command ) ...@@ -511,9 +535,9 @@ bool GERBER_IMAGE::Execute_G_Command( char*& text, int G_command )
break; break;
case GC_TURN_OFF_POLY_FILL: case GC_TURN_OFF_POLY_FILL:
if( m_Exposure && m_Parent->GetLayout()->m_Drawings ) // End of polygon if( m_Exposure && m_Parent->GetGerberLayout()->m_Drawings ) // End of polygon
{ {
GERBER_DRAW_ITEM * gbritem = m_Parent->GetLayout()->m_Drawings.GetLast(); GERBER_DRAW_ITEM * gbritem = m_Parent->GetGerberLayout()->m_Drawings.GetLast();
StepAndRepeatItem( *gbritem ); StepAndRepeatItem( *gbritem );
} }
m_Exposure = false; m_Exposure = false;
...@@ -542,7 +566,7 @@ bool GERBER_IMAGE::Execute_DCODE_Command( char*& text, int D_commande ) ...@@ -542,7 +566,7 @@ bool GERBER_IMAGE::Execute_DCODE_Command( char*& text, int D_commande )
APERTURE_T aperture = APT_CIRCLE; APERTURE_T aperture = APT_CIRCLE;
GERBER_DRAW_ITEM* gbritem; GERBER_DRAW_ITEM* gbritem;
GBR_LAYOUT* layout = m_Parent->GetLayout(); GBR_LAYOUT* layout = m_Parent->GetGerberLayout();
LAYER_NUM activeLayer = m_Parent->getActiveLayer(); LAYER_NUM activeLayer = m_Parent->getActiveLayer();
......
...@@ -345,9 +345,12 @@ public: ...@@ -345,9 +345,12 @@ public:
* position. * position.
* @param aSegEnd = the ending point of the equivalent segment, relative to the shape position * @param aSegEnd = the ending point of the equivalent segment, relative to the shape position
* @param aRotation = full rotation of the segment * @param aRotation = full rotation of the segment
* @param aRotation = full rotation of the segment
* @param aMargin = a margin around the shape (for instance mask margin)
* @return the width of the segment * @return the width of the segment
*/ */
int BuildSegmentFromOvalShape( wxPoint& aSegStart, wxPoint& aSegEnd, double aRotation ) const; int BuildSegmentFromOvalShape( wxPoint& aSegStart, wxPoint& aSegEnd,
double aRotation, const wxSize& aMargin ) const;
void ReturnStringPadName( wxString& text ) const; // Return pad name as string in a buffer void ReturnStringPadName( wxString& text ) const; // Return pad name as string in a buffer
......
...@@ -340,8 +340,7 @@ void D_PAD::DrawShape( EDA_RECT* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo ) ...@@ -340,8 +340,7 @@ void D_PAD::DrawShape( EDA_RECT* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo )
GRCircle( aClipBox, GRCircle( aClipBox,
aDC, shape_pos.x, shape_pos.y, aDC, shape_pos.x, shape_pos.y,
halfsize.x + aDrawInfo.m_PadClearance, halfsize.x + aDrawInfo.m_PadClearance,
0, 0, aDrawInfo.m_Color );
aDrawInfo.m_Color );
} }
break; break;
...@@ -349,7 +348,8 @@ void D_PAD::DrawShape( EDA_RECT* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo ) ...@@ -349,7 +348,8 @@ void D_PAD::DrawShape( EDA_RECT* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo )
case PAD_OVAL: case PAD_OVAL:
{ {
wxPoint segStart, segEnd; wxPoint segStart, segEnd;
seg_width = BuildSegmentFromOvalShape(segStart, segEnd, angle); seg_width = BuildSegmentFromOvalShape(segStart, segEnd, angle,
aDrawInfo.m_Mask_margin);
segStart += shape_pos; segStart += shape_pos;
segEnd += shape_pos; segEnd += shape_pos;
...@@ -596,27 +596,27 @@ void D_PAD::DrawShape( EDA_RECT* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo ) ...@@ -596,27 +596,27 @@ void D_PAD::DrawShape( EDA_RECT* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo )
* aRotation is the asked rotation of the segment (usually m_Orient) * aRotation is the asked rotation of the segment (usually m_Orient)
*/ */
int D_PAD::BuildSegmentFromOvalShape(wxPoint& aSegStart, wxPoint& aSegEnd, int D_PAD::BuildSegmentFromOvalShape(wxPoint& aSegStart, wxPoint& aSegEnd,
double aRotation) const double aRotation, const wxSize& aMargin) const
{ {
int width; int width;
if( m_Size.y < m_Size.x ) // Build an horizontal equiv segment if( m_Size.y < m_Size.x ) // Build an horizontal equiv segment
{ {
int delta = ( m_Size.x - m_Size.y ) / 2; int delta = ( m_Size.x - m_Size.y ) / 2;
aSegStart.x = -delta; aSegStart.x = -delta - aMargin.x;
aSegStart.y = 0; aSegStart.y = 0;
aSegEnd.x = delta; aSegEnd.x = delta + aMargin.x;
aSegEnd.y = 0; aSegEnd.y = 0;
width = m_Size.y; width = m_Size.y + ( aMargin.y * 2 );
} }
else // Vertical oval: build a vertical equiv segment else // Vertical oval: build a vertical equiv segment
{ {
int delta = ( m_Size.y -m_Size.x ) / 2; int delta = ( m_Size.y -m_Size.x ) / 2;
aSegStart.x = 0; aSegStart.x = 0;
aSegStart.y = -delta; aSegStart.y = -delta - aMargin.y;
aSegEnd.x = 0; aSegEnd.x = 0;
aSegEnd.y = delta; aSegEnd.y = delta + aMargin.y;
width = m_Size.x; width = m_Size.x + ( aMargin.x * 2 );
} }
if( aRotation ) if( aRotation )
......
...@@ -199,7 +199,8 @@ bool EDA_APP::OnInit() ...@@ -199,7 +199,8 @@ bool EDA_APP::OnInit()
for( unsigned i = 0; i < GetLibraryPathList().GetCount(); i++ ) for( unsigned i = 0; i < GetLibraryPathList().GetCount(); i++ )
{ {
unsigned cnt = wxDir::GetAllFiles( GetLibraryPathList()[i], &tmp, wxT( "*.mod" ) ); unsigned cnt = wxDir::GetAllFiles( GetLibraryPathList()[i], &tmp,
wxT( "*.mod" ), wxDIR_DEFAULT & ~wxDIR_HIDDEN );
if( cnt > modFileCount ) if( cnt > modFileCount )
{ {
......
...@@ -168,7 +168,7 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage() ...@@ -168,7 +168,7 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage()
boardBoundingBox = brd->ComputeBoundingBox(); boardBoundingBox = brd->ComputeBoundingBox();
wxString titleblockFilename = brd->GetFileName(); wxString titleblockFilename = brd->GetFileName();
#elif defined (GERBVIEW) #elif defined (GERBVIEW)
boardBoundingBox = ((GERBVIEW_FRAME*) m_Parent)->GetLayoutBoundingBox(); boardBoundingBox = ((GERBVIEW_FRAME*) m_Parent)->GetGerberLayoutBoundingBox();
wxString titleblockFilename; // TODO see if we uses the gerber file name wxString titleblockFilename; // TODO see if we uses the gerber file name
#else #else
#error BOARD_PRINTOUT_CONTROLLER::DrawPage() works only for PCBNEW or GERBVIEW #error BOARD_PRINTOUT_CONTROLLER::DrawPage() works only for PCBNEW or GERBVIEW
......
( page_layout ( page_layout
( setup (textsize 1.5 1.5) (linewidth 0.15) (textlinewidth 0.15) ) ( setup (textsize 1.5 1.5) (linewidth 0.15) (textlinewidth 0.15) )
( rect (comment rect around the title block) (linewidth 0.15) (start 110 34) (end 2 2) ) ( rect (comment "rect around the title block") (linewidth 0.15) (start 110 34) (end 2 2) )
( rect (start 0 0 ltcorner) (end 0 0 rbcorner) (repeat 2) (incrx 2) (incry 2) ) ( rect (start 0 0 ltcorner) (end 0 0 rbcorner) (repeat 2) (incrx 2) (incry 2) )
( line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) ) ( line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) )
( tbtext "1" (pos 25 1 ltcorner) (font (size 1.3 1.3))(repeat 100) (incrx 50) ) ( tbtext "1" (pos 25 1 ltcorner) (font (size 1.3 1.3))(repeat 100) (incrx 50) )
...@@ -14,21 +14,21 @@ ...@@ -14,21 +14,21 @@
(justify center) (repeat 100) (incry 50) ) (justify center) (repeat 100) (incry 50) )
( tbtext "Date: %D" (pos 87 6.9) ) ( tbtext "Date: %D" (pos 87 6.9) )
( line (start 110 5.5) end 2 5.5) ) ( line (start 110 5.5) end 2 5.5) )
( tbtext "%K" (pos 109 4.1) (comment Kicad version ) ) ( tbtext "%K" (pos 109 4.1) (comment "Kicad version" ) )
( line (start 110 8.5) end 2 8.5) ) ( line (start 110 8.5) end 2 8.5) )
( tbtext "Rev: %R" (pos 24 6.9)(font bold)(justify left) ) ( tbtext "Rev: %R" (pos 24 6.9)(font bold)(justify left) )
( tbtext "Size: %Z" (comment Paper format name)(pos 109 6.9) ) ( tbtext "Size: %Z" (comment "Paper format name")(pos 109 6.9) )
( tbtext "Id: %S/%N" (comment Sheet id)(pos 24 4.1) ) ( tbtext "Id: %S/%N" (comment "Sheet id")(pos 24 4.1) )
( line (start 110 12.5) end 2 12.5) ) ( line (start 110 12.5) end 2 12.5) )
( tbtext "Title: %T" (pos 109 10.7)(font bold (size 2 2)) ) ( tbtext "Title: %T" (pos 109 10.7)(font bold (size 2 2)) )
( tbtext "File: %F" (pos 109 14.3) ) ( tbtext "File: %F" (pos 109 14.3) )
( line (start 110 18.5) end 2 18.5) ) ( line (start 110 18.5) end 2 18.5) )
( tbtext "Sheet: %P" (pos 109 17) ) ( tbtext "Sheet: %P" (pos 109 17) )
( tbtext "%Y" (comment Company name) (pos 109 20)(font bold) ) ( tbtext "%Y" (comment "Company name") (pos 109 20)(font bold) )
( tbtext "%C0" (comment Comment 0) (pos 109 23) ) ( tbtext "%C0" (comment "Comment 0") (pos 109 23) )
( tbtext "%C1" (comment Comment 0) (pos 109 26) ) ( tbtext "%C1" (comment "Comment 1") (pos 109 26) )
( tbtext "%C2" (comment Comment 0) (pos 109 29) ) ( tbtext "%C2" (comment "Comment 2") (pos 109 29) )
( tbtext "%C3" (comment Comment 0) (pos 109 32) ) ( tbtext "%C3" (comment "Comment 3") (pos 109 32) )
( line (start 90 8.5) end 90 5.5) ) ( line (start 90 8.5) end 90 5.5) )
( line (start 26 8.5) end 26 2) ) ( line (start 26 8.5) end 26 2) )
) )
( page_layout ( page_layout
( setup (textsize 1.5 1.5) (linewidth 0.15) (textlinewidth 0.15) ) ( setup (textsize 1.5 1.5) (linewidth 0.15) (textlinewidth 0.15) )
( rect (comment rect around the title block) (linewidth 0.15) (start 110 34) (end 2 2) ) ( rect (comment "rect around the title block") (linewidth 0.15) (start 110 34) (end 2 2) )
( rect (start 0 0 ltcorner) (end 0 0 rbcorner) (repeat 2) (incrx 2) (incry 2) ) ( rect (start 0 0 ltcorner) (end 0 0 rbcorner) (repeat 2) (incrx 2) (incry 2) )
( line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) ) ( line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) )
( tbtext "1" (pos 25 1 ltcorner) (font (size 1.3 1.3))(repeat 100) (incrx 50) ) ( tbtext "1" (pos 25 1 ltcorner) (font (size 1.3 1.3))(repeat 100) (incrx 50) )
...@@ -14,25 +14,25 @@ ...@@ -14,25 +14,25 @@
(justify center) (repeat 100) (incry 50) ) (justify center) (repeat 100) (incry 50) )
( tbtext "Date: %D" (pos 87 6.9) ) ( tbtext "Date: %D" (pos 87 6.9) )
( line (start 110 5.5) end 2 5.5) ) ( line (start 110 5.5) end 2 5.5) )
( tbtext "%K" (pos 109 4.1) (comment Kicad version ) ) ( tbtext "%K" (pos 109 4.1) (comment "Kicad version" ) )
( line (start 110 8.5) end 2 8.5) ) ( line (start 110 8.5) end 2 8.5) )
( tbtext "Rev: %R" (pos 24 6.9)(font bold)(justify left) ) ( tbtext "Rev: %R" (pos 24 6.9)(font bold)(justify left) )
( tbtext "Size: %Z" (comment Paper format name)(pos 109 6.9) ) ( tbtext "Size: %Z" (comment "Paper format name")(pos 109 6.9) )
( tbtext "Id: %S/%N" (comment Sheet id)(pos 24 4.1) ) ( tbtext "Id: %S/%N" (comment "Sheet id")(pos 24 4.1) )
( line (start 110 12.5) end 2 12.5) ) ( line (start 110 12.5) end 2 12.5) )
( tbtext "Title: %T" (pos 109 10.7)(font bold (size 2 2)) ) ( tbtext "Title: %T" (pos 109 10.7)(font bold (size 2 2)) )
( tbtext "File: %F" (pos 109 14.3) ) ( tbtext "File: %F" (pos 109 14.3) )
( line (start 110 18.5) end 2 18.5) ) ( line (start 110 18.5) end 2 18.5) )
( tbtext "Sheet: %P" (pos 109 17) ) ( tbtext "Sheet: %P" (pos 109 17) )
( tbtext "%Y" (comment Company name) (pos 109 20)(font bold) ) ( tbtext "%Y" (comment "Company name") (pos 109 20)(font bold) )
( tbtext "%C0" (comment Comment 0) (pos 109 23) ) ( tbtext "%C0" (comment "Comment 0") (pos 109 23) )
( tbtext "%C1" (comment Comment 0) (pos 109 26) ) ( tbtext "%C1" (comment "Comment 1") (pos 109 26) )
( tbtext "%C2" (comment Comment 0) (pos 109 29) ) ( tbtext "%C2" (comment "Comment 2") (pos 109 29) )
( tbtext "%C3" (comment Comment 0) (pos 109 32) ) ( tbtext "%C3" (comment "Comment 3") (pos 109 32) )
( line (start 90 8.5) end 90 5.5) ) ( line (start 90 8.5) (end 90 5.5) )
( line (start 26 8.5) end 26 2) ) ( line (start 26 8.5) (end 26 2) )
( rect (comment rect around the logo) (linewidth 0.15) (start 157 34) (end 110 2) ) ( rect (comment "rect around the logo") (linewidth 0.15) (start 157 34) (end 110 2) )
(polygon (pos 134 18 rbcorner) (rotate 20) (linewidth 0.00254) (polygon (pos 134 18 rbcorner) (rotate 20) (linewidth 0.00254)
(pts (xy 20.574 8.382) (xy 19.9009 8.382) (xy 19.9009 6.26364) (xy 19.7485 5.98932) (pts (xy 20.574 8.382) (xy 19.9009 8.382) (xy 19.9009 6.26364) (xy 19.7485 5.98932)
(xy 19.71802 5.92328) (xy 19.69262 5.83946) (xy 19.66976 5.72262) (xy 19.65198 5.56006) (xy 19.71802 5.92328) (xy 19.69262 5.83946) (xy 19.66976 5.72262) (xy 19.65198 5.56006)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment