Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
dc35a18c
Commit
dc35a18c
authored
Dec 28, 2010
by
Dick Hollenbeck
Browse files
Options
Browse Files
Download
Plain Diff
merge from testing, new work
parents
4e97b4e1
258cebf1
Changes
34
Show whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
312 additions
and
159 deletions
+312
-159
CHANGELOG.txt
CHANGELOG.txt
+14
-0
TokenList2DsnLexer.cmake
CMakeModules/TokenList2DsnLexer.cmake
+21
-3
build_version.cpp
common/build_version.cpp
+1
-1
common_plotDXF_functions.cpp
common/common_plotDXF_functions.cpp
+10
-12
drawtxt.cpp
common/drawtxt.cpp
+18
-16
dsnlexer.cpp
common/dsnlexer.cpp
+25
-1
richio.cpp
common/richio.cpp
+12
-10
xnode.cpp
common/xnode.cpp
+5
-7
block.cpp
eeschema/block.cpp
+5
-4
sch_items.h
eeschema/sch_items.h
+1
-1
base_struct.h
include/base_struct.h
+7
-7
class_base_screen.h
include/class_base_screen.h
+1
-1
class_board_item.h
include/class_board_item.h
+2
-2
class_drawpanel.h
include/class_drawpanel.h
+13
-3
drawtxt.h
include/drawtxt.h
+3
-1
dsnlexer.h
include/dsnlexer.h
+33
-11
gr_basic.h
include/gr_basic.h
+1
-3
hotkeys_basic.h
include/hotkeys_basic.h
+1
-1
kicad_exceptions.h
include/kicad_exceptions.h
+4
-0
richio.h
include/richio.h
+3
-4
wxBasePcbFrame.h
include/wxBasePcbFrame.h
+6
-4
wxEeschemaStruct.h
include/wxEeschemaStruct.h
+3
-3
wxstruct.h
include/wxstruct.h
+1
-1
xnode.h
include/xnode.h
+6
-0
sch_lib_table.cpp
new/sch_lib_table.cpp
+56
-6
sch_lib_table.h
new/sch_lib_table.h
+34
-32
board_undo_redo.cpp
pcbnew/board_undo_redo.cpp
+1
-1
class_text_mod.cpp
pcbnew/class_text_mod.cpp
+4
-4
class_text_mod.h
pcbnew/class_text_mod.h
+1
-1
gen_drill_report_files.cpp
pcbnew/gen_drill_report_files.cpp
+5
-4
gen_holes_and_tools_lists_for_drill.cpp
pcbnew/gen_holes_and_tools_lists_for_drill.cpp
+1
-1
gendrill.h
pcbnew/gendrill.h
+8
-9
gpcb_exchange.cpp
pcbnew/gpcb_exchange.cpp
+3
-3
muonde.cpp
pcbnew/muonde.cpp
+3
-2
No files found.
CHANGELOG.txt
View file @
dc35a18c
...
...
@@ -4,6 +4,20 @@ KiCad ChangeLog 2010
Please add newer entries at the top, list the date and your name with
email address.
2010-Dec-28 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++new:
Completed a good portion of /new class LIB_TABLE.
Starting LPID.
++common:
Tricked xnode.h into not issuing deprecation warnings.
++richio:
* Added support of DSNLEXER( LINE_READER* ) to TokenList2DsnLexer.cmake, which
allows the chaining of different grammars on top of a common LINE_READER.
* Changed OUTPUT_FORMATTER::Quoted() to return a std::string and not modify
its input parameter.
2010-dec-21 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++all
...
...
CMakeModules/TokenList2DsnLexer.cmake
View file @
dc35a18c
...
...
@@ -223,8 +223,9 @@ using namespace DSN; // enum ${enum} is in this namespace
class
${
RESULT
}
_LEXER : public DSNLEXER
{
public:
/**
* Constructor
${
RESULT
}
_LEXER
* Constructor
( const std::string&, const wxString& )
* @param aSExpression is (utf8) text possibly from the clipboard that you want to parse.
* @param aSource is a description of the origin of @a aSExpression, such as a filename.
* If left empty, then _("
clipboard
") is used.
...
...
@@ -236,7 +237,7 @@ public:
}
/**
* Constructor
${
RESULT
}
_LEXER
* Constructor
( FILE* )
* takes @a aFile already opened for reading and @a aFilename as parameters.
* The opened file is assumed to be positioned at the beginning of the file
* for purposes of accurate line number reporting in error messages. The
...
...
@@ -250,6 +251,23 @@ public:
{
}
/**
* Constructor ( LINE_READER* )
* intializes a lexer and prepares to read from @a aLineReader which
* is assumed ready, and may be in use by other DSNLEXERs also. No ownership
* is taken of @a aLineReader. This enables it to be used by other lexers also.
* The transition between grammars in such a case, must happen on a text
* line boundary, not within the same line of text.
*
* @param aLineReader is any subclassed instance of LINE_READER, such as
* STRING_LINE_READER or FILE_LINE_READER. No ownership is taken of aLineReader.
*/
${
RESULT
}
_LEXER( LINE_READER* aLineReader ) :
DSNLEXER( DSN::
${
result
}
_keywords, DSN::
${
result
}
_keyword_count,
aLineReader )
{
}
/**
* Function NextTok
* returns the next token found in the input file or T_EOF when reaching
...
...
common/build_version.cpp
View file @
dc35a18c
...
...
@@ -6,7 +6,7 @@
#endif
#ifndef KICAD_BUILD_VERSION
#define KICAD_BUILD_VERSION "(2010-12-2
2 BZR 2676
)"
#define KICAD_BUILD_VERSION "(2010-12-2
3 BZR 2682
)"
#endif
//#define VERSION_STABILITY "stable"
...
...
common/common_plotDXF_functions.cpp
View file @
dc35a18c
...
...
@@ -170,29 +170,27 @@ void DXF_PLOTTER::pen_to( wxPoint pos, char plume )
void
DXF_PLOTTER
::
set_dash
(
bool
dashed
)
{
/* NOP for now */
wxASSERT
(
output_file
);
}
/**
* Function Plot a filled segment (track)
* @param start = starting point
* @param end = ending point
* Function thick_segment
* Plot a filled segment (track)
* @param aStart = starting point
* @param aEnd = ending point
* @param aWidth = segment width (thickness)
* @param aPlotMode = FILLED, SKETCH ..
*/
void
DXF_PLOTTER
::
thick_segment
(
wxPoint
start
,
wxPoint
end
,
int
w
idth
,
GRTraceMode
tracem
ode
)
void
DXF_PLOTTER
::
thick_segment
(
wxPoint
aStart
,
wxPoint
aEnd
,
int
aW
idth
,
GRTraceMode
aPlotM
ode
)
{
wxASSERT
(
output_file
);
if
(
tracemode
==
FILAIRE
)
/* just a line is Ok */
if
(
aPlotMode
==
FILAIRE
)
/* just a line is Ok */
{
move_to
(
s
tart
);
finish_to
(
e
nd
);
move_to
(
aS
tart
);
finish_to
(
aE
nd
);
}
else
segment_as_oval
(
start
,
end
,
width
,
tracem
ode
);
segment_as_oval
(
aStart
,
aEnd
,
aWidth
,
aPlotM
ode
);
}
...
...
common/drawtxt.cpp
View file @
dc35a18c
...
...
@@ -157,21 +157,21 @@ static void DrawGraphicTextPline(
wxDC
*
aDC
,
EDA_Colors
aColor
,
int
aWidth
,
bool
sketch_m
ode
,
bool
aSketchM
ode
,
int
point_count
,
wxPoint
*
coord
,
void
(
*
aCallback
)(
int
x0
,
int
y0
,
int
xf
,
int
yf
),
PLOTTER
*
p
lotter
)
PLOTTER
*
aP
lotter
)
{
if
(
p
lotter
)
if
(
aP
lotter
)
{
p
lotter
->
move_to
(
coord
[
0
]
);
aP
lotter
->
move_to
(
coord
[
0
]
);
for
(
int
ik
=
1
;
ik
<
point_count
;
ik
++
)
{
p
lotter
->
line_to
(
coord
[
ik
]
);
aP
lotter
->
line_to
(
coord
[
ik
]
);
}
p
lotter
->
pen_finish
();
aP
lotter
->
pen_finish
();
}
else
if
(
aCallback
)
{
...
...
@@ -181,7 +181,7 @@ static void DrawGraphicTextPline(
coord
[
ik
+
1
].
x
,
coord
[
ik
+
1
].
y
);
}
}
else
if
(
sketch_m
ode
)
else
if
(
aSketchM
ode
)
{
for
(
int
ik
=
0
;
ik
<
(
point_count
-
1
);
ik
++
)
GRCSegm
(
aClipBox
,
aDC
,
coord
[
ik
].
x
,
coord
[
ik
].
y
,
...
...
@@ -218,8 +218,11 @@ static int overbar_position( int size_v, int thickness )
* Use a value min(aSize.x, aSize.y) / 5 for a bold text
* @param aItalic = true to simulate an italic font
* @param aBold = true to use a bold font. Useful only with default width value (aWidth = 0)
* @param aCallback() = function called (if non null) to draw each segment.
* used to draw 3D texts or for plotting, NULL for normal drawings
* @param aPlotter = a pointer to a PLOTTER instance, when this function is used to plot
* the text. NULL to draw this text.
*/
/****************************************************************************************************/
void
DrawGraphicText
(
WinEDA_DrawPanel
*
aPanel
,
wxDC
*
aDC
,
const
wxPoint
&
aPos
,
...
...
@@ -233,8 +236,7 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel,
bool
aItalic
,
bool
aBold
,
void
(
*
aCallback
)(
int
x0
,
int
y0
,
int
xf
,
int
yf
),
PLOTTER
*
plotter
)
/****************************************************************************************************/
PLOTTER
*
aPlotter
)
{
int
AsciiCode
;
int
x0
,
y0
;
...
...
@@ -353,10 +355,10 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel,
RotatePoint
(
&
current_char_pos
,
aPos
,
aOrient
);
RotatePoint
(
&
end
,
aPos
,
aOrient
);
if
(
p
lotter
)
if
(
aP
lotter
)
{
p
lotter
->
move_to
(
current_char_pos
);
p
lotter
->
finish_to
(
end
);
aP
lotter
->
move_to
(
current_char_pos
);
aP
lotter
->
finish_to
(
end
);
}
else
if
(
aCallback
)
{
...
...
@@ -410,7 +412,7 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel,
coord
[
1
]
=
overbar_pos
;
/* Plot the overbar segment */
DrawGraphicTextPline
(
clipBox
,
aDC
,
aColor
,
aWidth
,
sketch_mode
,
2
,
coord
,
aCallback
,
p
lotter
);
sketch_mode
,
2
,
coord
,
aCallback
,
aP
lotter
);
}
continue
;
/* Skip ~ processing */
}
...
...
@@ -450,7 +452,7 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel,
aWidth
=
0
;
DrawGraphicTextPline
(
clipBox
,
aDC
,
aColor
,
aWidth
,
sketch_mode
,
point_count
,
coord
,
aCallback
,
p
lotter
);
aCallback
,
aP
lotter
);
}
point_count
=
0
;
}
...
...
@@ -492,7 +494,7 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel,
coord
[
1
]
=
overbar_pos
;
/* Plot the overbar segment */
DrawGraphicTextPline
(
clipBox
,
aDC
,
aColor
,
aWidth
,
sketch_mode
,
2
,
coord
,
aCallback
,
p
lotter
);
sketch_mode
,
2
,
coord
,
aCallback
,
aP
lotter
);
}
}
...
...
common/dsnlexer.cpp
View file @
dc35a18c
...
...
@@ -62,6 +62,7 @@ void DSNLEXER::init()
DSNLEXER
::
DSNLEXER
(
const
KEYWORD
*
aKeywordTable
,
unsigned
aKeywordCount
,
FILE
*
aFile
,
const
wxString
&
aFilename
)
:
iOwnReaders
(
true
),
keywords
(
aKeywordTable
),
keywordCount
(
aKeywordCount
)
{
...
...
@@ -73,6 +74,7 @@ DSNLEXER::DSNLEXER( const KEYWORD* aKeywordTable, unsigned aKeywordCount,
DSNLEXER
::
DSNLEXER
(
const
KEYWORD
*
aKeywordTable
,
unsigned
aKeywordCount
,
const
std
::
string
&
aClipboardTxt
,
const
wxString
&
aSource
)
:
iOwnReaders
(
true
),
keywords
(
aKeywordTable
),
keywordCount
(
aKeywordCount
)
{
...
...
@@ -83,6 +85,28 @@ DSNLEXER::DSNLEXER( const KEYWORD* aKeywordTable, unsigned aKeywordCount,
}
DSNLEXER
::
DSNLEXER
(
const
KEYWORD
*
aKeywordTable
,
unsigned
aKeywordCount
,
LINE_READER
*
aLineReader
)
:
iOwnReaders
(
false
),
keywords
(
aKeywordTable
),
keywordCount
(
aKeywordCount
)
{
PushReader
(
aLineReader
);
init
();
}
DSNLEXER
::~
DSNLEXER
()
{
if
(
iOwnReaders
)
{
// delete the LINE_READERs from the stack, since I own them.
for
(
READER_STACK
::
iterator
it
=
readerStack
.
begin
();
it
!=
readerStack
.
end
();
++
it
)
delete
*
it
;
}
}
void
DSNLEXER
::
PushReader
(
LINE_READER
*
aLineReader
)
{
readerStack
.
push_back
(
aLineReader
);
...
...
@@ -102,7 +126,7 @@ bool DSNLEXER::PopReader()
{
readerStack
.
pop_back
();
reader
=
&
readerStack
.
back
();
reader
=
readerStack
.
back
();
start
=
(
char
*
)
(
*
reader
);
// force a new readLine() as first thing.
...
...
common/richio.cpp
View file @
dc35a18c
...
...
@@ -278,30 +278,32 @@ int OUTPUTFORMATTER::Print( int nestLevel, const char* fmt, ... ) throw( IO_ERRO
}
const
char
*
OUTPUTFORMATTER
::
Quoted
(
std
::
string
*
aWrapee
)
throw
(
IO_ERROR
)
std
::
string
OUTPUTFORMATTER
::
Quoted
(
const
std
::
string
&
aWrapee
)
throw
(
IO_ERROR
)
{
// derived class's notion of what a quote character is
char
quote
=
*
GetQuoteChar
(
"("
);
// Will the string be wrapped based on its interior content?
const
char
*
squote
=
GetQuoteChar
(
aWrapee
->
c_str
()
);
const
char
*
squote
=
GetQuoteChar
(
aWrapee
.
c_str
()
);
std
::
string
wrapee
=
aWrapee
;
// return this
// Search the interior of the string for 'quote' chars
// and replace them as found with duplicated quotes.
// Note that necessarily any string which has internal quotes will
// also be wrapped in quotes later in this function.
for
(
unsigned
i
=
0
;
i
<
aWrapee
->
size
();
++
i
)
for
(
unsigned
i
=
0
;
i
<
wrapee
.
size
();
++
i
)
{
if
(
(
*
aWrapee
)
[
i
]
==
quote
)
if
(
wrapee
[
i
]
==
quote
)
{
aWrapee
->
insert
(
aWrapee
->
begin
()
+
i
,
quote
);
wrapee
.
insert
(
wrapee
.
begin
()
+
i
,
quote
);
++
i
;
}
else
if
(
(
*
aWrapee
)[
0
]
==
'\r'
||
(
*
aWrapee
)[
0
]
==
'\n'
)
else
if
(
wrapee
[
i
]
==
'\r'
||
wrapee
[
i
]
==
'\n'
)
{
// In a desire to maintain accurate line number reporting within DSNLEXER
// a decision was made to make all S-expression strings be on a single
// line. You can embed
d
\n (human readable) in the text but not
// line. You can embed \n (human readable) in the text but not
// '\n' which is 0x0a.
throw
IO_ERROR
(
_
(
"S-expression string has newline"
)
);
}
...
...
@@ -310,11 +312,11 @@ const char* OUTPUTFORMATTER::Quoted( std::string* aWrapee ) throw( IO_ERROR )
if
(
*
squote
)
{
// wrap the beginning and end of the string in a quote.
aWrapee
->
insert
(
aWrapee
->
begin
(),
quote
);
aWrapee
->
insert
(
aWrapee
->
end
(),
quote
);
wrapee
.
insert
(
wrapee
.
begin
(),
quote
);
wrapee
.
insert
(
wrapee
.
end
(),
quote
);
}
return
aWrapee
->
c_str
()
;
return
wrapee
;
}
...
...
common/xnode.cpp
View file @
dc35a18c
...
...
@@ -50,17 +50,14 @@ void XNODE::Format( OUTPUTFORMATTER* out, int nestLevel ) throw( IO_ERROR )
void
XNODE
::
FormatContents
(
OUTPUTFORMATTER
*
out
,
int
nestLevel
)
throw
(
IO_ERROR
)
{
std
::
string
utf8
;
// output attributes first if they exist
for
(
XATTR
*
attr
=
(
XATTR
*
)
GetAttributes
();
attr
;
attr
=
(
XATTR
*
)
attr
->
GetNext
()
)
{
utf8
=
CONV_TO_UTF8
(
attr
->
GetValue
()
);
// capture the content
out
->
Print
(
0
,
" (%s %s)"
,
// attr names should never need quoting, no spaces, we designed the file.
CONV_TO_UTF8
(
attr
->
GetName
()
),
out
->
Quoted
(
&
utf8
)
);
out
->
Quoted
(
CONV_TO_UTF8
(
attr
->
GetValue
()
)
).
c_str
()
);
}
// we only expect to have used one of two types here:
...
...
@@ -85,8 +82,9 @@ void XNODE::FormatContents( OUTPUTFORMATTER* out, int nestLevel ) throw( IO_ERRO
break
;
case
wxXML_TEXT_NODE
:
utf8
=
CONV_TO_UTF8
(
GetContent
()
);
out
->
Print
(
0
,
" %s"
,
out
->
Quoted
(
&
utf8
)
);
out
->
Print
(
0
,
" %s"
,
out
->
Quoted
(
CONV_TO_UTF8
(
GetContent
()
)
).
c_str
()
);
break
;
default
:
...
...
eeschema/block.cpp
View file @
dc35a18c
...
...
@@ -859,13 +859,14 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
}
/** GetNextPinPosition()
/**
* Function GetNextPinPosition()
* calculate position of the "next" pin of the aDrawLibItem component
* @param aComponent = component to test.
* @param aPosition = the
calculated pin position
, according to the component
* @param aPosition = the
actual next pin position in schematic
, according to the component
* orientation and position
* @param a
SearchFirst = if true, search for the first pin
* @return a pointer to the
pin
* @param a
Pin = search for the next pin after aPin. aPin = NULL to find the first pin in list
* @return a pointer to the
next pin found or NULL
*/
static
LIB_PIN
*
GetNextPinPosition
(
SCH_COMPONENT
*
aComponent
,
wxPoint
&
aPosition
,
...
...
eeschema/sch_items.h
View file @
dc35a18c
/**
* @file sch_item.h
* @file sch_item
s
.h
*
*/
...
...
include/base_struct.h
View file @
dc35a18c
...
...
@@ -662,10 +662,10 @@ public:
* @param aPanel = the current DrawPanel
* @param aDC = the current Device Context
* @param aOffset = draw offset (usually (0,0))
* @param
EDA_Colors
aColor = text color
* @param aColor = text color
* @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode.
* @param
GRTraceMode
aDisplay_mode = FILAIRE, FILLED or SKETCH
* @param
EDA_Colors
aAnchor_color = anchor color ( UNSPECIFIED_COLOR = do
* @param aDisplay_mode = FILAIRE, FILLED or SKETCH
* @param aAnchor_color = anchor color ( UNSPECIFIED_COLOR = do
* not draw anchor ).
*/
void
Draw
(
WinEDA_DrawPanel
*
aPanel
,
wxDC
*
aDC
,
...
...
@@ -682,13 +682,13 @@ private:
* @param aPanel = the current DrawPanel
* @param aDC = the current Device Context
* @param aOffset = draw offset (usually (0,0))
* @param
EDA_Colors
aColor = text color
* @param aColor = text color
* @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode.
* @param aFillMode = FILAIRE, FILLED or SKETCH
* @param
EDA_Colors
aAnchor_color = anchor color ( UNSPECIFIED_COLOR = do
* @param aAnchor_color = anchor color ( UNSPECIFIED_COLOR = do
* not draw anchor ).
* @param
EDA_Colors
aText = the single line of text to draw.
* @param
EDA_Colors
aPos = the position of this line ).
* @param aText = the single line of text to draw.
* @param aPos = the position of this line ).
*/
void
DrawOneLineOfText
(
WinEDA_DrawPanel
*
aPanel
,
wxDC
*
aDC
,
const
wxPoint
&
aOffset
,
EDA_Colors
aColor
,
...
...
include/class_base_screen.h
View file @
dc35a18c
...
...
@@ -270,7 +270,7 @@ public:
/**
* Function SetScalingFactor
* @param the the current scale used to draw items on screen
* @param
aScale =
the the current scale used to draw items on screen
* draw coordinates are user coordinates * GetScalingFactor( )
*/
void
SetScalingFactor
(
double
aScale
);
...
...
include/class_board_item.h
View file @
dc35a18c
...
...
@@ -200,7 +200,7 @@ public:
/**
* Function Rotate
* Rotate this object.
* @param
const wxPoint&
aRotCentre - the rotation point.
* @param aRotCentre - the rotation point.
* @param aAngle - the rotation angle in 0.1 degree.
*/
virtual
void
Rotate
(
const
wxPoint
&
aRotCentre
,
int
aAngle
)
...
...
@@ -211,7 +211,7 @@ public:
/**
* Function Flip
* Flip this object, i.e. change the board side for this object
* @param
const wxPoint&
aCentre - the rotation point.
* @param aCentre - the rotation point.
*/
virtual
void
Flip
(
const
wxPoint
&
aCentre
)
{
...
...
include/class_drawpanel.h
View file @
dc35a18c
...
...
@@ -115,10 +115,20 @@ public:
* Function DrawAuxiliaryAxis
* Draw the Auxiliary Axis, used in pcbnew which as origin coordinates
* for gerber and excellon files
* @param DC = current Device Context
* @param aDC = current Device Context
* @param aDrawMode = draw mode (GR_COPY, GR_OR ..)
*/
void
DrawAuxiliaryAxis
(
wxDC
*
DC
,
int
drawmode
);
void
DrawGridAxis
(
wxDC
*
DC
,
int
drawmode
);
void
DrawAuxiliaryAxis
(
wxDC
*
aDC
,
int
aDrawMode
);
/**
* Function DrawGridAxis
* Draw on auxiliary axis, used in pcbnew to show grid origin, when
* the grid origin is set by user, and is not (0,0)
* @param aDC = current Device Context
* @param aDrawMode = draw mode (GR_COPY, GR_OR ..)
*/
void
DrawGridAxis
(
wxDC
*
aDC
,
int
aDrawMode
);
void
OnEraseBackground
(
wxEraseEvent
&
event
);
void
OnActivate
(
wxActivateEvent
&
event
);
...
...
include/drawtxt.h
View file @
dc35a18c
...
...
@@ -65,6 +65,8 @@ int NegableTextLength( const wxString& aText );
* @param aBold = true to use a bold font
* @param aCallback() = function called (if non null) to draw each segment.
* used to draw 3D texts or for plotting, NULL for normal drawings
* @param aPlotter = a pointer to a PLOTTER instance, when this function is used to plot
* the text. NULL to draw this text.
*/
void
DrawGraphicText
(
WinEDA_DrawPanel
*
aPanel
,
wxDC
*
aDC
,
...
...
@@ -79,7 +81,7 @@ void DrawGraphicText( WinEDA_DrawPanel * aPanel,
bool
aItalic
,
bool
aBold
,
void
(
*
aCallback
)(
int
x0
,
int
y0
,
int
xf
,
int
yf
)
=
NULL
,
PLOTTER
*
p
lotter
=
NULL
);
PLOTTER
*
aP
lotter
=
NULL
);
#endif
/* __INCLUDE__DRAWTXT_H__ */
include/dsnlexer.h
View file @
dc35a18c
...
...
@@ -27,9 +27,7 @@
#include <cstdio>
#include <string>
#include <boost/ptr_container/ptr_vector.hpp>
//#include "fctsys.h"
#include <vector>
#include "richio.h"
...
...
@@ -78,14 +76,15 @@ enum DSN_SYNTAX_T {
*/
class
DSNLEXER
{
bool
iOwnReaders
;
///< on readerStack, should I delete them?
char
*
start
;
char
*
next
;
char
*
limit
;
typedef
boost
::
ptr_vector
<
LINE_READER
>
READER_STACK
;
typedef
std
::
vector
<
LINE_READER
*
>
READER_STACK
;
READER_STACK
readerStack
;
///<
owns
all the LINE_READERs by pointer.
LINE_READER
*
reader
;
///< no ownership. ownership is via readerStack
.
READER_STACK
readerStack
;
///< all the LINE_READERs by pointer.
LINE_READER
*
reader
;
///< no ownership. ownership is via readerStack
, maybe, if iOwnReaders
int
stringDelimiter
;
bool
space_in_quoted_tokens
;
///< blank spaces within quoted strings
bool
commentsAreTokens
;
///< true if should return comments as tokens
...
...
@@ -155,7 +154,7 @@ class DSNLEXER
public
:
/**
* Constructor
DSNLEXER
* Constructor
( FILE*, const wxString& )
* intializes a DSN lexer and prepares to read from aFile which
* is already open and has aFilename.
*
...
...
@@ -168,12 +167,35 @@ public:
DSNLEXER
(
const
KEYWORD
*
aKeywordTable
,
unsigned
aKeywordCount
,
FILE
*
aFile
,
const
wxString
&
aFileName
);
/**
* Constructor ( std::string&*, const wxString& )
* intializes a DSN lexer and prepares to read from @a aSExpression.
*
* @param aKeywordTable is an array of KEYWORDS holding \a aKeywordCount. This
* token table need not contain the lexer separators such as '(' ')', etc.
* @param aKeywordTable is the count of tokens in aKeywordTable.
* @param aSExpression is text to feed through a STRING_LINE_READER
* @param aSource is a description of aSExpression, used for error reporting.
*/
DSNLEXER
(
const
KEYWORD
*
aKeywordTable
,
unsigned
aKeywordCount
,
const
std
::
string
&
a
ClipboardTxt
,
const
wxString
&
aSource
=
wxEmptyString
);
const
std
::
string
&
a
SExpression
,
const
wxString
&
aSource
=
wxEmptyString
);
~
DSNLEXER
()
{
}
/**
* Constructor ( LINE_READER* )
* intializes a DSN lexer and prepares to read from @a aLineReader which
* is already open, and may be in use by other DSNLEXERs also. No ownership
* is taken of @a aLineReader. This enables it to be used by other DSNLEXERs also.
*
* @param aKeywordTable is an array of KEYWORDS holding \a aKeywordCount. This
* token table need not contain the lexer separators such as '(' ')', etc.
* @param aKeywordTable is the count of tokens in aKeywordTable.
* @param aLineReader is any subclassed instance of LINE_READER, such as
* STRING_LINE_READER or FILE_LINE_READER.
*/
DSNLEXER
(
const
KEYWORD
*
aKeywordTable
,
unsigned
aKeywordCount
,
LINE_READER
*
aLineReader
);
virtual
~
DSNLEXER
();
/**
* Function PushReader
...
...
include/gr_basic.h
View file @
dc35a18c
...
...
@@ -96,7 +96,6 @@ void GRBezier( EDA_Rect* ClipBox, wxDC* DC, int x1, int y1, int x2, int y2,
* @param aDC the device context into which drawing should occur.
* @param aPointCount the number of points in the array \a aPoints.
* @param aPoints The points to draw.
* @param aPointArray an array holding the wxPoints in the polygon.
* @param doFill true if polygon is to be filled, else false and only the boundary is drawn.
* @param aPenColor the color index of the border.
* @param aFillColor the fill color of the polygon's interior.
...
...
@@ -120,7 +119,6 @@ void GRClosedPoly( EDA_Rect* ClipBox,
* @param aDC the device context into which drawing should occur.
* @param aPointCount the number of points in the array \a aPointArray.
* @param aPoints the points to draw.
* @param aPointArray an array holding the wxPoints in the polygon.
* @param doFill true if polygon is to be filled, else false and only the boundary is drawn.
* @param aPenWidth is the width of the pen to use on the perimeter, can be zero.
* @param aPenColor the color index of the border.
...
...
@@ -144,7 +142,7 @@ void GRClosedPoly( EDA_Rect* ClipBox,
* @param ClipBox defines a rectangular boundary outside of which no drawing will occur.
* @param aDC the device context into which drawing should occur.
* @param x The x coordinate in user space of the center of the circle.
* @param
x
The y coordinate in user space of the center of the circle.
* @param
y
The y coordinate in user space of the center of the circle.
* @param aRadius is the radius of the circle.
* @param aColor is an index into our color table of RGB colors.
* @see EDA_Colors and colors.h
...
...
include/hotkeys_basic.h
View file @
dc35a18c
...
...
@@ -108,7 +108,7 @@ wxString AddHotkeyName( const wxString& aText, Ki_HotkeyInfo** aList,
* Function AddHotkeyName
* Add the key name from the Command id value ( m_Idcommand member value)
* @param aText = a wxString. returns aText + key name
* @param aList = pointer to a Ki_HotkeyInfoSectionDescriptor DescrList of commands
* @param a
Descr
List = pointer to a Ki_HotkeyInfoSectionDescriptor DescrList of commands
* @param aCommandId = Command Id value
* @param aIsShortCut = true to add <tab><keyname> (active shortcuts in menus)
* = false to add <spaces><(keyname)>
...
...
include/kicad_exceptions.h
View file @
dc35a18c
...
...
@@ -42,6 +42,10 @@ struct IO_ERROR
{
wxString
errorText
;
/**
* Constructor ( const wxChar* )
* handles the case where _() is passed as aMsg.
*/
IO_ERROR
(
const
wxChar
*
aMsg
)
:
errorText
(
aMsg
)
{
...
...
include/richio.h
View file @
dc35a18c
...
...
@@ -336,15 +336,14 @@ public:
*
* @param aWrapee is a string that might need wraping in double quotes,
* and it might need to have its internal quotes doubled up, or not.
* Caller's copy may be modified, or not.
*
* @return
const char* - useful for passing to printf() style functions that
*
must output utf8
streams.
* @return
std::string - whose c_str() function can be called for passing
*
to printf() style functions that must output utf8 encoded s-expression
streams.
* @throw IO_ERROR, if aWrapee has any \r or \n bytes in it which is
* illegal according to the DSNLEXER who does not ever want them
* within a string.
*/
virtual
const
char
*
Quoted
(
std
::
string
*
aWrapee
)
throw
(
IO_ERROR
);
virtual
std
::
string
Quoted
(
const
std
::
string
&
aWrapee
)
throw
(
IO_ERROR
);
//-----</interface functions>-----------------------------------------
};
...
...
include/wxBasePcbFrame.h
View file @
dc35a18c
...
...
@@ -234,10 +234,11 @@ public:
* Second = VALUE: "VAL**"
* the new module is added to the board module list
* @param aModuleName = name of the new footprint
*
(will
the component reference in board)
*
(will be
the component reference in board)
* @return a pointer to the new module
*/
MODULE
*
Create_1_Module
(
const
wxString
&
module_name
);
MODULE
*
Create_1_Module
(
const
wxString
&
aModuleName
);
void
Edit_Module
(
MODULE
*
module
,
wxDC
*
DC
);
void
Rotate_Module
(
wxDC
*
DC
,
MODULE
*
module
,
...
...
@@ -285,11 +286,11 @@ public:
*
* Read active libraries or one library to find and load a given module
* If found the module is linked to the tail of linked list of modules
* @param aLibraryFullFile
N
ame - the full filename of the library to read. If empty,
* @param aLibraryFullFile
n
ame - the full filename of the library to read. If empty,
* all active libraries are read
* @param aModuleName = module name to load
* @param aDisplayMessageError = true to display an error message if any.
* @return a
MODULE *
pointer to the new module, or NULL
* @return a pointer to the new module, or NULL
*
*/
MODULE
*
Get_Librairie_Module
(
const
wxString
&
aLibraryFullFilename
,
...
...
@@ -299,6 +300,7 @@ public:
/**
* Function Select_1_Module_From_List
* Display a list of modules found in active libraries or a given library
* @param active_window = the current window ( parent window )
* @param aLibraryFullFilename = library to list (if aLibraryFullFilename
* == void, list all modules)
* @param aMask = Display filter (wildcart)( Mask = wxEmptyString if not
...
...
include/wxEeschemaStruct.h
View file @
dc35a18c
...
...
@@ -540,10 +540,10 @@ public:
* sub-hierarchy will be deleted. If it is only a copy, the GetDrawItems() and the
* sub-hierarchy must NOT be deleted.
*
* @
N
ote
* @
n
ote
* Edit wires and buses is a bit complex.
* because when a new wire is added,
modifications in wire list
* (wire concatenation)
there are
modified items, deleted items and new items
* because when a new wire is added,
a lot of modifications in wire list is made
* (wire concatenation)
:
modified items, deleted items and new items
* so flag_type_command is UR_WIRE_IMAGE: the struct ItemToCopy is a list of
* wires saved in Undo List (for Undo or Redo commands, saved wires will be
* exchanged with current wire list
...
...
include/wxstruct.h
View file @
dc35a18c
...
...
@@ -157,7 +157,7 @@ public:
* @param aFilename = file name to read.
* @param aDescList = current hotkey list descr. to initialise.
*/
int
ReadHotkeyConfigFile
(
const
wxString
&
Filename
,
int
ReadHotkeyConfigFile
(
const
wxString
&
a
Filename
,
struct
Ki_HotkeyInfoSectionDescriptor
*
aDescList
);
/**
...
...
include/xnode.h
View file @
dc35a18c
...
...
@@ -26,6 +26,12 @@
*/
#include "richio.h"
// quiet the deprecated warnings with 3 lines:
#include <wx/defs.h>
#undef wxDEPRECATED
#define wxDEPRECATED(x) x
#include <wx/xml/xml.h>
...
...
new/sch_lib_table.cpp
View file @
dc35a18c
...
...
@@ -25,6 +25,7 @@
#include <sch_lib_table.h>
#include <sch_lib_table_lexer.h>
#include <set>
using
namespace
std
;
using
namespace
SCH
;
...
...
@@ -156,21 +157,59 @@ void LIB_TABLE::Format( OUTPUTFORMATTER* out, int nestLevel ) const
out
->
Print
(
nestLevel
,
")
\n
"
);
}
void
LIB_TABLE
::
ROW
::
Format
(
OUTPUTFORMATTER
*
out
,
int
nestLevel
)
const
throw
(
IO_ERROR
)
{
out
->
Print
(
nestLevel
,
"(lib (logical
\"
%s
\"
)(type
\"
%s
\"
)(full_uri
\"
%s
\"
)(options
\"
%s
\"
))
\n
"
,
logicalName
.
c_str
(),
libType
.
c_str
(),
fullURI
.
c_str
(),
options
.
c_str
()
);
out
->
Print
(
nestLevel
,
"(lib (logical %s)(type %s)(full_uri %s)(options %s))
\n
"
,
out
->
Quoted
(
logicalName
).
c_str
(),
out
->
Quoted
(
libType
).
c_str
(),
out
->
Quoted
(
fullURI
).
c_str
(),
out
->
Quoted
(
options
).
c_str
()
);
}
STRINGS
LIB_TABLE
::
GetLogicalLibs
()
{
// only return unique logical library names. Use std::set::insert() to
// quietly reject any duplicates, which can happen in the fall back table(s).
set
<
STRING
>
unique
;
STRINGS
ret
;
const
LIB_TABLE
*
cur
=
this
;
do
{
for
(
ROWS_CITER
it
=
cur
->
rows
.
begin
();
it
!=
cur
->
rows
.
end
();
++
it
)
{
unique
.
insert
(
it
->
second
->
logicalName
);
}
}
while
(
(
cur
=
cur
->
fallBack
)
!=
0
);
// return a sorted, unique set of STRINGS to caller
for
(
set
<
STRING
>::
const_iterator
it
=
unique
.
begin
();
it
!=
unique
.
end
();
++
it
)
ret
.
push_back
(
*
it
);
return
ret
;
}
PART
*
LIB_TABLE
::
GetPart
(
const
LPID
&
aLogicalPartID
)
throw
(
IO_ERROR
)
{
// need LIPD done.
return
0
;
}
const
LIB_TABLE
::
ROW
*
LIB_TABLE
::
FindRow
(
const
STRING
&
aLogicalName
)
const
LIB_TABLE
::
ROW
*
LIB_TABLE
::
FindRow
(
const
STRING
&
aLogicalName
)
const
{
// this function must be *super* fast, so therefore should not instantiate
// anything which would require using the heap. This function is the reason
// ptr_map<> was used instead of ptr_set<>, which would have required
// instantiating a ROW just to find a ROW.
LIB_TABLE
*
cur
=
this
;
const
LIB_TABLE
*
cur
=
this
;
do
{
...
...
@@ -203,7 +242,8 @@ bool LIB_TABLE::InsertRow( auto_ptr<ROW>& aRow, bool doReplace )
rows
.
insert
(
key
,
aRow
);
return
true
;
}
else
if
(
doReplace
)
if
(
doReplace
)
{
rows
.
erase
(
aRow
->
logicalName
);
...
...
@@ -229,9 +269,10 @@ void LIB_TABLE::Test()
// To pass an empty string, we can pass " " to (options " ")
SCH_LIB_TABLE_LEXER
slr
(
"(lib_table
\n
"
" (lib (logical www) (type http) (full_uri http://kicad.org/libs) (options
\"
\"
))
\n
"
" (lib (logical meparts) (type dir) (full_uri /tmp/eeschema-lib) (options
\"
\"
))
\n
"
" (lib (logical old-project) (type schematic)(full_uri /tmp/old-schematic.sch) (options
\"
\"
))
\n
"
" (lib (logical www) (type http) (full_uri http://kicad.org/libs) (options
\"
\"
))
\n
"
,
,
wxT
(
"inline text"
)
// source
);
...
...
@@ -258,6 +299,7 @@ void LIB_TABLE::Test()
STRING_FORMATTER
sf
;
// format this whole table into sf, it will be sorted by logicalName.
Format
(
&
sf
,
0
);
printf
(
"test 'Parse() <-> Format()' round tripping:
\n
"
);
...
...
@@ -275,6 +317,14 @@ void LIB_TABLE::Test()
}
else
printf
(
"not found
\n
"
);
printf
(
"
\n
list of logical libraries:
\n
"
);
STRINGS
logNames
=
GetLogicalLibs
();
for
(
STRINGS
::
const_iterator
it
=
logNames
.
begin
();
it
!=
logNames
.
end
();
++
it
)
{
printf
(
"logicalName: %s
\n
"
,
it
->
c_str
()
);
}
}
...
...
new/sch_lib_table.h
View file @
dc35a18c
...
...
@@ -58,13 +58,6 @@ public:
public
:
/* was needed for ptr_set<> but not ptr_map<>
bool operator<( const ROW& other ) const
{
return logicalName < other.logicalName;
}
*/
/**
* Function GetLogicalName
* returns the logical name of this library table entry.
...
...
@@ -223,46 +216,54 @@ public:
*/
PART
*
GetPart
(
const
LPID
&
aLogicalPartID
)
throw
(
IO_ERROR
);
#if 0 // moved here from LPID
/**
* Function GetLogicalLib
rarie
s
* returns the logical library names, all of them that are in
the
*
library table
.
* Function GetLogicalLibs
* returns the logical library names, all of them that are in
pertinent to
*
a lookup done on this LIB_TABLE
.
*/
STRINGS GetLogicalLibraries();
STRINGS
GetLogicalLibs
();
//----<read accessors>----------------------------------------------------
// the returning of a const STRING* tells if not found, but might be too
// promiscuous?
/**
* Function GetLib
rary
URI
* Function GetLibURI
* returns the full library path from a logical library name.
* @param aLogicalLibraryName is the short name for the library of interest.
* @param aSchematic provides access to the full library table inclusive
* of the schematic contribution, or may be NULL to exclude the schematic rows.
* @return const STRING* - or NULL if not found.
*/
STRING GetLibraryURI( const STRING& aLogicalLibraryName,
SCHEMATIC* aSchematic=NULL ) const;
const
STRING
*
GetLibURI
(
const
STRING
&
aLogicalLibraryName
)
const
{
const
ROW
*
row
=
FindRow
(
aLogicalLibraryName
);
return
row
?
&
row
->
fullURI
:
0
;
}
/**
* Function GetLib
rary
Type
* Function GetLibType
* returns the type of a logical library.
* @param aLogicalLibraryName is the short name for the library of interest.
* @param aSchematic provides access to the full library table inclusive
* of the schematic contribution, or may be NULL to exclude the schematic rows.
* @return const STRING* - or NULL if not found.
*/
STRING GetLibraryType( const STRING& aLogicalLibraryName,
SCHEMATIC* aSchematic=NULL ) const;
const
STRING
*
GetLibType
(
const
STRING
&
aLogicalLibraryName
)
const
{
const
ROW
*
row
=
FindRow
(
aLogicalLibraryName
);
return
row
?
&
row
->
libType
:
0
;
}
/**
* Function GetOptions
* Function Get
Lib
Options
* returns the options string for \a aLogicalLibraryName.
* @param aLogicalLibraryName is the short name for the library of interest.
* @param aSchematic provides access to the full library table inclusive
* of the schematic contribution, or may be NULL to exclude the schematic rows.
* @return const STRING* - or NULL if not found.
*/
STRING GetOptions( const STRING& aLogicalLibraryName,
SCHEMATIC* aSchematic=NULL ) const;
#endif
const
STRING
*
GetLibOptions
(
const
STRING
&
aLogicalLibraryName
)
const
{
const
ROW
*
row
=
FindRow
(
aLogicalLibraryName
);
return
row
?
&
row
->
options
:
0
;
}
//----</read accessors>---------------------------------------------------
#if defined(DEBUG)
/// implement the tests in here so we can honor the priviledge levels of the
...
...
@@ -276,9 +277,10 @@ protected: // only a table editor can use these
* Function InsertRow
* adds aRow if it does not already exist or if doReplace is true. If doReplace
* is not true and the key for aRow already exists, the function fails and returns false.
* The key for the table is the logicalName, and all in this table must be unique.
* @param aRow is the new row to insert, or to forcibly add if doReplace is true.
* @param doReplace if true, means insert regardless
if aRow's key already exists. If false, then fail
* if the key already exists.
* @param doReplace if true, means insert regardless
of whether aRow's key already
*
exists. If false, then fail
if the key already exists.
* @return bool - true if the operation succeeded.
*/
bool
InsertRow
(
std
::
auto_ptr
<
ROW
>&
aRow
,
bool
doReplace
=
false
);
...
...
@@ -287,7 +289,7 @@ protected: // only a table editor can use these
* Function FindRow
* returns a ROW* if aLogicalName is found in this table or in fallBack, else NULL.
*/
const
ROW
*
FindRow
(
const
STRING
&
aLogicalName
);
const
ROW
*
FindRow
(
const
STRING
&
aLogicalName
)
const
;
private
:
...
...
pcbnew/board_undo_redo.cpp
View file @
dc35a18c
...
...
@@ -71,7 +71,7 @@ BOARD_ITEM* DuplicateStruct( BOARD_ITEM* aItem );
* - if a call to SaveCopyInUndoList was forgotten in pcbnew
* - in zones outlines, when a change in one zone merges this zone with an other
* This function avoids a pcbnew crash
* @param a
Board
= board to test
* @param a
Pcb
= board to test
* @param aItem = item to find
*/
static
bool
TestForExistingItem
(
BOARD
*
aPcb
,
BOARD_ITEM
*
aItem
)
...
...
pcbnew/class_text_mod.cpp
View file @
dc35a18c
...
...
@@ -277,7 +277,7 @@ EDA_Rect TEXTE_MODULE::GetTextRect( void ) const
* Function HitTest
* tests if the given wxPoint is within the bounds of this object.
* @param refPos A wxPoint to test
* @return
bool -
true if a hit, else false
* @return true if a hit, else false
*/
bool
TEXTE_MODULE
::
HitTest
(
const
wxPoint
&
refPos
)
{
...
...
@@ -419,6 +419,8 @@ void TEXTE_MODULE::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode,
size
,
m_HJustify
,
m_VJustify
,
width
,
m_Italic
,
m_Bold
);
}
/* Rraws a line from the TEXTE_MODULE origin to parent MODULE origin.
*/
void
TEXTE_MODULE
::
DrawUmbilical
(
WinEDA_DrawPanel
*
aPanel
,
wxDC
*
aDC
,
int
aDrawMode
,
...
...
@@ -430,9 +432,7 @@ void TEXTE_MODULE::DrawUmbilical( WinEDA_DrawPanel* aPanel,
GRSetDrawMode
(
aDC
,
GR_XOR
);
GRLine
(
&
aPanel
->
m_ClipBox
,
aDC
,
parent
->
GetPosition
().
x
,
parent
->
GetPosition
().
y
,
GetPosition
().
x
+
aOffset
.
x
,
GetPosition
().
y
+
aOffset
.
y
,
parent
->
GetPosition
(),
GetPosition
()
+
aOffset
,
0
,
UMBILICAL_COLOR
);
}
...
...
pcbnew/class_text_mod.h
View file @
dc35a18c
...
...
@@ -154,7 +154,7 @@ public: TEXTE_MODULE( MODULE* parent, int text_type = TEXT_is_DIVERS );
/**
* Function GetClass
* returns the class name.
* @return wxString
* @return wxString
= "MTEXT"
*/
virtual
wxString
GetClass
()
const
{
...
...
pcbnew/gen_drill_report_files.cpp
View file @
dc35a18c
...
...
@@ -242,11 +242,12 @@ void GenDrillMapFile( BOARD* aPcb, FILE* aFile, const wxString& aFullFileName,
/** Creates the drill map aFile in HPGL or POSTSCRIPT format
* @param aPcb BOARD
* @param aPcb = the BOARD
* @param aPlotter = a PLOTTER instance (HPGL or POSTSCRIPT plotter).
* @param aHoleListBuffer = std::vector<HOLE_INFO> list of holes descriptors
* @param aToolListBuffer = std::vector<DRILL_TOOL> drill list buffer
*/
void
Gen_Drill_PcbMap
(
BOARD
*
aPcb
,
PLOTTER
*
p
lotter
,
void
Gen_Drill_PcbMap
(
BOARD
*
aPcb
,
PLOTTER
*
aP
lotter
,
std
::
vector
<
HOLE_INFO
>&
aHoleListBuffer
,
std
::
vector
<
DRILL_TOOL
>&
aToolListBuffer
)
{
...
...
@@ -269,14 +270,14 @@ void Gen_Drill_PcbMap( BOARD* aPcb, PLOTTER* plotter,
/* Always plot the drill symbol (for slots identifies the needed
* cutter!) */
p
lotter
->
marker
(
pos
,
aHoleListBuffer
[
ii
].
m_Hole_Diameter
,
aP
lotter
->
marker
(
pos
,
aHoleListBuffer
[
ii
].
m_Hole_Diameter
,
aHoleListBuffer
[
ii
].
m_Tool_Reference
-
1
);
if
(
aHoleListBuffer
[
ii
].
m_Hole_Shape
!=
0
)
{
wxSize
oblong_size
;
oblong_size
.
x
=
aHoleListBuffer
[
ii
].
m_Hole_SizeX
;
oblong_size
.
y
=
aHoleListBuffer
[
ii
].
m_Hole_SizeY
;
p
lotter
->
flash_pad_oval
(
pos
,
oblong_size
,
aP
lotter
->
flash_pad_oval
(
pos
,
oblong_size
,
aHoleListBuffer
[
ii
].
m_Hole_Orient
,
FILAIRE
);
}
}
...
...
pcbnew/gen_holes_and_tools_lists_for_drill.cpp
View file @
dc35a18c
...
...
@@ -35,7 +35,7 @@ static bool CmpHoleDiameterValue( const HOLE_INFO& a, const HOLE_INFO& b )
* Create the list of holes and tools for a given board
* The list is sorted by increasing drill values
* Only holes from aFirstLayer to aLastLayer copper layers are listed (for vias, because pad holes are always through holes)
* @param Pcb : the given board
* @param
a
Pcb : the given board
* @param aHoleListBuffer : the std::vector<HOLE_INFO> to fill with pcb holes info
* @param aToolListBuffer : the std::vector<DRILL_TOOL> to fill with tools to use
* @param aFirstLayer = first layer to consider. if < 0 aFirstLayer is ignored (used to creates report file)
...
...
pcbnew/gendrill.h
View file @
dc35a18c
...
...
@@ -137,7 +137,7 @@ public: EXCELLON_WRITER( BOARD* aPcb, FILE* aFile,
/**
* SetFormat
*
Function
SetFormat
* Initialize internal parameters to match the given format
* @param aMetric = true for metric coordinates, false for imperial units
* @param aZerosFmt = DECIMAL_FORMAT, SUPPRESS_LEADING, SUPPRESS_TRAILING, KEEP_ZEROS
...
...
@@ -147,12 +147,11 @@ public: EXCELLON_WRITER( BOARD* aPcb, FILE* aFile,
void
SetFormat
(
bool
aMetric
,
zeros_fmt
aZerosFmt
,
int
aLeftDigits
,
int
aRightDigits
);
/**
* SetOptions
*
Function
SetOptions
* Initialize internal parameters to match drill options
* @param aMetric = true for metric coordinates, false for imperial units
* @param aZerosFmt = DECIMAL_FORMAT, SUPPRESS_LEADING, SUPPRESS_TRAILING, KEEP_ZEROS
* @param aLeftDigits = number of digits for integer part of coordinates
* @param aRightDigits = number of digits for mantissa part of coordinates
* @param aMirror = true to create mirrored coordinates (Y coordinates negated)
* @param aMinimalHeader = true to use a minimal header (no comments, no info)
* @param aOffset = drill coordinates offset
*/
void
SetOptions
(
bool
aMirror
,
bool
aMinimalHeader
,
wxPoint
aOffset
)
{
...
...
@@ -163,7 +162,7 @@ public: EXCELLON_WRITER( BOARD* aPcb, FILE* aFile,
/**
* CreateDrillFile
*
Function
CreateDrillFile
* Creates an Excellon drill file
* @return hole count
*/
...
...
@@ -180,14 +179,14 @@ private:
* Create the list of holes and tools for a given board
* The list is sorted by increasing drill values
* Only holes from aFirstLayer to aLastLayer copper layers are listed (for vias, because pad holes are always through holes)
* @param Pcb : the given board
* @param
a
Pcb : the given board
* @param aHoleListBuffer : the std::vector<HOLE_INFO> to fill with pcb holes info
* @param aToolListBuffer : the std::vector<DRILL_TOOL> to fill with tools to use
* @param aFirstLayer = first layer to consider. if < 0 aFirstLayer is ignored
* @param aLastLayer = last layer to consider. if < 0 aLastLayer is ignored
* @param aExcludeThroughHoles : if true, exclude through holes ( pads and vias through )
*/
void
Build_Holes_List
(
BOARD
*
Pcb
,
std
::
vector
<
HOLE_INFO
>&
aHoleListBuffer
,
void
Build_Holes_List
(
BOARD
*
a
Pcb
,
std
::
vector
<
HOLE_INFO
>&
aHoleListBuffer
,
std
::
vector
<
DRILL_TOOL
>&
aToolListBuffer
,
int
aFirstLayer
,
int
aLastLayer
,
bool
aExcludeThroughHoles
);
...
...
pcbnew/gpcb_exchange.cpp
View file @
dc35a18c
...
...
@@ -509,9 +509,9 @@ bool TestFlags( const wxString& flg_string, long flg_mask, const wxChar* flg_nam
* Test flag flg_mask or flg_name.
* @param flg_string = flsg list to test: can be a bit field flag or a list name flsg
* a bit field flag is an hexadecimal value: Ox00020000
* a list name fl
s
g is a string list of flags, comma separated like square,option1
* @param flg_mask = fl
s
g list to test
* @param flg_
mask = flsg list to te
st
* a list name fl
a
g is a string list of flags, comma separated like square,option1
* @param flg_mask = fl
a
g list to test
* @param flg_
name = flag name to find in li
st
* @return true if found
*/
{
...
...
pcbnew/muonde.cpp
View file @
dc35a18c
...
...
@@ -342,10 +342,11 @@ static void gen_arc( std::vector <wxPoint>& aBuffer,
/**
* Function BuildCornersList_S_Shape
* Create a path like a S-shaped coil
* @param aBuffer = a vector <wxPoint>& buffer where to put points
* @param aBuffer = a buffer where to store points (ends of segments)
* @param aStartPoint = starting point of the path
* @param aEndPoint = ending point of the path
* @param aLength = full lenght of the path
* @param aWidth =
witdth of lines
* @param aWidth =
segment width
*/
int
BuildCornersList_S_Shape
(
std
::
vector
<
wxPoint
>&
aBuffer
,
wxPoint
aStartPoint
,
wxPoint
aEndPoint
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment