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
b0e2908c
Commit
b0e2908c
authored
Oct 19, 2013
by
jean-pierre charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pl_editor: add a PPI (pixel per inch) setup option for bitmaps.
parent
6bb62a71
Changes
9
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
317 additions
and
47 deletions
+317
-47
class_bitmap_base.cpp
common/class_bitmap_base.cpp
+5
-3
class_worksheet_dataitem.cpp
common/page_layout/class_worksheet_dataitem.cpp
+34
-0
class_bitmap_base.h
include/class_bitmap_base.h
+2
-1
class_worksheet_dataitem.h
include/class_worksheet_dataitem.h
+12
-11
properties_frame_base.cpp
pagelayout_editor/dialogs/properties_frame_base.cpp
+20
-9
properties_frame_base.fbp
pagelayout_editor/dialogs/properties_frame_base.fbp
+188
-3
properties_frame_base.h
pagelayout_editor/dialogs/properties_frame_base.h
+4
-0
properties_frame.cpp
pagelayout_editor/properties_frame.cpp
+50
-18
pcbnew_config.cpp
pcbnew/pcbnew_config.cpp
+2
-2
No files found.
common/class_bitmap_base.cpp
View file @
b0e2908c
...
...
@@ -49,8 +49,9 @@ BITMAP_BASE::BITMAP_BASE( const wxPoint& pos )
m_Scale
=
1.0
;
// 1.0 = original bitmap size
m_bitmap
=
NULL
;
m_image
=
NULL
;
m_pixelScaleFactor
=
3.33
;
// a value OK for bitmaps using 300 PPI
// (Eeschema uses currently 1000PPI
m_ppi
=
300
;
// the bitmap definition. the default is 300PPI
m_pixelScaleFactor
=
1000.0
/
m_ppi
;
// a value OK for bitmaps using 300 PPI
// for Eeschema which uses currently 1000PPI
}
...
...
@@ -72,6 +73,7 @@ void BITMAP_BASE::ImportData( BITMAP_BASE* aItem )
*
m_image
=
*
aItem
->
m_image
;
*
m_bitmap
=
*
aItem
->
m_bitmap
;
m_Scale
=
aItem
->
m_Scale
;
m_ppi
=
aItem
->
m_ppi
;
m_pixelScaleFactor
=
aItem
->
m_pixelScaleFactor
;
}
...
...
common/page_layout/class_worksheet_dataitem.cpp
View file @
b0e2908c
...
...
@@ -540,4 +540,38 @@ void WORKSHEET_DATAITEM_TEXT::SetConstrainedTextSize()
}
}
/* set the pixel scale factor of the bitmap
* this factor depend on the application internal unit
* and the PPI bitmap factor
* the pixel scale factor should be initialized before drawing the bitmap
*/
void
WORKSHEET_DATAITEM_BITMAP
::
SetPixelScaleFactor
()
{
if
(
m_ImageBitmap
)
{
// m_WSunits2Iu is the page layout unit to application internal unit
// i.e. the mm to to application internal unit
// however the bitmap definition is always known in pixels per inches
double
scale
=
m_WSunits2Iu
*
25.4
/
m_ImageBitmap
->
GetPPI
();
m_ImageBitmap
->
SetPixelScaleFactor
(
scale
);
}
}
/* return the PPI of the bitmap
*/
int
WORKSHEET_DATAITEM_BITMAP
::
GetPPI
()
const
{
if
(
m_ImageBitmap
)
return
m_ImageBitmap
->
GetPPI
()
/
m_ImageBitmap
->
m_Scale
;
return
300
;
}
/*adjust the PPI of the bitmap
*/
void
WORKSHEET_DATAITEM_BITMAP
::
SetPPI
(
int
aBitmapPPI
)
{
if
(
m_ImageBitmap
)
m_ImageBitmap
->
m_Scale
=
(
double
)
m_ImageBitmap
->
GetPPI
()
/
aBitmapPPI
;
}
include/class_bitmap_base.h
View file @
b0e2908c
...
...
@@ -54,6 +54,7 @@ private:
// to convert the bitmap size (in pixels)
// to internal KiCad units
// Usually does not change
int
m_ppi
;
// the bitmap definition. the default is 300PPI
public
:
BITMAP_BASE
(
const
wxPoint
&
pos
=
wxPoint
(
0
,
0
)
);
...
...
@@ -128,7 +129,7 @@ public: BITMAP_BASE( const wxPoint& pos = wxPoint( 0, 0 ) );
*/
int
GetPPI
()
const
{
return
300
;
return
m_ppi
;
}
/**
...
...
include/class_worksheet_dataitem.h
View file @
b0e2908c
...
...
@@ -485,6 +485,17 @@ public:
*/
virtual
bool
HasEndPoint
()
{
return
false
;
}
/**
* @return the PPI of the bitmap
*/
int
GetPPI
()
const
;
/**
* adjust the PPI of the bitmap
* @param aBitmapPPI = the ned PPI for the bitmap
*/
void
SetPPI
(
int
aBitmapPPI
);
/**
* set the pixel scale factor of the bitmap
* this factor depend on the application internal unit
...
...
@@ -492,17 +503,7 @@ public:
* the pixel scale factor is the pixel size to application internal unit
* and should be initialized before printing or drawing the bitmap
*/
void
SetPixelScaleFactor
()
{
if
(
m_ImageBitmap
)
{
// m_WSunits2Iu is the page layout unit to application internal unit
// i.e. the mm to to application internal unit
// however the bitmap definition is always known in pixels per inches
double
scale
=
m_WSunits2Iu
*
25
.
4
/
m_ImageBitmap
->
GetPPI
();
m_ImageBitmap
->
SetPixelScaleFactor
(
scale
);
}
}
void
SetPixelScaleFactor
();
};
...
...
pagelayout_editor/dialogs/properties_frame_base.cpp
View file @
b0e2908c
...
...
@@ -317,28 +317,27 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
bSizerMain
->
Add
(
m_SizerEndPosition
,
0
,
0
,
5
);
wxBoxSizer
*
bSizerLineThickness
;
bSizerLineThickness
=
new
wxBoxSizer
(
wxHORIZONTAL
);
m_SizerLineThickness
=
new
wxBoxSizer
(
wxHORIZONTAL
);
wxBoxSizer
*
bSizer
t
hickness
;
bSizer
t
hickness
=
new
wxBoxSizer
(
wxVERTICAL
);
wxBoxSizer
*
bSizer
T
hickness
;
bSizer
T
hickness
=
new
wxBoxSizer
(
wxVERTICAL
);
m_staticTextThickness
=
new
wxStaticText
(
m_swItemProperties
,
wxID_ANY
,
_
(
"Thickness"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticTextThickness
->
Wrap
(
-
1
);
bSizer
t
hickness
->
Add
(
m_staticTextThickness
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxRIGHT
|
wxLEFT
,
5
);
bSizer
T
hickness
->
Add
(
m_staticTextThickness
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxRIGHT
|
wxLEFT
,
5
);
m_textCtrlThickness
=
new
wxTextCtrl
(
m_swItemProperties
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
bSizer
t
hickness
->
Add
(
m_textCtrlThickness
,
0
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
bSizer
T
hickness
->
Add
(
m_textCtrlThickness
,
0
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
bSizerLineThickness
->
Add
(
bSizert
hickness
,
0
,
wxEXPAND
,
5
);
m_SizerLineThickness
->
Add
(
bSizerT
hickness
,
0
,
wxEXPAND
,
5
);
m_staticTextInfoThickness
=
new
wxStaticText
(
m_swItemProperties
,
wxID_ANY
,
_
(
"Set to 0 to use default"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticTextInfoThickness
->
Wrap
(
-
1
);
b
SizerLineThickness
->
Add
(
m_staticTextInfoThickness
,
0
,
wxRIGHT
|
wxLEFT
|
wxALIGN_CENTER_VERTICAL
,
5
);
m_
SizerLineThickness
->
Add
(
m_staticTextInfoThickness
,
0
,
wxRIGHT
|
wxLEFT
|
wxALIGN_CENTER_VERTICAL
,
5
);
bSizerMain
->
Add
(
b
SizerLineThickness
,
0
,
0
,
5
);
bSizerMain
->
Add
(
m_
SizerLineThickness
,
0
,
0
,
5
);
m_SizerRotation
=
new
wxBoxSizer
(
wxVERTICAL
);
...
...
@@ -361,6 +360,18 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
bSizerMain
->
Add
(
m_SizerRotation
,
0
,
wxEXPAND
,
5
);
m_SizerBitmapPPI
=
new
wxBoxSizer
(
wxHORIZONTAL
);
m_staticTextBitmapPPI
=
new
wxStaticText
(
m_swItemProperties
,
wxID_ANY
,
_
(
"Bitmap PPI"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticTextBitmapPPI
->
Wrap
(
-
1
);
m_SizerBitmapPPI
->
Add
(
m_staticTextBitmapPPI
,
0
,
wxRIGHT
|
wxLEFT
|
wxALIGN_CENTER_VERTICAL
,
5
);
m_textCtrlBitmapPPI
=
new
wxTextCtrl
(
m_swItemProperties
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_SizerBitmapPPI
->
Add
(
m_textCtrlBitmapPPI
,
0
,
wxRIGHT
|
wxLEFT
|
wxALIGN_CENTER_VERTICAL
,
5
);
bSizerMain
->
Add
(
m_SizerBitmapPPI
,
0
,
wxEXPAND
,
5
);
m_staticline4
=
new
wxStaticLine
(
m_swItemProperties
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
wxLI_HORIZONTAL
);
bSizerMain
->
Add
(
m_staticline4
,
0
,
wxEXPAND
|
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
...
...
pagelayout_editor/dialogs/properties_frame_base.fbp
View file @
b0e2908c
This diff is collapsed.
Click to expand it.
pagelayout_editor/dialogs/properties_frame_base.h
View file @
b0e2908c
...
...
@@ -85,6 +85,7 @@ class PANEL_PROPERTIES_BASE : public wxPanel
wxTextCtrl
*
m_textCtrlEndY
;
wxStaticText
*
m_staticTextOrgEnd
;
wxComboBox
*
m_comboBoxCornerEnd
;
wxBoxSizer
*
m_SizerLineThickness
;
wxStaticText
*
m_staticTextThickness
;
wxTextCtrl
*
m_textCtrlThickness
;
wxStaticText
*
m_staticTextInfoThickness
;
...
...
@@ -92,6 +93,9 @@ class PANEL_PROPERTIES_BASE : public wxPanel
wxStaticLine
*
m_staticline1
;
wxStaticText
*
m_staticTextRot
;
wxTextCtrl
*
m_textCtrlRotation
;
wxBoxSizer
*
m_SizerBitmapPPI
;
wxStaticText
*
m_staticTextBitmapPPI
;
wxTextCtrl
*
m_textCtrlBitmapPPI
;
wxStaticLine
*
m_staticline4
;
wxStaticText
*
m_staticTextRepeatPrms
;
wxStaticText
*
m_staticTextRepeatCnt
;
...
...
pagelayout_editor/properties_frame.cpp
View file @
b0e2908c
...
...
@@ -153,6 +153,7 @@ void PROPERTIES_FRAME::CopyPrmsFromItemToPanel( WORKSHEET_DATAITEM* aItem )
m_textCtrlPosX
->
SetValue
(
msg
);
msg
.
Printf
(
wxT
(
"%.3f"
),
aItem
->
m_Pos
.
m_Pos
.
y
);
m_textCtrlPosY
->
SetValue
(
msg
);
switch
(
aItem
->
m_Pos
.
m_Anchor
)
{
case
RB_CORNER
:
// right bottom corner
...
...
@@ -170,6 +171,7 @@ void PROPERTIES_FRAME::CopyPrmsFromItemToPanel( WORKSHEET_DATAITEM* aItem )
m_textCtrlEndX
->
SetValue
(
msg
);
msg
.
Printf
(
wxT
(
"%.3f"
),
aItem
->
m_End
.
m_Pos
.
y
);
m_textCtrlEndY
->
SetValue
(
msg
);
switch
(
aItem
->
m_End
.
m_Anchor
)
{
case
RB_CORNER
:
// right bottom corner
...
...
@@ -242,33 +244,53 @@ void PROPERTIES_FRAME::CopyPrmsFromItemToPanel( WORKSHEET_DATAITEM* aItem )
if
(
aItem
->
GetType
()
==
WORKSHEET_DATAITEM
::
WS_POLYPOLYGON
)
{
m_staticTextInfoThickness
->
Show
(
false
);
WORKSHEET_DATAITEM_POLYPOLYGON
*
item
=
(
WORKSHEET_DATAITEM_POLYPOLYGON
*
)
aItem
;
// Rotation (poly and text)
msg
.
Printf
(
wxT
(
"%.3f"
),
item
->
m_Orient
);
m_textCtrlRotation
->
SetValue
(
msg
);
}
else
if
(
aItem
->
GetType
()
==
WORKSHEET_DATAITEM
::
WS_BITMAP
)
{
m_staticTextInfoThickness
->
Show
(
false
);
}
else
if
(
aItem
->
GetType
()
==
WORKSHEET_DATAITEM
::
WS_BITMAP
)
{
m_staticTextInfoThickness
->
Show
(
true
);
WORKSHEET_DATAITEM_BITMAP
*
item
=
(
WORKSHEET_DATAITEM_BITMAP
*
)
aItem
;
// select definition in PPI
msg
.
Printf
(
wxT
(
"%d"
),
item
->
GetPPI
()
);
m_textCtrlBitmapPPI
->
SetValue
(
msg
);
}
if
(
aItem
->
GetType
()
==
WORKSHEET_DATAITEM
::
WS_SEGMENT
||
aItem
->
GetType
()
==
WORKSHEET_DATAITEM
::
WS_RECT
||
aItem
->
GetType
()
==
WORKSHEET_DATAITEM
::
WS_BITMAP
)
switch
(
aItem
->
GetType
()
)
{
case
WORKSHEET_DATAITEM
:
:
WS_SEGMENT
:
case
WORKSHEET_DATAITEM
:
:
WS_RECT
:
m_SizerBitmapPPI
->
Show
(
false
);
m_SizerLineThickness
->
Show
(
true
);
m_staticTextInfoThickness
->
Show
(
true
);
m_SizerRotation
->
Show
(
false
);
m_SizerEndPosition
->
Show
(
true
);
}
else
{
break
;
case
WORKSHEET_DATAITEM
:
:
WS_TEXT
:
m_SizerBitmapPPI
->
Show
(
false
);
m_SizerLineThickness
->
Show
(
true
);
m_staticTextInfoThickness
->
Show
(
true
);
m_SizerRotation
->
Show
(
true
);
m_SizerEndPosition
->
Show
(
false
);
break
;
case
WORKSHEET_DATAITEM
:
:
WS_POLYPOLYGON
:
m_SizerBitmapPPI
->
Show
(
false
);
m_SizerLineThickness
->
Show
(
true
);
m_staticTextInfoThickness
->
Show
(
false
);
// No defaut value for thickness
m_SizerRotation
->
Show
(
true
);
m_SizerEndPosition
->
Show
(
false
);
break
;
case
WORKSHEET_DATAITEM
:
:
WS_BITMAP
:
m_SizerBitmapPPI
->
Show
(
true
);
m_SizerLineThickness
->
Show
(
false
);
m_SizerRotation
->
Show
(
false
);
m_SizerEndPosition
->
Show
(
false
);
break
;
}
// Repeat parameters
...
...
@@ -456,6 +478,16 @@ bool PROPERTIES_FRAME::CopyPrmsFromPanelToItem( WORKSHEET_DATAITEM* aItem )
item
->
m_Orient
=
dtmp
;
}
if
(
aItem
->
GetType
()
==
WORKSHEET_DATAITEM
::
WS_BITMAP
)
{
WORKSHEET_DATAITEM_BITMAP
*
item
=
(
WORKSHEET_DATAITEM_BITMAP
*
)
aItem
;
// Set definition in PPI
long
value
;
msg
=
m_textCtrlBitmapPPI
->
GetValue
();
if
(
msg
.
ToLong
(
&
value
)
)
item
->
SetPPI
(
(
int
)
value
);
}
return
true
;
}
pcbnew/pcbnew_config.cpp
View file @
b0e2908c
...
...
@@ -101,7 +101,7 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
wxString
msg
;
msg
.
Printf
(
_
(
"Error occurred saving the global footprint library "
"table:
\n\n
%s"
),
ioe
.
errorText
.
GetData
()
);
wxMessageBox
(
msg
,
_
(
"File S
e
ave Error"
),
wxOK
|
wxICON_ERROR
);
wxMessageBox
(
msg
,
_
(
"File Save Error"
),
wxOK
|
wxICON_ERROR
);
}
}
...
...
@@ -120,7 +120,7 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
wxString
msg
;
msg
.
Printf
(
_
(
"Error occurred saving project specific footprint library "
"table:
\n\n
%s"
),
ioe
.
errorText
.
GetData
()
);
wxMessageBox
(
msg
,
_
(
"File S
e
ave Error"
),
wxOK
|
wxICON_ERROR
);
wxMessageBox
(
msg
,
_
(
"File Save Error"
),
wxOK
|
wxICON_ERROR
);
}
}
}
...
...
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