eeschema: code cleaning
This commit is contained in:
parent
2057c81582
commit
bf688ea1cc
|
@ -15,6 +15,7 @@ set(EESCHEMA_SRCS
|
|||
class_drawsheet.cpp
|
||||
class_hierarchical_PIN_sheet.cpp
|
||||
class_pin.cpp
|
||||
class_library.cpp
|
||||
class_schematic_items.cpp
|
||||
class_screen.cpp
|
||||
class_text-label.cpp
|
||||
|
@ -56,7 +57,6 @@ set(EESCHEMA_SRCS
|
|||
hotkeys.cpp
|
||||
libalias.cpp
|
||||
libarch.cpp
|
||||
libclass.cpp
|
||||
libedit.cpp
|
||||
libedit_onleftclick.cpp
|
||||
libedit_onrightclick.cpp
|
||||
|
|
|
@ -45,8 +45,21 @@ public:
|
|||
public:
|
||||
LibraryStruct( int type, const wxString& name, const wxString& fullname );
|
||||
~LibraryStruct();
|
||||
bool WriteHeader( FILE* file );
|
||||
/**
|
||||
* Function SaveLibrary
|
||||
* writes the data structures for this object out to 2 file
|
||||
* the library in "*.lib" format.
|
||||
* the doc file in "*.dcm" format.
|
||||
* creates a backup file for each file (.bak and .bck)
|
||||
* @param aFullFileName The full lib filename.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
bool SaveLibrary( const wxString& aFullFileName );
|
||||
|
||||
bool ReadHeader( FILE* file, int* LineNum );
|
||||
|
||||
private:
|
||||
bool WriteHeader( FILE* file );
|
||||
};
|
||||
|
||||
|
||||
|
@ -73,8 +86,15 @@ public:
|
|||
return wxT( "LibCmpEntry" );
|
||||
}
|
||||
|
||||
|
||||
bool WriteDescr( FILE* File );
|
||||
/**
|
||||
* Function SaveLibrary
|
||||
* writes the data structures for this object out to 2 FILE in "*.lib" and ".dcm" format.
|
||||
* the main file (.lib) is the library content (set of components)
|
||||
* the second file (.dcm)is the auxiliary file that contents the keywords and description for components)
|
||||
* @param FullFileName the new full filename (*.lib).
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
bool SaveLibrary( const wxString& FullFileName );
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -761,9 +761,9 @@ int LibDrawPin::ReturnPinDrawOrient( int TransMat[2][2] )
|
|||
}
|
||||
|
||||
|
||||
/****************************************************/
|
||||
void LibDrawPin::ReturnPinStringNum( wxString& buffer )
|
||||
/****************************************************/
|
||||
/***********************************************************/
|
||||
void LibDrawPin::ReturnPinStringNum( wxString& buffer ) const
|
||||
/***********************************************************/
|
||||
|
||||
/* fill the buffer with pin num as a wxString
|
||||
* Pin num is coded as a long
|
||||
|
@ -772,7 +772,7 @@ void LibDrawPin::ReturnPinStringNum( wxString& buffer )
|
|||
{
|
||||
char ascii_buf[5];
|
||||
|
||||
strncpy( ascii_buf, (char*) &m_PinNum, 4 );
|
||||
memcpy(ascii_buf, &m_PinNum , 4);
|
||||
ascii_buf[4] = 0;
|
||||
|
||||
buffer = CONV_FROM_UTF8( ascii_buf );
|
||||
|
|
|
@ -151,7 +151,7 @@ public:
|
|||
* @param aOffset = offset to draw
|
||||
* @param aColor = -1 to use the normal body item color, or use this color if >= 0
|
||||
* @param aDrawMode = GR_OR, GR_XOR, ...
|
||||
* @param aData = pointer used to pass others parametres, depending on body items.
|
||||
* @param aData = value or pointer used to pass others parametres, depending on body items.
|
||||
* used for some items to force to force no fill mode
|
||||
* ( has meaning only for items what can be filled ). used in printing or moving objects mode
|
||||
* or to pass refernce to the lib component for pins
|
||||
|
@ -160,6 +160,14 @@ public:
|
|||
virtual void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
||||
int aDrawMode, void * aData, int aTransformMatrix[2][2] ) = 0;
|
||||
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
virtual bool Save( FILE* aFile ) const = 0;
|
||||
|
||||
void Display_Infos_DrawEntry( WinEDA_DrawFrame* frame );
|
||||
};
|
||||
|
||||
|
@ -189,15 +197,21 @@ public:
|
|||
{
|
||||
return wxT( "LibDrawPin" );
|
||||
}
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
virtual bool Save( FILE* aFile ) const;
|
||||
|
||||
|
||||
LibDrawPin* GenCopy();
|
||||
bool WriteDescr( FILE* File );
|
||||
void Display_Infos( WinEDA_DrawFrame* frame );
|
||||
wxPoint ReturnPinEndPoint();
|
||||
|
||||
int ReturnPinDrawOrient( int TransMat[2][2] );
|
||||
void ReturnPinStringNum( wxString& buffer );
|
||||
void ReturnPinStringNum( wxString& buffer ) const;
|
||||
void SetPinNumFromString( wxString& buffer );
|
||||
|
||||
void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
||||
|
@ -234,10 +248,16 @@ public:
|
|||
{
|
||||
return wxT( "LibDrawArc" );
|
||||
}
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
virtual bool Save( FILE* aFile ) const;
|
||||
|
||||
|
||||
LibDrawArc* GenCopy();
|
||||
bool WriteDescr( FILE* File );
|
||||
void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
||||
int aDrawMode, void * aData, int aTransformMatrix[2][2] );
|
||||
};
|
||||
|
@ -257,10 +277,16 @@ public:
|
|||
{
|
||||
return wxT( "LibDrawCircle" );
|
||||
}
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
virtual bool Save( FILE* aFile ) const;
|
||||
|
||||
|
||||
LibDrawCircle* GenCopy();
|
||||
bool WriteDescr( FILE* File );
|
||||
void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
||||
int aDrawMode, void * aData, int aTransformMatrix[2][2] );
|
||||
};
|
||||
|
@ -287,10 +313,16 @@ public:
|
|||
{
|
||||
return wxT( "LibDrawText" );
|
||||
}
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
virtual bool Save( FILE* aFile ) const;
|
||||
|
||||
|
||||
LibDrawText* GenCopy();
|
||||
bool WriteDescr( FILE* File );
|
||||
void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
||||
int aDrawMode, void * aData, int aTransformMatrix[2][2] );
|
||||
};
|
||||
|
@ -311,10 +343,16 @@ public:
|
|||
{
|
||||
return wxT( "LibDrawSquare" );
|
||||
}
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
virtual bool Save( FILE* aFile ) const;
|
||||
|
||||
|
||||
LibDrawSquare* GenCopy();
|
||||
bool WriteDescr( FILE* File );
|
||||
void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
||||
int aDrawMode, void * aData, int aTransformMatrix[2][2] );
|
||||
};
|
||||
|
@ -334,10 +372,16 @@ public:
|
|||
{
|
||||
return wxT( "LibDrawSegment" );
|
||||
}
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
virtual bool Save( FILE* aFile ) const;
|
||||
|
||||
|
||||
LibDrawSegment* GenCopy();
|
||||
bool WriteDescr( FILE* File );
|
||||
void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
||||
int aDrawMode, void * aData, int aTransformMatrix[2][2] );
|
||||
};
|
||||
|
@ -365,10 +409,16 @@ public:
|
|||
return wxT( "LibDrawPolyline" );
|
||||
}
|
||||
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
virtual bool Save( FILE* aFile ) const;
|
||||
|
||||
LibDrawPolyline* GenCopy();
|
||||
void AddPoint( const wxPoint& point );
|
||||
bool WriteDescr( FILE* File );
|
||||
void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
||||
int aDrawMode, void * aData, int aTransformMatrix[2][2] );
|
||||
};
|
||||
|
@ -406,11 +456,17 @@ public:
|
|||
{
|
||||
return wxT( "LibDrawField" );
|
||||
}
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
virtual bool Save( FILE* aFile ) const;
|
||||
|
||||
|
||||
LibDrawField* GenCopy();
|
||||
void Copy( LibDrawField* Target );
|
||||
bool WriteDescr( FILE* File );
|
||||
void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
||||
int aDrawMode, void * aData, int aTransformMatrix[2][2] );
|
||||
};
|
||||
|
|
|
@ -18,12 +18,11 @@
|
|||
//#define DRAW_ARC_WITH_ANGLE // Used to draw arcs
|
||||
|
||||
|
||||
/* Fonctions locales */
|
||||
|
||||
|
||||
/* Local functions */
|
||||
/* Descr component <DUMMY> used when a component is not found in library,
|
||||
* to draw a dummy shape*/
|
||||
|
||||
/*
|
||||
* to draw a dummy shape
|
||||
* This component is a 400 mils square with the text ??
|
||||
* DEF DUMMY U 0 40 Y Y 1 0 N
|
||||
* F0 "U" 0 -350 60 H V
|
||||
|
@ -34,9 +33,7 @@
|
|||
* ENDDRAW
|
||||
* ENDDEF
|
||||
*/
|
||||
|
||||
|
||||
static EDA_LibComponentStruct* DummyCmp;
|
||||
static void CreateDummyCmp();
|
||||
static void DrawLibPartAux( WinEDA_DrawPanel * panel, wxDC * DC,
|
||||
SCH_COMPONENT * Component,
|
||||
EDA_LibComponentStruct * Entry,
|
||||
|
@ -45,6 +42,8 @@ static void DrawLibPartAux( WinEDA_DrawPanel * panel, wxDC * DC,
|
|||
int Multi, int convert,
|
||||
int DrawMode, int Color = -1, bool DrawPinText = TRUE );
|
||||
|
||||
/* Local variables */
|
||||
static EDA_LibComponentStruct* DummyCmp;
|
||||
|
||||
/***************************************************************************/
|
||||
wxPoint TransformCoordinate( int aTransformMatrix[2][2], wxPoint& aPosition )
|
||||
|
@ -66,7 +65,7 @@ wxPoint TransformCoordinate( int aTransformMatrix[2][2], wxPoint& aPosition )
|
|||
|
||||
|
||||
/******************************/
|
||||
static void CreateDummyCmp()
|
||||
void CreateDummyCmp()
|
||||
/******************************/
|
||||
{
|
||||
DummyCmp = new EDA_LibComponentStruct( NULL );
|
||||
|
|
|
@ -88,7 +88,6 @@ void WinEDA_LibeditFrame::ExportOnePart( bool create_lib )
|
|||
{
|
||||
wxString Name, mask;
|
||||
LibraryStruct* NewLib, * LibTmp, * CurLibTmp;
|
||||
int err;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
{
|
||||
|
@ -131,7 +130,7 @@ void WinEDA_LibeditFrame::ExportOnePart( bool create_lib )
|
|||
/* Sauvegarde du composant: */
|
||||
CurrentLib = NewLib;
|
||||
SaveOnePartInMemory();
|
||||
err = SaveOneLibrary( this, Name, NewLib );
|
||||
bool success = NewLib->SaveLibrary( Name );
|
||||
|
||||
/* Suppression de la librarie temporaire */
|
||||
FreeCmpLibrary( this, NewLib->m_Name );
|
||||
|
@ -139,7 +138,7 @@ void WinEDA_LibeditFrame::ExportOnePart( bool create_lib )
|
|||
CurrentLib = CurLibTmp;
|
||||
|
||||
wxString msg;
|
||||
if( create_lib && (err == 0) )
|
||||
if( create_lib && success )
|
||||
{
|
||||
msg = Name + _( "0k" );
|
||||
DisplayInfo( this,
|
||||
|
|
|
@ -97,14 +97,9 @@ const wxChar * Text;
|
|||
{
|
||||
continue;
|
||||
}
|
||||
if ( ii == 0 )
|
||||
if ( (ii == 0) || ( ListEntry[ii-1] != ListEntry[ii] ) )
|
||||
{
|
||||
WriteOneLibEntry(frame, ArchiveFile, ListEntry[ii]);
|
||||
if( DocFile ) WriteOneDocLibEntry(DocFile, ListEntry[ii]);
|
||||
}
|
||||
else if ( ListEntry[ii-1] != ListEntry[ii] )
|
||||
{
|
||||
WriteOneLibEntry(frame, ArchiveFile, ListEntry[ii]);
|
||||
WriteOneLibEntry(ArchiveFile, ListEntry[ii]);
|
||||
if( DocFile ) WriteOneDocLibEntry(DocFile, ListEntry[ii]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -222,7 +222,6 @@ void WinEDA_LibeditFrame::SaveActiveLibrary()
|
|||
*/
|
||||
{
|
||||
wxString Name, msg;
|
||||
int err;
|
||||
|
||||
if(CurrentLib == NULL)
|
||||
{
|
||||
|
@ -234,11 +233,11 @@ int err;
|
|||
msg = _("Modify Library File \"") + Name + _("\"?");
|
||||
if( ! IsOK(this, msg) ) return;
|
||||
|
||||
err = SaveOneLibrary(this, Name, CurrentLib);
|
||||
bool success = CurrentLib->SaveLibrary( Name );
|
||||
|
||||
MsgPanel->EraseMsgBox();
|
||||
|
||||
if ( err )
|
||||
if ( ! success )
|
||||
{
|
||||
msg = _("Error while saving Library File \"") + Name + _("\".");
|
||||
Affiche_1_Parametre(this, 1, wxT(" *** ERROR : **"), msg,BLUE);
|
||||
|
|
|
@ -26,7 +26,7 @@ OBJECTS = eeschema.o\
|
|||
class_hierarchical_PIN_sheet.o\
|
||||
class_text-label.o\
|
||||
component_class.o\
|
||||
libclass.o\
|
||||
class_library.o\
|
||||
dialog_options.o\
|
||||
tool_lib.o\
|
||||
tool_sch.o\
|
||||
|
|
|
@ -229,7 +229,7 @@ LibEDA_BaseStruct * CopyDrawEntryStruct( wxWindow * frame, LibEDA_BaseStruct * D
|
|||
Retourne:
|
||||
Pointeur sur la structure creee (ou NULL si impossible) */
|
||||
|
||||
int WriteOneLibEntry(wxWindow * frame, FILE * ExportFile, EDA_LibComponentStruct * LibEntry);
|
||||
int WriteOneLibEntry( FILE * ExportFile, EDA_LibComponentStruct * LibEntry);
|
||||
/* Routine d'ecriture du composant pointe par LibEntry
|
||||
dans le fichier ExportFile( qui doit etre deja ouvert)
|
||||
return: FALSE si Ok, TRUE si err write */
|
||||
|
@ -246,21 +246,6 @@ int WriteOneDocLibEntry(FILE * ExportFile, EDA_LibComponentStruct * LibEntry);
|
|||
1 si err write */
|
||||
|
||||
|
||||
int SaveOneLibrary(wxWindow * frame, const wxString & FullFileName, LibraryStruct * Library);
|
||||
/* Sauvegarde en fichier la librairie pointee par Library, sous le nom
|
||||
FullFileName.
|
||||
2 fichiers sont crees
|
||||
- La librarie
|
||||
- le fichier de documentation
|
||||
|
||||
une sauvegarde .bak de l'ancien fichier librairie est cree
|
||||
une sauvegarde .bck de l'ancien fichier documentation est cree
|
||||
|
||||
return:
|
||||
0 si OK
|
||||
1 si erreur */
|
||||
|
||||
|
||||
/***************/
|
||||
/* SYMBEDIT.CPP */
|
||||
/***************/
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
/* EESchema - eesavlib.cpp */
|
||||
/****************************/
|
||||
|
||||
/* Write Routines to save schematic libraries and library components (::WriteDescr() members)
|
||||
/* Write Routines to save schematic libraries and library components (::Save() members)
|
||||
*/
|
||||
|
||||
#include "fctsys.h"
|
||||
|
@ -27,7 +27,7 @@ static bool WriteLibEntryDateAndTime( FILE* ExportFile,
|
|||
static int fill_tab[3] = { 'N', 'F', 'f' };
|
||||
|
||||
/***********************************************/
|
||||
bool LibDrawArc::WriteDescr( FILE* ExportFile )
|
||||
bool LibDrawArc::Save( FILE* ExportFile ) const
|
||||
/***********************************************/
|
||||
|
||||
/* format
|
||||
|
@ -46,12 +46,12 @@ bool LibDrawArc::WriteDescr( FILE* ExportFile )
|
|||
m_Unit, m_Convert,
|
||||
m_Width, fill_tab[m_Fill],
|
||||
m_ArcStart.x, m_ArcStart.y, m_ArcEnd.x, m_ArcEnd.y );
|
||||
return FALSE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/***************************************************/
|
||||
bool LibDrawCircle::WriteDescr( FILE* ExportFile )
|
||||
bool LibDrawCircle::Save( FILE* ExportFile ) const
|
||||
/***************************************************/
|
||||
{
|
||||
fprintf( ExportFile, "C %d %d %d %d %d %d %c\n",
|
||||
|
@ -59,12 +59,12 @@ bool LibDrawCircle::WriteDescr( FILE* ExportFile )
|
|||
m_Rayon,
|
||||
m_Unit, m_Convert,
|
||||
m_Width, fill_tab[m_Fill] );
|
||||
return FALSE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/************************************************/
|
||||
bool LibDrawText::WriteDescr( FILE* ExportFile )
|
||||
bool LibDrawText::Save( FILE* ExportFile ) const
|
||||
/************************************************/
|
||||
{
|
||||
wxString text = m_Text;
|
||||
|
@ -77,24 +77,24 @@ bool LibDrawText::WriteDescr( FILE* ExportFile )
|
|||
m_Size.x, m_Type,
|
||||
m_Unit, m_Convert,
|
||||
CONV_TO_UTF8( text ) );
|
||||
return FALSE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/***************************************************/
|
||||
bool LibDrawSquare::WriteDescr( FILE* ExportFile )
|
||||
bool LibDrawSquare::Save( FILE* ExportFile ) const
|
||||
/***************************************************/
|
||||
{
|
||||
fprintf( ExportFile, "S %d %d %d %d %d %d %d %c\n",
|
||||
m_Pos.x, m_Pos.y, m_End.x, m_End.y,
|
||||
m_Unit, m_Convert,
|
||||
m_Width, fill_tab[m_Fill] );
|
||||
return FALSE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/************************************************/
|
||||
bool LibDrawPin::WriteDescr( FILE* ExportFile )
|
||||
bool LibDrawPin::Save( FILE* ExportFile ) const
|
||||
/************************************************/
|
||||
{
|
||||
wxString StringPinNum;
|
||||
|
@ -145,12 +145,12 @@ bool LibDrawPin::WriteDescr( FILE* ExportFile )
|
|||
fprintf( ExportFile, "V" );
|
||||
|
||||
fprintf( ExportFile, "\n" );
|
||||
return FALSE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/****************************************************/
|
||||
bool LibDrawPolyline::WriteDescr( FILE* ExportFile )
|
||||
bool LibDrawPolyline::Save( FILE* ExportFile ) const
|
||||
/****************************************************/
|
||||
{
|
||||
int ii, * ptpoly;
|
||||
|
@ -167,12 +167,22 @@ bool LibDrawPolyline::WriteDescr( FILE* ExportFile )
|
|||
}
|
||||
|
||||
fprintf( ExportFile, " %c\n", fill_tab[m_Fill] );
|
||||
return FALSE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/****************************************************/
|
||||
bool LibDrawSegment::Save( FILE* ExportFile ) const
|
||||
/****************************************************/
|
||||
{
|
||||
fprintf( ExportFile, "L %d %d %d",
|
||||
m_Unit, m_Convert,
|
||||
m_Width );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************/
|
||||
bool LibDrawField::WriteDescr( FILE* ExportFile )
|
||||
bool LibDrawField::Save( FILE* ExportFile ) const
|
||||
/**************************************************/
|
||||
{
|
||||
int hjustify, vjustify;
|
||||
|
@ -203,7 +213,7 @@ bool LibDrawField::WriteDescr( FILE* ExportFile )
|
|||
fprintf( ExportFile, " \"%s\"", CONV_TO_UTF8( m_Name ) );
|
||||
|
||||
fprintf( ExportFile, "\n" );
|
||||
return FALSE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -341,10 +351,9 @@ EDA_LibComponentStruct* CopyLibEntryStruct( wxWindow* frame, EDA_LibComponentStr
|
|||
}
|
||||
|
||||
|
||||
/********************************************************/
|
||||
int WriteOneLibEntry( wxWindow* frame, FILE* ExportFile,
|
||||
EDA_LibComponentStruct* LibEntry )
|
||||
/********************************************************/
|
||||
/*************************************************************************/
|
||||
int WriteOneLibEntry( FILE* ExportFile, EDA_LibComponentStruct* LibEntry )
|
||||
/*************************************************************************/
|
||||
|
||||
/* Routine d'ecriture du composant pointe par LibEntry
|
||||
* dans le fichier ExportFile( qui doit etre deja ouvert)
|
||||
|
@ -384,15 +393,15 @@ int WriteOneLibEntry( wxWindow* frame, FILE* ExportFile,
|
|||
WriteLibEntryDateAndTime( ExportFile, LibEntry );
|
||||
|
||||
/* Position / orientation / visibilite des champs */
|
||||
LibEntry->m_Prefix.WriteDescr( ExportFile );
|
||||
LibEntry->m_Name.WriteDescr( ExportFile );
|
||||
LibEntry->m_Prefix.Save( ExportFile );
|
||||
LibEntry->m_Name.Save( ExportFile );
|
||||
|
||||
for( Field = LibEntry->Fields; Field!= NULL;
|
||||
Field = (LibDrawField*) Field->Pnext )
|
||||
{
|
||||
if( Field->m_Text.IsEmpty() && Field->m_Name.IsEmpty() )
|
||||
continue;
|
||||
Field->WriteDescr( ExportFile );
|
||||
Field->Save( ExportFile );
|
||||
}
|
||||
|
||||
/* Sauvegarde de la ligne "ALIAS" */
|
||||
|
@ -429,48 +438,7 @@ int WriteOneLibEntry( wxWindow* frame, FILE* ExportFile,
|
|||
DrawEntry = LibEntry->m_Drawings;
|
||||
while( DrawEntry )
|
||||
{
|
||||
switch( DrawEntry->Type() )
|
||||
{
|
||||
case COMPONENT_ARC_DRAW_TYPE:
|
||||
#define DRAWSTRUCT ( (LibDrawArc*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
case COMPONENT_CIRCLE_DRAW_TYPE:
|
||||
#undef DRAWSTRUCT
|
||||
#define DRAWSTRUCT ( (LibDrawCircle*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
||||
#undef DRAWSTRUCT
|
||||
#define DRAWSTRUCT ( (LibDrawText*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
case COMPONENT_RECT_DRAW_TYPE:
|
||||
#undef DRAWSTRUCT
|
||||
#define DRAWSTRUCT ( (LibDrawSquare*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
case COMPONENT_PIN_DRAW_TYPE:
|
||||
#undef DRAWSTRUCT
|
||||
#define DRAWSTRUCT ( (LibDrawPin*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
case COMPONENT_POLYLINE_DRAW_TYPE:
|
||||
#undef DRAWSTRUCT
|
||||
#define DRAWSTRUCT ( (LibDrawPolyline*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
default:
|
||||
DisplayError( frame, wxT( "Save Lib: Unknown Draw Type" ) );
|
||||
break;
|
||||
}
|
||||
|
||||
DrawEntry->Save( ExportFile );
|
||||
DrawEntry = DrawEntry->Next();
|
||||
}
|
||||
fprintf( ExportFile, "ENDDRAW\n" );
|
||||
|
@ -517,104 +485,97 @@ int WriteOneDocLibEntry( FILE* ExportFile, EDA_LibComponentStruct* LibEntry )
|
|||
|
||||
|
||||
/*********************************************************************************/
|
||||
int SaveOneLibrary( wxWindow* frame, const wxString& FullFileName, LibraryStruct* Library )
|
||||
bool LibraryStruct::SaveLibrary( const wxString& FullFileName )
|
||||
/*********************************************************************************/
|
||||
|
||||
/* Sauvegarde en fichier la librairie pointee par Library, sous le nom
|
||||
* FullFileName.
|
||||
* 2 fichiers sont crees
|
||||
* - La librarie
|
||||
* - le fichier de documentation
|
||||
*
|
||||
* une sauvegarde .bak de l'ancien fichier librairie est cree
|
||||
* une sauvegarde .bck de l'ancien fichier documentation est cree
|
||||
*
|
||||
* return:
|
||||
* 0 si OK
|
||||
* 1 si erreur
|
||||
/**
|
||||
* Function SaveLibrary
|
||||
* writes the data structures for this object out to 2 file
|
||||
* the library in "*.lib" format.
|
||||
* the doc file in "*.dcm" format.
|
||||
* creates a backup file for each file (.bak and .bck)
|
||||
* @param aFullFileName The full lib filename.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
{
|
||||
FILE* SaveFile, * SaveDocFile;
|
||||
FILE* libfile, *docfile;
|
||||
EDA_LibComponentStruct* LibEntry;
|
||||
char Line[1024];
|
||||
int err = 1;
|
||||
wxString Name, DocName, BakName, msg;
|
||||
wxString libname, docname, backupname, msg;
|
||||
|
||||
if( Library == NULL )
|
||||
return err;
|
||||
libname = FullFileName;
|
||||
|
||||
Name = FullFileName;
|
||||
|
||||
/* L'ancien fichier lib est renomme en .bak */
|
||||
if( wxFileExists( Name ) )
|
||||
/* the old .lib file is renamed .bak */
|
||||
if( wxFileExists( libname ) )
|
||||
{
|
||||
BakName = Name; ChangeFileNameExt( BakName, wxT( ".bak" ) );
|
||||
wxRemoveFile( BakName );
|
||||
if( !wxRenameFile( Name, BakName ) )
|
||||
backupname = libname; ChangeFileNameExt( backupname, wxT( ".bak" ) );
|
||||
wxRemoveFile( backupname );
|
||||
if( !wxRenameFile( libname, backupname ) )
|
||||
{
|
||||
msg = wxT( "Failed to rename old lib file " ) + BakName;
|
||||
DisplayError( frame, msg, 20 );
|
||||
msg = wxT( "Failed to rename old lib file " ) + backupname;
|
||||
DisplayError( NULL, msg, 20 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DocName = Name; ChangeFileNameExt( DocName, DOC_EXT );
|
||||
docname = FullFileName; ChangeFileNameExt( docname, DOC_EXT );
|
||||
/* L'ancien fichier doc lib est renomme en .bck */
|
||||
if( wxFileExists( DocName ) )
|
||||
if( wxFileExists( docname ) )
|
||||
{
|
||||
BakName = DocName; ChangeFileNameExt( BakName, wxT( ".bck" ) );
|
||||
wxRemoveFile( BakName );
|
||||
if( !wxRenameFile( DocName, BakName ) )
|
||||
backupname = docname; ChangeFileNameExt( backupname, wxT( ".bck" ) );
|
||||
wxRemoveFile( backupname );
|
||||
if( !wxRenameFile( docname, backupname ) )
|
||||
{
|
||||
msg = wxT( "Failed to save old doc lib file " ) + BakName;
|
||||
DisplayError( frame, msg, 20 );
|
||||
msg = wxT( "Failed to save old doc lib file " ) + backupname;
|
||||
DisplayError( NULL, msg, 20 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SaveFile = wxFopen( Name, wxT( "wt" ) );
|
||||
if( SaveFile == NULL )
|
||||
libfile = wxFopen( libname, wxT( "wt" ) );
|
||||
if( libfile == NULL )
|
||||
{
|
||||
msg = wxT( "Failed to create Lib File " ) + Name;
|
||||
DisplayError( frame, msg, 20 );
|
||||
return err;
|
||||
msg = wxT( "Failed to create Lib File " ) + libname;
|
||||
DisplayError( NULL, msg, 20 );
|
||||
return false;
|
||||
}
|
||||
|
||||
SaveDocFile = wxFopen( DocName, wxT( "wt" ) );
|
||||
if( SaveDocFile == NULL )
|
||||
docfile = wxFopen( docname, wxT( "wt" ) );
|
||||
if( docfile == NULL )
|
||||
{
|
||||
msg = wxT( "Failed to create DocLib File " ) + DocName;
|
||||
DisplayError( frame, msg, 20 );
|
||||
return err;
|
||||
msg = wxT( "Failed to create DocLib File " ) + docname;
|
||||
DisplayError( NULL, msg, 20 );
|
||||
}
|
||||
|
||||
Library->m_Modified = 0;
|
||||
m_Modified = 0;
|
||||
|
||||
/* Creation de l'entete de la librairie */
|
||||
Library->m_TimeStamp = GetTimeStamp();
|
||||
Library->WriteHeader( SaveFile );
|
||||
fprintf( SaveDocFile, "%s Date: %s\n", DOCFILE_IDENT,
|
||||
DateAndTime( Line ) );
|
||||
|
||||
m_TimeStamp = GetTimeStamp();
|
||||
WriteHeader( libfile );
|
||||
|
||||
/* Sauvegarde des composant: */
|
||||
PQCompFunc( (PQCompFuncType) LibraryEntryCompare );
|
||||
LibEntry = (EDA_LibComponentStruct*) PQFirst( &Library->m_Entries, FALSE );
|
||||
LibEntry = (EDA_LibComponentStruct*) PQFirst( &m_Entries, FALSE );
|
||||
char Line[256];
|
||||
fprintf( docfile, "%s Date: %s\n", DOCFILE_IDENT,
|
||||
DateAndTime( Line ) );
|
||||
|
||||
bool success = true;
|
||||
while( LibEntry )
|
||||
{
|
||||
err = WriteOneLibEntry( frame, SaveFile, LibEntry );
|
||||
err = WriteOneDocLibEntry( SaveDocFile, LibEntry );
|
||||
if ( WriteOneLibEntry( libfile, LibEntry ) != 0 )
|
||||
success = false;
|
||||
if ( docfile )
|
||||
if ( WriteOneDocLibEntry( docfile, LibEntry ) != 0 )
|
||||
success = false;
|
||||
|
||||
LibEntry = (EDA_LibComponentStruct*)
|
||||
PQNext( Library->m_Entries, LibEntry, NULL );
|
||||
PQNext( m_Entries, LibEntry, NULL );
|
||||
}
|
||||
|
||||
fprintf( SaveFile, "#\n#End Library\n" );
|
||||
fprintf( SaveDocFile, "#\n#End Doc Library\n" );
|
||||
fclose( SaveFile );
|
||||
fclose( SaveDocFile );
|
||||
return err;
|
||||
fprintf( libfile, "#\n#End Library\n" );
|
||||
if ( docfile )
|
||||
fprintf( docfile, "#\n#End Doc Library\n" );
|
||||
fclose( libfile );
|
||||
fclose( docfile );
|
||||
return success;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -137,7 +137,6 @@ void WinEDA_LibeditFrame::SaveOneSymbol()
|
|||
{
|
||||
EDA_LibComponentStruct* LibEntry = CurrentLibEntry;
|
||||
int Unit = CurrentUnit, convert = CurrentConvert;
|
||||
int SymbUnit, SymbConvert;
|
||||
LibEDA_BaseStruct* DrawEntry;
|
||||
wxString FullFileName, mask;
|
||||
wxString msg;
|
||||
|
@ -196,8 +195,8 @@ void WinEDA_LibeditFrame::SaveOneSymbol()
|
|||
1, 0 /* unused */, 'N' );
|
||||
|
||||
/* Position / orientation / visibilite des champs */
|
||||
LibEntry->m_Prefix.WriteDescr( ExportFile );
|
||||
LibEntry->m_Name.WriteDescr( ExportFile );
|
||||
LibEntry->m_Prefix.Save( ExportFile );
|
||||
LibEntry->m_Name.Save( ExportFile );
|
||||
|
||||
DrawEntry = LibEntry->m_Drawings;
|
||||
if( DrawEntry )
|
||||
|
@ -211,55 +210,7 @@ void WinEDA_LibeditFrame::SaveOneSymbol()
|
|||
if( convert && DrawEntry->m_Convert && (DrawEntry->m_Convert != convert) )
|
||||
continue;
|
||||
|
||||
/* .Unit , . Convert est laisse a 0 ou mis a 1 */
|
||||
SymbUnit = DrawEntry->m_Unit; if( SymbUnit > 1 )
|
||||
SymbUnit = 1;
|
||||
SymbConvert = DrawEntry->m_Convert;
|
||||
if( SymbConvert > 1 )
|
||||
SymbConvert = 1;
|
||||
|
||||
switch( DrawEntry->Type() )
|
||||
{
|
||||
case COMPONENT_ARC_DRAW_TYPE:
|
||||
#define DRAWSTRUCT ( (LibDrawArc*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
case COMPONENT_CIRCLE_DRAW_TYPE:
|
||||
#undef DRAWSTRUCT
|
||||
#define DRAWSTRUCT ( (LibDrawCircle*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
||||
#undef DRAWSTRUCT
|
||||
#define DRAWSTRUCT ( (LibDrawText*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
case COMPONENT_RECT_DRAW_TYPE:
|
||||
#undef DRAWSTRUCT
|
||||
#define DRAWSTRUCT ( (LibDrawSquare*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
case COMPONENT_PIN_DRAW_TYPE:
|
||||
#undef DRAWSTRUCT
|
||||
#define DRAWSTRUCT ( (LibDrawPin*) DrawEntry )
|
||||
if( DRAWSTRUCT->m_Attributs & PINNOTDRAW )
|
||||
break;
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
case COMPONENT_POLYLINE_DRAW_TYPE:
|
||||
#undef DRAWSTRUCT
|
||||
#define DRAWSTRUCT ( (LibDrawPolyline*) DrawEntry )
|
||||
DRAWSTRUCT->WriteDescr( ExportFile );
|
||||
break;
|
||||
|
||||
default:
|
||||
;
|
||||
}
|
||||
DrawEntry->Save( ExportFile );
|
||||
}
|
||||
fprintf( ExportFile, "ENDDRAW\n" );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue