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
c5f41a3a
Commit
c5f41a3a
authored
Mar 28, 2010
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
eeschema: fixed minor issues.
parent
1fdd229e
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
113 additions
and
46 deletions
+113
-46
class_libentry.cpp
eeschema/class_libentry.cpp
+44
-3
classes_body_items.cpp
eeschema/classes_body_items.cpp
+10
-5
dialog_SVG_print.cpp
eeschema/dialog_SVG_print.cpp
+32
-19
libedit_plot_component.cpp
eeschema/libedit_plot_component.cpp
+18
-7
libeditframe.h
eeschema/libeditframe.h
+7
-0
symbdraw.cpp
eeschema/symbdraw.cpp
+2
-12
No files found.
eeschema/class_libentry.cpp
View file @
c5f41a3a
...
...
@@ -242,6 +242,49 @@ void LIB_COMPONENT::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDc,
GRSetDrawMode
(
aDc
,
aDrawMode
);
/* draw background for filled items using background option
* Solid lines will be drawn after the background
* Note also, background is not drawn when:
* printing in black and white
* If the color is not the default color (aColor != -1 )
*/
if
(
!
(
screen
->
m_IsPrinting
&&
GetGRForceBlackPenState
())
&&
(
aColor
==
-
1
)
)
{
BOOST_FOREACH
(
LIB_DRAW_ITEM
&
drawItem
,
drawings
)
{
if
(
drawItem
.
m_Fill
!=
FILLED_WITH_BG_BODYCOLOR
)
continue
;
if
(
aOnlySelected
&&
drawItem
.
m_Selected
==
0
)
continue
;
// Do not draw an item while moving (the cursor handler does that)
if
(
drawItem
.
m_Flags
&
IS_MOVED
)
continue
;
/* Do not draw items not attached to the current part */
if
(
aMulti
&&
drawItem
.
m_Unit
&&
(
drawItem
.
m_Unit
!=
aMulti
)
)
continue
;
if
(
aConvert
&&
drawItem
.
m_Convert
&&
(
drawItem
.
m_Convert
!=
aConvert
)
)
continue
;
if
(
drawItem
.
Type
()
==
COMPONENT_FIELD_DRAW_TYPE
)
continue
;
if
(
drawItem
.
Type
()
==
COMPONENT_FIELD_DRAW_TYPE
)
{
drawItem
.
Draw
(
aPanel
,
aDc
,
aOffset
,
aColor
,
aDrawMode
,
(
void
*
)
NULL
,
aTransformMatrix
);
}
// Now, draw only the background for items with
// m_Fill == FILLED_WITH_BG_BODYCOLOR:
drawItem
.
Draw
(
aPanel
,
aDc
,
aOffset
,
aColor
,
aDrawMode
,
(
void
*
)
false
,
aTransformMatrix
);
}
}
BOOST_FOREACH
(
LIB_DRAW_ITEM
&
drawItem
,
drawings
)
{
if
(
aOnlySelected
&&
drawItem
.
m_Selected
==
0
)
...
...
@@ -273,9 +316,7 @@ void LIB_COMPONENT::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDc,
}
else
{
bool
forceNoFill
=
(
screen
->
m_IsPrinting
&&
drawItem
.
m_Fill
==
FILLED_WITH_BG_BODYCOLOR
&&
GetGRForceBlackPenState
()
);
bool
forceNoFill
=
drawItem
.
m_Fill
==
FILLED_WITH_BG_BODYCOLOR
;
drawItem
.
Draw
(
aPanel
,
aDc
,
aOffset
,
aColor
,
aDrawMode
,
(
void
*
)
forceNoFill
,
aTransformMatrix
);
}
...
...
eeschema/classes_body_items.cpp
View file @
c5f41a3a
...
...
@@ -433,7 +433,8 @@ void LIB_ARC::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
if
(
fill
==
FILLED_WITH_BG_BODYCOLOR
)
GRFilledArc
(
&
aPanel
->
m_ClipBox
,
aDC
,
posc
.
x
,
posc
.
y
,
pt1
,
pt2
,
m_Radius
,
GetPenSize
(
),
color
,
m_Radius
,
GetPenSize
(
),
(
m_Flags
&
IS_MOVED
)
?
color
:
ReturnLayerColor
(
LAYER_DEVICE_BACKGROUND
),
ReturnLayerColor
(
LAYER_DEVICE_BACKGROUND
)
);
else
if
(
fill
==
FILLED_SHAPE
&&
!
aData
)
GRFilledArc
(
&
aPanel
->
m_ClipBox
,
aDC
,
posc
.
x
,
posc
.
y
,
pt1
,
pt2
,
...
...
@@ -751,7 +752,8 @@ void LIB_CIRCLE::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
if
(
fill
==
FILLED_WITH_BG_BODYCOLOR
)
GRFilledCircle
(
&
aPanel
->
m_ClipBox
,
aDC
,
pos1
.
x
,
pos1
.
y
,
m_Radius
,
GetPenSize
(
),
color
,
m_Radius
,
GetPenSize
(
),
(
m_Flags
&
IS_MOVED
)
?
color
:
ReturnLayerColor
(
LAYER_DEVICE_BACKGROUND
),
ReturnLayerColor
(
LAYER_DEVICE_BACKGROUND
)
);
else
if
(
fill
==
FILLED_SHAPE
)
GRFilledCircle
(
&
aPanel
->
m_ClipBox
,
aDC
,
pos1
.
x
,
pos1
.
y
,
...
...
@@ -991,7 +993,8 @@ void LIB_RECTANGLE::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
if
(
fill
==
FILLED_WITH_BG_BODYCOLOR
&&
!
aData
)
GRFilledRect
(
&
aPanel
->
m_ClipBox
,
aDC
,
pos1
.
x
,
pos1
.
y
,
pos2
.
x
,
pos2
.
y
,
GetPenSize
(
),
color
,
GetPenSize
(
),
(
m_Flags
&
IS_MOVED
)
?
color
:
ReturnLayerColor
(
LAYER_DEVICE_BACKGROUND
),
ReturnLayerColor
(
LAYER_DEVICE_BACKGROUND
)
);
else
if
(
m_Fill
==
FILLED_SHAPE
&&
!
aData
)
GRFilledRect
(
&
aPanel
->
m_ClipBox
,
aDC
,
pos1
.
x
,
pos1
.
y
,
pos2
.
x
,
pos2
.
y
,
...
...
@@ -1591,7 +1594,8 @@ void LIB_POLYLINE::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
if
(
fill
==
FILLED_WITH_BG_BODYCOLOR
)
GRPoly
(
&
aPanel
->
m_ClipBox
,
aDC
,
m_PolyPoints
.
size
(),
Buf_Poly_Drawings
,
1
,
GetPenSize
(
),
color
,
Buf_Poly_Drawings
,
1
,
GetPenSize
(
),
(
m_Flags
&
IS_MOVED
)
?
color
:
ReturnLayerColor
(
LAYER_DEVICE_BACKGROUND
),
ReturnLayerColor
(
LAYER_DEVICE_BACKGROUND
)
);
else
if
(
fill
==
FILLED_SHAPE
)
GRPoly
(
&
aPanel
->
m_ClipBox
,
aDC
,
m_PolyPoints
.
size
(),
...
...
@@ -1959,7 +1963,8 @@ void LIB_BEZIER::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
if
(
fill
==
FILLED_WITH_BG_BODYCOLOR
)
GRPoly
(
&
aPanel
->
m_ClipBox
,
aDC
,
m_PolyPoints
.
size
(),
&
PolyPointsTraslated
[
0
],
1
,
GetPenSize
(),
color
,
&
PolyPointsTraslated
[
0
],
1
,
GetPenSize
(),
(
m_Flags
&
IS_MOVED
)
?
color
:
ReturnLayerColor
(
LAYER_DEVICE_BACKGROUND
),
ReturnLayerColor
(
LAYER_DEVICE_BACKGROUND
)
);
else
if
(
fill
==
FILLED_SHAPE
)
GRPoly
(
&
aPanel
->
m_ClipBox
,
aDC
,
m_PolyPoints
.
size
(),
...
...
eeschema/dialog_SVG_print.cpp
View file @
c5f41a3a
...
...
@@ -14,11 +14,11 @@
#include "gestfich.h"
#include "dialog_SVG_print_base.h"
#include "dcsvg.h"
#include "program.h"
#include "general.h"
#include "libeditframe.h"
// Keys for configuration
#define PLOTSVGMODECOLOR_KEY wxT( "PlotSVGModeColor" )
...
...
@@ -35,7 +35,6 @@ class DIALOG_SVG_PRINT : public DIALOG_SVG_PRINT_base
{
private
:
WinEDA_DrawFrame
*
m_Parent
;
int
m_ImageXSize_mm
;
wxConfig
*
m_Config
;
public
:
...
...
@@ -51,8 +50,11 @@ private:
void
OnSetColorModeSelected
(
wxCommandEvent
&
event
);
void
SetPenWidth
();
void
PrintSVGDoc
(
bool
aPrintAll
,
bool
aPrint_Sheet_Ref
);
bool
DrawPage
(
const
wxString
&
FullFileName
,
BASE_SCREEN
*
screen
,
bool
aPrint_Sheet_Ref
);
public
:
static
bool
DrawSVGPage
(
WinEDA_DrawFrame
*
frame
,
const
wxString
&
FullFileName
,
BASE_SCREEN
*
screen
,
bool
aPrintBlackAndWhite
=
false
,
bool
aPrint_Sheet_Ref
=
false
);
};
...
...
@@ -66,6 +68,15 @@ void WinEDA_DrawFrame::SVG_Print( wxCommandEvent& event )
frame
.
ShowModal
();
}
/* Creates the SVG print file for the current edited component.
*/
void
WinEDA_LibeditFrame
::
SVG_Print_Component
(
const
wxString
&
FullFileName
)
{
DIALOG_SVG_PRINT
::
DrawSVGPage
(
this
,
FullFileName
,
GetScreen
()
);
}
/*!
* DIALOG_SVG_PRINT functions
...
...
@@ -82,7 +93,6 @@ void DIALOG_SVG_PRINT::OnInitDialog( wxInitDialogEvent& event )
{
SetFocus
();
// Make ESC key working
m_ImageXSize_mm
=
270
;
if
(
m_Config
)
{
m_Config
->
Read
(
PLOTSVGMODECOLOR_KEY
,
&
s_PlotBlackAndWhite
);
...
...
@@ -130,6 +140,9 @@ void DIALOG_SVG_PRINT::PrintSVGDoc( bool aPrintAll, bool aPrint_Sheet_Ref )
SetPenWidth
();
g_DrawDefaultLineThickness
=
ReturnValueFromTextCtrl
(
*
m_DialogPenWidth
,
m_Parent
->
m_InternalUnits
);
BASE_SCREEN
*
screen
=
m_Parent
->
GetBaseScreen
();
BASE_SCREEN
*
oldscreen
=
screen
;
...
...
@@ -162,7 +175,8 @@ void DIALOG_SVG_PRINT::PrintSVGDoc( bool aPrintAll, bool aPrint_Sheet_Ref )
fn
=
schframe
->
GetUniqueFilenameForCurrentSheet
(
)
+
wxT
(
".svg"
);
bool
success
=
DrawPage
(
fn
.
GetFullPath
(),
schscreen
,
bool
success
=
DrawSVGPage
(
m_Parent
,
fn
.
GetFullPath
(),
schscreen
,
m_ModeColorOption
->
GetSelection
()
==
0
?
false
:
true
,
aPrint_Sheet_Ref
);
msg
=
_
(
"Create file "
)
+
fn
.
GetFullPath
();
if
(
!
success
)
...
...
@@ -182,8 +196,11 @@ void DIALOG_SVG_PRINT::PrintSVGDoc( bool aPrintAll, bool aPrint_Sheet_Ref )
fn
=
screen
->
m_FileName
;
fn
.
SetExt
(
wxT
(
"svg"
)
);
fn
.
MakeAbsolute
(
);
bool
success
=
DrawPage
(
fn
.
GetFullPath
(),
screen
,
aPrint_Sheet_Ref
);
bool
success
=
DrawSVGPage
(
m_Parent
,
fn
.
GetFullPath
(),
screen
,
m_ModeColorOption
->
GetSelection
()
==
0
?
false
:
true
,
aPrint_Sheet_Ref
);
msg
=
_
(
"Create file "
)
+
fn
.
GetFullPath
();
if
(
!
success
)
...
...
@@ -196,16 +213,16 @@ void DIALOG_SVG_PRINT::PrintSVGDoc( bool aPrintAll, bool aPrint_Sheet_Ref )
ActiveScreen
=
oldscreen
;
}
bool
DIALOG_SVG_PRINT
::
DrawPage
(
const
wxString
&
FullFileName
,
bool
DIALOG_SVG_PRINT
::
DrawSVGPage
(
WinEDA_DrawFrame
*
frame
,
const
wxString
&
FullFileName
,
BASE_SCREEN
*
screen
,
bool
aPrintBlackAndWhite
,
bool
aPrint_Sheet_Ref
)
{
int
tmpzoom
;
wxPoint
tmp_startvisu
;
wxSize
SheetSize
;
// Sheet size in internal units
wxPoint
old_org
;
double
dpi
;
bool
success
=
true
;
tmp_startvisu
=
screen
->
m_StartVisu
;
...
...
@@ -216,17 +233,13 @@ bool DIALOG_SVG_PRINT::DrawPage( const wxString& FullFileName,
SheetSize
=
screen
->
ReturnPageSize
(
);
screen
->
SetScalingFactor
(
1.0
);
dpi
=
(
double
)
SheetSize
.
x
*
25.4
/
m_ImageXSize_mm
;
WinEDA_DrawPanel
*
panel
=
frame
->
DrawPanel
;
WinEDA_DrawPanel
*
panel
=
m_Parent
->
DrawPanel
;
wxSVGFileDC
dc
(
FullFileName
,
SheetSize
.
x
,
SheetSize
.
y
,
dpi
);
wxSVGFileDC
dc
(
FullFileName
,
SheetSize
.
x
,
SheetSize
.
y
);
EDA_Rect
tmp
=
panel
->
m_ClipBox
;
GRResetPenAndBrush
(
&
dc
);
g_DrawDefaultLineThickness
=
ReturnValueFromTextCtrl
(
*
m_DialogPenWidth
,
m_Parent
->
m_InternalUnits
);
GRForceBlackPen
(
m_ModeColorOption
->
GetSelection
()
==
0
?
false
:
true
);
GRForceBlackPen
(
aPrintBlackAndWhite
);
panel
->
m_ClipBox
.
SetX
(
-
0x3FFFFF0
);
...
...
@@ -237,13 +250,13 @@ bool DIALOG_SVG_PRINT::DrawPage( const wxString& FullFileName,
screen
->
m_IsPrinting
=
true
;
SetLocaleTo_C_standard
(
);
// Switch the locale to standard C (needed
// to print floating point numbers like 1.3)
m_Parent
->
PrintPage
(
&
dc
,
aPrint_Sheet_Ref
,
1
,
false
);
frame
->
PrintPage
(
&
dc
,
aPrint_Sheet_Ref
,
1
,
false
);
SetLocaleTo_Default
(
);
// revert to the current locale
screen
->
m_IsPrinting
=
false
;
panel
->
m_ClipBox
=
tmp
;
GRForceBlackPen
(
FALSE
);
GRForceBlackPen
(
false
);
screen
->
m_StartVisu
=
tmp_startvisu
;
screen
->
m_DrawOrg
=
old_org
;
...
...
eeschema/libedit_plot_component.cpp
View file @
c5f41a3a
...
...
@@ -25,6 +25,9 @@
void
WinEDA_LibeditFrame
::
OnPlotCurrentComponent
(
wxCommandEvent
&
event
)
{
LIB_COMPONENT
*
cmp
=
GetComponent
();
wxString
FullFileName
;
wxString
file_ext
;
wxString
mask
;
if
(
cmp
==
NULL
)
{
...
...
@@ -38,13 +41,12 @@ void WinEDA_LibeditFrame::OnPlotCurrentComponent( wxCommandEvent& event )
{
bool
fmt_is_jpeg
=
false
;
// could be selectable later. so keep this option.
wxString
file_ext
=
fmt_is_jpeg
?
wxT
(
"jpg"
)
:
wxT
(
"png"
);
wxString
mask
=
wxT
(
"*."
)
+
file_ext
;
file_ext
=
fmt_is_jpeg
?
wxT
(
"jpg"
)
:
wxT
(
"png"
);
mask
=
wxT
(
"*."
)
+
file_ext
;
wxFileName
fn
(
cmp
->
GetName
()
);
fn
.
SetExt
(
file_ext
);
wxString
FullFileName
=
EDA_FileSelector
(
_
(
"Filename:"
),
wxGetCwd
(),
FullFileName
=
EDA_FileSelector
(
_
(
"Filename:"
),
wxGetCwd
(),
fn
.
GetFullName
(),
file_ext
,
mask
,
this
,
wxFD_SAVE
,
TRUE
);
...
...
@@ -57,7 +59,17 @@ void WinEDA_LibeditFrame::OnPlotCurrentComponent( wxCommandEvent& event )
case
ID_LIBEDIT_GEN_SVG_FILE
:
{
GetScreen
()
->
m_FileName
=
cmp
->
GetName
();
file_ext
=
wxT
(
"svg"
);
mask
=
wxT
(
"*."
)
+
file_ext
;
wxFileName
fn
(
cmp
->
GetName
()
);
fn
.
SetExt
(
file_ext
);
FullFileName
=
EDA_FileSelector
(
_
(
"Filename:"
),
wxGetCwd
(),
fn
.
GetFullName
(),
file_ext
,
mask
,
this
,
wxFD_SAVE
,
TRUE
);
if
(
FullFileName
.
IsEmpty
()
)
return
;
/* Give a size to the SVG draw area = component size + margin
* the margin is 10% the size of the component size
*/
...
...
@@ -67,9 +79,8 @@ void WinEDA_LibeditFrame::OnPlotCurrentComponent( wxCommandEvent& event )
// Add a small margin to the plot bounding box
componentSize
.
x
=
(
int
)(
componentSize
.
x
*
1.2
);
componentSize
.
y
=
(
int
)(
componentSize
.
y
*
1.2
);
GetScreen
()
->
SetPageSize
(
componentSize
);
WinEDA_DrawFrame
::
SVG_Print
(
event
);
SVG_Print_Component
(
FullFileName
);
GetScreen
()
->
SetPageSize
(
pagesize
);
}
break
;
...
...
eeschema/libeditframe.h
View file @
c5f41a3a
...
...
@@ -296,6 +296,13 @@ protected:
int
aPrintMask
,
bool
aPrintMirrorMode
,
void
*
aData
=
NULL
);
/** function SVG_Print_component
* Creates the SVG print file for the current edited component.
* @param aFullFileName = the full filename of the file
*/
void
SVG_Print_Component
(
const
wxString
&
aFullFileName
);
DECLARE_EVENT_TABLE
()
};
...
...
eeschema/symbdraw.cpp
View file @
c5f41a3a
...
...
@@ -147,15 +147,6 @@ static void AbortSymbolTraceOn( WinEDA_DrawPanel* Panel, wxDC* DC )
if
(
item
->
m_Flags
&
IS_NEW
)
{
if
(
DC
)
{
if
(
item
->
Type
()
==
COMPONENT_ARC_DRAW_TYPE
)
Panel
->
GetParent
()
->
DrawPanel
->
Refresh
();
else
item
->
Draw
(
Panel
,
DC
,
wxPoint
(
0
,
0
),
-
1
,
g_XorMode
,
NULL
,
DefaultTransformMatrix
);
}
SAFE_DELETE
(
item
);
parent
->
SetDrawItem
(
NULL
);
}
...
...
@@ -207,11 +198,10 @@ static void AbortSymbolTraceOn( WinEDA_DrawPanel* Panel, wxDC* DC )
RedrawWhileMovingCursor
(
Panel
,
DC
,
TRUE
);
Panel
->
GetScreen
()
->
m_Curseur
=
curpos
;
}
item
->
Draw
(
Panel
,
DC
,
wxPoint
(
0
,
0
),
-
1
,
GR_DEFAULT_DRAWMODE
,
NULL
,
DefaultTransformMatrix
);
item
->
m_Flags
=
0
;
}
Panel
->
Refresh
(
);
}
...
...
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