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
f64b2827
Commit
f64b2827
authored
Jan 15, 2009
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
BUGFIX: .mdc is incomplete after 'archive footprint'
parent
94cf5b0d
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
545 additions
and
524 deletions
+545
-524
wxPcbStruct.h
include/wxPcbStruct.h
+437
-423
librairi.cpp
pcbnew/librairi.cpp
+95
-88
modedit.cpp
pcbnew/modedit.cpp
+13
-13
No files found.
include/wxPcbStruct.h
View file @
f64b2827
...
@@ -90,6 +90,7 @@ public:
...
@@ -90,6 +90,7 @@ public:
return
m_Pcb
;
return
m_Pcb
;
}
}
// General
// General
virtual
void
OnCloseWindow
(
wxCloseEvent
&
Event
)
=
0
;
virtual
void
OnCloseWindow
(
wxCloseEvent
&
Event
)
=
0
;
virtual
void
Process_Special_Functions
(
wxCommandEvent
&
event
)
=
0
;
virtual
void
Process_Special_Functions
(
wxCommandEvent
&
event
)
=
0
;
...
@@ -199,8 +200,20 @@ public:
...
@@ -199,8 +200,20 @@ public:
MODULE
*
Exchange_Module
(
wxWindow
*
winaff
,
MODULE
*
Exchange_Module
(
wxWindow
*
winaff
,
MODULE
*
old_module
,
MODULE
*
old_module
,
MODULE
*
new_module
);
MODULE
*
new_module
);
int
Save_1_Module
(
const
wxString
&
LibName
,
MODULE
*
Module
,
bool
Overwrite
,
bool
DisplayDialog
);
/** Function Save_Module_In_Library
* Save in an existing library a given footprint
* @param aLibName = name of the library to use
* @param aModule = the given footprint
* @param aOverwrite = true to overwrite an existing footprint, false to abort an existing footprint is found
* @param aDisplayDialog = true to display a dialog to enter or confirm the footprint name
* @param aCreateDocFile = true to creates the associated doc file
* @return : 1 if OK,0 if abort
*/
int
Save_Module_In_Library
(
const
wxString
&
aLibName
,
MODULE
*
aModule
,
bool
aOverwrite
,
bool
aDisplayDialog
,
bool
aCreateDocFile
);
void
Archive_Modules
(
const
wxString
&
LibName
,
bool
NewModulesOnly
);
void
Archive_Modules
(
const
wxString
&
LibName
,
bool
NewModulesOnly
);
MODULE
*
Select_1_Module_From_BOARD
(
BOARD
*
Pcb
);
MODULE
*
Select_1_Module_From_BOARD
(
BOARD
*
Pcb
);
MODULE
*
GetModuleByName
();
MODULE
*
GetModuleByName
();
...
@@ -215,8 +228,9 @@ public:
...
@@ -215,8 +228,9 @@ public:
void
Place_Module
(
MODULE
*
module
,
wxDC
*
DC
);
void
Place_Module
(
MODULE
*
module
,
wxDC
*
DC
);
void
InstallExchangeModuleFrame
(
MODULE
*
ExchangeModuleModule
,
void
InstallExchangeModuleFrame
(
MODULE
*
ExchangeModuleModule
,
wxDC
*
DC
,
const
wxPoint
&
pos
);
wxDC
*
DC
,
const
wxPoint
&
pos
);
// Graphic items edition:
// Graphic items edition:
void
InstallGraphicItemPropertiesDialog
(
DRAWSEGMENT
*
aItem
,
wxDC
*
aDC
);
void
InstallGraphicItemPropertiesDialog
(
DRAWSEGMENT
*
aItem
,
wxDC
*
aDC
);
// module texts
// module texts
void
RotateTextModule
(
TEXTE_MODULE
*
Text
,
wxDC
*
DC
);
void
RotateTextModule
(
TEXTE_MODULE
*
Text
,
wxDC
*
DC
);
...
@@ -294,7 +308,6 @@ public:
...
@@ -294,7 +308,6 @@ public:
void
Block_Duplicate
(
wxDC
*
DC
);
void
Block_Duplicate
(
wxDC
*
DC
);
// layerhandling:
// layerhandling:
// (See pcbnew/sel_layer.cpp for description of why null_layer parameter is provided)
// (See pcbnew/sel_layer.cpp for description of why null_layer parameter is provided)
int
SelectLayer
(
int
default_layer
,
int
min_layer
,
int
max_layer
,
int
SelectLayer
(
int
default_layer
,
int
min_layer
,
int
max_layer
,
...
@@ -539,13 +552,12 @@ public:
...
@@ -539,13 +552,12 @@ public:
void
Delete_Zone_Fill
(
wxDC
*
DC
,
SEGZONE
*
Track
,
long
aTimestamp
=
0
);
void
Delete_Zone_Fill
(
wxDC
*
DC
,
SEGZONE
*
Track
,
long
aTimestamp
=
0
);
/** Function Delete_LastCreatedCorner
/** Function Delete_LastCreatedCorner
* Used only while creating a new zone outline
* Used only while creating a new zone outline
* Remove and delete the current outline segment in progress
* Remove and delete the current outline segment in progress
* @return 0 if no corner in list, or corner number
* @return 0 if no corner in list, or corner number
*/
*/
int
Delete_LastCreatedCorner
(
wxDC
*
DC
);
int
Delete_LastCreatedCorner
(
wxDC
*
DC
);
/**
/**
* Function Begin_Zone
* Function Begin_Zone
...
@@ -683,10 +695,12 @@ public:
...
@@ -683,10 +695,12 @@ public:
// Autoplacement:
// Autoplacement:
void
AutoPlace
(
wxCommandEvent
&
event
);
void
AutoPlace
(
wxCommandEvent
&
event
);
/** function OnOrientFootprints
/** function OnOrientFootprints
* install the dialog box for the comman Orient Footprints
* install the dialog box for the comman Orient Footprints
*/
*/
void
OnOrientFootprints
(
void
);
void
OnOrientFootprints
(
void
);
/** function ReOrientModules
/** function ReOrientModules
* Set the orientation of footprints
* Set the orientation of footprints
* @param ModuleMask = mask (wildcard allowed) selection
* @param ModuleMask = mask (wildcard allowed) selection
...
@@ -731,7 +745,7 @@ public:
...
@@ -731,7 +745,7 @@ public:
void
Edit_Gap
(
wxDC
*
DC
,
MODULE
*
Module
);
void
Edit_Gap
(
wxDC
*
DC
,
MODULE
*
Module
);
MODULE
*
Create_MuWaveBasicShape
(
const
wxString
&
name
,
int
pad_count
);
MODULE
*
Create_MuWaveBasicShape
(
const
wxString
&
name
,
int
pad_count
);
MODULE
*
Create_MuWaveComponent
(
int
shape_type
);
MODULE
*
Create_MuWaveComponent
(
int
shape_type
);
MODULE
*
Create_MuWavePolygonShape
(
);
MODULE
*
Create_MuWavePolygonShape
(
);
void
Begin_Self
(
wxDC
*
DC
);
void
Begin_Self
(
wxDC
*
DC
);
MODULE
*
Genere_Self
(
wxDC
*
DC
);
MODULE
*
Genere_Self
(
wxDC
*
DC
);
...
...
pcbnew/librairi.cpp
View file @
f64b2827
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
#define OLD_EXT wxT( ".bak" )
#define OLD_EXT wxT( ".bak" )
#define FILETMP_EXT wxT( ".$$$" )
#define FILETMP_EXT wxT( ".$$$" )
#define EXPORT_IMPORT_LASTPATH_KEY wxT(
"import_last_path"
)
#define EXPORT_IMPORT_LASTPATH_KEY wxT(
"import_last_path"
)
/* Fonctions locales */
/* Fonctions locales */
static
bool
CreateDocLibrary
(
const
wxString
&
LibName
);
static
bool
CreateDocLibrary
(
const
wxString
&
LibName
);
...
@@ -49,7 +49,8 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC )
...
@@ -49,7 +49,8 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC )
FILE
*
dest
;
FILE
*
dest
;
MODULE
*
module
=
NULL
;
MODULE
*
module
=
NULL
;
bool
Footprint_Is_GPCB_Format
=
false
;
bool
Footprint_Is_GPCB_Format
=
false
;
wxString
mask
=
wxT
(
"*.*;"
);
mask
+=
EXT_CMP_MASK
;
wxString
mask
=
wxT
(
"*.*;"
);
mask
+=
EXT_CMP_MASK
;
wxString
LastOpenedPathForLoading
;
wxString
LastOpenedPathForLoading
;
wxConfig
*
Config
=
wxGetApp
().
m_EDA_Config
;
wxConfig
*
Config
=
wxGetApp
().
m_EDA_Config
;
...
@@ -64,7 +65,7 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC )
...
@@ -64,7 +65,7 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC )
mask
,
/* Masque d'affichage */
mask
,
/* Masque d'affichage */
this
,
this
,
wxFD_OPEN
,
wxFD_OPEN
,
TRUE
true
);
);
if
(
CmpFullFileName
==
wxEmptyString
)
if
(
CmpFullFileName
==
wxEmptyString
)
...
@@ -99,7 +100,7 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC )
...
@@ -99,7 +100,7 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC )
}
}
/* Read file: Search the description starting line (skip lib header)*/
/* Read file: Search the description starting line (skip lib header)*/
if
(
!
Footprint_Is_GPCB_Format
)
if
(
!
Footprint_Is_GPCB_Format
)
{
{
while
(
GetLine
(
dest
,
Line
,
&
NbLine
)
!=
NULL
)
while
(
GetLine
(
dest
,
Line
,
&
NbLine
)
!=
NULL
)
{
{
...
@@ -110,10 +111,10 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC )
...
@@ -110,10 +111,10 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC )
module
=
new
MODULE
(
GetBoard
()
);
module
=
new
MODULE
(
GetBoard
()
);
if
(
Footprint_Is_GPCB_Format
)
if
(
Footprint_Is_GPCB_Format
)
{
{
fclose
(
dest
);
fclose
(
dest
);
module
->
Read_GPCB_Descr
(
CmpFullFileName
);
module
->
Read_GPCB_Descr
(
CmpFullFileName
);
}
}
else
else
{
{
...
@@ -137,6 +138,7 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC )
...
@@ -137,6 +138,7 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC )
/************************************************************************/
/************************************************************************/
void
WinEDA_ModuleEditFrame
::
Export_Module
(
MODULE
*
ptmod
,
bool
createlib
)
void
WinEDA_ModuleEditFrame
::
Export_Module
(
MODULE
*
ptmod
,
bool
createlib
)
/************************************************************************/
/************************************************************************/
/**
/**
* Function Export_Module
* Function Export_Module
* Create a file containing only one footprint.
* Create a file containing only one footprint.
...
@@ -176,7 +178,7 @@ void WinEDA_ModuleEditFrame::Export_Module( MODULE* ptmod, bool createlib )
...
@@ -176,7 +178,7 @@ void WinEDA_ModuleEditFrame::Export_Module( MODULE* ptmod, bool createlib )
Mask
,
/* Masque d'affichage */
Mask
,
/* Masque d'affichage */
this
,
this
,
wxFD_SAVE
,
wxFD_SAVE
,
TRUE
true
);
);
if
(
FullFileName
.
IsEmpty
()
)
if
(
FullFileName
.
IsEmpty
()
)
...
@@ -198,7 +200,7 @@ void WinEDA_ModuleEditFrame::Export_Module( MODULE* ptmod, bool createlib )
...
@@ -198,7 +200,7 @@ void WinEDA_ModuleEditFrame::Export_Module( MODULE* ptmod, bool createlib )
return
;
return
;
}
}
if
(
!
createlib
&&
Config
)
// Save file path
if
(
!
createlib
&&
Config
)
// Save file path
{
{
path
=
wxPathOnly
(
FullFileName
);
path
=
wxPathOnly
(
FullFileName
);
Config
->
Write
(
EXPORT_IMPORT_LASTPATH_KEY
,
path
);
Config
->
Write
(
EXPORT_IMPORT_LASTPATH_KEY
,
path
);
...
@@ -395,7 +397,7 @@ void WinEDA_BasePcbFrame::Archive_Modules( const wxString& LibName,
...
@@ -395,7 +397,7 @@ void WinEDA_BasePcbFrame::Archive_Modules( const wxString& LibName,
/*
/*
* Sauve en Librairie:
* Sauve en Librairie:
* tous les nouveaux modules ( c.a.d. les modules
* tous les nouveaux modules ( c.a.d. les modules
* n'existant pas deja (si NewModulesOnly ==
TRUE
)
* n'existant pas deja (si NewModulesOnly ==
true
)
* tous les modules (si NewModulesOnly == FALSE)
* tous les modules (si NewModulesOnly == FALSE)
*/
*/
{
{
...
@@ -420,7 +422,7 @@ void WinEDA_BasePcbFrame::Archive_Modules( const wxString& LibName,
...
@@ -420,7 +422,7 @@ void WinEDA_BasePcbFrame::Archive_Modules( const wxString& LibName,
Mask
,
/* Masque d'affichage */
Mask
,
/* Masque d'affichage */
this
,
this
,
wxFD_SAVE
,
wxFD_SAVE
,
TRUE
true
);
);
if
(
FullFileName
.
IsEmpty
()
)
if
(
FullFileName
.
IsEmpty
()
)
...
@@ -467,31 +469,33 @@ void WinEDA_BasePcbFrame::Archive_Modules( const wxString& LibName,
...
@@ -467,31 +469,33 @@ void WinEDA_BasePcbFrame::Archive_Modules( const wxString& LibName,
Module
=
(
MODULE
*
)
GetBoard
()
->
m_Modules
;
Module
=
(
MODULE
*
)
GetBoard
()
->
m_Modules
;
for
(
ii
=
1
;
Module
!=
NULL
;
ii
++
,
Module
=
(
MODULE
*
)
Module
->
Next
()
)
for
(
ii
=
1
;
Module
!=
NULL
;
ii
++
,
Module
=
(
MODULE
*
)
Module
->
Next
()
)
{
{
if
(
Save_
1_Module
(
FullFileName
,
Module
,
if
(
Save_
Module_In_Library
(
FullFileName
,
Module
,
NewModulesOnly
?
FALSE
:
TRUE
,
FALSE
)
==
0
)
NewModulesOnly
?
FALSE
:
true
,
FALSE
,
false
)
==
0
)
break
;
break
;
DisplayActivity
(
(
int
)
(
ii
*
Pas
),
wxEmptyString
);
DisplayActivity
(
(
int
)
(
ii
*
Pas
),
wxEmptyString
);
/* Tst demande d'arret de sauvegarde ( key ESCAPE actionnee ) */
/* Tst demande d'arret de sauvegarde ( key ESCAPE actionnee ) */
if
(
DrawPanel
->
m_AbortRequest
)
if
(
DrawPanel
->
m_AbortRequest
)
break
;
break
;
}
}
CreateDocLibrary
(
Lib
Name
);
CreateDocLibrary
(
FullFile
Name
);
}
}
/*****************************************************************/
/*****************************************************************/
int
WinEDA_BasePcbFrame
::
Save_1_Module
(
const
wxString
&
LibName
,
int
WinEDA_BasePcbFrame
::
Save_Module_In_Library
(
const
wxString
&
aLibName
,
MODULE
*
Module
,
bool
Overwrite
,
bool
DisplayDialog
)
MODULE
*
aModule
,
bool
aOverwrite
,
bool
aDisplayDialog
,
bool
aCreateDocFile
)
/*****************************************************************/
/*****************************************************************/
/*
/** Function Save_Module_In_Library
* sauve en Librairie le module Module:
* Save in an existing library a given footprint
* si no_replace == TRUE, s'il est nouveau.
* @param aLibName = name of the library to use
*
* @param aModule = the given footprint
* retourne
* @param aOverwrite = true to overwrite an existing footprint, false to abort an existing footprint is found
* 1 si OK
* @param aDisplayDialog = true to display a dialog to enter or confirm the footprint name
* 0 si abort ou probleme
* @param aCreateDocFile = true to creates the associated doc file
* @return : 1 if OK, 0 if abort
*/
*/
{
{
int
newmodule
,
end
;
int
newmodule
,
end
;
...
@@ -500,49 +504,49 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
...
@@ -500,49 +504,49 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
wxString
Name_Cmp
;
wxString
Name_Cmp
;
wxString
NewLib
,
OldLib
,
msg
;
wxString
NewLib
,
OldLib
,
msg
;
FILE
*
lib_module
,
*
dest
;
FILE
*
lib_module
,
*
dest
;
bool
added
=
TRUE
;
bool
added
=
true
;
Module
->
Display_Infos
(
this
);
a
Module
->
Display_Infos
(
this
);
if
(
!
wxFileExists
(
LibName
)
)
if
(
!
wxFileExists
(
a
LibName
)
)
{
{
msg
.
Printf
(
_
(
"Library %s not found"
),
LibName
.
GetData
()
);
msg
.
Printf
(
_
(
"Library %s not found"
),
a
LibName
.
GetData
()
);
DisplayError
(
this
,
msg
);
DisplayError
(
this
,
msg
);
return
0
;
return
0
;
}
}
/*
Demande du nom du composant en librairie
*/
/*
Ask for the footprint name in lib
*/
Name_Cmp
=
Module
->
m_LibRef
;
Name_Cmp
=
a
Module
->
m_LibRef
;
if
(
DisplayDialog
)
if
(
a
DisplayDialog
)
{
{
Get_Message
(
_
(
"Name:"
),
_
(
"Save module"
),
Name_Cmp
,
this
);
Get_Message
(
_
(
"Name:"
),
_
(
"Save module"
),
Name_Cmp
,
this
);
if
(
Name_Cmp
.
IsEmpty
()
)
if
(
Name_Cmp
.
IsEmpty
()
)
return
0
;
return
0
;
Name_Cmp
.
Trim
(
TRUE
);
Name_Cmp
.
Trim
(
true
);
Name_Cmp
.
Trim
(
FALSE
);
Name_Cmp
.
Trim
(
FALSE
);
Module
->
m_LibRef
=
Name_Cmp
;
a
Module
->
m_LibRef
=
Name_Cmp
;
}
}
if
(
(
lib_module
=
wxFopen
(
LibName
,
wxT
(
"rt"
)
)
)
==
NULL
)
if
(
(
lib_module
=
wxFopen
(
a
LibName
,
wxT
(
"rt"
)
)
)
==
NULL
)
{
{
msg
.
Printf
(
_
(
"Unable to open %s"
),
LibName
.
GetData
()
);
msg
.
Printf
(
_
(
"Unable to open %s"
),
a
LibName
.
GetData
()
);
DisplayError
(
this
,
msg
);
DisplayError
(
this
,
msg
);
return
0
;
return
0
;
}
}
/* l
ecture entete : ENTETE_LIBRAIRIE
*/
/* l
Read library file : library header
*/
GetLine
(
lib_module
,
Line
,
&
LineNum
);
GetLine
(
lib_module
,
Line
,
&
LineNum
);
if
(
strnicmp
(
Line
,
ENTETE_LIBRAIRIE
,
L_ENTETE_LIB
)
!=
0
)
if
(
strnicmp
(
Line
,
ENTETE_LIBRAIRIE
,
L_ENTETE_LIB
)
!=
0
)
{
{
fclose
(
lib_module
);
fclose
(
lib_module
);
msg
.
Printf
(
_
(
"File %s is not a eeschema library"
),
LibName
.
GetData
()
);
msg
.
Printf
(
_
(
"File %s is not a eeschema library"
),
a
LibName
.
GetData
()
);
DisplayError
(
this
,
msg
);
DisplayError
(
this
,
msg
);
return
0
;
return
0
;
}
}
/*
lecture des noms des composants - verif si le module est deja exista
nt */
/*
Reaf footprints in lib: - search for an existing footpri
nt */
newmodule
=
1
;
end
=
0
;
newmodule
=
1
;
end
=
0
;
while
(
!
end
&&
GetLine
(
lib_module
,
Line
,
&
LineNum
)
)
while
(
!
end
&&
GetLine
(
lib_module
,
Line
,
&
LineNum
)
)
{
{
...
@@ -560,17 +564,17 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
...
@@ -560,17 +564,17 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
StrPurge
(
Line
);
StrPurge
(
Line
);
msg
=
CONV_FROM_UTF8
(
Line
);
msg
=
CONV_FROM_UTF8
(
Line
);
if
(
Name_Cmp
.
CmpNoCase
(
msg
)
==
0
)
/*
composant trouve
*/
if
(
Name_Cmp
.
CmpNoCase
(
msg
)
==
0
)
/*
an existing footprint is found
*/
{
{
added
=
FALSE
;
added
=
FALSE
;
newmodule
=
0
;
newmodule
=
0
;
if
(
DisplayDialog
)
if
(
a
DisplayDialog
)
{
{
msg
=
_
(
"Module exists
\n
Line: "
);
msg
=
_
(
"Module exists
\n
Line: "
);
msg
<<
LineNum
;
msg
<<
LineNum
;
Affiche_Message
(
msg
);
Affiche_Message
(
msg
);
}
}
if
(
!
Overwrite
)
/* le module n'est pas a sauver car deja existant
*/
if
(
!
aOverwrite
)
/* lDo not save the given footprint: an old one exists
*/
{
{
fclose
(
lib_module
);
return
1
;
fclose
(
lib_module
);
return
1
;
}
}
...
@@ -581,15 +585,15 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
...
@@ -581,15 +585,15 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
fclose
(
lib_module
);
fclose
(
lib_module
);
/* Creat
ion de la nouvelle librairie
*/
/* Creat
es the new library
*/
if
(
(
lib_module
=
wxFopen
(
LibName
,
wxT
(
"rt"
)
)
)
==
NULL
)
if
(
(
lib_module
=
wxFopen
(
a
LibName
,
wxT
(
"rt"
)
)
)
==
NULL
)
{
{
DisplayError
(
this
,
wxT
(
"Librairi.cpp: Error oldlib not found"
)
);
DisplayError
(
this
,
wxT
(
"Librairi.cpp: Error oldlib not found"
)
);
return
0
;
return
0
;
}
}
NewLib
=
LibName
;
NewLib
=
a
LibName
;
ChangeFileNameExt
(
NewLib
,
FILETMP_EXT
);
ChangeFileNameExt
(
NewLib
,
FILETMP_EXT
);
if
(
(
dest
=
wxFopen
(
NewLib
,
wxT
(
"w+t"
)
)
)
==
NULL
)
if
(
(
dest
=
wxFopen
(
NewLib
,
wxT
(
"w+t"
)
)
)
==
NULL
)
{
{
...
@@ -601,7 +605,7 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
...
@@ -601,7 +605,7 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
wxBeginBusyCursor
();
wxBeginBusyCursor
();
/* Creat
ion de l'entete avec nouvelle
date */
/* Creat
e the library header with a new
date */
fprintf
(
dest
,
ENTETE_LIBRAIRIE
);
fprintf
(
dest
,
ENTETE_LIBRAIRIE
);
fprintf
(
dest
,
" %s
\n
$INDEX
\n
"
,
DateAndTime
(
Line
)
);
fprintf
(
dest
,
" %s
\n
$INDEX
\n
"
,
DateAndTime
(
Line
)
);
...
@@ -629,7 +633,7 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
...
@@ -629,7 +633,7 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
fprintf
(
dest
,
"$EndINDEX
\n
"
);
fprintf
(
dest
,
"$EndINDEX
\n
"
);
/* Cop
ie des modules, jusqu'au module a supprimer
*/
/* Cop
y footprints, until the old footprint to delete
*/
while
(
GetLine
(
lib_module
,
Line
,
&
LineNum
)
)
while
(
GetLine
(
lib_module
,
Line
,
&
LineNum
)
)
{
{
StrPurge
(
Line
);
StrPurge
(
Line
);
...
@@ -641,7 +645,7 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
...
@@ -641,7 +645,7 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
msg
=
CONV_FROM_UTF8
(
Name
);
msg
=
CONV_FROM_UTF8
(
Name
);
if
(
msg
.
CmpNoCase
(
Name_Cmp
)
==
0
)
if
(
msg
.
CmpNoCase
(
Name_Cmp
)
==
0
)
{
{
/* s
uppression ancien module
*/
/* s
kip old footprint descr (delete from the lib)
*/
while
(
GetLine
(
lib_module
,
Line
,
&
LineNum
)
)
while
(
GetLine
(
lib_module
,
Line
,
&
LineNum
)
)
{
{
if
(
strnicmp
(
Line
,
"$EndMODULE"
,
9
)
==
0
)
if
(
strnicmp
(
Line
,
"$EndMODULE"
,
9
)
==
0
)
...
@@ -654,40 +658,42 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
...
@@ -654,40 +658,42 @@ int WinEDA_BasePcbFrame::Save_1_Module( const wxString& LibName,
fprintf
(
dest
,
"%s
\n
"
,
Line
);
fprintf
(
dest
,
"%s
\n
"
,
Line
);
}
}
/*
Ecriture du module ( en fin de librairie
) */
/*
Write the new footprint ( append it to the list of footprint
) */
tmp
=
Module
->
m_TimeStamp
;
Module
->
m_TimeStamp
=
0
;
tmp
=
aModule
->
m_TimeStamp
;
a
Module
->
m_TimeStamp
=
0
;
Module
->
Save
(
dest
);
a
Module
->
Save
(
dest
);
fprintf
(
dest
,
"$EndLIBRARY
\n
"
);
fprintf
(
dest
,
"$EndLIBRARY
\n
"
);
Module
->
m_TimeStamp
=
tmp
;
a
Module
->
m_TimeStamp
=
tmp
;
fclose
(
dest
);
fclose
(
lib_module
);
fclose
(
dest
);
fclose
(
lib_module
);
wxEndBusyCursor
();
wxEndBusyCursor
();
/*
L'ancien fichier librairie est renomme en
.bak */
/*
The old library file is renamed
.bak */
OldLib
=
LibName
;
OldLib
=
a
LibName
;
ChangeFileNameExt
(
OldLib
,
OLD_EXT
);
ChangeFileNameExt
(
OldLib
,
OLD_EXT
);
if
(
wxFileExists
(
OldLib
)
)
if
(
wxFileExists
(
OldLib
)
)
wxRemoveFile
(
OldLib
);
wxRemoveFile
(
OldLib
);
if
(
!
wxRenameFile
(
LibName
,
OldLib
)
)
if
(
!
wxRenameFile
(
a
LibName
,
OldLib
)
)
DisplayError
(
this
,
wxT
(
"Librairi.cpp: rename .bak err"
)
);
DisplayError
(
this
,
wxT
(
"Librairi.cpp: rename .bak err"
)
);
/*
Le nouveau fichier librairie est renomme
*/
/*
The new library file is renamed
*/
if
(
!
wxRenameFile
(
NewLib
,
LibName
)
)
if
(
!
wxRenameFile
(
NewLib
,
a
LibName
)
)
{
{
DisplayError
(
this
,
wxT
(
"Librairi.cpp: rename NewLib err"
)
);
DisplayError
(
this
,
wxT
(
"Librairi.cpp: rename NewLib err"
)
);
return
0
;
return
0
;
}
}
CreateDocLibrary
(
OldLib
);
/* creates the new .dcm doc file corresponding to the new library */
if
(
aCreateDocFile
)
CreateDocLibrary
(
aLibName
);
if
(
DisplayDialog
)
if
(
a
DisplayDialog
)
{
{
msg
=
_
(
"Component "
);
msg
+=
Name_Cmp
;
msg
=
_
(
"Component "
);
msg
+=
Name_Cmp
;
msg
+=
added
?
_
(
" added in "
)
:
_
(
" replaced in "
);
msg
+=
added
?
_
(
" added in "
)
:
_
(
" replaced in "
);
msg
+=
LibName
;
msg
+=
a
LibName
;
Affiche_Message
(
msg
);
Affiche_Message
(
msg
);
}
}
...
@@ -713,15 +719,15 @@ MODULE* WinEDA_BasePcbFrame::Create_1_Module( wxDC* DC, const wxString& module_n
...
@@ -713,15 +719,15 @@ MODULE* WinEDA_BasePcbFrame::Create_1_Module( wxDC* DC, const wxString& module_n
/* Ask fo the new module reference */
/* Ask fo the new module reference */
if
(
module_name
.
IsEmpty
()
)
if
(
module_name
.
IsEmpty
()
)
{
{
if
(
Get_Message
(
_
(
"Module Reference:"
),
_
(
"Module Creation:"
),
Line
,
this
)
!=
0
)
if
(
Get_Message
(
_
(
"Module Reference:"
),
_
(
"Module Creation:"
),
Line
,
this
)
!=
0
)
{
{
DisplayInfo
(
this
,
_
(
"No reference, aborted"
)
);
DisplayInfo
(
this
,
_
(
"No reference, aborted"
)
);
return
NULL
;
return
NULL
;
}
}
}
}
else
else
Line
=
module_name
;
Line
=
module_name
;
Line
.
Trim
(
TRUE
);
Line
.
Trim
(
true
);
Line
.
Trim
(
FALSE
);
Line
.
Trim
(
FALSE
);
// Creates the new module and add it to the head of the linked list of modules
// Creates the new module and add it to the head of the linked list of modules
...
@@ -747,7 +753,7 @@ MODULE* WinEDA_BasePcbFrame::Create_1_Module( wxDC* DC, const wxString& module_n
...
@@ -747,7 +753,7 @@ MODULE* WinEDA_BasePcbFrame::Create_1_Module( wxDC* DC, const wxString& module_n
Module
->
m_Value
->
SetWidth
(
ModuleTextWidth
);
Module
->
m_Value
->
SetWidth
(
ModuleTextWidth
);
Module
->
m_Value
->
m_Size
=
ModuleTextSize
;
Module
->
m_Value
->
m_Size
=
ModuleTextSize
;
Module
->
SetPosition
(
wxPoint
(
0
,
0
)
);
Module
->
SetPosition
(
wxPoint
(
0
,
0
)
);
Module
->
Display_Infos
(
this
);
Module
->
Display_Infos
(
this
);
return
Module
;
return
Module
;
...
@@ -762,7 +768,8 @@ void WinEDA_ModuleEditFrame::Select_Active_Library()
...
@@ -762,7 +768,8 @@ void WinEDA_ModuleEditFrame::Select_Active_Library()
return
;
return
;
WinEDAListBox
*
LibListBox
=
new
WinEDAListBox
(
this
,
_
(
"Active Lib:"
),
WinEDAListBox
*
LibListBox
=
new
WinEDAListBox
(
this
,
_
(
"Active Lib:"
),
NULL
,
m_CurrentLib
,
NULL
,
wxColour
(
200
,
200
,
255
)
);
NULL
,
m_CurrentLib
,
NULL
,
wxColour
(
200
,
200
,
255
)
);
LibListBox
->
InsertItems
(
g_LibName_List
);
LibListBox
->
InsertItems
(
g_LibName_List
);
...
@@ -887,7 +894,7 @@ static bool CreateDocLibrary( const wxString& LibName )
...
@@ -887,7 +894,7 @@ static bool CreateDocLibrary( const wxString& LibName )
Doc
=
CONV_FROM_UTF8
(
StrPurge
(
Line
+
3
)
);
Doc
=
CONV_FROM_UTF8
(
StrPurge
(
Line
+
3
)
);
}
}
if
(
(
Name
!=
wxEmptyString
)
&&
(
(
Doc
!=
wxEmptyString
)
||
(
KeyWord
!=
wxEmptyString
)
)
)
/* Generation de la doc du composant */
if
(
(
Name
!=
wxEmptyString
)
&&
(
(
Doc
!=
wxEmptyString
)
||
(
KeyWord
!=
wxEmptyString
)
)
)
/* Generation de la doc du composant */
{
{
fprintf
(
LibDoc
,
"#
\n
$MODULE %s
\n
"
,
CONV_TO_UTF8
(
Name
)
);
fprintf
(
LibDoc
,
"#
\n
$MODULE %s
\n
"
,
CONV_TO_UTF8
(
Name
)
);
fprintf
(
LibDoc
,
"Li %s
\n
"
,
CONV_TO_UTF8
(
Name
)
);
fprintf
(
LibDoc
,
"Li %s
\n
"
,
CONV_TO_UTF8
(
Name
)
);
...
@@ -919,5 +926,5 @@ static bool CreateDocLibrary( const wxString& LibName )
...
@@ -919,5 +926,5 @@ static bool CreateDocLibrary( const wxString& LibName )
fclose
(
LibMod
);
fclose
(
LibMod
);
fprintf
(
LibDoc
,
"#
\n
$EndLIBDOC
\n
"
);
fprintf
(
LibDoc
,
"#
\n
$EndLIBDOC
\n
"
);
fclose
(
LibDoc
);
fclose
(
LibDoc
);
return
TRUE
;
return
true
;
}
}
pcbnew/modedit.cpp
View file @
f64b2827
...
@@ -192,7 +192,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -192,7 +192,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
switch
(
id
)
// Traitement des commandes
switch
(
id
)
// Traitement des commandes
{
{
case
ID_EXIT
:
case
ID_EXIT
:
Close
(
TRUE
);
Close
(
true
);
break
;
break
;
case
ID_LIBEDIT_SELECT_CURRENT_LIB
:
case
ID_LIBEDIT_SELECT_CURRENT_LIB
:
...
@@ -209,7 +209,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -209,7 +209,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
case
ID_MODEDIT_NEW_MODULE
:
case
ID_MODEDIT_NEW_MODULE
:
{
{
Clear_Pcb
(
TRUE
);
Clear_Pcb
(
true
);
GetScreen
()
->
ClearUndoRedoList
();
GetScreen
()
->
ClearUndoRedoList
();
SetCurItem
(
NULL
);
SetCurItem
(
NULL
);
GetScreen
()
->
m_Curseur
=
wxPoint
(
0
,
0
);
GetScreen
()
->
m_Curseur
=
wxPoint
(
0
,
0
);
...
@@ -220,7 +220,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -220,7 +220,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
module
->
SetPosition
(
wxPoint
(
0
,
0
)
);
module
->
SetPosition
(
wxPoint
(
0
,
0
)
);
if
(
GetBoard
()
->
m_Modules
)
if
(
GetBoard
()
->
m_Modules
)
GetBoard
()
->
m_Modules
->
m_Flags
=
0
;
GetBoard
()
->
m_Modules
->
m_Flags
=
0
;
Zoom_Automatique
(
TRUE
);
Zoom_Automatique
(
true
);
}
}
}
}
break
;
break
;
...
@@ -229,7 +229,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -229,7 +229,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
{
{
wxString
Line
;
wxString
Line
;
Line
=
MakeFileName
(
g_RealLibDirBuffer
,
m_CurrentLib
.
GetData
(),
LibExtBuffer
);
Line
=
MakeFileName
(
g_RealLibDirBuffer
,
m_CurrentLib
.
GetData
(),
LibExtBuffer
);
Save_
1_Module
(
Line
,
GetBoard
()
->
m_Modules
,
TRUE
,
TRUE
);
Save_
Module_In_Library
(
Line
,
GetBoard
()
->
m_Modules
,
true
,
true
,
true
);
GetScreen
()
->
ClrModify
();
GetScreen
()
->
ClrModify
();
}
}
break
;
break
;
...
@@ -315,13 +315,13 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -315,13 +315,13 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
case
ID_LIBEDIT_IMPORT_PART
:
case
ID_LIBEDIT_IMPORT_PART
:
GetScreen
()
->
ClearUndoRedoList
();
GetScreen
()
->
ClearUndoRedoList
();
SetCurItem
(
NULL
);
SetCurItem
(
NULL
);
Clear_Pcb
(
TRUE
);
Clear_Pcb
(
true
);
GetScreen
()
->
m_Curseur
=
wxPoint
(
0
,
0
);
GetScreen
()
->
m_Curseur
=
wxPoint
(
0
,
0
);
Import_Module
(
&
dc
);
Import_Module
(
&
dc
);
if
(
GetBoard
()
->
m_Modules
)
if
(
GetBoard
()
->
m_Modules
)
GetBoard
()
->
m_Modules
->
m_Flags
=
0
;
GetBoard
()
->
m_Modules
->
m_Flags
=
0
;
GetScreen
()
->
ClrModify
();
GetScreen
()
->
ClrModify
();
Zoom_Automatique
(
TRUE
);
Zoom_Automatique
(
true
);
if
(
m_Draw3DFrame
)
if
(
m_Draw3DFrame
)
m_Draw3DFrame
->
NewDisplay
();
m_Draw3DFrame
->
NewDisplay
();
break
;
break
;
...
@@ -333,7 +333,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -333,7 +333,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
case
ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART
:
case
ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART
:
if
(
GetBoard
()
->
m_Modules
)
if
(
GetBoard
()
->
m_Modules
)
Export_Module
(
GetBoard
()
->
m_Modules
,
TRUE
);
Export_Module
(
GetBoard
()
->
m_Modules
,
true
);
break
;
break
;
case
ID_MODEDIT_SHEET_SET
:
case
ID_MODEDIT_SHEET_SET
:
...
@@ -342,7 +342,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -342,7 +342,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
case
ID_MODEDIT_LOAD_MODULE
:
case
ID_MODEDIT_LOAD_MODULE
:
GetScreen
()
->
ClearUndoRedoList
();
GetScreen
()
->
ClearUndoRedoList
();
SetCurItem
(
NULL
);
SetCurItem
(
NULL
);
Clear_Pcb
(
TRUE
);
Clear_Pcb
(
true
);
GetScreen
()
->
m_Curseur
=
wxPoint
(
0
,
0
);
GetScreen
()
->
m_Curseur
=
wxPoint
(
0
,
0
);
Load_Module_From_Library
(
m_CurrentLib
,
&
dc
);
Load_Module_From_Library
(
m_CurrentLib
,
&
dc
);
if
(
GetBoard
()
->
m_Modules
)
if
(
GetBoard
()
->
m_Modules
)
...
@@ -365,7 +365,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -365,7 +365,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
}
}
}
}
GetScreen
()
->
ClrModify
();
GetScreen
()
->
ClrModify
();
Zoom_Automatique
(
TRUE
);
Zoom_Automatique
(
true
);
if
(
m_Draw3DFrame
)
if
(
m_Draw3DFrame
)
m_Draw3DFrame
->
NewDisplay
();
m_Draw3DFrame
->
NewDisplay
();
break
;
break
;
...
@@ -425,12 +425,12 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -425,12 +425,12 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
case
ID_POPUP_PCB_ROTATE_MODULE_COUNTERCLOCKWISE
:
case
ID_POPUP_PCB_ROTATE_MODULE_COUNTERCLOCKWISE
:
DrawPanel
->
MouseToCursorSchema
();
DrawPanel
->
MouseToCursorSchema
();
Rotate_Module
(
&
dc
,
(
MODULE
*
)
GetScreen
()
->
GetCurItem
(),
900
,
TRUE
);
Rotate_Module
(
&
dc
,
(
MODULE
*
)
GetScreen
()
->
GetCurItem
(),
900
,
true
);
break
;
break
;
case
ID_POPUP_PCB_ROTATE_MODULE_CLOCKWISE
:
case
ID_POPUP_PCB_ROTATE_MODULE_CLOCKWISE
:
DrawPanel
->
MouseToCursorSchema
();
DrawPanel
->
MouseToCursorSchema
();
Rotate_Module
(
&
dc
,
(
MODULE
*
)
GetScreen
()
->
GetCurItem
(),
-
900
,
TRUE
);
Rotate_Module
(
&
dc
,
(
MODULE
*
)
GetScreen
()
->
GetCurItem
(),
-
900
,
true
);
break
;
break
;
case
ID_POPUP_PCB_EDIT_MODULE
:
case
ID_POPUP_PCB_EDIT_MODULE
:
...
@@ -587,12 +587,12 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
...
@@ -587,12 +587,12 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
case
ID_MODEDIT_UNDO
:
case
ID_MODEDIT_UNDO
:
GetComponentFromUndoList
();
GetComponentFromUndoList
();
DrawPanel
->
Refresh
(
TRUE
);
DrawPanel
->
Refresh
(
true
);
break
;
break
;
case
ID_MODEDIT_REDO
:
case
ID_MODEDIT_REDO
:
GetComponentFromRedoList
();
GetComponentFromRedoList
();
DrawPanel
->
Refresh
(
TRUE
);
DrawPanel
->
Refresh
(
true
);
break
;
break
;
case
ID_POPUP_PLACE_BLOCK
:
case
ID_POPUP_PLACE_BLOCK
:
...
...
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