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
15479871
Commit
15479871
authored
Apr 18, 2008
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
some enhancements.
parent
5cd2fad8
Changes
19
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
507 additions
and
512 deletions
+507
-512
GUI_Translation_HOWTO.odt
GUI_Translation_HOWTO.odt
+0
-0
GUI_Translation_HOWTO.pdf
GUI_Translation_HOWTO.pdf
+0
-0
edaappl.cpp
common/edaappl.cpp
+170
-232
wxPcbStruct.h
include/wxPcbStruct.h
+4
-4
class_pad.cpp
pcbnew/class_pad.cpp
+20
-0
class_pad.h
pcbnew/class_pad.h
+7
-0
classpcb.cpp
pcbnew/classpcb.cpp
+1
-1
edit.cpp
pcbnew/edit.cpp
+2
-2
editpads.cpp
pcbnew/editpads.cpp
+8
-4
files.cpp
pcbnew/files.cpp
+16
-16
globaleditpad.cpp
pcbnew/globaleditpad.cpp
+22
-24
initpcb.cpp
pcbnew/initpcb.cpp
+2
-0
ioascii.cpp
pcbnew/ioascii.cpp
+2
-26
modedit.cpp
pcbnew/modedit.cpp
+2
-2
modedit_onclick.cpp
pcbnew/modedit_onclick.cpp
+1
-1
move-drag_pads.cpp
pcbnew/move-drag_pads.cpp
+31
-26
onrightclick.cpp
pcbnew/onrightclick.cpp
+130
-123
pcbplot.cpp
pcbnew/pcbplot.cpp
+1
-1
wxprint.cpp
share/wxprint.cpp
+88
-50
No files found.
GUI_Translation_HOWTO.odt
0 → 100644
View file @
15479871
File added
GUI_Translation_HOWTO.pdf
0 → 100644
View file @
15479871
File added
common/edaappl.cpp
View file @
15479871
...
@@ -54,6 +54,112 @@
...
@@ -54,6 +54,112 @@
#define FONT_DEFAULT_SIZE 10
/* Default font size.
#define FONT_DEFAULT_SIZE 10
/* Default font size.
* The real font size will be computed at run time */
* The real font size will be computed at run time */
/* A small class to handle the list od existing translations.
* the locale translation is automatic.
* the selection of languages is mainly for mainteners's convenience (tests...)
* To add a support to a new tranlation:
* create a new icon (flag of the country) (see Lang_Fr.xpm as an exemple)
* add a new item to s_Language_List[LANGUAGE_DESCR_COUNT]
* and set LANGUAGE_DESCR_COUNT to the new value
*/
struct
LANGUAGE_DESCR
{
int
m_WX_Lang_Identifier
;
// wxWidget locale identifier (see wxWidget doc)
int
m_KI_Lang_Identifier
;
// kicad identifier used in menu selection (see id.h)
const
char
**
m_Lang_Icon
;
// the icon used in menus
const
wxChar
*
m_Lang_Label
;
// Label used in menus
bool
m_DoNotTranslate
;
// set to true if the m_Lang_Label must not be translated
};
#define LANGUAGE_DESCR_COUNT 14
static
struct
LANGUAGE_DESCR
s_Language_List
[
LANGUAGE_DESCR_COUNT
]
=
{
{
wxLANGUAGE_DEFAULT
,
ID_LANGUAGE_DEFAULT
,
lang_def_xpm
,
_
(
"Default"
)
},
{
wxLANGUAGE_ENGLISH
,
ID_LANGUAGE_ENGLISH
,
lang_en_xpm
,
wxT
(
"English"
),
true
},
{
wxLANGUAGE_FRENCH
,
ID_LANGUAGE_FRENCH
,
lang_fr_xpm
,
_
(
"French"
)
},
{
wxLANGUAGE_SPANISH
,
ID_LANGUAGE_SPANISH
,
lang_es_xpm
,
_
(
"Spanish"
)
},
{
wxLANGUAGE_PORTUGUESE
,
ID_LANGUAGE_PORTUGUESE
,
lang_pt_xpm
,
_
(
"Portuguese"
)
},
{
wxLANGUAGE_ITALIAN
,
ID_LANGUAGE_ITALIAN
,
lang_it_xpm
,
_
(
"Italian"
)
},
{
wxLANGUAGE_GERMAN
,
ID_LANGUAGE_GERMAN
,
lang_de_xpm
,
_
(
"German"
)
},
{
wxLANGUAGE_SLOVENIAN
,
ID_LANGUAGE_SLOVENIAN
,
lang_sl_xpm
,
_
(
"Slovenian"
)
},
{
wxLANGUAGE_HUNGARIAN
,
ID_LANGUAGE_HUNGARIAN
,
lang_hu_xpm
,
_
(
"Hungarian"
)
},
{
wxLANGUAGE_POLISH
,
ID_LANGUAGE_POLISH
,
lang_po_xpm
,
_
(
"Polish"
)
},
{
wxLANGUAGE_RUSSIAN
,
ID_LANGUAGE_RUSSIAN
,
lang_ru_xpm
,
_
(
"Russian"
)
},
{
wxLANGUAGE_KOREAN
,
ID_LANGUAGE_KOREAN
,
lang_ko_xpm
,
_
(
"Korean"
)
},
{
wxLANGUAGE_CHINESE_SIMPLIFIED
,
ID_LANGUAGE_CHINESE_SIMPLIFIED
,
lang_chinese_xpm
,
_
(
"Chinese simplified"
)
},
{
wxLANGUAGE_CATALAN
,
ID_LANGUAGE_CATALAN
,
lang_catalan_xpm
,
_
(
"Catalan"
)
}
};
/**************************/
/**************************/
/* WinEDA_App Constructor */
/* WinEDA_App Constructor */
...
@@ -202,26 +308,30 @@ void WinEDA_App::InitOnLineHelp()
...
@@ -202,26 +308,30 @@ void WinEDA_App::InitOnLineHelp()
/*******************************/
/*******************************/
bool
WinEDA_App
::
SetBinDir
()
bool
WinEDA_App
::
SetBinDir
()
/*******************************/
/*******************************/
// Find the path to the executable and store it in WinEDA_App::m_BinDir
// Find the path to the executable and store it in WinEDA_App::m_BinDir
{
{
#ifdef __APPLE__
#ifdef __APPLE__
// Derive path from location of the app bundle
// Derive path from location of the app bundle
CFBundleRef
mainBundle
=
CFBundleGetMainBundle
();
CFBundleRef
mainBundle
=
CFBundleGetMainBundle
();
if
(
mainBundle
==
NULL
)
return
false
;
if
(
mainBundle
==
NULL
)
CFURLRef
urlref
=
CFBundleCopyBundleURL
(
mainBundle
);
return
false
;
if
(
urlref
==
NULL
)
return
false
;
CFURLRef
urlref
=
CFBundleCopyBundleURL
(
mainBundle
);
CFStringRef
str
=
CFURLCopyFileSystemPath
(
urlref
,
kCFURLPOSIXPathStyle
);
if
(
urlref
==
NULL
)
if
(
str
==
NULL
)
return
false
;
return
false
;
char
*
native_str
=
NULL
;
CFStringRef
str
=
CFURLCopyFileSystemPath
(
urlref
,
kCFURLPOSIXPathStyle
);
int
len
=
CFStringGetMaximumSizeForEncoding
(
CFStringGetLength
(
str
),
if
(
str
==
NULL
)
kCFStringEncodingUTF8
)
+
1
;
return
false
;
char
*
native_str
=
NULL
;
int
len
=
CFStringGetMaximumSizeForEncoding
(
CFStringGetLength
(
str
),
kCFStringEncodingUTF8
)
+
1
;
native_str
=
new
char
[
len
];
native_str
=
new
char
[
len
];
CFStringGetCString
(
str
,
native_str
,
len
,
kCFStringEncodingUTF8
);
CFStringGetCString
(
str
,
native_str
,
len
,
kCFStringEncodingUTF8
);
m_BinDir
=
CONV_FROM_UTF8
(
native_str
);
m_BinDir
=
CONV_FROM_UTF8
(
native_str
);
delete
[]
native_str
;
delete
[]
native_str
;
#elif defined(__UNIX__)
#elif defined
(__UNIX__)
// Under Linux, if argv[0] doesn't the complete path to the executable,
// Under Linux, if argv[0] doesn't the complete path to the executable,
// it's necessary to obtain it using "which <filename>".
// it's necessary to obtain it using "which <filename>".
...
@@ -428,68 +538,20 @@ bool WinEDA_App::SetLanguage( bool first_time )
...
@@ -428,68 +538,20 @@ bool WinEDA_App::SetLanguage( bool first_time )
void
WinEDA_App
::
SetLanguageIdentifier
(
int
menu_id
)
void
WinEDA_App
::
SetLanguageIdentifier
(
int
menu_id
)
/**************************************************/
/**************************************************/
/* return in m_LanguageId the
language id (wxWidgets language identifier)
/* return in m_LanguageId the
wxWidgets language identifier Id
* from menu id (internal menu identifier)
* from
the kicad
menu id (internal menu identifier)
*/
*/
{
{
switch
(
menu_id
)
unsigned
int
ii
;
{
case
ID_LANGUAGE_ITALIAN
:
m_LanguageId
=
wxLANGUAGE_ITALIAN
;
break
;
case
ID_LANGUAGE_PORTUGUESE
:
m_LanguageId
=
wxLANGUAGE_PORTUGUESE
;
break
;
case
ID_LANGUAGE_RUSSIAN
:
m_LanguageId
=
wxLANGUAGE_RUSSIAN
;
break
;
case
ID_LANGUAGE_GERMAN
:
m_LanguageId
=
wxLANGUAGE_GERMAN
;
break
;
case
ID_LANGUAGE_SPANISH
:
m_LanguageId
=
wxLANGUAGE_SPANISH
;
break
;
case
ID_LANGUAGE_ENGLISH
:
m_LanguageId
=
wxLANGUAGE_ENGLISH
;
break
;
case
ID_LANGUAGE_FRENCH
:
m_LanguageId
=
wxLANGUAGE_FRENCH
;
break
;
case
ID_LANGUAGE_SLOVENIAN
:
m_LanguageId
=
wxLANGUAGE_SLOVENIAN
;
break
;
case
ID_LANGUAGE_HUNGARIAN
:
m_LanguageId
=
wxLANGUAGE_HUNGARIAN
;
break
;
case
ID_LANGUAGE_POLISH
:
m_LanguageId
=
wxLANGUAGE_POLISH
;
break
;
case
ID_LANGUAGE_KOREAN
:
m_LanguageId
=
wxLANGUAGE_KOREAN
;
break
;
case
ID_LANGUAGE_CATALAN
:
m_LanguageId
=
wxLANGUAGE_CATALAN
;
break
;
case
ID_LANGUAGE_CHINESE_SIMPLIFIED
:
m_LanguageId
=
wxLANGUAGE_CHINESE_SIMPLIFIED
;
break
;
default
:
for
(
ii
=
0
;
ii
<
LANGUAGE_DESCR_COUNT
;
ii
++
)
m_LanguageId
=
wxLANGUAGE_DEFAULT
;
{
if
(
menu_id
==
s_Language_List
[
ii
].
m_KI_Lang_Identifier
)
{
m_LanguageId
=
s_Language_List
[
ii
].
m_WX_Lang_Identifier
;
break
;
break
;
}
}
}
}
}
...
@@ -501,154 +563,29 @@ wxMenu* WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
...
@@ -501,154 +563,29 @@ wxMenu* WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
*/
*/
{
{
wxMenuItem
*
item
;
wxMenuItem
*
item
;
unsigned
int
ii
;
if
(
m_Language_Menu
==
NULL
)
if
(
m_Language_Menu
==
NULL
)
{
{
m_Language_Menu
=
new
wxMenu
;
m_Language_Menu
=
new
wxMenu
;
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_DEFAULT
,
for
(
ii
=
0
;
ii
<
LANGUAGE_DESCR_COUNT
;
ii
++
)
_
(
"Default"
),
wxEmptyString
,
wxITEM_CHECK
);
{
SETBITMAPS
(
lang_def_xpm
);
wxString
MenuLabel
=
s_Language_List
[
ii
].
m_DoNotTranslate
?
m_Language_Menu
->
Append
(
item
);
s_Language_List
[
ii
].
m_Lang_Label
:
wxGetTranslation
(
s_Language_List
[
ii
].
m_Lang_Label
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_ENGLISH
,
item
=
new
wxMenuItem
(
m_Language_Menu
,
s_Language_List
[
ii
].
m_KI_Lang_Identifier
,
wxT
(
"English"
),
wxEmptyString
,
wxITEM_CHECK
);
MenuLabel
,
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_en_xpm
);
SETBITMAPS
(
s_Language_List
[
ii
].
m_Lang_Icon
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_FRENCH
,
_
(
"French"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_fr_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_SPANISH
,
_
(
"Spanish"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_es_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_PORTUGUESE
,
_
(
"Portuguese"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_pt_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_ITALIAN
,
_
(
"Italian"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_it_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_GERMAN
,
_
(
"German"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_de_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_SLOVENIAN
,
_
(
"Slovenian"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_sl_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_HUNGARIAN
,
_
(
"Hungarian"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_hu_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_POLISH
,
_
(
"Polish"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_po_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_RUSSIAN
,
_
(
"Russian"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_ru_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_KOREAN
,
_
(
"Korean"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_ko_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_CATALAN
,
_
(
"Catalan"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_catalan_xpm
);
m_Language_Menu
->
Append
(
item
);
item
=
new
wxMenuItem
(
m_Language_Menu
,
ID_LANGUAGE_CHINESE_SIMPLIFIED
,
_
(
"Chinese simplified"
),
wxEmptyString
,
wxITEM_CHECK
);
SETBITMAPS
(
lang_chinese_xpm
);
m_Language_Menu
->
Append
(
item
);
m_Language_Menu
->
Append
(
item
);
}
}
}
m_Language_Menu
->
Check
(
ID_LANGUAGE_CATALAN
,
FALSE
);
for
(
ii
=
0
;
ii
<
LANGUAGE_DESCR_COUNT
;
ii
++
)
m_Language_Menu
->
Check
(
ID_LANGUAGE_CHINESE_SIMPLIFIED
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_KOREAN
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_RUSSIAN
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_POLISH
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_HUNGARIAN
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_SLOVENIAN
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_ITALIAN
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_PORTUGUESE
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_GERMAN
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_SPANISH
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_FRENCH
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_ENGLISH
,
FALSE
);
m_Language_Menu
->
Check
(
ID_LANGUAGE_DEFAULT
,
FALSE
);
switch
(
m_LanguageId
)
{
{
case
wxLANGUAGE_CATALAN
:
if
(
m_LanguageId
==
s_Language_List
[
ii
].
m_WX_Lang_Identifier
)
m_Language_Menu
->
Check
(
ID_LANGUAGE_CATALAN
,
TRUE
);
m_Language_Menu
->
Check
(
s_Language_List
[
ii
].
m_KI_Lang_Identifier
,
true
);
break
;
else
m_Language_Menu
->
Check
(
s_Language_List
[
ii
].
m_KI_Lang_Identifier
,
false
);
case
wxLANGUAGE_CHINESE_SIMPLIFIED
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_CHINESE_SIMPLIFIED
,
TRUE
);
break
;
case
wxLANGUAGE_KOREAN
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_KOREAN
,
TRUE
);
break
;
case
wxLANGUAGE_RUSSIAN
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_RUSSIAN
,
TRUE
);
break
;
case
wxLANGUAGE_GERMAN
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_GERMAN
,
TRUE
);
break
;
case
wxLANGUAGE_FRENCH
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_FRENCH
,
TRUE
);
break
;
case
wxLANGUAGE_ENGLISH
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_ENGLISH
,
TRUE
);
break
;
case
wxLANGUAGE_SPANISH
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_SPANISH
,
TRUE
);
break
;
case
wxLANGUAGE_PORTUGUESE
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_PORTUGUESE
,
TRUE
);
break
;
case
wxLANGUAGE_ITALIAN
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_ITALIAN
,
TRUE
);
break
;
case
wxLANGUAGE_SLOVENIAN
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_SLOVENIAN
,
TRUE
);
break
;
case
wxLANGUAGE_HUNGARIAN
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_HUNGARIAN
,
TRUE
);
break
;
case
wxLANGUAGE_POLISH
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_POLISH
,
TRUE
);
break
;
default
:
m_Language_Menu
->
Check
(
ID_LANGUAGE_DEFAULT
,
TRUE
);
break
;
}
}
if
(
MasterMenu
)
if
(
MasterMenu
)
...
@@ -665,8 +602,9 @@ wxMenu* WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
...
@@ -665,8 +602,9 @@ wxMenu* WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
/**********************/
/**********************/
int
WinEDA_App
::
OnRun
()
int
WinEDA_App
::
OnRun
()
/**********************/
/**********************/
/* Run init scripts
/* Run init scripts
*/
*/
{
{
#ifdef KICAD_PYTHON
#ifdef KICAD_PYTHON
PyHandler
::
GetInstance
()
->
RunScripts
();
PyHandler
::
GetInstance
()
->
RunScripts
();
...
...
include/wxPcbStruct.h
View file @
15479871
...
@@ -214,14 +214,14 @@ public:
...
@@ -214,14 +214,14 @@ public:
wxDC
*
DC
,
const
wxPoint
&
pos
);
wxDC
*
DC
,
const
wxPoint
&
pos
);
// Pads sur modules
// Pads sur modules
void
AddPad
(
MODULE
*
Module
,
wxDC
*
DC
);
void
AddPad
(
MODULE
*
Module
,
bool
draw
);
void
DeletePad
(
D_PAD
*
Pad
,
wxDC
*
DC
);
void
DeletePad
(
D_PAD
*
Pad
,
wxDC
*
DC
);
void
StartMovePad
(
D_PAD
*
Pad
,
wxDC
*
DC
);
void
StartMovePad
(
D_PAD
*
Pad
,
wxDC
*
DC
);
void
RotatePad
(
D_PAD
*
Pad
,
wxDC
*
DC
);
void
RotatePad
(
D_PAD
*
Pad
,
wxDC
*
DC
);
void
PlacePad
(
D_PAD
*
Pad
,
wxDC
*
DC
);
void
PlacePad
(
D_PAD
*
Pad
,
wxDC
*
DC
);
void
Export_Pad_Settings
(
D_PAD
*
pt_p
ad
);
void
Export_Pad_Settings
(
D_PAD
*
aP
ad
);
void
Import_Pad_Settings
(
D_PAD
*
pt_pad
,
wxDC
*
DC
);
void
Import_Pad_Settings
(
D_PAD
*
aPad
,
bool
aDraw
);
void
Global_Import_Pad_Settings
(
D_PAD
*
Pad
,
wxDC
*
DC
);
void
Global_Import_Pad_Settings
(
D_PAD
*
aPad
,
bool
aDraw
);
// loading footprints
// loading footprints
...
...
pcbnew/class_pad.cpp
View file @
15479871
...
@@ -82,6 +82,23 @@ void D_PAD::ComputeRayon()
...
@@ -82,6 +82,23 @@ void D_PAD::ComputeRayon()
}
}
/**
* Function GetBoundingBox
* returns the bounding box of this pad
* Mainly used to redraw the screen area occuped by the pad
*/
EDA_Rect
D_PAD
::
GetBoundingBox
()
{
// Calculate area:
ComputeRayon
();
// calculate the radius of the area, considered as a circle
EDA_Rect
area
;
area
.
SetOrigin
(
m_Pos
);
area
.
Inflate
(
m_Rayon
,
m_Rayon
);
return
area
;
}
/*********************************************/
/*********************************************/
const
wxPoint
D_PAD
::
ReturnShapePos
()
const
wxPoint
D_PAD
::
ReturnShapePos
()
/*********************************************/
/*********************************************/
...
@@ -240,6 +257,9 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
...
@@ -240,6 +257,9 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
int
fillpad
=
0
;
int
fillpad
=
0
;
wxPoint
shape_pos
;
wxPoint
shape_pos
;
if
(
m_Flags
&
DO_NOT_DRAW
)
return
;
wxASSERT
(
panel
);
wxASSERT
(
panel
);
WinEDA_BasePcbFrame
*
frame
=
(
WinEDA_BasePcbFrame
*
)
panel
->
m_Parent
;
WinEDA_BasePcbFrame
*
frame
=
(
WinEDA_BasePcbFrame
*
)
panel
->
m_Parent
;
...
...
pcbnew/class_pad.h
View file @
15479871
...
@@ -172,6 +172,13 @@ public:
...
@@ -172,6 +172,13 @@ public:
}
}
/**
* Function GetBoundingBox
* returns the bounding box of this Footprint
* Mainly used to redraw the screen area occuped by the footprint
*/
EDA_Rect
GetBoundingBox
();
/**
/**
* Function Compare
* Function Compare
* compares two pads and return 0 if they are equal.
* compares two pads and return 0 if they are equal.
...
...
pcbnew/classpcb.cpp
View file @
15479871
...
@@ -30,6 +30,7 @@ PCB_SCREEN::PCB_SCREEN( int idscreen ) : BASE_SCREEN( TYPESCREEN )
...
@@ -30,6 +30,7 @@ PCB_SCREEN::PCB_SCREEN( int idscreen ) : BASE_SCREEN( TYPESCREEN )
m_Type
=
idscreen
;
m_Type
=
idscreen
;
SetGridList
(
g_GridList
);
SetGridList
(
g_GridList
);
SetZoomList
(
zoom_list
);
SetZoomList
(
zoom_list
);
m_Grid
=
wxSize
(
500
,
500
);
/* pas de la grille en 1/10000 "*/
Init
();
Init
();
}
}
...
@@ -50,7 +51,6 @@ void PCB_SCREEN::Init()
...
@@ -50,7 +51,6 @@ void PCB_SCREEN::Init()
m_Route_Layer_TOP
=
CMP_N
;
/* ref couches par defaut pour vias (Cu.. Cmp) */
m_Route_Layer_TOP
=
CMP_N
;
/* ref couches par defaut pour vias (Cu.. Cmp) */
m_Route_Layer_BOTTOM
=
COPPER_LAYER_N
;
m_Route_Layer_BOTTOM
=
COPPER_LAYER_N
;
m_Zoom
=
128
;
/* valeur */
m_Zoom
=
128
;
/* valeur */
m_Grid
=
wxSize
(
500
,
500
);
/* pas de la grille en 1/10000 "*/
}
}
...
...
pcbnew/edit.cpp
View file @
15479871
...
@@ -663,12 +663,12 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -663,12 +663,12 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
case
ID_POPUP_PCB_IMPORT_PAD_SETTINGS
:
case
ID_POPUP_PCB_IMPORT_PAD_SETTINGS
:
DrawPanel
->
MouseToCursorSchema
();
DrawPanel
->
MouseToCursorSchema
();
Import_Pad_Settings
(
(
D_PAD
*
)
GetCurItem
(),
&
dc
);
Import_Pad_Settings
(
(
D_PAD
*
)
GetCurItem
(),
true
);
break
;
break
;
case
ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS
:
case
ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS
:
DrawPanel
->
MouseToCursorSchema
();
DrawPanel
->
MouseToCursorSchema
();
Global_Import_Pad_Settings
(
(
D_PAD
*
)
GetCurItem
(),
&
dc
);
Global_Import_Pad_Settings
(
(
D_PAD
*
)
GetCurItem
(),
true
);
break
;
break
;
case
ID_POPUP_PCB_EXPORT_PAD_SETTINGS
:
case
ID_POPUP_PCB_EXPORT_PAD_SETTINGS
:
...
...
pcbnew/editpads.cpp
View file @
15479871
...
@@ -442,8 +442,12 @@ void WinEDA_PadPropertiesFrame::PadPropertiesAccept( wxCommandEvent& event )
...
@@ -442,8 +442,12 @@ void WinEDA_PadPropertiesFrame::PadPropertiesAccept( wxCommandEvent& event )
Module
=
(
MODULE
*
)
CurrentPad
->
m_Parent
;
Module
=
(
MODULE
*
)
CurrentPad
->
m_Parent
;
Module
->
m_LastEdit_Time
=
time
(
NULL
);
Module
->
m_LastEdit_Time
=
time
(
NULL
);
if
(
m_DC
)
if
(
m_DC
)
// redraw the area where the pas was, without pad
CurrentPad
->
Draw
(
m_Parent
->
DrawPanel
,
m_DC
,
GR_XOR
);
{
CurrentPad
->
m_Flags
|=
DO_NOT_DRAW
;
m_Parent
->
DrawPanel
->
PostDirtyRect
(
CurrentPad
->
GetBoundingBox
()
);
CurrentPad
->
m_Flags
&=
~
DO_NOT_DRAW
;
}
CurrentPad
->
m_PadShape
=
g_Pad_Master
.
m_PadShape
;
CurrentPad
->
m_PadShape
=
g_Pad_Master
.
m_PadShape
;
CurrentPad
->
m_Attribut
=
g_Pad_Master
.
m_Attribut
;
CurrentPad
->
m_Attribut
=
g_Pad_Master
.
m_Attribut
;
if
(
CurrentPad
->
m_Pos
!=
g_Pad_Master
.
m_Pos
)
if
(
CurrentPad
->
m_Pos
!=
g_Pad_Master
.
m_Pos
)
...
@@ -529,8 +533,8 @@ void WinEDA_PadPropertiesFrame::PadPropertiesAccept( wxCommandEvent& event )
...
@@ -529,8 +533,8 @@ void WinEDA_PadPropertiesFrame::PadPropertiesAccept( wxCommandEvent& event )
Module
->
Set_Rectangle_Encadrement
();
Module
->
Set_Rectangle_Encadrement
();
CurrentPad
->
Display_Infos
(
m_Parent
);
CurrentPad
->
Display_Infos
(
m_Parent
);
if
(
m_DC
)
if
(
m_DC
)
// redraw the area where the pas was
CurrentPad
->
Draw
(
m_Parent
->
DrawPanel
,
m_DC
,
GR_OR
);
m_Parent
->
DrawPanel
->
PostDirtyRect
(
CurrentPad
->
GetBoundingBox
()
);
m_Parent
->
GetScreen
()
->
SetModify
();
m_Parent
->
GetScreen
()
->
SetModify
();
}
}
...
...
pcbnew/files.cpp
View file @
15479871
...
@@ -98,7 +98,7 @@ void WinEDA_PcbFrame::Files_io( wxCommandEvent& event )
...
@@ -98,7 +98,7 @@ void WinEDA_PcbFrame::Files_io( wxCommandEvent& event )
Clear_Pcb
(
TRUE
);
Clear_Pcb
(
TRUE
);
wxSetWorkingDirectory
(
wxPathOnly
(
GetLastProject
(
id
-
ID_LOAD_FILE_1
)
)
);
wxSetWorkingDirectory
(
wxPathOnly
(
GetLastProject
(
id
-
ID_LOAD_FILE_1
)
)
);
LoadOnePcbFile
(
GetLastProject
(
id
-
ID_LOAD_FILE_1
).
GetData
(),
LoadOnePcbFile
(
GetLastProject
(
id
-
ID_LOAD_FILE_1
).
GetData
(),
FALSE
);
false
);
ReCreateAuxiliaryToolbar
();
ReCreateAuxiliaryToolbar
();
break
;
break
;
...
@@ -211,7 +211,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, bool Append )
...
@@ -211,7 +211,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, bool Append )
// Reload the corresponding configuration file:
// Reload the corresponding configuration file:
wxSetWorkingDirectory
(
wxPathOnly
(
GetScreen
()
->
m_FileName
)
);
wxSetWorkingDirectory
(
wxPathOnly
(
GetScreen
()
->
m_FileName
)
);
if
(
Append
)
if
(
Append
)
ReadPcbFile
(
source
,
TRUE
);
ReadPcbFile
(
source
,
true
);
else
else
{
{
Read_Config
(
GetScreen
()
->
m_FileName
);
Read_Config
(
GetScreen
()
->
m_FileName
);
...
@@ -222,7 +222,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, bool Append )
...
@@ -222,7 +222,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, bool Append )
m_DisplayModEdge
=
DisplayOpt
.
DisplayModEdge
;
m_DisplayModEdge
=
DisplayOpt
.
DisplayModEdge
;
m_DisplayPadFill
=
DisplayOpt
.
DisplayPadFill
;
m_DisplayPadFill
=
DisplayOpt
.
DisplayPadFill
;
ReadPcbFile
(
source
,
FALSE
);
ReadPcbFile
(
source
,
false
);
}
}
fclose
(
source
);
fclose
(
source
);
...
...
pcbnew/globaleditpad.cpp
View file @
15479871
...
@@ -38,7 +38,6 @@ class WinEDA_PadGlobalEditFrame : public wxDialog
...
@@ -38,7 +38,6 @@ class WinEDA_PadGlobalEditFrame : public wxDialog
private
:
private
:
WinEDA_BasePcbFrame
*
m_Parent
;
WinEDA_BasePcbFrame
*
m_Parent
;
wxDC
*
m_DC
;
D_PAD
*
CurrentPad
;
D_PAD
*
CurrentPad
;
wxCheckBox
*
m_Pad_Shape_Filter
;
wxCheckBox
*
m_Pad_Shape_Filter
;
wxCheckBox
*
m_Pad_Layer_Filter
;
wxCheckBox
*
m_Pad_Layer_Filter
;
...
@@ -51,8 +50,7 @@ private:
...
@@ -51,8 +50,7 @@ private:
public
:
public
:
// Constructor and destructor
// Constructor and destructor
WinEDA_PadGlobalEditFrame
(
WinEDA_BasePcbFrame
*
parent
,
WinEDA_PadGlobalEditFrame
(
WinEDA_BasePcbFrame
*
parent
,
D_PAD
*
Pad
);
D_PAD
*
Pad
,
wxDC
*
DC
,
const
wxPoint
&
pos
);
~
WinEDA_PadGlobalEditFrame
()
{
}
~
WinEDA_PadGlobalEditFrame
()
{
}
private
:
private
:
...
@@ -72,10 +70,8 @@ END_EVENT_TABLE()
...
@@ -72,10 +70,8 @@ END_EVENT_TABLE()
/********************************************************************************/
/********************************************************************************/
WinEDA_PadGlobalEditFrame
::
WinEDA_PadGlobalEditFrame
(
WinEDA_BasePcbFrame
*
parent
,
WinEDA_PadGlobalEditFrame
::
WinEDA_PadGlobalEditFrame
(
WinEDA_BasePcbFrame
*
parent
,
D_PAD
*
Pad
,
D_PAD
*
Pad
)
:
wxDC
*
DC
,
wxDialog
(
parent
,
-
1
,
_
(
"Pads Global Edit"
),
wxDefaultPosition
,
wxSize
(
310
,
235
),
const
wxPoint
&
framepos
)
:
wxDialog
(
parent
,
-
1
,
_
(
"Pads Global Edit"
),
framepos
,
wxSize
(
310
,
235
),
DIALOG_STYLE
)
DIALOG_STYLE
)
/********************************************************************************/
/********************************************************************************/
{
{
...
@@ -84,7 +80,6 @@ WinEDA_PadGlobalEditFrame::WinEDA_PadGlobalEditFrame( WinEDA_BasePcbFrame* paren
...
@@ -84,7 +80,6 @@ WinEDA_PadGlobalEditFrame::WinEDA_PadGlobalEditFrame( WinEDA_BasePcbFrame* paren
m_Parent
=
parent
;
m_Parent
=
parent
;
SetFont
(
*
g_DialogFont
);
SetFont
(
*
g_DialogFont
);
m_DC
=
DC
;
Centre
();
Centre
();
CurrentPad
=
Pad
;
CurrentPad
=
Pad
;
...
@@ -206,26 +201,24 @@ void WinEDA_PadGlobalEditFrame::PadPropertiesAccept( wxCommandEvent& event )
...
@@ -206,26 +201,24 @@ void WinEDA_PadGlobalEditFrame::PadPropertiesAccept( wxCommandEvent& event )
/***************************************************************************/
/***************************************************************************/
void
WinEDA_BasePcbFrame
::
Global_Import_Pad_Settings
(
D_PAD
*
Pad
,
wxDC
*
DC
)
void
WinEDA_BasePcbFrame
::
Global_Import_Pad_Settings
(
D_PAD
*
aPad
,
bool
aDraw
)
/***************************************************************************/
/***************************************************************************/
/*
/** Function Global_Import_Pad_Settings
* Routine de selection et de correction des dimensions des pastilles
* Function to change pad caracteristics for the given footprint
* de tous les modules
* or alls footprints which look like the given footprint
* - semblables a l'module de reference selectionnee,
* @param aPad pad to use as pattern. The given footprint is the parent of this pad
* c.a.d de meme nom de librairie
* @param aDraw: if true: redraws the footprint
* - ou sur l'module localisee, selon le menu d'appel
*/
*/
{
{
D_PAD
*
pt_pad
;
MODULE
*
Module_Ref
,
*
Module
;
MODULE
*
Module_Ref
,
*
Module
;
int
diag
;
int
diag
;
bool
Edit_Same_Modules
=
FALSE
;
bool
Edit_Same_Modules
=
FALSE
;
if
(
Pad
==
NULL
)
if
(
a
Pad
==
NULL
)
return
;
return
;
Module
=
(
MODULE
*
)
Pad
->
m_Parent
;
Module
=
(
MODULE
*
)
a
Pad
->
m_Parent
;
if
(
Module
==
NULL
)
if
(
Module
==
NULL
)
{
{
...
@@ -237,8 +230,7 @@ void WinEDA_BasePcbFrame::Global_Import_Pad_Settings( D_PAD* Pad, wxDC* DC )
...
@@ -237,8 +230,7 @@ void WinEDA_BasePcbFrame::Global_Import_Pad_Settings( D_PAD* Pad, wxDC* DC )
Module
->
Display_Infos
(
this
);
Module
->
Display_Infos
(
this
);
WinEDA_PadGlobalEditFrame
*
frame
=
new
WinEDA_PadGlobalEditFrame
(
this
,
Pad
,
DC
,
WinEDA_PadGlobalEditFrame
*
frame
=
new
WinEDA_PadGlobalEditFrame
(
this
,
aPad
);
wxPoint
(
-
1
,
-
1
)
);
diag
=
frame
->
ShowModal
();
diag
=
frame
->
ShowModal
();
frame
->
Destroy
();
frame
->
Destroy
();
...
@@ -266,9 +258,14 @@ void WinEDA_BasePcbFrame::Global_Import_Pad_Settings( D_PAD* Pad, wxDC* DC )
...
@@ -266,9 +258,14 @@ void WinEDA_BasePcbFrame::Global_Import_Pad_Settings( D_PAD* Pad, wxDC* DC )
Module
->
Display_Infos
(
this
);
Module
->
Display_Infos
(
this
);
/* Effacement du module */
/* Effacement du module */
Module
->
Draw
(
DrawPanel
,
DC
,
GR_XOR
);
if
(
aDraw
)
{
Module
->
m_Flags
|=
DO_NOT_DRAW
;
DrawPanel
->
PostDirtyRect
(
Module
->
GetBoundingBox
()
);
Module
->
m_Flags
&=
~
DO_NOT_DRAW
;
}
pt_pad
=
(
D_PAD
*
)
Module
->
m_Pads
;
D_PAD
*
pt_pad
=
(
D_PAD
*
)
Module
->
m_Pads
;
for
(
;
pt_pad
!=
NULL
;
pt_pad
=
(
D_PAD
*
)
pt_pad
->
Pnext
)
for
(
;
pt_pad
!=
NULL
;
pt_pad
=
(
D_PAD
*
)
pt_pad
->
Pnext
)
{
{
/* Filtrage des modifications interdites */
/* Filtrage des modifications interdites */
...
@@ -345,7 +342,8 @@ void WinEDA_BasePcbFrame::Global_Import_Pad_Settings( D_PAD* Pad, wxDC* DC )
...
@@ -345,7 +342,8 @@ void WinEDA_BasePcbFrame::Global_Import_Pad_Settings( D_PAD* Pad, wxDC* DC )
}
}
Module
->
Set_Rectangle_Encadrement
();
Module
->
Set_Rectangle_Encadrement
();
Module
->
Draw
(
DrawPanel
,
DC
,
GR_OR
);
if
(
aDraw
)
DrawPanel
->
PostDirtyRect
(
Module
->
GetBoundingBox
()
);
}
}
GetScreen
()
->
SetModify
();
GetScreen
()
->
SetModify
();
...
...
pcbnew/initpcb.cpp
View file @
15479871
...
@@ -145,7 +145,9 @@ bool WinEDA_BasePcbFrame::Clear_Pcb( bool query )
...
@@ -145,7 +145,9 @@ bool WinEDA_BasePcbFrame::Clear_Pcb( bool query )
SetCurItem
(
NULL
);
SetCurItem
(
NULL
);
/* Init parametres de gestion */
/* Init parametres de gestion */
wxSize
gridsize
=
GetScreen
()
->
GetGrid
();
((
PCB_SCREEN
*
)
GetScreen
())
->
Init
();
((
PCB_SCREEN
*
)
GetScreen
())
->
Init
();
GetScreen
()
->
SetGrid
(
gridsize
);
g_HightLigt_Status
=
0
;
g_HightLigt_Status
=
0
;
...
...
pcbnew/ioascii.cpp
View file @
15479871
...
@@ -355,19 +355,6 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum )
...
@@ -355,19 +355,6 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum )
continue
;
continue
;
}
}
if
(
stricmp
(
Line
,
"GridSize"
)
==
0
)
{
wxSize
Grid
;
Grid
.
x
=
atoi
(
data
);
data
=
strtok
(
NULL
,
" =
\n\r
"
);
if
(
data
)
Grid
.
y
=
atoi
(
data
);
else
Grid
.
y
=
Grid
.
x
;
GetScreen
()
->
SetGrid
(
Grid
);
continue
;
}
if
(
stricmp
(
Line
,
"ZoneGridSize"
)
==
0
)
if
(
stricmp
(
Line
,
"ZoneGridSize"
)
==
0
)
{
{
g_GridRoutingSize
=
atoi
(
data
);
g_GridRoutingSize
=
atoi
(
data
);
...
@@ -518,23 +505,12 @@ static int WriteSetup( FILE* aFile, WinEDA_BasePcbFrame* aFrame, BOARD* aBoard )
...
@@ -518,23 +505,12 @@ static int WriteSetup( FILE* aFile, WinEDA_BasePcbFrame* aFrame, BOARD* aBoard )
/******************************************************************************/
/******************************************************************************/
{
{
char
text
[
1024
];
char
text
[
1024
];
int
ii
,
jj
;
int
ii
;
fprintf
(
aFile
,
"$SETUP
\n
"
);
fprintf
(
aFile
,
"$SETUP
\n
"
);
sprintf
(
text
,
"InternalUnit %f INCH
\n
"
,
1.0
/
PCB_INTERNAL_UNIT
);
sprintf
(
text
,
"InternalUnit %f INCH
\n
"
,
1.0
/
PCB_INTERNAL_UNIT
);
fprintf
(
aFile
,
text
);
fprintf
(
aFile
,
text
);
if
(
aFrame
->
GetScreen
()
->
m_UserGridIsON
)
ii
=
jj
=
-
1
;
else
{
ii
=
aFrame
->
GetScreen
()
->
GetGrid
().
x
;
jj
=
aFrame
->
GetScreen
()
->
GetGrid
().
y
;
}
sprintf
(
text
,
"GridSize %d %d
\n
"
,
ii
,
jj
);
fprintf
(
aFile
,
text
);
sprintf
(
text
,
"UserGridSize %lf %lf %s
\n
"
,
sprintf
(
text
,
"UserGridSize %lf %lf %s
\n
"
,
aFrame
->
GetScreen
()
->
m_UserGrid
.
x
,
aFrame
->
GetScreen
()
->
m_UserGrid
.
y
,
aFrame
->
GetScreen
()
->
m_UserGrid
.
x
,
aFrame
->
GetScreen
()
->
m_UserGrid
.
y
,
(
g_UserGrid_Unit
==
0
)
?
"INCH"
:
"mm"
);
(
g_UserGrid_Unit
==
0
)
?
"INCH"
:
"mm"
);
...
@@ -551,7 +527,7 @@ static int WriteSetup( FILE* aFile, WinEDA_BasePcbFrame* aFrame, BOARD* aBoard )
...
@@ -551,7 +527,7 @@ static int WriteSetup( FILE* aFile, WinEDA_BasePcbFrame* aFrame, BOARD* aBoard )
}
}
fprintf
(
aFile
,
"TrackWidth %d
\n
"
,
g_DesignSettings
.
m_CurrentTrackWidth
);
fprintf
(
aFile
,
"TrackWidth %d
\n
"
,
g_DesignSettings
.
m_CurrentTrackWidth
);
for
(
ii
=
0
;
ii
<
HISTORY_NUMBER
;
ii
++
)
for
(
i
nt
i
i
=
0
;
ii
<
HISTORY_NUMBER
;
ii
++
)
{
{
if
(
g_DesignSettings
.
m_TrackWidthHistory
[
ii
]
==
0
)
if
(
g_DesignSettings
.
m_TrackWidthHistory
[
ii
]
==
0
)
break
;
break
;
...
...
pcbnew/modedit.cpp
View file @
15479871
...
@@ -462,12 +462,12 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -462,12 +462,12 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
case
ID_POPUP_PCB_IMPORT_PAD_SETTINGS
:
case
ID_POPUP_PCB_IMPORT_PAD_SETTINGS
:
SaveCopyInUndoList
(
m_Pcb
->
m_Modules
);
SaveCopyInUndoList
(
m_Pcb
->
m_Modules
);
DrawPanel
->
MouseToCursorSchema
();
DrawPanel
->
MouseToCursorSchema
();
Import_Pad_Settings
(
(
D_PAD
*
)
GetScreen
()
->
GetCurItem
(),
&
dc
);
Import_Pad_Settings
(
(
D_PAD
*
)
GetScreen
()
->
GetCurItem
(),
true
);
break
;
break
;
case
ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS
:
case
ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS
:
SaveCopyInUndoList
(
m_Pcb
->
m_Modules
);
SaveCopyInUndoList
(
m_Pcb
->
m_Modules
);
Global_Import_Pad_Settings
(
(
D_PAD
*
)
GetScreen
()
->
GetCurItem
(),
&
dc
);
Global_Import_Pad_Settings
(
(
D_PAD
*
)
GetScreen
()
->
GetCurItem
(),
true
);
DrawPanel
->
MouseToCursorSchema
();
DrawPanel
->
MouseToCursorSchema
();
break
;
break
;
...
...
pcbnew/modedit_onclick.cpp
View file @
15479871
...
@@ -157,7 +157,7 @@ void WinEDA_ModuleEditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
...
@@ -157,7 +157,7 @@ void WinEDA_ModuleEditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
if
(
m_Pcb
->
m_Modules
)
if
(
m_Pcb
->
m_Modules
)
{
{
SaveCopyInUndoList
(
m_Pcb
->
m_Modules
);
SaveCopyInUndoList
(
m_Pcb
->
m_Modules
);
AddPad
(
m_Pcb
->
m_Modules
,
DC
);
AddPad
(
m_Pcb
->
m_Modules
,
true
);
}
}
break
;
break
;
...
...
pcbnew/move-drag_pads.cpp
View file @
15479871
...
@@ -132,7 +132,7 @@ void WinEDA_BasePcbFrame::Export_Pad_Settings( D_PAD* pt_pad )
...
@@ -132,7 +132,7 @@ void WinEDA_BasePcbFrame::Export_Pad_Settings( D_PAD* pt_pad )
/***********************************************************************/
/***********************************************************************/
void
WinEDA_BasePcbFrame
::
Import_Pad_Settings
(
D_PAD
*
pt_pad
,
wxDC
*
DC
)
void
WinEDA_BasePcbFrame
::
Import_Pad_Settings
(
D_PAD
*
aPad
,
bool
aDraw
)
/***********************************************************************/
/***********************************************************************/
/* Met a jour les nouvelles valeurs de dimensions du pad pointe par pt_pad
/* Met a jour les nouvelles valeurs de dimensions du pad pointe par pt_pad
...
@@ -141,29 +141,33 @@ void WinEDA_BasePcbFrame::Import_Pad_Settings( D_PAD* pt_pad, wxDC* DC )
...
@@ -141,29 +141,33 @@ void WinEDA_BasePcbFrame::Import_Pad_Settings( D_PAD* pt_pad, wxDC* DC )
* - la position et les noms ne sont pas touches
* - la position et les noms ne sont pas touches
*/
*/
{
{
if
(
DC
)
if
(
aDraw
)
pt_pad
->
Draw
(
DrawPanel
,
DC
,
GR_XOR
);
{
aPad
->
m_Flags
|=
DO_NOT_DRAW
;
DrawPanel
->
PostDirtyRect
(
aPad
->
GetBoundingBox
()
);
aPad
->
m_Flags
&=
~
DO_NOT_DRAW
;
}
pt_p
ad
->
m_PadShape
=
g_Pad_Master
.
m_PadShape
;
aP
ad
->
m_PadShape
=
g_Pad_Master
.
m_PadShape
;
pt_p
ad
->
m_Masque_Layer
=
g_Pad_Master
.
m_Masque_Layer
;
aP
ad
->
m_Masque_Layer
=
g_Pad_Master
.
m_Masque_Layer
;
pt_p
ad
->
m_Attribut
=
g_Pad_Master
.
m_Attribut
;
aP
ad
->
m_Attribut
=
g_Pad_Master
.
m_Attribut
;
pt_p
ad
->
m_Orient
=
g_Pad_Master
.
m_Orient
+
aP
ad
->
m_Orient
=
g_Pad_Master
.
m_Orient
+
(
(
MODULE
*
)
pt_p
ad
->
m_Parent
)
->
m_Orient
;
(
(
MODULE
*
)
aP
ad
->
m_Parent
)
->
m_Orient
;
pt_p
ad
->
m_Size
=
g_Pad_Master
.
m_Size
;
aP
ad
->
m_Size
=
g_Pad_Master
.
m_Size
;
pt_p
ad
->
m_DeltaSize
=
wxSize
(
0
,
0
);
aP
ad
->
m_DeltaSize
=
wxSize
(
0
,
0
);
pt_p
ad
->
m_Offset
=
g_Pad_Master
.
m_Offset
;
aP
ad
->
m_Offset
=
g_Pad_Master
.
m_Offset
;
pt_p
ad
->
m_Drill
=
g_Pad_Master
.
m_Drill
;
aP
ad
->
m_Drill
=
g_Pad_Master
.
m_Drill
;
pt_p
ad
->
m_DrillShape
=
g_Pad_Master
.
m_DrillShape
;
aP
ad
->
m_DrillShape
=
g_Pad_Master
.
m_DrillShape
;
/* Traitement des cas particuliers : */
/* Traitement des cas particuliers : */
switch
(
g_Pad_Master
.
m_PadShape
)
switch
(
g_Pad_Master
.
m_PadShape
)
{
{
case
PAD_TRAPEZOID
:
case
PAD_TRAPEZOID
:
pt_p
ad
->
m_DeltaSize
=
g_Pad_Master
.
m_DeltaSize
;
aP
ad
->
m_DeltaSize
=
g_Pad_Master
.
m_DeltaSize
;
break
;
break
;
case
PAD_CIRCLE
:
case
PAD_CIRCLE
:
pt_pad
->
m_Size
.
y
=
pt_p
ad
->
m_Size
.
x
;
aPad
->
m_Size
.
y
=
aP
ad
->
m_Size
.
x
;
break
;
break
;
}
}
...
@@ -171,21 +175,21 @@ void WinEDA_BasePcbFrame::Import_Pad_Settings( D_PAD* pt_pad, wxDC* DC )
...
@@ -171,21 +175,21 @@ void WinEDA_BasePcbFrame::Import_Pad_Settings( D_PAD* pt_pad, wxDC* DC )
{
{
case
PAD_SMD
:
case
PAD_SMD
:
case
PAD_CONN
:
case
PAD_CONN
:
pt_p
ad
->
m_Drill
=
wxSize
(
0
,
0
);
aP
ad
->
m_Drill
=
wxSize
(
0
,
0
);
pt_p
ad
->
m_Offset
.
x
=
0
;
aP
ad
->
m_Offset
.
x
=
0
;
pt_p
ad
->
m_Offset
.
y
=
0
;
aP
ad
->
m_Offset
.
y
=
0
;
}
}
pt_p
ad
->
ComputeRayon
();
aP
ad
->
ComputeRayon
();
if
(
DC
)
if
(
aDraw
)
pt_pad
->
Draw
(
DrawPanel
,
DC
,
GR_XOR
);
DrawPanel
->
PostDirtyRect
(
aPad
->
GetBoundingBox
()
);
(
(
MODULE
*
)
pt_p
ad
->
m_Parent
)
->
m_LastEdit_Time
=
time
(
NULL
);
(
(
MODULE
*
)
aP
ad
->
m_Parent
)
->
m_LastEdit_Time
=
time
(
NULL
);
}
}
/***********************************************************/
/***********************************************************/
void
WinEDA_BasePcbFrame
::
AddPad
(
MODULE
*
Module
,
wxDC
*
DC
)
void
WinEDA_BasePcbFrame
::
AddPad
(
MODULE
*
Module
,
bool
draw
)
/***********************************************************/
/***********************************************************/
/* Routine d'ajout d'un pad sur l'module selectionnee */
/* Routine d'ajout d'un pad sur l'module selectionnee */
{
{
...
@@ -218,7 +222,7 @@ void WinEDA_BasePcbFrame::AddPad( MODULE* Module, wxDC* DC )
...
@@ -218,7 +222,7 @@ void WinEDA_BasePcbFrame::AddPad( MODULE* Module, wxDC* DC )
}
}
/* Mise a jour des caract de la pastille : */
/* Mise a jour des caract de la pastille : */
Import_Pad_Settings
(
Pad
,
NULL
);
Import_Pad_Settings
(
Pad
,
false
);
Pad
->
m_Netname
.
Empty
();
Pad
->
m_Netname
.
Empty
();
Pad
->
m_Pos
=
GetScreen
()
->
m_Curseur
;
Pad
->
m_Pos
=
GetScreen
()
->
m_Curseur
;
...
@@ -248,7 +252,8 @@ void WinEDA_BasePcbFrame::AddPad( MODULE* Module, wxDC* DC )
...
@@ -248,7 +252,8 @@ void WinEDA_BasePcbFrame::AddPad( MODULE* Module, wxDC* DC )
/* Redessin du module */
/* Redessin du module */
Module
->
Set_Rectangle_Encadrement
();
Module
->
Set_Rectangle_Encadrement
();
Pad
->
Display_Infos
(
this
);
Pad
->
Display_Infos
(
this
);
Module
->
Draw
(
DrawPanel
,
DC
,
GR_OR
);
if
(
draw
)
DrawPanel
->
PostDirtyRect
(
Module
->
GetBoundingBox
()
);
}
}
...
...
pcbnew/onrightclick.cpp
View file @
15479871
/**************************************************
******************************
/
/**************************************************/
/* onrightclick.cpp:
fonctions de l'edition du PCB appel�es par le bouton droit
*/
/* onrightclick.cpp:
Right mouse button functions
*/
/**************************************************
******************************
/
/**************************************************/
#include "fctsys.h"
#include "fctsys.h"
...
@@ -581,7 +581,7 @@ void WinEDA_PcbFrame::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
...
@@ -581,7 +581,7 @@ void WinEDA_PcbFrame::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
PopMenu
->
Append
(
ID_POPUP_PCB_PLACE_VIA
,
msg
);
PopMenu
->
Append
(
ID_POPUP_PCB_PLACE_VIA
,
msg
);
// See if we can place a Micro Via (4 or more layers, and start from an external layer):
// See if we can place a Micro Via (4 or more layers, and start from an external layer):
if
(
(
(
PCB_SCREEN
*
)
GetScreen
()
)
->
IsMicroViaAcceptable
()
)
if
(
(
(
PCB_SCREEN
*
)
GetScreen
()
)
->
IsMicroViaAcceptable
()
)
{
{
msg
=
AddHotkeyName
(
_
(
msg
=
AddHotkeyName
(
_
(
"Place Micro Via"
),
s_Board_Editor_Hokeys_Descr
,
"Place Micro Via"
),
s_Board_Editor_Hokeys_Descr
,
...
@@ -661,8 +661,7 @@ void WinEDA_PcbFrame::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu
...
@@ -661,8 +661,7 @@ void WinEDA_PcbFrame::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu
/* Create the wxMenuitem list for zone outlines editing and zone filling
/* Create the wxMenuitem list for zone outlines editing and zone filling
*/
*/
{
{
if
(
edge_zone
->
m_Flags
==
IS_DRAGGED
)
if
(
edge_zone
->
m_Flags
==
IS_DRAGGED
)
{
{
ADD_MENUITEM
(
aPopMenu
,
ID_POPUP_PCB_PLACE_DRAGGED_ZONE_OUTLINE_SEGMENT
,
ADD_MENUITEM
(
aPopMenu
,
ID_POPUP_PCB_PLACE_DRAGGED_ZONE_OUTLINE_SEGMENT
,
_
(
"Place Edge Outline"
),
apply_xpm
);
_
(
"Place Edge Outline"
),
apply_xpm
);
...
@@ -679,6 +678,7 @@ void WinEDA_PcbFrame::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu
...
@@ -679,6 +678,7 @@ void WinEDA_PcbFrame::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu
else
else
{
{
wxMenu
*
zones_menu
=
new
wxMenu
();
wxMenu
*
zones_menu
=
new
wxMenu
();
ADD_MENUITEM_WITH_SUBMENU
(
aPopMenu
,
zones_menu
,
ADD_MENUITEM_WITH_SUBMENU
(
aPopMenu
,
zones_menu
,
-
1
,
_
(
"Zones"
),
add_zone_xpm
);
-
1
,
_
(
"Zones"
),
add_zone_xpm
);
int
index
;
int
index
;
...
@@ -832,15 +832,22 @@ void WinEDA_PcbFrame::createPopUpMenuForFpPads( D_PAD* Pad, wxMenu* menu )
...
@@ -832,15 +832,22 @@ void WinEDA_PcbFrame::createPopUpMenuForFpPads( D_PAD* Pad, wxMenu* menu )
ADD_MENUITEM
(
sub_menu_Pad
,
ID_POPUP_PCB_EDIT_PAD
,
_
(
"Edit Pad"
),
options_pad_xpm
);
ADD_MENUITEM
(
sub_menu_Pad
,
ID_POPUP_PCB_EDIT_PAD
,
_
(
"Edit Pad"
),
options_pad_xpm
);
sub_menu_Pad
->
AppendSeparator
();
sub_menu_Pad
->
AppendSeparator
();
ADD_MENUITEM
(
sub_menu_Pad
,
ID_POPUP_PCB_IMPORT_PAD_SETTINGS
,
ADD_MENUITEM_WITH_HELP
(
sub_menu_Pad
,
ID_POPUP_PCB_IMPORT_PAD_SETTINGS
,
_
(
"New Pad Settings"
),
options_new_pad_xpm
);
_
(
"New Pad Settings"
),
ADD_MENUITEM
(
sub_menu_Pad
,
ID_POPUP_PCB_EXPORT_PAD_SETTINGS
,
_
(
"Copy current pad settings to this pad"
),
_
(
"Export Pad Settings"
),
Export_Options_Pad_xpm
);
options_new_pad_xpm
);
ADD_MENUITEM_WITH_HELP
(
sub_menu_Pad
,
ID_POPUP_PCB_EXPORT_PAD_SETTINGS
,
_
(
"Export Pad Settings"
),
_
(
"Copy this pad settings to current pad settings"
),
Export_Options_Pad_xpm
);
if
(
!
flags
)
if
(
!
flags
)
{
{
ADD_MENUITEM
(
sub_menu_Pad
,
ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS
,
ADD_MENUITEM_WITH_HELP
(
sub_menu_Pad
,
ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS
,
_
(
"Global Pad Settings"
),
global_options_pad_xpm
);
_
(
"Global Pad Settings"
),
_
(
"Copy this pad settings to all pads in this footprint (or similar footprints)"
),
global_options_pad_xpm
);
sub_menu_Pad
->
AppendSeparator
();
sub_menu_Pad
->
AppendSeparator
();
ADD_MENUITEM
(
sub_menu_Pad
,
ID_POPUP_PCB_DELETE_PAD
,
ADD_MENUITEM
(
sub_menu_Pad
,
ID_POPUP_PCB_DELETE_PAD
,
...
...
pcbnew/pcbplot.cpp
View file @
15479871
...
@@ -332,7 +332,7 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) :
...
@@ -332,7 +332,7 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) :
_
(
"Exclude contents of Edges_Pcb layer from all other layers"
)
);
_
(
"Exclude contents of Edges_Pcb layer from all other layers"
)
);
LeftBoxSizer
->
Add
(
m_Exclude_Edges_Pcb
,
0
,
wxGROW
|
wxALL
,
1
);
LeftBoxSizer
->
Add
(
m_Exclude_Edges_Pcb
,
0
,
wxGROW
|
wxALL
,
1
);
// Option
d'impression du cartouche
:
// Option
to plot page references
:
if
(
m_Parent
->
m_Print_Sheet_Ref
)
if
(
m_Parent
->
m_Print_Sheet_Ref
)
{
{
m_Plot_Sheet_Ref
=
new
wxCheckBox
(
this
,
ID_PRINT_REF
,
_
(
"Print sheet ref"
)
);
m_Plot_Sheet_Ref
=
new
wxCheckBox
(
this
,
ID_PRINT_REF
,
_
(
"Print sheet ref"
)
);
...
...
share/wxprint.cpp
View file @
15479871
...
@@ -39,7 +39,8 @@
...
@@ -39,7 +39,8 @@
#endif
#endif
#include "fctsys.h"
#include "fctsys.h"
#include "gr_basic.h"
//#include "gr_basic.h"
#include "common.h"
#include "common.h"
...
@@ -51,17 +52,17 @@
...
@@ -51,17 +52,17 @@
#ifdef PCBNEW
#ifdef PCBNEW
#include "pcbnew.h"
#include "pcbnew.h"
extern
float
Scale_X
,
Scale_Y
;
static
long
s_SelectedLayers
=
CUIVRE_LAYER
|
CMP_LAYER
|
SILKSCREEN_LAYER_CMP
|
SILKSCREEN_LAYER_CU
;
static
double
s_ScaleList
[]
=
{
0
,
0.5
,
0.7
,
0.999
,
1.0
,
1.4
,
2.0
,
3.0
,
4.0
};
#endif
#include "protos.h"
#include "protos.h"
//#define DEFAULT_ORIENTATION_PAPER wxPORTRAIT
// For pcbnew:
#define DEFAULT_ORIENTATION_PAPER wxLANDSCAPE
#define OPTKEY_LAYERBASE wxT( "PrintLayer_%d" )
#define OPTKEY_PRINT_X_FINESCALE_ADJ wxT( "PrintXFineScaleAdj" )
#define OPTKEY_PRINT_Y_FINESCALE_ADJ wxT( "PrintYFineScaleAdj" )
#define OPTKEY_PRINT_SCALE wxT( "PrintScale" )
#endif
#define DEFAULT_ORIENTATION_PAPER wxLANDSCAPE // other option is wxPORTRAIT
#ifdef EESCHEMA
#ifdef EESCHEMA
#define WIDTH_MAX_VALUE 100
#define WIDTH_MAX_VALUE 100
#else
#else
...
@@ -69,6 +70,14 @@ static double s_ScaleList[] =
...
@@ -69,6 +70,14 @@ static double s_ScaleList[] =
#endif
#endif
#define WIDTH_MIN_VALUE 1
#define WIDTH_MIN_VALUE 1
#ifdef PCBNEW
extern
float
Scale_X
,
Scale_Y
;
static
long
s_SelectedLayers
;
static
double
s_ScaleList
[]
=
{
0
,
0.5
,
0.7
,
0.999
,
1.0
,
1.4
,
2.0
,
3.0
,
4.0
};
#endif
// static print data and page setup data, to remember settings during the session
// static print data and page setup data, to remember settings during the session
static
wxPrintData
*
g_PrintData
;
static
wxPrintData
*
g_PrintData
;
...
@@ -82,6 +91,8 @@ static int s_Scale_Select = 3; // default selected scale = ScaleList[3]
...
@@ -82,6 +91,8 @@ static int s_Scale_Select = 3; // default selected scale = ScaleList[3]
static
bool
s_PrintMirror
;
static
bool
s_PrintMirror
;
static
bool
s_Print_Sheet_Ref
=
TRUE
;
static
bool
s_Print_Sheet_Ref
=
TRUE
;
/****************************************************************/
/****************************************************************/
/* frame de Preparation de l'impression (options, selections... */
/* frame de Preparation de l'impression (options, selections... */
/****************************************************************/
/****************************************************************/
...
@@ -101,17 +112,19 @@ public:
...
@@ -101,17 +112,19 @@ public:
WinEDA_DrawFrame
*
m_Parent
;
WinEDA_DrawFrame
*
m_Parent
;
WinEDA_PrintFrame
*
m_PrintFrame
;
WinEDA_PrintFrame
*
m_PrintFrame
;
EDA_Printout
(
WinEDA_PrintFrame
*
print_frame
,
EDA_Printout
(
WinEDA_PrintFrame
*
print_frame
,
WinEDA_DrawFrame
*
parent
,
WinEDA_DrawFrame
*
parent
,
const
wxString
&
title
,
const
wxString
&
title
,
bool
print_ref
)
:
bool
print_ref
)
:
wxPrintout
(
title
)
{
wxPrintout
(
title
)
{
m_PrintFrame
=
print_frame
;
m_PrintFrame
=
print_frame
;
m_Parent
=
parent
;
m_Parent
=
parent
;
s_PrintMaskLayer
=
0xFFFFFFFF
;
s_PrintMaskLayer
=
0xFFFFFFFF
;
m_Print_Sheet_Ref
=
print_ref
;
m_Print_Sheet_Ref
=
print_ref
;
}
}
bool
OnPrintPage
(
int
page
);
bool
OnPrintPage
(
int
page
);
bool
HasPage
(
int
page
);
bool
HasPage
(
int
page
);
bool
OnBeginDocument
(
int
startPage
,
int
endPage
);
bool
OnBeginDocument
(
int
startPage
,
int
endPage
);
...
@@ -173,6 +186,10 @@ void WinEDA_PrintFrame::SetOthersDatas()
...
@@ -173,6 +186,10 @@ void WinEDA_PrintFrame::SetOthersDatas()
m_Print_Mirror
->
Enable
(
false
);
m_Print_Mirror
->
Enable
(
false
);
#endif
#endif
#if defined (PCBNEW)
wxConfig
*
config
=
m_Parent
->
m_Parent
->
m_EDA_Config
;
// Current config used by application
#endif
m_FineAdjustXscaleOpt
->
SetToolTip
(
_
(
"Set X scale adjust for exact scale plotting"
)
);
m_FineAdjustXscaleOpt
->
SetToolTip
(
_
(
"Set X scale adjust for exact scale plotting"
)
);
m_FineAdjustYscaleOpt
->
SetToolTip
(
_
(
"Set Y scale adjust for exact scale plotting"
)
);
m_FineAdjustYscaleOpt
->
SetToolTip
(
_
(
"Set Y scale adjust for exact scale plotting"
)
);
if
(
s_Print_Black_and_White
)
if
(
s_Print_Black_and_White
)
...
@@ -186,9 +203,9 @@ void WinEDA_PrintFrame::SetOthersDatas()
...
@@ -186,9 +203,9 @@ void WinEDA_PrintFrame::SetOthersDatas()
for
(
ii
=
0
;
ii
<
NB_LAYERS
;
ii
++
,
mask
<<=
1
)
for
(
ii
=
0
;
ii
<
NB_LAYERS
;
ii
++
,
mask
<<=
1
)
{
{
m_BoxSelecLayer
[
ii
]
=
new
wxCheckBox
(
this
,
-
1
,
m_BoxSelecLayer
[
ii
]
=
new
wxCheckBox
(
this
,
-
1
,
#if defined(PCBNEW)
#if defined
(PCBNEW)
((
WinEDA_PcbFrame
*
)
m_Parent
)
->
m_Pcb
->
GetLayerName
(
ii
)
);
(
(
WinEDA_PcbFrame
*
)
m_Parent
)
->
m_Pcb
->
GetLayerName
(
ii
)
);
#else
#else
ReturnLayerName
(
ii
)
);
ReturnLayerName
(
ii
)
);
#endif
#endif
...
@@ -203,11 +220,28 @@ void WinEDA_PrintFrame::SetOthersDatas()
...
@@ -203,11 +220,28 @@ void WinEDA_PrintFrame::SetOthersDatas()
}
}
// Read the scale adjust option
// Read the scale adjust option
if
(
m_Parent
->
m_Parent
->
m_EDA_Config
)
if
(
config
)
{
config
->
Read
(
OPTKEY_PRINT_X_FINESCALE_ADJ
,
&
m_XScaleAdjust
);
config
->
Read
(
OPTKEY_PRINT_Y_FINESCALE_ADJ
,
&
m_YScaleAdjust
);
config
->
Read
(
OPTKEY_PRINT_SCALE
,
&
s_Scale_Select
);
s_SelectedLayers
=
0
;
for
(
int
layer
=
0
;
layer
<
NB_LAYERS
;
++
layer
)
{
{
m_Parent
->
m_Parent
->
m_EDA_Config
->
Read
(
wxT
(
"PrintXFineScaleAdj"
),
&
m_XScaleAdjust
);
wxString
layerKey
;
m_Parent
->
m_Parent
->
m_EDA_Config
->
Read
(
wxT
(
"PrintYFineScaleAdj"
),
&
m_YScaleAdjust
);
bool
option
;
m_Parent
->
m_Parent
->
m_EDA_Config
->
Read
(
wxT
(
"PrintScale"
),
&
s_Scale_Select
);
layerKey
.
Printf
(
OPTKEY_LAYERBASE
,
layer
);
option
=
false
;
if
(
config
->
Read
(
layerKey
,
&
option
)
)
{
m_BoxSelecLayer
[
layer
]
->
SetValue
(
option
);
if
(
option
)
s_SelectedLayers
|=
1
<<
layer
;
}
}
}
}
m_ScaleOption
->
SetSelection
(
s_Scale_Select
);
m_ScaleOption
->
SetSelection
(
s_Scale_Select
);
...
@@ -287,9 +321,15 @@ void WinEDA_PrintFrame::OnClosePrintDialog()
...
@@ -287,9 +321,15 @@ void WinEDA_PrintFrame::OnClosePrintDialog()
#ifdef PCBNEW
#ifdef PCBNEW
if
(
Config
)
if
(
Config
)
{
{
Config
->
Write
(
wxT
(
"PrintXFineScaleAdj"
),
m_XScaleAdjust
);
Config
->
Write
(
OPTKEY_PRINT_X_FINESCALE_ADJ
,
m_XScaleAdjust
);
Config
->
Write
(
wxT
(
"PrintYFineScaleAdj"
),
m_YScaleAdjust
);
Config
->
Write
(
OPTKEY_PRINT_Y_FINESCALE_ADJ
,
m_YScaleAdjust
);
Config
->
Write
(
wxT
(
"PrintScale"
),
s_Scale_Select
);
Config
->
Write
(
OPTKEY_PRINT_SCALE
,
s_Scale_Select
);
wxString
layerKey
;
for
(
int
layer
=
0
;
layer
<
NB_LAYERS
;
++
layer
)
{
layerKey
.
Printf
(
OPTKEY_LAYERBASE
,
layer
);
Config
->
Write
(
layerKey
,
m_BoxSelecLayer
[
layer
]
->
IsChecked
()
);
}
}
}
#endif
#endif
EndModal
(
0
);
EndModal
(
0
);
...
@@ -357,11 +397,11 @@ void WinEDA_PrintFrame::OnPrintSetup( wxCommandEvent& event )
...
@@ -357,11 +397,11 @@ void WinEDA_PrintFrame::OnPrintSetup( wxCommandEvent& event )
/* Open a dialog box for printer setup (printer options, page size ...)
/* Open a dialog box for printer setup (printer options, page size ...)
*/
*/
{
{
wxPrintDialogData
printDialogData
(
*
g_PrintData
);
wxPrintDialogData
printDialogData
(
*
g_PrintData
);
if
(
printDialogData
.
Ok
()
)
if
(
printDialogData
.
Ok
()
)
{
{
wxPrintDialog
printerDialog
(
this
,
&
printDialogData
);
wxPrintDialog
printerDialog
(
this
,
&
printDialogData
);
printerDialog
.
ShowModal
();
printerDialog
.
ShowModal
();
...
@@ -396,8 +436,8 @@ void WinEDA_PrintFrame::OnPrintPreview( wxCommandEvent& event )
...
@@ -396,8 +436,8 @@ void WinEDA_PrintFrame::OnPrintPreview( wxCommandEvent& event )
// Pass two printout objects: for preview, and possible printing.
// Pass two printout objects: for preview, and possible printing.
wxString
title
=
BuildPrintTitle
();
wxString
title
=
BuildPrintTitle
();
wxPrintPreview
*
preview
=
wxPrintPreview
*
preview
=
new
wxPrintPreview
(
new
EDA_Printout
(
this
,
m_Parent
,
title
,
print_ref
),
new
wxPrintPreview
(
new
EDA_Printout
(
this
,
m_Parent
,
title
,
print_ref
),
new
EDA_Printout
(
this
,
m_Parent
,
title
,
print_ref
),
g_PrintData
);
new
EDA_Printout
(
this
,
m_Parent
,
title
,
print_ref
),
g_PrintData
);
if
(
preview
==
NULL
)
if
(
preview
==
NULL
)
{
{
...
@@ -450,9 +490,9 @@ void WinEDA_PrintFrame::EDA_PrintPage( wxCommandEvent& event )
...
@@ -450,9 +490,9 @@ void WinEDA_PrintFrame::EDA_PrintPage( wxCommandEvent& event )
SetPenWidth
();
SetPenWidth
();
wxPrintDialogData
printDialogData
(
*
g_PrintData
);
wxPrintDialogData
printDialogData
(
*
g_PrintData
);
wxPrinter
printer
(
&
printDialogData
);
wxPrinter
printer
(
&
printDialogData
);
wxString
title
=
BuildPrintTitle
();
wxString
title
=
BuildPrintTitle
();
EDA_Printout
printout
(
this
,
m_Parent
,
title
,
print_ref
);
EDA_Printout
printout
(
this
,
m_Parent
,
title
,
print_ref
);
...
@@ -751,15 +791,13 @@ void EDA_Printout::DrawPage()
...
@@ -751,15 +791,13 @@ void EDA_Printout::DrawPage()
if
(
m_Print_Sheet_Ref
)
if
(
m_Print_Sheet_Ref
)
m_Parent
->
TraceWorkSheet
(
dc
,
ActiveScreen
,
0
);
m_Parent
->
TraceWorkSheet
(
dc
,
ActiveScreen
,
0
);
if
(
userscale
==
1.0
)
// Draw the Sheet refs at optimum scale, and board at 1.0 scale
if
(
userscale
==
1.0
)
// Draw the Sheet refs at optimum scale, and board at 1.0 scale
{
{
m_Print_Sheet_Ref
=
FALSE
;
dc
->
SetUserScale
(
accurate_Yscale
,
accurate_Yscale
);
dc
->
SetUserScale
(
accurate_Yscale
,
accurate_Yscale
);
}
}
if
(
s_PrintMirror
)
if
(
s_PrintMirror
)
{
// To plot mirror, we revere the y axis, and modify the plot y origin
{
// To plot mirror, we rever
s
e the y axis, and modify the plot y origin
double
sx
,
sy
;
double
sx
,
sy
;
dc
->
GetUserScale
(
&
sx
,
&
sy
);
dc
->
GetUserScale
(
&
sx
,
&
sy
);
...
...
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