Make PLUGIN::Footprint*() API functions take 'const' PROPERTIES*.
Add const PROPERTIES* to FootprintDelete(). Add {Get,Set}Properties() to FP_LIB_TABLE::ROW. Touch up fp table dialog.
This commit is contained in:
parent
4afae65110
commit
f72394cc6b
|
@ -73,4 +73,11 @@ Dialogs:
|
||||||
within the dialog, but for testing purposes please do not exceed this dialog
|
within the dialog, but for testing purposes please do not exceed this dialog
|
||||||
size should the user have selected a font size of 13 points.
|
size should the user have selected a font size of 13 points.
|
||||||
|
|
||||||
|
Quoting:
|
||||||
|
Filenames and paths should be emphasized with <> angle brackets. Anything
|
||||||
|
else should be emphasized with single quotes ''. e.g.:
|
||||||
|
<filename.kicad_pcb>
|
||||||
|
<longpath/subdir>
|
||||||
|
'FOOTPRINTNAME'
|
||||||
|
'anything else'
|
||||||
|
|
||||||
|
|
35
TODO.txt
35
TODO.txt
|
@ -140,25 +140,22 @@ PCBNew
|
||||||
various zoom factors. I believe that a fixed distance in pixels might make
|
various zoom factors. I believe that a fixed distance in pixels might make
|
||||||
for a friendlier UI.
|
for a friendlier UI.
|
||||||
|
|
||||||
*) Check that the new load visibility BOARD settings is properly setting the toolbar
|
|
||||||
buttons like show grid or ratsnest. Add PCB_EDIT_FRAME::SetVisibleElements() so
|
|
||||||
toolbar crap is not known to a BOARD.
|
|
||||||
|
|
||||||
*) Finish removing global access requirements from PLUGINs, so that:
|
|
||||||
*) a BOARD is a fully self contained document description.
|
|
||||||
*) plugin developers do not have to access globals, since a plugin could
|
|
||||||
very well be a dynamically loaded DLL/DSO in the future.
|
|
||||||
One final problem remains is the BASE_SCREEN's grid origin. An easy
|
|
||||||
solution is to move just that one field into the BOARD.
|
|
||||||
|
|
||||||
*) Add ::Footprint*() functions to EAGLE_PLUGIN, so that Eagle footprint libraries
|
|
||||||
can be used in situ.
|
|
||||||
|
|
||||||
*) Add a library table for Pcbnew like that in the sweet library and get rid of the
|
|
||||||
damn search path strategy. This will enable concurrent usage of various types
|
|
||||||
of PLUGIN::Footprint*() functions. At least LEGACY and KICAD are both needed
|
|
||||||
concurrently.
|
|
||||||
|
|
||||||
*) Add a hot key to toggle the 45 degree constraint on and off so that it can be
|
*) Add a hot key to toggle the 45 degree constraint on and off so that it can be
|
||||||
changed when drawing a trace.
|
changed when drawing a trace.
|
||||||
|
|
||||||
|
|
||||||
|
Dick's Final TODO List:
|
||||||
|
======================
|
||||||
|
*) write options dialog for fp table dialog.
|
||||||
|
*) Apply Fabrizio and Alexander's linux desktop patches after unifying them.
|
||||||
|
*) Get licensing cleaned up.
|
||||||
|
*) Re-arrange the repo architecture.
|
||||||
|
*) Merge KiCad GAL/TOM/ORSON if nobody else does.
|
||||||
|
*) lib_convert.py (i.e. convert) all footprint libraries to pretty format and move copy them to
|
||||||
|
github if nobody else does.
|
||||||
|
*) DLL-ization of pcbnew eeschema
|
||||||
|
*) Pass options, i.e. PROPERTIES to all PLUGIN::Footprint*() calls. Current code needs
|
||||||
|
to be based on NickNames, not Libpaths, so we have access to the FP_LIB_TABLE::ROWs.
|
||||||
|
User should not be prompted for a libpath for reading from it, he/she must pick from the
|
||||||
|
known list of nicknames. Possibly duplicate some of the PLUGIN:::Footprint*() api in ROW or
|
||||||
|
FP_LIB_TABLE. Again, limited to PLUGIN::Footprint*() calls, not Load() and Save().
|
||||||
|
|
|
@ -133,6 +133,7 @@ set(PCB_COMMON_SRCS
|
||||||
../pcbnew/sel_layer.cpp
|
../pcbnew/sel_layer.cpp
|
||||||
../pcbnew/pcb_plot_params.cpp
|
../pcbnew/pcb_plot_params.cpp
|
||||||
../pcbnew/io_mgr.cpp
|
../pcbnew/io_mgr.cpp
|
||||||
|
../pcbnew/plugin.cpp
|
||||||
../pcbnew/eagle_plugin.cpp
|
../pcbnew/eagle_plugin.cpp
|
||||||
../pcbnew/legacy_plugin.cpp
|
../pcbnew/legacy_plugin.cpp
|
||||||
../pcbnew/kicad_plugin.cpp
|
../pcbnew/kicad_plugin.cpp
|
||||||
|
|
|
@ -235,7 +235,6 @@ PROPERTIES* FP_LIB_TABLE::ParseOptions( const std::string& aOptionsList )
|
||||||
++cp; // skip the escape
|
++cp; // skip the escape
|
||||||
pair += *cp++; // add the separator
|
pair += *cp++; // add the separator
|
||||||
}
|
}
|
||||||
|
|
||||||
else if( *cp==OPT_SEP )
|
else if( *cp==OPT_SEP )
|
||||||
{
|
{
|
||||||
++cp; // skip the separator
|
++cp; // skip the separator
|
||||||
|
@ -248,7 +247,7 @@ PROPERTIES* FP_LIB_TABLE::ParseOptions( const std::string& aOptionsList )
|
||||||
// stash the pair
|
// stash the pair
|
||||||
if( pair.size() )
|
if( pair.size() )
|
||||||
{
|
{
|
||||||
// the first equals size established the end of the name
|
// first equals sign separates 'name' and 'value'.
|
||||||
size_t eqNdx = pair.find( '=' );
|
size_t eqNdx = pair.find( '=' );
|
||||||
if( eqNdx != pair.npos )
|
if( eqNdx != pair.npos )
|
||||||
{
|
{
|
||||||
|
@ -257,7 +256,7 @@ PROPERTIES* FP_LIB_TABLE::ParseOptions( const std::string& aOptionsList )
|
||||||
props[name] = value;
|
props[name] = value;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
props[pair] = "";
|
props[pair] = ""; // property is present, but with no value.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -216,6 +216,24 @@ public:
|
||||||
*/
|
*/
|
||||||
void SetDescr( const wxString& aDescr ) { description = aDescr; }
|
void SetDescr( const wxString& aDescr ) { description = aDescr; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetProperties
|
||||||
|
* returns the constant PROPERTIES for this library (ROW). These are
|
||||||
|
* the "options" in a table.
|
||||||
|
*/
|
||||||
|
const PROPERTIES* GetProperties() const { return properties; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetProperties
|
||||||
|
* sets this ROW's PROPERTIES by taking ownership of @a aProperties.
|
||||||
|
* @param aProperties ownership is given over to this ROW.
|
||||||
|
*/
|
||||||
|
void SetProperties( const PROPERTIES* aProperties )
|
||||||
|
{
|
||||||
|
delete properties;
|
||||||
|
properties = aProperties;
|
||||||
|
}
|
||||||
|
|
||||||
//-----</accessors>-----------------------------------------------------
|
//-----</accessors>-----------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -236,6 +254,7 @@ public:
|
||||||
LIB_T type;
|
LIB_T type;
|
||||||
wxString options;
|
wxString options;
|
||||||
wxString description;
|
wxString description;
|
||||||
|
const
|
||||||
PROPERTIES* properties;
|
PROPERTIES* properties;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -412,11 +412,10 @@ class DIALOG_FP_LIB_TABLE : public DIALOG_FP_LIB_TABLE_BASE
|
||||||
{
|
{
|
||||||
wxString nick = model.GetValue( r, COL_NICKNAME ).Trim( false ).Trim();
|
wxString nick = model.GetValue( r, COL_NICKNAME ).Trim( false ).Trim();
|
||||||
wxString uri = model.GetValue( r, COL_URI ).Trim( false ).Trim();
|
wxString uri = model.GetValue( r, COL_URI ).Trim( false ).Trim();
|
||||||
wxString type = model.GetValue( r, COL_TYPE ).Trim( false ).Trim();
|
|
||||||
|
|
||||||
if( !nick || !uri || !type )
|
if( !nick || !uri )
|
||||||
{
|
{
|
||||||
// Delete the "empty" row, where empty means missing nick, uri, or type.
|
// Delete the "empty" row, where empty means missing nick or uri.
|
||||||
// This also updates the UI which could be slow, but there should only be a few
|
// This also updates the UI which could be slow, but there should only be a few
|
||||||
// rows to delete, unless the user fell asleep on the Add Row
|
// rows to delete, unless the user fell asleep on the Add Row
|
||||||
// button.
|
// button.
|
||||||
|
@ -434,7 +433,7 @@ class DIALOG_FP_LIB_TABLE : public DIALOG_FP_LIB_TABLE_BASE
|
||||||
m_auinotebook->SetSelection( &model == &m_global_model ? 0 : 1 );
|
m_auinotebook->SetSelection( &model == &m_global_model ? 0 : 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// go to the bottom of the two rows, it is technically the duplicate:
|
// go to the problematic row
|
||||||
m_cur_grid->SelectBlock( r, 0, r, 0 );
|
m_cur_grid->SelectBlock( r, 0, r, 0 );
|
||||||
m_cur_grid->MakeCellVisible( r, 0 );
|
m_cur_grid->MakeCellVisible( r, 0 );
|
||||||
|
|
||||||
|
@ -447,7 +446,6 @@ class DIALOG_FP_LIB_TABLE : public DIALOG_FP_LIB_TABLE_BASE
|
||||||
// set the trimmed values back into the table so they get saved to disk.
|
// set the trimmed values back into the table so they get saved to disk.
|
||||||
model.SetValue( r, COL_NICKNAME, nick );
|
model.SetValue( r, COL_NICKNAME, nick );
|
||||||
model.SetValue( r, COL_URI, uri );
|
model.SetValue( r, COL_URI, uri );
|
||||||
model.SetValue( r, COL_TYPE, type );
|
|
||||||
++r; // this row was OK.
|
++r; // this row was OK.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -460,9 +458,10 @@ class DIALOG_FP_LIB_TABLE : public DIALOG_FP_LIB_TABLE_BASE
|
||||||
|
|
||||||
for( int r1 = 0; r1 < model.GetNumberRows() - 1; ++r1 )
|
for( int r1 = 0; r1 < model.GetNumberRows() - 1; ++r1 )
|
||||||
{
|
{
|
||||||
|
wxString nick1 = model.GetValue( r1, COL_NICKNAME );
|
||||||
|
|
||||||
for( int r2=r1+1; r2 < model.GetNumberRows(); ++r2 )
|
for( int r2=r1+1; r2 < model.GetNumberRows(); ++r2 )
|
||||||
{
|
{
|
||||||
wxString nick1 = model.GetValue( r1, COL_NICKNAME );
|
|
||||||
wxString nick2 = model.GetValue( r2, COL_NICKNAME );
|
wxString nick2 = model.GetValue( r2, COL_NICKNAME );
|
||||||
|
|
||||||
if( nick1 == nick2 )
|
if( nick1 == nick2 )
|
||||||
|
@ -478,7 +477,7 @@ class DIALOG_FP_LIB_TABLE : public DIALOG_FP_LIB_TABLE_BASE
|
||||||
m_auinotebook->SetSelection( &model == &m_global_model ? 0 : 1 );
|
m_auinotebook->SetSelection( &model == &m_global_model ? 0 : 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// go to the bottom of the two rows, it is technically the duplicate:
|
// go to the lower of the two rows, it is technically the duplicate:
|
||||||
m_cur_grid->SelectBlock( r2, 0, r2, 0 );
|
m_cur_grid->SelectBlock( r2, 0, r2, 0 );
|
||||||
m_cur_grid->MakeCellVisible( r2, 0 );
|
m_cur_grid->MakeCellVisible( r2, 0 );
|
||||||
|
|
||||||
|
@ -582,7 +581,7 @@ class DIALOG_FP_LIB_TABLE : public DIALOG_FP_LIB_TABLE_BASE
|
||||||
void optionsEditor( wxMouseEvent& event )
|
void optionsEditor( wxMouseEvent& event )
|
||||||
{
|
{
|
||||||
// @todo: write the options editor, and pass the options to the Footprint*() calls.
|
// @todo: write the options editor, and pass the options to the Footprint*() calls.
|
||||||
D(printf("%s:%d\n", __func__, (int) m_cur_grid->GetNumberRows() );)
|
//D(printf("%s:%d\n", __func__, (int) m_cur_grid->GetNumberRows() );)
|
||||||
}
|
}
|
||||||
|
|
||||||
void onCancelButtonClick( wxCommandEvent& event )
|
void onCancelButtonClick( wxCommandEvent& event )
|
||||||
|
|
|
@ -1105,7 +1105,7 @@ wxSize inline EAGLE_PLUGIN::kicad_fontz( double d ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOARD* EAGLE_PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties )
|
BOARD* EAGLE_PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
PTREE doc;
|
PTREE doc;
|
||||||
|
@ -1188,7 +1188,7 @@ BOARD* EAGLE_PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, PROPE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void EAGLE_PLUGIN::init( PROPERTIES* aProperties )
|
void EAGLE_PLUGIN::init( const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
m_hole_count = 0;
|
m_hole_count = 0;
|
||||||
|
|
||||||
|
@ -2800,7 +2800,7 @@ void EAGLE_PLUGIN::cacheLib( const wxString& aLibPath )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wxArrayString EAGLE_PLUGIN::FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
wxArrayString EAGLE_PLUGIN::FootprintEnumerate( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
init( aProperties );
|
init( aProperties );
|
||||||
|
|
||||||
|
@ -2815,7 +2815,7 @@ wxArrayString EAGLE_PLUGIN::FootprintEnumerate( const wxString& aLibraryPath, PR
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
MODULE* EAGLE_PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName, PROPERTIES* aProperties )
|
MODULE* EAGLE_PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
init( aProperties );
|
init( aProperties );
|
||||||
|
|
||||||
|
@ -2836,13 +2836,13 @@ MODULE* EAGLE_PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxStrin
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void EAGLE_PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties )
|
void EAGLE_PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// Eagle lovers apply here.
|
// Eagle lovers apply here.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void EAGLE_PLUGIN::FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint, PROPERTIES* aProperties )
|
void EAGLE_PLUGIN::FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2852,12 +2852,12 @@ void EAGLE_PLUGIN::FootprintDelete( const wxString& aLibraryPath, const wxString
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void EAGLE_PLUGIN::FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
void EAGLE_PLUGIN::FootprintLibCreate( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool EAGLE_PLUGIN::FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
bool EAGLE_PLUGIN::FootprintLibDelete( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,13 +82,13 @@ public:
|
||||||
//-----<PUBLIC PLUGIN API>--------------------------------------------------
|
//-----<PUBLIC PLUGIN API>--------------------------------------------------
|
||||||
const wxString& PluginName() const;
|
const wxString& PluginName() const;
|
||||||
|
|
||||||
BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties = NULL );
|
BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
const wxString& GetFileExtension() const;
|
const wxString& GetFileExtension() const;
|
||||||
|
|
||||||
wxArrayString FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL);
|
wxArrayString FootprintEnumerate( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL);
|
||||||
|
|
||||||
MODULE* FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName, PROPERTIES* aProperties = NULL );
|
MODULE* FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
bool IsFootprintLibWritable( const wxString& aLibraryPath )
|
bool IsFootprintLibWritable( const wxString& aLibraryPath )
|
||||||
{
|
{
|
||||||
|
@ -96,16 +96,15 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties = NULL );
|
void Save( const wxString& aFileName, BOARD* aBoard, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint, PROPERTIES* aProperties = NULL );
|
void FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName );
|
void FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL );
|
void FootprintLibCreate( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
bool FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL );
|
|
||||||
|
|
||||||
|
bool FootprintLibDelete( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL );
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//-----</PUBLIC PLUGIN API>-------------------------------------------------
|
//-----</PUBLIC PLUGIN API>-------------------------------------------------
|
||||||
|
@ -132,7 +131,7 @@ private:
|
||||||
///< lookup key is either libname.packagename or simply
|
///< lookup key is either libname.packagename or simply
|
||||||
///< packagename if FootprintLoad() or FootprintEnumberate()
|
///< packagename if FootprintLoad() or FootprintEnumberate()
|
||||||
|
|
||||||
PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL.
|
const PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL.
|
||||||
BOARD* m_board; ///< which BOARD is being worked on, no ownership here
|
BOARD* m_board; ///< which BOARD is being worked on, no ownership here
|
||||||
|
|
||||||
int m_min_trace; ///< smallest trace we find on Load(), in BIU.
|
int m_min_trace; ///< smallest trace we find on Load(), in BIU.
|
||||||
|
@ -146,7 +145,7 @@ private:
|
||||||
wxDateTime m_mod_time;
|
wxDateTime m_mod_time;
|
||||||
|
|
||||||
/// initialize PLUGIN like a constructor would, and futz with fresh BOARD if needed.
|
/// initialize PLUGIN like a constructor would, and futz with fresh BOARD if needed.
|
||||||
void init( PROPERTIES* aProperties );
|
void init( const PROPERTIES* aProperties );
|
||||||
|
|
||||||
void clear_cu_map();
|
void clear_cu_map();
|
||||||
|
|
||||||
|
|
|
@ -805,7 +805,7 @@ GPCB_PLUGIN::~GPCB_PLUGIN()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GPCB_PLUGIN::init( PROPERTIES* aProperties )
|
void GPCB_PLUGIN::init( const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
m_props = aProperties;
|
m_props = aProperties;
|
||||||
}
|
}
|
||||||
|
@ -824,7 +824,7 @@ void GPCB_PLUGIN::cacheLib( const wxString& aLibraryPath )
|
||||||
|
|
||||||
|
|
||||||
wxArrayString GPCB_PLUGIN::FootprintEnumerate( const wxString& aLibraryPath,
|
wxArrayString GPCB_PLUGIN::FootprintEnumerate( const wxString& aLibraryPath,
|
||||||
PROPERTIES* aProperties )
|
const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -846,7 +846,7 @@ wxArrayString GPCB_PLUGIN::FootprintEnumerate( const wxString& aLibraryPath,
|
||||||
|
|
||||||
|
|
||||||
MODULE* GPCB_PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
MODULE* GPCB_PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
||||||
PROPERTIES* aProperties )
|
const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -868,11 +868,11 @@ MODULE* GPCB_PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxString
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GPCB_PLUGIN::FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName )
|
void GPCB_PLUGIN::FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
init( NULL );
|
init( aProperties );
|
||||||
|
|
||||||
cacheLib( aLibraryPath );
|
cacheLib( aLibraryPath );
|
||||||
|
|
||||||
|
@ -886,7 +886,7 @@ void GPCB_PLUGIN::FootprintDelete( const wxString& aLibraryPath, const wxString&
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool GPCB_PLUGIN::FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
bool GPCB_PLUGIN::FootprintLibDelete( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
wxFileName fn;
|
wxFileName fn;
|
||||||
fn.SetPath( aLibraryPath );
|
fn.SetPath( aLibraryPath );
|
||||||
|
|
|
@ -64,14 +64,14 @@ public:
|
||||||
return extension;
|
return extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxArrayString FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL);
|
wxArrayString FootprintEnumerate( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL);
|
||||||
|
|
||||||
MODULE* FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
MODULE* FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
||||||
PROPERTIES* aProperties = NULL );
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName );
|
void FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
bool FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL );
|
bool FootprintLibDelete( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
bool IsFootprintLibWritable( const wxString& aLibraryPath );
|
bool IsFootprintLibWritable( const wxString& aLibraryPath );
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ public:
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
wxString m_error; ///< for throwing exceptions
|
wxString m_error; ///< for throwing exceptions
|
||||||
PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL.
|
const PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL.
|
||||||
GPCB_FPL_CACHE* m_cache; ///< Footprint library cache.
|
GPCB_FPL_CACHE* m_cache; ///< Footprint library cache.
|
||||||
int m_ctl;
|
int m_ctl;
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ private:
|
||||||
/// we only cache one footprint library for now, this determines which one.
|
/// we only cache one footprint library for now, this determines which one.
|
||||||
void cacheLib( const wxString& aLibraryPath );
|
void cacheLib( const wxString& aLibraryPath );
|
||||||
|
|
||||||
void init( PROPERTIES* aProperties );
|
void init( const PROPERTIES* aProperties );
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _GPCB_PLUGIN_H_
|
#endif // _GPCB_PLUGIN_H_
|
||||||
|
|
|
@ -54,9 +54,6 @@
|
||||||
// plugins coexisting.
|
// plugins coexisting.
|
||||||
|
|
||||||
|
|
||||||
// static LEGACY_PLUGIN kicad_plugin;
|
|
||||||
// static EAGLE_PLUGIN eagle_plugin;
|
|
||||||
|
|
||||||
PLUGIN* IO_MGR::PluginFind( PCB_FILE_T aFileType )
|
PLUGIN* IO_MGR::PluginFind( PCB_FILE_T aFileType )
|
||||||
{
|
{
|
||||||
// This implementation is subject to change, any magic is allowed here.
|
// This implementation is subject to change, any magic is allowed here.
|
||||||
|
@ -221,7 +218,7 @@ IO_MGR::PCB_FILE_T IO_MGR::GuessPluginTypeFromLibPath( const wxString& aLibPath
|
||||||
|
|
||||||
|
|
||||||
BOARD* IO_MGR::Load( PCB_FILE_T aFileType, const wxString& aFileName,
|
BOARD* IO_MGR::Load( PCB_FILE_T aFileType, const wxString& aFileName,
|
||||||
BOARD* aAppendToMe, PROPERTIES* aProperties )
|
BOARD* aAppendToMe, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// release the PLUGIN even if an exception is thrown.
|
// release the PLUGIN even if an exception is thrown.
|
||||||
PLUGIN::RELEASER pi = PluginFind( aFileType );
|
PLUGIN::RELEASER pi = PluginFind( aFileType );
|
||||||
|
@ -235,7 +232,7 @@ BOARD* IO_MGR::Load( PCB_FILE_T aFileType, const wxString& aFileName,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void IO_MGR::Save( PCB_FILE_T aFileType, const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties )
|
void IO_MGR::Save( PCB_FILE_T aFileType, const wxString& aFileName, BOARD* aBoard, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// release the PLUGIN even if an exception is thrown.
|
// release the PLUGIN even if an exception is thrown.
|
||||||
PLUGIN::RELEASER pi = PluginFind( aFileType );
|
PLUGIN::RELEASER pi = PluginFind( aFileType );
|
||||||
|
@ -249,67 +246,3 @@ void IO_MGR::Save( PCB_FILE_T aFileType, const wxString& aFileName, BOARD* aBoar
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_NOTFOUND, ShowType( aFileType ).GetData() ) );
|
THROW_IO_ERROR( wxString::Format( FMT_NOTFOUND, ShowType( aFileType ).GetData() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOARD* PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties )
|
|
||||||
{
|
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData(), __FUNCTION__ ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties )
|
|
||||||
{
|
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData(), __FUNCTION__ ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
wxArrayString PLUGIN::FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
|
||||||
{
|
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
MODULE* PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
|
||||||
PROPERTIES* aProperties )
|
|
||||||
{
|
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PLUGIN::FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint, PROPERTIES* aProperties )
|
|
||||||
{
|
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PLUGIN::FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName )
|
|
||||||
{
|
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PLUGIN::FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
|
||||||
{
|
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool PLUGIN::FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
|
||||||
{
|
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool PLUGIN::IsFootprintLibWritable( const wxString& aLibraryPath )
|
|
||||||
{
|
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ public:
|
||||||
* or file cannot be loaded.
|
* or file cannot be loaded.
|
||||||
*/
|
*/
|
||||||
static BOARD* Load( PCB_FILE_T aFileType, const wxString& aFileName,
|
static BOARD* Load( PCB_FILE_T aFileType, const wxString& aFileName,
|
||||||
BOARD* aAppendToMe = NULL, PROPERTIES* aProperties = NULL );
|
BOARD* aAppendToMe = NULL, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
@ -160,7 +160,7 @@ public:
|
||||||
* @throw IO_ERROR if there is a problem saving or exporting.
|
* @throw IO_ERROR if there is a problem saving or exporting.
|
||||||
*/
|
*/
|
||||||
static void Save( PCB_FILE_T aFileType, const wxString& aFileName,
|
static void Save( PCB_FILE_T aFileType, const wxString& aFileName,
|
||||||
BOARD* aBoard, PROPERTIES* aProperties = NULL );
|
BOARD* aBoard, const PROPERTIES* aProperties = NULL );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -231,7 +231,7 @@ public:
|
||||||
* input file if possible.
|
* input file if possible.
|
||||||
*/
|
*/
|
||||||
virtual BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe,
|
virtual BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe,
|
||||||
PROPERTIES* aProperties = NULL );
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
@ -254,7 +254,7 @@ public:
|
||||||
* @throw IO_ERROR if there is a problem saving or exporting.
|
* @throw IO_ERROR if there is a problem saving or exporting.
|
||||||
*/
|
*/
|
||||||
virtual void Save( const wxString& aFileName, BOARD* aBoard,
|
virtual void Save( const wxString& aFileName, BOARD* aBoard,
|
||||||
PROPERTIES* aProperties = NULL );
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
//-----<Footprint Stuff>-----------------------------
|
//-----<Footprint Stuff>-----------------------------
|
||||||
|
|
||||||
|
@ -276,7 +276,7 @@ public:
|
||||||
* @throw IO_ERROR if the library cannot be found, or footprint cannot be loaded.
|
* @throw IO_ERROR if the library cannot be found, or footprint cannot be loaded.
|
||||||
*/
|
*/
|
||||||
virtual wxArrayString FootprintEnumerate( const wxString& aLibraryPath,
|
virtual wxArrayString FootprintEnumerate( const wxString& aLibraryPath,
|
||||||
PROPERTIES* aProperties = NULL);
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function FootprintLoad
|
* Function FootprintLoad
|
||||||
|
@ -300,7 +300,7 @@ public:
|
||||||
* is thrown in the case where aFootprintName cannot be found.
|
* is thrown in the case where aFootprintName cannot be found.
|
||||||
*/
|
*/
|
||||||
virtual MODULE* FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
virtual MODULE* FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
||||||
PROPERTIES* aProperties = NULL );
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function FootprintSave
|
* Function FootprintSave
|
||||||
|
@ -323,7 +323,7 @@ public:
|
||||||
* @throw IO_ERROR if there is a problem saving.
|
* @throw IO_ERROR if there is a problem saving.
|
||||||
*/
|
*/
|
||||||
virtual void FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint,
|
virtual void FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint,
|
||||||
PROPERTIES* aProperties = NULL );
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function FootprintDelete
|
* Function FootprintDelete
|
||||||
|
@ -334,9 +334,16 @@ public:
|
||||||
*
|
*
|
||||||
* @param aFootprintName is the name of a footprint to delete from the specified library.
|
* @param aFootprintName is the name of a footprint to delete from the specified library.
|
||||||
*
|
*
|
||||||
|
* @param aProperties is an associative array that can be used to tell the
|
||||||
|
* library create function anything special, because it can take any number of
|
||||||
|
* additional named tuning arguments that the plugin is known to support.
|
||||||
|
* The caller continues to own this object (plugin may not delete it), and
|
||||||
|
* plugins should expect it to be optionally NULL.
|
||||||
|
*
|
||||||
* @throw IO_ERROR if there is a problem finding the footprint or the library, or deleting it.
|
* @throw IO_ERROR if there is a problem finding the footprint or the library, or deleting it.
|
||||||
*/
|
*/
|
||||||
virtual void FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName );
|
virtual void FootprintDelete( const wxString& aLibraryPath,
|
||||||
|
const wxString& aFootprintName, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function FootprintLibCreate
|
* Function FootprintLibCreate
|
||||||
|
@ -355,7 +362,7 @@ public:
|
||||||
*
|
*
|
||||||
* @throw IO_ERROR if there is a problem finding the library, or creating it.
|
* @throw IO_ERROR if there is a problem finding the library, or creating it.
|
||||||
*/
|
*/
|
||||||
virtual void FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL );
|
virtual void FootprintLibCreate( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function FootprintLibDelete
|
* Function FootprintLibDelete
|
||||||
|
@ -376,7 +383,7 @@ public:
|
||||||
*
|
*
|
||||||
* @throw IO_ERROR if there is a problem deleting an existing library.
|
* @throw IO_ERROR if there is a problem deleting an existing library.
|
||||||
*/
|
*/
|
||||||
virtual bool FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL );
|
virtual bool FootprintLibDelete( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function IsFootprintLibWritable
|
* Function IsFootprintLibWritable
|
||||||
|
|
|
@ -361,7 +361,7 @@ bool FP_CACHE::IsModified( const wxString& aLibPath, const wxString& aFootprintN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_IO::Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties )
|
void PCB_IO::Save( const wxString& aFileName, BOARD* aBoard, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -1632,7 +1632,7 @@ PCB_IO::~PCB_IO()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOARD* PCB_IO::Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties )
|
BOARD* PCB_IO::Load( const wxString& aFileName, BOARD* aAppendToMe, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
FILE_LINE_READER reader( aFileName );
|
FILE_LINE_READER reader( aFileName );
|
||||||
|
|
||||||
|
@ -1652,7 +1652,7 @@ BOARD* PCB_IO::Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES*
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_IO::init( PROPERTIES* aProperties )
|
void PCB_IO::init( const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
m_board = NULL;
|
m_board = NULL;
|
||||||
m_props = aProperties;
|
m_props = aProperties;
|
||||||
|
@ -1671,7 +1671,7 @@ void PCB_IO::cacheLib( const wxString& aLibraryPath, const wxString& aFootprintN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wxArrayString PCB_IO::FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
wxArrayString PCB_IO::FootprintEnumerate( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -1693,7 +1693,7 @@ wxArrayString PCB_IO::FootprintEnumerate( const wxString& aLibraryPath, PROPERTI
|
||||||
|
|
||||||
|
|
||||||
MODULE* PCB_IO::FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
MODULE* PCB_IO::FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
||||||
PROPERTIES* aProperties )
|
const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -1716,7 +1716,7 @@ MODULE* PCB_IO::FootprintLoad( const wxString& aLibraryPath, const wxString& aFo
|
||||||
|
|
||||||
|
|
||||||
void PCB_IO::FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint,
|
void PCB_IO::FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint,
|
||||||
PROPERTIES* aProperties )
|
const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -1783,7 +1783,7 @@ void PCB_IO::FootprintSave( const wxString& aLibraryPath, const MODULE* aFootpri
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_IO::FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName )
|
void PCB_IO::FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -1801,7 +1801,7 @@ void PCB_IO::FootprintDelete( const wxString& aLibraryPath, const wxString& aFoo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_IO::FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
void PCB_IO::FootprintLibCreate( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
if( wxDir::Exists( aLibraryPath ) )
|
if( wxDir::Exists( aLibraryPath ) )
|
||||||
{
|
{
|
||||||
|
@ -1819,7 +1819,7 @@ void PCB_IO::FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES* aProp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool PCB_IO::FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
bool PCB_IO::FootprintLibDelete( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
wxFileName fn;
|
wxFileName fn;
|
||||||
fn.SetPath( aLibraryPath );
|
fn.SetPath( aLibraryPath );
|
||||||
|
|
|
@ -99,23 +99,23 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void Save( const wxString& aFileName, BOARD* aBoard,
|
void Save( const wxString& aFileName, BOARD* aBoard,
|
||||||
PROPERTIES* aProperties = NULL ); // overload
|
const PROPERTIES* aProperties = NULL ); // overload
|
||||||
|
|
||||||
BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties = NULL );
|
BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
wxArrayString FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL);
|
wxArrayString FootprintEnumerate( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL);
|
||||||
|
|
||||||
MODULE* FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
MODULE* FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
||||||
PROPERTIES* aProperties = NULL );
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint,
|
void FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint,
|
||||||
PROPERTIES* aProperties = NULL );
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName );
|
void FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL);
|
void FootprintLibCreate( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL);
|
||||||
|
|
||||||
bool FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL );
|
bool FootprintLibDelete( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
bool IsFootprintLibWritable( const wxString& aLibraryPath );
|
bool IsFootprintLibWritable( const wxString& aLibraryPath );
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ protected:
|
||||||
|
|
||||||
wxString m_error; ///< for throwing exceptions
|
wxString m_error; ///< for throwing exceptions
|
||||||
BOARD* m_board; ///< which BOARD, no ownership here
|
BOARD* m_board; ///< which BOARD, no ownership here
|
||||||
PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL.
|
const PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL.
|
||||||
FP_CACHE* m_cache; ///< Footprint library cache.
|
FP_CACHE* m_cache; ///< Footprint library cache.
|
||||||
|
|
||||||
LINE_READER* m_reader; ///< no ownership here.
|
LINE_READER* m_reader; ///< no ownership here.
|
||||||
|
@ -212,7 +212,7 @@ private:
|
||||||
/// we only cache one footprint library for now, this determines which one.
|
/// we only cache one footprint library for now, this determines which one.
|
||||||
void cacheLib( const wxString& aLibraryPath, const wxString& aFootprintName = wxEmptyString );
|
void cacheLib( const wxString& aLibraryPath, const wxString& aFootprintName = wxEmptyString );
|
||||||
|
|
||||||
void init( PROPERTIES* aProperties );
|
void init( const PROPERTIES* aProperties );
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KICAD_PLUGIN_H_
|
#endif // KICAD_PLUGIN_H_
|
||||||
|
|
|
@ -231,7 +231,7 @@ static inline long hexParse( const char* next, const char** out = NULL )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOARD* LEGACY_PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties )
|
BOARD* LEGACY_PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -2817,7 +2817,7 @@ double LEGACY_PLUGIN::degParse( const char* aValue, const char** nptrptr )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LEGACY_PLUGIN::init( PROPERTIES* aProperties )
|
void LEGACY_PLUGIN::init( const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
m_board = NULL;
|
m_board = NULL;
|
||||||
m_props = aProperties;
|
m_props = aProperties;
|
||||||
|
@ -2838,7 +2838,7 @@ void LEGACY_PLUGIN::init( PROPERTIES* aProperties )
|
||||||
|
|
||||||
//-----<BOARD Save Functions>---------------------------------------------------
|
//-----<BOARD Save Functions>---------------------------------------------------
|
||||||
|
|
||||||
void LEGACY_PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties )
|
void LEGACY_PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -2858,17 +2858,6 @@ void LEGACY_PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES*
|
||||||
|
|
||||||
m_fp = fp; // member function accessibility
|
m_fp = fp; // member function accessibility
|
||||||
|
|
||||||
#if 0 // old school, property "header" was not used by any other plugin.
|
|
||||||
if( m_props )
|
|
||||||
{
|
|
||||||
wxString header = (*m_props)["header"];
|
|
||||||
|
|
||||||
// save a file header, if caller provided one (with trailing \n hopefully).
|
|
||||||
fprintf( m_fp, "%s", TO_UTF8( header ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
wxString header = wxString::Format(
|
wxString header = wxString::Format(
|
||||||
wxT( "PCBNEW-BOARD Version %d date %s\n\n# Created by Pcbnew%s\n\n" ),
|
wxT( "PCBNEW-BOARD Version %d date %s\n\n# Created by Pcbnew%s\n\n" ),
|
||||||
LEGACY_BOARD_FILE_VERSION, DateAndTime().GetData(),
|
LEGACY_BOARD_FILE_VERSION, DateAndTime().GetData(),
|
||||||
|
@ -2876,7 +2865,6 @@ void LEGACY_PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES*
|
||||||
|
|
||||||
// save a file header, if caller provided one (with trailing \n hopefully).
|
// save a file header, if caller provided one (with trailing \n hopefully).
|
||||||
fprintf( m_fp, "%s", TO_UTF8( header ) );
|
fprintf( m_fp, "%s", TO_UTF8( header ) );
|
||||||
#endif
|
|
||||||
|
|
||||||
SaveBOARD( aBoard );
|
SaveBOARD( aBoard );
|
||||||
}
|
}
|
||||||
|
@ -4225,7 +4213,7 @@ void LEGACY_PLUGIN::cacheLib( const wxString& aLibraryPath )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wxArrayString LEGACY_PLUGIN::FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
wxArrayString LEGACY_PLUGIN::FootprintEnumerate( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -4246,8 +4234,8 @@ wxArrayString LEGACY_PLUGIN::FootprintEnumerate( const wxString& aLibraryPath, P
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
MODULE* LEGACY_PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
MODULE* LEGACY_PLUGIN::FootprintLoad( const wxString& aLibraryPath,
|
||||||
PROPERTIES* aProperties )
|
const wxString& aFootprintName, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -4274,7 +4262,8 @@ MODULE* LEGACY_PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxStri
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LEGACY_PLUGIN::FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint, PROPERTIES* aProperties )
|
void LEGACY_PLUGIN::FootprintSave( const wxString& aLibraryPath,
|
||||||
|
const MODULE* aFootprint, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -4318,7 +4307,8 @@ void LEGACY_PLUGIN::FootprintSave( const wxString& aLibraryPath, const MODULE* a
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LEGACY_PLUGIN::FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName )
|
void LEGACY_PLUGIN::FootprintDelete( const wxString& aLibraryPath,
|
||||||
|
const wxString& aFootprintName, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
LOCALE_IO toggle; // toggles on, then off, the C locale.
|
||||||
|
|
||||||
|
@ -4346,7 +4336,7 @@ void LEGACY_PLUGIN::FootprintDelete( const wxString& aLibraryPath, const wxStrin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LEGACY_PLUGIN::FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
void LEGACY_PLUGIN::FootprintLibCreate( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
if( wxFileExists( aLibraryPath ) )
|
if( wxFileExists( aLibraryPath ) )
|
||||||
{
|
{
|
||||||
|
@ -4366,7 +4356,7 @@ void LEGACY_PLUGIN::FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LEGACY_PLUGIN::FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
bool LEGACY_PLUGIN::FootprintLibDelete( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
wxFileName fn = aLibraryPath;
|
wxFileName fn = aLibraryPath;
|
||||||
|
|
||||||
|
|
|
@ -76,23 +76,23 @@ public:
|
||||||
return extension;
|
return extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties = NULL ); // overload
|
BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties = NULL ); // overload
|
void Save( const wxString& aFileName, BOARD* aBoard, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
wxArrayString FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL);
|
wxArrayString FootprintEnumerate( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL);
|
||||||
|
|
||||||
MODULE* FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
MODULE* FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
||||||
PROPERTIES* aProperties = NULL );
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint,
|
void FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint,
|
||||||
PROPERTIES* aProperties = NULL );
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName );
|
void FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
void FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL );
|
void FootprintLibCreate( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
bool FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL );
|
bool FootprintLibDelete( const wxString& aLibraryPath, const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
bool IsFootprintLibWritable( const wxString& aLibraryPath );
|
bool IsFootprintLibWritable( const wxString& aLibraryPath );
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ protected:
|
||||||
|
|
||||||
wxString m_error; ///< for throwing exceptions
|
wxString m_error; ///< for throwing exceptions
|
||||||
BOARD* m_board; ///< which BOARD, no ownership here
|
BOARD* m_board; ///< which BOARD, no ownership here
|
||||||
PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL.
|
const PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL.
|
||||||
|
|
||||||
LINE_READER* m_reader; ///< no ownership here.
|
LINE_READER* m_reader; ///< no ownership here.
|
||||||
FILE* m_fp; ///< no ownership here.
|
FILE* m_fp; ///< no ownership here.
|
||||||
|
@ -127,7 +127,7 @@ protected:
|
||||||
LP_CACHE* m_cache;
|
LP_CACHE* m_cache;
|
||||||
|
|
||||||
/// initialize PLUGIN like a constructor would, and futz with fresh BOARD if needed.
|
/// initialize PLUGIN like a constructor would, and futz with fresh BOARD if needed.
|
||||||
void init( PROPERTIES* aProperties );
|
void init( const PROPERTIES* aProperties );
|
||||||
|
|
||||||
double biuToDisk; ///< convert from BIUs to disk engineering units
|
double biuToDisk; ///< convert from BIUs to disk engineering units
|
||||||
///< with this scale factor
|
///< with this scale factor
|
||||||
|
|
|
@ -619,7 +619,7 @@ bool PCB_BASE_FRAME::Save_Module_In_Library( const wxString& aLibPath,
|
||||||
if( ! MODULE::IsLibNameValid( footprintName ) )
|
if( ! MODULE::IsLibNameValid( footprintName ) )
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
msg.Printf( _("Error:\none of invalid chars <%s> found\nin <%s>" ),
|
msg.Printf( _("Error:\none of invalid chars '%s' found\nin '%s'" ),
|
||||||
MODULE::ReturnStringLibNameInvalidChars( true ),
|
MODULE::ReturnStringLibNameInvalidChars( true ),
|
||||||
GetChars( footprintName ) );
|
GetChars( footprintName ) );
|
||||||
|
|
||||||
|
|
|
@ -451,7 +451,7 @@ MODULE* PCB_BASE_FRAME::loadFootprint( const FPID& aFootprintId )
|
||||||
|
|
||||||
PLUGIN::RELEASER pi( IO_MGR::PluginFind( IO_MGR::EnumFromStr( row->GetType() ) ) );
|
PLUGIN::RELEASER pi( IO_MGR::PluginFind( IO_MGR::EnumFromStr( row->GetType() ) ) );
|
||||||
|
|
||||||
return pi->FootprintLoad( libPath, footprintName );
|
return pi->FootprintLoad( libPath, footprintName, row->GetProperties() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ const wxString& PCAD_PLUGIN::GetFileExtension() const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOARD* PCAD_PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties )
|
BOARD* PCAD_PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
wxXmlDocument xmlDoc;
|
wxXmlDocument xmlDoc;
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ public:
|
||||||
|
|
||||||
BOARD* Load( const wxString& aFileName,
|
BOARD* Load( const wxString& aFileName,
|
||||||
BOARD* aAppendToMe,
|
BOARD* aAppendToMe,
|
||||||
PROPERTIES* aProperties = NULL );
|
const PROPERTIES* aProperties = NULL );
|
||||||
|
|
||||||
const wxString& GetFileExtension() const;
|
const wxString& GetFileExtension() const;
|
||||||
|
|
||||||
|
@ -52,8 +52,8 @@ public:
|
||||||
PCAD_PLUGIN();
|
PCAD_PLUGIN();
|
||||||
~PCAD_PLUGIN();
|
~PCAD_PLUGIN();
|
||||||
private:
|
private:
|
||||||
PROPERTIES* m_props;
|
const PROPERTIES* m_props;
|
||||||
BOARD* m_board;
|
BOARD* m_board;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PCAD_PLUGIN_H_
|
#endif // PCAD_PLUGIN_H_
|
||||||
|
|
|
@ -1,27 +1,48 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011-2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
||||||
|
* Copyright (C) 2011 KiCad Developers, see change_log.txt for contributors.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
#include <io_mgr.h>
|
#include <io_mgr.h>
|
||||||
//#include <string>
|
|
||||||
|
|
||||||
|
|
||||||
#define FMT_UNIMPLEMENTED _( "Plugin '%s' does not implement the '%s' function." )
|
#define FMT_UNIMPLEMENTED _( "Plugin '%s' does not implement the '%s' function." )
|
||||||
#define FMT_NOTFOUND _( "Plugin type '%s' is not found." )
|
#define FMT_NOTFOUND _( "Plugin type '%s' is not found." )
|
||||||
|
|
||||||
|
|
||||||
BOARD* PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties )
|
BOARD* PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData(), __FUNCTION__ ) );
|
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData(), __FUNCTION__ ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties )
|
void PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData(), __FUNCTION__ ) );
|
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData(), __FUNCTION__ ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wxArrayString PLUGIN::FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
wxArrayString PLUGIN::FootprintEnumerate( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
||||||
|
@ -29,35 +50,35 @@ wxArrayString PLUGIN::FootprintEnumerate( const wxString& aLibraryPath, PROPERTI
|
||||||
|
|
||||||
|
|
||||||
MODULE* PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
MODULE* PLUGIN::FootprintLoad( const wxString& aLibraryPath, const wxString& aFootprintName,
|
||||||
PROPERTIES* aProperties )
|
const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PLUGIN::FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint, PROPERTIES* aProperties )
|
void PLUGIN::FootprintSave( const wxString& aLibraryPath, const MODULE* aFootprint, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PLUGIN::FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName )
|
void PLUGIN::FootprintDelete( const wxString& aLibraryPath, const wxString& aFootprintName, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PLUGIN::FootprintLibCreate( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
void PLUGIN::FootprintLibCreate( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool PLUGIN::FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties )
|
bool PLUGIN::FootprintLibDelete( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||||
{
|
{
|
||||||
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
// not pure virtual so that plugins only have to implement subset of the PLUGIN interface.
|
||||||
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
THROW_IO_ERROR( wxString::Format( FMT_UNIMPLEMENTED, PluginName().GetData() , __FUNCTION__ ) );
|
||||||
|
|
|
@ -88,6 +88,7 @@ bool SaveBoard( wxString& aFileName, BOARD* aBoard,
|
||||||
aBoard->SynchronizeNetsAndNetClasses();
|
aBoard->SynchronizeNetsAndNetClasses();
|
||||||
aBoard->SetCurrentNetClass( aBoard->m_NetClasses.GetDefault()->GetName() );
|
aBoard->SetCurrentNetClass( aBoard->m_NetClasses.GetDefault()->GetName() );
|
||||||
|
|
||||||
|
#if 0
|
||||||
wxString header;
|
wxString header;
|
||||||
PROPERTIES props;
|
PROPERTIES props;
|
||||||
|
|
||||||
|
@ -100,7 +101,9 @@ bool SaveBoard( wxString& aFileName, BOARD* aBoard,
|
||||||
props["header"] = header;
|
props["header"] = header;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
IO_MGR::Save( aFormat, aFileName, aBoard, &props );
|
IO_MGR::Save( aFormat, aFileName, aBoard, &props );
|
||||||
|
#else
|
||||||
|
IO_MGR::Save( aFormat, aFileName, aBoard, NULL );
|
||||||
|
#endif
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue