|
Alain Portal |
c6cc76c |
diff -ru kicad-2010.05.27-5.rev2363/include/wxBasePcbFrame.h kicad-2010.05.27-6.rev2363/include/wxBasePcbFrame.h
|
|
Alain Portal |
c6cc76c |
--- kicad-2010.05.27-5.rev2363/include/wxBasePcbFrame.h 2010-05-28 21:47:34.000000000 +0200
|
|
Alain Portal |
c6cc76c |
+++ kicad-2010.05.27-6.rev2363/include/wxBasePcbFrame.h 2010-06-15 22:57:22.000000000 +0200
|
|
Alain Portal |
c6cc76c |
@@ -213,7 +213,6 @@
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
void Archive_Modules( const wxString& LibName,
|
|
Alain Portal |
c6cc76c |
bool NewModulesOnly );
|
|
Alain Portal |
c6cc76c |
- MODULE* Select_1_Module_From_BOARD( BOARD* Pcb );
|
|
Alain Portal |
c6cc76c |
MODULE* GetModuleByName();
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
/** Function OnModify()
|
|
Alain Portal |
c6cc76c |
diff -ru kicad-2010.05.27-5.rev2363/include/wxPcbStruct.h kicad-2010.05.27-6.rev2363/include/wxPcbStruct.h
|
|
Alain Portal |
c6cc76c |
--- kicad-2010.05.27-5.rev2363/include/wxPcbStruct.h 2010-05-28 21:47:34.000000000 +0200
|
|
Alain Portal |
c6cc76c |
+++ kicad-2010.05.27-6.rev2363/include/wxPcbStruct.h 2010-06-15 22:59:39.000000000 +0200
|
|
Alain Portal |
c6cc76c |
@@ -1088,6 +1088,11 @@
|
|
Alain Portal |
c6cc76c |
void OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct );
|
|
Alain Portal |
c6cc76c |
void Show3D_Frame( wxCommandEvent& event );
|
|
Alain Portal |
c6cc76c |
void GeneralControle( wxDC* DC, wxPoint Mouse );
|
|
Alain Portal |
c6cc76c |
+
|
|
Alain Portal |
c6cc76c |
+ /** function LoadModuleFromBoard
|
|
Alain Portal |
c6cc76c |
+ * called from the main toolbar
|
|
Alain Portal |
c6cc76c |
+ * to load a footprint from board mainly to edit it
|
|
Alain Portal |
c6cc76c |
+ */
|
|
Alain Portal |
c6cc76c |
void LoadModuleFromBoard( wxCommandEvent& event );
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
/** Virtual Function OnModify()
|
|
Alain Portal |
c6cc76c |
@@ -1172,10 +1177,23 @@
|
|
Alain Portal |
c6cc76c |
void RemoveStruct( EDA_BaseStruct* Item );
|
|
Alain Portal |
c6cc76c |
void Transform( MODULE* module, int transform );
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
- // loading Footprint
|
|
Alain Portal |
c6cc76c |
+ // loading/exporting Footprint
|
|
Alain Portal |
c6cc76c |
MODULE* Import_Module( wxDC* DC );
|
|
Alain Portal |
c6cc76c |
void Export_Module( MODULE* ptmod, bool createlib );
|
|
Alain Portal |
c6cc76c |
- void Load_Module_From_BOARD( MODULE* Module );
|
|
Alain Portal |
c6cc76c |
+
|
|
Alain Portal |
c6cc76c |
+ /** function Load_Module_From_BOARD
|
|
Alain Portal |
c6cc76c |
+ * load in Modedit a footfrint from the main board
|
|
Alain Portal |
c6cc76c |
+ * @param Module = the module to load. If NULL, a module reference will we asked to user
|
|
Alain Portal |
c6cc76c |
+ * @return true if a module isloaded, false otherwise.
|
|
Alain Portal |
c6cc76c |
+ */
|
|
Alain Portal |
c6cc76c |
+ bool Load_Module_From_BOARD( MODULE* Module );
|
|
Alain Portal |
c6cc76c |
+
|
|
Alain Portal |
c6cc76c |
+ /** Function Select_1_Module_From_BOARD
|
|
Alain Portal |
c6cc76c |
+ * Display the list of modules currently existing on the BOARD
|
|
Alain Portal |
c6cc76c |
+ * @return a pointer to a module if this module is selected or NULL otherwise
|
|
Alain Portal |
c6cc76c |
+ * @param aPcb = the board from modules can be loaded
|
|
Alain Portal |
c6cc76c |
+ */
|
|
Alain Portal |
c6cc76c |
+ MODULE* Select_1_Module_From_BOARD( BOARD* aPcb );
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
// functions to edit footprint edges
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
diff -ru kicad-2010.05.27-5.rev2363/pcbnew/class_module.cpp kicad-2010.05.27-6.rev2363/pcbnew/class_module.cpp
|
|
Alain Portal |
c6cc76c |
--- kicad-2010.05.27-5.rev2363/pcbnew/class_module.cpp 2010-05-28 21:47:32.000000000 +0200
|
|
Alain Portal |
c6cc76c |
+++ kicad-2010.05.27-6.rev2363/pcbnew/class_module.cpp 2010-06-15 23:00:21.000000000 +0200
|
|
Alain Portal |
c6cc76c |
@@ -101,6 +101,7 @@
|
|
Alain Portal |
c6cc76c |
m_CntRot90 = aModule->m_CntRot90;
|
|
Alain Portal |
c6cc76c |
m_CntRot180 = aModule->m_CntRot180;
|
|
Alain Portal |
c6cc76c |
m_LastEdit_Time = aModule->m_LastEdit_Time;
|
|
Alain Portal |
c6cc76c |
+ m_Link = aModule->m_Link;
|
|
Alain Portal |
c6cc76c |
m_Path = aModule->m_Path; //is this correct behavior?
|
|
Alain Portal |
c6cc76c |
m_TimeStamp = GetTimeStamp();
|
|
Alain Portal |
c6cc76c |
m_LocalSolderMaskMargin = aModule->m_LocalSolderMaskMargin;
|
|
Alain Portal |
c6cc76c |
diff -ru kicad-2010.05.27-5.rev2363/pcbnew/loadcmp.cpp kicad-2010.05.27-6.rev2363/pcbnew/loadcmp.cpp
|
|
Alain Portal |
c6cc76c |
--- kicad-2010.05.27-5.rev2363/pcbnew/loadcmp.cpp 2010-05-28 21:47:32.000000000 +0200
|
|
Alain Portal |
c6cc76c |
+++ kicad-2010.05.27-6.rev2363/pcbnew/loadcmp.cpp 2010-06-15 23:05:34.000000000 +0200
|
|
Alain Portal |
c6cc76c |
@@ -41,27 +41,30 @@
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
static ModList* MList;
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
-
|
|
Alain Portal |
c6cc76c |
-void WinEDA_ModuleEditFrame::Load_Module_From_BOARD( MODULE* Module )
|
|
Alain Portal |
c6cc76c |
+/** function Load_Module_From_BOARD
|
|
Alain Portal |
c6cc76c |
+ * load in Modedit a footfrint from the main board
|
|
Alain Portal |
c6cc76c |
+ * @param Module = the module to load. If NULL, a module reference will we asked to user
|
|
Alain Portal |
c6cc76c |
+ * @return true if a module isloaded, false otherwise.
|
|
Alain Portal |
c6cc76c |
+ */
|
|
Alain Portal |
c6cc76c |
+bool WinEDA_ModuleEditFrame::Load_Module_From_BOARD( MODULE* Module )
|
|
Alain Portal |
c6cc76c |
{
|
|
Alain Portal |
c6cc76c |
MODULE* NewModule;
|
|
Alain Portal |
c6cc76c |
WinEDA_BasePcbFrame* parent = (WinEDA_BasePcbFrame*) GetParent();
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
if( Module == NULL )
|
|
Alain Portal |
c6cc76c |
{
|
|
Alain Portal |
c6cc76c |
- if( parent->GetBoard() == NULL
|
|
Alain Portal |
c6cc76c |
- || parent->GetBoard()->m_Modules == NULL )
|
|
Alain Portal |
c6cc76c |
- return;
|
|
Alain Portal |
c6cc76c |
+ if( ! parent->GetBoard() || ! parent->GetBoard()->m_Modules )
|
|
Alain Portal |
c6cc76c |
+ return false;
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
Module = Select_1_Module_From_BOARD( parent->GetBoard() );
|
|
Alain Portal |
c6cc76c |
}
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
if( Module == NULL )
|
|
Alain Portal |
c6cc76c |
- return;
|
|
Alain Portal |
c6cc76c |
+ return false;
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
SetCurItem( NULL );
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
- Clear_Pcb( TRUE );
|
|
Alain Portal |
c6cc76c |
+ Clear_Pcb( false );
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
GetBoard()->m_Status_Pcb = 0;
|
|
Alain Portal |
c6cc76c |
NewModule = new MODULE( GetBoard() );
|
|
Alain Portal |
c6cc76c |
@@ -80,9 +83,11 @@
|
|
Alain Portal |
c6cc76c |
Place_Module( Module, NULL );
|
|
Alain Portal |
c6cc76c |
if( Module->GetLayer() != LAYER_N_FRONT )
|
|
Alain Portal |
c6cc76c |
Module->Flip( Module->m_Pos );
|
|
Alain Portal |
c6cc76c |
- Rotate_Module( NULL, Module, 0, FALSE );
|
|
Alain Portal |
c6cc76c |
+ Rotate_Module( NULL, Module, 0, false );
|
|
Alain Portal |
c6cc76c |
GetScreen()->ClrModify();
|
|
Alain Portal |
c6cc76c |
Zoom_Automatique( TRUE );
|
|
Alain Portal |
c6cc76c |
+
|
|
Alain Portal |
c6cc76c |
+ return true;
|
|
Alain Portal |
c6cc76c |
}
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
@@ -117,7 +122,7 @@
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
if( ModuleName[0] == '=' ) // Selection by keywords
|
|
Alain Portal |
c6cc76c |
{
|
|
Alain Portal |
c6cc76c |
- AllowWildSeach = FALSE;
|
|
Alain Portal |
c6cc76c |
+ AllowWildSeach = false;
|
|
Alain Portal |
c6cc76c |
keys = ModuleName.AfterFirst( '=' );
|
|
Alain Portal |
c6cc76c |
ModuleName = Select_1_Module_From_List( this, library, wxEmptyString,
|
|
Alain Portal |
c6cc76c |
keys );
|
|
Alain Portal |
c6cc76c |
@@ -130,7 +135,7 @@
|
|
Alain Portal |
c6cc76c |
else if( ( ModuleName.Contains( wxT( "?" ) ) )
|
|
Alain Portal |
c6cc76c |
|| ( ModuleName.Contains( wxT( "*" ) ) ) ) // Selection wild card
|
|
Alain Portal |
c6cc76c |
{
|
|
Alain Portal |
c6cc76c |
- AllowWildSeach = FALSE;
|
|
Alain Portal |
c6cc76c |
+ AllowWildSeach = false;
|
|
Alain Portal |
c6cc76c |
ModuleName = Select_1_Module_From_List( this, library, ModuleName,
|
|
Alain Portal |
c6cc76c |
wxEmptyString );
|
|
Alain Portal |
c6cc76c |
if( ModuleName.IsEmpty() )
|
|
Alain Portal |
c6cc76c |
@@ -140,11 +145,11 @@
|
|
Alain Portal |
c6cc76c |
}
|
|
Alain Portal |
c6cc76c |
}
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
- module = Get_Librairie_Module( library, ModuleName, FALSE );
|
|
Alain Portal |
c6cc76c |
+ module = Get_Librairie_Module( library, ModuleName, false );
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
if( ( module == NULL ) && AllowWildSeach ) /* Search with wildcard */
|
|
Alain Portal |
c6cc76c |
{
|
|
Alain Portal |
c6cc76c |
- AllowWildSeach = FALSE;
|
|
Alain Portal |
c6cc76c |
+ AllowWildSeach = false;
|
|
Alain Portal |
c6cc76c |
wxString wildname = wxChar( '*' ) + ModuleName + wxChar( '*' );
|
|
Alain Portal |
c6cc76c |
ModuleName = wildname;
|
|
Alain Portal |
c6cc76c |
ModuleName = Select_1_Module_From_List( this, library, ModuleName,
|
|
Alain Portal |
c6cc76c |
@@ -445,7 +450,7 @@
|
|
Alain Portal |
c6cc76c |
ListBox->Append( msg );
|
|
Alain Portal |
c6cc76c |
NbModules++;
|
|
Alain Portal |
c6cc76c |
}
|
|
Alain Portal |
c6cc76c |
- else if( WildCompareString( aMask, msg, FALSE ) )
|
|
Alain Portal |
c6cc76c |
+ else if( WildCompareString( aMask, msg, false ) )
|
|
Alain Portal |
c6cc76c |
{
|
|
Alain Portal |
c6cc76c |
ListBox->Append( msg );
|
|
Alain Portal |
c6cc76c |
NbModules++;
|
|
Alain Portal |
c6cc76c |
@@ -594,11 +599,12 @@
|
|
Alain Portal |
c6cc76c |
}
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
-/* Display the list of modules currently PCB
|
|
Alain Portal |
c6cc76c |
- * Returns a pointer if module selected
|
|
Alain Portal |
c6cc76c |
- * Returns NULL otherwise
|
|
Alain Portal |
c6cc76c |
+/** Function Select_1_Module_From_BOARD
|
|
Alain Portal |
c6cc76c |
+ * Display the list of modules currently existing on the BOARD
|
|
Alain Portal |
c6cc76c |
+ * @return a pointer to a module if this module is selected or NULL otherwise
|
|
Alain Portal |
c6cc76c |
+ * @param aPcb = the board from modules can be loaded
|
|
Alain Portal |
c6cc76c |
*/
|
|
Alain Portal |
c6cc76c |
-MODULE* WinEDA_BasePcbFrame::Select_1_Module_From_BOARD( BOARD* Pcb )
|
|
Alain Portal |
c6cc76c |
+MODULE* WinEDA_ModuleEditFrame::Select_1_Module_From_BOARD( BOARD* aPcb )
|
|
Alain Portal |
c6cc76c |
{
|
|
Alain Portal |
c6cc76c |
int ii;
|
|
Alain Portal |
c6cc76c |
MODULE* Module;
|
|
Alain Portal |
c6cc76c |
@@ -610,7 +616,7 @@
|
|
Alain Portal |
c6cc76c |
wxColour( 200, 200, 255 ) );
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
ii = 0;
|
|
Alain Portal |
c6cc76c |
- Module = Pcb->m_Modules;
|
|
Alain Portal |
c6cc76c |
+ Module = aPcb->m_Modules;
|
|
Alain Portal |
c6cc76c |
for( ; Module != NULL; Module = (MODULE*) Module->Next() )
|
|
Alain Portal |
c6cc76c |
{
|
|
Alain Portal |
c6cc76c |
ii++;
|
|
Alain Portal |
c6cc76c |
@@ -635,7 +641,7 @@
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
OldName = CmpName;
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
- Module = Pcb->m_Modules;
|
|
Alain Portal |
c6cc76c |
+ Module = aPcb->m_Modules;
|
|
Alain Portal |
c6cc76c |
for( ; Module != NULL; Module = (MODULE*) Module->Next() )
|
|
Alain Portal |
c6cc76c |
{
|
|
Alain Portal |
c6cc76c |
if( CmpName.CmpNoCase( Module->m_Reference->m_Text ) == 0 )
|
|
Alain Portal |
c6cc76c |
diff -ru kicad-2010.05.27-5.rev2363/pcbnew/modedit.cpp kicad-2010.05.27-6.rev2363/pcbnew/modedit.cpp
|
|
Alain Portal |
c6cc76c |
--- kicad-2010.05.27-5.rev2363/pcbnew/modedit.cpp 2010-05-28 21:47:32.000000000 +0200
|
|
Alain Portal |
c6cc76c |
+++ kicad-2010.05.27-6.rev2363/pcbnew/modedit.cpp 2010-06-15 23:08:06.000000000 +0200
|
|
Alain Portal |
c6cc76c |
@@ -131,11 +131,23 @@
|
|
Alain Portal |
c6cc76c |
return item;
|
|
Alain Portal |
c6cc76c |
}
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
-
|
|
Alain Portal |
c6cc76c |
+/** function LoadModuleFromBoard
|
|
Alain Portal |
c6cc76c |
+ * called from the main toolbar
|
|
Alain Portal |
c6cc76c |
+ * to load a footprint from board mainly to edit it
|
|
Alain Portal |
c6cc76c |
+ */
|
|
Alain Portal |
c6cc76c |
void WinEDA_ModuleEditFrame::LoadModuleFromBoard( wxCommandEvent& event )
|
|
Alain Portal |
c6cc76c |
{
|
|
Alain Portal |
c6cc76c |
+ if( GetScreen()->IsModify() )
|
|
Alain Portal |
c6cc76c |
+ {
|
|
Alain Portal |
c6cc76c |
+ if( !IsOK( this,
|
|
Alain Portal |
c6cc76c |
+ _( "Current footprint changes will be lost and this operation cannot be undone. Continue ?" ) ) )
|
|
Alain Portal |
c6cc76c |
+ return;
|
|
Alain Portal |
c6cc76c |
+ }
|
|
Alain Portal |
c6cc76c |
+
|
|
Alain Portal |
c6cc76c |
+ if( ! Load_Module_From_BOARD( NULL ) )
|
|
Alain Portal |
c6cc76c |
+ return;
|
|
Alain Portal |
c6cc76c |
+
|
|
Alain Portal |
c6cc76c |
GetScreen()->ClearUndoRedoList();
|
|
Alain Portal |
c6cc76c |
- Load_Module_From_BOARD( NULL );
|
|
Alain Portal |
c6cc76c |
GetScreen()->ClrModify();
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
if( m_Draw3DFrame )
|
|
Alain Portal |
c6cc76c |
@@ -333,9 +345,10 @@
|
|
Alain Portal |
c6cc76c |
break;
|
|
Alain Portal |
c6cc76c |
|
|
Alain Portal |
c6cc76c |
case ID_MODEDIT_IMPORT_PART:
|
|
Alain Portal |
c6cc76c |
+ if( ! Clear_Pcb( true ) )
|
|
Alain Portal |
c6cc76c |
+ break; // //this command is aborted
|
|
Alain Portal |
c6cc76c |
GetScreen()->ClearUndoRedoList();
|
|
Alain Portal |
c6cc76c |
SetCurItem( NULL );
|
|
Alain Portal |
c6cc76c |
- Clear_Pcb( true );
|
|
Alain Portal |
c6cc76c |
GetScreen()->m_Curseur = wxPoint( 0, 0 );
|
|
Alain Portal |
c6cc76c |
Import_Module( NULL );
|
|
Alain Portal |
c6cc76c |
redraw = true;
|