Commit dd9497a1 authored by CHARRAS's avatar CHARRAS

Fixed: problem which could crash eeschema when a schematic file in a hierarchy was not found

parent e92706bc
...@@ -5,6 +5,12 @@ Started 2007-June-11 ...@@ -5,6 +5,12 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with
email address. email address.
2008-Feb-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema
Fixed: problem which could crash eeschema when a sub schematic file in a hierarchy was not found.
2008-Feb-27 UPDATE Wayne Stambaugh <stambaughw{at}verizon{dot}net> 2008-Feb-27 UPDATE Wayne Stambaugh <stambaughw{at}verizon{dot}net>
================================================================================ ================================================================================
+ eeschema + eeschema
......
...@@ -13,17 +13,59 @@ ...@@ -13,17 +13,59 @@
/* Local Functions*/ /* Local Functions*/
static int ListeComposants( CmpListStruct* BaseListeCmp, static int ListeComposants( CmpListStruct* BaseListeCmp,
DrawSheetList* sheet ); DrawSheetPath* sheet );
static void BreakReference( CmpListStruct* BaseListeCmp, int NbOfCmp ); static void BreakReference( CmpListStruct* BaseListeCmp, int NbOfCmp );
static void ReAnnotateComponents( CmpListStruct* BaseListeCmp, int NbOfCmp ); static void ReAnnotateComponents( CmpListStruct* BaseListeCmp, int NbOfCmp );
static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp ); static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp );
int GetLastReferenceNumber( CmpListStruct* Objet, int GetLastReferenceNumber( CmpListStruct* Objet,
CmpListStruct* BaseListeCmp, CmpListStruct* BaseListeCmp,
int NbOfCmp ); int NbOfCmp );
static int ExistUnit( CmpListStruct* Objet, int Unit, static int ExistUnit( CmpListStruct* Objet, int Unit,
CmpListStruct* BaseListeCmp, int NbOfCmp ); CmpListStruct* BaseListeCmp, int NbOfCmp );
/************************************************/
void WinEDA_SchematicFrame::UpdateSheetNumberAndDate()
/************************************************/
/* Set a sheet number, the sheet count for sheets in the whole schematic
* and update the date in all screens
*/
{
wxString date = GenDate();
int sheet_number = 1; // sheet 1 is the root sheet
DrawSheetPath* sheetpath;
/* Build the sheet list */
EDA_SheetList SheetList( g_RootSheet );
int sheet_count = SheetList.GetCount();
for( sheetpath = SheetList.GetFirst();
sheetpath != NULL;
sheetpath = SheetList.GetNext() )
{
// Read all sheets in path, but not the root sheet (jj = 1)
for( int jj = 1; jj < sheetpath->m_numSheets; jj++ )
{
DrawSheetStruct* sheet = sheetpath->m_sheets[jj];
sheet->m_SheetNumber = sheet_number++;
sheet->m_NumberOfSheets = sheet_count;
SCH_SCREEN* screen = sheet->m_AssociatedScreen;
if( screen != NULL )
{
screen->m_NumberOfScreen = sheet_count;
screen->m_Date = date;
}
}
}
g_RootSheet->m_AssociatedScreen->m_Date = date;
g_RootSheet->m_AssociatedScreen->m_NumberOfScreen = sheet_count;
g_RootSheet->m_SheetNumber = 1;
g_RootSheet->m_NumberOfSheets = sheet_count;
}
/***************************************************************************** /*****************************************************************************
* Used to annotate the power symbols, before testing erc or computing * Used to annotate the power symbols, before testing erc or computing
* netlist when a component reannotation is not necessary * netlist when a component reannotation is not necessary
...@@ -35,15 +77,15 @@ static int ExistUnit( CmpListStruct* Objet, int Unit, ...@@ -35,15 +77,15 @@ static int ExistUnit( CmpListStruct* Objet, int Unit,
void ReAnnotatePowerSymbolsOnly( void ) void ReAnnotatePowerSymbolsOnly( void )
{ {
/* Build the screen list (screen, not sheet) */ /* Build the screen list (screen, not sheet) */
EDA_SheetList SheetList( NULL ); EDA_SheetList SheetList( NULL );
DrawSheetList* sheet; DrawSheetPath* sheet;
int CmpNumber = 1; int CmpNumber = 1;
for( sheet = SheetList.GetFirst(); for( sheet = SheetList.GetFirst();
sheet != NULL; sheet != NULL;
sheet = SheetList.GetNext() ) sheet = SheetList.GetNext() )
{ {
EDA_BaseStruct* DrawList = sheet->LastDrawList(); EDA_BaseStruct* DrawList = sheet->LastDrawList();
for( ; DrawList != NULL; DrawList = DrawList->Pnext ) for( ; DrawList != NULL; DrawList = DrawList->Pnext )
...@@ -97,7 +139,7 @@ int AnnotateByPosition( const void* o1, const void* o2 ) ...@@ -97,7 +139,7 @@ int AnnotateByPosition( const void* o1, const void* o2 )
CmpListStruct* item1 = (CmpListStruct*) o1; CmpListStruct* item1 = (CmpListStruct*) o1;
CmpListStruct* item2 = (CmpListStruct*) o2; CmpListStruct* item2 = (CmpListStruct*) o2;
int ii = strnicmp( item1->m_TextRef, item2->m_TextRef, 32 ); int ii = strnicmp( item1->m_TextRef, item2->m_TextRef, 32 );
if( ii == 0 ) if( ii == 0 )
ii = item1->m_SheetList.Cmp( item2->m_SheetList ); ii = item1->m_SheetList.Cmp( item2->m_SheetList );
...@@ -113,20 +155,20 @@ int AnnotateByPosition( const void* o1, const void* o2 ) ...@@ -113,20 +155,20 @@ int AnnotateByPosition( const void* o1, const void* o2 )
/***************************************************************************** /*****************************************************************************
* qsort function to annotate items by value * qsort function to annotate items by value
* Components are sorted * Components are sorted
* by reference * by reference
* if same reference: by value * if same reference: by value
* if same value: by unit number * if same value: by unit number
* if same unit number, by sheet * if same unit number, by sheet
* if same sheet, by time stamp * if same sheet, by time stamp
*****************************************************************************/ *****************************************************************************/
int AnnotateByValue( const void* o1, const void* o2 ) int AnnotateByValue( const void* o1, const void* o2 )
{ {
CmpListStruct* item1 = (CmpListStruct*) o1; CmpListStruct* item1 = (CmpListStruct*) o1;
CmpListStruct* item2 = (CmpListStruct*) o2; CmpListStruct* item2 = (CmpListStruct*) o2;
int ii = strnicmp( item1->m_TextRef, item2->m_TextRef, 32 ); int ii = strnicmp( item1->m_TextRef, item2->m_TextRef, 32 );
if( ii == 0 ) if( ii == 0 )
ii = strnicmp( item1->m_TextValue, item2->m_TextValue, 32 ); ii = strnicmp( item1->m_TextValue, item2->m_TextValue, 32 );
...@@ -167,43 +209,43 @@ void DeleteAnnotation( WinEDA_SchematicFrame* parent, bool annotateSchematic ) ...@@ -167,43 +209,43 @@ void DeleteAnnotation( WinEDA_SchematicFrame* parent, bool annotateSchematic )
/***************************************************************************** /*****************************************************************************
* AnnotateComponents: * AnnotateComponents:
* *
* Compute the annotation of the components for the whole project, or the * Compute the annotation of the components for the whole project, or the
* current sheet only. All the components or the new ones only will be * current sheet only. All the components or the new ones only will be
* annotated. * annotated.
*****************************************************************************/ *****************************************************************************/
void AnnotateComponents( WinEDA_SchematicFrame* parent, void AnnotateComponents( WinEDA_SchematicFrame* parent,
bool annotateSchematic, bool annotateSchematic,
bool sortByPosition, bool sortByPosition,
bool resetAnnotation ) bool resetAnnotation )
{ {
int ii, NbOfCmp; int ii, NbOfCmp;
DrawSheetList* sheet; DrawSheetPath* sheet;
CmpListStruct* BaseListeCmp; CmpListStruct* BaseListeCmp;
wxBusyCursor dummy; wxBusyCursor dummy;
/* If it is an annotation for all the components, reset previous /* If it is an annotation for all the components, reset previous
annotation: */ * annotation: */
if( resetAnnotation ) if( resetAnnotation )
DeleteAnnotation( parent, annotateSchematic ); DeleteAnnotation( parent, annotateSchematic );
/* Build the sheet list */ /* Build the sheet list */
EDA_SheetList SheetList( g_RootSheet ); EDA_SheetList SheetList( g_RootSheet );
/* Update the screen number, sheet count and date */ /* Update the sheet number, sheet count and date */
SheetList.UpdateSheetNumberAndDate(); parent->UpdateSheetNumberAndDate();
/* First pass: Component counting */ /* First pass: Component counting */
ii = 0; ii = 0;
sheet = parent->GetSheet(); sheet = parent->GetSheet();
if( annotateSchematic ) if( annotateSchematic )
{ {
NbOfCmp = 0; NbOfCmp = 0;
for( sheet = SheetList.GetFirst(); for( sheet = SheetList.GetFirst();
sheet != NULL; sheet != NULL;
sheet = SheetList.GetNext() ) sheet = SheetList.GetNext() )
NbOfCmp += ListeComposants( NULL, sheet ); NbOfCmp += ListeComposants( NULL, sheet );
} }
else else
...@@ -219,8 +261,8 @@ void AnnotateComponents( WinEDA_SchematicFrame* parent, ...@@ -219,8 +261,8 @@ void AnnotateComponents( WinEDA_SchematicFrame* parent,
{ {
ii = 0; ii = 0;
for( sheet = SheetList.GetFirst(); for( sheet = SheetList.GetFirst();
sheet != NULL; sheet != NULL;
sheet = SheetList.GetNext() ) sheet = SheetList.GetNext() )
ii += ListeComposants( BaseListeCmp + ii, sheet ); ii += ListeComposants( BaseListeCmp + ii, sheet );
} }
else else
...@@ -230,15 +272,15 @@ void AnnotateComponents( WinEDA_SchematicFrame* parent, ...@@ -230,15 +272,15 @@ void AnnotateComponents( WinEDA_SchematicFrame* parent,
DisplayError( parent, wxT( "Internal error in AnnotateComponents()" ) ); DisplayError( parent, wxT( "Internal error in AnnotateComponents()" ) );
/* Break full components reference in name (prefix) and number: /* Break full components reference in name (prefix) and number:
example: IC1 become IC, and 1 */ * example: IC1 become IC, and 1 */
BreakReference( BaseListeCmp, NbOfCmp ); BreakReference( BaseListeCmp, NbOfCmp );
if ( sortByPosition ) if( sortByPosition )
qsort( BaseListeCmp, NbOfCmp, sizeof(CmpListStruct), qsort( BaseListeCmp, NbOfCmp, sizeof(CmpListStruct),
( int( * ) ( const void*, const void* ) )AnnotateByValue ); ( int( * ) ( const void*, const void* ) )AnnotateByValue );
else else
qsort( BaseListeCmp, NbOfCmp, sizeof(CmpListStruct), qsort( BaseListeCmp, NbOfCmp, sizeof(CmpListStruct),
( int( * ) ( const void*, const void* ) )AnnotateByPosition ); ( int( * ) ( const void*, const void* ) )AnnotateByPosition );
/* Recalculate reference numbers */ /* Recalculate reference numbers */
ComputeReferenceNumber( BaseListeCmp, NbOfCmp ); ComputeReferenceNumber( BaseListeCmp, NbOfCmp );
...@@ -254,10 +296,10 @@ void AnnotateComponents( WinEDA_SchematicFrame* parent, ...@@ -254,10 +296,10 @@ void AnnotateComponents( WinEDA_SchematicFrame* parent,
/***************************************************************************** /*****************************************************************************
* if BaseListeCmp == NULL : count components * if BaseListeCmp == NULL : count components
* else update data table BaseListeCmp * else update data table BaseListeCmp
*****************************************************************************/ *****************************************************************************/
int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetList* sheet ) int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetPath* sheet )
{ {
int NbrCmp = 0; int NbrCmp = 0;
EDA_BaseStruct* DrawList = sheet->LastDrawList(); EDA_BaseStruct* DrawList = sheet->LastDrawList();
...@@ -270,8 +312,8 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetList* sheet ) ...@@ -270,8 +312,8 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetList* sheet )
{ {
DrawLibItem = (EDA_SchComponentStruct*) DrawList; DrawLibItem = (EDA_SchComponentStruct*) DrawList;
Entry = FindLibPart( DrawLibItem->m_ChipName.GetData(), Entry = FindLibPart( DrawLibItem->m_ChipName.GetData(),
wxEmptyString, wxEmptyString,
FIND_ROOT ); FIND_ROOT );
if( Entry == NULL ) if( Entry == NULL )
continue; continue;
...@@ -294,7 +336,7 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetList* sheet ) ...@@ -294,7 +336,7 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetList* sheet )
DrawLibItem->SetRef( sheet, wxT( "DefRef?" ) ); DrawLibItem->SetRef( sheet, wxT( "DefRef?" ) );
strncpy( BaseListeCmp[NbrCmp].m_TextRef, strncpy( BaseListeCmp[NbrCmp].m_TextRef,
CONV_TO_UTF8( DrawLibItem->GetRef( sheet ) ), 32 ); CONV_TO_UTF8( DrawLibItem->GetRef( sheet ) ), 32 );
BaseListeCmp[NbrCmp].m_NumRef = -1; BaseListeCmp[NbrCmp].m_NumRef = -1;
...@@ -302,7 +344,7 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetList* sheet ) ...@@ -302,7 +344,7 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetList* sheet )
DrawLibItem->m_Field[VALUE].m_Text = wxT( "~" ); DrawLibItem->m_Field[VALUE].m_Text = wxT( "~" );
strncpy( BaseListeCmp[NbrCmp].m_TextValue, strncpy( BaseListeCmp[NbrCmp].m_TextValue,
CONV_TO_UTF8( DrawLibItem->m_Field[VALUE].m_Text ), 32 ); CONV_TO_UTF8( DrawLibItem->m_Field[VALUE].m_Text ), 32 );
NbrCmp++; NbrCmp++;
} }
} }
...@@ -312,9 +354,9 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetList* sheet ) ...@@ -312,9 +354,9 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetList* sheet )
/***************************************************************************** /*****************************************************************************
* Update the reference component for the schematic project (or the current * Update the reference component for the schematic project (or the current
* sheet) * sheet)
*****************************************************************************/ *****************************************************************************/
static void ReAnnotateComponents( CmpListStruct* BaseListeCmp, int NbOfCmp ) static void ReAnnotateComponents( CmpListStruct* BaseListeCmp, int NbOfCmp )
{ {
int ii; int ii;
...@@ -333,21 +375,21 @@ static void ReAnnotateComponents( CmpListStruct* BaseListeCmp, int NbOfCmp ) ...@@ -333,21 +375,21 @@ static void ReAnnotateComponents( CmpListStruct* BaseListeCmp, int NbOfCmp )
sprintf( Text + strlen( Text ), "%d", BaseListeCmp[ii].m_NumRef ); sprintf( Text + strlen( Text ), "%d", BaseListeCmp[ii].m_NumRef );
DrawLibItem->SetRef( &(BaseListeCmp[ii].m_SheetList), DrawLibItem->SetRef( &(BaseListeCmp[ii].m_SheetList),
CONV_FROM_UTF8( Text ) ); CONV_FROM_UTF8( Text ) );
DrawLibItem->m_Multi = BaseListeCmp[ii].m_Unit; DrawLibItem->m_Multi = BaseListeCmp[ii].m_Unit;
} }
} }
/***************************************************************************** /*****************************************************************************
* Split component reference designators into a name (prefix) and number. * Split component reference designators into a name (prefix) and number.
* Example: IC1 becomes IC and 1 in the .m_NumRef member. * Example: IC1 becomes IC and 1 in the .m_NumRef member.
* For multi part per package components not already annotated, set .m_Unit * For multi part per package components not already annotated, set .m_Unit
* to a max value (0x7FFFFFFF). * to a max value (0x7FFFFFFF).
* *
* @param BaseListeCmp = list of component * @param BaseListeCmp = list of component
* @param NbOfCmp = item count in the list * @param NbOfCmp = item count in the list
*****************************************************************************/ *****************************************************************************/
void BreakReference( CmpListStruct* BaseListeCmp, int NbOfCmp ) void BreakReference( CmpListStruct* BaseListeCmp, int NbOfCmp )
{ {
int ii, ll; int ii, ll;
...@@ -388,17 +430,17 @@ void BreakReference( CmpListStruct* BaseListeCmp, int NbOfCmp ) ...@@ -388,17 +430,17 @@ void BreakReference( CmpListStruct* BaseListeCmp, int NbOfCmp )
} }
} }
wxLogDebug( wxT("BreakReference(): %s number found: %d\n" ), wxLogDebug( wxT( "BreakReference(): %s number found: %d\n" ),
BaseListeCmp[ii].m_TextRef, BaseListeCmp[ii].m_TextRef,
BaseListeCmp[ii].m_NumRef ); BaseListeCmp[ii].m_NumRef );
} }
} }
/***************************************************************************** /*****************************************************************************
* Compute the reference number for components without reference number * Compute the reference number for components without reference number
* Compute .m_NumRef member * Compute .m_NumRef member
*****************************************************************************/ *****************************************************************************/
static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp ) static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp )
{ {
int ii, jj, LastReferenceNumber, NumberOfUnits, Unit; int ii, jj, LastReferenceNumber, NumberOfUnits, Unit;
...@@ -429,8 +471,8 @@ static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp ) ...@@ -429,8 +471,8 @@ static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp )
{ {
RefText = BaseListeCmp[ii].m_TextRef; RefText = BaseListeCmp[ii].m_TextRef;
LastReferenceNumber = GetLastReferenceNumber( BaseListeCmp + ii, LastReferenceNumber = GetLastReferenceNumber( BaseListeCmp + ii,
BaseListeCmp, BaseListeCmp,
NbOfCmp ); NbOfCmp );
} }
/* Annotation of one part per package components (trivial case)*/ /* Annotation of one part per package components (trivial case)*/
...@@ -448,7 +490,7 @@ static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp ) ...@@ -448,7 +490,7 @@ static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp )
} }
/* Annotation of multi-part components ( n parts per package ) /* Annotation of multi-part components ( n parts per package )
(complex case) */ * (complex case) */
ValText = BaseListeCmp[ii].m_TextValue; ValText = BaseListeCmp[ii].m_TextValue;
NumberOfUnits = BaseListeCmp[ii].m_NbParts; NumberOfUnits = BaseListeCmp[ii].m_NbParts;
...@@ -486,10 +528,11 @@ static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp ) ...@@ -486,10 +528,11 @@ static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp )
{ {
continue; continue;
} }
/* Component without reference number found, annotate it if /* Component without reference number found, annotate it if
possible */ * possible */
if( !BaseListeCmp[jj].m_PartsLocked || if( !BaseListeCmp[jj].m_PartsLocked
(BaseListeCmp[jj].m_Unit == Unit) ) || (BaseListeCmp[jj].m_Unit == Unit) )
{ {
BaseListeCmp[jj].m_NumRef = BaseListeCmp[ii].m_NumRef; BaseListeCmp[jj].m_NumRef = BaseListeCmp[ii].m_NumRef;
BaseListeCmp[jj].m_Unit = Unit; BaseListeCmp[jj].m_Unit = Unit;
...@@ -504,17 +547,17 @@ static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp ) ...@@ -504,17 +547,17 @@ static void ComputeReferenceNumber( CmpListStruct* BaseListeCmp, int NbOfCmp )
/***************************************************************************** /*****************************************************************************
* Search the last used (greatest) reference number in the component list * Search the last used (greatest) reference number in the component list
* for the prefix reference given by Objet * for the prefix reference given by Objet
* The component list must be sorted. * The component list must be sorted.
* *
* @param Objet = reference item ( Objet->m_TextRef is the search pattern) * @param Objet = reference item ( Objet->m_TextRef is the search pattern)
* @param BaseListeCmp = list of items * @param BaseListeCmp = list of items
* @param NbOfCmp = items count in list of items * @param NbOfCmp = items count in list of items
*****************************************************************************/ *****************************************************************************/
int GetLastReferenceNumber( CmpListStruct* Objet, int GetLastReferenceNumber( CmpListStruct* Objet,
CmpListStruct* BaseListeCmp, CmpListStruct* BaseListeCmp,
int NbOfCmp ) int NbOfCmp )
{ {
CmpListStruct* LastObjet = BaseListeCmp + NbOfCmp; CmpListStruct* LastObjet = BaseListeCmp + NbOfCmp;
int LastNumber = 0; int LastNumber = 0;
...@@ -535,13 +578,13 @@ int GetLastReferenceNumber( CmpListStruct* Objet, ...@@ -535,13 +578,13 @@ int GetLastReferenceNumber( CmpListStruct* Objet,
/***************************************************************************** /*****************************************************************************
* TODO: Translate this to english/ * TODO: Translate this to english/
* Recherche dans la liste triee des composants, pour les composants * Recherche dans la liste triee des composants, pour les composants
* multiples s'il existe pour le composant de reference Objet, * multiples s'il existe pour le composant de reference Objet,
* une unite de numero Unit * une unite de numero Unit
* Retourne index dans BaseListeCmp si oui * Retourne index dans BaseListeCmp si oui
* retourne -1 si non * retourne -1 si non
*****************************************************************************/ *****************************************************************************/
static int ExistUnit( CmpListStruct* Objet, int Unit, static int ExistUnit( CmpListStruct* Objet, int Unit,
CmpListStruct* BaseListeCmp, int NbOfCmp ) CmpListStruct* BaseListeCmp, int NbOfCmp )
{ {
...@@ -577,18 +620,18 @@ static int ExistUnit( CmpListStruct* Objet, int Unit, ...@@ -577,18 +620,18 @@ static int ExistUnit( CmpListStruct* Objet, int Unit,
/***************************************************************************** /*****************************************************************************
* *
* Function CheckAnnotate * Function CheckAnnotate
* @return component count ( which are not annotated or have the same * @return component count ( which are not annotated or have the same
* reference (duplicates)) * reference (duplicates))
* @param oneSheetOnly : true = search is made only in the current sheet * @param oneSheetOnly : true = search is made only in the current sheet
* false = search in whole hierarchy (usual search). * false = search in whole hierarchy (usual search).
* *
*****************************************************************************/ *****************************************************************************/
int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
{ {
int ii, error, NbOfCmp; int ii, error, NbOfCmp;
DrawSheetList* sheet; DrawSheetPath* sheet;
CmpListStruct* ListeCmp = NULL; CmpListStruct* ListeCmp = NULL;
wxString Buff; wxString Buff;
wxString msg, cmpref; wxString msg, cmpref;
...@@ -604,8 +647,8 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) ...@@ -604,8 +647,8 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
{ {
NbOfCmp = 0; NbOfCmp = 0;
for( sheet = SheetList.GetFirst(); for( sheet = SheetList.GetFirst();
sheet != NULL; sheet != NULL;
sheet = SheetList.GetNext() ) sheet = SheetList.GetNext() )
NbOfCmp += ListeComposants( NULL, sheet ); NbOfCmp += ListeComposants( NULL, sheet );
} }
else else
...@@ -626,8 +669,8 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) ...@@ -626,8 +669,8 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
{ {
ii = 0; ii = 0;
for( sheet = SheetList.GetFirst(); for( sheet = SheetList.GetFirst();
sheet != NULL; sheet != NULL;
sheet = SheetList.GetNext() ) sheet = SheetList.GetNext() )
ii += ListeComposants( ListeCmp + ii, sheet ); ii += ListeComposants( ListeCmp + ii, sheet );
} }
else else
...@@ -638,7 +681,7 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) ...@@ -638,7 +681,7 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
qsort( ListeCmp, NbOfCmp, sizeof(CmpListStruct), AnnotateByValue ); qsort( ListeCmp, NbOfCmp, sizeof(CmpListStruct), AnnotateByValue );
/* Break full components reference in name (prefix) and number: example: /* Break full components reference in name (prefix) and number: example:
IC1 become IC, and 1 */ * IC1 become IC, and 1 */
BreakReference( ListeCmp, NbOfCmp ); BreakReference( ListeCmp, NbOfCmp );
/* count not yet annotated items */ /* count not yet annotated items */
...@@ -657,7 +700,7 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) ...@@ -657,7 +700,7 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
cmpref = CONV_FROM_UTF8( ListeCmp[ii].m_TextRef ); cmpref = CONV_FROM_UTF8( ListeCmp[ii].m_TextRef );
msg.Printf( _( "item not annotated: %s%s" ), msg.Printf( _( "item not annotated: %s%s" ),
cmpref.GetData(), Buff.GetData() ); cmpref.GetData(), Buff.GetData() );
if( (ListeCmp[ii].m_Unit > 0) && (ListeCmp[ii].m_Unit < 0x7FFFFFFF) ) if( (ListeCmp[ii].m_Unit > 0) && (ListeCmp[ii].m_Unit < 0x7FFFFFFF) )
{ {
...@@ -679,10 +722,10 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) ...@@ -679,10 +722,10 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
cmpref = CONV_FROM_UTF8( ListeCmp[ii].m_TextRef ); cmpref = CONV_FROM_UTF8( ListeCmp[ii].m_TextRef );
msg.Printf( _( "Error item %s%s" ), cmpref.GetData(), msg.Printf( _( "Error item %s%s" ), cmpref.GetData(),
Buff.GetData() ); Buff.GetData() );
Buff.Printf( _( " unit %d and no more than %d parts" ), Buff.Printf( _( " unit %d and no more than %d parts" ),
ListeCmp[ii].m_Unit, ListeCmp[ii].m_NbParts ); ListeCmp[ii].m_Unit, ListeCmp[ii].m_NbParts );
msg << Buff; msg << Buff;
DisplayError( frame, msg ); DisplayError( frame, msg );
error++; error++;
...@@ -700,8 +743,8 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) ...@@ -700,8 +743,8 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
Buff.Empty(); Buff.Empty();
if( (stricmp( ListeCmp[ii].m_TextRef, if( (stricmp( ListeCmp[ii].m_TextRef,
ListeCmp[ii + 1].m_TextRef ) != 0)|| ListeCmp[ii + 1].m_TextRef ) != 0)
( ListeCmp[ii].m_NumRef != ListeCmp[ii + 1].m_NumRef ) ) || ( ListeCmp[ii].m_NumRef != ListeCmp[ii + 1].m_NumRef ) )
continue; continue;
/* Same reference found */ /* Same reference found */
...@@ -716,7 +759,7 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) ...@@ -716,7 +759,7 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
cmpref = CONV_FROM_UTF8( ListeCmp[ii].m_TextRef ); cmpref = CONV_FROM_UTF8( ListeCmp[ii].m_TextRef );
msg.Printf( _( "Multiple item %s%s" ), msg.Printf( _( "Multiple item %s%s" ),
cmpref.GetData(), Buff.GetData() ); cmpref.GetData(), Buff.GetData() );
if( (ListeCmp[ii].m_Unit > 0) && (ListeCmp[ii].m_Unit < 0x7FFFFFFF) ) if( (ListeCmp[ii].m_Unit > 0) && (ListeCmp[ii].m_Unit < 0x7FFFFFFF) )
{ {
...@@ -739,7 +782,7 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) ...@@ -739,7 +782,7 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
cmpref = CONV_FROM_UTF8( ListeCmp[ii].m_TextRef ); cmpref = CONV_FROM_UTF8( ListeCmp[ii].m_TextRef );
msg.Printf( _( "Multiple item %s%s" ), msg.Printf( _( "Multiple item %s%s" ),
cmpref.GetData(), Buff.GetData() ); cmpref.GetData(), Buff.GetData() );
if( (ListeCmp[ii].m_Unit > 0) && (ListeCmp[ii].m_Unit < 0x7FFFFFFF) ) if( (ListeCmp[ii].m_Unit > 0) && (ListeCmp[ii].m_Unit < 0x7FFFFFFF) )
{ {
...@@ -753,7 +796,7 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) ...@@ -753,7 +796,7 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
/* Error if values are different between units, for the same reference */ /* Error if values are different between units, for the same reference */
if( stricmp( ListeCmp[ii].m_TextValue, if( stricmp( ListeCmp[ii].m_TextValue,
ListeCmp[ii + 1].m_TextValue ) != 0 ) ListeCmp[ii + 1].m_TextValue ) != 0 )
{ {
wxString nextcmpref, cmpvalue, nextcmpvalue; wxString nextcmpref, cmpvalue, nextcmpvalue;
cmpref = CONV_FROM_UTF8( ListeCmp[ii].m_TextRef ); cmpref = CONV_FROM_UTF8( ListeCmp[ii].m_TextRef );
...@@ -761,13 +804,13 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) ...@@ -761,13 +804,13 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly )
cmpvalue = CONV_FROM_UTF8( ListeCmp[ii].m_TextValue ); cmpvalue = CONV_FROM_UTF8( ListeCmp[ii].m_TextValue );
nextcmpvalue = CONV_FROM_UTF8( ListeCmp[ii + 1].m_TextValue ); nextcmpvalue = CONV_FROM_UTF8( ListeCmp[ii + 1].m_TextValue );
msg.Printf( _( "Diff values for %s%d%c (%s) and %s%d%c (%s)" ), msg.Printf( _( "Diff values for %s%d%c (%s) and %s%d%c (%s)" ),
cmpref.GetData(), cmpref.GetData(),
ListeCmp[ii].m_NumRef, ListeCmp[ii].m_NumRef,
ListeCmp[ii].m_Unit + 'A' - 1, ListeCmp[ii].m_Unit + 'A' - 1,
cmpvalue.GetData(), nextcmpref.GetData(), cmpvalue.GetData(), nextcmpref.GetData(),
ListeCmp[ii + 1].m_NumRef, ListeCmp[ii + 1].m_NumRef,
ListeCmp[ii + 1].m_Unit + 'A' - 1, ListeCmp[ii + 1].m_Unit + 'A' - 1,
nextcmpvalue.GetData() ); nextcmpvalue.GetData() );
DisplayError( frame, msg ); DisplayError( frame, msg );
error++; error++;
......
...@@ -208,7 +208,7 @@ void WinEDA_AnnotateFrame::CreateControls() ...@@ -208,7 +208,7 @@ void WinEDA_AnnotateFrame::CreateControls()
/* TODO: Check if there is any existing annotation and enable/disable /* TODO: Check if there is any existing annotation and enable/disable
* the clear button accordingly. Probably should also enable/ * the clear button accordingly. Probably should also enable/
* disable new components radio button if all of the components * disable new components radio button if all of the components
* are already annotated. Some low level work on the DrawSheetList * are already annotated. Some low level work on the DrawSheetPath
* class will need to be done to accomadate this. * class will need to be done to accomadate this.
*/ */
m_btnClear = new wxButton( this, wxID_CLEAR ); m_btnClear = new wxButton( this, wxID_CLEAR );
......
...@@ -25,7 +25,7 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_ ...@@ -25,7 +25,7 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_
static void CollectStructsToDrag( SCH_SCREEN* screen ); static void CollectStructsToDrag( SCH_SCREEN* screen );
static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ); static void AddPickedItem( SCH_SCREEN* screen, wxPoint position );
static LibEDA_BaseStruct* GetNextPinPosition( EDA_SchComponentStruct* DrawLibItem, static LibEDA_BaseStruct* GetNextPinPosition( EDA_SchComponentStruct* DrawLibItem,
wxPoint & position ); wxPoint& position );
static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ); static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, bool erase );
static EDA_BaseStruct* SaveStructListForPaste( EDA_BaseStruct* DrawStruct ); static EDA_BaseStruct* SaveStructListForPaste( EDA_BaseStruct* DrawStruct );
static bool MirrorStruct( WinEDA_DrawPanel* panel, wxDC* DC, static bool MirrorStruct( WinEDA_DrawPanel* panel, wxDC* DC,
...@@ -81,7 +81,7 @@ void WinEDA_SchematicFrame::InitBlockPasteInfos() ...@@ -81,7 +81,7 @@ void WinEDA_SchematicFrame::InitBlockPasteInfos()
/* Init the parameters used by the block paste command /* Init the parameters used by the block paste command
*/ */
{ {
DrawBlockStruct* block = & GetScreen()->BlockLocate; DrawBlockStruct* block = &GetScreen()->BlockLocate;
block->m_BlockDrawStruct = g_BlockSaveDataList; block->m_BlockDrawStruct = g_BlockSaveDataList;
DrawPanel->ManageCurseur = DrawMovingBlockOutlines; DrawPanel->ManageCurseur = DrawMovingBlockOutlines;
...@@ -99,7 +99,7 @@ void WinEDA_SchematicFrame::HandleBlockPlace( wxDC* DC ) ...@@ -99,7 +99,7 @@ void WinEDA_SchematicFrame::HandleBlockPlace( wxDC* DC )
*/ */
{ {
bool err = FALSE; bool err = FALSE;
DrawBlockStruct* block = & GetScreen()->BlockLocate; DrawBlockStruct* block = &GetScreen()->BlockLocate;
EDA_BaseStruct* NewStruct = NULL; EDA_BaseStruct* NewStruct = NULL;
...@@ -208,7 +208,7 @@ int WinEDA_SchematicFrame::HandleBlockEnd( wxDC* DC ) ...@@ -208,7 +208,7 @@ int WinEDA_SchematicFrame::HandleBlockEnd( wxDC* DC )
{ {
int ii = 0; int ii = 0;
bool zoom_command = FALSE; bool zoom_command = FALSE;
DrawBlockStruct* block = & GetScreen()->BlockLocate; DrawBlockStruct* block = &GetScreen()->BlockLocate;
if( block->m_BlockDrawStruct ) if( block->m_BlockDrawStruct )
{ {
...@@ -234,7 +234,7 @@ int WinEDA_SchematicFrame::HandleBlockEnd( wxDC* DC ) ...@@ -234,7 +234,7 @@ int WinEDA_SchematicFrame::HandleBlockEnd( wxDC* DC )
break; break;
case BLOCK_DRAG: /* Drag */ case BLOCK_DRAG: /* Drag */
BreakSegmentOnJunction( (SCH_SCREEN*)GetScreen() ); BreakSegmentOnJunction( (SCH_SCREEN*) GetScreen() );
case BLOCK_MOVE: /* Move */ case BLOCK_MOVE: /* Move */
case BLOCK_COPY: /* Copy */ case BLOCK_COPY: /* Copy */
...@@ -245,7 +245,7 @@ int WinEDA_SchematicFrame::HandleBlockEnd( wxDC* DC ) ...@@ -245,7 +245,7 @@ int WinEDA_SchematicFrame::HandleBlockEnd( wxDC* DC )
if( block->m_BlockDrawStruct != NULL ) if( block->m_BlockDrawStruct != NULL )
{ {
ii = 1; ii = 1;
CollectStructsToDrag( (SCH_SCREEN*)GetScreen() ); CollectStructsToDrag( (SCH_SCREEN*) GetScreen() );
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE ); DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
DrawPanel->ManageCurseur = DrawMovingBlockOutlines; DrawPanel->ManageCurseur = DrawMovingBlockOutlines;
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE ); DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
...@@ -348,7 +348,7 @@ void WinEDA_SchematicFrame::HandleBlockEndByPopUp( int Command, wxDC* DC ) ...@@ -348,7 +348,7 @@ void WinEDA_SchematicFrame::HandleBlockEndByPopUp( int Command, wxDC* DC )
*/ */
{ {
int ii = 0; int ii = 0;
DrawBlockStruct* block = & GetScreen()->BlockLocate; DrawBlockStruct* block = &GetScreen()->BlockLocate;
if( block->m_Command != BLOCK_MOVE ) if( block->m_Command != BLOCK_MOVE )
return; return;
...@@ -381,14 +381,14 @@ void WinEDA_SchematicFrame::HandleBlockEndByPopUp( int Command, wxDC* DC ) ...@@ -381,14 +381,14 @@ void WinEDA_SchematicFrame::HandleBlockEndByPopUp( int Command, wxDC* DC )
} }
block->m_BlockDrawStruct = NULL; block->m_BlockDrawStruct = NULL;
} }
BreakSegmentOnJunction( (SCH_SCREEN*)GetScreen() ); BreakSegmentOnJunction( (SCH_SCREEN*) GetScreen() );
block->m_BlockDrawStruct = block->m_BlockDrawStruct =
PickStruct( GetScreen()->BlockLocate, PickStruct( GetScreen()->BlockLocate,
GetScreen(), SEARCHALL ); GetScreen(), SEARCHALL );
if( block->m_BlockDrawStruct != NULL ) if( block->m_BlockDrawStruct != NULL )
{ {
ii = 1; ii = 1;
CollectStructsToDrag( (SCH_SCREEN*)GetScreen() ); CollectStructsToDrag( (SCH_SCREEN*) GetScreen() );
if( DrawPanel->ManageCurseur ) if( DrawPanel->ManageCurseur )
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE ); DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
block->m_State = STATE_BLOCK_MOVE; block->m_State = STATE_BLOCK_MOVE;
...@@ -673,9 +673,9 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center ) ...@@ -673,9 +673,9 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center )
// The center position is mirrored and the text is moved for half horizontal len // The center position is mirrored and the text is moved for half horizontal len
DrawText = (DrawTextStruct*) DrawStruct; DrawText = (DrawTextStruct*) DrawStruct;
px = DrawText->m_Pos; px = DrawText->m_Pos;
if( DrawText->m_Orient == 0 ) /* horizontal text */ if( DrawText->m_Orient == 0 ) /* horizontal text */
dx = DrawText->Len_Size() / 2; dx = DrawText->Len_Size() / 2;
else if( DrawText->m_Orient == 2 ) /* invert horizontal text*/ else if( DrawText->m_Orient == 2 ) /* invert horizontal text*/
dx = -DrawText->Len_Size() / 2; dx = -DrawText->Len_Size() / 2;
else else
dx = 0; dx = 0;
...@@ -687,13 +687,14 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center ) ...@@ -687,13 +687,14 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center )
DrawText->m_Pos.x = px.x; DrawText->m_Pos.x = px.x;
break; break;
case DRAW_HIER_LABEL_STRUCT_TYPE: case DRAW_HIER_LABEL_STRUCT_TYPE:
case DRAW_GLOBAL_LABEL_STRUCT_TYPE: case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
// Text is not really mirrored: Orientation is changed // Text is not really mirrored: Orientation is changed
DrawText = (DrawLabelStruct*) DrawStruct; DrawText = (DrawLabelStruct*) DrawStruct;
if( DrawText->m_Orient == 0 ) /* horizontal text */ if( DrawText->m_Orient == 0 ) /* horizontal text */
DrawText->m_Orient = 2; DrawText->m_Orient = 2;
else if( DrawText->m_Orient == 2 ) /* invert horizontal text*/ else if( DrawText->m_Orient == 2 ) /* invert horizontal text*/
DrawText->m_Orient = 0; DrawText->m_Orient = 0;
px = DrawText->m_Pos; px = DrawText->m_Pos;
...@@ -706,7 +707,7 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center ) ...@@ -706,7 +707,7 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center )
DrawLibItem = (EDA_SchComponentStruct*) DrawStruct; DrawLibItem = (EDA_SchComponentStruct*) DrawStruct;
dx = DrawLibItem->m_Pos.x; dx = DrawLibItem->m_Pos.x;
g_EDA_Appl->m_SchematicFrame->CmpRotationMiroir( DrawLibItem, g_EDA_Appl->m_SchematicFrame->CmpRotationMiroir( DrawLibItem,
NULL, CMP_MIROIR_Y ); NULL, CMP_MIROIR_Y );
MirrorYPoint( DrawLibItem->m_Pos, Center ); MirrorYPoint( DrawLibItem->m_Pos, Center );
dx -= DrawLibItem->m_Pos.x; dx -= DrawLibItem->m_Pos.x;
for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ ) for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
...@@ -833,17 +834,18 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE ...@@ -833,17 +834,18 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE
case DRAW_SHEET_STRUCT_TYPE: case DRAW_SHEET_STRUCT_TYPE:
{ {
//DuplicateStruct calls GenCopy, which should handle //DuplicateStruct calls GenCopy, which should handle
//m_AssociatedScreen and m_sRefCount properly. //m_AssociatedScreen and m_sRefCount properly.
DrawSheetStruct* sheet = (DrawSheetStruct*) Struct; DrawSheetStruct* sheet = (DrawSheetStruct*) Struct;
sheet->m_TimeStamp = GetTimeStamp(); sheet->m_TimeStamp = GetTimeStamp();
//sheet->m_AssociatedScreen->m_UndoList = NULL;
//sheet->m_AssociatedScreen->m_RedoList = NULL; //sheet->m_AssociatedScreen->m_UndoList = NULL;
//keep m_AssociatedScreen pointer & associated. //sheet->m_AssociatedScreen->m_RedoList = NULL;
//keep m_AssociatedScreen pointer & associated.
//sheet->m_Son = NULL; m_son is involved in undo and redo. //sheet->m_Son = NULL; m_son is involved in undo and redo.
break; break;
} }
default: default:
; ;
} }
...@@ -873,7 +875,7 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE ...@@ -873,7 +875,7 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE
case DRAW_TEXT_STRUCT_TYPE: case DRAW_TEXT_STRUCT_TYPE:
case DRAW_LABEL_STRUCT_TYPE: case DRAW_LABEL_STRUCT_TYPE:
case DRAW_GLOBAL_LABEL_STRUCT_TYPE: case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
case DRAW_HIER_LABEL_STRUCT_TYPE: case DRAW_HIER_LABEL_STRUCT_TYPE:
case DRAW_SHEETLABEL_STRUCT_TYPE: case DRAW_SHEETLABEL_STRUCT_TYPE:
case DRAW_PICK_ITEM_STRUCT_TYPE: case DRAW_PICK_ITEM_STRUCT_TYPE:
case DRAW_MARKER_STRUCT_TYPE: case DRAW_MARKER_STRUCT_TYPE:
...@@ -890,7 +892,7 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE ...@@ -890,7 +892,7 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE
} }
case DRAW_LIB_ITEM_STRUCT_TYPE: case DRAW_LIB_ITEM_STRUCT_TYPE:
( (EDA_SchComponentStruct*) NewDrawStruct )->m_TimeStamp = GetTimeStamp(); ( (EDA_SchComponentStruct*) NewDrawStruct )->m_TimeStamp = GetTimeStamp();
( (EDA_SchComponentStruct*) NewDrawStruct )->ClearAnnotation(); ( (EDA_SchComponentStruct*) NewDrawStruct )->ClearAnnotation();
break; break;
} }
...@@ -962,12 +964,16 @@ void DeleteStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct ...@@ -962,12 +964,16 @@ void DeleteStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct
RedrawOneStruct( panel, DC, DrawStruct, g_XorMode ); RedrawOneStruct( panel, DC, DrawStruct, g_XorMode );
/* Unlink the structure */ /* Unlink the structure */
DrawStruct->Pnext = DrawStruct->Pback = NULL; // Only one struct -> no link DrawStruct->Pnext = DrawStruct->Pback = NULL; // Only one struct -> no link
if(DrawStruct->Type() == DRAW_SHEET_STRUCT_TYPE){ if( DrawStruct->Type() == DRAW_SHEET_STRUCT_TYPE )
SAFE_DELETE(DrawStruct); {
//no undo/redo for this (for now), it is on both the EEDrawList and m_SubSheet arrays, frame->SaveCopyInUndoList( DrawStruct, IS_DELETED ); // Currently In TEST
//hence the undo logic would have to be extended for this.
}else // SAFE_DELETE(DrawStruct);
frame->SaveCopyInUndoList( DrawStruct, IS_DELETED ); //no undo/redo for this (for now), it is on both the EEDrawList and m_SubSheet arrays,
//hence the undo logic would have to be extended for this.
}
else
frame->SaveCopyInUndoList( DrawStruct, IS_DELETED );
} }
} }
...@@ -1046,7 +1052,7 @@ void WinEDA_SchematicFrame::PasteStruct( wxDC* DC ) ...@@ -1046,7 +1052,7 @@ void WinEDA_SchematicFrame::PasteStruct( wxDC* DC )
EDA_BaseStruct* Struct = PickedList->m_PickedStruct; EDA_BaseStruct* Struct = PickedList->m_PickedStruct;
if( Struct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) if( Struct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE )
{ {
( (EDA_SchComponentStruct*) Struct )->m_TimeStamp = GetTimeStamp(); ( (EDA_SchComponentStruct*) Struct )->m_TimeStamp = GetTimeStamp();
( (EDA_SchComponentStruct*) Struct )->ClearAnnotation(); ( (EDA_SchComponentStruct*) Struct )->ClearAnnotation();
SetStructFather( Struct, GetScreen() ); SetStructFather( Struct, GetScreen() );
} }
...@@ -1070,7 +1076,7 @@ void WinEDA_SchematicFrame::PasteStruct( wxDC* DC ) ...@@ -1070,7 +1076,7 @@ void WinEDA_SchematicFrame::PasteStruct( wxDC* DC )
{ {
if( DrawStruct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) if( DrawStruct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE )
{ {
( (EDA_SchComponentStruct*) DrawStruct )->m_TimeStamp = GetTimeStamp(); ( (EDA_SchComponentStruct*) DrawStruct )->m_TimeStamp = GetTimeStamp();
( (EDA_SchComponentStruct*) DrawStruct )->ClearAnnotation(); ( (EDA_SchComponentStruct*) DrawStruct )->ClearAnnotation();
} }
SetStructFather( DrawStruct, GetScreen() ); SetStructFather( DrawStruct, GetScreen() );
...@@ -1120,7 +1126,7 @@ bool PlaceStruct( BASE_SCREEN* screen, EDA_BaseStruct* DrawStruct ) ...@@ -1120,7 +1126,7 @@ bool PlaceStruct( BASE_SCREEN* screen, EDA_BaseStruct* DrawStruct )
case DRAW_TEXT_STRUCT_TYPE: case DRAW_TEXT_STRUCT_TYPE:
case DRAW_LABEL_STRUCT_TYPE: case DRAW_LABEL_STRUCT_TYPE:
case DRAW_GLOBAL_LABEL_STRUCT_TYPE: case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
case DRAW_HIER_LABEL_STRUCT_TYPE: case DRAW_HIER_LABEL_STRUCT_TYPE:
case DRAW_LIB_ITEM_STRUCT_TYPE: case DRAW_LIB_ITEM_STRUCT_TYPE:
case DRAW_SHEET_STRUCT_TYPE: case DRAW_SHEET_STRUCT_TYPE:
case DRAW_SHEETLABEL_STRUCT_TYPE: case DRAW_SHEETLABEL_STRUCT_TYPE:
...@@ -1223,7 +1229,7 @@ void MoveOneStruct( EDA_BaseStruct* DrawStruct, const wxPoint& move_vector ) ...@@ -1223,7 +1229,7 @@ void MoveOneStruct( EDA_BaseStruct* DrawStruct, const wxPoint& move_vector )
DrawLabel->m_Pos += move_vector; DrawLabel->m_Pos += move_vector;
break; break;
case DRAW_HIER_LABEL_STRUCT_TYPE: case DRAW_HIER_LABEL_STRUCT_TYPE:
case DRAW_GLOBAL_LABEL_STRUCT_TYPE: case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
#define DrawGHLabel ( (DrawLabelStruct*) DrawStruct ) #define DrawGHLabel ( (DrawLabelStruct*) DrawStruct )
DrawGHLabel->m_Pos += move_vector; DrawGHLabel->m_Pos += move_vector;
...@@ -1315,10 +1321,10 @@ EDA_BaseStruct* DuplicateStruct( EDA_BaseStruct* DrawStruct ) ...@@ -1315,10 +1321,10 @@ EDA_BaseStruct* DuplicateStruct( EDA_BaseStruct* DrawStruct )
NewDrawStruct = ( (DrawLabelStruct*) DrawStruct )->GenCopy(); NewDrawStruct = ( (DrawLabelStruct*) DrawStruct )->GenCopy();
break; break;
case DRAW_HIER_LABEL_STRUCT_TYPE: case DRAW_HIER_LABEL_STRUCT_TYPE:
NewDrawStruct = ( (DrawHierLabelStruct*) DrawStruct )->GenCopy(); NewDrawStruct = ( (DrawHierLabelStruct*) DrawStruct )->GenCopy();
break; break;
case DRAW_GLOBAL_LABEL_STRUCT_TYPE: case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
NewDrawStruct = ( (DrawGlobalLabelStruct*) DrawStruct )->GenCopy(); NewDrawStruct = ( (DrawGlobalLabelStruct*) DrawStruct )->GenCopy();
break; break;
...@@ -1450,7 +1456,7 @@ static void CollectStructsToDrag( SCH_SCREEN* screen ) ...@@ -1450,7 +1456,7 @@ static void CollectStructsToDrag( SCH_SCREEN* screen )
if( Struct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) if( Struct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE )
{ {
LibEDA_BaseStruct* DrawItem; LibEDA_BaseStruct* DrawItem;
wxPoint pos; wxPoint pos;
DrawItem = GetNextPinPosition( (EDA_SchComponentStruct*) Struct, pos ); DrawItem = GetNextPinPosition( (EDA_SchComponentStruct*) Struct, pos );
while( DrawItem ) while( DrawItem )
{ {
...@@ -1525,14 +1531,14 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) ...@@ -1525,14 +1531,14 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
case DRAW_POLYLINE_STRUCT_TYPE: case DRAW_POLYLINE_STRUCT_TYPE:
if( Struct->m_Flags & SELECTED ) if( Struct->m_Flags & SELECTED )
break; /* Deja en liste */ break; /* Deja en liste */
break; break;
case DRAW_JUNCTION_STRUCT_TYPE: case DRAW_JUNCTION_STRUCT_TYPE:
#undef STRUCT #undef STRUCT
#define STRUCT ( (DrawJunctionStruct*) Struct ) #define STRUCT ( (DrawJunctionStruct*) Struct )
if( Struct->m_Flags & SELECTED ) if( Struct->m_Flags & SELECTED )
break; /* Deja en liste */ break; /* Deja en liste */
if( STRUCT->m_Pos != position ) if( STRUCT->m_Pos != position )
break; break;
DrawStructs = new DrawPickedStruct( Struct ); DrawStructs = new DrawPickedStruct( Struct );
...@@ -1545,7 +1551,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) ...@@ -1545,7 +1551,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
#undef STRUCT #undef STRUCT
#define STRUCT ( (EDA_DrawLineStruct*) Struct ) #define STRUCT ( (EDA_DrawLineStruct*) Struct )
if( Struct->m_Flags & SELECTED ) if( Struct->m_Flags & SELECTED )
break; /* Deja en liste */ break; /* Deja en liste */
if( STRUCT->m_Start == position ) if( STRUCT->m_Start == position )
{ {
DrawStructs = new DrawPickedStruct( Struct ); DrawStructs = new DrawPickedStruct( Struct );
...@@ -1576,7 +1582,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) ...@@ -1576,7 +1582,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
#undef STRUCT #undef STRUCT
#define STRUCT ( (DrawLabelStruct*) Struct ) #define STRUCT ( (DrawLabelStruct*) Struct )
if( Struct->m_Flags & SELECTED ) if( Struct->m_Flags & SELECTED )
break; /* Already in list */ break; /* Already in list */
if( STRUCT->m_Pos != position ) if( STRUCT->m_Pos != position )
break; break;
DrawStructs = new DrawPickedStruct( Struct ); DrawStructs = new DrawPickedStruct( Struct );
...@@ -1586,12 +1592,12 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) ...@@ -1586,12 +1592,12 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
Struct->m_Flags |= SELECTED; Struct->m_Flags |= SELECTED;
break; break;
case DRAW_HIER_LABEL_STRUCT_TYPE: case DRAW_HIER_LABEL_STRUCT_TYPE:
case DRAW_GLOBAL_LABEL_STRUCT_TYPE: case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
#undef STRUCT #undef STRUCT
#define STRUCT ( (DrawLabelStruct*) Struct ) #define STRUCT ( (DrawLabelStruct*) Struct )
if( Struct->m_Flags & SELECTED ) if( Struct->m_Flags & SELECTED )
break; /* Already in list */ break; /* Already in list */
if( STRUCT->m_Pos != position ) if( STRUCT->m_Pos != position )
break; break;
DrawStructs = new DrawPickedStruct( Struct ); DrawStructs = new DrawPickedStruct( Struct );
...@@ -1617,7 +1623,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) ...@@ -1617,7 +1623,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
#undef STRUCT #undef STRUCT
#define STRUCT ( (DrawMarkerStruct*) Struct ) #define STRUCT ( (DrawMarkerStruct*) Struct )
if( Struct->m_Flags & SELECTED ) if( Struct->m_Flags & SELECTED )
break; /* Already in list */ break; /* Already in list */
if( STRUCT->m_Pos != position ) if( STRUCT->m_Pos != position )
break; break;
DrawStructs = new DrawPickedStruct( Struct ); DrawStructs = new DrawPickedStruct( Struct );
...@@ -1631,7 +1637,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) ...@@ -1631,7 +1637,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
#undef STRUCT #undef STRUCT
#define STRUCT ( (DrawNoConnectStruct*) Struct ) #define STRUCT ( (DrawNoConnectStruct*) Struct )
if( Struct->m_Flags & SELECTED ) if( Struct->m_Flags & SELECTED )
break; /* Already in list */ break; /* Already in list */
if( STRUCT->m_Pos != position ) if( STRUCT->m_Pos != position )
break; break;
DrawStructs = new DrawPickedStruct( Struct ); DrawStructs = new DrawPickedStruct( Struct );
...@@ -1651,7 +1657,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) ...@@ -1651,7 +1657,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
/*********************************************************************************/ /*********************************************************************************/
static LibEDA_BaseStruct* GetNextPinPosition( EDA_SchComponentStruct* DrawLibItem, static LibEDA_BaseStruct* GetNextPinPosition( EDA_SchComponentStruct* DrawLibItem,
wxPoint & position ) wxPoint& position )
/*********************************************************************************/ /*********************************************************************************/
{ {
EDA_LibComponentStruct* Entry; EDA_LibComponentStruct* Entry;
...@@ -1694,9 +1700,9 @@ static LibEDA_BaseStruct* GetNextPinPosition( EDA_SchComponentStruct* DrawLibIte ...@@ -1694,9 +1700,9 @@ static LibEDA_BaseStruct* GetNextPinPosition( EDA_SchComponentStruct* DrawLibIte
/* Calcul de la position du point de reference */ /* Calcul de la position du point de reference */
position.x = PartX + (TransMat[0][0] * Pin->m_Pos.x) position.x = PartX + (TransMat[0][0] * Pin->m_Pos.x)
+ (TransMat[0][1] * Pin->m_Pos.y); + (TransMat[0][1] * Pin->m_Pos.y);
position.y = PartY + (TransMat[1][0] * Pin->m_Pos.x) position.y = PartY + (TransMat[1][0] * Pin->m_Pos.x)
+ (TransMat[1][1] * Pin->m_Pos.y); + (TransMat[1][1] * Pin->m_Pos.y);
NextItem = DEntry->Next(); NextItem = DEntry->Next();
return DEntry; return DEntry;
} }
......
...@@ -43,10 +43,11 @@ DrawSheetStruct::DrawSheetStruct( const wxPoint& pos ) : ...@@ -43,10 +43,11 @@ DrawSheetStruct::DrawSheetStruct( const wxPoint& pos ) :
m_NbLabel = 0; m_NbLabel = 0;
m_Layer = LAYER_SHEET; m_Layer = LAYER_SHEET;
m_Pos = pos; m_Pos = pos;
m_TimeStamp = GetTimeStamp();
m_SheetNameSize = m_FileNameSize = 60; m_SheetNameSize = m_FileNameSize = 60;
m_AssociatedScreen = NULL; m_AssociatedScreen = NULL;
m_SheetName = wxT( "Root" ); m_SheetName.Printf( wxT("Sheet%8.8lX"), m_TimeStamp);
m_FileName = wxT( " " ); m_FileName.Printf( wxT("file%8.8lX.sch"), m_TimeStamp);
m_SheetNumber = 1; m_SheetNumber = 1;
m_NumberOfSheets = 1; m_NumberOfSheets = 1;
...@@ -351,7 +352,7 @@ bool DrawSheetStruct::SearchHierarchy( wxString filename, SCH_SCREEN** screen ) ...@@ -351,7 +352,7 @@ bool DrawSheetStruct::SearchHierarchy( wxString filename, SCH_SCREEN** screen )
/*******************************************************************************/ /*******************************************************************************/
bool DrawSheetStruct::LocatePathOfScreen( SCH_SCREEN* screen, DrawSheetList* list ) bool DrawSheetStruct::LocatePathOfScreen( SCH_SCREEN* screen, DrawSheetPath* list )
/*******************************************************************************/ /*******************************************************************************/
{ {
//search the existing hierarchy for an instance of screen "FileName". //search the existing hierarchy for an instance of screen "FileName".
...@@ -386,6 +387,8 @@ bool DrawSheetStruct::LocatePathOfScreen( SCH_SCREEN* screen, DrawSheetList* lis ...@@ -386,6 +387,8 @@ bool DrawSheetStruct::LocatePathOfScreen( SCH_SCREEN* screen, DrawSheetList* lis
bool DrawSheetStruct::Load( WinEDA_SchematicFrame* frame ) bool DrawSheetStruct::Load( WinEDA_SchematicFrame* frame )
/*******************************************************************************/ /*******************************************************************************/
{ {
bool success = true;
if( !m_AssociatedScreen ) if( !m_AssociatedScreen )
{ {
SCH_SCREEN* screen = NULL; SCH_SCREEN* screen = NULL;
...@@ -401,22 +404,24 @@ bool DrawSheetStruct::Load( WinEDA_SchematicFrame* frame ) ...@@ -401,22 +404,24 @@ bool DrawSheetStruct::Load( WinEDA_SchematicFrame* frame )
{ {
m_AssociatedScreen = new SCH_SCREEN( SCHEMATIC_FRAME ); m_AssociatedScreen = new SCH_SCREEN( SCHEMATIC_FRAME );
m_AssociatedScreen->m_RefCount++; m_AssociatedScreen->m_RefCount++;
if( !frame->LoadOneEEFile( m_AssociatedScreen, m_FileName ) ) success = frame->LoadOneEEFile( m_AssociatedScreen, m_FileName);
return false; if ( success )
EDA_BaseStruct* bs = m_AssociatedScreen->EEDrawList; {
while( bs ) EDA_BaseStruct* bs = m_AssociatedScreen->EEDrawList;
{ while( bs )
if( bs->Type() == DRAW_SHEET_STRUCT_TYPE ) {
{ if( bs->Type() == DRAW_SHEET_STRUCT_TYPE )
DrawSheetStruct* ss = (DrawSheetStruct*) bs; {
if( !ss->Load( frame ) ) DrawSheetStruct* sheetstruct = (DrawSheetStruct*) bs;
return false; if( !sheetstruct->Load( frame ) )
} success = false;
bs = bs->Pnext; }
} bs = bs->Pnext;
}
}
} }
} }
return true; return success;
} }
...@@ -442,6 +447,21 @@ int DrawSheetStruct::CountSheets() ...@@ -442,6 +447,21 @@ int DrawSheetStruct::CountSheets()
} }
/******************************************/
wxString DrawSheetStruct::GetFileName(void)
/******************************************/
{
return m_FileName;
}
/************************************************************/
void DrawSheetStruct::SetFileName(const wxString & aFilename)
/************************************************************/
{
m_FileName = aFilename;
}
/************************/ /************************/
/* DrawSheetLabelStruct */ /* DrawSheetLabelStruct */
/************************/ /************************/
...@@ -571,7 +591,7 @@ void DrawSheetLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoin ...@@ -571,7 +591,7 @@ void DrawSheetLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoin
/* class to handle a series of sheets *********/ /* class to handle a series of sheets *********/
/* a 'path' so to speak.. *********************/ /* a 'path' so to speak.. *********************/
/**********************************************/ /**********************************************/
DrawSheetList::DrawSheetList() DrawSheetPath::DrawSheetPath()
{ {
for( int i = 0; i<DSLSZ; i++ ) for( int i = 0; i<DSLSZ; i++ )
m_sheets[i] = NULL; m_sheets[i] = NULL;
...@@ -580,7 +600,7 @@ DrawSheetList::DrawSheetList() ...@@ -580,7 +600,7 @@ DrawSheetList::DrawSheetList()
} }
int DrawSheetList::Cmp( DrawSheetList& d ) int DrawSheetPath::Cmp( DrawSheetPath& d )
{ {
if( m_numSheets > d.m_numSheets ) if( m_numSheets > d.m_numSheets )
return 1; return 1;
...@@ -600,7 +620,7 @@ int DrawSheetList::Cmp( DrawSheetList& d ) ...@@ -600,7 +620,7 @@ int DrawSheetList::Cmp( DrawSheetList& d )
} }
DrawSheetStruct* DrawSheetList::Last() DrawSheetStruct* DrawSheetPath::Last()
{ {
if( m_numSheets ) if( m_numSheets )
return m_sheets[m_numSheets - 1]; return m_sheets[m_numSheets - 1];
...@@ -608,7 +628,7 @@ DrawSheetStruct* DrawSheetList::Last() ...@@ -608,7 +628,7 @@ DrawSheetStruct* DrawSheetList::Last()
} }
SCH_SCREEN* DrawSheetList::LastScreen() SCH_SCREEN* DrawSheetPath::LastScreen()
{ {
if( m_numSheets ) if( m_numSheets )
return m_sheets[m_numSheets - 1]->m_AssociatedScreen; return m_sheets[m_numSheets - 1]->m_AssociatedScreen;
...@@ -616,7 +636,7 @@ SCH_SCREEN* DrawSheetList::LastScreen() ...@@ -616,7 +636,7 @@ SCH_SCREEN* DrawSheetList::LastScreen()
} }
EDA_BaseStruct* DrawSheetList::LastDrawList() EDA_BaseStruct* DrawSheetPath::LastDrawList()
{ {
if( m_numSheets && m_sheets[m_numSheets - 1]->m_AssociatedScreen ) if( m_numSheets && m_sheets[m_numSheets - 1]->m_AssociatedScreen )
return m_sheets[m_numSheets - 1]->m_AssociatedScreen->EEDrawList; return m_sheets[m_numSheets - 1]->m_AssociatedScreen->EEDrawList;
...@@ -624,8 +644,9 @@ EDA_BaseStruct* DrawSheetList::LastDrawList() ...@@ -624,8 +644,9 @@ EDA_BaseStruct* DrawSheetList::LastDrawList()
} }
void DrawSheetList::Push( DrawSheetStruct* sheet ) void DrawSheetPath::Push( DrawSheetStruct* sheet )
{ {
wxASSERT( m_numSheets <= DSLSZ );
if( m_numSheets < DSLSZ ) if( m_numSheets < DSLSZ )
{ {
m_sheets[m_numSheets] = sheet; m_sheets[m_numSheets] = sheet;
...@@ -634,7 +655,7 @@ void DrawSheetList::Push( DrawSheetStruct* sheet ) ...@@ -634,7 +655,7 @@ void DrawSheetList::Push( DrawSheetStruct* sheet )
} }
DrawSheetStruct* DrawSheetList::Pop() DrawSheetStruct* DrawSheetPath::Pop()
{ {
if( m_numSheets > 0 ) if( m_numSheets > 0 )
{ {
...@@ -645,7 +666,7 @@ DrawSheetStruct* DrawSheetList::Pop() ...@@ -645,7 +666,7 @@ DrawSheetStruct* DrawSheetList::Pop()
} }
wxString DrawSheetList::Path() wxString DrawSheetPath::Path()
{ {
wxString s, t; wxString s, t;
...@@ -664,7 +685,7 @@ wxString DrawSheetList::Path() ...@@ -664,7 +685,7 @@ wxString DrawSheetList::Path()
} }
wxString DrawSheetList::PathHumanReadable() wxString DrawSheetPath::PathHumanReadable()
{ {
wxString s, t; wxString s, t;
...@@ -680,7 +701,7 @@ wxString DrawSheetList::PathHumanReadable() ...@@ -680,7 +701,7 @@ wxString DrawSheetList::PathHumanReadable()
} }
void DrawSheetList::UpdateAllScreenReferences() void DrawSheetPath::UpdateAllScreenReferences()
{ {
EDA_BaseStruct* t = LastDrawList(); EDA_BaseStruct* t = LastDrawList();
...@@ -698,7 +719,7 @@ void DrawSheetList::UpdateAllScreenReferences() ...@@ -698,7 +719,7 @@ void DrawSheetList::UpdateAllScreenReferences()
} }
bool DrawSheetList::operator=( const DrawSheetList& d1 ) bool DrawSheetPath::operator=( const DrawSheetPath& d1 )
{ {
m_numSheets = d1.m_numSheets; m_numSheets = d1.m_numSheets;
int i; int i;
...@@ -716,7 +737,7 @@ bool DrawSheetList::operator=( const DrawSheetList& d1 ) ...@@ -716,7 +737,7 @@ bool DrawSheetList::operator=( const DrawSheetList& d1 )
} }
bool DrawSheetList::operator==( const DrawSheetList& d1 ) bool DrawSheetPath::operator==( const DrawSheetPath& d1 )
{ {
if( m_numSheets != d1.m_numSheets ) if( m_numSheets != d1.m_numSheets )
return false; return false;
...@@ -730,7 +751,7 @@ bool DrawSheetList::operator==( const DrawSheetList& d1 ) ...@@ -730,7 +751,7 @@ bool DrawSheetList::operator==( const DrawSheetList& d1 )
} }
bool DrawSheetList::operator!=( const DrawSheetList& d1 ) bool DrawSheetPath::operator!=( const DrawSheetPath& d1 )
{ {
if( m_numSheets != d1.m_numSheets ) if( m_numSheets != d1.m_numSheets )
return true; return true;
......
...@@ -268,7 +268,7 @@ void EDA_ScreenList::BuildScreenList( EDA_BaseStruct* s ) ...@@ -268,7 +268,7 @@ void EDA_ScreenList::BuildScreenList( EDA_BaseStruct* s )
/*********************************************************************/ /*********************************************************************/
/*****************************************/ /*****************************************/
DrawSheetList* EDA_SheetList::GetFirst() DrawSheetPath* EDA_SheetList::GetFirst()
/*****************************************/ /*****************************************/
{ {
m_index = 0; m_index = 0;
...@@ -279,7 +279,7 @@ DrawSheetList* EDA_SheetList::GetFirst() ...@@ -279,7 +279,7 @@ DrawSheetList* EDA_SheetList::GetFirst()
/*****************************************/ /*****************************************/
DrawSheetList* EDA_SheetList::GetNext() DrawSheetPath* EDA_SheetList::GetNext()
/*****************************************/ /*****************************************/
{ {
if( m_index < m_count ) if( m_index < m_count )
...@@ -289,7 +289,7 @@ DrawSheetList* EDA_SheetList::GetNext() ...@@ -289,7 +289,7 @@ DrawSheetList* EDA_SheetList::GetNext()
/************************************************/ /************************************************/
DrawSheetList* EDA_SheetList::GetSheet( int index ) DrawSheetPath* EDA_SheetList::GetSheet( int index )
/************************************************/ /************************************************/
/* return the m_List[index] item /* return the m_List[index] item
...@@ -312,8 +312,8 @@ void EDA_SheetList::BuildSheetList( DrawSheetStruct* sheet ) ...@@ -312,8 +312,8 @@ void EDA_SheetList::BuildSheetList( DrawSheetStruct* sheet )
m_index = 0; m_index = 0;
if( m_List ) if( m_List )
free( m_List );m_List = NULL; free( m_List );m_List = NULL;
count *= sizeof(DrawSheetList); count *= sizeof(DrawSheetPath);
m_List = (DrawSheetList*) MyZMalloc( count ); m_List = (DrawSheetPath*) MyZMalloc( count );
memset( (void*) m_List, 0, count ); memset( (void*) m_List, 0, count );
m_currList.Clear(); m_currList.Clear();
} }
...@@ -336,44 +336,3 @@ void EDA_SheetList::BuildSheetList( DrawSheetStruct* sheet ) ...@@ -336,44 +336,3 @@ void EDA_SheetList::BuildSheetList( DrawSheetStruct* sheet )
m_currList.Pop(); m_currList.Pop();
} }
/************************************************/
void EDA_SheetList::UpdateSheetNumberAndDate()
/************************************************/
/* Set a sheet number, the sheet count for sheets in the whole schematic
* and update the date in all srceens
*/
{
wxString date = GenDate();
int sheet_count = 1, sheet_number = 2; // sheet 1 is the root sheet
for( int ii = 0; ii<(int) m_count; ii++ )
{
DrawSheetList* sheetlist = GetSheet( ii );
sheet_count += sheetlist->m_numSheets;
}
for( int ii = 0; ii<(int) m_count; ii++ )
{
DrawSheetList* sheetlist = GetSheet( ii );
// Read all sheets in path, but not the root sheet (jj = 1)
for( int jj = 1; jj < sheetlist->m_numSheets; jj++ )
{
DrawSheetStruct* sheet = sheetlist->m_sheets[jj];
sheet->m_SheetNumber = sheet_number++;
sheet->m_NumberOfSheets = m_count;
SCH_SCREEN* screen = sheet->m_AssociatedScreen;
if( screen != NULL )
{
screen->m_NumberOfScreen = sheet_count;
screen->m_Date = date;
}
}
}
g_RootSheet->m_AssociatedScreen->m_Date = date;
g_RootSheet->m_AssociatedScreen->m_NumberOfScreen = sheet_count;
g_RootSheet->m_SheetNumber = 1;
g_RootSheet->m_NumberOfSheets = m_count;
}
...@@ -55,8 +55,8 @@ public: ...@@ -55,8 +55,8 @@ public:
}; };
class DrawSheetLabelStruct : public EDA_BaseStruct class DrawSheetLabelStruct : public EDA_BaseStruct,
, public EDA_TextStruct public EDA_TextStruct
{ {
public: public:
int m_Layer; int m_Layer;
...@@ -87,8 +87,8 @@ public: ...@@ -87,8 +87,8 @@ public:
/* class DrawSheetStruct /* class DrawSheetStruct
This class is the sheet symbol placed in a schematic, and is the entry point for a sub schematic * This class is the sheet symbol placed in a schematic, and is the entry point for a sub schematic
*/ */
WX_DEFINE_ARRAY( DrawSheetStruct *, SheetGrowArray ); WX_DEFINE_ARRAY( DrawSheetStruct *, SheetGrowArray );
class DrawSheetStruct : public EDA_BaseStruct /*public SCH_SCREEN*/ /* Gestion de la hierarchie */ class DrawSheetStruct : public EDA_BaseStruct /*public SCH_SCREEN*/ /* Gestion de la hierarchie */
...@@ -96,20 +96,22 @@ class DrawSheetStruct : public EDA_BaseStruct /*public SCH_SCREEN*/ /* Gestio ...@@ -96,20 +96,22 @@ class DrawSheetStruct : public EDA_BaseStruct /*public SCH_SCREEN*/ /* Gestio
public: public:
wxString m_SheetName; //this is equivalent to C101 for components: wxString m_SheetName; //this is equivalent to C101 for components:
// it is stored in F0 ... of the file. // it is stored in F0 ... of the file.
private:
wxString m_FileName; //also in SCH_SCREEN (redundant), wxString m_FileName; //also in SCH_SCREEN (redundant),
//but need it here for loading after //but need it here for loading after
//reading the sheet description from file. //reading the sheet description from file.
int m_SheetNameSize; public:
int m_SheetNameSize; // Size (height) of the text, used to draw the name
int m_FileNameSize; int m_FileNameSize; // Size (height) of the text, used to draw the name
wxPoint m_Pos; wxPoint m_Pos;
wxSize m_Size; /* Position and Size of sheet symbol */ wxSize m_Size; /* Position and Size of sheet symbol */
int m_Layer; int m_Layer;
DrawSheetLabelStruct* m_Label; /* Points de connection, linked list.*/ DrawSheetLabelStruct* m_Label; /* Points de connection, linked list.*/
int m_NbLabel; /* Nombre de points de connexion */ int m_NbLabel; /* Nombre de points de connexion */
SCH_SCREEN* m_AssociatedScreen; /* Associated Screen which handle the physical data SCH_SCREEN* m_AssociatedScreen; /* Associated Screen which handle the physical data
In complex hierarchies we can have many DrawSheetStruct using the same data * In complex hierarchies we can have many DrawSheetStruct using the same data
*/ */
int m_SheetNumber; // sheet number (used for info) int m_SheetNumber; // sheet number (used for info)
int m_NumberOfSheets; // Sheets count in the whole schematic (used for info) int m_NumberOfSheets; // Sheets count in the whole schematic (used for info)
...@@ -133,8 +135,10 @@ public: ...@@ -133,8 +135,10 @@ public:
int ComponentCount(); int ComponentCount();
bool Load( WinEDA_SchematicFrame* frame ); bool Load( WinEDA_SchematicFrame* frame );
bool SearchHierarchy( wxString filename, SCH_SCREEN** screen ); bool SearchHierarchy( wxString filename, SCH_SCREEN** screen );
bool LocatePathOfScreen( SCH_SCREEN* screen, DrawSheetList* list ); bool LocatePathOfScreen( SCH_SCREEN* screen, DrawSheetPath* list );
int CountSheets(); int CountSheets();
wxString GetFileName(void);
void SetFileName(const wxString & aFilename);
//void RemoveSheet(DrawSheetStruct* sheet); //void RemoveSheet(DrawSheetStruct* sheet);
//to remove a sheet, just delete it //to remove a sheet, just delete it
...@@ -147,16 +151,16 @@ public: ...@@ -147,16 +151,16 @@ public:
/* a 'path' so to speak.. *********************/ /* a 'path' so to speak.. *********************/
/**********************************************/ /**********************************************/
#define DSLSZ 32 #define DSLSZ 32
class DrawSheetList class DrawSheetPath
{ {
public: public:
int m_numSheets; int m_numSheets;
DrawSheetStruct* m_sheets[DSLSZ]; DrawSheetStruct* m_sheets[DSLSZ];
DrawSheetList(); DrawSheetPath();
~DrawSheetList() { }; ~DrawSheetPath() { };
void Clear() { m_numSheets = 0; } void Clear() { m_numSheets = 0; }
int Cmp( DrawSheetList& d ); int Cmp( DrawSheetPath& d );
DrawSheetStruct* Last(); DrawSheetStruct* Last();
SCH_SCREEN* LastScreen(); SCH_SCREEN* LastScreen();
EDA_BaseStruct* LastDrawList(); EDA_BaseStruct* LastDrawList();
...@@ -166,11 +170,11 @@ public: ...@@ -166,11 +170,11 @@ public:
wxString PathHumanReadable(); wxString PathHumanReadable();
void UpdateAllScreenReferences(); void UpdateAllScreenReferences();
bool operator =( const DrawSheetList& d1 ); bool operator =( const DrawSheetPath& d1 );
bool operator ==( const DrawSheetList& d1 ); bool operator ==( const DrawSheetPath& d1 );
bool operator !=( const DrawSheetList& d1 ); bool operator !=( const DrawSheetPath& d1 );
}; };
...@@ -179,14 +183,16 @@ public: ...@@ -179,14 +183,16 @@ public:
/*******************************************************/ /*******************************************************/
// sheets are not unique - can have many sheets with the same // sheets are not unique - can have many sheets with the same
// filename and the same SCH_SHEET reference. // filename and the same SCH_SCREEN reference.
class EDA_SheetList class EDA_SheetList
{ {
private: private:
DrawSheetList* m_List; DrawSheetPath* m_List;
int m_count; int m_count; /* Number of sheets included in hierarchy,
* starting at the given sheet in constructor . the given sheet is counted
*/
int m_index; int m_index;
DrawSheetList m_currList; DrawSheetPath m_currList;
public: public:
EDA_SheetList( DrawSheetStruct* sheet ) EDA_SheetList( DrawSheetStruct* sheet )
...@@ -211,10 +217,9 @@ public: ...@@ -211,10 +217,9 @@ public:
int GetCount() { return m_count; } int GetCount() { return m_count; }
DrawSheetList* GetFirst(); DrawSheetPath* GetFirst();
DrawSheetList* GetNext(); DrawSheetPath* GetNext();
DrawSheetList* GetSheet( int index ); DrawSheetPath* GetSheet( int index );
void UpdateSheetNumberAndDate(); // Update the date displayed in the sheet count
private: private:
void BuildSheetList( DrawSheetStruct* sheet ); void BuildSheetList( DrawSheetStruct* sheet );
...@@ -242,9 +247,9 @@ public: ...@@ -242,9 +247,9 @@ public:
~EDA_ScreenList() { } ~EDA_ScreenList() { }
int GetCount() { return m_List.GetCount(); } int GetCount() { return m_List.GetCount(); }
SCH_SCREEN* GetFirst(); SCH_SCREEN* GetFirst();
SCH_SCREEN* GetNext(); SCH_SCREEN* GetNext();
SCH_SCREEN* GetScreen( unsigned int index ); SCH_SCREEN* GetScreen( unsigned int index );
private: private:
void AddScreenToList( SCH_SCREEN* testscreen ); void AddScreenToList( SCH_SCREEN* testscreen );
......
...@@ -94,7 +94,7 @@ const wxString& EDA_SchComponentStruct::ReturnFieldName( int aFieldNdx ) const ...@@ -94,7 +94,7 @@ const wxString& EDA_SchComponentStruct::ReturnFieldName( int aFieldNdx ) const
/****************************************************************/ /****************************************************************/
wxString EDA_SchComponentStruct::GetPath( DrawSheetList* sheet ) wxString EDA_SchComponentStruct::GetPath( DrawSheetPath* sheet )
/****************************************************************/ /****************************************************************/
{ {
wxString str; wxString str;
...@@ -105,7 +105,7 @@ wxString EDA_SchComponentStruct::GetPath( DrawSheetList* sheet ) ...@@ -105,7 +105,7 @@ wxString EDA_SchComponentStruct::GetPath( DrawSheetList* sheet )
/********************************************************************/ /********************************************************************/
const wxString EDA_SchComponentStruct::GetRef( DrawSheetList* sheet ) const wxString EDA_SchComponentStruct::GetRef( DrawSheetPath* sheet )
/********************************************************************/ /********************************************************************/
{ {
wxString path = GetPath( sheet ); wxString path = GetPath( sheet );
...@@ -137,7 +137,7 @@ const wxString EDA_SchComponentStruct::GetRef( DrawSheetList* sheet ) ...@@ -137,7 +137,7 @@ const wxString EDA_SchComponentStruct::GetRef( DrawSheetList* sheet )
/***********************************************************************/ /***********************************************************************/
void EDA_SchComponentStruct::SetRef( DrawSheetList* sheet, wxString ref ) void EDA_SchComponentStruct::SetRef( DrawSheetPath* sheet, wxString ref )
/***********************************************************************/ /***********************************************************************/
{ {
//check to see if it is already there before inserting it //check to see if it is already there before inserting it
......
...@@ -88,7 +88,7 @@ public: ...@@ -88,7 +88,7 @@ public:
} }
}; };
WX_DECLARE_OBJARRAY( DrawSheetList, ArrayOfSheetLists ); WX_DECLARE_OBJARRAY( DrawSheetPath, ArrayOfSheetLists );
/* the class EDA_SchComponentStruct describes a real component */ /* the class EDA_SchComponentStruct describes a real component */
class EDA_SchComponentStruct : public DrawPartStruct class EDA_SchComponentStruct : public DrawPartStruct
{ {
...@@ -148,9 +148,9 @@ public: ...@@ -148,9 +148,9 @@ public:
//returns a unique ID, in the form of a path. //returns a unique ID, in the form of a path.
wxString GetPath( DrawSheetList* sheet ); wxString GetPath( DrawSheetPath* sheet );
const wxString GetRef( DrawSheetList* sheet ); const wxString GetRef( DrawSheetPath* sheet );
void SetRef( DrawSheetList* sheet, wxString ref ); void SetRef( DrawSheetPath* sheet, wxString ref );
void ClearRefs(); void ClearRefs();
#if defined (DEBUG) #if defined (DEBUG)
......
...@@ -42,7 +42,7 @@ wxString msg; ...@@ -42,7 +42,7 @@ wxString msg;
{ {
msg.Printf( _("Sheet %s (file %s) modified. Save it?"), msg.Printf( _("Sheet %s (file %s) modified. Save it?"),
FirstSheet->m_SheetName.GetData(), FirstSheet->m_SheetName.GetData(),
FirstSheet->m_FileName.GetData()); FirstSheet->GetFileName().GetData());
if( IsOK(NULL, msg) ) if( IsOK(NULL, msg) )
{ {
frame->SaveEEFile(FirstSheet->m_AssociatedScreen, FILE_SAVE_AS); frame->SaveEEFile(FirstSheet->m_AssociatedScreen, FILE_SAVE_AS);
......
...@@ -772,7 +772,7 @@ int GenListeCmp( ListComponent * List ) ...@@ -772,7 +772,7 @@ int GenListeCmp( ListComponent * List )
int ItemCount = 0; int ItemCount = 0;
EDA_BaseStruct *DrawList; EDA_BaseStruct *DrawList;
EDA_SchComponentStruct *DrawLibItem; EDA_SchComponentStruct *DrawLibItem;
DrawSheetList * sheet; DrawSheetPath * sheet;
/* Build the sheet (not screen) list */ /* Build the sheet (not screen) list */
EDA_SheetList SheetList(NULL); EDA_SheetList SheetList(NULL);
...@@ -820,7 +820,7 @@ static int GenListeGLabels( ListLabel * List ) ...@@ -820,7 +820,7 @@ static int GenListeGLabels( ListLabel * List )
int ItemCount = 0; int ItemCount = 0;
EDA_BaseStruct *DrawList; EDA_BaseStruct *DrawList;
DrawSheetLabelStruct *SheetLabel; DrawSheetLabelStruct *SheetLabel;
DrawSheetList * sheet; DrawSheetPath * sheet;
/* Build the screen list */ /* Build the screen list */
EDA_SheetList SheetList(NULL); EDA_SheetList SheetList(NULL);
......
...@@ -712,7 +712,7 @@ static bool WriteDiagnosticERC( const wxString& FullFileName ) ...@@ -712,7 +712,7 @@ static bool WriteDiagnosticERC( const wxString& FullFileName )
DrawMarkerStruct* Marker; DrawMarkerStruct* Marker;
char Line[256]; char Line[256];
static FILE* OutErc; static FILE* OutErc;
DrawSheetList* Sheet; DrawSheetPath* Sheet;
wxString msg; wxString msg;
if( ( OutErc = wxFopen( FullFileName, wxT( "wt" ) ) ) == NULL ) if( ( OutErc = wxFopen( FullFileName, wxT( "wt" ) ) ) == NULL )
......
...@@ -141,7 +141,7 @@ int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsNe ...@@ -141,7 +141,7 @@ int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsNe
wxSetWorkingDirectory( wxPathOnly( FullFileName ) ); wxSetWorkingDirectory( wxPathOnly( FullFileName ) );
GetScreen()->m_FileName = FullFileName; GetScreen()->m_FileName = FullFileName;
g_RootSheet->m_FileName = FullFileName; g_RootSheet->SetFileName(FullFileName);
Affiche_Message( wxEmptyString ); Affiche_Message( wxEmptyString );
MsgPanel->EraseMsgBox(); MsgPanel->EraseMsgBox();
...@@ -223,14 +223,13 @@ int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsNe ...@@ -223,14 +223,13 @@ int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsNe
//load the project. //load the project.
SAFE_DELETE(g_RootSheet->m_AssociatedScreen); SAFE_DELETE(g_RootSheet->m_AssociatedScreen);
if(!g_RootSheet->Load(this)) bool diag = g_RootSheet->Load(this);
return 0;
/* Reaffichage ecran de base (ROOT) si necessaire */ /* Reaffichage ecran de base (ROOT) si necessaire */
ActiveScreen = GetScreen(); ActiveScreen = GetScreen();
Zoom_Automatique( FALSE ); Zoom_Automatique( FALSE );
DrawPanel->Refresh( TRUE ); DrawPanel->Refresh( TRUE );
return 1; return diag;
} }
/**********************************************************/ /**********************************************************/
SCH_SCREEN * WinEDA_SchematicFrame::CreateNewScreen( SCH_SCREEN * WinEDA_SchematicFrame::CreateNewScreen(
......
...@@ -70,7 +70,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindComponentAndItem( ...@@ -70,7 +70,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindComponentAndItem(
* @param mouseWarp If true, then move the mouse cursor to the item. * @param mouseWarp If true, then move the mouse cursor to the item.
*/ */
{ {
DrawSheetList* sheet, * SheetWithComponentFound = NULL; DrawSheetPath* sheet, * SheetWithComponentFound = NULL;
EDA_BaseStruct* DrawList = NULL; EDA_BaseStruct* DrawList = NULL;
EDA_SchComponentStruct* Component = NULL; EDA_SchComponentStruct* Component = NULL;
wxSize DrawAreaSize = DrawPanel->GetClientSize(); wxSize DrawAreaSize = DrawPanel->GetClientSize();
...@@ -266,7 +266,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindMarker( int SearchType ) ...@@ -266,7 +266,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindMarker( int SearchType )
* SearchType = 0: search the first marker, else search next marker * SearchType = 0: search the first marker, else search next marker
*/ */
{ {
DrawSheetList* sheet, * FirstSheet = NULL; DrawSheetPath* sheet, * FirstSheet = NULL;
EDA_BaseStruct* DrawList, * FirstStruct = NULL, * Struct = NULL; EDA_BaseStruct* DrawList, * FirstStruct = NULL, * Struct = NULL;
DrawMarkerStruct* Marker = NULL; DrawMarkerStruct* Marker = NULL;
int StartCount; int StartCount;
...@@ -420,7 +420,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindSchematicItem( ...@@ -420,7 +420,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindSchematicItem(
* @param mouseWarp If true, then move the mouse cursor to the item. * @param mouseWarp If true, then move the mouse cursor to the item.
*/ */
{ {
DrawSheetList* Sheet, * FirstSheet = NULL; DrawSheetPath* Sheet, * FirstSheet = NULL;
EDA_BaseStruct* DrawList = NULL, * FirstStruct = NULL, * Struct = NULL; EDA_BaseStruct* DrawList = NULL, * FirstStruct = NULL, * Struct = NULL;
int StartCount, ii, jj; int StartCount, ii, jj;
bool NotFound; bool NotFound;
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include "../bitmaps/treensel.xpm" #include "../bitmaps/treensel.xpm"
static void UpdateScreenFromSheet(WinEDA_SchematicFrame * frame); static bool UpdateScreenFromSheet(WinEDA_SchematicFrame * frame);
enum { enum {
ID_TREECTRL_HIERARCHY = 1600 ID_TREECTRL_HIERARCHY = 1600
...@@ -37,8 +37,8 @@ class WinEDA_HierFrame; ...@@ -37,8 +37,8 @@ class WinEDA_HierFrame;
class TreeItemData: public wxTreeItemData class TreeItemData: public wxTreeItemData
{ {
public: public:
DrawSheetList m_SheetList; DrawSheetPath m_SheetList;
TreeItemData(DrawSheetList sheet) :wxTreeItemData() TreeItemData(DrawSheetPath sheet) :wxTreeItemData()
{ {
m_SheetList = sheet; m_SheetList = sheet;
} }
...@@ -92,7 +92,7 @@ private: ...@@ -92,7 +92,7 @@ private:
public: public:
WinEDA_HierFrame(WinEDA_SchematicFrame *parent, wxDC * DC, const wxPoint& pos); WinEDA_HierFrame(WinEDA_SchematicFrame *parent, wxDC * DC, const wxPoint& pos);
void BuildSheetList(DrawSheetList * list, wxTreeItemId * previousmenu); void BuildSheetList(DrawSheetPath * list, wxTreeItemId * previousmenu);
~WinEDA_HierFrame(); ~WinEDA_HierFrame();
void OnSelect(wxTreeEvent& event); void OnSelect(wxTreeEvent& event);
...@@ -133,7 +133,7 @@ WinEDA_HierFrame::WinEDA_HierFrame(WinEDA_SchematicFrame *parent, wxDC * DC, ...@@ -133,7 +133,7 @@ WinEDA_HierFrame::WinEDA_HierFrame(WinEDA_SchematicFrame *parent, wxDC * DC,
cellule = m_Tree->AddRoot(_("Root"), 0, 1); cellule = m_Tree->AddRoot(_("Root"), 0, 1);
m_Tree->SetItemBold(cellule, TRUE); m_Tree->SetItemBold(cellule, TRUE);
DrawSheetList list; DrawSheetPath list;
list.Push(g_RootSheet); list.Push(g_RootSheet);
m_Tree->SetItemData( cellule, new TreeItemData(list) ); m_Tree->SetItemData( cellule, new TreeItemData(list) );
...@@ -179,7 +179,7 @@ void WinEDA_HierFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) ...@@ -179,7 +179,7 @@ void WinEDA_HierFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
} }
/********************************************************************/ /********************************************************************/
void WinEDA_HierFrame::BuildSheetList(DrawSheetList* list, void WinEDA_HierFrame::BuildSheetList(DrawSheetPath* list,
wxTreeItemId * previousmenu) wxTreeItemId * previousmenu)
/********************************************************************/ /********************************************************************/
/* Routine de creation de l'arbre de navigation dans la hierarchy /* Routine de creation de l'arbre de navigation dans la hierarchy
...@@ -235,11 +235,12 @@ wxTreeItemId menu; ...@@ -235,11 +235,12 @@ wxTreeItemId menu;
/***************************************************/ /***************************************************/
void WinEDA_HierFrame::OnSelect(wxTreeEvent& event) void WinEDA_HierFrame::OnSelect(wxTreeEvent& event)
/***************************************************/ /***************************************************/
/* appelee sur un double-click de la souris pour la selection d'un item: /* Called on a double-click on a tree item:
Selectionne et affiche l'ecran demand� Open the selected sheet, and display the corresponding screen
*/ */
{ {
wxTreeItemId ItemSel = m_Tree->GetSelection(); wxTreeItemId ItemSel = m_Tree->GetSelection();
*(m_Parent->m_CurrentSheet) = *(m_Parent->m_CurrentSheet) =
((TreeItemData*)(m_Tree->GetItemData(ItemSel)))->m_SheetList; ((TreeItemData*)(m_Tree->GetItemData(ItemSel)))->m_SheetList;
wxString path = m_Parent->m_CurrentSheet->PathHumanReadable(); wxString path = m_Parent->m_CurrentSheet->PathHumanReadable();
...@@ -259,7 +260,7 @@ void WinEDA_SchematicFrame::InstallPreviousSheet() ...@@ -259,7 +260,7 @@ void WinEDA_SchematicFrame::InstallPreviousSheet()
g_ItemToRepeat = NULL; g_ItemToRepeat = NULL;
MsgPanel->EraseMsgBox(); MsgPanel->EraseMsgBox();
//make a copy for testing purposes. //make a copy for testing purposes.
DrawSheetList listtemp = *m_CurrentSheet; DrawSheetPath listtemp = *m_CurrentSheet;
listtemp.Pop(); listtemp.Pop();
if ( listtemp.LastScreen() == NULL ){ if ( listtemp.LastScreen() == NULL ){
DisplayError( this, wxT("InstallPreviousScreen() Error: Sheet not found")); DisplayError( this, wxT("InstallPreviousScreen() Error: Sheet not found"));
...@@ -290,7 +291,7 @@ void WinEDA_SchematicFrame::InstallNextScreen(DrawSheetStruct * Sheet) ...@@ -290,7 +291,7 @@ void WinEDA_SchematicFrame::InstallNextScreen(DrawSheetStruct * Sheet)
} }
/**************************************************************/ /**************************************************************/
static void UpdateScreenFromSheet(WinEDA_SchematicFrame * frame) static bool UpdateScreenFromSheet(WinEDA_SchematicFrame * frame)
/**************************************************************/ /**************************************************************/
/* Recherche et installe de l'ecran relatif au sheet symbole Sheet. /* Recherche et installe de l'ecran relatif au sheet symbole Sheet.
...@@ -302,7 +303,10 @@ static void UpdateScreenFromSheet(WinEDA_SchematicFrame * frame) ...@@ -302,7 +303,10 @@ static void UpdateScreenFromSheet(WinEDA_SchematicFrame * frame)
NewScreen = frame->m_CurrentSheet->LastScreen(); NewScreen = frame->m_CurrentSheet->LastScreen();
if(!NewScreen) if(!NewScreen)
NewScreen = g_RootSheet->m_AssociatedScreen; {
DisplayError(frame, wxT("Screen not found for this sheet"));
return false;
}
// Reinit des parametres d'affichage du nouvel ecran // Reinit des parametres d'affichage du nouvel ecran
// assumes m_CurrentSheet has already been updated. // assumes m_CurrentSheet has already been updated.
...@@ -325,6 +329,6 @@ static void UpdateScreenFromSheet(WinEDA_SchematicFrame * frame) ...@@ -325,6 +329,6 @@ static void UpdateScreenFromSheet(WinEDA_SchematicFrame * frame)
frame->DrawPanel->MouseToCursorSchema(); frame->DrawPanel->MouseToCursorSchema();
} }
ActiveScreen = frame->m_CurrentSheet->LastScreen(); ActiveScreen = frame->m_CurrentSheet->LastScreen();
return; return true;
} }
...@@ -98,6 +98,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F ...@@ -98,6 +98,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F
return FALSE; return FALSE;
screen->SetCurItem( NULL ); screen->SetCurItem( NULL );
screen->m_FileName = FullFileName;
LineCount = 1; LineCount = 1;
if( ( f = wxFopen( FullFileName, wxT( "rt" ) ) ) == NULL ) if( ( f = wxFopen( FullFileName, wxT( "rt" ) ) ) == NULL )
...@@ -107,7 +108,6 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F ...@@ -107,7 +108,6 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F
return FALSE; return FALSE;
} }
screen->m_FileName = FullFileName;
MsgDiag = _( "Loading " ) + screen->m_FileName; MsgDiag = _( "Loading " ) + screen->m_FileName;
PrintMsg( MsgDiag ); PrintMsg( MsgDiag );
...@@ -886,7 +886,7 @@ static int ReadSheetDescr( wxWindow* frame, char* Line, FILE* f, BASE_SCREEN* Wi ...@@ -886,7 +886,7 @@ static int ReadSheetDescr( wxWindow* frame, char* Line, FILE* f, BASE_SCREEN* Wi
} }
else else
{ {
SheetStruct->m_FileName = CONV_FROM_UTF8( Name1 ); SheetStruct->SetFileName(CONV_FROM_UTF8( Name1 ));
//printf("in ReadSheetDescr : SheetStruct->m_FileName = %s \n", Name1); //printf("in ReadSheetDescr : SheetStruct->m_FileName = %s \n", Name1);
SheetStruct->m_FileNameSize = size; SheetStruct->m_FileNameSize = size;
} }
......
...@@ -25,9 +25,9 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, bool use_ ...@@ -25,9 +25,9 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, bool use_
static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet ); static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet );
static void AddPinToComponentPinList( EDA_SchComponentStruct* Component, static void AddPinToComponentPinList( EDA_SchComponentStruct* Component,
DrawSheetList* sheet, DrawSheetPath* sheet,
LibDrawPin* PinEntry ); LibDrawPin* PinEntry );
static void FindOthersUnits( EDA_SchComponentStruct* Component, DrawSheetList* Sheet_in); static void FindOthersUnits( EDA_SchComponentStruct* Component, DrawSheetPath* Sheet_in);
static int SortPinsByNum( ObjetNetListStruct** Pin1, ObjetNetListStruct** Pin2 ); static int SortPinsByNum( ObjetNetListStruct** Pin1, ObjetNetListStruct** Pin2 );
static void EraseDuplicatePins( ObjetNetListStruct** TabPin, int NbrPin ); static void EraseDuplicatePins( ObjetNetListStruct** TabPin, int NbrPin );
...@@ -93,7 +93,7 @@ void WriteNetList( WinEDA_SchematicFrame* frame, const wxString& FileNameNL, ...@@ -93,7 +93,7 @@ void WriteNetList( WinEDA_SchematicFrame* frame, const wxString& FileNameNL,
/****************************************************************************/ /****************************************************************************/
static EDA_SchComponentStruct* FindNextComponentAndCreatPinList( static EDA_SchComponentStruct* FindNextComponentAndCreatPinList(
EDA_BaseStruct* DrawList, DrawSheetList* sheet) EDA_BaseStruct* DrawList, DrawSheetPath* sheet)
/****************************************************************************/ /****************************************************************************/
/* Find a "suitable" component from the DrawList /* Find a "suitable" component from the DrawList
...@@ -245,7 +245,7 @@ void Write_GENERIC_NetList( WinEDA_SchematicFrame* frame, ...@@ -245,7 +245,7 @@ void Write_GENERIC_NetList( WinEDA_SchematicFrame* frame,
*/ */
{ {
wxString Line, FootprintName; wxString Line, FootprintName;
DrawSheetList* sheet; DrawSheetPath* sheet;
EDA_BaseStruct* DrawList; EDA_BaseStruct* DrawList;
EDA_SchComponentStruct* Component; EDA_SchComponentStruct* Component;
wxString netname; wxString netname;
...@@ -392,7 +392,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, ...@@ -392,7 +392,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f,
*/ */
{ {
char Line[1024]; char Line[1024];
DrawSheetList* sheet; DrawSheetPath* sheet;
EDA_BaseStruct* DrawList; EDA_BaseStruct* DrawList;
EDA_SchComponentStruct* Component; EDA_SchComponentStruct* Component;
int ii, nbitems; int ii, nbitems;
...@@ -534,7 +534,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with ...@@ -534,7 +534,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
{ {
wxString Line, FootprintName; wxString Line, FootprintName;
char Buf[256]; char Buf[256];
DrawSheetList* sheet; DrawSheetPath* sheet;
EDA_BaseStruct* DrawList; EDA_BaseStruct* DrawList;
EDA_SchComponentStruct* Component; EDA_SchComponentStruct* Component;
int ii; int ii;
...@@ -676,7 +676,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with ...@@ -676,7 +676,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
/*************************************************************************************/ /*************************************************************************************/
static void AddPinToComponentPinList( EDA_SchComponentStruct* Component, static void AddPinToComponentPinList( EDA_SchComponentStruct* Component,
DrawSheetList* sheetlist, LibDrawPin* Pin ) DrawSheetPath* sheetlist, LibDrawPin* Pin )
/*************************************************************************************/ /*************************************************************************************/
/* Add a new pin description in the pin list s_SortedComponentPinList /* Add a new pin description in the pin list s_SortedComponentPinList
...@@ -742,7 +742,7 @@ static void EraseDuplicatePins( ObjetNetListStruct** TabPin, int NbrPin ) ...@@ -742,7 +742,7 @@ static void EraseDuplicatePins( ObjetNetListStruct** TabPin, int NbrPin )
/**********************************************************************/ /**********************************************************************/
static void FindOthersUnits( EDA_SchComponentStruct* Component_in, DrawSheetList* Sheet_in) static void FindOthersUnits( EDA_SchComponentStruct* Component_in, DrawSheetPath* Sheet_in)
/**********************************************************************/ /**********************************************************************/
/* Recherche les autres parts du boitier auquel appartient la part Component, /* Recherche les autres parts du boitier auquel appartient la part Component,
...@@ -754,7 +754,7 @@ static void FindOthersUnits( EDA_SchComponentStruct* Component_in, DrawSheetList ...@@ -754,7 +754,7 @@ static void FindOthersUnits( EDA_SchComponentStruct* Component_in, DrawSheetList
EDA_SchComponentStruct* Component2; EDA_SchComponentStruct* Component2;
EDA_LibComponentStruct* Entry; EDA_LibComponentStruct* Entry;
LibEDA_BaseStruct* DEntry; LibEDA_BaseStruct* DEntry;
DrawSheetList* sheet; DrawSheetPath* sheet;
wxString str; wxString str;
EDA_SheetList SheetList( NULL ); EDA_SheetList SheetList( NULL );
...@@ -960,7 +960,7 @@ static void WriteNetListCADSTAR( WinEDA_SchematicFrame* frame, FILE* f ) ...@@ -960,7 +960,7 @@ static void WriteNetListCADSTAR( WinEDA_SchematicFrame* frame, FILE* f )
wxString msg; wxString msg;
wxString FootprintName; wxString FootprintName;
char Line[1024]; char Line[1024];
DrawSheetList* sheet; DrawSheetPath* sheet;
EDA_BaseStruct* DrawList; EDA_BaseStruct* DrawList;
EDA_SchComponentStruct* Component; EDA_SchComponentStruct* Component;
wxString Title = g_Main_Title + wxT( " " ) + GetBuildVersion(); wxString Title = g_Main_Title + wxT( " " ) + GetBuildVersion();
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
static void PropageNetCode( int OldNetCode, int NewNetCode, int IsBus ); static void PropageNetCode( int OldNetCode, int NewNetCode, int IsBus );
static void SheetLabelConnect( ObjetNetListStruct* SheetLabel ); static void SheetLabelConnect( ObjetNetListStruct* SheetLabel );
static int ListeObjetConnection( WinEDA_SchematicFrame* frame, static int ListeObjetConnection( WinEDA_SchematicFrame* frame,
DrawSheetList* sheetlist, DrawSheetPath* sheetlist,
ObjetNetListStruct* ObjNet ); ObjetNetListStruct* ObjNet );
static int ConvertBusToMembers( ObjetNetListStruct* ObjNet ); static int ConvertBusToMembers( ObjetNetListStruct* ObjNet );
static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus,
...@@ -154,7 +154,7 @@ void* WinEDA_SchematicFrame::BuildNetListBase() ...@@ -154,7 +154,7 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
{ {
int NetNumber; int NetNumber;
int i, istart, NetCode; int i, istart, NetCode;
DrawSheetList* sheet; DrawSheetPath* sheet;
wxString msg; wxString msg;
wxBusyCursor Busy; wxBusyCursor Busy;
...@@ -435,7 +435,7 @@ static void SheetLabelConnect( ObjetNetListStruct* SheetLabel ) ...@@ -435,7 +435,7 @@ static void SheetLabelConnect( ObjetNetListStruct* SheetLabel )
/*****************************************************************************/ /*****************************************************************************/
static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetList* sheetlist, static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sheetlist,
ObjetNetListStruct* ObjNet ) ObjetNetListStruct* ObjNet )
/*****************************************************************************/ /*****************************************************************************/
...@@ -454,7 +454,7 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetList* sh ...@@ -454,7 +454,7 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetList* sh
EDA_LibComponentStruct* Entry; EDA_LibComponentStruct* Entry;
LibEDA_BaseStruct* DEntry; LibEDA_BaseStruct* DEntry;
DrawSheetLabelStruct* SheetLabel; DrawSheetLabelStruct* SheetLabel;
DrawSheetList list; DrawSheetPath list;
DrawList = sheetlist->LastScreen()->EEDrawList; DrawList = sheetlist->LastScreen()->EEDrawList;
for( ; DrawList; DrawList = DrawList->Pnext ) for( ; DrawList; DrawList = DrawList->Pnext )
......
...@@ -66,7 +66,7 @@ public: ...@@ -66,7 +66,7 @@ public:
void* m_Link; /* Pour SheetLabelStruct: Pointeur sur la feuille de hierarchie void* m_Link; /* Pour SheetLabelStruct: Pointeur sur la feuille de hierarchie
* Pour les Pins: pointeur sur le composant */ * Pour les Pins: pointeur sur le composant */
int m_Flag; /* flag pour calculs internes */ int m_Flag; /* flag pour calculs internes */
DrawSheetList m_SheetList; DrawSheetPath m_SheetList;
NetObjetType m_Type; NetObjetType m_Type;
int m_ElectricalType;/* Pour Pins et sheet labels: type electrique */ int m_ElectricalType;/* Pour Pins et sheet labels: type electrique */
private: private:
...@@ -76,7 +76,7 @@ public: ...@@ -76,7 +76,7 @@ public:
int m_Member; /* pour les labels type BUSWIRE ( labels de bus eclate ) int m_Member; /* pour les labels type BUSWIRE ( labels de bus eclate )
* numero de membre */ * numero de membre */
IsConnectType m_FlagOfConnection; IsConnectType m_FlagOfConnection;
DrawSheetList m_SheetListInclude; /* sheet that the hierarchal label connects to.*/ DrawSheetPath m_SheetListInclude; /* sheet that the hierarchal label connects to.*/
long m_PinNum; /* numero de pin( 4 octets -> 4 codes ascii) */ long m_PinNum; /* numero de pin( 4 octets -> 4 codes ascii) */
const wxString* m_Label; /* Tous types Labels:pointeur sur la wxString definissant le label */ const wxString* m_Label; /* Tous types Labels:pointeur sur la wxString definissant le label */
wxPoint m_Start, m_End; wxPoint m_Start, m_End;
...@@ -102,7 +102,7 @@ typedef struct ListComponent ...@@ -102,7 +102,7 @@ typedef struct ListComponent
EDA_SchComponentStruct * m_Comp; EDA_SchComponentStruct * m_Comp;
char m_Ref[32]; char m_Ref[32];
//have to store it here since the object refrerences will be duplicated. //have to store it here since the object refrerences will be duplicated.
DrawSheetList m_SheetList; //composed of UIDs DrawSheetPath m_SheetList; //composed of UIDs
} ListComponent; } ListComponent;
/* Structure decrivant 1 composant de la schematique (pour *annotation* ) */ /* Structure decrivant 1 composant de la schematique (pour *annotation* ) */
...@@ -113,7 +113,7 @@ public: ...@@ -113,7 +113,7 @@ public:
int m_NbParts; /* Nombre de parts par boitier */ int m_NbParts; /* Nombre de parts par boitier */
bool m_PartsLocked; // For multi part components: True if the part cannot be changed bool m_PartsLocked; // For multi part components: True if the part cannot be changed
int m_Unit; /* Numero de part */ int m_Unit; /* Numero de part */
DrawSheetList m_SheetList; DrawSheetPath m_SheetList;
unsigned long m_TimeStamp; /* unique identification number */ unsigned long m_TimeStamp; /* unique identification number */
int m_IsNew; /* != 0 pour composants non annotes */ int m_IsNew; /* != 0 pour composants non annotes */
char m_TextValue[32]; /* Valeur */ char m_TextValue[32]; /* Valeur */
......
...@@ -773,7 +773,7 @@ void PlotSheetStruct( DrawSheetStruct* Struct ) ...@@ -773,7 +773,7 @@ void PlotSheetStruct( DrawSheetStruct* Struct )
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_BOTTOM ); GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_BOTTOM );
/* Trace des textes : FileName */ /* Trace des textes : FileName */
Text = Struct->m_FileName; Text = Struct->GetFileName();
size = wxSize( Struct->m_FileNameSize, Struct->m_FileNameSize ); size = wxSize( Struct->m_FileNameSize, Struct->m_FileNameSize );
if( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt ) if( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt )
SetColorMapPS( ReturnLayerColor( LAYER_SHEETFILENAME ) ); SetColorMapPS( ReturnLayerColor( LAYER_SHEETFILENAME ) );
......
...@@ -495,10 +495,10 @@ DrawSheetLabelStruct * SheetLabel; ...@@ -495,10 +495,10 @@ DrawSheetLabelStruct * SheetLabel;
} }
} }
if( ! SheetStruct->m_FileName.IsEmpty()) if( ! SheetStruct->GetFileName().IsEmpty())
{ {
if(fprintf(f,"F1 \"%s\" %d\n", if(fprintf(f,"F1 \"%s\" %d\n",
CONV_TO_UTF8(SheetStruct->m_FileName), CONV_TO_UTF8(SheetStruct->GetFileName()),
SheetStruct->m_FileNameSize) == EOF) SheetStruct->m_FileNameSize) == EOF)
{ {
Failed = TRUE; return(Failed); Failed = TRUE; return(Failed);
......
...@@ -533,8 +533,11 @@ void SCH_SCREEN::ClearUndoORRedoList( EDA_BaseStruct* List ) ...@@ -533,8 +533,11 @@ void SCH_SCREEN::ClearUndoORRedoList( EDA_BaseStruct* List )
item = PickedList->m_PickedStruct; item = PickedList->m_PickedStruct;
if( item ) if( item )
{ {
#if 0
if( item->Type() == DRAW_SHEET_STRUCT_TYPE ) if( item->Type() == DRAW_SHEET_STRUCT_TYPE )
{ {
printf(
"schematic undo_redo.cpp: undo_redo with a DRAW_SHEET_STRUCT_TYPE, checkme!!\n" );
DrawSheetStruct* sheet = (DrawSheetStruct*) item; DrawSheetStruct* sheet = (DrawSheetStruct*) item;
/* Delete sub hierarchy if the sheet must be deleted */ /* Delete sub hierarchy if the sheet must be deleted */
if( (sheet->m_Flags & IS_DELETED) != 0 ) if( (sheet->m_Flags & IS_DELETED) != 0 )
...@@ -544,8 +547,6 @@ void SCH_SCREEN::ClearUndoORRedoList( EDA_BaseStruct* List ) ...@@ -544,8 +547,6 @@ void SCH_SCREEN::ClearUndoORRedoList( EDA_BaseStruct* List )
{ {
if( (item->m_Flags & IS_NEW) == 0 ) if( (item->m_Flags & IS_NEW) == 0 )
{ {
printf(
"schematic undo_redo.cpp: undo_redo with a DRAW_SHEET_STRUCT_TYPE, checkme!!\n" );
/* /*
* sheet->EEDrawList = NULL; * sheet->EEDrawList = NULL;
...@@ -555,6 +556,7 @@ void SCH_SCREEN::ClearUndoORRedoList( EDA_BaseStruct* List ) ...@@ -555,6 +556,7 @@ void SCH_SCREEN::ClearUndoORRedoList( EDA_BaseStruct* List )
} }
} }
} }
#endif
if( (item->m_Flags & IS_NEW) == 0 ) if( (item->m_Flags & IS_NEW) == 0 )
{ {
SAFE_DELETE( item ); SAFE_DELETE( item );
...@@ -578,6 +580,7 @@ void SCH_SCREEN::ClearUndoORRedoList( EDA_BaseStruct* List ) ...@@ -578,6 +580,7 @@ void SCH_SCREEN::ClearUndoORRedoList( EDA_BaseStruct* List )
} }
else else
{ {
#if 0
if( FirstItem->Type() == DRAW_SHEET_STRUCT_TYPE ) if( FirstItem->Type() == DRAW_SHEET_STRUCT_TYPE )
{ {
DrawSheetStruct* sheet = (DrawSheetStruct*) FirstItem; DrawSheetStruct* sheet = (DrawSheetStruct*) FirstItem;
...@@ -599,6 +602,7 @@ void SCH_SCREEN::ClearUndoORRedoList( EDA_BaseStruct* List ) ...@@ -599,6 +602,7 @@ void SCH_SCREEN::ClearUndoORRedoList( EDA_BaseStruct* List )
} }
} }
} }
#endif
if( (FirstItem->m_Flags & IS_NEW) == 0 ) if( (FirstItem->m_Flags & IS_NEW) == 0 )
{ {
SAFE_DELETE( FirstItem ); SAFE_DELETE( FirstItem );
......
...@@ -140,7 +140,7 @@ WinEDA_SchematicFrame::WinEDA_SchematicFrame( wxWindow* father, ...@@ -140,7 +140,7 @@ WinEDA_SchematicFrame::WinEDA_SchematicFrame( wxWindow* father,
m_Draw_Axis = FALSE; // TRUE to show axis m_Draw_Axis = FALSE; // TRUE to show axis
m_Draw_Grid = g_ShowGrid; // TRUE to show a grid m_Draw_Grid = g_ShowGrid; // TRUE to show a grid
m_Draw_Sheet_Ref = TRUE; // TRUE to show sheet references m_Draw_Sheet_Ref = TRUE; // TRUE to show sheet references
m_CurrentSheet = new DrawSheetList(); m_CurrentSheet = new DrawSheetPath();
CreateScreens(); CreateScreens();
...@@ -179,7 +179,7 @@ WinEDA_SchematicFrame::~WinEDA_SchematicFrame() ...@@ -179,7 +179,7 @@ WinEDA_SchematicFrame::~WinEDA_SchematicFrame()
{ {
m_Parent->m_SchematicFrame = NULL; m_Parent->m_SchematicFrame = NULL;
SAFE_DELETE( g_RootSheet ); SAFE_DELETE( g_RootSheet );
SAFE_DELETE( m_CurrentSheet ); //a DrawSheetList, on the heap. SAFE_DELETE( m_CurrentSheet ); //a DrawSheetPath, on the heap.
m_CurrentSheet = NULL; m_CurrentSheet = NULL;
} }
...@@ -187,7 +187,7 @@ WinEDA_SchematicFrame::~WinEDA_SchematicFrame() ...@@ -187,7 +187,7 @@ WinEDA_SchematicFrame::~WinEDA_SchematicFrame()
/***************/ /***************/
/* utility functions */ /* utility functions */
/***************/ /***************/
DrawSheetList* WinEDA_SchematicFrame::GetSheet() DrawSheetPath* WinEDA_SchematicFrame::GetSheet()
{ {
return m_CurrentSheet; return m_CurrentSheet;
} }
...@@ -205,7 +205,7 @@ void WinEDA_SchematicFrame::SetScreen( SCH_SCREEN* screen ) ...@@ -205,7 +205,7 @@ void WinEDA_SchematicFrame::SetScreen( SCH_SCREEN* screen )
//there is ambiguity in this function (there may be several //there is ambiguity in this function (there may be several
//instances of a given sheet, but irregardless it is useful //instances of a given sheet, but irregardless it is useful
//for printing etc. //for printing etc.
DrawSheetList sheetlist; DrawSheetPath sheetlist;
if( g_RootSheet->LocatePathOfScreen( screen, &sheetlist ) ) if( g_RootSheet->LocatePathOfScreen( screen, &sheetlist ) )
{ {
...@@ -250,7 +250,7 @@ void WinEDA_SchematicFrame::CreateScreens() ...@@ -250,7 +250,7 @@ void WinEDA_SchematicFrame::CreateScreens()
/**************************************************************/ /**************************************************************/
void WinEDA_SchematicFrame::OnCloseWindow( wxCloseEvent& Event ) void WinEDA_SchematicFrame::OnCloseWindow( wxCloseEvent& Event )
{ {
DrawSheetList* sheet; DrawSheetPath* sheet;
if( m_Parent->m_LibeditFrame ) // Can close component editor ? if( m_Parent->m_LibeditFrame ) // Can close component editor ?
{ {
...@@ -400,18 +400,18 @@ int WinEDA_SchematicFrame::BestZoom() ...@@ -400,18 +400,18 @@ int WinEDA_SchematicFrame::BestZoom()
int bestzoom; int bestzoom;
wxSize size; wxSize size;
dx = GetScreen()->m_CurrentSheetDesc->m_Size.x; dx = GetScreen()->m_CurrentSheetDesc->m_Size.x;
dy = GetScreen()->m_CurrentSheetDesc->m_Size.y; dy = GetScreen()->m_CurrentSheetDesc->m_Size.y;
size = DrawPanel->GetClientSize(); size = DrawPanel->GetClientSize();
ii = dx / size.x; ii = dx / size.x;
jj = dy / size.y; jj = dy / size.y;
bestzoom = MAX( ii, jj ) + 1; bestzoom = MAX( ii, jj ) + 1;
GetScreen()->SetZoom( ii );
GetScreen()->m_Curseur.x = dx / 2;
GetScreen()->m_Curseur.y = dy / 2;
GetScreen()->SetZoom( ii );
GetScreen()->m_Curseur.x = dx / 2;
GetScreen()->m_Curseur.y = dy / 2;
return bestzoom; return bestzoom;
} }
......
...@@ -16,7 +16,7 @@ class WinEDA_SchematicFrame : public WinEDA_DrawFrame ...@@ -16,7 +16,7 @@ class WinEDA_SchematicFrame : public WinEDA_DrawFrame
{ {
public: public:
WinEDAChoiceBox* m_SelPartBox; WinEDAChoiceBox* m_SelPartBox;
DrawSheetList* m_CurrentSheet; //which sheet we are presently working on. DrawSheetPath* m_CurrentSheet; //which sheet we are presently working on.
private: private:
wxMenu* m_FilesMenu; wxMenu* m_FilesMenu;
...@@ -45,7 +45,7 @@ public: ...@@ -45,7 +45,7 @@ public:
int hotkey, int hotkey,
EDA_BaseStruct* DrawStruct ); EDA_BaseStruct* DrawStruct );
DrawSheetList* GetSheet(); DrawSheetPath* GetSheet();
virtual BASE_SCREEN* GetScreen(); virtual BASE_SCREEN* GetScreen();
virtual void SetScreen(SCH_SCREEN* screen); virtual void SetScreen(SCH_SCREEN* screen);
virtual wxString GetScreenDesc(); virtual wxString GetScreenDesc();
...@@ -168,6 +168,11 @@ private: ...@@ -168,6 +168,11 @@ private:
public: public:
bool EditSheet( DrawSheetStruct* Sheet, wxDC* DC ); bool EditSheet( DrawSheetStruct* Sheet, wxDC* DC );
/** Function UpdateSheetNumberAndDate
* Set a sheet number, the sheet count for sheets in the whole schematic
* and update the date in all screens
*/
void UpdateSheetNumberAndDate();
private: private:
void StartMoveSheet( DrawSheetStruct* sheet, wxDC* DC ); void StartMoveSheet( DrawSheetStruct* sheet, wxDC* DC );
......
...@@ -68,9 +68,9 @@ IMPLEMENT_DYNAMIC_CLASS( WinEDA_SheetPropertiesFrame, wxDialog ) ...@@ -68,9 +68,9 @@ IMPLEMENT_DYNAMIC_CLASS( WinEDA_SheetPropertiesFrame, wxDialog )
BEGIN_EVENT_TABLE( WinEDA_SheetPropertiesFrame, wxDialog ) BEGIN_EVENT_TABLE( WinEDA_SheetPropertiesFrame, wxDialog )
////@begin WinEDA_SheetPropertiesFrame event table entries ////@begin WinEDA_SheetPropertiesFrame event table entries
EVT_BUTTON( wxID_CANCEL, WinEDA_SheetPropertiesFrame::OnCancelClick ) EVT_BUTTON( wxID_CANCEL, WinEDA_SheetPropertiesFrame::OnCancelClick )
EVT_BUTTON( wxID_OK, WinEDA_SheetPropertiesFrame::OnOkClick ) EVT_BUTTON( wxID_OK, WinEDA_SheetPropertiesFrame::OnOkClick )
////@end WinEDA_SheetPropertiesFrame event table entries ////@end WinEDA_SheetPropertiesFrame event table entries
...@@ -115,24 +115,24 @@ bool WinEDA_SheetPropertiesFrame::Create( wxWindow* parent, wxWindowID id, const ...@@ -115,24 +115,24 @@ bool WinEDA_SheetPropertiesFrame::Create( wxWindow* parent, wxWindowID id, const
const wxPoint& pos, const wxSize& size, long style ) const wxPoint& pos, const wxSize& size, long style )
{ {
////@begin WinEDA_SheetPropertiesFrame member initialisation ////@begin WinEDA_SheetPropertiesFrame member initialisation
m_FileNameWin = NULL; m_FileNameWin = NULL;
m_SheetNameWin = NULL; m_SheetNameWin = NULL;
m_FileNameTextSize = NULL; m_FileNameTextSize = NULL;
m_FileNameSize = NULL; m_FileNameSize = NULL;
m_SheetNameTextSize = NULL; m_SheetNameTextSize = NULL;
m_SheetNameSize = NULL; m_SheetNameSize = NULL;
////@end WinEDA_SheetPropertiesFrame member initialisation ////@end WinEDA_SheetPropertiesFrame member initialisation
////@begin WinEDA_SheetPropertiesFrame creation ////@begin WinEDA_SheetPropertiesFrame creation
SetExtraStyle( GetExtraStyle() | wxWS_EX_BLOCK_EVENTS ); SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
wxDialog::Create( parent, id, caption, pos, size, style ); wxDialog::Create( parent, id, caption, pos, size, style );
CreateControls(); CreateControls();
GetSizer()->Fit( this ); if (GetSizer())
GetSizer()->SetSizeHints( this ); {
GetSizer()->SetSizeHints(this);
}
Centre(); Centre();
////@end WinEDA_SheetPropertiesFrame creation ////@end WinEDA_SheetPropertiesFrame creation
return true; return true;
} }
...@@ -147,89 +147,64 @@ void WinEDA_SheetPropertiesFrame::CreateControls() ...@@ -147,89 +147,64 @@ void WinEDA_SheetPropertiesFrame::CreateControls()
SetFont( *g_DialogFont ); SetFont( *g_DialogFont );
////@begin WinEDA_SheetPropertiesFrame content construction ////@begin WinEDA_SheetPropertiesFrame content construction
// Generated by DialogBlocks, 27/02/2006 14:12:10 (unregistered) // Generated by DialogBlocks, 28/02/2008 18:15:56 (unregistered)
WinEDA_SheetPropertiesFrame* itemDialog1 = this; WinEDA_SheetPropertiesFrame* itemDialog1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemDialog1->SetSizer( itemBoxSizer2 ); itemDialog1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer( wxHORIZONTAL );
itemBoxSizer2->Add( itemBoxSizer3, 0, wxGROW | wxALL, 5 );
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer( wxVERTICAL );
itemBoxSizer3->Add( itemBoxSizer4, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
wxStaticText* itemStaticText5 = new wxStaticText( itemDialog1, wxID_STATIC, _(
"Filename (will be created upon save if it does not already exist):" ),
wxDefaultPosition,
wxDefaultSize, 0 );
itemBoxSizer4->Add( itemStaticText5,
0,
wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE,
5 );
m_FileNameWin = new wxTextCtrl( itemDialog1, ID_TEXTCTRL1, _T( "" ), wxDefaultPosition,
wxSize( 300, -1 ), wxTE_PROCESS_ENTER );
itemBoxSizer4->Add( m_FileNameWin, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxBOTTOM, 5 );
wxStaticText* itemStaticText7 = new wxStaticText( itemDialog1, wxID_STATIC, _(
"Sheetname:" ), wxDefaultPosition,
wxDefaultSize, 0 );
itemBoxSizer4->Add( itemStaticText7,
0,
wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE,
5 );
m_SheetNameWin = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T( "" ), wxDefaultPosition,
wxSize( 300, -1 ), 0 );
itemBoxSizer4->Add( m_SheetNameWin, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxBOTTOM, 5 );
wxBoxSizer* itemBoxSizer9 = new wxBoxSizer( wxVERTICAL );
itemBoxSizer3->Add( itemBoxSizer9, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
m_FileNameTextSize = new wxStaticText( itemDialog1, wxID_STATIC, _(
"Size" ), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer9->Add( m_FileNameTextSize,
0,
wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE,
5 );
m_FileNameSize = new wxTextCtrl( itemDialog1, ID_TEXTCTRL2, _T(
"" ), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer9->Add( m_FileNameSize, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxBOTTOM, 5 );
m_SheetNameTextSize = new wxStaticText( itemDialog1, wxID_STATIC, _(
"Size" ), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer9->Add( m_SheetNameTextSize,
0,
wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE,
5 );
m_SheetNameSize = new wxTextCtrl( itemDialog1, ID_TEXTCTRL3, _T(
"" ), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer9->Add( m_SheetNameSize, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxBOTTOM, 5 );
itemBoxSizer2->Add( 5, 5, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 5 );
wxBoxSizer* itemBoxSizer15 = new wxBoxSizer( wxHORIZONTAL );
itemBoxSizer2->Add( itemBoxSizer15, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 5 );
wxButton* itemButton16 = new wxButton( itemDialog1, wxID_CANCEL, _(
"&Cancel" ), wxDefaultPosition, wxDefaultSize, 0 );
itemButton16->SetForegroundColour( wxColour( 0, 0, 255 ) );
itemBoxSizer15->Add( itemButton16, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
wxButton* itemButton17 = new wxButton( itemDialog1, wxID_OK, _(
"&OK" ), wxDefaultPosition, wxDefaultSize, 0 );
itemButton17->SetForegroundColour( wxColour( 196, 0, 0 ) );
itemBoxSizer15->Add( itemButton17, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
// Set validators wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
m_FileNameWin->SetValidator( wxTextValidator( wxFILTER_NONE, &m_CurrentSheet->m_FileName ) ); itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxALL, 5);
m_SheetNameWin->SetValidator( wxTextValidator( wxFILTER_NONE, &m_CurrentSheet->m_SheetName ) );
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer3->Add(itemBoxSizer4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText5 = new wxStaticText( itemDialog1, wxID_STATIC, _("Filename:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer4->Add(itemStaticText5, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_FileNameWin = new wxTextCtrl( itemDialog1, ID_TEXTCTRL1, _T(""), wxDefaultPosition, wxSize(300, -1), wxTE_PROCESS_ENTER );
itemBoxSizer4->Add(m_FileNameWin, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxBOTTOM, 5);
wxStaticText* itemStaticText7 = new wxStaticText( itemDialog1, wxID_STATIC, _("Sheetname:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer4->Add(itemStaticText7, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_SheetNameWin = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxSize(300, -1), 0 );
itemBoxSizer4->Add(m_SheetNameWin, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer9 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer3->Add(itemBoxSizer9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_FileNameTextSize = new wxStaticText( itemDialog1, wxID_STATIC, _("Size"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer9->Add(m_FileNameTextSize, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_FileNameSize = new wxTextCtrl( itemDialog1, ID_TEXTCTRL2, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer9->Add(m_FileNameSize, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxBOTTOM, 5);
m_SheetNameTextSize = new wxStaticText( itemDialog1, wxID_STATIC, _("Size"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer9->Add(m_SheetNameTextSize, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_SheetNameSize = new wxTextCtrl( itemDialog1, ID_TEXTCTRL3, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer9->Add(m_SheetNameSize, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemBoxSizer2->Add(5, 5, 1, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer15 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer2->Add(itemBoxSizer15, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
wxButton* itemButton16 = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton16->SetForegroundColour(wxColour(0, 0, 255));
itemBoxSizer15->Add(itemButton16, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* itemButton17 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton17->SetForegroundColour(wxColour(196, 0, 0));
itemBoxSizer15->Add(itemButton17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
// Set validators
m_SheetNameWin->SetValidator( wxTextValidator(wxFILTER_NONE, & m_CurrentSheet->m_SheetName) );
////@end WinEDA_SheetPropertiesFrame content construction ////@end WinEDA_SheetPropertiesFrame content construction
m_FileNameWin->SetValue( m_CurrentSheet->GetFileName());
} }
...@@ -251,9 +226,8 @@ wxBitmap WinEDA_SheetPropertiesFrame::GetBitmapResource( const wxString& name ) ...@@ -251,9 +226,8 @@ wxBitmap WinEDA_SheetPropertiesFrame::GetBitmapResource( const wxString& name )
{ {
// Bitmap retrieval // Bitmap retrieval
////@begin WinEDA_SheetPropertiesFrame bitmap retrieval ////@begin WinEDA_SheetPropertiesFrame bitmap retrieval
wxUnusedVar( name ); wxUnusedVar(name);
return wxNullBitmap; return wxNullBitmap;
////@end WinEDA_SheetPropertiesFrame bitmap retrieval ////@end WinEDA_SheetPropertiesFrame bitmap retrieval
} }
...@@ -266,9 +240,8 @@ wxIcon WinEDA_SheetPropertiesFrame::GetIconResource( const wxString& name ) ...@@ -266,9 +240,8 @@ wxIcon WinEDA_SheetPropertiesFrame::GetIconResource( const wxString& name )
{ {
// Icon retrieval // Icon retrieval
////@begin WinEDA_SheetPropertiesFrame icon retrieval ////@begin WinEDA_SheetPropertiesFrame icon retrieval
wxUnusedVar( name ); wxUnusedVar(name);
return wxNullIcon; return wxNullIcon;
////@end WinEDA_SheetPropertiesFrame icon retrieval ////@end WinEDA_SheetPropertiesFrame icon retrieval
} }
...@@ -291,9 +264,9 @@ void WinEDA_SheetPropertiesFrame::SheetPropertiesAccept( wxCommandEvent& event ) ...@@ -291,9 +264,9 @@ void WinEDA_SheetPropertiesFrame::SheetPropertiesAccept( wxCommandEvent& event )
ChangeFileNameExt( FileName, g_SchExtBuffer ); ChangeFileNameExt( FileName, g_SchExtBuffer );
if( m_CurrentSheet->m_FileName != FileName ) if( m_CurrentSheet->GetFileName() != FileName )
{ {
m_CurrentSheet->m_FileName = FileName; m_CurrentSheet->SetFileName(FileName);
if( wxFileExists( FileName ) ) //do we reload the data from the existing file if( wxFileExists( FileName ) ) //do we reload the data from the existing file
{ {
...@@ -336,7 +309,9 @@ void WinEDA_SheetPropertiesFrame::SheetPropertiesAccept( wxCommandEvent& event ) ...@@ -336,7 +309,9 @@ void WinEDA_SheetPropertiesFrame::SheetPropertiesAccept( wxCommandEvent& event )
msg, m_Parent->m_InternalUnits ); msg, m_Parent->m_InternalUnits );
if( ( m_CurrentSheet->m_SheetName.IsEmpty() ) ) if( ( m_CurrentSheet->m_SheetName.IsEmpty() ) )
m_CurrentSheet->m_SheetName = m_CurrentSheet->m_FileName; {
m_CurrentSheet->m_SheetName.Printf( wxT("Sheet%8.8lX"), GetTimeStamp() );
}
EndModal( TRUE ); EndModal( TRUE );
......
...@@ -39,15 +39,15 @@ ...@@ -39,15 +39,15 @@
////@begin control identifiers ////@begin control identifiers
#define ID_DIALOG 10000 #define ID_DIALOG 10000
#define ID_TEXTCTRL1 10002
#define ID_TEXTCTRL 10001
#define ID_TEXTCTRL2 10003
#define ID_TEXTCTRL3 10004
#define SYMBOL_WINEDA_SHEETPROPERTIESFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|MAYBE_RESIZE_BORDER #define SYMBOL_WINEDA_SHEETPROPERTIESFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|MAYBE_RESIZE_BORDER
#define SYMBOL_WINEDA_SHEETPROPERTIESFRAME_TITLE _("Sheet properties") #define SYMBOL_WINEDA_SHEETPROPERTIESFRAME_TITLE _("Sheet properties")
#define SYMBOL_WINEDA_SHEETPROPERTIESFRAME_IDNAME ID_DIALOG #define SYMBOL_WINEDA_SHEETPROPERTIESFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_SHEETPROPERTIESFRAME_SIZE wxSize(400, 300) #define SYMBOL_WINEDA_SHEETPROPERTIESFRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_SHEETPROPERTIESFRAME_POSITION wxDefaultPosition #define SYMBOL_WINEDA_SHEETPROPERTIESFRAME_POSITION wxDefaultPosition
#define ID_TEXTCTRL1 10002
#define ID_TEXTCTRL 10001
#define ID_TEXTCTRL2 10003
#define ID_TEXTCTRL3 10004
////@end control identifiers ////@end control identifiers
/*! /*!
......
<?xml version="1.0" encoding="windows-1252"?> <?xml version="1.0" encoding="UTF-8"?>
<anthemion-project version="1.0.0.0" xmlns="http://www.anthemion.co.uk"> <anthemion-project version="1.0.0.0" xmlns="http://www.anthemion.co.uk">
<header> <header>
<long name="name_counter">0</long> <long name="name_counter">0</long>
...@@ -6,18 +6,20 @@ ...@@ -6,18 +6,20 @@
<string name="title">""</string> <string name="title">""</string>
<string name="author">""</string> <string name="author">""</string>
<string name="description">""</string> <string name="description">""</string>
<long name="doc_count">24</long>
<string name="xrc_filename">""</string> <string name="xrc_filename">""</string>
<bool name="convert_images_to_xpm">0</bool> <bool name="convert_images_to_xpm">0</bool>
<bool name="inline_images">0</bool> <bool name="inline_images">0</bool>
<bool name="generate_cpp_for_xrc">0</bool> <bool name="generate_cpp_for_xrc">0</bool>
<long name="working_mode">1</long>
<bool name="use_help_text_for_tooltips">1</bool> <bool name="use_help_text_for_tooltips">1</bool>
<bool name="translate_strings">1</bool> <bool name="translate_strings">1</bool>
<bool name="make_unicode_strings">1</bool>
<bool name="extract_strings">0</bool> <bool name="extract_strings">0</bool>
<string name="user_name">"jean-pierre Charras"</string> <string name="user_name">"jean-pierre Charras"</string>
<string name="copyright_string">"License GNU"</string> <string name="copyright_string">"License GNU"</string>
<string name="resource_prefix">""</string> <string name="resource_prefix">""</string>
<bool name="use_two_step_construction">0</bool> <bool name="use_two_step_construction">0</bool>
<bool name="use_enums">0</bool>
<string name="current_platform">"&lt;All platforms&gt;"</string> <string name="current_platform">"&lt;All platforms&gt;"</string>
<string name="target_wx_version">"&lt;Any&gt;"</string> <string name="target_wx_version">"&lt;Any&gt;"</string>
<string name="cpp_header_comment">"///////////////////////////////////////////////////////////////////////////// <string name="cpp_header_comment">"/////////////////////////////////////////////////////////////////////////////
...@@ -43,12 +45,6 @@ ...@@ -43,12 +45,6 @@
// Licence: // Licence:
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
"</string>
<string name="cpp_function_comment">"
/*!
* %BODY%
*/
"</string> "</string>
<string name="cpp_symbols_file_comment">"///////////////////////////////////////////////////////////////////////////// <string name="cpp_symbols_file_comment">"/////////////////////////////////////////////////////////////////////////////
// Name: %SYMBOLS-FILENAME% // Name: %SYMBOLS-FILENAME%
...@@ -82,6 +78,14 @@ ...@@ -82,6 +78,14 @@
#include &quot;wx/wx.h&quot; #include &quot;wx/wx.h&quot;
#endif #endif
"</string>
<string name="cpp_function_declaration_comment">" /// %BODY%
"</string>
<string name="cpp_function_implementation_comment">"
/*!
* %BODY%
*/
"</string> "</string>
<string name="resource_file_header">"app_resources.h"</string> <string name="resource_file_header">"app_resources.h"</string>
<string name="resource_file_implementation">"app_resources.cpp"</string> <string name="resource_file_implementation">"app_resources.cpp"</string>
...@@ -93,11 +97,23 @@ ...@@ -93,11 +97,23 @@
<string name="external_symbol_filenames">""</string> <string name="external_symbol_filenames">""</string>
<string name="configuration">"&lt;None&gt;"</string> <string name="configuration">"&lt;None&gt;"</string>
<string name="source_encoding">"&lt;System&gt;"</string> <string name="source_encoding">"&lt;System&gt;"</string>
<string name="xrc_encoding">"utf-8"</string>
<string name="project_encoding">"&lt;System&gt;"</string> <string name="project_encoding">"&lt;System&gt;"</string>
<string name="resource_archive">""</string> <string name="resource_archive">""</string>
<long name="text_file_type">0</long>
<bool name="use_tabs">0</bool>
<long name="indent_size">4</long>
<string name="whitespace_after_return_type">" "</string>
<string name="resource_xrc_cpp">""</string>
<bool name="use_resource_archive">0</bool> <bool name="use_resource_archive">0</bool>
<bool name="use_generated_xrc_cpp">0</bool>
<bool name="always_generate_xrc">1</bool>
<bool name="use_id_name_for_name">0</bool>
<bool name="archive_xrc_files">1</bool> <bool name="archive_xrc_files">1</bool>
<bool name="archive_image_files">1</bool> <bool name="archive_image_files">1</bool>
<bool name="archive_all_image_files">0</bool>
<bool name="xrc_retain_relative_paths">1</bool>
<bool name="xrc_generate_id_tags">0</bool>
</header> </header>
<data> <data>
<document> <document>
...@@ -174,7 +190,7 @@ ...@@ -174,7 +190,7 @@
<long name="is-transient">1</long> <long name="is-transient">1</long>
<long name="owns-file">1</long> <long name="owns-file">1</long>
<long name="title-mode">0</long> <long name="title-mode">0</long>
<long name="locked">0</long> <long name="locked">1</long>
<document> <document>
<string name="title">"Windows"</string> <string name="title">"Windows"</string>
<string name="type">"html-document"</string> <string name="type">"html-document"</string>
...@@ -198,7 +214,10 @@ ...@@ -198,7 +214,10 @@
<long name="base-id">10000</long> <long name="base-id">10000</long>
<bool name="use-id-prefix">0</bool> <bool name="use-id-prefix">0</bool>
<string name="id-prefix">""</string> <string name="id-prefix">""</string>
<bool name="use-id-suffix">0</bool>
<string name="id-suffix">""</string>
<long name="use-xrc">0</long> <long name="use-xrc">0</long>
<long name="working-mode">0</long>
<string name="proxy-Id name">"ID_DIALOG"</string> <string name="proxy-Id name">"ID_DIALOG"</string>
<long name="proxy-Id value">10000</long> <long name="proxy-Id value">10000</long>
<string name="proxy-Class">"WinEDA_SheetPropertiesFrame"</string> <string name="proxy-Class">"WinEDA_SheetPropertiesFrame"</string>
...@@ -219,10 +238,16 @@ ...@@ -219,10 +238,16 @@
<bool name="proxy-Hidden">0</bool> <bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool> <bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Texture">""</string>
<string name="proxy-Texture style">"Tiled"</string>
<bool name="proxy-wxDEFAULT_DIALOG_STYLE">0</bool> <bool name="proxy-wxDEFAULT_DIALOG_STYLE">0</bool>
<bool name="proxy-wxCAPTION">1</bool> <bool name="proxy-wxCAPTION">1</bool>
<bool name="proxy-wxRESIZE_BORDER">0</bool> <bool name="proxy-wxRESIZE_BORDER">0</bool>
<bool name="proxy-wxTHICK_FRAME">0</bool>
<bool name="proxy-wxSYSTEM_MENU">1</bool> <bool name="proxy-wxSYSTEM_MENU">1</bool>
<bool name="proxy-wxSTAY_ON_TOP">0</bool> <bool name="proxy-wxSTAY_ON_TOP">0</bool>
<bool name="proxy-wxDIALOG_NO_PARENT">0</bool> <bool name="proxy-wxDIALOG_NO_PARENT">0</bool>
...@@ -237,7 +262,9 @@ ...@@ -237,7 +262,9 @@
<bool name="proxy-wxRAISED_BORDER">0</bool> <bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool> <bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxCLIP_CHILDREN ">0</bool> <bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxCLIP_CHILDREN">0</bool>
<bool name="proxy-wxTAB_TRAVERSAL">0</bool> <bool name="proxy-wxTAB_TRAVERSAL">0</bool>
<bool name="proxy-wxWS_EX_VALIDATE_RECURSIVELY">0</bool> <bool name="proxy-wxWS_EX_VALIDATE_RECURSIVELY">0</bool>
<bool name="proxy-wxWS_EX_BLOCK_EVENTS">1</bool> <bool name="proxy-wxWS_EX_BLOCK_EVENTS">1</bool>
...@@ -249,6 +276,7 @@ ...@@ -249,6 +276,7 @@
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
<long name="proxy-Width">400</long> <long name="proxy-Width">400</long>
<long name="proxy-Height">300</long> <long name="proxy-Height">300</long>
<bool name="proxy-AUI manager">0</bool>
<string name="proxy-Event sources">""</string> <string name="proxy-Event sources">""</string>
<document> <document>
<string name="title">"wxBoxSizer V"</string> <string name="title">"wxBoxSizer V"</string>
...@@ -329,9 +357,16 @@ ...@@ -329,9 +357,16 @@
<string name="proxy-type">"wbStaticTextProxy"</string> <string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string> <string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long> <long name="proxy-Id value">5105</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticText"</string> <string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Filename:"</string> <string name="proxy-Label">"Filename:"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
...@@ -342,6 +377,11 @@ ...@@ -342,6 +377,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool> <bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool> <bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool> <bool name="proxy-wxALIGN_CENTRE">0</bool>
...@@ -353,6 +393,8 @@ ...@@ -353,6 +393,8 @@
<bool name="proxy-wxRAISED_BORDER">0</bool> <bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool> <bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -385,7 +427,13 @@ ...@@ -385,7 +427,13 @@
<string name="proxy-type">"wbTextCtrlProxy"</string> <string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL1"</string> <string name="proxy-Id name">"ID_TEXTCTRL1"</string>
<long name="proxy-Id value">10002</long> <long name="proxy-Id value">10002</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTextCtrl"</string> <string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_FileNameWin"</string> <string name="proxy-Member variable name">"m_FileNameWin"</string>
<string name="proxy-Initial value">""</string> <string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long> <long name="proxy-Max length">0</long>
...@@ -397,8 +445,13 @@ ...@@ -397,8 +445,13 @@
<bool name="proxy-Hidden">0</bool> <bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool> <bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">"m_CurrentSheet-&gt;m_Field[SHEET_FILENAME].m_Text"</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">"wxTextValidator(wxFILTER_NONE, &amp; %VARIABLE%)"</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxTE_MULTILINE">0</bool> <bool name="proxy-wxTE_MULTILINE">0</bool>
<bool name="proxy-wxTE_PROCESS_ENTER">1</bool> <bool name="proxy-wxTE_PROCESS_ENTER">1</bool>
<bool name="proxy-wxTE_PROCESS_TAB">0</bool> <bool name="proxy-wxTE_PROCESS_TAB">0</bool>
...@@ -412,8 +465,9 @@ ...@@ -412,8 +465,9 @@
<bool name="proxy-wxTE_CENTRE">0</bool> <bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool> <bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool> <bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_LINEWRAP">0</bool> <bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool> <bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool> <bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool> <bool name="proxy-wxDOUBLE_BORDER">0</bool>
...@@ -421,6 +475,8 @@ ...@@ -421,6 +475,8 @@
<bool name="proxy-wxRAISED_BORDER">0</bool> <bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool> <bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -453,9 +509,16 @@ ...@@ -453,9 +509,16 @@
<string name="proxy-type">"wbStaticTextProxy"</string> <string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string> <string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long> <long name="proxy-Id value">5105</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticText"</string> <string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Sheetname:"</string> <string name="proxy-Label">"Sheetname:"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
...@@ -466,6 +529,11 @@ ...@@ -466,6 +529,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool> <bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool> <bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool> <bool name="proxy-wxALIGN_CENTRE">0</bool>
...@@ -477,6 +545,8 @@ ...@@ -477,6 +545,8 @@
<bool name="proxy-wxRAISED_BORDER">0</bool> <bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool> <bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -509,7 +579,13 @@ ...@@ -509,7 +579,13 @@
<string name="proxy-type">"wbTextCtrlProxy"</string> <string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL"</string> <string name="proxy-Id name">"ID_TEXTCTRL"</string>
<long name="proxy-Id value">10001</long> <long name="proxy-Id value">10001</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTextCtrl"</string> <string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_SheetNameWin"</string> <string name="proxy-Member variable name">"m_SheetNameWin"</string>
<string name="proxy-Initial value">""</string> <string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long> <long name="proxy-Max length">0</long>
...@@ -521,8 +597,13 @@ ...@@ -521,8 +597,13 @@
<bool name="proxy-Hidden">0</bool> <bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool> <bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">"m_CurrentSheet-&gt;m_Field[VALUE].m_Text"</string> <string name="proxy-Data variable">"m_CurrentSheet-&gt;m_SheetName"</string>
<string name="proxy-Data validator">"wxTextValidator(wxFILTER_NONE, &amp; %VARIABLE%)"</string> <string name="proxy-Data validator">"wxTextValidator(wxFILTER_NONE, &amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxTE_MULTILINE">0</bool> <bool name="proxy-wxTE_MULTILINE">0</bool>
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool> <bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
<bool name="proxy-wxTE_PROCESS_TAB">0</bool> <bool name="proxy-wxTE_PROCESS_TAB">0</bool>
...@@ -536,8 +617,9 @@ ...@@ -536,8 +617,9 @@
<bool name="proxy-wxTE_CENTRE">0</bool> <bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool> <bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool> <bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_LINEWRAP">0</bool> <bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool> <bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool> <bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool> <bool name="proxy-wxDOUBLE_BORDER">0</bool>
...@@ -545,6 +627,8 @@ ...@@ -545,6 +627,8 @@
<bool name="proxy-wxRAISED_BORDER">0</bool> <bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool> <bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -603,9 +687,16 @@ ...@@ -603,9 +687,16 @@
<string name="proxy-type">"wbStaticTextProxy"</string> <string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string> <string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long> <long name="proxy-Id value">5105</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticText"</string> <string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_FileNameTextSize"</string> <string name="proxy-Member variable name">"m_FileNameTextSize"</string>
<string name="proxy-Label">"Size"</string> <string name="proxy-Label">"Size"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
...@@ -616,6 +707,11 @@ ...@@ -616,6 +707,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool> <bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool> <bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool> <bool name="proxy-wxALIGN_CENTRE">0</bool>
...@@ -627,6 +723,8 @@ ...@@ -627,6 +723,8 @@
<bool name="proxy-wxRAISED_BORDER">0</bool> <bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool> <bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -659,7 +757,13 @@ ...@@ -659,7 +757,13 @@
<string name="proxy-type">"wbTextCtrlProxy"</string> <string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL2"</string> <string name="proxy-Id name">"ID_TEXTCTRL2"</string>
<long name="proxy-Id value">10003</long> <long name="proxy-Id value">10003</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTextCtrl"</string> <string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_FileNameSize"</string> <string name="proxy-Member variable name">"m_FileNameSize"</string>
<string name="proxy-Initial value">""</string> <string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long> <long name="proxy-Max length">0</long>
...@@ -673,6 +777,11 @@ ...@@ -673,6 +777,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxTE_MULTILINE">0</bool> <bool name="proxy-wxTE_MULTILINE">0</bool>
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool> <bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
<bool name="proxy-wxTE_PROCESS_TAB">0</bool> <bool name="proxy-wxTE_PROCESS_TAB">0</bool>
...@@ -686,8 +795,9 @@ ...@@ -686,8 +795,9 @@
<bool name="proxy-wxTE_CENTRE">0</bool> <bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool> <bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool> <bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_LINEWRAP">0</bool> <bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool> <bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool> <bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool> <bool name="proxy-wxDOUBLE_BORDER">0</bool>
...@@ -695,6 +805,8 @@ ...@@ -695,6 +805,8 @@
<bool name="proxy-wxRAISED_BORDER">0</bool> <bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool> <bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -713,6 +825,7 @@ ...@@ -713,6 +825,7 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string> <string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string> <string name="proxy-Custom ctor arguments">""</string>
<bool name="proxy-wxTE_LINEWRAP">0</bool>
</document> </document>
<document> <document>
<string name="title">"wxStaticText: wxID_STATIC"</string> <string name="title">"wxStaticText: wxID_STATIC"</string>
...@@ -727,9 +840,16 @@ ...@@ -727,9 +840,16 @@
<string name="proxy-type">"wbStaticTextProxy"</string> <string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string> <string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long> <long name="proxy-Id value">5105</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticText"</string> <string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_SheetNameTextSize"</string> <string name="proxy-Member variable name">"m_SheetNameTextSize"</string>
<string name="proxy-Label">"Size"</string> <string name="proxy-Label">"Size"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
...@@ -740,6 +860,11 @@ ...@@ -740,6 +860,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool> <bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool> <bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool> <bool name="proxy-wxALIGN_CENTRE">0</bool>
...@@ -751,6 +876,8 @@ ...@@ -751,6 +876,8 @@
<bool name="proxy-wxRAISED_BORDER">0</bool> <bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool> <bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -783,7 +910,13 @@ ...@@ -783,7 +910,13 @@
<string name="proxy-type">"wbTextCtrlProxy"</string> <string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL3"</string> <string name="proxy-Id name">"ID_TEXTCTRL3"</string>
<long name="proxy-Id value">10004</long> <long name="proxy-Id value">10004</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTextCtrl"</string> <string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_SheetNameSize"</string> <string name="proxy-Member variable name">"m_SheetNameSize"</string>
<string name="proxy-Initial value">""</string> <string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long> <long name="proxy-Max length">0</long>
...@@ -797,6 +930,11 @@ ...@@ -797,6 +930,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxTE_MULTILINE">0</bool> <bool name="proxy-wxTE_MULTILINE">0</bool>
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool> <bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
<bool name="proxy-wxTE_PROCESS_TAB">0</bool> <bool name="proxy-wxTE_PROCESS_TAB">0</bool>
...@@ -810,8 +948,9 @@ ...@@ -810,8 +948,9 @@
<bool name="proxy-wxTE_CENTRE">0</bool> <bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool> <bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool> <bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_LINEWRAP">0</bool> <bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool> <bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool> <bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool> <bool name="proxy-wxDOUBLE_BORDER">0</bool>
...@@ -819,6 +958,8 @@ ...@@ -819,6 +958,8 @@
<bool name="proxy-wxRAISED_BORDER">0</bool> <bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool> <bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -837,6 +978,7 @@ ...@@ -837,6 +978,7 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string> <string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string> <string name="proxy-Custom ctor arguments">""</string>
<bool name="proxy-wxTE_LINEWRAP">0</bool>
</document> </document>
</document> </document>
</document> </document>
...@@ -853,9 +995,9 @@ ...@@ -853,9 +995,9 @@
<string name="proxy-type">"wbSpacerProxy"</string> <string name="proxy-type">"wbSpacerProxy"</string>
<long name="proxy-Width">5</long> <long name="proxy-Width">5</long>
<long name="proxy-Height">5</long> <long name="proxy-Height">5</long>
<string name="proxy-AlignH">"Centre"</string> <string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string> <string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long> <long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
...@@ -905,12 +1047,25 @@ ...@@ -905,12 +1047,25 @@
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick"</string>
<string name="proxy-Id name">"wxID_CANCEL"</string> <string name="proxy-Id name">"wxID_CANCEL"</string>
<long name="proxy-Id value">5101</long> <long name="proxy-Id value">5101</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"&amp;Cancel"</string> <string name="proxy-Label">"&amp;Cancel"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"0000FF"</string> <string name="proxy-Foreground colour">"0000FF"</string>
<string name="proxy-Font">""</string> <string name="proxy-Font">""</string>
...@@ -924,6 +1079,8 @@ ...@@ -924,6 +1079,8 @@
<bool name="proxy-wxBU_EXACTFIT">0</bool> <bool name="proxy-wxBU_EXACTFIT">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
...@@ -957,12 +1114,25 @@ ...@@ -957,12 +1114,25 @@
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnOkClick"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnOkClick"</string>
<string name="proxy-Id name">"wxID_OK"</string> <string name="proxy-Id name">"wxID_OK"</string>
<long name="proxy-Id value">5100</long> <long name="proxy-Id value">5100</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"&amp;OK"</string> <string name="proxy-Label">"&amp;OK"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"C40000"</string> <string name="proxy-Foreground colour">"C40000"</string>
<string name="proxy-Font">""</string> <string name="proxy-Font">""</string>
...@@ -976,6 +1146,8 @@ ...@@ -976,6 +1146,8 @@
<bool name="proxy-wxBU_EXACTFIT">0</bool> <bool name="proxy-wxBU_EXACTFIT">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string> <string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long> <long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
......
...@@ -75,7 +75,7 @@ class DrawGlobalLabelStruct; ...@@ -75,7 +75,7 @@ class DrawGlobalLabelStruct;
class DrawTextStruct; class DrawTextStruct;
class EDA_DrawLineStruct; class EDA_DrawLineStruct;
class DrawSheetStruct; class DrawSheetStruct;
class DrawSheetList; class DrawSheetPath;
class DrawSheetLabelStruct; class DrawSheetLabelStruct;
class EDA_SchComponentStruct; class EDA_SchComponentStruct;
class LibDrawField; class LibDrawField;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment