From c406eed135a2fd9e46d188a7f8cc624d601b4971 Mon Sep 17 00:00:00 2001 From: dickelbeck Date: Thu, 20 Mar 2008 01:50:21 +0000 Subject: [PATCH] class name changes, XOR artifacts --- change_log.txt | 21 + common/base_struct.cpp | 42 +- eeschema/affiche.cpp | 4 +- eeschema/annotate.cpp | 14 +- eeschema/block.cpp | 216 +++-- eeschema/bus-wire-junction.cpp | 52 +- eeschema/class_drawsheet.cpp | 146 +-- eeschema/class_screen.cpp | 10 +- eeschema/class_text-label.cpp | 72 +- eeschema/class_text-label.h | 44 +- eeschema/cleanup.cpp | 10 +- eeschema/cmpclass.cpp | 2 +- eeschema/component_class.cpp | 69 +- eeschema/component_class.h | 46 +- eeschema/controle.cpp | 14 +- eeschema/cross-probing.cpp | 6 +- eeschema/dangling_ends.cpp | 32 +- eeschema/delete.cpp | 4 +- eeschema/dialog_build_BOM.cpp | 50 +- eeschema/dialog_build_BOM.h | 40 +- .../dialog_edit_component_in_schematic.cpp | 46 +- eeschema/dialog_edit_component_in_schematic.h | 58 +- eeschema/dialog_edit_label.cpp | 78 +- eeschema/dialog_edit_label.h | 22 +- eeschema/edit_component_in_schematic.cpp | 128 +-- eeschema/edit_label.cpp | 104 +-- eeschema/eecreate.cpp | 20 +- eeschema/eelibs_draw_components.cpp | 40 +- eeschema/eeredraw.cpp | 22 +- eeschema/files-io.cpp | 296 +++--- eeschema/find.cpp | 32 +- eeschema/getpart.cpp | 24 +- eeschema/hotkeys.cpp | 170 ++-- eeschema/load_one_schematic_file.cpp | 204 ++-- eeschema/locate.cpp | 102 +- eeschema/netform.cpp | 222 ++--- eeschema/netlist.cpp | 274 +++--- eeschema/netlist.h | 26 +- eeschema/onleftclick.cpp | 24 +- eeschema/onrightclick.cpp | 82 +- eeschema/plot.cpp | 82 +- eeschema/plothpgl.cpp | 476 +++++----- eeschema/plotps.cpp | 358 ++++---- eeschema/protos.h | 374 ++++---- eeschema/save_schemas.cpp | 868 +++++++++--------- eeschema/schedit.cpp | 76 +- eeschema/schematic_undo_redo.cpp | 18 +- eeschema/schframe.h | 36 +- eeschema/sheetlab.cpp | 10 +- include/base_struct.h | 92 +- include/wxstruct.h | 22 +- pcbnew/specctra.h | 2 +- 52 files changed, 2677 insertions(+), 2605 deletions(-) diff --git a/change_log.txt b/change_log.txt index e9dc5b6956..3dc4c8f887 100644 --- a/change_log.txt +++ b/change_log.txt @@ -5,6 +5,27 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with email address. +2008-Mar-19 UPDATE Dick Hollenbeck +================================================================================ ++eeschema + Renamed some classes and their corresponding KICAD_T types so they are both + simpler, shorter and more closely match each other: the type and the classname. + Wedged a class SCH_ITEM underneath most eeschema drawable items, and this + class came from DrawPartStruct which was largely disfunctional. Eeschema + now more closely matches what we have in pcbnew with the BOARD_ITEM base class. + The corresponding class in eeschema is now SCH_ITEM. Put in some of Jonas' + patch for the dragging of a block. Needs testing, especially dragging + text since there is no GetBoundingBox() for that yet. As an interrim solution + we could make SCH_ITEM::GetBoundingBox() return a HUGE rectangle so that any class + not implementing GetBoundingBox() in eeschema will get properly re-drawn, + in theory. + + We are currently using XORing for dragging a single object and using full + redraws for dragging a block. I suppose this can be an experiment for a + week or so. I would not expect that dragging a block of labels with no + other object to work currently. + + 2008-Mar-19 UPDATE Igor Plyatov ================================================================================ * Support for Gnome/KDE menu added. diff --git a/common/base_struct.cpp b/common/base_struct.cpp index f1c9eb8edd..5e86fe168f 100644 --- a/common/base_struct.cpp +++ b/common/base_struct.cpp @@ -805,8 +805,9 @@ EDA_Rect& EDA_Rect::Inflate( wxCoord dx, wxCoord dy ) } -/** Function Merge - * Modify Position and Size of this in order to contain the given rect +/** + * Function Merge + * modifies Position and Size of this in order to contain the given rect * mainly used to calculate bounding boxes * @param aRect = given rect to merge with this */ @@ -840,7 +841,7 @@ void EDA_Rect::Merge( const EDA_Rect& aRect ) /*******************************************************************/ DrawPickedStruct::DrawPickedStruct( EDA_BaseStruct* pickedstruct ) : - EDA_BaseStruct( DRAW_PICK_ITEM_STRUCT_TYPE ) + SCH_ITEM( NULL, DRAW_PICK_ITEM_STRUCT_TYPE ) /*******************************************************************/ { m_PickedStruct = pickedstruct; @@ -851,6 +852,41 @@ DrawPickedStruct::~DrawPickedStruct() { } +#if defined(DEBUG) +void DrawPickedStruct::Show( int nestLevel, std::ostream& os ) +{ + NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << "/>\n"; +} +#endif + + +EDA_Rect DrawPickedStruct::GetBoundingBox() +{ + if( m_PickedStruct ) + return m_PickedStruct->GetBoundingBox(); + else + { + return EDA_Rect(); // empty rectangle + } +} + + +EDA_Rect DrawPickedStruct::GetBoundingBoxUnion() +{ + EDA_Rect ret; + + DrawPickedStruct* cur = this; + EDA_BaseStruct* item; + while( cur && (item = cur->m_PickedStruct) != NULL ) + { + ret.Merge( item->GetBoundingBox() ); + + cur = cur->Next(); + } + + return ret; +} + /*********************************************/ void DrawPickedStruct::DeleteWrapperList() diff --git a/eeschema/affiche.cpp b/eeschema/affiche.cpp index 06e3daa84f..2363f6ebd1 100644 --- a/eeschema/affiche.cpp +++ b/eeschema/affiche.cpp @@ -27,7 +27,7 @@ void DrawSheetStruct::Display_Infos( WinEDA_DrawFrame* frame ) /***************************************************************/ -void EDA_SchComponentStruct::Display_Infos( WinEDA_DrawFrame* frame ) +void SCH_COMPONENT::Display_Infos( WinEDA_DrawFrame* frame ) /***************************************************************/ { EDA_LibComponentStruct* Entry = FindLibPart( m_ChipName.GetData(), wxEmptyString, FIND_ROOT );; @@ -37,7 +37,7 @@ void EDA_SchComponentStruct::Display_Infos( WinEDA_DrawFrame* frame ) frame->MsgPanel->EraseMsgBox(); Affiche_1_Parametre( frame, 1, _( "Ref" ), - GetRef(((WinEDA_SchematicFrame*)frame)->GetSheet()), DARKCYAN ); + GetRef(((WinEDA_SchematicFrame*)frame)->GetSheet()), DARKCYAN ); if( Entry && Entry->m_Options == ENTRY_POWER ) msg = _( "Pwr Symb" ); diff --git a/eeschema/annotate.cpp b/eeschema/annotate.cpp index d75405f8a0..099128641a 100644 --- a/eeschema/annotate.cpp +++ b/eeschema/annotate.cpp @@ -90,10 +90,10 @@ void ReAnnotatePowerSymbolsOnly( void ) EDA_BaseStruct* DrawList = sheet->LastDrawList(); for( ; DrawList != NULL; DrawList = DrawList->Pnext ) { - if( DrawList->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( DrawList->Type() != TYPE_SCH_COMPONENT ) continue; - EDA_SchComponentStruct* DrawLibItem = - (EDA_SchComponentStruct*) DrawList; + SCH_COMPONENT* DrawLibItem = + (SCH_COMPONENT*) DrawList; EDA_LibComponentStruct* Entry = FindLibPart( DrawLibItem->m_ChipName.GetData(), wxEmptyString, @@ -303,14 +303,14 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetPath* sheet ) { int NbrCmp = 0; EDA_BaseStruct* DrawList = sheet->LastDrawList(); - EDA_SchComponentStruct* DrawLibItem; + SCH_COMPONENT* DrawLibItem; EDA_LibComponentStruct* Entry; for( ; DrawList; DrawList = DrawList->Pnext ) { - if( DrawList->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( DrawList->Type() == TYPE_SCH_COMPONENT ) { - DrawLibItem = (EDA_SchComponentStruct*) DrawList; + DrawLibItem = (SCH_COMPONENT*) DrawList; Entry = FindLibPart( DrawLibItem->m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); @@ -361,7 +361,7 @@ static void ReAnnotateComponents( CmpListStruct* BaseListeCmp, int NbOfCmp ) { int ii; char* Text; - EDA_SchComponentStruct* DrawLibItem; + SCH_COMPONENT* DrawLibItem; /* Reattribution des numeros */ for( ii = 0; ii < NbOfCmp; ii++ ) diff --git a/eeschema/block.cpp b/eeschema/block.cpp index a1cba61a8d..870517cefb 100644 --- a/eeschema/block.cpp +++ b/eeschema/block.cpp @@ -24,7 +24,7 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_ EDA_BaseStruct* DrawStruct ); static void CollectStructsToDrag( SCH_SCREEN* screen ); static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ); -static LibEDA_BaseStruct* GetNextPinPosition( EDA_SchComponentStruct* DrawLibItem, +static LibEDA_BaseStruct* GetNextPinPosition( SCH_COMPONENT* DrawLibItem, wxPoint& position ); static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ); static EDA_BaseStruct* SaveStructListForPaste( EDA_BaseStruct* DrawStruct ); @@ -555,27 +555,28 @@ static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, *****************************************************************************/ bool MoveStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct ) { - DrawPickedStruct* PickedList = NULL; - if( !DrawStruct ) return FALSE; if( DrawStruct->Type() == DRAW_PICK_ITEM_STRUCT_TYPE ) { - if( DC ) - RedrawStructList( panel, DC, DrawStruct, g_XorMode ); - PlaceStruct( panel->GetScreen(), DrawStruct ); /* Place it in its new position. */ - if( DC ) - RedrawStructList( panel, DC, DrawStruct, GR_DEFAULT_DRAWMODE ); + DrawPickedStruct* pickedList = (DrawPickedStruct*) DrawStruct; - /* Free the wrapper DrawPickedStruct chain: */ - PickedList = (DrawPickedStruct*) DrawStruct; - PickedList->DeleteWrapperList(); + if( DC ) + panel->PostDirtyRect( pickedList->GetBoundingBoxUnion() ); + + PlaceStruct( panel->GetScreen(), pickedList); // Place it in its new position. + + if( DC ) + RedrawStructList( panel, DC, pickedList, GR_DEFAULT_DRAWMODE ); + + // Free the wrapper DrawPickedStruct chain + pickedList->DeleteWrapperList(); } else { if( DC ) - RedrawOneStruct( panel, DC, DrawStruct, g_XorMode ); + panel->PostDirtyRect( DrawStruct->GetBoundingBox()); PlaceStruct( panel->GetScreen(), DrawStruct ); /* Place it in its new position. */ if( DC ) RedrawOneStruct( panel, DC, DrawStruct, GR_DEFAULT_DRAWMODE ); @@ -604,12 +605,12 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center ) DrawJunctionStruct* DrawConnect; EDA_DrawLineStruct* DrawSegment; DrawBusEntryStruct* DrawRaccord; - EDA_SchComponentStruct* DrawLibItem; + SCH_COMPONENT* DrawLibItem; DrawSheetStruct* DrawSheet; DrawSheetLabelStruct* DrawSheetLabel; DrawMarkerStruct* DrawMarker; DrawNoConnectStruct* DrawNoConnect; - DrawTextStruct* DrawText; + SCH_TEXT* DrawText; wxPoint px; if( !DrawStruct ) @@ -665,13 +666,13 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center ) MirrorYPoint( DrawNoConnect->m_Pos, Center ); break; - case DRAW_TEXT_STRUCT_TYPE: - case DRAW_LABEL_STRUCT_TYPE: + case TYPE_SCH_TEXT: + case TYPE_SCH_LABEL: // Text is not really mirrored; it is moved to a suitable position // which is the closest position for a true mirrored text // The center position is mirrored and the text is moved for half horizontal len - DrawText = (DrawTextStruct*) DrawStruct; + DrawText = (SCH_TEXT*) DrawStruct; px = DrawText->m_Pos; if( DrawText->m_Orient == 0 ) /* horizontal text */ dx = DrawText->Len_Size() / 2; @@ -687,11 +688,11 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center ) DrawText->m_Pos.x = px.x; break; - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_GLOBALLABEL: // Text is not really mirrored: Orientation is changed - DrawText = (DrawLabelStruct*) DrawStruct; + DrawText = (SCH_LABEL*) DrawStruct; if( DrawText->m_Orient == 0 ) /* horizontal text */ DrawText->m_Orient = 2; else if( DrawText->m_Orient == 2 ) /* invert horizontal text*/ @@ -703,8 +704,8 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center ) DrawText->m_Pos.x = px.x; break; - case DRAW_LIB_ITEM_STRUCT_TYPE: - DrawLibItem = (EDA_SchComponentStruct*) DrawStruct; + case TYPE_SCH_COMPONENT: + DrawLibItem = (SCH_COMPONENT*) DrawStruct; dx = DrawLibItem->m_Pos.x; g_EDA_Appl->m_SchematicFrame->CmpRotationMiroir( DrawLibItem, NULL, CMP_MIROIR_Y ); @@ -753,43 +754,42 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center ) *****************************************************************************/ bool MirrorStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct, wxPoint& Center ) { - DrawPickedStruct* PickedList = NULL; - DrawPickedStruct* DrawStructs; - if( !DrawStruct ) return FALSE; if( DrawStruct->Type() == DRAW_PICK_ITEM_STRUCT_TYPE ) { + DrawPickedStruct* pickedList = (DrawPickedStruct*) DrawStruct; + if( DC ) - RedrawStructList( panel, DC, DrawStruct, g_XorMode ); - DrawStructs = (DrawPickedStruct*) DrawStruct; - while( DrawStructs ) + panel->PostDirtyRect( pickedList->GetBoundingBoxUnion() ); + + for( DrawPickedStruct* cur = pickedList; cur; cur=cur->Next() ) { - MirrorOneStruct( DrawStructs->m_PickedStruct, Center ); - DrawStructs->m_PickedStruct->m_Flags = 0; - DrawStructs = (DrawPickedStruct*) DrawStructs->Pnext; + MirrorOneStruct( cur->m_PickedStruct, Center ); + cur->m_PickedStruct->m_Flags = 0; } if( DC ) - RedrawStructList( panel, DC, DrawStruct, GR_DEFAULT_DRAWMODE ); + RedrawStructList( panel, DC, pickedList, GR_DEFAULT_DRAWMODE ); - /* Free the wrapper DrawPickedStruct chain: */ - PickedList = (DrawPickedStruct*) DrawStruct; - PickedList->DeleteWrapperList(); + // Free the wrapper DrawPickedStruct chain + pickedList->DeleteWrapperList(); } else { if( DC ) - RedrawOneStruct( panel, DC, DrawStruct, g_XorMode ); - MirrorOneStruct( DrawStruct, Center ); /* Place it in its new position. */ + panel->PostDirtyRect( DrawStruct->GetBoundingBox() ); + + MirrorOneStruct( DrawStruct, Center ); // Place it in its new position. + if( DC ) RedrawOneStruct( panel, DC, DrawStruct, GR_DEFAULT_DRAWMODE ); + DrawStruct->m_Flags = 0; } - - return TRUE; + return true; } @@ -825,10 +825,10 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE switch( Struct->Type() ) { - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: { - ( (EDA_SchComponentStruct*) Struct )->m_TimeStamp = GetTimeStamp(); - ( (EDA_SchComponentStruct*) Struct )->ClearAnnotation(); + ( (SCH_COMPONENT*) Struct )->m_TimeStamp = GetTimeStamp(); + ( (SCH_COMPONENT*) Struct )->ClearAnnotation(); } break; @@ -872,10 +872,10 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE case DRAW_JUNCTION_STRUCT_TYPE: case DRAW_SEGMENT_STRUCT_TYPE: case DRAW_BUSENTRY_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: + case TYPE_SCH_TEXT: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: case DRAW_SHEETLABEL_STRUCT_TYPE: case DRAW_PICK_ITEM_STRUCT_TYPE: case DRAW_MARKER_STRUCT_TYPE: @@ -891,9 +891,9 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE break; } - case DRAW_LIB_ITEM_STRUCT_TYPE: - ( (EDA_SchComponentStruct*) NewDrawStruct )->m_TimeStamp = GetTimeStamp(); - ( (EDA_SchComponentStruct*) NewDrawStruct )->ClearAnnotation(); + case TYPE_SCH_COMPONENT: + ( (SCH_COMPONENT*) NewDrawStruct )->m_TimeStamp = GetTimeStamp(); + ( (SCH_COMPONENT*) NewDrawStruct )->ClearAnnotation(); break; } @@ -924,13 +924,11 @@ void DeleteStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct */ { SCH_SCREEN* screen = (SCH_SCREEN*) panel->GetScreen(); - DrawPickedStruct* PickedList = NULL; WinEDA_SchematicFrame* frame = (WinEDA_SchematicFrame*) panel->m_Parent; if( !DrawStruct ) return; - if( DrawStruct->Type() == DRAW_SHEETLABEL_STRUCT_TYPE ) { /* Cette stucture est rattachee a une feuille, et n'est pas @@ -942,34 +940,34 @@ void DeleteStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct if( DrawStruct->Type() == DRAW_PICK_ITEM_STRUCT_TYPE ) { - /* Unlink all picked structs from current EEDrawList */ - PickedList = (DrawPickedStruct*) DrawStruct; - while( PickedList ) + // Unlink all picked structs from current EEDrawList + + for( DrawPickedStruct* cur = (DrawPickedStruct*) DrawStruct; cur; cur=cur->Next() ) { - screen->RemoveFromDrawList( PickedList->m_PickedStruct ); - PickedList->m_PickedStruct->Pnext = - PickedList->m_PickedStruct->Pback = NULL; - PickedList->m_PickedStruct->m_Flags = IS_DELETED; - PickedList = PickedList->Next(); + EDA_BaseStruct* item = cur->m_PickedStruct; + screen->RemoveFromDrawList( item ); + panel->PostDirtyRect( item->GetBoundingBox() ); + item->Pnext = item->Pback = NULL; + item->m_Flags = IS_DELETED; } - RedrawStructList( panel, DC, DrawStruct, g_XorMode ); - - /* Removed items are put to the Undo list */ + // Removed items are put onto the Undo list frame->SaveCopyInUndoList( DrawStruct, IS_DELETED ); } else /* structure classique */ { screen->RemoveFromDrawList( DrawStruct ); - if( (DrawStruct->Type() == DRAW_SEGMENT_STRUCT_TYPE) || - (DrawStruct->Type() == DRAW_JUNCTION_STRUCT_TYPE) || - (DrawStruct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE) ) + switch( DrawStruct->Type() ) { + case DRAW_SEGMENT_STRUCT_TYPE: + case DRAW_JUNCTION_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: panel->PostDirtyRect( DrawStruct->GetBoundingBox() ); - } - else - { + break; + + // other classes do not yet have GetBoundingBox() implementations + default: D( DrawStruct->Show( 0, std::cout ); ) // tell me which classes still need GetBoundingBox support RedrawOneStruct( panel, DC, DrawStruct, g_XorMode ); } @@ -1062,10 +1060,10 @@ void WinEDA_SchematicFrame::PasteStruct( wxDC* DC ) for( PickedList = (DrawPickedStruct*) DrawStruct; PickedList != NULL; ) // Clear annotation for new components { EDA_BaseStruct* Struct = PickedList->m_PickedStruct; - if( Struct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( Struct->Type() == TYPE_SCH_COMPONENT ) { - ( (EDA_SchComponentStruct*) Struct )->m_TimeStamp = GetTimeStamp(); - ( (EDA_SchComponentStruct*) Struct )->ClearAnnotation(); + ( (SCH_COMPONENT*) Struct )->m_TimeStamp = GetTimeStamp(); + ( (SCH_COMPONENT*) Struct )->ClearAnnotation(); SetStructFather( Struct, GetScreen() ); } PickedList = (DrawPickedStruct*) PickedList->Pnext; @@ -1086,10 +1084,10 @@ void WinEDA_SchematicFrame::PasteStruct( wxDC* DC ) } else { - if( DrawStruct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( DrawStruct->Type() == TYPE_SCH_COMPONENT ) { - ( (EDA_SchComponentStruct*) DrawStruct )->m_TimeStamp = GetTimeStamp(); - ( (EDA_SchComponentStruct*) DrawStruct )->ClearAnnotation(); + ( (SCH_COMPONENT*) DrawStruct )->m_TimeStamp = GetTimeStamp(); + ( (SCH_COMPONENT*) DrawStruct )->ClearAnnotation(); } SetStructFather( DrawStruct, GetScreen() ); RedrawOneStruct( DrawPanel, DC, DrawStruct, GR_DEFAULT_DRAWMODE ); @@ -1135,11 +1133,11 @@ bool PlaceStruct( BASE_SCREEN* screen, EDA_BaseStruct* DrawStruct ) case DRAW_JUNCTION_STRUCT_TYPE: case DRAW_SEGMENT_STRUCT_TYPE: case DRAW_BUSENTRY_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_TEXT: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_COMPONENT: case DRAW_SHEET_STRUCT_TYPE: case DRAW_SHEETLABEL_STRUCT_TYPE: case DRAW_MARKER_STRUCT_TYPE: @@ -1174,7 +1172,7 @@ void MoveOneStruct( EDA_BaseStruct* DrawStruct, const wxPoint& move_vector ) DrawJunctionStruct* DrawConnect; EDA_DrawLineStruct* DrawSegment; DrawBusEntryStruct* DrawRaccord; - EDA_SchComponentStruct* DrawLibItem; + SCH_COMPONENT* DrawLibItem; DrawSheetStruct* DrawSheet; DrawSheetLabelStruct* DrawSheetLabel; DrawMarkerStruct* DrawMarker; @@ -1231,24 +1229,24 @@ void MoveOneStruct( EDA_BaseStruct* DrawStruct, const wxPoint& move_vector ) DrawNoConnect->m_Pos += move_vector; break; - case DRAW_TEXT_STRUCT_TYPE: - #define DrawText ( (DrawTextStruct*) DrawStruct ) + case TYPE_SCH_TEXT: + #define DrawText ( (SCH_TEXT*) DrawStruct ) DrawText->m_Pos += move_vector; break; - case DRAW_LABEL_STRUCT_TYPE: - #define DrawLabel ( (DrawLabelStruct*) DrawStruct ) + case TYPE_SCH_LABEL: + #define DrawLabel ( (SCH_LABEL*) DrawStruct ) DrawLabel->m_Pos += move_vector; break; - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - #define DrawGHLabel ( (DrawLabelStruct*) DrawStruct ) + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_GLOBALLABEL: + #define DrawGHLabel ( (SCH_LABEL*) DrawStruct ) DrawGHLabel->m_Pos += move_vector; break; - case DRAW_LIB_ITEM_STRUCT_TYPE: - DrawLibItem = (EDA_SchComponentStruct*) DrawStruct; + case TYPE_SCH_COMPONENT: + DrawLibItem = (SCH_COMPONENT*) DrawStruct; DrawLibItem->m_Pos += move_vector; for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ ) { @@ -1325,24 +1323,24 @@ EDA_BaseStruct* DuplicateStruct( EDA_BaseStruct* DrawStruct ) NewDrawStruct = ( (DrawNoConnectStruct*) DrawStruct )->GenCopy(); break; - case DRAW_TEXT_STRUCT_TYPE: - NewDrawStruct = ( (DrawTextStruct*) DrawStruct )->GenCopy(); + case TYPE_SCH_TEXT: + NewDrawStruct = ( (SCH_TEXT*) DrawStruct )->GenCopy(); break; - case DRAW_LABEL_STRUCT_TYPE: - NewDrawStruct = ( (DrawLabelStruct*) DrawStruct )->GenCopy(); + case TYPE_SCH_LABEL: + NewDrawStruct = ( (SCH_LABEL*) DrawStruct )->GenCopy(); break; - case DRAW_HIER_LABEL_STRUCT_TYPE: - NewDrawStruct = ( (DrawHierLabelStruct*) DrawStruct )->GenCopy(); + case TYPE_SCH_HIERLABEL: + NewDrawStruct = ( (SCH_HIERLABEL*) DrawStruct )->GenCopy(); break; - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - NewDrawStruct = ( (DrawGlobalLabelStruct*) DrawStruct )->GenCopy(); + case TYPE_SCH_GLOBALLABEL: + NewDrawStruct = ( (SCH_GLOBALLABEL*) DrawStruct )->GenCopy(); break; - case DRAW_LIB_ITEM_STRUCT_TYPE: - NewDrawStruct = ( (EDA_SchComponentStruct*) DrawStruct )->GenCopy(); + case TYPE_SCH_COMPONENT: + NewDrawStruct = ( (SCH_COMPONENT*) DrawStruct )->GenCopy(); break; case DRAW_SHEET_STRUCT_TYPE: @@ -1465,11 +1463,11 @@ static void CollectStructsToDrag( SCH_SCREEN* screen ) { Struct = DrawStructs->m_PickedStruct; DrawStructs = (DrawPickedStruct*) DrawStructs->Pnext; - if( Struct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( Struct->Type() == TYPE_SCH_COMPONENT ) { LibEDA_BaseStruct* DrawItem; wxPoint pos; - DrawItem = GetNextPinPosition( (EDA_SchComponentStruct*) Struct, pos ); + DrawItem = GetNextPinPosition( (SCH_COMPONENT*) Struct, pos ); while( DrawItem ) { if( (pos.x < ox) || (pos.x > fx) || (pos.y < oy) || (pos.y > fy) ) @@ -1587,12 +1585,12 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) case DRAW_BUSENTRY_STRUCT_TYPE: break; - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_TEXT: break; - case DRAW_LABEL_STRUCT_TYPE: + case TYPE_SCH_LABEL: #undef STRUCT - #define STRUCT ( (DrawLabelStruct*) Struct ) + #define STRUCT ( (SCH_LABEL*) Struct ) if( Struct->m_Flags & SELECTED ) break; /* Already in list */ if( STRUCT->m_Pos != position ) @@ -1604,10 +1602,10 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) Struct->m_Flags |= SELECTED; break; - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_GLOBALLABEL: #undef STRUCT - #define STRUCT ( (DrawLabelStruct*) Struct ) + #define STRUCT ( (SCH_LABEL*) Struct ) if( Struct->m_Flags & SELECTED ) break; /* Already in list */ if( STRUCT->m_Pos != position ) @@ -1619,7 +1617,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) Struct->m_Flags |= SELECTED; break; - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: break; case DRAW_SHEET_STRUCT_TYPE: @@ -1668,7 +1666,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position ) /*********************************************************************************/ -static LibEDA_BaseStruct* GetNextPinPosition( EDA_SchComponentStruct* DrawLibItem, +static LibEDA_BaseStruct* GetNextPinPosition( SCH_COMPONENT* DrawLibItem, wxPoint& position ) /*********************************************************************************/ { diff --git a/eeschema/bus-wire-junction.cpp b/eeschema/bus-wire-junction.cpp index e7e6d86474..60f8f1c8a5 100644 --- a/eeschema/bus-wire-junction.cpp +++ b/eeschema/bus-wire-junction.cpp @@ -36,7 +36,7 @@ EDA_BaseStruct* SCH_SCREEN::ExtractWires( bool CreateCopy ) * If an abord command is made, old wires must be put in EEDrawList, and copies must be deleted * This is because previously stored undo commands can handle pointers on wires or bus, * and we do not delete wires or bus, we must put they in undo list. - * + * * Because cleanup delete and/or modify bus and wires, the more easy is to put all wires in undo list * and use a new copy of wires for cleanup */ @@ -142,8 +142,8 @@ void WinEDA_SchematicFrame::BeginSegment( wxDC* DC, int type ) if( !newsegment ) /* first point : Create first wire ou bus */ { s_ConnexionStartPoint = cursorpos; - s_OldWiresList = ((SCH_SCREEN*)GetScreen())->ExtractWires( TRUE ); - ((SCH_SCREEN*)GetScreen())->SchematicCleanUp( NULL ); + s_OldWiresList = ((SCH_SCREEN*)GetScreen())->ExtractWires( TRUE ); + ((SCH_SCREEN*)GetScreen())->SchematicCleanUp( NULL ); switch( type ) { @@ -194,7 +194,7 @@ void WinEDA_SchematicFrame::BeginSegment( wxDC* DC, int type ) DrawPanel->ManageCurseur( DrawPanel, DC, FALSE ); /* Creation du segment suivant ou fin de trac� si point sur pin, jonction ...*/ - if( IsTerminalPoint( (SCH_SCREEN*)GetScreen(), cursorpos, oldsegment->m_Layer ) ) + if( IsTerminalPoint( (SCH_SCREEN*)GetScreen(), cursorpos, oldsegment->m_Layer ) ) { EndSegment( DC ); return; } @@ -301,7 +301,7 @@ void WinEDA_SchematicFrame::EndSegment( wxDC* DC ) alt_end_point = lastsegment->m_Start; } - ((SCH_SCREEN*)GetScreen())->SchematicCleanUp( NULL ); + ((SCH_SCREEN*)GetScreen())->SchematicCleanUp( NULL ); /* clear flags and find last segment entered, for repeat function */ segment = (EDA_DrawLineStruct*) GetScreen()->EEDrawList; @@ -521,7 +521,7 @@ void WinEDA_SchematicFrame::DeleteCurrentSegment( wxDC* DC ) Segment_in_Ghost( DrawPanel, DC, FALSE ); /* Effacement du trace en cours */ } - EraseStruct( GetScreen()->GetCurItem(), (SCH_SCREEN*)GetScreen() ); + EraseStruct( GetScreen()->GetCurItem(), (SCH_SCREEN*)GetScreen() ); DrawPanel->ManageCurseur = NULL; GetScreen()->SetCurItem( NULL ); } @@ -642,9 +642,9 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC ) new_pos = STRUCT->m_Pos; break; - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_TEXT: #undef STRUCT - #define STRUCT ( (DrawTextStruct*) g_ItemToRepeat ) + #define STRUCT ( (SCH_TEXT*) g_ItemToRepeat ) g_ItemToRepeat = STRUCT->GenCopy(); STRUCT->m_Pos += g_RepeatStep; new_pos = STRUCT->m_Pos; @@ -653,9 +653,9 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC ) break; - case DRAW_LABEL_STRUCT_TYPE: + case TYPE_SCH_LABEL: #undef STRUCT - #define STRUCT ( (DrawLabelStruct*) g_ItemToRepeat ) + #define STRUCT ( (SCH_LABEL*) g_ItemToRepeat ) g_ItemToRepeat = STRUCT->GenCopy(); STRUCT->m_Pos += g_RepeatStep; new_pos = STRUCT->m_Pos; @@ -664,19 +664,19 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC ) break; - case DRAW_HIER_LABEL_STRUCT_TYPE: - #undef STRUCT - #define STRUCT ( (DrawHierLabelStruct*) g_ItemToRepeat ) + case TYPE_SCH_HIERLABEL: + #undef STRUCT + #define STRUCT ( (SCH_HIERLABEL*) g_ItemToRepeat ) g_ItemToRepeat = STRUCT->GenCopy(); STRUCT->m_Pos += g_RepeatStep; new_pos = STRUCT->m_Pos; /*** Increment du numero de label ***/ IncrementLabelMember( STRUCT->m_Text ); break; - - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: + + case TYPE_SCH_GLOBALLABEL: #undef STRUCT - #define STRUCT ( (DrawGlobalLabelStruct*) g_ItemToRepeat ) + #define STRUCT ( (SCH_GLOBALLABEL*) g_ItemToRepeat ) g_ItemToRepeat = STRUCT->GenCopy(); STRUCT->m_Pos += g_RepeatStep; new_pos = STRUCT->m_Pos; @@ -701,17 +701,17 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC ) new_pos = STRUCT->m_Pos; break; - case DRAW_LIB_ITEM_STRUCT_TYPE: // In repeat command the new component is put in move mode + case TYPE_SCH_COMPONENT: // In repeat command the new component is put in move mode #undef STRUCT - #define STRUCT ( (EDA_SchComponentStruct*) g_ItemToRepeat ) + #define STRUCT ( (SCH_COMPONENT*) g_ItemToRepeat ) // Create the duplicate component, position = mouse cursor g_ItemToRepeat = STRUCT->GenCopy(); new_pos.x = GetScreen()->m_Curseur.x - STRUCT->m_Pos.x; - new_pos.y = GetScreen()->m_Curseur.y - STRUCT->m_Pos.y; - STRUCT->m_Pos = GetScreen()->m_Curseur; + new_pos.y = GetScreen()->m_Curseur.y - STRUCT->m_Pos.y; + STRUCT->m_Pos = GetScreen()->m_Curseur; STRUCT->m_Flags = IS_NEW; - STRUCT->m_TimeStamp = GetTimeStamp(); + STRUCT->m_TimeStamp = GetTimeStamp(); for( int ii = 0; ii < NUMBER_OF_FIELDS; ii++ ) { STRUCT->m_Field[ii].m_Pos += new_pos; @@ -783,14 +783,14 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer ) * - une jonction * - ou une pin * - ou une extr�mit� unique de fil - * + * * - type BUS, si il y a * - ou une extr�mit� unique de BUS */ { EDA_BaseStruct* item; LibDrawPin* pin; - EDA_SchComponentStruct* LibItem = NULL; + SCH_COMPONENT* LibItem = NULL; DrawSheetLabelStruct* pinsheet; wxPoint itempos; @@ -837,9 +837,9 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer ) return TRUE; item = PickStruct( pos, screen, LABELITEM ); - if( item && (item->Type() != DRAW_TEXT_STRUCT_TYPE) - && ( ( (DrawGlobalLabelStruct*) item )->m_Pos.x == pos.x ) - && ( ( (DrawGlobalLabelStruct*) item )->m_Pos.y == pos.y ) ) + if( item && (item->Type() != TYPE_SCH_TEXT) + && ( ( (SCH_GLOBALLABEL*) item )->m_Pos.x == pos.x ) + && ( ( (SCH_GLOBALLABEL*) item )->m_Pos.y == pos.y ) ) return TRUE; pinsheet = LocateAnyPinSheet( pos, screen ); diff --git a/eeschema/class_drawsheet.cpp b/eeschema/class_drawsheet.cpp index cc4e7bef10..45b8bf18ac 100644 --- a/eeschema/class_drawsheet.cpp +++ b/eeschema/class_drawsheet.cpp @@ -184,12 +184,12 @@ void DrawSheetStruct::CleanupSheet( WinEDA_SchematicFrame* frame, wxDC* DC ) /* Search Hlabel corresponding to this Pinsheet */ EDA_BaseStruct* DrawStruct = m_AssociatedScreen->EEDrawList; - DrawHierLabelStruct* HLabel = NULL; + SCH_HIERLABEL* HLabel = NULL; for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext ) { - if( DrawStruct->Type() != DRAW_HIER_LABEL_STRUCT_TYPE ) + if( DrawStruct->Type() != TYPE_SCH_HIERLABEL ) continue; - HLabel = (DrawHierLabelStruct*) DrawStruct; + HLabel = (SCH_HIERLABEL*) DrawStruct; if( Pinsheet->m_Text.CmpNoCase( HLabel->m_Text ) == 0 ) break; // Found! HLabel = NULL; @@ -282,9 +282,9 @@ void DrawSheetStruct::DeleteAnnotation( bool recurse ) EDA_BaseStruct* comp = m_AssociatedScreen->EEDrawList; for( ; comp; comp = comp->Pnext ) { - if( comp->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( comp->Type() == TYPE_SCH_COMPONENT ) { - ( (EDA_SchComponentStruct*) comp )->ClearAnnotation(); + ( (SCH_COMPONENT*) comp )->ClearAnnotation(); } } } @@ -305,9 +305,9 @@ int DrawSheetStruct::ComponentCount() EDA_BaseStruct* bs; for( bs = m_AssociatedScreen->EEDrawList; bs != NULL; bs = bs->Pnext ) { - if( bs->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( bs->Type() == TYPE_SCH_COMPONENT ) { - DrawPartStruct* Cmp = (DrawPartStruct*) bs; + SCH_COMPONENT* Cmp = (SCH_COMPONENT*) bs; if( Cmp->m_Field[VALUE].m_Text.GetChar( 0 ) != '#' ) n++; } @@ -475,84 +475,84 @@ bool DrawSheetStruct::ChangeFileName( WinEDA_SchematicFrame * aFrame, const wxSt if( (GetFileName() == aFileName) && m_AssociatedScreen ) return true; - SCH_SCREEN* Screen_to_use = NULL; - wxString msg; - bool LoadFromFile = false; - + SCH_SCREEN* Screen_to_use = NULL; + wxString msg; + bool LoadFromFile = false; + if( g_RootSheet->SearchHierarchy( aFileName, &Screen_to_use ) ) //do we reload the data from the existing hierarchy { msg.Printf( _( "A Sub Hierarchy named %s exists, Use it (The data in this sheet will be replaced)?" ), aFileName.GetData() ); - if( ! IsOK( NULL, msg ) ) - { - DisplayInfo(NULL, _("Sheet Filename Renaming Aborted")); - return false; - } - } + if( ! IsOK( NULL, msg ) ) + { + DisplayInfo(NULL, _("Sheet Filename Renaming Aborted")); + return false; + } + } else if( wxFileExists( aFileName ) ) //do we reload the data from an existing file { msg.Printf( _( "A file named %s exists, load it (otherwise keep current sheet data if possible)?" ), aFileName.GetData() ); - if( IsOK( NULL, msg ) ) - { - LoadFromFile = true; - m_AssociatedScreen->m_RefCount--; //be careful with these - if( m_AssociatedScreen->m_RefCount == 0 ) - SAFE_DELETE( m_AssociatedScreen ); - m_AssociatedScreen = NULL; //will be created later - } + if( IsOK( NULL, msg ) ) + { + LoadFromFile = true; + m_AssociatedScreen->m_RefCount--; //be careful with these + if( m_AssociatedScreen->m_RefCount == 0 ) + SAFE_DELETE( m_AssociatedScreen ); + m_AssociatedScreen = NULL; //will be created later + } } - - // if an associated screen exists, shared between this sheet and others sheets, what we do ? - if( m_AssociatedScreen && ( m_AssociatedScreen->m_RefCount > 1 )) - { - msg = _("This sheet uses shared data in a complex hierarchy" ) ; - msg << wxT("\n"); - msg << _("Do we convert it in a simple hierarchical sheet (otherwise delete current sheet data)"); - if( IsOK( NULL, msg ) ) - { - LoadFromFile = true; - wxString oldfilename = m_AssociatedScreen->m_FileName; - m_AssociatedScreen->m_FileName = aFileName; - aFrame->SaveEEFile( m_AssociatedScreen, FILE_SAVE_AS ); - m_AssociatedScreen->m_FileName = oldfilename; - } - m_AssociatedScreen->m_RefCount--; //be careful with these - m_AssociatedScreen = NULL; //will be created later - } - - - SetFileName( aFileName ); - - // if we use new data (from file or from internal hierarchy), delete the current sheet data - if( m_AssociatedScreen && (LoadFromFile || Screen_to_use) ) - { - m_AssociatedScreen->m_RefCount--; - if( m_AssociatedScreen->m_RefCount == 0 ) - SAFE_DELETE( m_AssociatedScreen ); - m_AssociatedScreen = NULL; //so that we reload.. - } - - if ( LoadFromFile ) - Load( aFrame ); - else if ( Screen_to_use ) - { - m_AssociatedScreen = Screen_to_use; - m_AssociatedScreen->m_RefCount++; - } - - //just make a new screen if needed. - if( !m_AssociatedScreen ) - { - m_AssociatedScreen = new SCH_SCREEN( SCHEMATIC_FRAME ); - m_AssociatedScreen->m_RefCount++; //be careful with these - } - m_AssociatedScreen->m_FileName = aFileName; + // if an associated screen exists, shared between this sheet and others sheets, what we do ? + if( m_AssociatedScreen && ( m_AssociatedScreen->m_RefCount > 1 )) + { + msg = _("This sheet uses shared data in a complex hierarchy" ) ; + msg << wxT("\n"); + msg << _("Do we convert it in a simple hierarchical sheet (otherwise delete current sheet data)"); + if( IsOK( NULL, msg ) ) + { + LoadFromFile = true; + wxString oldfilename = m_AssociatedScreen->m_FileName; + m_AssociatedScreen->m_FileName = aFileName; + aFrame->SaveEEFile( m_AssociatedScreen, FILE_SAVE_AS ); + m_AssociatedScreen->m_FileName = oldfilename; + } + m_AssociatedScreen->m_RefCount--; //be careful with these + m_AssociatedScreen = NULL; //will be created later + } + + + SetFileName( aFileName ); + + // if we use new data (from file or from internal hierarchy), delete the current sheet data + if( m_AssociatedScreen && (LoadFromFile || Screen_to_use) ) + { + m_AssociatedScreen->m_RefCount--; + if( m_AssociatedScreen->m_RefCount == 0 ) + SAFE_DELETE( m_AssociatedScreen ); + m_AssociatedScreen = NULL; //so that we reload.. + } + + if ( LoadFromFile ) + Load( aFrame ); + else if ( Screen_to_use ) + { + m_AssociatedScreen = Screen_to_use; + m_AssociatedScreen->m_RefCount++; + } + + + //just make a new screen if needed. + if( !m_AssociatedScreen ) + { + m_AssociatedScreen = new SCH_SCREEN( SCHEMATIC_FRAME ); + m_AssociatedScreen->m_RefCount++; //be careful with these + } + m_AssociatedScreen->m_FileName = aFileName; return true; } @@ -803,9 +803,9 @@ void DrawSheetPath::UpdateAllScreenReferences() while( t ) { - if( t->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( t->Type() == TYPE_SCH_COMPONENT ) { - EDA_SchComponentStruct* d = (EDA_SchComponentStruct*) t; + SCH_COMPONENT* d = (SCH_COMPONENT*) t; d->m_Field[REFERENCE].m_Text = d->GetRef( this ); } t = t->Pnext; diff --git a/eeschema/class_screen.cpp b/eeschema/class_screen.cpp index a1822f88f9..ab5f835dc0 100644 --- a/eeschema/class_screen.cpp +++ b/eeschema/class_screen.cpp @@ -19,11 +19,11 @@ void SetStructFather( EDA_BaseStruct* Struct, BASE_SCREEN* Screen ) { case DRAW_POLYLINE_STRUCT_TYPE: case DRAW_JUNCTION_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_TEXT: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_COMPONENT: case DRAW_SEGMENT_STRUCT_TYPE: case DRAW_BUSENTRY_STRUCT_TYPE: case DRAW_SHEET_STRUCT_TYPE: diff --git a/eeschema/class_text-label.cpp b/eeschema/class_text-label.cpp index 1aef87e297..abf41f7175 100644 --- a/eeschema/class_text-label.cpp +++ b/eeschema/class_text-label.cpp @@ -18,15 +18,15 @@ /************************/ -/* class DrawTextStruct */ -/* class DrawLabelStruct */ -/* class DrawGlobalLabelStruct */ -/* class DrawHierLabelStruct */ +/* class SCH_TEXT */ +/* class SCH_LABEL */ +/* class SCH_GLOBALLABEL */ +/* class SCH_HIERLABEL */ /************************/ /**************************************************************************/ -DrawTextStruct::DrawTextStruct( const wxPoint& pos, const wxString& text, KICAD_T aType ) : - EDA_BaseStruct( aType ) +SCH_TEXT::SCH_TEXT( const wxPoint& pos, const wxString& text, KICAD_T aType ) : + SCH_ITEM( NULL, aType ) , EDA_TextStruct( text ) /**************************************************************************/ { @@ -38,28 +38,28 @@ DrawTextStruct::DrawTextStruct( const wxPoint& pos, const wxString& text, KICAD_ /*********************************************/ -DrawTextStruct* DrawTextStruct::GenCopy() +SCH_TEXT* SCH_TEXT::GenCopy() /*********************************************/ { - DrawTextStruct* newitem; + SCH_TEXT* newitem; switch( Type() ) { default: - case DRAW_TEXT_STRUCT_TYPE: - newitem = new DrawTextStruct( m_Pos, m_Text ); + case TYPE_SCH_TEXT: + newitem = new SCH_TEXT( m_Pos, m_Text ); break; - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - newitem = new DrawGlobalLabelStruct( m_Pos, m_Text ); + case TYPE_SCH_GLOBALLABEL: + newitem = new SCH_GLOBALLABEL( m_Pos, m_Text ); break; - case DRAW_HIER_LABEL_STRUCT_TYPE: - newitem = new DrawHierLabelStruct( m_Pos, m_Text ); + case TYPE_SCH_HIERLABEL: + newitem = new SCH_HIERLABEL( m_Pos, m_Text ); break; - case DRAW_LABEL_STRUCT_TYPE: - newitem = new DrawLabelStruct( m_Pos, m_Text ); + case TYPE_SCH_LABEL: + newitem = new SCH_LABEL( m_Pos, m_Text ); break; } @@ -77,7 +77,7 @@ DrawTextStruct* DrawTextStruct::GenCopy() /********************************************************/ -void DrawTextStruct::SwapData( DrawTextStruct* copyitem ) +void SCH_TEXT::SwapData( SCH_TEXT* copyitem ) /********************************************************/ { EXCHG( m_Text, copyitem->m_Text ); @@ -95,20 +95,20 @@ void DrawTextStruct::SwapData( DrawTextStruct* copyitem ) /***************************************************************/ -void DrawTextStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC ) +void SCH_TEXT::Place( WinEDA_DrawFrame* frame, wxDC* DC ) /***************************************************************/ { /* save old text in undo list */ if( g_ItemToUndoCopy && ( (m_Flags & IS_NEW) == 0 ) ) { /* restore old values and save new ones */ - SwapData( (DrawTextStruct*) g_ItemToUndoCopy ); + SwapData( (SCH_TEXT*) g_ItemToUndoCopy ); /* save in undo list */ ( (WinEDA_SchematicFrame*) frame )->SaveCopyInUndoList( this, IS_CHANGED ); /* restore new values */ - SwapData( (DrawTextStruct*) g_ItemToUndoCopy ); + SwapData( (SCH_TEXT*) g_ItemToUndoCopy ); SAFE_DELETE( g_ItemToUndoCopy ); } @@ -118,8 +118,8 @@ void DrawTextStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC ) /****************************************************************************/ -DrawLabelStruct::DrawLabelStruct( const wxPoint& pos, const wxString& text ) : - DrawTextStruct( pos, text, DRAW_LABEL_STRUCT_TYPE ) +SCH_LABEL::SCH_LABEL( const wxPoint& pos, const wxString& text ) : + SCH_TEXT( pos, text, TYPE_SCH_LABEL ) /****************************************************************************/ { m_Layer = LAYER_LOCLABEL; @@ -129,8 +129,8 @@ DrawLabelStruct::DrawLabelStruct( const wxPoint& pos, const wxString& text ) : /***********************************************************************************/ -DrawGlobalLabelStruct::DrawGlobalLabelStruct( const wxPoint& pos, const wxString& text ) : - DrawTextStruct( pos, text, DRAW_GLOBAL_LABEL_STRUCT_TYPE ) +SCH_GLOBALLABEL::SCH_GLOBALLABEL( const wxPoint& pos, const wxString& text ) : + SCH_TEXT( pos, text, TYPE_SCH_GLOBALLABEL ) /***********************************************************************************/ { m_Layer = LAYER_GLOBLABEL; @@ -140,8 +140,8 @@ DrawGlobalLabelStruct::DrawGlobalLabelStruct( const wxPoint& pos, const wxString /***********************************************************************************/ -DrawHierLabelStruct::DrawHierLabelStruct( const wxPoint& pos, const wxString& text ) : - DrawTextStruct( pos, text, DRAW_HIER_LABEL_STRUCT_TYPE ) +SCH_HIERLABEL::SCH_HIERLABEL( const wxPoint& pos, const wxString& text ) : + SCH_TEXT( pos, text, TYPE_SCH_HIERLABEL ) /***********************************************************************************/ { m_Layer = LAYER_HIERLABEL; @@ -151,7 +151,7 @@ DrawHierLabelStruct::DrawHierLabelStruct( const wxPoint& pos, const wxString& te /*******************************************************************************************/ -void DrawTextStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, +void SCH_TEXT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int DrawMode, int Color ) /*******************************************************************************************/ @@ -211,16 +211,16 @@ void DrawTextStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& off /*********************************************************************************************/ -void DrawLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, +void SCH_LABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int DrawMode, int Color ) /*********************************************************************************************/ { - DrawTextStruct::Draw( panel, DC, offset, DrawMode, Color ); + SCH_TEXT::Draw( panel, DC, offset, DrawMode, Color ); } /*******************************************************************************************/ -void DrawHierLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, +void SCH_HIERLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int DrawMode, int Color ) /******************************************************************************************/ @@ -288,7 +288,7 @@ void DrawHierLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint * format list is * corner_count, x0, y0, ... xn, yn */ -void DrawHierLabelStruct::CreateGraphicShape( int* corner_list, const wxPoint& Pos ) +void SCH_HIERLABEL::CreateGraphicShape( int* corner_list, const wxPoint& Pos ) { int* Template = TemplateShape[m_Shape][m_Orient]; int HalfSize = m_Size.x / 2; @@ -307,7 +307,7 @@ void DrawHierLabelStruct::CreateGraphicShape( int* corner_list, const wxPoint& P /*******************************************************************************************/ -void DrawGlobalLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& draw_offset, +void SCH_GLOBALLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& draw_offset, int DrawMode, int Color ) /******************************************************************************************/ @@ -338,9 +338,9 @@ void DrawGlobalLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoi offset += HalfSize; break; - case NET_OUTPUT: - offset += TXTMARGE; - break; + case NET_OUTPUT: + offset += TXTMARGE; + break; default: break; @@ -392,7 +392,7 @@ void DrawGlobalLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoi * format list is * , x0, y0, ... xn, yn */ -void DrawGlobalLabelStruct::CreateGraphicShape( int* corner_list, const wxPoint& Pos ) +void SCH_GLOBALLABEL::CreateGraphicShape( int* corner_list, const wxPoint& Pos ) { int HalfSize = m_Size.x / 2; int width = MAX( m_Width, g_DrawMinimunLineWidth ); diff --git a/eeschema/class_text-label.h b/eeschema/class_text-label.h index e6cb405202..809f26afa2 100644 --- a/eeschema/class_text-label.h +++ b/eeschema/class_text-label.h @@ -76,7 +76,7 @@ int* TemplateShape[5][4] = extern int* TemplateShape[5][4]; #endif -class DrawTextStruct : public EDA_BaseStruct +class SCH_TEXT : public SCH_ITEM , public EDA_TextStruct { public: @@ -85,31 +85,31 @@ public: bool m_IsDangling; // TRUE si non connect� public: - DrawTextStruct( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString, - KICAD_T aType = DRAW_TEXT_STRUCT_TYPE ); - ~DrawTextStruct() { } + SCH_TEXT( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString, + KICAD_T aType = TYPE_SCH_TEXT ); + ~SCH_TEXT() { } virtual wxString GetClass() const { - return wxT( "DrawText" ); + return wxT( "SCH_TEXT" ); } - DrawTextStruct* GenCopy(); + SCH_TEXT* GenCopy(); virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode, int Color = -1 ); - void SwapData( DrawTextStruct* copyitem ); + void SwapData( SCH_TEXT* copyitem ); virtual void Place( WinEDA_DrawFrame* frame, wxDC* DC ); }; -class DrawLabelStruct : public DrawTextStruct +class SCH_LABEL : public SCH_TEXT { public: - DrawLabelStruct( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString ); - ~DrawLabelStruct() { } + SCH_LABEL( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString ); + ~SCH_LABEL() { } virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode, int Color = -1 ); @@ -120,12 +120,12 @@ public: }; -class DrawGlobalLabelStruct : public DrawTextStruct +class SCH_GLOBALLABEL : public SCH_TEXT { public: - DrawGlobalLabelStruct( const wxPoint& pos = wxPoint( 0, 0 ), + SCH_GLOBALLABEL( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString ); - ~DrawGlobalLabelStruct() { } + ~SCH_GLOBALLABEL() { } virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode, int Color = -1 ); @@ -138,21 +138,21 @@ public: /** function CreateGraphicShape * Calculates the graphic shape (a polygon) associated to the text * @param corner_list = coordinates list fill with polygon corners ooordinates (size > 20) - * @param Pos = Postion of the shape - * format list is - * , x0, y0, ... xn, yn + * @param Pos = Postion of the shape + * format list is + * , x0, y0, ... xn, yn */ void CreateGraphicShape( int* corner_list, const wxPoint & Pos ); }; -class DrawHierLabelStruct : public DrawTextStruct +class SCH_HIERLABEL : public SCH_TEXT { public: - DrawHierLabelStruct( const wxPoint& pos = wxPoint( 0, 0 ), + SCH_HIERLABEL( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString ); - ~DrawHierLabelStruct() { } + ~SCH_HIERLABEL() { } virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode, int Color = -1 ); @@ -165,9 +165,9 @@ public: /** function CreateGraphicShape * Calculates the graphic shape (a polygon) associated to the text * @param corner_list = coordinates list fill with polygon corners ooordinates (size >= 14) - * @param Pos = Postion of the shape - * format list is - * , x0, y0, ... xn, yn + * @param Pos = Postion of the shape + * format list is + * , x0, y0, ... xn, yn */ void CreateGraphicShape( int* corner_list, const wxPoint & Pos ); }; diff --git a/eeschema/cleanup.cpp b/eeschema/cleanup.cpp index 29569b6bdb..27afd0c43a 100644 --- a/eeschema/cleanup.cpp +++ b/eeschema/cleanup.cpp @@ -105,14 +105,14 @@ void BreakSegmentOnJunction( SCH_SCREEN* Screen ) case DRAW_SEGMENT_STRUCT_TYPE: case DRAW_NOCONNECT_STRUCT_TYPE: - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_COMPONENT: case DRAW_PICK_ITEM_STRUCT_TYPE: case DRAW_POLYLINE_STRUCT_TYPE: case DRAW_MARKER_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_TEXT: case DRAW_SHEET_STRUCT_TYPE: case DRAW_SHEETLABEL_STRUCT_TYPE: break; diff --git a/eeschema/cmpclass.cpp b/eeschema/cmpclass.cpp index bb68774e1a..dc80c8b736 100644 --- a/eeschema/cmpclass.cpp +++ b/eeschema/cmpclass.cpp @@ -269,7 +269,7 @@ EDA_Rect DrawJunctionStruct::GetBoundingBox() }; -EDA_Rect EDA_SchComponentStruct::GetBoundingBox() +EDA_Rect SCH_COMPONENT::GetBoundingBox() { const int PADDING = 40; diff --git a/eeschema/component_class.cpp b/eeschema/component_class.cpp index 5cbc080c5d..34e6325630 100644 --- a/eeschema/component_class.cpp +++ b/eeschema/component_class.cpp @@ -22,28 +22,9 @@ WX_DEFINE_OBJARRAY( ArrayOfSheetLists ); /***************************/ -/* class DrawPartStruct */ -/* class EDA_SchComponentStruct */ +/* class SCH_COMPONENT */ /***************************/ -/***********************************************************************************/ -DrawPartStruct::DrawPartStruct( KICAD_T struct_type, const wxPoint& pos ) : - EDA_BaseStruct( struct_type ) -/***********************************************************************************/ -{ - m_Layer = 0; - m_Pos = pos; - m_TimeStamp = 0; -} - - -/************************************/ -DrawPartStruct::~DrawPartStruct() -/************************************/ -{ -} - - /****************************************************************/ const wxString& ReturnDefaultFieldName( int aFieldNdx ) /****************************************************************/ @@ -78,7 +59,7 @@ const wxString& ReturnDefaultFieldName( int aFieldNdx ) /****************************************************************/ -const wxString& EDA_SchComponentStruct::ReturnFieldName( int aFieldNdx ) const +const wxString& SCH_COMPONENT::ReturnFieldName( int aFieldNdx ) const /****************************************************************/ /* Return the Field name from its index (REFERENCE, VALUE ..) @@ -94,7 +75,7 @@ const wxString& EDA_SchComponentStruct::ReturnFieldName( int aFieldNdx ) const /****************************************************************/ -wxString EDA_SchComponentStruct::GetPath( DrawSheetPath* sheet ) +wxString SCH_COMPONENT::GetPath( DrawSheetPath* sheet ) /****************************************************************/ { wxString str; @@ -105,7 +86,7 @@ wxString EDA_SchComponentStruct::GetPath( DrawSheetPath* sheet ) /********************************************************************/ -const wxString EDA_SchComponentStruct::GetRef( DrawSheetPath* sheet ) +const wxString SCH_COMPONENT::GetRef( DrawSheetPath* sheet ) /********************************************************************/ { wxString path = GetPath( sheet ); @@ -137,7 +118,7 @@ const wxString EDA_SchComponentStruct::GetRef( DrawSheetPath* sheet ) /***********************************************************************/ -void EDA_SchComponentStruct::SetRef( DrawSheetPath* sheet, wxString ref ) +void SCH_COMPONENT::SetRef( DrawSheetPath* sheet, wxString ref ) /***********************************************************************/ { //check to see if it is already there before inserting it @@ -176,7 +157,7 @@ void EDA_SchComponentStruct::SetRef( DrawSheetPath* sheet, wxString ref ) /**************************************/ -void EDA_SchComponentStruct::ClearRefs() +void SCH_COMPONENT::ClearRefs() /**************************************/ { m_Paths.Empty(); @@ -184,7 +165,7 @@ void EDA_SchComponentStruct::ClearRefs() } -const wxString& EDA_SchComponentStruct::GetFieldValue( int aFieldNdx ) const +const wxString& SCH_COMPONENT::GetFieldValue( int aFieldNdx ) const { // avoid unnecessarily copying wxStrings. static const wxString myEmpty = wxEmptyString; @@ -197,14 +178,16 @@ const wxString& EDA_SchComponentStruct::GetFieldValue( int aFieldNdx ) const /*******************************************************************/ -EDA_SchComponentStruct::EDA_SchComponentStruct( const wxPoint& pos ) : - DrawPartStruct( DRAW_LIB_ITEM_STRUCT_TYPE, pos ) +SCH_COMPONENT::SCH_COMPONENT( const wxPoint& aPos ) : + SCH_ITEM( NULL, TYPE_SCH_COMPONENT ) /*******************************************************************/ { int ii; m_Multi = 0; /* In multi unit chip - which unit to draw. */ + m_Pos = aPos; + //m_FlagControlMulti = 0; m_UsedOnSheets.Clear(); m_Convert = 0; /* Gestion des mutiples representations (conversion De Morgan) */ @@ -234,7 +217,7 @@ EDA_SchComponentStruct::EDA_SchComponentStruct( const wxPoint& pos ) : /************************************************/ -EDA_Rect EDA_SchComponentStruct::GetBoundaryBox() const +EDA_Rect SCH_COMPONENT::GetBoundaryBox() const /************************************************/ { EDA_LibComponentStruct* Entry = FindLibPart( m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); @@ -309,14 +292,14 @@ void PartTextStruct::SwapData( PartTextStruct* copyitem ) /**************************************************************************/ -void EDA_SchComponentStruct::SwapData( EDA_SchComponentStruct* copyitem ) +void SCH_COMPONENT::SwapData( SCH_COMPONENT* copyitem ) /**************************************************************************/ /* Used if undo / redo command: * swap data between this and copyitem */ { - EXCHG( m_ChipName, copyitem->m_ChipName ); + EXCHG( m_ChipName, copyitem->m_ChipName ); EXCHG( m_Pos, copyitem->m_Pos ); EXCHG( m_Multi, copyitem->m_Multi ); EXCHG( m_Convert, copyitem->m_Convert ); @@ -332,7 +315,7 @@ void EDA_SchComponentStruct::SwapData( EDA_SchComponentStruct* copyitem ) /***********************************************************************/ -void EDA_SchComponentStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC ) +void SCH_COMPONENT::Place( WinEDA_DrawFrame* frame, wxDC* DC ) /***********************************************************************/ { /* save old text in undo list */ @@ -341,13 +324,13 @@ void EDA_SchComponentStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC ) && ( (m_Flags & IS_NEW) == 0 ) ) { /* restore old values and save new ones */ - SwapData( (EDA_SchComponentStruct*) g_ItemToUndoCopy ); + SwapData( (SCH_COMPONENT*) g_ItemToUndoCopy ); /* save in undo list */ ( (WinEDA_SchematicFrame*) frame )->SaveCopyInUndoList( this, IS_CHANGED ); /* restore new values */ - SwapData( (EDA_SchComponentStruct*) g_ItemToUndoCopy ); + SwapData( (SCH_COMPONENT*) g_ItemToUndoCopy ); SAFE_DELETE( g_ItemToUndoCopy ); } @@ -357,7 +340,7 @@ void EDA_SchComponentStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC ) /***************************************************/ -void EDA_SchComponentStruct::ClearAnnotation() +void SCH_COMPONENT::ClearAnnotation() /***************************************************/ /* Suppress annotation ( i.i IC23 changed to IC? and part reset to 1) @@ -386,16 +369,16 @@ void EDA_SchComponentStruct::ClearAnnotation() /**************************************************************/ -EDA_SchComponentStruct* EDA_SchComponentStruct::GenCopy() +SCH_COMPONENT* SCH_COMPONENT::GenCopy() /**************************************************************/ { - EDA_SchComponentStruct* new_item = new EDA_SchComponentStruct( m_Pos ); + SCH_COMPONENT* new_item = new SCH_COMPONENT( m_Pos ); int ii; new_item->m_Multi = m_Multi; new_item->m_ChipName = m_ChipName; - new_item->m_PrefixString = m_PrefixString; + new_item->m_PrefixString = m_PrefixString; //new_item->m_FlagControlMulti = m_FlagControlMulti; new_item->m_UsedOnSheets = m_UsedOnSheets; @@ -418,7 +401,7 @@ EDA_SchComponentStruct* EDA_SchComponentStruct::GenCopy() /*****************************************************************/ -void EDA_SchComponentStruct::SetRotationMiroir( int type_rotate ) +void SCH_COMPONENT::SetRotationMiroir( int type_rotate ) /******************************************************************/ /* Compute the new matrix transform for a schematic component @@ -561,7 +544,7 @@ void EDA_SchComponentStruct::SetRotationMiroir( int type_rotate ) /****************************************************/ -int EDA_SchComponentStruct::GetRotationMiroir() +int SCH_COMPONENT::GetRotationMiroir() /****************************************************/ { int type_rotate = CMP_ORIENT_0; @@ -626,7 +609,7 @@ int EDA_SchComponentStruct::GetRotationMiroir() /***********************************************************************/ -wxPoint EDA_SchComponentStruct::GetScreenCoord( const wxPoint& coord ) +wxPoint SCH_COMPONENT::GetScreenCoord( const wxPoint& coord ) /***********************************************************************/ /* Renvoie la coordonn�e du point coord, en fonction de l'orientation @@ -651,7 +634,7 @@ wxPoint EDA_SchComponentStruct::GetScreenCoord( const wxPoint& coord ) * of nesting of this object within the overall tree. * @param os The ostream& to output to. */ -void EDA_SchComponentStruct::Show( int nestLevel, std::ostream& os ) +void SCH_COMPONENT::Show( int nestLevel, std::ostream& os ) { // for now, make it look like XML: NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << @@ -748,7 +731,7 @@ EDA_Rect PartTextStruct::GetBoundaryBox() const int orient; int dx, dy, x1, y1, x2, y2; - EDA_SchComponentStruct* DrawLibItem = (EDA_SchComponentStruct*) m_Parent; + SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) m_Parent; orient = m_Orient; wxPoint pos = DrawLibItem->m_Pos; diff --git a/eeschema/component_class.h b/eeschema/component_class.h index b563866d65..38f25d8b16 100644 --- a/eeschema/component_class.h +++ b/eeschema/component_class.h @@ -65,36 +65,22 @@ public: }; -/* the class DrawPartStruct describes a basic virtual component - * Not used directly: - * used classes are EDA_SchComponentStruct (the "classic" schematic component, below) - * and the Pseudo component DrawSheetStruct - */ -class DrawPartStruct : public EDA_BaseStruct -{ -public: - int m_Layer; - wxString m_ChipName; /* Key to look for in the library, i.e. "74LS00". */ - PartTextStruct m_Field[NUMBER_OF_FIELDS]; - wxPoint m_Pos; /* Exact position of part. */ - -public: - DrawPartStruct( KICAD_T struct_type, const wxPoint& pos ); - ~DrawPartStruct(); - - virtual wxString GetClass() const - { - return wxT( "DrawPart" ); - } -}; - WX_DECLARE_OBJARRAY( DrawSheetPath, ArrayOfSheetLists ); -/* the class EDA_SchComponentStruct describes a real component */ -class EDA_SchComponentStruct : public DrawPartStruct + +/** + * Class SCH_COMPONENT + * describes a real schematic component + */ +class SCH_COMPONENT : public SCH_ITEM { public: int m_Multi; /* In multi unit chip - which unit to draw. */ + wxPoint m_Pos; + + wxString m_ChipName; /* Key to look for in the library, i.e. "74LS00". */ + PartTextStruct m_Field[NUMBER_OF_FIELDS]; + //int m_FlagControlMulti; ArrayOfSheetLists m_UsedOnSheets; int m_Convert; /* Gestion (management) des mutiples representations (ex: conversion De Morgan) */ @@ -108,16 +94,16 @@ public: * determined, upon file load, by the first non-digits in the reference fields. */ public: - EDA_SchComponentStruct( const wxPoint& pos = wxPoint( 0, 0 ) ); - ~EDA_SchComponentStruct( void ) { } + SCH_COMPONENT( const wxPoint& pos = wxPoint( 0, 0 ) ); + ~SCH_COMPONENT() { } virtual wxString GetClass() const { - return wxT( "EDA_SchComponent" ); + return wxT( "SCH_COMPONENT" ); } - EDA_SchComponentStruct* GenCopy(); + SCH_COMPONENT* GenCopy(); void SetRotationMiroir( int type ); int GetRotationMiroir(); wxPoint GetScreenCoord( const wxPoint& coord ); @@ -143,7 +129,7 @@ public: const wxPoint& offset, int draw_mode, int Color = -1 ); - void SwapData( EDA_SchComponentStruct* copyitem ); + void SwapData( SCH_COMPONENT* copyitem ); virtual void Place( WinEDA_DrawFrame* frame, wxDC* DC ); diff --git a/eeschema/controle.cpp b/eeschema/controle.cpp index a036d977df..3704f60dee 100644 --- a/eeschema/controle.cpp +++ b/eeschema/controle.cpp @@ -42,7 +42,7 @@ SchematicGeneralLocateAndDisplay( bool IncludePin ) wxString msg; wxPoint mouse_position = GetScreen()->m_MousePosition; LibDrawPin* Pin = NULL; - EDA_SchComponentStruct* LibItem = NULL; + SCH_COMPONENT* LibItem = NULL; DrawStruct = SchematicGeneralLocateAndDisplay( mouse_position, IncludePin ); if( !DrawStruct && ( mouse_position != GetScreen()->m_Curseur) ) @@ -57,15 +57,15 @@ SchematicGeneralLocateAndDisplay( bool IncludePin ) { case DRAW_PART_TEXT_STRUCT_TYPE: case COMPONENT_FIELD_DRAW_TYPE: - LibItem = (EDA_SchComponentStruct*) DrawStruct->m_Parent; + LibItem = (SCH_COMPONENT*) DrawStruct->m_Parent; SendMessageToPCBNEW( DrawStruct,LibItem ); break; - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: Pin = LocateAnyPin( GetScreen()->EEDrawList, GetScreen()->m_Curseur, &LibItem ); if( Pin ) break; // Priority is probing a pin first - LibItem = (EDA_SchComponentStruct*) DrawStruct; + LibItem = (SCH_COMPONENT*) DrawStruct; SendMessageToPCBNEW( DrawStruct, LibItem ); break; @@ -118,7 +118,7 @@ SchematicGeneralLocateAndDisplay( const wxPoint& refpoint, bool IncludePin ) { EDA_BaseStruct* DrawStruct; LibDrawPin* Pin; - EDA_SchComponentStruct* LibItem; + SCH_COMPONENT* LibItem; wxString Text; wxString msg; int ii; @@ -175,7 +175,7 @@ SchematicGeneralLocateAndDisplay( const wxPoint& refpoint, bool IncludePin ) if( DrawStruct ) { PartTextStruct* Field = (PartTextStruct*) DrawStruct; - LibItem = (EDA_SchComponentStruct*) Field->m_Parent; + LibItem = (SCH_COMPONENT*) Field->m_Parent; LibItem->Display_Infos( this ); return DrawStruct; @@ -199,7 +199,7 @@ SchematicGeneralLocateAndDisplay( const wxPoint& refpoint, bool IncludePin ) if( DrawStruct ) { DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); - LibItem = (EDA_SchComponentStruct*) DrawStruct; + LibItem = (SCH_COMPONENT*) DrawStruct; LibItem->Display_Infos( this ); return DrawStruct; } diff --git a/eeschema/cross-probing.cpp b/eeschema/cross-probing.cpp index 4fcaf8443f..b5e3cb3f71 100644 --- a/eeschema/cross-probing.cpp +++ b/eeschema/cross-probing.cpp @@ -86,7 +86,7 @@ void RemoteCommand( const char* cmdline ) /*****************************************************************************/ void WinEDA_SchematicFrame::SendMessageToPCBNEW( EDA_BaseStruct* objectToSync, - EDA_SchComponentStruct* LibItem ) + SCH_COMPONENT* LibItem ) /*****************************************************************************/ /** Send a remote command to eeschema via a socket, @@ -116,8 +116,8 @@ void WinEDA_SchematicFrame::SendMessageToPCBNEW( EDA_BaseStruct* objectT } break; - case DRAW_LIB_ITEM_STRUCT_TYPE: - LibItem = (EDA_SchComponentStruct*) objectToSync; + case TYPE_SCH_COMPONENT: + LibItem = (SCH_COMPONENT*) objectToSync; sprintf( Line, "$PART: %s", CONV_TO_UTF8( LibItem->m_Field[REFERENCE].m_Text ) ); SendCommand( MSG_TO_PCB, Line ); break; diff --git a/eeschema/dangling_ends.cpp b/eeschema/dangling_ends.cpp index aa8401d7eb..3549b8ef15 100644 --- a/eeschema/dangling_ends.cpp +++ b/eeschema/dangling_ends.cpp @@ -47,7 +47,7 @@ DanglingEndHandle* ItemList; static void TestWireForDangling( EDA_DrawLineStruct* DrawRef, WinEDA_SchematicFrame* frame, wxDC* DC ); -void TestLabelForDangling( DrawTextStruct* label, +void TestLabelForDangling( SCH_TEXT* label, WinEDA_SchematicFrame* frame, wxDC* DC ); DanglingEndHandle* RebuildEndList( EDA_BaseStruct* DrawList ); @@ -111,11 +111,11 @@ void WinEDA_SchematicFrame::TestDanglingEnds( EDA_BaseStruct* DrawList, wxDC* DC { switch( DrawItem->Type() ) { - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_LABEL_STRUCT_TYPE: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_LABEL: #undef STRUCT - #define STRUCT ( (DrawLabelStruct*) DrawItem ) + #define STRUCT ( (SCH_LABEL*) DrawItem ) TestLabelForDangling( STRUCT, this, DC ); break; break; @@ -155,7 +155,7 @@ LibDrawPin* WinEDA_SchematicFrame::LocatePinEnd( EDA_BaseStruct* DrawList, * NULL sinon */ { - EDA_SchComponentStruct* DrawLibItem; + SCH_COMPONENT* DrawLibItem; LibDrawPin* Pin; wxPoint pinpos; @@ -223,7 +223,7 @@ void TestWireForDangling( EDA_DrawLineStruct* DrawRef, /********************************************************/ -void TestLabelForDangling( DrawTextStruct* label, +void TestLabelForDangling( SCH_TEXT* label, WinEDA_SchematicFrame* frame, wxDC* DC ) /********************************************************/ { @@ -281,7 +281,7 @@ void TestLabelForDangling( DrawTextStruct* label, /****************************************************/ wxPoint ReturnPinPhysicalPosition( LibDrawPin* Pin, - EDA_SchComponentStruct* DrawLibItem ) + SCH_COMPONENT* DrawLibItem ) /****************************************************/ /* Retourne la position physique de la pin, qui d�pend de l'orientation @@ -316,13 +316,13 @@ DanglingEndHandle* RebuildEndList( EDA_BaseStruct* DrawList ) { switch( DrawItem->Type() ) { - case DRAW_LABEL_STRUCT_TYPE: + case TYPE_SCH_LABEL: break; - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: #undef STRUCT - #define STRUCT ( (DrawLabelStruct*) DrawItem ) + #define STRUCT ( (SCH_LABEL*) DrawItem ) item = new DanglingEndHandle( LABEL_END ); item->m_Item = DrawItem; @@ -395,15 +395,15 @@ DanglingEndHandle* RebuildEndList( EDA_BaseStruct* DrawList ) lastitem = item; break; - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: { #undef STRUCT - #define STRUCT ( (EDA_SchComponentStruct*) DrawItem ) + #define STRUCT ( (SCH_COMPONENT*) DrawItem ) EDA_LibComponentStruct* Entry; Entry = FindLibPart( STRUCT->m_ChipName, wxEmptyString, FIND_ROOT ); if( Entry == NULL ) break; - + LibEDA_BaseStruct* DrawLibItem = Entry->m_Drawings; for( ; DrawLibItem != NULL; DrawLibItem = DrawLibItem->Next() ) { @@ -455,7 +455,7 @@ DanglingEndHandle* RebuildEndList( EDA_BaseStruct* DrawList ) break; } - + default: ; } diff --git a/eeschema/delete.cpp b/eeschema/delete.cpp index 4d2e76a1bc..024cdbf8f3 100644 --- a/eeschema/delete.cpp +++ b/eeschema/delete.cpp @@ -280,10 +280,10 @@ void WinEDA_SchematicFrame::DeleteConnection( wxDC* DC, bool DeleteFullConnectio if( DelStruct->m_Flags & STRUCT_DELETED ) continue; - if( DelStruct->Type() != DRAW_LABEL_STRUCT_TYPE ) + if( DelStruct->Type() != TYPE_SCH_LABEL ) continue; - GetScreen()->m_Curseur = ( (DrawTextStruct*) DelStruct )->m_Pos; + GetScreen()->m_Curseur = ( (SCH_TEXT*) DelStruct )->m_Pos; EDA_BaseStruct* TstStruct = PickStruct( GetScreen()->m_Curseur, GetScreen(), WIREITEM | BUSITEM ); diff --git a/eeschema/dialog_build_BOM.cpp b/eeschema/dialog_build_BOM.cpp index 3ae9d1c0de..9522c41746 100644 --- a/eeschema/dialog_build_BOM.cpp +++ b/eeschema/dialog_build_BOM.cpp @@ -845,7 +845,7 @@ int GenListeCmp( ListComponent* List ) { int ItemCount = 0; EDA_BaseStruct* DrawList; - EDA_SchComponentStruct* DrawLibItem; + SCH_COMPONENT* DrawLibItem; DrawSheetPath* sheet; /* Build the sheet (not screen) list */ @@ -858,9 +858,9 @@ int GenListeCmp( ListComponent* List ) { switch( DrawList->Type() ) { - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: ItemCount++; - DrawLibItem = (EDA_SchComponentStruct*) DrawList; + DrawLibItem = (SCH_COMPONENT*) DrawList; DrawLibItem->m_Parent = sheet->LastScreen(); if( List ) { @@ -910,8 +910,8 @@ static int GenListeGLabels( ListLabel* List ) { switch( DrawList->Type() ) { - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_GLOBALLABEL: ItemCount++; if( List ) { @@ -1063,12 +1063,12 @@ static int ListTriGLabelByVal( ListLabel* Objet1, ListLabel* Objet2 ) if( Objet1->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE ) Text1 = &( (DrawSheetLabelStruct*) Objet1->m_Label )->m_Text; else - Text1 = &( (DrawTextStruct*) Objet1->m_Label )->m_Text; + Text1 = &( (SCH_TEXT*) Objet1->m_Label )->m_Text; if( Objet2->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE ) Text2 = &( (DrawSheetLabelStruct*) Objet2->m_Label )->m_Text; else - Text2 = &( (DrawTextStruct*) Objet2->m_Label )->m_Text; + Text2 = &( (SCH_TEXT*) Objet2->m_Label )->m_Text; ii = Text1->CmpNoCase( *Text2 ); @@ -1102,12 +1102,12 @@ static int ListTriGLabelBySheet( ListLabel* Objet1, ListLabel* Objet2 ) if( Objet1->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE ) Text1 = &( (DrawSheetLabelStruct*) Objet1->m_Label )->m_Text; else - Text1 = &( (DrawTextStruct*) Objet1->m_Label )->m_Text; + Text1 = &( (SCH_TEXT*) Objet1->m_Label )->m_Text; if( Objet2->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE ) Text2 = &( (DrawSheetLabelStruct*) Objet2->m_Label )->m_Text; else - Text2 = &( (DrawTextStruct*) Objet2->m_Label )->m_Text; + Text2 = &( (SCH_TEXT*) Objet2->m_Label )->m_Text; ii = Text1->CmpNoCase( *Text2 ); } @@ -1125,7 +1125,7 @@ static void DeleteSubCmp( ListComponent* List, int NbItems ) */ { int ii; - EDA_SchComponentStruct* LibItem; + SCH_COMPONENT* LibItem; wxString OldName, CurrName; for( ii = 0; ii < NbItems; ii++ ) @@ -1149,7 +1149,7 @@ static void DeleteSubCmp( ListComponent* List, int NbItems ) /*******************************************************************************************/ -void WinEDA_Build_BOM_Frame::PrintFieldData( FILE* f, EDA_SchComponentStruct* DrawLibItem, +void WinEDA_Build_BOM_Frame::PrintFieldData( FILE* f, SCH_COMPONENT* DrawLibItem, bool CompactForm ) /*******************************************************************************************/ { @@ -1198,7 +1198,7 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByRef( FILE* f, ListComponent* List, in { int ii, Multi, Unit; EDA_BaseStruct* DrawList; - EDA_SchComponentStruct* DrawLibItem; + SCH_COMPONENT* DrawLibItem; EDA_LibComponentStruct* Entry; char NameCmp[80]; wxString msg; @@ -1254,10 +1254,10 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByRef( FILE* f, ListComponent* List, in if( DrawList == NULL ) continue; - if( DrawList->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( DrawList->Type() != TYPE_SCH_COMPONENT ) continue; - DrawLibItem = (EDA_SchComponentStruct*) DrawList; + DrawLibItem = (SCH_COMPONENT*) DrawList; if( List[ii].m_Ref[0] == '#' ) continue; @@ -1313,7 +1313,7 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByVal( FILE* f, ListComponent* List, in int ii, Multi; wxChar Unit; EDA_BaseStruct* DrawList; - EDA_SchComponentStruct* DrawLibItem; + SCH_COMPONENT* DrawLibItem; EDA_LibComponentStruct* Entry; wxString msg; @@ -1331,10 +1331,10 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByVal( FILE* f, ListComponent* List, in if( DrawList == NULL ) continue; - if( DrawList->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( DrawList->Type() != TYPE_SCH_COMPONENT ) continue; - DrawLibItem = (EDA_SchComponentStruct*) DrawList; + DrawLibItem = (SCH_COMPONENT*) DrawList; if( List[ii].m_Ref[0] == '#' ) continue; @@ -1354,10 +1354,10 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByVal( FILE* f, ListComponent* List, in List[ii].m_Ref, Unit ); // if( s_ListWithSubCmponents ) - // print the sheet path + // print the sheet path if( m_ListSubCmpItems->GetValue() ) { - msg = List[ii].m_SheetList.PathHumanReadable(); + msg = List[ii].m_SheetList.PathHumanReadable(); fprintf( f, " (Sheet %s)", CONV_TO_UTF8( msg ) ); } @@ -1377,7 +1377,7 @@ static int PrintListeGLabel( FILE* f, ListLabel* List, int NbItems ) /******************************************************************/ { int ii, jj; - DrawLabelStruct* DrawTextItem; + SCH_LABEL* DrawTextItem; DrawSheetLabelStruct* DrawSheetLabel; ListLabel* LabelItem; wxString msg, sheetpath; @@ -1389,14 +1389,14 @@ static int PrintListeGLabel( FILE* f, ListLabel* List, int NbItems ) switch( LabelItem->m_LabelType ) { - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - DrawTextItem = (DrawLabelStruct*) (LabelItem->m_Label); - if( LabelItem->m_LabelType == DRAW_HIER_LABEL_STRUCT_TYPE ) + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_GLOBALLABEL: + DrawTextItem = (SCH_LABEL*) (LabelItem->m_Label); + if( LabelItem->m_LabelType == TYPE_SCH_HIERLABEL ) labeltype = wxT("Hierarchical"); else labeltype = wxT("Global "); - sheetpath = CONV_FROM_UTF8(LabelItem->m_SheetPath); + sheetpath = CONV_FROM_UTF8(LabelItem->m_SheetPath); msg.Printf( _( "> %-28.28s %s (Sheet %s) pos: %3.3f, %3.3f\n" ), DrawTextItem->m_Text.GetData(), diff --git a/eeschema/dialog_build_BOM.h b/eeschema/dialog_build_BOM.h index b8a9ee2e1c..0e63357ab6 100644 --- a/eeschema/dialog_build_BOM.h +++ b/eeschema/dialog_build_BOM.h @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// // Name: dialog_build_BOM.h -// Purpose: +// Purpose: // Author: jean-pieere Charras -// Modified by: +// Modified by: // Created: 01/15/06 18:18:44 -// RCS-ID: +// RCS-ID: // Copyright: GNU license -// Licence: +// Licence: ///////////////////////////////////////////////////////////////////////////// // Generated by DialogBlocks (unregistered), 01/15/06 18:18:44 @@ -80,7 +80,7 @@ */ class WinEDA_Build_BOM_Frame: public wxDialog -{ +{ DECLARE_DYNAMIC_CLASS( WinEDA_Build_BOM_Frame ) DECLARE_EVENT_TABLE() @@ -88,11 +88,11 @@ public: /// Constructors WinEDA_Build_BOM_Frame( ); WinEDA_Build_BOM_Frame( WinEDA_DrawFrame* parent, - wxWindowID id = SYMBOL_WINEDA_BUILD_BOM_FRAME_IDNAME, - const wxString& caption = SYMBOL_WINEDA_BUILD_BOM_FRAME_TITLE, - const wxPoint& pos = SYMBOL_WINEDA_BUILD_BOM_FRAME_POSITION, - const wxSize& size = SYMBOL_WINEDA_BUILD_BOM_FRAME_SIZE, - long style = SYMBOL_WINEDA_BUILD_BOM_FRAME_STYLE ); + wxWindowID id = SYMBOL_WINEDA_BUILD_BOM_FRAME_IDNAME, + const wxString& caption = SYMBOL_WINEDA_BUILD_BOM_FRAME_TITLE, + const wxPoint& pos = SYMBOL_WINEDA_BUILD_BOM_FRAME_POSITION, + const wxSize& size = SYMBOL_WINEDA_BUILD_BOM_FRAME_SIZE, + long style = SYMBOL_WINEDA_BUILD_BOM_FRAME_STYLE ); /// Creation bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_BUILD_BOM_FRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_BUILD_BOM_FRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_BUILD_BOM_FRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_BUILD_BOM_FRAME_SIZE, long style = SYMBOL_WINEDA_BUILD_BOM_FRAME_STYLE ); @@ -119,7 +119,7 @@ public: ////@end WinEDA_Build_BOM_Frame event handler declarations - void GenList(); + void GenList(); ////@begin WinEDA_Build_BOM_Frame member function declarations @@ -129,12 +129,12 @@ public: /// Retrieves icon resources wxIcon GetIconResource( const wxString& name ); ////@end WinEDA_Build_BOM_Frame member function declarations - void GenereListeOfItems(const wxString & FullFileName); - void CreateExportList(const wxString & FullFileName); - int PrintListeCmpByRef( FILE * f, ListComponent * List, int NbItems, bool CompactForm = FALSE ); - int PrintListeCmpByVal( FILE *f, ListComponent * List, int NbItems); - void PrintFieldData(FILE * f, EDA_SchComponentStruct * DrawLibItem, bool CompactForm = FALSE); - void SavePreferences(); + void GenereListeOfItems(const wxString & FullFileName); + void CreateExportList(const wxString & FullFileName); + int PrintListeCmpByRef( FILE * f, ListComponent * List, int NbItems, bool CompactForm = FALSE ); + int PrintListeCmpByVal( FILE *f, ListComponent * List, int NbItems); + void PrintFieldData(FILE * f, SCH_COMPONENT * DrawLibItem, bool CompactForm = FALSE); + void SavePreferences(); /// Should we show tooltips? @@ -161,9 +161,9 @@ public: wxCheckBox* m_AddField8; ////@end WinEDA_Build_BOM_Frame member variables - WinEDA_DrawFrame * m_Parent; - wxString m_LibArchiveFileName; - wxString m_ListFileName; + WinEDA_DrawFrame * m_Parent; + wxString m_LibArchiveFileName; + wxString m_ListFileName; }; #endif diff --git a/eeschema/dialog_edit_component_in_schematic.cpp b/eeschema/dialog_edit_component_in_schematic.cpp index 30e9216002..32a364b601 100644 --- a/eeschema/dialog_edit_component_in_schematic.cpp +++ b/eeschema/dialog_edit_component_in_schematic.cpp @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// // Name: dialog_edit_component_in_schematic.cpp -// Purpose: +// Purpose: // Author: jean-pierre Charras -// Modified by: +// Modified by: // Created: 03/03/2006 15:02:54 -// RCS-ID: +// RCS-ID: // Copyright: License GNU -// Licence: +// Licence: ///////////////////////////////////////////////////////////////////////////// // Generated by DialogBlocks (unregistered), 03/03/2006 15:02:54 @@ -41,7 +41,7 @@ BEGIN_EVENT_TABLE( WinEDA_ComponentPropertiesFrame, wxDialog ) ////@end WinEDA_ComponentPropertiesFrame event table entries - EVT_RADIOBOX(ID_ON_SELECT_FIELD, WinEDA_ComponentPropertiesFrame::SelectNewField) + EVT_RADIOBOX(ID_ON_SELECT_FIELD, WinEDA_ComponentPropertiesFrame::SelectNewField) END_EVENT_TABLE() @@ -54,21 +54,21 @@ WinEDA_ComponentPropertiesFrame::WinEDA_ComponentPropertiesFrame( ) } WinEDA_ComponentPropertiesFrame::WinEDA_ComponentPropertiesFrame( WinEDA_SchematicFrame* parent, - EDA_SchComponentStruct * cmp, - wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) + SCH_COMPONENT * cmp, + wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) { - m_Parent = parent; - m_Cmp = cmp; - m_LibEntry = FindLibPart(m_Cmp->m_ChipName.GetData(), wxEmptyString, FIND_ROOT); + m_Parent = parent; + m_Cmp = cmp; + m_LibEntry = FindLibPart(m_Cmp->m_ChipName.GetData(), wxEmptyString, FIND_ROOT); - InitBuffers(); + InitBuffers(); Create(parent, id, caption, pos, size, style); - if ( m_LibEntry == NULL ) - { - SetTitle(_("Component properties (Not found in lib)")); - } + if ( m_LibEntry == NULL ) + { + SetTitle(_("Component properties (Not found in lib)")); + } } /*! @@ -77,7 +77,7 @@ WinEDA_ComponentPropertiesFrame::WinEDA_ComponentPropertiesFrame( WinEDA_Schemat bool WinEDA_ComponentPropertiesFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) { - m_FieldNameCtrl = NULL; + m_FieldNameCtrl = NULL; ////@begin WinEDA_ComponentPropertiesFrame member initialisation m_GeneralBoxSizer = NULL; m_NoteBook = NULL; @@ -114,9 +114,9 @@ bool WinEDA_ComponentPropertiesFrame::Create( wxWindow* parent, wxWindowID id, c */ void WinEDA_ComponentPropertiesFrame::CreateControls() -{ - SetFont(*g_DialogFont); - +{ + SetFont(*g_DialogFont); + ////@begin WinEDA_ComponentPropertiesFrame content construction // Generated by DialogBlocks, 07/11/2007 08:28:00 (unregistered) @@ -242,8 +242,8 @@ void WinEDA_ComponentPropertiesFrame::CreateControls() itemBoxSizer23->Add(itemButton26, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); ////@end WinEDA_ComponentPropertiesFrame content construction - BuildPanelBasic(); - BuildPanelFields(); + BuildPanelBasic(); + BuildPanelFields(); } /*! @@ -295,7 +295,7 @@ void WinEDA_ComponentPropertiesFrame::OnCancelClick( wxCommandEvent& event ) void WinEDA_ComponentPropertiesFrame::OnRestoreCmpDefaultsClick( wxCommandEvent& event ) { - SetInitCmp(event); + SetInitCmp(event); } /*! @@ -304,5 +304,5 @@ void WinEDA_ComponentPropertiesFrame::OnRestoreCmpDefaultsClick( wxCommandEvent& void WinEDA_ComponentPropertiesFrame::OnOkClick( wxCommandEvent& event ) { - ComponentPropertiesAccept(event); + ComponentPropertiesAccept(event); } diff --git a/eeschema/dialog_edit_component_in_schematic.h b/eeschema/dialog_edit_component_in_schematic.h index 877d59872e..1e1ad2c11a 100644 --- a/eeschema/dialog_edit_component_in_schematic.h +++ b/eeschema/dialog_edit_component_in_schematic.h @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// // Name: dialog_edit_component_in_schematic.h -// Purpose: +// Purpose: // Author: jean-pierre Charras -// Modified by: +// Modified by: // Created: 03/03/2006 15:02:54 -// RCS-ID: +// RCS-ID: // Copyright: License GNU -// Licence: +// Licence: ///////////////////////////////////////////////////////////////////////////// // Generated by DialogBlocks (unregistered), 03/03/2006 15:02:54 @@ -68,7 +68,7 @@ class wxNotebook; */ class WinEDA_ComponentPropertiesFrame: public wxDialog -{ +{ DECLARE_DYNAMIC_CLASS( WinEDA_ComponentPropertiesFrame ) DECLARE_EVENT_TABLE() @@ -76,8 +76,8 @@ public: /// Constructors WinEDA_ComponentPropertiesFrame( ); WinEDA_ComponentPropertiesFrame( WinEDA_SchematicFrame* parent, - EDA_SchComponentStruct * cmp, - wxWindowID id = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_SIZE, long style = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_STYLE ); + SCH_COMPONENT * cmp, + wxWindowID id = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_SIZE, long style = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_STYLE ); /// Creation bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_SIZE, long style = SYMBOL_WINEDA_COMPONENTPROPERTIESFRAME_STYLE ); @@ -110,14 +110,14 @@ public: /// Should we show tooltips? static bool ShowToolTips(); - void InitBuffers(); - void BuildPanelBasic(); - void BuildPanelFields(); - void ComponentPropertiesAccept(wxCommandEvent& event); - void SetInitCmp( wxCommandEvent& event ); - void CopyDataToPanelField(); - void CopyPanelFieldToData(); - void SelectNewField(wxCommandEvent& event); + void InitBuffers(); + void BuildPanelBasic(); + void BuildPanelFields(); + void ComponentPropertiesAccept(wxCommandEvent& event); + void SetInitCmp( wxCommandEvent& event ); + void CopyDataToPanelField(); + void CopyPanelFieldToData(); + void SelectNewField(wxCommandEvent& event); ////@begin WinEDA_ComponentPropertiesFrame member variables wxBoxSizer* m_GeneralBoxSizer; @@ -136,21 +136,21 @@ public: wxBoxSizer* m_FieldSelectionBoxSizer; ////@end WinEDA_ComponentPropertiesFrame member variables - WinEDA_SchematicFrame * m_Parent; - EDA_SchComponentStruct * m_Cmp; - EDA_LibComponentStruct * m_LibEntry; - int m_CurrentFieldId; + WinEDA_SchematicFrame * m_Parent; + SCH_COMPONENT * m_Cmp; + EDA_LibComponentStruct * m_LibEntry; + int m_CurrentFieldId; - wxRadioBox * m_FieldSelection; - WinEDA_GraphicTextCtrl * m_FieldTextCtrl; - WinEDA_EnterText * m_FieldNameCtrl; - WinEDA_PositionCtrl * m_FieldPositionCtrl; - wxString m_FieldText[NUMBER_OF_FIELDS]; - wxString m_FieldName[NUMBER_OF_FIELDS]; - wxPoint m_FieldPosition[NUMBER_OF_FIELDS]; - int m_FieldSize[NUMBER_OF_FIELDS]; - int m_FieldFlags[NUMBER_OF_FIELDS]; - int m_FieldOrient[NUMBER_OF_FIELDS]; + wxRadioBox * m_FieldSelection; + WinEDA_GraphicTextCtrl * m_FieldTextCtrl; + WinEDA_EnterText * m_FieldNameCtrl; + WinEDA_PositionCtrl * m_FieldPositionCtrl; + wxString m_FieldText[NUMBER_OF_FIELDS]; + wxString m_FieldName[NUMBER_OF_FIELDS]; + wxPoint m_FieldPosition[NUMBER_OF_FIELDS]; + int m_FieldSize[NUMBER_OF_FIELDS]; + int m_FieldFlags[NUMBER_OF_FIELDS]; + int m_FieldOrient[NUMBER_OF_FIELDS]; }; #endif diff --git a/eeschema/dialog_edit_label.cpp b/eeschema/dialog_edit_label.cpp index db0ce11a47..9f9f83f74f 100644 --- a/eeschema/dialog_edit_label.cpp +++ b/eeschema/dialog_edit_label.cpp @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// // Name: dialog_edit_label.cpp -// Purpose: +// Purpose: // Author: jean-pierre Charras -// Modified by: +// Modified by: // Created: 19/02/2006 15:46:26 -// RCS-ID: +// RCS-ID: // Copyright: License GNU -// Licence: +// Licence: ///////////////////////////////////////////////////////////////////////////// // Generated by DialogBlocks (unregistered), 19/02/2006 15:46:26 @@ -51,42 +51,42 @@ WinEDA_LabelPropertiesFrame::WinEDA_LabelPropertiesFrame( ) } WinEDA_LabelPropertiesFrame::WinEDA_LabelPropertiesFrame( WinEDA_SchematicFrame* parent, - DrawTextStruct * CurrentText, - const wxPoint& pos, - wxWindowID id, const wxString& caption, const wxSize& size, long style ) + SCH_TEXT * CurrentText, + const wxPoint& pos, + wxWindowID id, const wxString& caption, const wxSize& size, long style ) { wxString msg; - - m_Parent = parent; - m_CurrentText = CurrentText; + + m_Parent = parent; + m_CurrentText = CurrentText; Create(parent, id, caption, pos, size, style); - m_TextLabel->SetValue(m_CurrentText->m_Text); - m_TextLabel->SetFocus(); - switch( m_CurrentText->Type() ) - { - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - SetTitle(_("Global Label properties")); - break; - - case DRAW_HIER_LABEL_STRUCT_TYPE: - SetTitle(_("Hierarchal Label properties")); - break; + m_TextLabel->SetValue(m_CurrentText->m_Text); + m_TextLabel->SetFocus(); + switch( m_CurrentText->Type() ) + { + case TYPE_SCH_GLOBALLABEL: + SetTitle(_("Global Label properties")); + break; - case DRAW_LABEL_STRUCT_TYPE: - SetTitle(_("Label properties")); - break; + case TYPE_SCH_HIERLABEL: + SetTitle(_("Hierarchal Label properties")); + break; - default: - SetTitle(_("Text properties")); - break; - } - - - msg = m_SizeTitle->GetLabel() + ReturnUnitSymbol(); - m_SizeTitle->SetLabel(msg); - - msg = ReturnStringFromValue(g_UnitMetric, m_CurrentText->m_Size.x, m_Parent->m_InternalUnits); - m_TextSize->SetValue(msg); + case TYPE_SCH_LABEL: + SetTitle(_("Label properties")); + break; + + default: + SetTitle(_("Text properties")); + break; + } + + + msg = m_SizeTitle->GetLabel() + ReturnUnitSymbol(); + m_SizeTitle->SetLabel(msg); + + msg = ReturnStringFromValue(g_UnitMetric, m_CurrentText->m_Size.x, m_Parent->m_InternalUnits); + m_TextSize->SetValue(msg); } /*! @@ -120,8 +120,8 @@ bool WinEDA_LabelPropertiesFrame::Create( wxWindow* parent, wxWindowID id, const */ void WinEDA_LabelPropertiesFrame::CreateControls() -{ - SetFont(*g_DialogFont); +{ + SetFont(*g_DialogFont); ////@begin WinEDA_LabelPropertiesFrame content construction // Generated by DialogBlocks, 07/11/2007 12:37:47 (unregistered) @@ -189,8 +189,8 @@ void WinEDA_LabelPropertiesFrame::CreateControls() m_TextShape->SetValidator( wxGenericValidator(& m_CurrentText->m_Shape) ); ////@end WinEDA_LabelPropertiesFrame content construction - if (m_CurrentText->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE || - m_CurrentText->Type() == DRAW_HIER_LABEL_STRUCT_TYPE) + if (m_CurrentText->Type() == TYPE_SCH_GLOBALLABEL || + m_CurrentText->Type() == TYPE_SCH_HIERLABEL) m_TextShape->Show(true); } diff --git a/eeschema/dialog_edit_label.h b/eeschema/dialog_edit_label.h index 7c7e3418dc..8f979a5099 100644 --- a/eeschema/dialog_edit_label.h +++ b/eeschema/dialog_edit_label.h @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// // Name: dialog_edit_label.h -// Purpose: +// Purpose: // Author: jean-pierre Charras -// Modified by: +// Modified by: // Created: 19/02/2006 15:46:26 -// RCS-ID: +// RCS-ID: // Copyright: License GNU -// Licence: +// Licence: ///////////////////////////////////////////////////////////////////////////// // Generated by DialogBlocks (unregistered), 19/02/2006 15:46:26 @@ -60,7 +60,7 @@ */ class WinEDA_LabelPropertiesFrame: public wxDialog -{ +{ DECLARE_DYNAMIC_CLASS( WinEDA_LabelPropertiesFrame ) DECLARE_EVENT_TABLE() @@ -68,9 +68,9 @@ public: /// Constructors WinEDA_LabelPropertiesFrame( ); WinEDA_LabelPropertiesFrame( WinEDA_SchematicFrame* parent, - DrawTextStruct * CurrentText, - const wxPoint& pos = SYMBOL_WINEDA_LABELPROPERTIESFRAME_POSITION, - wxWindowID id = SYMBOL_WINEDA_LABELPROPERTIESFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_LABELPROPERTIESFRAME_TITLE, const wxSize& size = SYMBOL_WINEDA_LABELPROPERTIESFRAME_SIZE, long style = SYMBOL_WINEDA_LABELPROPERTIESFRAME_STYLE ); + SCH_TEXT * CurrentText, + const wxPoint& pos = SYMBOL_WINEDA_LABELPROPERTIESFRAME_POSITION, + wxWindowID id = SYMBOL_WINEDA_LABELPROPERTIESFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_LABELPROPERTIESFRAME_TITLE, const wxSize& size = SYMBOL_WINEDA_LABELPROPERTIESFRAME_SIZE, long style = SYMBOL_WINEDA_LABELPROPERTIESFRAME_STYLE ); /// Creation bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_LABELPROPERTIESFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_LABELPROPERTIESFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_LABELPROPERTIESFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_LABELPROPERTIESFRAME_SIZE, long style = SYMBOL_WINEDA_LABELPROPERTIESFRAME_STYLE ); @@ -99,8 +99,8 @@ public: /// Should we show tooltips? static bool ShowToolTips(); - void TextPropertiesAccept(wxCommandEvent& event); - + void TextPropertiesAccept(wxCommandEvent& event); + ////@begin WinEDA_LabelPropertiesFrame member variables wxTextCtrl* m_TextLabel; wxRadioBox* m_TextOrient; @@ -110,7 +110,7 @@ public: ////@end WinEDA_LabelPropertiesFrame member variables WinEDA_SchematicFrame * m_Parent; - DrawTextStruct * m_CurrentText; + SCH_TEXT * m_CurrentText; }; diff --git a/eeschema/edit_component_in_schematic.cpp b/eeschema/edit_component_in_schematic.cpp index d543f5d014..bcf05256b8 100644 --- a/eeschema/edit_component_in_schematic.cpp +++ b/eeschema/edit_component_in_schematic.cpp @@ -39,14 +39,14 @@ static wxPoint OldPos; /**********************************************************************/ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos, - EDA_SchComponentStruct* cmp ) + SCH_COMPONENT* cmp ) /*********************************************************************/ /* Create the dialog box for the current component edition */ { parent->DrawPanel->m_IgnoreMouseEvents = TRUE; - if( cmp->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( cmp->Type() != TYPE_SCH_COMPONENT ) { DisplayError( parent, wxT( "InstallCmpeditFrame() error: This struct is not a component" ) ); @@ -55,7 +55,7 @@ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos, { WinEDA_ComponentPropertiesFrame* frame = new WinEDA_ComponentPropertiesFrame( parent, cmp ); - frame->ShowModal(); + frame->ShowModal(); frame->Destroy(); } @@ -90,10 +90,10 @@ void WinEDA_ComponentPropertiesFrame::InitBuffers() for( ii = REFERENCE; ii < NUMBER_OF_FIELDS; ii++ ) { m_FieldName[ii] = m_Cmp->ReturnFieldName( ii ); - if(ii == REFERENCE) - m_FieldText[ii] = m_Cmp->GetRef(m_Parent->GetSheet()); - else - m_FieldText[ii] = m_Cmp->m_Field[ii].m_Text; + if(ii == REFERENCE) + m_FieldText[ii] = m_Cmp->GetRef(m_Parent->GetSheet()); + else + m_FieldText[ii] = m_Cmp->m_Field[ii].m_Text; m_FieldSize[ii] = m_Cmp->m_Field[ii].m_Size.x; m_FieldFlags[ii] = (m_Cmp->m_Field[ii].m_Attributs & TEXT_NO_VISIBLE) ? 0 : 1; @@ -122,7 +122,7 @@ void WinEDA_ComponentPropertiesFrame::CopyDataToPanelField() for( int ii = FIELD1; ii < NUMBER_OF_FIELDS; ii++ ){ m_FieldSelection->SetString( ii, m_FieldName[ii] ); - } + } if( fieldId == VALUE && m_LibEntry && m_LibEntry->m_Options == ENTRY_POWER ) m_FieldTextCtrl->Enable( FALSE ); @@ -394,7 +394,7 @@ void WinEDA_ComponentPropertiesFrame::ComponentPropertiesAccept( wxCommandEvent& if( ii == REFERENCE ) // la reference ne peut etre vide { if( !m_FieldText[ii].IsEmpty() ) - m_Cmp->SetRef(m_Parent->GetSheet(), m_FieldText[ii]); + m_Cmp->SetRef(m_Parent->GetSheet(), m_FieldText[ii]); } else if( ii == VALUE ) // la valeur ne peut etre vide et ne peut etre change sur un POWER { @@ -427,10 +427,10 @@ void WinEDA_ComponentPropertiesFrame::ComponentPropertiesAccept( wxCommandEvent& m_Cmp->m_Field[ii].m_Pos.y += cmp_pos.y; } - m_Parent->GetScreen()->SetModify(); + m_Parent->GetScreen()->SetModify(); RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, GR_DEFAULT_DRAWMODE ); - m_Parent->TestDanglingEnds( m_Parent->GetScreen()->EEDrawList, &dc ); + m_Parent->TestDanglingEnds( m_Parent->GetScreen()->EEDrawList, &dc ); EndModal( 0 ); } @@ -458,9 +458,9 @@ void WinEDA_SchematicFrame::StartMoveCmpField( PartTextStruct* Field, wxDC* DC ) wxPoint pos, newpos; int x1, y1; - EDA_SchComponentStruct* Cmp = (EDA_SchComponentStruct*) CurrentField->m_Parent; + SCH_COMPONENT* Cmp = (SCH_COMPONENT*) CurrentField->m_Parent; - SAFE_DELETE( g_ItemToUndoCopy ); + SAFE_DELETE( g_ItemToUndoCopy ); g_ItemToUndoCopy = Cmp->GenCopy(); pos = Cmp->m_Pos; @@ -482,7 +482,7 @@ void WinEDA_SchematicFrame::StartMoveCmpField( PartTextStruct* Field, wxDC* DC ) newpos.y = pos.y + Cmp->m_Transform[0][1] * x1 + Cmp->m_Transform[1][1] * y1; DrawPanel->CursorOff( DC ); - GetScreen()->m_Curseur = newpos; + GetScreen()->m_Curseur = newpos; DrawPanel->MouseToCursorSchema(); OldPos = Field->m_Pos; @@ -519,7 +519,7 @@ void WinEDA_SchematicFrame::EditCmpFieldText( PartTextStruct* Field, wxDC* DC ) return; } - EDA_SchComponentStruct* Cmp = (EDA_SchComponentStruct*) Field->m_Parent; + SCH_COMPONENT* Cmp = (SCH_COMPONENT*) Field->m_Parent; FieldNumber = Field->m_FieldId; if( FieldNumber == VALUE ) @@ -567,9 +567,9 @@ void WinEDA_SchematicFrame::EditCmpFieldText( PartTextStruct* Field, wxDC* DC ) Field->m_Size.x = Field->m_Size.y = TextFieldSize; } Field->m_Text = newtext; - if( FieldNumber == REFERENCE ){ - Cmp->SetRef(GetSheet(), newtext); - } + if( FieldNumber == REFERENCE ){ + Cmp->SetRef(GetSheet(), newtext); + } } else /* Nouveau texte NULL */ { @@ -589,7 +589,7 @@ void WinEDA_SchematicFrame::EditCmpFieldText( PartTextStruct* Field, wxDC* DC ) DrawTextField( DrawPanel, DC, Field, flag, g_XorMode ); Cmp->Display_Infos( this ); - GetScreen()->SetModify(); + GetScreen()->SetModify(); } @@ -608,14 +608,14 @@ static void MoveCmpField( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ) if( CurrentField == NULL ) return; - EDA_SchComponentStruct* Cmp = (EDA_SchComponentStruct*) CurrentField->m_Parent; + SCH_COMPONENT* Cmp = (SCH_COMPONENT*) CurrentField->m_Parent; FieldNumber = CurrentField->m_FieldId; /* Effacement: */ if( erase ) DrawTextField( panel, DC, CurrentField, Multiflag, g_XorMode ); - pos = ( (EDA_SchComponentStruct*) CurrentField->m_Parent )->m_Pos; + pos = ( (SCH_COMPONENT*) CurrentField->m_Parent )->m_Pos; /* Les positions sont caculees par la matrice TRANSPOSEE de la matrice * de rotation-miroir */ @@ -642,7 +642,7 @@ static void AbortMoveCmpField( WinEDA_DrawPanel* Panel, wxDC* DC ) DrawTextField( Panel, DC, CurrentField, Multiflag, GR_DEFAULT_DRAWMODE ); } CurrentField = NULL; - SAFE_DELETE( g_ItemToUndoCopy ); + SAFE_DELETE( g_ItemToUndoCopy ); } @@ -658,13 +658,13 @@ void WinEDA_SchematicFrame::RotateCmpField( PartTextStruct* Field, wxDC* DC ) if( Field->m_Text == wxEmptyString ) return; - EDA_SchComponentStruct* Cmp = (EDA_SchComponentStruct*) Field->m_Parent; + SCH_COMPONENT* Cmp = (SCH_COMPONENT*) Field->m_Parent; FieldNumber = Field->m_FieldId; flag = 0; if( FieldNumber == REFERENCE ) { - Entry = FindLibPart( ( (EDA_SchComponentStruct*) Field->m_Parent )->m_ChipName.GetData(), + Entry = FindLibPart( ( (SCH_COMPONENT*) Field->m_Parent )->m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); if( Entry != NULL ) { @@ -699,13 +699,13 @@ void PartTextStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC ) frame->DrawPanel->ManageCurseur = NULL; frame->DrawPanel->ForceCloseManageCurseur = NULL; - EDA_SchComponentStruct* Cmp = (EDA_SchComponentStruct*) m_Parent; + SCH_COMPONENT* Cmp = (SCH_COMPONENT*) m_Parent; /* save old cmp in undo list */ if( g_ItemToUndoCopy && ( g_ItemToUndoCopy->Type() == Cmp->Type()) ) { - Cmp->SwapData( (EDA_SchComponentStruct*) g_ItemToUndoCopy ); + Cmp->SwapData( (SCH_COMPONENT*) g_ItemToUndoCopy ); ( (WinEDA_SchematicFrame*) frame )->SaveCopyInUndoList( Cmp, IS_CHANGED ); - Cmp->SwapData( (EDA_SchComponentStruct*) g_ItemToUndoCopy ); + Cmp->SwapData( (SCH_COMPONENT*) g_ItemToUndoCopy ); } FieldNumber = m_FieldId; @@ -730,7 +730,7 @@ void PartTextStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC ) /**************************************************************************************************/ -void WinEDA_SchematicFrame::EditComponentReference( EDA_SchComponentStruct* Cmp, wxDC* DC ) +void WinEDA_SchematicFrame::EditComponentReference( SCH_COMPONENT* Cmp, wxDC* DC ) /**************************************************************************************************/ /* Edit the component text reference*/ { @@ -747,7 +747,7 @@ void WinEDA_SchematicFrame::EditComponentReference( EDA_SchComponentStruct* Cmp, if( Entry->m_UnitCount > 1 ) flag = 1; - wxString ref = Cmp->GetRef(GetSheet()); + wxString ref = Cmp->GetRef(GetSheet()); Get_Message( _( "Reference" ), ref, this ); if( !ref.IsEmpty() ) // New text entered @@ -755,10 +755,10 @@ void WinEDA_SchematicFrame::EditComponentReference( EDA_SchComponentStruct* Cmp, /* save old cmp in undo list if not already in edit, or moving ... */ if( Cmp->m_Flags == 0 ) SaveCopyInUndoList( Cmp, IS_CHANGED ); - Cmp->SetRef(GetSheet(), ref); + Cmp->SetRef(GetSheet(), ref); DrawTextField( DrawPanel, DC, &Cmp->m_Field[REFERENCE], flag, g_XorMode ); - Cmp->SetRef(GetSheet(), ref ); + Cmp->SetRef(GetSheet(), ref ); DrawTextField( DrawPanel, DC, &Cmp->m_Field[REFERENCE], flag, Cmp->m_Flags ? g_XorMode : GR_DEFAULT_DRAWMODE ); GetScreen()->SetModify(); @@ -768,7 +768,7 @@ void WinEDA_SchematicFrame::EditComponentReference( EDA_SchComponentStruct* Cmp, /*****************************************************************************************/ -void WinEDA_SchematicFrame::EditComponentValue( EDA_SchComponentStruct* Cmp, wxDC* DC ) +void WinEDA_SchematicFrame::EditComponentValue( SCH_COMPONENT* Cmp, wxDC* DC ) /*****************************************************************************************/ /* Routine de changement du texte selectionne */ { @@ -789,7 +789,7 @@ void WinEDA_SchematicFrame::EditComponentValue( EDA_SchComponentStruct* Cmp, wxD msg = TextField->m_Text; if( Get_Message( _( "Value" ), msg, this ) ) - msg.Empty(); //allow the user to remove the value. + msg.Empty(); //allow the user to remove the value. if( !msg.IsEmpty() && !msg.IsEmpty()) { @@ -801,20 +801,20 @@ void WinEDA_SchematicFrame::EditComponentValue( EDA_SchComponentStruct* Cmp, wxD TextField->m_Text = msg; DrawTextField( DrawPanel, DC, &Cmp->m_Field[VALUE], flag, Cmp->m_Flags ? g_XorMode : GR_DEFAULT_DRAWMODE ); - GetScreen()->SetModify(); + GetScreen()->SetModify(); } Cmp->Display_Infos( this ); } /*****************************************************************************************/ -void WinEDA_SchematicFrame::EditComponentFootprint( EDA_SchComponentStruct* Cmp, wxDC* DC ) +void WinEDA_SchematicFrame::EditComponentFootprint( SCH_COMPONENT* Cmp, wxDC* DC ) /*****************************************************************************************/ { wxString msg; EDA_LibComponentStruct* Entry; int flag = 0; - bool wasEmpty = false; + bool wasEmpty = false; if( Cmp == NULL ) return; @@ -828,35 +828,35 @@ void WinEDA_SchematicFrame::EditComponentFootprint( EDA_SchComponentStruct* Cmp, PartTextStruct* TextField = &Cmp->m_Field[FOOTPRINT]; msg = TextField->m_Text; - if(msg.IsEmpty() ) - wasEmpty = true; + if(msg.IsEmpty() ) + wasEmpty = true; if( Get_Message( _( "Footprint" ), msg, this ) ) - msg.Empty(); //allow the user to remove the value. + msg.Empty(); //allow the user to remove the value. + + /* save old cmp in undo list if not already in edit, or moving ... */ + if( Cmp->m_Flags == 0 ) + SaveCopyInUndoList( Cmp, IS_CHANGED ); + DrawTextField( DrawPanel, DC, &Cmp->m_Field[FOOTPRINT], flag, g_XorMode ); + //move the field if it was new. + if(wasEmpty && !msg.IsEmpty()) + { + Cmp->m_Field[FOOTPRINT].m_Pos = Cmp->m_Field[REFERENCE].m_Pos; + //add offset here - ? suitable heuristic below? + Cmp->m_Field[FOOTPRINT].m_Pos.x += + (Cmp->m_Field[REFERENCE].m_Pos.x - Cmp->m_Pos.x) > 0 ? + (Cmp->m_Field[REFERENCE].m_Size.x) : (-1*Cmp->m_Field[REFERENCE].m_Size.x); + Cmp->m_Field[FOOTPRINT].m_Pos.y += + (Cmp->m_Field[REFERENCE].m_Pos.y - Cmp->m_Pos.y) > 0 ? + (Cmp->m_Field[REFERENCE].m_Size.y) : (-1*Cmp->m_Field[REFERENCE].m_Size.y); + + Cmp->m_Field[FOOTPRINT].m_Orient = Cmp->m_Field[REFERENCE].m_Orient; + } + TextField->m_Text = msg; + + DrawTextField( DrawPanel, DC, &Cmp->m_Field[FOOTPRINT], flag, + Cmp->m_Flags ? g_XorMode : GR_DEFAULT_DRAWMODE ); + GetScreen()->SetModify(); - /* save old cmp in undo list if not already in edit, or moving ... */ - if( Cmp->m_Flags == 0 ) - SaveCopyInUndoList( Cmp, IS_CHANGED ); - DrawTextField( DrawPanel, DC, &Cmp->m_Field[FOOTPRINT], flag, g_XorMode ); - //move the field if it was new. - if(wasEmpty && !msg.IsEmpty()) - { - Cmp->m_Field[FOOTPRINT].m_Pos = Cmp->m_Field[REFERENCE].m_Pos; - //add offset here - ? suitable heuristic below? - Cmp->m_Field[FOOTPRINT].m_Pos.x += - (Cmp->m_Field[REFERENCE].m_Pos.x - Cmp->m_Pos.x) > 0 ? - (Cmp->m_Field[REFERENCE].m_Size.x) : (-1*Cmp->m_Field[REFERENCE].m_Size.x); - Cmp->m_Field[FOOTPRINT].m_Pos.y += - (Cmp->m_Field[REFERENCE].m_Pos.y - Cmp->m_Pos.y) > 0 ? - (Cmp->m_Field[REFERENCE].m_Size.y) : (-1*Cmp->m_Field[REFERENCE].m_Size.y); - - Cmp->m_Field[FOOTPRINT].m_Orient = Cmp->m_Field[REFERENCE].m_Orient; - } - TextField->m_Text = msg; - - DrawTextField( DrawPanel, DC, &Cmp->m_Field[FOOTPRINT], flag, - Cmp->m_Flags ? g_XorMode : GR_DEFAULT_DRAWMODE ); - GetScreen()->SetModify(); - Cmp->Display_Infos( this ); } /*****************************************************************************/ @@ -903,7 +903,7 @@ void WinEDA_ComponentPropertiesFrame::SetInitCmp( wxCommandEvent& event ) m_Cmp->SetRotationMiroir( CMP_NORMAL ); - m_Parent->GetScreen()->SetModify(); + m_Parent->GetScreen()->SetModify(); RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, GR_DEFAULT_DRAWMODE ); EndModal( 1 ); diff --git a/eeschema/edit_label.cpp b/eeschema/edit_label.cpp index 9903bd2c3e..7925b2ef60 100644 --- a/eeschema/edit_label.cpp +++ b/eeschema/edit_label.cpp @@ -69,7 +69,7 @@ void WinEDA_LabelPropertiesFrame::TextPropertiesAccept( wxCommandEvent& event ) /********************************************************************************/ -void WinEDA_SchematicFrame::StartMoveTexte( DrawTextStruct* TextStruct, wxDC* DC ) +void WinEDA_SchematicFrame::StartMoveTexte( SCH_TEXT* TextStruct, wxDC* DC ) /********************************************************************************/ { if( TextStruct == NULL ) @@ -87,10 +87,10 @@ void WinEDA_SchematicFrame::StartMoveTexte( DrawTextStruct* TextStruct, wxDC* DC switch( TextStruct->Type() ) { - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_TEXT: ItemInitialPosition = TextStruct->m_Pos; OldSize = TextStruct->m_Size; OldOrient = TextStruct->m_Orient; @@ -101,13 +101,13 @@ void WinEDA_SchematicFrame::StartMoveTexte( DrawTextStruct* TextStruct, wxDC* DC } DrawPanel->CursorOff( DC ); - GetScreen()->m_Curseur = ItemInitialPosition; + GetScreen()->m_Curseur = ItemInitialPosition; DrawPanel->MouseToCursorSchema(); GetScreen()->SetModify(); DrawPanel->ManageCurseur = ShowWhileMoving; DrawPanel->ForceCloseManageCurseur = ExitMoveTexte; - GetScreen()->SetCurItem( TextStruct ); + GetScreen()->SetCurItem( TextStruct ); DrawPanel->ManageCurseur( DrawPanel, DC, TRUE ); DrawPanel->CursorOn( DC ); @@ -115,7 +115,7 @@ void WinEDA_SchematicFrame::StartMoveTexte( DrawTextStruct* TextStruct, wxDC* DC /*************************************************************************/ -void WinEDA_SchematicFrame::EditSchematicText( DrawTextStruct* TextStruct, +void WinEDA_SchematicFrame::EditSchematicText( SCH_TEXT* TextStruct, wxDC* DC ) /*************************************************************************/ @@ -140,11 +140,11 @@ void WinEDA_SchematicFrame::EditSchematicText( DrawTextStruct* TextStruct, /***********************************************************************************/ -void WinEDA_SchematicFrame::ChangeTextOrient( DrawTextStruct* TextStruct, wxDC* DC ) +void WinEDA_SchematicFrame::ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC ) /***********************************************************************************/ { if( TextStruct == NULL ) - TextStruct = (DrawTextStruct*) PickStruct( GetScreen()->m_Curseur, + TextStruct = (SCH_TEXT*) PickStruct( GetScreen()->m_Curseur, GetScreen(), TEXTITEM | LABELITEM ); if( TextStruct == NULL ) return; @@ -160,10 +160,10 @@ void WinEDA_SchematicFrame::ChangeTextOrient( DrawTextStruct* TextStruct, wxDC* /* Rotation du texte */ switch( TextStruct->Type() ) { - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_TEXT: TextStruct->m_Orient++; TextStruct->m_Orient &= 3; break; @@ -187,28 +187,28 @@ EDA_BaseStruct* WinEDA_SchematicFrame::CreateNewText( wxDC* DC, int type ) /* Routine to create new text struct (GraphicText, label or Glabel). */ { - DrawTextStruct* NewText = NULL; + SCH_TEXT* NewText = NULL; g_ItemToRepeat = NULL; switch( type ) { case LAYER_NOTES: - NewText = new DrawTextStruct( GetScreen()->m_Curseur ); + NewText = new SCH_TEXT( GetScreen()->m_Curseur ); break; case LAYER_LOCLABEL: - NewText = new DrawLabelStruct( GetScreen()->m_Curseur ); + NewText = new SCH_LABEL( GetScreen()->m_Curseur ); break; - case LAYER_HIERLABEL: - NewText = new DrawHierLabelStruct(GetScreen()->m_Curseur ); + case LAYER_HIERLABEL: + NewText = new SCH_HIERLABEL(GetScreen()->m_Curseur ); NewText->m_Shape = s_DefaultShapeGLabel; NewText->m_Orient = s_DefaultOrientGLabel; break; - + case LAYER_GLOBLABEL: - NewText = new DrawGlobalLabelStruct(GetScreen()->m_Curseur ); + NewText = new SCH_GLOBALLABEL(GetScreen()->m_Curseur ); NewText->m_Shape = s_DefaultShapeGLabel; NewText->m_Orient = s_DefaultOrientGLabel; break; @@ -226,11 +226,11 @@ EDA_BaseStruct* WinEDA_SchematicFrame::CreateNewText( wxDC* DC, int type ) if( NewText->m_Text.IsEmpty() ) { - SAFE_DELETE( NewText ); + SAFE_DELETE( NewText ); return NULL; } - if( type == LAYER_GLOBLABEL || type == LAYER_HIERLABEL) + if( type == LAYER_GLOBLABEL || type == LAYER_HIERLABEL) { s_DefaultShapeGLabel = NewText->m_Shape; s_DefaultOrientGLabel = NewText->m_Orient; @@ -240,7 +240,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::CreateNewText( wxDC* DC, int type ) DrawPanel->ManageCurseur = ShowWhileMoving; DrawPanel->ForceCloseManageCurseur = ExitMoveTexte; - GetScreen()->SetCurItem( NewText ); + GetScreen()->SetCurItem( NewText ); return NewText; } @@ -260,11 +260,11 @@ static void ShowWhileMoving( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ) /* redraw the text */ switch( TextStruct->Type() ) { - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: - ( (DrawTextStruct*) TextStruct )->m_Pos = panel->GetScreen()->m_Curseur; + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_TEXT: + ( (SCH_TEXT*) TextStruct )->m_Pos = panel->GetScreen()->m_Curseur; break; default: @@ -297,19 +297,19 @@ static void ExitMoveTexte( WinEDA_DrawPanel* Panel, wxDC* DC ) if( Struct->m_Flags & IS_NEW ) { - SAFE_DELETE( Struct ); + SAFE_DELETE( Struct ); screen->SetCurItem( NULL ); } else /* this was a move command on an "old" text: restore its old settings. */ { switch( Struct->Type() ) { - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_TEXT: { - DrawTextStruct* Text = (DrawTextStruct*) Struct; + SCH_TEXT* Text = (SCH_TEXT*) Struct; Text->m_Pos = ItemInitialPosition; Text->m_Size = OldSize; Text->m_Orient = OldOrient; @@ -327,7 +327,7 @@ static void ExitMoveTexte( WinEDA_DrawPanel* Panel, wxDC* DC ) /*****************************************************************************/ -void WinEDA_SchematicFrame::ConvertTextType( DrawTextStruct* Text, +void WinEDA_SchematicFrame::ConvertTextType( SCH_TEXT* Text, wxDC* DC, int newtype ) /*****************************************************************************/ @@ -339,22 +339,22 @@ void WinEDA_SchematicFrame::ConvertTextType( DrawTextStruct* Text, if( Text == NULL ) return; - DrawTextStruct* newtext; + SCH_TEXT* newtext; switch( newtype ) { - case DRAW_LABEL_STRUCT_TYPE: - newtext = new DrawLabelStruct( Text->m_Pos, Text->m_Text ); + case TYPE_SCH_LABEL: + newtext = new SCH_LABEL( Text->m_Pos, Text->m_Text ); break; - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - newtext = new DrawGlobalLabelStruct(Text->m_Pos, Text->m_Text ); + case TYPE_SCH_GLOBALLABEL: + newtext = new SCH_GLOBALLABEL(Text->m_Pos, Text->m_Text ); break; - case DRAW_HIER_LABEL_STRUCT_TYPE: - newtext = new DrawHierLabelStruct(Text->m_Pos, Text->m_Text ); - break; - case DRAW_TEXT_STRUCT_TYPE: - newtext = new DrawTextStruct( Text->m_Pos, Text->m_Text ); + case TYPE_SCH_HIERLABEL: + newtext = new SCH_HIERLABEL(Text->m_Pos, Text->m_Text ); + break; + case TYPE_SCH_TEXT: + newtext = new SCH_TEXT( Text->m_Pos, Text->m_Text ); break; default: @@ -395,13 +395,13 @@ void WinEDA_SchematicFrame::ConvertTextType( DrawTextStruct* Text, { Text->m_Flags = 0; DeleteStruct( DrawPanel, DC, Text ); // old text is really saved in undo list - GetScreen()->SetCurItem( NULL ); + GetScreen()->SetCurItem( NULL ); g_ItemToRepeat = NULL; } GetScreen()->SetCurItem( NULL ); - SAFE_DELETE( g_ItemToUndoCopy ); + SAFE_DELETE( g_ItemToUndoCopy ); DrawPanel->CursorOff( DC ); // Erase schematic cursor @@ -415,15 +415,15 @@ void WinEDA_SchematicFrame::ConvertTextType( DrawTextStruct* Text, SaveCopyInUndoList( newtext, IS_NEW ); } else - { - GetScreen()->SetCurItem( newtext ); + { + GetScreen()->SetCurItem( newtext ); newtext->m_Flags = IS_NEW; - } + } if( (flags & IS_MOVED) != 0 ) { - GetScreen()->SetCurItem( newtext ); + GetScreen()->SetCurItem( newtext ); StartMoveTexte( newtext, DC ); } diff --git a/eeschema/eecreate.cpp b/eeschema/eecreate.cpp index 788265de24..eae1355bd1 100644 --- a/eeschema/eecreate.cpp +++ b/eeschema/eecreate.cpp @@ -376,9 +376,9 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC ) STRUCT->m_Pos.y += g_RepeatStep.y; oy = STRUCT->m_Pos.y; break; - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_TEXT: #undef STRUCT - #define STRUCT ( (DrawTextStruct*) g_ItemToRepeat ) + #define STRUCT ( (SCH_TEXT*) g_ItemToRepeat ) g_ItemToRepeat = STRUCT->GenCopy(); STRUCT->m_Pos.x += g_RepeatStep.x; ox = STRUCT->m_Pos.x; STRUCT->m_Pos.y += g_RepeatStep.y; oy = STRUCT->m_Pos.y; @@ -389,11 +389,11 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC ) break; - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: #undef STRUCT - #define STRUCT ( (DrawLabelStruct*) g_ItemToRepeat ) + #define STRUCT ( (SCH_LABEL*) g_ItemToRepeat ) g_ItemToRepeat = STRUCT->GenCopy(); STRUCT->m_Pos.x += g_RepeatStep.x; ox = STRUCT->m_Pos.x; STRUCT->m_Pos.y += g_RepeatStep.y; oy = STRUCT->m_Pos.y; @@ -474,7 +474,7 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer ) * - une jonction * - ou une pin * - ou une extr�mit� unique de fil - * + * * - type BUS, si il y a * - ou une extr�mit� unique de BUS */ @@ -528,9 +528,9 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer ) return TRUE; item = PickStruct( screen, LABELITEM ); - if( item && (item->Type() != DRAW_TEXT_STRUCT_TYPE) - && ( ( (DrawGlobalLabelStruct*) item )->m_Pos.x == pos.x ) - && ( ( (DrawGlobalLabelStruct*) item )->m_Pos.y == pos.y ) ) + if( item && (item->Type() != TYPE_SCH_TEXT) + && ( ( (SCH_GLOBALLABEL*) item )->m_Pos.x == pos.x ) + && ( ( (SCH_GLOBALLABEL*) item )->m_Pos.y == pos.y ) ) return TRUE; pinsheet = LocateAnyPinSheet( pos, screen->EEDrawList ); diff --git a/eeschema/eelibs_draw_components.cpp b/eeschema/eelibs_draw_components.cpp index 944a579705..b2a2c02be6 100644 --- a/eeschema/eelibs_draw_components.cpp +++ b/eeschema/eelibs_draw_components.cpp @@ -40,7 +40,7 @@ static int s_ItemSelectColor = BROWN; static EDA_LibComponentStruct* DummyCmp; static int* Buf_Poly_Drawings, Buf_Poly_Size; // Used fo polyline drawings static void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC, - EDA_SchComponentStruct* Component, + SCH_COMPONENT* Component, EDA_LibComponentStruct* Entry, const wxPoint& Pos, int TransMat[2][2], @@ -82,9 +82,9 @@ void DrawLibEntry( WinEDA_DrawPanel* panel, wxDC* DC, * posX, posY = position du composant * DrawMode = GrOR .. * Color = 0 : dessin en vraies couleurs, sinon couleur = Color - * + * * Une croix symbolise le point d'accrochage (ref position) du composant - * + * * Le composant est toujours trace avec orientation 0 */ { @@ -204,7 +204,7 @@ void DrawLibEntry( WinEDA_DrawPanel* panel, wxDC* DC, * Routine to draw the given part at given position, transformed/mirror as * * specified, and in the given drawing mode. Only this one is visible... * *****************************************************************************/ -void EDA_SchComponentStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, +void SCH_COMPONENT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int DrawMode, int Color ) { EDA_LibComponentStruct* Entry; @@ -262,7 +262,7 @@ void DrawTextField( WinEDA_DrawPanel* panel, wxDC* DC, { int orient, color; wxPoint pos; /* Position des textes */ - EDA_SchComponentStruct* DrawLibItem = (EDA_SchComponentStruct*) Field->m_Parent; + SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) Field->m_Parent; int hjustify, vjustify; int LineWidth = MAX( Field->m_Width, g_DrawMinimunLineWidth ); @@ -357,30 +357,30 @@ EDA_LibComponentStruct* FindLibPart( const wxChar* Name, const wxString& LibName PQCompFunc( (PQCompFuncType) LibraryEntryCompare ); - Entry = NULL; + Entry = NULL; FindLibName.Empty(); - + while( Lib ) { if( !LibName.IsEmpty() ) { if( Lib->m_Name != LibName ) { - Lib = Lib->m_Pnext; + Lib = Lib->m_Pnext; continue; } } - + if( Lib == NULL ) break; - + Entry = (EDA_LibComponentStruct*) PQFind( Lib->m_Entries, &DummyEntry ); if( Entry != NULL ) { FindLibName = Lib->m_Name; break; } - + Lib = Lib->m_Pnext; } @@ -404,7 +404,7 @@ EDA_LibComponentStruct* FindLibPart( const wxChar* Name, const wxString& LibName *****************************************************************************/ /* DrawMode = GrXOR, GrOR ..*/ void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC, - EDA_SchComponentStruct* Component, + SCH_COMPONENT* Component, EDA_LibComponentStruct* Entry, const wxPoint& Pos, int TransMat[2][2], @@ -431,13 +431,13 @@ void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC, /* Elimination des elements non relatifs a l'unite */ if( Multi && DEntry->m_Unit && (DEntry->m_Unit != Multi) ) continue; - + if( convert && DEntry->m_Convert && (DEntry->m_Convert != convert) ) continue; if( DEntry->m_Flags & IS_MOVED ) continue; // Element en deplacement non trace - + SetHightColor = (DEntry->m_Selected & IS_SELECTED) ? HIGHT_LIGHT_FLAG : 0; LineWidth = MAX( DEntry->m_Width, g_DrawMinimunLineWidth ); @@ -502,12 +502,12 @@ void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC, { LibDrawCircle* Circle = (LibDrawCircle*) DEntry; CharColor = GETCOLOR( LAYER_DEVICE ); - + x1 = Pos.x + TransMat[0][0] * Circle->m_Pos.x + TransMat[0][1] * Circle->m_Pos.y; y1 = Pos.y + TransMat[1][0] * Circle->m_Pos.x + TransMat[1][1] * Circle->m_Pos.y; - + fill_option = Circle->m_Fill & (~g_PrintFillMask); if( Color < 0 ) { @@ -536,12 +536,12 @@ void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC, /* The text orientation may need to be flipped if the * transformation matrix cuases xy axes to be flipped. */ t1 = (TransMat[0][0] != 0) ^ (Text->m_Horiz != 0); - + x1 = Pos.x + TransMat[0][0] * Text->m_Pos.x + TransMat[0][1] * Text->m_Pos.y; y1 = Pos.y + TransMat[1][0] * Text->m_Pos.x + TransMat[1][1] * Text->m_Pos.y; - + DrawGraphicText( panel, DC, wxPoint( x1, y1 ), CharColor, Text->m_Text, t1 ? TEXT_ORIENT_HORIZ : TEXT_ORIENT_VERT, Text->m_Size, @@ -591,7 +591,7 @@ void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC, &&*/ !g_ShowAllPins ) break; } - + /* Calcul de l'orientation reelle de la Pin */ orient = Pin->ReturnPinDrawOrient( TransMat ); @@ -896,7 +896,7 @@ bool MapAngles( int* Angle1, int* Angle2, int TransMat[2][2] ) *****************************************************************************/ void DrawingLibInGhost( WinEDA_DrawPanel* panel, wxDC* DC, EDA_LibComponentStruct* LibEntry, - EDA_SchComponentStruct* DrawLibItem, int PartX, int PartY, + SCH_COMPONENT* DrawLibItem, int PartX, int PartY, int multi, int convert, int Color, bool DrawPinText ) { int DrawMode = g_XorMode; diff --git a/eeschema/eeredraw.cpp b/eeschema/eeredraw.cpp index 31eb3feaa2..c98bd6996f 100644 --- a/eeschema/eeredraw.cpp +++ b/eeschema/eeredraw.cpp @@ -459,22 +459,22 @@ void DrawStructsInGhost( WinEDA_DrawPanel* panel, wxDC* DC, break; } - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_TEXT: { - DrawTextStruct* Struct; - Struct = (DrawTextStruct*) DrawStruct; + SCH_TEXT* Struct; + Struct = (SCH_TEXT*) DrawStruct; Struct->m_Pos.x += dx; Struct->m_Pos.y += dy; Struct->Draw( panel, DC, wxPoint( 0, 0 ), DrawMode, g_GhostColor ); Struct->m_Pos.x -= dx; Struct->m_Pos.y -= dy; break; } - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: { - DrawLabelStruct* Struct; - Struct = (DrawLabelStruct*) DrawStruct; + SCH_LABEL* Struct; + Struct = (SCH_LABEL*) DrawStruct; Struct->m_Pos.x += dx; Struct->m_Pos.y += dy; Struct->Draw( panel, DC, wxPoint( 0, 0 ), DrawMode, g_GhostColor ); Struct->m_Pos.x -= dx; Struct->m_Pos.y -= dy; @@ -491,11 +491,11 @@ void DrawStructsInGhost( WinEDA_DrawPanel* panel, wxDC* DC, break; } - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: { EDA_LibComponentStruct* LibEntry; - EDA_SchComponentStruct* Struct; - Struct = (EDA_SchComponentStruct*) DrawStruct; + SCH_COMPONENT* Struct; + Struct = (SCH_COMPONENT*) DrawStruct; LibEntry = FindLibPart( Struct->m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); if( LibEntry == NULL ) break; diff --git a/eeschema/files-io.cpp b/eeschema/files-io.cpp index abb2aa8194..6fa41d5ce4 100644 --- a/eeschema/files-io.cpp +++ b/eeschema/files-io.cpp @@ -52,11 +52,11 @@ void WinEDA_SchematicFrame::Save_File( wxCommandEvent& event ) //bool WinEDA_SchematicFrame::LoadOneSheet(DrawSheetStruct* sheet, const wxString& filename ) /******************************************************************************************/ //{ -// return FALSE; - //when is this used? and why? - /* - //this must be called with a non-null pointer screen pointer, clearly. - //also note that this is for reading in a *root* file +// return FALSE; + //when is this used? and why? + /* + //this must be called with a non-null pointer screen pointer, clearly. + //also note that this is for reading in a *root* file wxString FullFileName = filename; if( FullFileName.IsEmpty() ) @@ -65,7 +65,7 @@ void WinEDA_SchematicFrame::Save_File( wxCommandEvent& event ) mask = wxT( "*" ) + g_SchExtBuffer; FullFileName = EDA_FileSelector( _( "Schematic files:" ), wxEmptyString, //default path - sheet->m_AssociatedScreen->m_FileName,// default filename + sheet->m_AssociatedScreen->m_FileName,// default filename g_SchExtBuffer, // extension par defaut mask, // Masque d'affichage this, @@ -77,180 +77,180 @@ void WinEDA_SchematicFrame::Save_File( wxCommandEvent& event ) } ClearProjectDrawList( screen, TRUE ); - printf("in LoadOneScreen setting screen filename: %s \n", (const char*) FullFileName.mb_str() ); + printf("in LoadOneScreen setting screen filename: %s \n", (const char*) FullFileName.mb_str() ); screen->m_FileName = FullFileName; - LoadDrawSheet( DrawSheetStruct * sheet, filename); + LoadDrawSheet( DrawSheetStruct * sheet, filename); screen->SetModify(); if( GetScreen() == screen ) Refresh( TRUE ); return TRUE; - */ + */ //} /************************************************************************************/ int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsNew ) /************************************************************************************/ { - /* - * Load an entire project - * ( schematic root file and its subhierarchies, the configuration and the libs - * which are not already loaded) - */ - SCH_SCREEN* screen; - wxString FullFileName, msg; - bool LibCacheExist = FALSE; + /* + * Load an entire project + * ( schematic root file and its subhierarchies, the configuration and the libs + * which are not already loaded) + */ + SCH_SCREEN* screen; + wxString FullFileName, msg; + bool LibCacheExist = FALSE; - EDA_ScreenList ScreenList; + EDA_ScreenList ScreenList; - for( screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() ) - { - if( screen->IsModify() ) - break; - } + for( screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() ) + { + if( screen->IsModify() ) + break; + } - if( screen ) - { - if( !IsOK( this, _( "Clear Schematic Hierarchy (modified!)?" ) ) ) - return FALSE; - if( g_RootSheet->m_AssociatedScreen->m_FileName != g_DefaultSchematicFileName ) - SetLastProject( g_RootSheet->m_AssociatedScreen->m_FileName ); - } + if( screen ) + { + if( !IsOK( this, _( "Clear Schematic Hierarchy (modified!)?" ) ) ) + return FALSE; + if( g_RootSheet->m_AssociatedScreen->m_FileName != g_DefaultSchematicFileName ) + SetLastProject( g_RootSheet->m_AssociatedScreen->m_FileName ); + } - FullFileName = FileName; - if( ( FullFileName.IsEmpty() ) && !IsNew ) - { - wxString mask = wxT( "*" ) + g_SchExtBuffer; - FullFileName = EDA_FileSelector( _( "Schematic files:" ), - wxEmptyString, /* Chemin par defaut */ - wxEmptyString, /* nom fichier par defaut */ - g_SchExtBuffer, /* extension par defaut */ - mask, /* Masque d'affichage */ - this, - wxFD_OPEN, - TRUE - ); - if( FullFileName.IsEmpty() ) - return FALSE; - } - if(g_RootSheet){ - SAFE_DELETE(g_RootSheet); - } - CreateScreens(); - screen = (SCH_SCREEN*)GetScreen(); - - wxSetWorkingDirectory( wxPathOnly( FullFileName ) ); - GetScreen()->m_FileName = FullFileName; - g_RootSheet->SetFileName(FullFileName); - Affiche_Message( wxEmptyString ); - MsgPanel->EraseMsgBox(); + FullFileName = FileName; + if( ( FullFileName.IsEmpty() ) && !IsNew ) + { + wxString mask = wxT( "*" ) + g_SchExtBuffer; + FullFileName = EDA_FileSelector( _( "Schematic files:" ), + wxEmptyString, /* Chemin par defaut */ + wxEmptyString, /* nom fichier par defaut */ + g_SchExtBuffer, /* extension par defaut */ + mask, /* Masque d'affichage */ + this, + wxFD_OPEN, + TRUE + ); + if( FullFileName.IsEmpty() ) + return FALSE; + } + if(g_RootSheet){ + SAFE_DELETE(g_RootSheet); + } + CreateScreens(); + screen = (SCH_SCREEN*)GetScreen(); - memset( &g_EESchemaVar, 0, sizeof(g_EESchemaVar) ); + wxSetWorkingDirectory( wxPathOnly( FullFileName ) ); + GetScreen()->m_FileName = FullFileName; + g_RootSheet->SetFileName(FullFileName); + Affiche_Message( wxEmptyString ); + MsgPanel->EraseMsgBox(); - GetScreen()->ClrModify(); - //m_CurrentSheet->m_AssociatedScreen->Pnext = NULL; should be by default + memset( &g_EESchemaVar, 0, sizeof(g_EESchemaVar) ); - if( IsNew ) - { - screen->m_CurrentSheetDesc = &g_Sheet_A4; - screen->SetZoom( 32 ); - screen->m_ScreenNumber = screen->m_NumberOfScreen = 1; - screen->m_Title = wxT( "noname.sch" ); - GetScreen()->m_FileName = screen->m_Title; - screen->m_Company.Empty(); - screen->m_Commentaire1.Empty(); - screen->m_Commentaire2.Empty(); - screen->m_Commentaire3.Empty(); - screen->m_Commentaire4.Empty(); - Read_Config( wxEmptyString, TRUE ); - Zoom_Automatique( TRUE ); - ReDrawPanel(); - return 1; - } + GetScreen()->ClrModify(); + //m_CurrentSheet->m_AssociatedScreen->Pnext = NULL; should be by default + + if( IsNew ) + { + screen->m_CurrentSheetDesc = &g_Sheet_A4; + screen->SetZoom( 32 ); + screen->m_ScreenNumber = screen->m_NumberOfScreen = 1; + screen->m_Title = wxT( "noname.sch" ); + GetScreen()->m_FileName = screen->m_Title; + screen->m_Company.Empty(); + screen->m_Commentaire1.Empty(); + screen->m_Commentaire2.Empty(); + screen->m_Commentaire3.Empty(); + screen->m_Commentaire4.Empty(); + Read_Config( wxEmptyString, TRUE ); + Zoom_Automatique( TRUE ); + ReDrawPanel(); + return 1; + } // Rechargement de la configuration: - msg = _( "Ready\nWorking dir: \n" ) + wxGetCwd(); - PrintMsg( msg ); + msg = _( "Ready\nWorking dir: \n" ) + wxGetCwd(); + PrintMsg( msg ); - Read_Config( wxEmptyString, FALSE ); + Read_Config( wxEmptyString, FALSE ); // Delete old caches. - LibraryStruct* nextlib, * lib = g_LibraryList; - for( ; lib != NULL; lib = nextlib ) - { - nextlib = lib->m_Pnext; - if( lib->m_IsLibCache ) - FreeCmpLibrary( this, lib->m_Name ); - } + LibraryStruct* nextlib, * lib = g_LibraryList; + for( ; lib != NULL; lib = nextlib ) + { + nextlib = lib->m_Pnext; + if( lib->m_IsLibCache ) + FreeCmpLibrary( this, lib->m_Name ); + } - if( IsNew ) - { - ReDrawPanel(); - return 1; - } + if( IsNew ) + { + ReDrawPanel(); + return 1; + } // Loading the project library cache - wxString FullLibName; - wxString shortfilename; - wxSplitPath( g_RootSheet->m_AssociatedScreen->m_FileName, NULL, &shortfilename, NULL ); - FullLibName << wxT( "." ) << STRING_DIR_SEP << shortfilename << wxT( ".cache" ) << - g_LibExtBuffer; - if( wxFileExists( FullLibName ) ) - { - wxString libname; - libname = FullLibName; - ChangeFileNameExt( libname, wxEmptyString ); - msg = wxT( "Load " ) + FullLibName; - LibraryStruct* LibCache = LoadLibraryName( this, FullLibName, libname ); - if( LibCache ) - { - LibCache->m_IsLibCache = TRUE; - msg += wxT( " OK" ); - } - else - msg += wxT( " ->Error" ); - PrintMsg( msg ); - LibCacheExist = TRUE; - } + wxString FullLibName; + wxString shortfilename; + wxSplitPath( g_RootSheet->m_AssociatedScreen->m_FileName, NULL, &shortfilename, NULL ); + FullLibName << wxT( "." ) << STRING_DIR_SEP << shortfilename << wxT( ".cache" ) << + g_LibExtBuffer; + if( wxFileExists( FullLibName ) ) + { + wxString libname; + libname = FullLibName; + ChangeFileNameExt( libname, wxEmptyString ); + msg = wxT( "Load " ) + FullLibName; + LibraryStruct* LibCache = LoadLibraryName( this, FullLibName, libname ); + if( LibCache ) + { + LibCache->m_IsLibCache = TRUE; + msg += wxT( " OK" ); + } + else + msg += wxT( " ->Error" ); + PrintMsg( msg ); + LibCacheExist = TRUE; + } - if( !wxFileExists( g_RootSheet->m_AssociatedScreen->m_FileName ) && !LibCacheExist ) // Nouveau projet prpbablement - { - msg.Printf( _( "File %s not found (new project ?)" ), - g_RootSheet->m_AssociatedScreen->m_FileName.GetData() ); - DisplayInfo( this, msg, 20 ); - return -1; - } + if( !wxFileExists( g_RootSheet->m_AssociatedScreen->m_FileName ) && !LibCacheExist ) // Nouveau projet prpbablement + { + msg.Printf( _( "File %s not found (new project ?)" ), + g_RootSheet->m_AssociatedScreen->m_FileName.GetData() ); + DisplayInfo( this, msg, 20 ); + return -1; + } - //load the project. - SAFE_DELETE(g_RootSheet->m_AssociatedScreen); - bool diag = g_RootSheet->Load(this); + //load the project. + SAFE_DELETE(g_RootSheet->m_AssociatedScreen); + bool diag = g_RootSheet->Load(this); - /* Reaffichage ecran de base (ROOT) si necessaire */ - ActiveScreen = GetScreen(); - Zoom_Automatique( FALSE ); - DrawPanel->Refresh( TRUE ); - return diag; + /* Reaffichage ecran de base (ROOT) si necessaire */ + ActiveScreen = GetScreen(); + Zoom_Automatique( FALSE ); + DrawPanel->Refresh( TRUE ); + return diag; } /**********************************************************/ SCH_SCREEN * WinEDA_SchematicFrame::CreateNewScreen( - SCH_SCREEN * OldScreen, int TimeStamp) + SCH_SCREEN * OldScreen, int TimeStamp) /**********************************************************/ /* Routine de creation ( par allocation memoire ) d'un nouvel ecran - cet ecran est en chainage arriere avec OldScreen - la valeur TimeStamp est attribuee au parametre NewScreen->TimeStamp + cet ecran est en chainage arriere avec OldScreen + la valeur TimeStamp est attribuee au parametre NewScreen->TimeStamp */ { - SCH_SCREEN * NewScreen; + SCH_SCREEN * NewScreen; - NewScreen = new SCH_SCREEN(SCHEMATIC_FRAME); + NewScreen = new SCH_SCREEN(SCHEMATIC_FRAME); - NewScreen->SetRefreshReq(); - if(OldScreen) NewScreen->m_Company = OldScreen->m_Company; - NewScreen->m_TimeStamp = TimeStamp; + NewScreen->SetRefreshReq(); + if(OldScreen) NewScreen->m_Company = OldScreen->m_Company; + NewScreen->m_TimeStamp = TimeStamp; - NewScreen->Pback = OldScreen; + NewScreen->Pback = OldScreen; - return(NewScreen); + return(NewScreen); } /****************************************************/ @@ -267,16 +267,16 @@ void WinEDA_SchematicFrame::SaveProject( ) EDA_ScreenList ScreenList; for( screen = ScreenList.GetFirst(); screen != NULL; - screen = ScreenList.GetNext() ) + screen = ScreenList.GetNext() ) { - printf("SaveEEFile, %s\n", CONV_TO_UTF8(screen->m_FileName) ); + printf("SaveEEFile, %s\n", CONV_TO_UTF8(screen->m_FileName) ); SaveEEFile( screen, FILE_SAVE_AS ); } /* Creation du fichier d'archivage composants en repertoire courant */ LibArchiveFileName = MakeFileName( wxEmptyString, GetScreen()->m_FileName, wxEmptyString ); ChangeFileNameExt( LibArchiveFileName, wxEmptyString ); - + /* mise a jour extension */ LibArchiveFileName += wxT( ".cache" ) + g_LibExtBuffer; LibArchive( this, LibArchiveFileName ); @@ -290,20 +290,20 @@ int CountCmpNumber() /* Routine retournant le nombre de composants dans le schema, * powers non comprises */ { - return g_RootSheet->ComponentCount(); - /* + return g_RootSheet->ComponentCount(); + /* BASE_SCREEN* Window; EDA_BaseStruct* Phead; int Nb = 0; - - + + Window = ScreenSch; while( Window ) { for( Phead = Window->EEDrawList; Phead != NULL; Phead = Phead->Pnext ) { - if( Phead->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( Phead->Type() == TYPE_SCH_COMPONENT ) { DrawPartStruct* Cmp = (DrawPartStruct*) Phead; if( Cmp->m_Field[VALUE].m_Text.GetChar( 0 ) != '#' ) @@ -315,5 +315,5 @@ int CountCmpNumber() } return Nb; - */ + */ } diff --git a/eeschema/find.cpp b/eeschema/find.cpp index f2bc0bb17a..c35c17ef95 100644 --- a/eeschema/find.cpp +++ b/eeschema/find.cpp @@ -72,7 +72,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindComponentAndItem( { DrawSheetPath* sheet, * SheetWithComponentFound = NULL; EDA_BaseStruct* DrawList = NULL; - EDA_SchComponentStruct* Component = NULL; + SCH_COMPONENT* Component = NULL; wxSize DrawAreaSize = DrawPanel->GetClientSize(); wxPoint pos, curpos; bool DoCenterAndRedraw = FALSE; @@ -91,10 +91,10 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindComponentAndItem( DrawList = sheet->LastDrawList(); for( ; (DrawList != NULL) && (NotFound == true); DrawList = DrawList->Pnext ) { - if( DrawList->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( DrawList->Type() == TYPE_SCH_COMPONENT ) { - EDA_SchComponentStruct* pSch; - pSch = (EDA_SchComponentStruct*) DrawList; + SCH_COMPONENT* pSch; + pSch = (SCH_COMPONENT*) DrawList; if( component_reference.CmpNoCase( pSch->GetRef(sheet) ) == 0 ) { Component = pSch; @@ -465,9 +465,9 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindSchematicItem( { switch( DrawList->Type() ) { - case DRAW_LIB_ITEM_STRUCT_TYPE: - EDA_SchComponentStruct * pSch; - pSch = (EDA_SchComponentStruct*) DrawList; + case TYPE_SCH_COMPONENT: + SCH_COMPONENT * pSch; + pSch = (SCH_COMPONENT*) DrawList; if( WildCompareString( WildText, pSch->GetRef(Sheet), FALSE ) ) { NotFound = FALSE; @@ -481,12 +481,12 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindSchematicItem( } break; - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: - DrawTextStruct * pDraw; - pDraw = (DrawTextStruct*) DrawList; + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_TEXT: + SCH_TEXT * pDraw; + pDraw = (SCH_TEXT*) DrawList; if( WildCompareString( WildText, pDraw->m_Text, FALSE ) ) { NotFound = FALSE; @@ -551,12 +551,12 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindSchematicItem( DoCenterAndRedraw = TRUE; } - /* the struct is a DRAW_LIB_ITEM_STRUCT_TYPE type, + /* the struct is a TYPE_SCH_COMPONENT type, * coordinates must be computed according to its orientation matrix */ - if( Struct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( Struct->Type() == TYPE_SCH_COMPONENT ) { - EDA_SchComponentStruct* pSch = (EDA_SchComponentStruct*) Struct; + SCH_COMPONENT* pSch = (SCH_COMPONENT*) Struct; pos.x -= pSch->m_Pos.x; pos.y -= pSch->m_Pos.y; diff --git a/eeschema/getpart.cpp b/eeschema/getpart.cpp index 218dd55f6b..78fa4fb65e 100644 --- a/eeschema/getpart.cpp +++ b/eeschema/getpart.cpp @@ -59,7 +59,7 @@ wxString SelectFromLibBrowser( WinEDA_DrawFrame* parent ) /**************************************************************************/ -EDA_SchComponentStruct* WinEDA_SchematicFrame::Load_Component( wxDC* DC, +SCH_COMPONENT* WinEDA_SchematicFrame::Load_Component( wxDC* DC, const wxString& libname, wxArrayString& HistoryList, bool UseLibBrowser ) @@ -73,7 +73,7 @@ EDA_SchComponentStruct* WinEDA_SchematicFrame::Load_Component( wxDC* DC, int ii, CmpCount = 0; LibDrawField* Field; EDA_LibComponentStruct* Entry = NULL; - EDA_SchComponentStruct* DrawLibItem = NULL; + SCH_COMPONENT* DrawLibItem = NULL; LibraryStruct* Library = NULL; wxString Name, keys, msg; bool AllowWildSeach = TRUE; @@ -180,7 +180,7 @@ EDA_SchComponentStruct* WinEDA_SchematicFrame::Load_Component( wxDC* DC, DrawPanel->ManageCurseur = ShowWhileMoving; DrawPanel->ForceCloseManageCurseur = ExitPlaceCmp; - DrawLibItem = new EDA_SchComponentStruct( GetScreen()->m_Curseur ); + DrawLibItem = new SCH_COMPONENT( GetScreen()->m_Curseur ); DrawLibItem->m_Multi = 1;/* Selection de l'unite 1 dans le boitier */ DrawLibItem->m_Convert = 1; DrawLibItem->m_ChipName = Name; @@ -257,7 +257,7 @@ static void ShowWhileMoving( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ) { wxPoint move_vector; - EDA_SchComponentStruct* DrawLibItem = (EDA_SchComponentStruct*) + SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) panel->m_Parent->GetScreen()->GetCurItem(); /* Effacement du composant */ @@ -276,7 +276,7 @@ static void ShowWhileMoving( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ) /**************************************************************************/ void WinEDA_SchematicFrame::CmpRotationMiroir( - EDA_SchComponentStruct* DrawComponent, wxDC* DC, int type_rotate ) + SCH_COMPONENT* DrawComponent, wxDC* DC, int type_rotate ) /**************************************************************************/ /* Routine permettant les rotations et les miroirs d'un composant @@ -293,7 +293,9 @@ void WinEDA_SchematicFrame::CmpRotationMiroir( if( DrawComponent->m_Flags ) DrawStructsInGhost( DrawPanel, DC, DrawComponent, 0, 0 ); else - DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode ); + { + DrawPanel->PostDirtyRect( DrawComponent->GetBoundingBox()); + } } DrawComponent->SetRotationMiroir( type_rotate ); @@ -320,7 +322,7 @@ static void ExitPlaceCmp( WinEDA_DrawPanel* Panel, wxDC* DC ) /* Routine de sortie de la fonction de placement de composant */ { - EDA_SchComponentStruct* DrawLibItem = (EDA_SchComponentStruct*) + SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) Panel->m_Parent->GetScreen()->GetCurItem(); if( DrawLibItem->m_Flags & IS_NEW ) /* Nouveau Placement en cours, on l'efface */ @@ -352,7 +354,7 @@ static void ExitPlaceCmp( WinEDA_DrawPanel* Panel, wxDC* DC ) /************************************************************************/ -void WinEDA_SchematicFrame::SelPartUnit( EDA_SchComponentStruct* DrawComponent, +void WinEDA_SchematicFrame::SelPartUnit( SCH_COMPONENT* DrawComponent, int unit, wxDC* DC ) /************************************************************************/ /* Selection de l'unite dans les boitiers a multiples Parts */ @@ -400,7 +402,7 @@ void WinEDA_SchematicFrame::SelPartUnit( EDA_SchComponentStruct* DrawComponent, /************************************************************************/ -void WinEDA_SchematicFrame::ConvertPart( EDA_SchComponentStruct* DrawComponent, +void WinEDA_SchematicFrame::ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC ) /************************************************************************/ { @@ -469,13 +471,13 @@ int LookForConvertPart( EDA_LibComponentStruct* LibEntry ) /***********************************************************************************/ -void WinEDA_SchematicFrame::StartMovePart( EDA_SchComponentStruct* Component, +void WinEDA_SchematicFrame::StartMovePart( SCH_COMPONENT* Component, wxDC* DC ) /***********************************************************************************/ { if( Component == NULL ) return; - if( Component->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( Component->Type() != TYPE_SCH_COMPONENT ) return; if( Component->m_Flags == 0 ) diff --git a/eeschema/hotkeys.cpp b/eeschema/hotkeys.cpp index bf5f91f0ba..3e9bdb9639 100644 --- a/eeschema/hotkeys.cpp +++ b/eeschema/hotkeys.cpp @@ -98,7 +98,7 @@ Ki_HotkeyInfo* s_Schematic_Hotkey_List[] = { &HkDelete, &HkInsert, &HkMove2Drag, &HkMoveComponent, &HkDragComponent, &HkAddComponent, &HkRotateComponent, &HkMirrorXComponent, &HkMirrorYComponent, &HkOrientNormalComponent, - &HkEditComponentValue, &HkEditComponentFootprint, + &HkEditComponentValue, &HkEditComponentFootprint, &HkBeginWire, NULL }; @@ -107,9 +107,9 @@ Ki_HotkeyInfo* s_Schematic_Hotkey_List[] = { Ki_HotkeyInfo* s_LibEdit_Hotkey_List[] = { &HkInsertPin, - &HkEditPin, - &HkMovePin, - &HkDeletePin, + &HkEditPin, + &HkMovePin, + &HkDeletePin, NULL }; @@ -148,13 +148,13 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, */ { bool ItemInEdit = GetScreen()->GetCurItem() - && GetScreen()->GetCurItem()->m_Flags; + && GetScreen()->GetCurItem()->m_Flags; bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified if( hotkey == 0 ) return; - wxPoint MousePos = GetScreen()->m_MousePosition; + wxPoint MousePos = GetScreen()->m_MousePosition; // Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...) if( (hotkey & GR_KB_CTRL) != 0 ) @@ -169,7 +169,7 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, HK_Descr = GetDescriptorFromHotkey( hotkey, s_Schematic_Hotkey_List ); if( HK_Descr == NULL ) return; - switch( HK_Descr->m_Idcommand ) + switch( HK_Descr->m_Idcommand ) { default: case HK_NOT_FOUND: @@ -181,7 +181,7 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, break; case HK_RESET_LOCAL_COORD: /* Reset the relative coord */ - GetScreen()->m_O_Curseur = GetScreen()->m_Curseur; + GetScreen()->m_O_Curseur = GetScreen()->m_Curseur; break; case HK_ZOOM_IN: @@ -219,9 +219,9 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, if( ItemInEdit ) break; RefreshToolBar = LocateAndDeleteItem( this, DC ); - GetScreen()->SetModify(); - GetScreen()->SetCurItem( NULL ); - TestDanglingEnds( GetScreen()->EEDrawList, DC ); + GetScreen()->SetModify(); + GetScreen()->SetCurItem( NULL ); + TestDanglingEnds( GetScreen()->EEDrawList, DC ); break; case HK_REPEAT_LAST: @@ -281,7 +281,7 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, GetScreen(), LIBITEM | TEXTITEM | LABELITEM ); if( DrawStruct == NULL ) break; - if( DrawStruct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( DrawStruct->Type() == TYPE_SCH_COMPONENT ) DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); if( DrawStruct == NULL ) break; @@ -289,7 +289,7 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, switch( DrawStruct->Type() ) { - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: if( DrawStruct->m_Flags == 0 ) { SaveCopyInUndoList( DrawStruct, IS_CHANGED ); @@ -297,19 +297,19 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, } CmpRotationMiroir( - (EDA_SchComponentStruct*) DrawStruct, DC, CMP_ROTATE_COUNTERCLOCKWISE ); + (SCH_COMPONENT*) DrawStruct, DC, CMP_ROTATE_COUNTERCLOCKWISE ); break; - case DRAW_TEXT_STRUCT_TYPE: - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: + case TYPE_SCH_TEXT: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: if( DrawStruct->m_Flags == 0 ) { SaveCopyInUndoList( DrawStruct, IS_CHANGED ); RefreshToolBar = TRUE; } - ChangeTextOrient( (DrawTextStruct*) DrawStruct, DC ); + ChangeTextOrient( (SCH_TEXT*) DrawStruct, DC ); break; default: @@ -320,7 +320,7 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, case HK_MIRROR_Y_COMPONENT: // Mirror Y (Component) if( DrawStruct == NULL ) - DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); + DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); if( DrawStruct ) { if( DrawStruct->m_Flags == 0 ) @@ -329,13 +329,13 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, RefreshToolBar = TRUE; } CmpRotationMiroir( - (EDA_SchComponentStruct*) DrawStruct, DC, CMP_MIROIR_Y ); + (SCH_COMPONENT*) DrawStruct, DC, CMP_MIROIR_Y ); } break; case HK_MIRROR_X_COMPONENT: // Mirror X (Component) if( DrawStruct == NULL ) - DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); + DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); if( DrawStruct ) { if( DrawStruct->m_Flags == 0 ) @@ -344,13 +344,13 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, RefreshToolBar = TRUE; } CmpRotationMiroir( - (EDA_SchComponentStruct*) DrawStruct, DC, CMP_MIROIR_X ); + (SCH_COMPONENT*) DrawStruct, DC, CMP_MIROIR_X ); } break; case HK_ORIENT_NORMAL_COMPONENT: // Orient 0, no mirror (Component) if( DrawStruct == NULL ) - DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); + DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); if( DrawStruct ) { if( DrawStruct->m_Flags == 0 ) @@ -359,8 +359,8 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, RefreshToolBar = TRUE; } CmpRotationMiroir( - (EDA_SchComponentStruct*) DrawStruct, DC, CMP_NORMAL ); - TestDanglingEnds( (SCH_SCREEN*)GetScreen()->EEDrawList, DC ); + (SCH_COMPONENT*) DrawStruct, DC, CMP_NORMAL ); + TestDanglingEnds( (SCH_SCREEN*)GetScreen()->EEDrawList, DC ); } break; @@ -369,37 +369,37 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, if( ItemInEdit ) break; if( DrawStruct == NULL ) - DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); + DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); if( DrawStruct && (DrawStruct->m_Flags ==0) ) { - ((SCH_SCREEN*)GetScreen())->SetCurItem( DrawStruct ); - wxCommandEvent event( wxEVT_COMMAND_TOOL_CLICKED, HK_Descr->m_IdMenuEvent ); + ((SCH_SCREEN*)GetScreen())->SetCurItem( DrawStruct ); + wxCommandEvent event( wxEVT_COMMAND_TOOL_CLICKED, HK_Descr->m_IdMenuEvent ); - wxPostEvent( this, event ); + wxPostEvent( this, event ); } break; - case HK_EDIT_COMPONENT_VALUE: - if( ItemInEdit ) + case HK_EDIT_COMPONENT_VALUE: + if( ItemInEdit ) break; - if( DrawStruct == NULL ) - DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); - if(DrawStruct) - { - EditComponentValue( - (EDA_SchComponentStruct*) DrawStruct, DC ); - } + if( DrawStruct == NULL ) + DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); + if(DrawStruct) + { + EditComponentValue( + (SCH_COMPONENT*) DrawStruct, DC ); + } break; - - case HK_EDIT_COMPONENT_FOOTPRINT: - if( ItemInEdit ) + + case HK_EDIT_COMPONENT_FOOTPRINT: + if( ItemInEdit ) break; - if( DrawStruct == NULL ) - DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); - if(DrawStruct) - { - EditComponentFootprint( - (EDA_SchComponentStruct*) DrawStruct, DC ); - } + if( DrawStruct == NULL ) + DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); + if(DrawStruct) + { + EditComponentFootprint( + (SCH_COMPONENT*) DrawStruct, DC ); + } break; } @@ -417,16 +417,16 @@ void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey, * Commands are case insensitive */ { - bool ItemInEdit = GetScreen()->GetCurItem() - && GetScreen()->GetCurItem()->m_Flags; + bool ItemInEdit = GetScreen()->GetCurItem() + && GetScreen()->GetCurItem()->m_Flags; bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified if( hotkey == 0 ) return; - wxPoint MousePos = GetScreen()->m_MousePosition; - - LibEDA_BaseStruct* DrawEntry = LocateItemUsingCursor(); + wxPoint MousePos = GetScreen()->m_MousePosition; + + LibEDA_BaseStruct* DrawEntry = LocateItemUsingCursor(); // Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...) if( (hotkey & GR_KB_CTRL) != 0 ) @@ -451,7 +451,7 @@ void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey, break; case HK_RESET_LOCAL_COORD: /* Reset the relative coord */ - GetScreen()->m_O_Curseur = GetScreen()->m_Curseur; + GetScreen()->m_O_Curseur = GetScreen()->m_Curseur; break; case HK_ZOOM_IN: @@ -490,36 +490,36 @@ void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey, else wxBell(); break; - case HK_EDIT_PIN: - if(DrawEntry) - CurrentDrawItem = DrawEntry; - if(CurrentDrawItem) - { - if(CurrentDrawItem->Type() == COMPONENT_PIN_DRAW_TYPE) - InstallPineditFrame( this, DC, MousePos ); - } - break; - case HK_DELETE_PIN: - if(DrawEntry) - CurrentDrawItem = DrawEntry; - if(CurrentDrawItem) - { - wxCommandEvent evt; - evt.SetId(ID_POPUP_LIBEDIT_DELETE_ITEM); - Process_Special_Functions(evt); - } - break; - case HK_MOVE_PIN: - if(DrawEntry) - CurrentDrawItem = DrawEntry; - if(CurrentDrawItem) - { - wxCommandEvent evt; - evt.SetId(ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST); - Process_Special_Functions(evt); - } - break; - } + case HK_EDIT_PIN: + if(DrawEntry) + CurrentDrawItem = DrawEntry; + if(CurrentDrawItem) + { + if(CurrentDrawItem->Type() == COMPONENT_PIN_DRAW_TYPE) + InstallPineditFrame( this, DC, MousePos ); + } + break; + case HK_DELETE_PIN: + if(DrawEntry) + CurrentDrawItem = DrawEntry; + if(CurrentDrawItem) + { + wxCommandEvent evt; + evt.SetId(ID_POPUP_LIBEDIT_DELETE_ITEM); + Process_Special_Functions(evt); + } + break; + case HK_MOVE_PIN: + if(DrawEntry) + CurrentDrawItem = DrawEntry; + if(CurrentDrawItem) + { + wxCommandEvent evt; + evt.SetId(ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST); + Process_Special_Functions(evt); + } + break; + } if( RefreshToolBar ) SetToolbars(); } diff --git a/eeschema/load_one_schematic_file.cpp b/eeschema/load_one_schematic_file.cpp index 40fdf4843e..0d22abbe1f 100644 --- a/eeschema/load_one_schematic_file.cpp +++ b/eeschema/load_one_schematic_file.cpp @@ -21,27 +21,27 @@ * EESchema Schematic File Version n * - liste des librairies utilisees * LIBS:lib1,lib2,... - * + * * - description des elements: * - ici Dimensions du schema, cartouche..: * $Descr A3 xx yy (format A3 (A..A0 / A..E / "user") xx yy = dims internes ) * $EndDescr - * + * * - ici: polyline * P L 0 3 * 2208 1008 * 2208 1136 * 2128 1136 - * + * * - ici: Segment (wire, bus) ( 1; W = segment type Wire, 2: W = Wire B = Bus * 3: L ou B = epaisseur ( L = ligne, B = bus) * W W L (W B B si bus) * 1856 1008 1856 1136 (debut X,Y fin X,Y) - * + * * - ici: Raccord (wire, bus) * R W L * 1856 1008 1856 1136 (debut X,Y fin X,Y) - * + * * - ici: Sheet ( Sous-feuille de hierarchie) * $Sheet * S 1856 1008 1856 1136 (debut X,Y fin X,Y) @@ -49,7 +49,7 @@ * F1 "texte" X X posx posy ; filename * Fn "label" type side posx posy size ; n lignes de label * $EndSheet - * + * * - ici: composant * $Comp * L CAPACITOR C1 H H -30863 -14794 1968 1184 nom, ref, dir et pos @@ -98,7 +98,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F return FALSE; screen->SetCurItem( NULL ); - screen->m_FileName = FullFileName; + screen->m_FileName = FullFileName; LineCount = 1; if( ( f = wxFopen( FullFileName, wxT( "rt" ) ) ) == NULL ) @@ -108,7 +108,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F return FALSE; } - MsgDiag = _( "Loading " ) + screen->m_FileName; + MsgDiag = _( "Loading " ) + screen->m_FileName; PrintMsg( MsgDiag ); if( fgets( Line, 1024 - 1, f ) == NULL @@ -120,8 +120,8 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F fclose( f ); return FALSE; } - //get the file version here. - char version = Line[9 + sizeof(SCHEMATIC_HEAD_STRING)]; + //get the file version here. + char version = Line[9 + sizeof(SCHEMATIC_HEAD_STRING)]; LineCount++; if( fgets( Line, 1024 - 1, f ) == NULL || strncmp( Line, "LIBS:", 5 ) != 0 ) { @@ -188,7 +188,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F wxT( "EESchema file Segment struct error at line %d, aborted" ), LineCount ); Failed = TRUE; - SAFE_DELETE( SegmentStruct ) ; + SAFE_DELETE( SegmentStruct ) ; break; } @@ -224,7 +224,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F wxT( "EESchema file Raccord struct error at line %d, aborted" ), LineCount ); Failed = TRUE; - SAFE_DELETE( RaccordStruct ) ; + SAFE_DELETE( RaccordStruct ) ; break; } @@ -268,7 +268,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F wxT( "EESchema file polyline struct error at line %d, aborted" ), LineCount ); Failed = TRUE; - SAFE_DELETE( PolylineStruct ) ; + SAFE_DELETE( PolylineStruct ) ; break; } } @@ -290,7 +290,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F wxT( "EESchema file connection struct error at line %d, aborted" ), LineCount ); Failed = TRUE; - SAFE_DELETE( ConnectionStruct ) ; + SAFE_DELETE( ConnectionStruct ) ; } else { @@ -378,20 +378,20 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F if( Name1[0] == 'L' ) { - DrawLabelStruct* TextStruct = - new DrawLabelStruct( pos, CONV_FROM_UTF8( text ) ); + SCH_LABEL* TextStruct = + new SCH_LABEL( pos, CONV_FROM_UTF8( text ) ); TextStruct->m_Size.x = TextStruct->m_Size.y = size; TextStruct->m_Orient = orient; Struct = (EDA_BaseStruct*) TextStruct; } - else if( Name1[0] == 'G' && version > '1') + else if( Name1[0] == 'G' && version > '1') { - DrawGlobalLabelStruct* TextStruct = - new DrawGlobalLabelStruct(pos, CONV_FROM_UTF8( text ) ); + SCH_GLOBALLABEL* TextStruct = + new SCH_GLOBALLABEL(pos, CONV_FROM_UTF8( text ) ); Struct = (EDA_BaseStruct*) TextStruct; TextStruct->m_Size.x = TextStruct->m_Size.y = size; TextStruct->m_Orient = orient; - TextStruct->m_Shape = NET_INPUT; + TextStruct->m_Shape = NET_INPUT; if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 ) TextStruct->m_Shape = NET_OUTPUT; if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 ) @@ -401,14 +401,14 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F if( stricmp( Name2, SheetLabelType[NET_UNSPECIFIED] ) == 0 ) TextStruct->m_Shape = NET_UNSPECIFIED; } - else if( (Name1[0] == 'H') || (Name1[0] == 'G' && version == '1')) - { //in schematic file version 1, glabels were actually hierarchal labels. - DrawHierLabelStruct* TextStruct = - new DrawHierLabelStruct(pos, CONV_FROM_UTF8( text ) ); + else if( (Name1[0] == 'H') || (Name1[0] == 'G' && version == '1')) + { //in schematic file version 1, glabels were actually hierarchal labels. + SCH_HIERLABEL* TextStruct = + new SCH_HIERLABEL(pos, CONV_FROM_UTF8( text ) ); Struct = (EDA_BaseStruct*) TextStruct; TextStruct->m_Size.x = TextStruct->m_Size.y = size; TextStruct->m_Orient = orient; - TextStruct->m_Shape = NET_INPUT; + TextStruct->m_Shape = NET_INPUT; if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 ) TextStruct->m_Shape = NET_OUTPUT; if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 ) @@ -420,8 +420,8 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F } else { - DrawTextStruct* TextStruct = - new DrawTextStruct( pos, CONV_FROM_UTF8( text ) ); + SCH_TEXT* TextStruct = + new SCH_TEXT( pos, CONV_FROM_UTF8( text ) ); TextStruct->m_Size.x = TextStruct->m_Size.y = size; TextStruct->m_Orient = orient; Struct = (EDA_BaseStruct*) TextStruct; @@ -465,14 +465,14 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F #if 0 && defined(DEBUG) screen->Show( 0, std::cout ); #endif - + fclose( f ); TestDanglingEnds( screen->EEDrawList, NULL ); - MsgDiag = _( "Done Loading " ) + screen->m_FileName; - PrintMsg( MsgDiag ); - + MsgDiag = _( "Done Loading " ) + screen->m_FileName; + PrintMsg( MsgDiag ); + return TRUE; /* Although it may be that file is only partially loaded. */ } @@ -489,11 +489,11 @@ static int ReadPartDescr( wxWindow* frame, char* Line, FILE* f, int ii, fieldref; char Name1[256], Name2[256], Char1[256], Char2[256], Char3[256]; - EDA_SchComponentStruct* LibItemStruct; + SCH_COMPONENT* LibItemStruct; int Failed = 0, newfmt = 0; char* ptcar; - LibItemStruct = new EDA_SchComponentStruct(); + LibItemStruct = new SCH_COMPONENT(); LibItemStruct->m_Convert = 1; if( Line[0] == '$' ) @@ -534,29 +534,29 @@ static int ReadPartDescr( wxWindow* frame, char* Line, FILE* f, if( strcmp( Name2, NULL_STRING ) != 0 ) { - bool isDigit = false; + bool isDigit = false; for( ii = 0; ii < (int) strlen( Name2 ); ii++ ){ if( Name2[ii] == '~' ) Name2[ii] = ' '; - //get RefBase from this, too. store in Name1. - if(Name2[ii] >= '0' && Name2[ii] <= '9'){ - isDigit = true; - Name1[ii] = 0; //null-terminate. - } - if(!isDigit){ - Name1[ii] = Name2[ii]; - } - } - Name1[ii] = 0; //just in case - int jj; - for(jj=0; jjm_PrefixString = wxT("U"); - }else{ - LibItemStruct->m_PrefixString = CONV_FROM_UTF8(&Name1[jj]); - //printf("prefix: %s\n", CONV_TO_UTF8(LibItemStruct->m_PrefixString)); - } + //get RefBase from this, too. store in Name1. + if(Name2[ii] >= '0' && Name2[ii] <= '9'){ + isDigit = true; + Name1[ii] = 0; //null-terminate. + } + if(!isDigit){ + Name1[ii] = Name2[ii]; + } + } + Name1[ii] = 0; //just in case + int jj; + for(jj=0; jjm_PrefixString = wxT("U"); + }else{ + LibItemStruct->m_PrefixString = CONV_FROM_UTF8(&Name1[jj]); + //printf("prefix: %s\n", CONV_TO_UTF8(LibItemStruct->m_PrefixString)); + } if( !newfmt ) LibItemStruct->m_Field[REFERENCE].m_Text = CONV_FROM_UTF8( Name2 ); } @@ -571,8 +571,8 @@ static int ReadPartDescr( wxWindow* frame, char* Line, FILE* f, * "P " = position * "U " = Num Unit, et Conversion * "Fn" = Champs ( n = 0.. = numero de champ ) - * "Ar" = AlternateReference, in the case of multiple sheets - * referring to one schematic file. + * "Ar" = AlternateReference, in the case of multiple sheets + * referring to one schematic file. */ /* Lecture des champs */ @@ -583,7 +583,7 @@ static int ReadPartDescr( wxWindow* frame, char* Line, FILE* f, return TRUE; if( (Line[0] != 'F' ) && (Line[0] != 'P' ) - && (Line[0] != 'A' ) + && (Line[0] != 'A' ) && (Line[0] != 'U' ) ) break; @@ -599,32 +599,32 @@ static int ReadPartDescr( wxWindow* frame, char* Line, FILE* f, sscanf( Line + 1, "%d %d", &LibItemStruct->m_Pos.x, &LibItemStruct->m_Pos.y ); } - if( Line[0] == 'A' && Line[1] == 'R' ) - { - /*format: - AR Path="/9086AF6E/67452AA0" Ref="C99" - where 9086AF6E is the unique timestamp of the containing sheet - and 67452AA0 is the timestamp of this component. - C99 is the reference given this path. - */ - int i=2; - while(i<256 && Line[i] != '"'){ i++; } i++; - //copy the path. - int j = 0; - while(i<256 && Line[i] != '"'){Name1[j] = Line[i]; i++; j++;} i++; - Name1[j] = 0; - wxString path = CONV_FROM_UTF8(Name1); - //i should be one after the closing quote, match the next opening quote - while(i<256 && Line[i] != '"'){ i++; } i++; - j = 0; - while(i<256 && Line[i] != '"'){Name1[j] = Line[i]; i++; j++;} i++; - Name1[j] = 0; - wxString ref = CONV_FROM_UTF8(Name1); - - LibItemStruct->m_Paths.Add(path); - LibItemStruct->m_References.Add(ref); - LibItemStruct->m_Field[REFERENCE].m_Text = ref; - } + if( Line[0] == 'A' && Line[1] == 'R' ) + { + /*format: + AR Path="/9086AF6E/67452AA0" Ref="C99" + where 9086AF6E is the unique timestamp of the containing sheet + and 67452AA0 is the timestamp of this component. + C99 is the reference given this path. + */ + int i=2; + while(i<256 && Line[i] != '"'){ i++; } i++; + //copy the path. + int j = 0; + while(i<256 && Line[i] != '"'){Name1[j] = Line[i]; i++; j++;} i++; + Name1[j] = 0; + wxString path = CONV_FROM_UTF8(Name1); + //i should be one after the closing quote, match the next opening quote + while(i<256 && Line[i] != '"'){ i++; } i++; + j = 0; + while(i<256 && Line[i] != '"'){Name1[j] = Line[i]; i++; j++;} i++; + Name1[j] = 0; + wxString ref = CONV_FROM_UTF8(Name1); + + LibItemStruct->m_Paths.Add(path); + LibItemStruct->m_References.Add(ref); + LibItemStruct->m_Field[REFERENCE].m_Text = ref; + } if( Line[0] == 'F' ) { char FieldUserName[1024]; @@ -767,7 +767,7 @@ static int ReadPartDescr( wxWindow* frame, char* Line, FILE* f, { LibItemStruct->Pnext = Window->EEDrawList; Window->EEDrawList = (EDA_BaseStruct*) LibItemStruct; - LibItemStruct->m_Parent = Window; + LibItemStruct->m_Parent = Window; } return Failed; /* Fin lecture 1 composant */ @@ -790,12 +790,12 @@ static int ReadSheetDescr( wxWindow* frame, char* Line, FILE* f, BASE_SCREEN* Wi char* ptcar; SheetStruct = new DrawSheetStruct(); - SheetStruct->m_TimeStamp = GetTimeStamp(); - //sheets are added to the EEDrawList like other schematic components. - //however, in order to preserve the heirarchy (through m_Parent pointers), - //a duplicate of the sheet is added to m_SubSheet array. - //must be a duplicate, references just work for a two-layer structure. - //this is accomplished through the Sync() function. + SheetStruct->m_TimeStamp = GetTimeStamp(); + //sheets are added to the EEDrawList like other schematic components. + //however, in order to preserve the heirarchy (through m_Parent pointers), + //a duplicate of the sheet is added to m_SubSheet array. + //must be a duplicate, references just work for a two-layer structure. + //this is accomplished through the Sync() function. if( Line[0] == '$' ) /* Ligne doit etre "$Sheet" */ { @@ -826,12 +826,12 @@ static int ReadSheetDescr( wxWindow* frame, char* Line, FILE* f, BASE_SCREEN* Wi LineCount++; if( fgets( Line, 256 - 1, f ) == NULL ) return TRUE; - if( Line[0] == 'U' ){ - sscanf( Line + 1, "%lX", &(SheetStruct->m_TimeStamp) ); - if(SheetStruct->m_TimeStamp == 0) //zero is not unique! - SheetStruct->m_TimeStamp = GetTimeStamp(); - continue; - } + if( Line[0] == 'U' ){ + sscanf( Line + 1, "%lX", &(SheetStruct->m_TimeStamp) ); + if(SheetStruct->m_TimeStamp == 0) //zero is not unique! + SheetStruct->m_TimeStamp = GetTimeStamp(); + continue; + } if( Line[0] != 'F' ) break; sscanf( Line + 1, "%d", &fieldref ); @@ -887,7 +887,7 @@ static int ReadSheetDescr( wxWindow* frame, char* Line, FILE* f, BASE_SCREEN* Wi else { 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; } } @@ -949,12 +949,12 @@ static int ReadSheetDescr( wxWindow* frame, char* Line, FILE* f, BASE_SCREEN* Wi LineCount ); Failed = TRUE; } - if( !Failed ) - { - SheetStruct->Pnext = Window->EEDrawList; - Window->EEDrawList = (EDA_BaseStruct*)SheetStruct; - SheetStruct->m_Parent = Window; - } + if( !Failed ) + { + SheetStruct->Pnext = Window->EEDrawList; + Window->EEDrawList = (EDA_BaseStruct*)SheetStruct; + SheetStruct->m_Parent = Window; + } return Failed; /* Fin lecture 1 composant */ } diff --git a/eeschema/locate.cpp b/eeschema/locate.cpp index 7ca15bba24..72ad45eb0a 100644 --- a/eeschema/locate.cpp +++ b/eeschema/locate.cpp @@ -31,14 +31,14 @@ static bool SnapPoint2( const wxPoint& PosRef, int SearchMask, /*********************************************************************/ -EDA_SchComponentStruct* LocateSmallestComponent( SCH_SCREEN* Screen ) +SCH_COMPONENT* LocateSmallestComponent( SCH_SCREEN* Screen ) /*********************************************************************/ /* Search the smaller (considering its area) component under the mouse cursor or the pcb cursor * If more than 1 component is found, a pointer to the smaller component is returned */ { - EDA_SchComponentStruct* DrawLibItem = NULL, * LastDrawLibItem = NULL; + SCH_COMPONENT* DrawLibItem = NULL, * LastDrawLibItem = NULL; EDA_BaseStruct* DrawList; EDA_Rect BoundaryBox; float sizeref = 0, sizecurr; @@ -54,7 +54,7 @@ EDA_SchComponentStruct* LocateSmallestComponent( SCH_SCREEN* Screen ) DrawList, NULL, Screen->GetZoom() ) ) == FALSE ) break; } - DrawLibItem = (EDA_SchComponentStruct*) LastSnappedStruct; + DrawLibItem = (SCH_COMPONENT*) LastSnappedStruct; DrawList = DrawLibItem->Pnext; if( LastDrawLibItem == NULL ) // First time a component is located { @@ -93,23 +93,23 @@ EDA_SchComponentStruct* LocateSmallestComponent( SCH_SCREEN* Screen ) * SEARCH_PINITEM * SHEETLABELITEM * FIELDCMPITEM - * + * * if EXCLUDE_WIRE_BUS_ENDPOINTS is set, in wire ou bus search and locate, * start and end points are not included in search * if WIRE_BUS_ENDPOINTS_ONLY is set, in wire ou bus search and locate, * only start and end points are included in search - * - * + * + * * Return: * -Bloc search: * pointeur sur liste de pointeurs de structures si Plusieurs * structures selectionnees. * pointeur sur la structure si 1 seule - * + * * Positon serach: * pointeur sur la structure. * Si pas de structures selectionnees: retourne NULL - * + * */ /***********************************************************************/ EDA_BaseStruct* PickStruct( const wxPoint& refpos, @@ -120,9 +120,9 @@ EDA_BaseStruct* PickStruct( const wxPoint& refpos, */ { bool Snapped; - EDA_BaseStruct* DrawList = screen->EEDrawList; - if( screen==NULL || DrawList == NULL ) - return NULL; + EDA_BaseStruct* DrawList = screen->EEDrawList; + if( screen==NULL || DrawList == NULL ) + return NULL; if( ( Snapped = SnapPoint2( refpos, SearchMask, DrawList, NULL, screen->GetZoom() ) ) != FALSE ) @@ -154,11 +154,11 @@ EDA_BaseStruct* PickStruct( EDA_Rect& block, EXCHG( x, OrigX ); if( y < OrigY ) EXCHG( y, OrigY ); - - EDA_BaseStruct* DrawList = screen->EEDrawList; - if( screen==NULL || DrawList == NULL ) - return NULL; - + + EDA_BaseStruct* DrawList = screen->EEDrawList; + if( screen==NULL || DrawList == NULL ) + return NULL; + for( DrawStruct = DrawList; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext ) { if( DrawStructInBox( OrigX, OrigY, x, y, DrawStruct ) ) @@ -176,7 +176,7 @@ EDA_BaseStruct* PickStruct( EDA_Rect& block, /* Only one item was picked - convert to scalar form (no list): */ PickedItem = PickedList; PickedList = (DrawPickedStruct*) PickedList->m_PickedStruct; - SAFE_DELETE( PickedItem ) ; + SAFE_DELETE( PickedItem ) ; } if( PickedList != NULL ) @@ -225,7 +225,7 @@ bool SnapPoint2( const wxPoint& PosRef, int SearchMask, #define STRUCT ( (DrawPolylineStruct*) DrawList ) if( !( SearchMask & (DRAWITEM | WIREITEM | BUSITEM) ) ) break; - + Points = STRUCT->m_Points; NumOfPoints2 = STRUCT->m_NumOfPoints * 2; for( i = 0; i < NumOfPoints2 - 2; i += 2 ) @@ -341,10 +341,10 @@ bool SnapPoint2( const wxPoint& PosRef, int SearchMask, } break; - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_LABEL: + case TYPE_SCH_TEXT: #undef STRUCT - #define STRUCT ( (DrawTextStruct*) DrawList ) + #define STRUCT ( (SCH_TEXT*) DrawList ) if( !( SearchMask & (TEXTITEM | LABELITEM) ) ) break; dx = STRUCT->m_Size.x * STRUCT->GetLength(); @@ -379,10 +379,10 @@ bool SnapPoint2( const wxPoint& PosRef, int SearchMask, break; - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: #undef STRUCT - #define STRUCT ( (DrawLabelStruct*) DrawList ) + #define STRUCT ( (SCH_LABEL*) DrawList ) if( !(SearchMask & LABELITEM) ) break; dx = STRUCT->m_Size.x * ( STRUCT->GetLength() + 1 ); /* longueur */ @@ -416,14 +416,14 @@ bool SnapPoint2( const wxPoint& PosRef, int SearchMask, } break; - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: if( !( SearchMask & (LIBITEM | FIELDCMPITEM) ) ) break; if( SearchMask & FIELDCMPITEM ) { PartTextStruct* Field; - EDA_SchComponentStruct* DrawLibItem = (EDA_SchComponentStruct*) DrawList; + SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) DrawList; for( i = REFERENCE; i < NUMBER_OF_FIELDS; i++ ) { Field = &DrawLibItem->m_Field[i]; @@ -442,7 +442,7 @@ bool SnapPoint2( const wxPoint& PosRef, int SearchMask, else { #undef STRUCT - #define STRUCT ( (EDA_SchComponentStruct*) DrawList ) + #define STRUCT ( (SCH_COMPONENT*) DrawList ) EDA_Rect BoundaryBox = STRUCT->GetBoundaryBox(); if( BoundaryBox.Inside( x, y ) ) { @@ -564,10 +564,10 @@ bool DrawStructInBox( int x1, int y1, int x2, int y2, return TRUE; break; - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_LABEL: + case TYPE_SCH_TEXT: #undef STRUCT - #define STRUCT ( (DrawTextStruct*) DrawStruct ) + #define STRUCT ( (SCH_TEXT*) DrawStruct ) dx = STRUCT->m_Size.x * STRUCT->GetLength(); dy = STRUCT->m_Size.y; xt1 = xt2 = STRUCT->m_Pos.x; @@ -596,10 +596,10 @@ bool DrawStructInBox( int x1, int y1, int x2, int y2, return TRUE; break; - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_GLOBALLABEL: #undef STRUCT - #define STRUCT ( (DrawLabelStruct*) DrawStruct ) + #define STRUCT ( (SCH_LABEL*) DrawStruct ) dx = STRUCT->m_Size.x * ( STRUCT->GetLength() + 1); /* longueur totale */ dy = STRUCT->m_Size.y / 2; /* Demi hauteur */ xt1 = xt2 = STRUCT->m_Pos.x; @@ -628,10 +628,10 @@ bool DrawStructInBox( int x1, int y1, int x2, int y2, return TRUE; break; - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: { #undef STRUCT - #define STRUCT ( (EDA_SchComponentStruct*) DrawStruct ) + #define STRUCT ( (SCH_COMPONENT*) DrawStruct ) EDA_Rect BoundaryBox = STRUCT->GetBoundaryBox(); xt1 = BoundaryBox.GetX(); yt1 = BoundaryBox.GetY(); @@ -682,7 +682,7 @@ static bool IsBox1InBox2( int StartX1, int StartY1, int EndX1, int EndY1, /* Routine detectant que le rectangle 1 (Box1) et le rectangle 2 (Box2) se * recouvrent. * Retourne TRUE ou FALSE. - * + * * On Considere ici qu'il y a recouvrement si l'un au moins des coins * d'un 'Box' est compris dans l'autre */ @@ -744,7 +744,7 @@ static bool IsPointInBox( int pX, int pY, /* Routine detectant que le point pX,pY est dans le rectangle (Box) * Retourne TRUE ou FALSE. - * + * */ { if( BoxX1 > BoxX2 ) @@ -1043,7 +1043,7 @@ int distance( int dx, int dy, int spot_cX, int spot_cY, int seuil ) /*******************************************************************/ LibDrawPin* LocatePinByNumber( const wxString & ePin_Number, - EDA_SchComponentStruct* eComponent ) + SCH_COMPONENT* eComponent ) /*******************************************************************/ /** Find a PIN in a component @@ -1053,11 +1053,11 @@ LibDrawPin* LocatePinByNumber( const wxString & ePin_Number, */ { LibEDA_BaseStruct* DrawItem; - EDA_LibComponentStruct* Entry; + EDA_LibComponentStruct* Entry; LibDrawPin* Pin; - int Unit, Convert; + int Unit, Convert; - Entry = FindLibPart(eComponent->m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); + Entry = FindLibPart(eComponent->m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); if( Entry == NULL ) return NULL; @@ -1067,8 +1067,8 @@ LibDrawPin* LocatePinByNumber( const wxString & ePin_Number, return NULL; } - Unit = eComponent->m_Multi; - Convert = eComponent->m_Convert; + Unit = eComponent->m_Multi; + Convert = eComponent->m_Convert; DrawItem = Entry->m_Drawings; for( ; DrawItem != NULL; DrawItem = DrawItem->Next() ) @@ -1082,10 +1082,10 @@ LibDrawPin* LocatePinByNumber( const wxString & ePin_Number, if( Convert && DrawItem->m_Convert && (DrawItem->m_Convert != Convert) ) continue; - wxString pNumber; - Pin->ReturnPinStringNum( pNumber ); + wxString pNumber; + Pin->ReturnPinStringNum( pNumber ); if ( ePin_Number == pNumber ) - return Pin; + return Pin; } } @@ -1096,7 +1096,7 @@ LibDrawPin* LocatePinByNumber( const wxString & ePin_Number, /*******************************************************************/ LibEDA_BaseStruct* LocatePin( const wxPoint& RefPos, EDA_LibComponentStruct* Entry, - int Unit, int convert, EDA_SchComponentStruct* DrawLibItem ) + int Unit, int convert, SCH_COMPONENT* DrawLibItem ) /*******************************************************************/ /* Routine de localisation d'une PIN de la PartLib pointee par Entry @@ -1198,19 +1198,19 @@ DrawSheetLabelStruct* LocateSheetLabel( DrawSheetStruct* Sheet, const wxPoint& p /**************************************************************************/ LibDrawPin* LocateAnyPin( EDA_BaseStruct* DrawList, const wxPoint& RefPos, - EDA_SchComponentStruct** libpart ) + SCH_COMPONENT** libpart ) /**************************************************************************/ { EDA_BaseStruct* DrawStruct; EDA_LibComponentStruct* Entry; - EDA_SchComponentStruct* LibItem = NULL; + SCH_COMPONENT* LibItem = NULL; LibDrawPin* Pin = NULL; for( DrawStruct = DrawList; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext ) { - if( DrawStruct->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( DrawStruct->Type() != TYPE_SCH_COMPONENT ) continue; - LibItem = (EDA_SchComponentStruct*) DrawStruct; + LibItem = (SCH_COMPONENT*) DrawStruct; Entry = FindLibPart( LibItem->m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); if( Entry == NULL ) continue; diff --git a/eeschema/netform.cpp b/eeschema/netform.cpp index b52f2dd941..d14ba7b6b2 100644 --- a/eeschema/netform.cpp +++ b/eeschema/netform.cpp @@ -24,10 +24,10 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet ); static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, bool use_netnames ); static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet ); -static void AddPinToComponentPinList( EDA_SchComponentStruct* Component, - DrawSheetPath* sheet, +static void AddPinToComponentPinList( SCH_COMPONENT* Component, + DrawSheetPath* sheet, LibDrawPin* PinEntry ); -static void FindOthersUnits( EDA_SchComponentStruct* Component, DrawSheetPath* Sheet_in); +static void FindOthersUnits( SCH_COMPONENT* Component, DrawSheetPath* Sheet_in); static int SortPinsByNum( ObjetNetListStruct** Pin1, ObjetNetListStruct** Pin2 ); static void EraseDuplicatePins( ObjetNetListStruct** TabPin, int NbrPin ); @@ -92,20 +92,20 @@ void WriteNetList( WinEDA_SchematicFrame* frame, const wxString& FileNameNL, /****************************************************************************/ -static EDA_SchComponentStruct* FindNextComponentAndCreatPinList( - EDA_BaseStruct* DrawList, DrawSheetPath* sheet) +static SCH_COMPONENT* FindNextComponentAndCreatPinList( + EDA_BaseStruct* DrawList, DrawSheetPath* sheet) /****************************************************************************/ /* Find a "suitable" component from the DrawList * build its pin list s_SortedComponentPinList. * The list is sorted by pin num * A suitable component is a "new" real component (power symbols are not considered) - * + * * alloc memory for s_SortedComponentPinList if s_SortedComponentPinList == NULL * Must be deallocated by the user */ { - EDA_SchComponentStruct* Component = NULL; + SCH_COMPONENT* Component = NULL; EDA_LibComponentStruct* Entry; LibEDA_BaseStruct* DEntry; @@ -113,23 +113,23 @@ static EDA_SchComponentStruct* FindNextComponentAndCreatPinList( for( ; DrawList != NULL; DrawList = DrawList->Next() ) { - if( DrawList->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( DrawList->Type() != TYPE_SCH_COMPONENT ) continue; - Component = (EDA_SchComponentStruct*) DrawList; + Component = (SCH_COMPONENT*) DrawList; /* already tested ? : */ - bool found = false; - for(unsigned int i =0; im_UsedOnSheets.GetCount(); i++){ - if( Component->m_UsedOnSheets.Item(i) == *sheet ){ - found = true; - break; - } - } - if( found ) continue; + bool found = false; + for(unsigned int i =0; im_UsedOnSheets.GetCount(); i++){ + if( Component->m_UsedOnSheets.Item(i) == *sheet ){ + found = true; + break; + } + } + if( found ) continue; //if( Component->m_FlagControlMulti == 1 ) // continue; /* yes */ - // removed because with multiple instances of one schematic - // (several sheets pointing to 1 screen), this will be erroneously be toggled. + // removed because with multiple instances of one schematic + // (several sheets pointing to 1 screen), this will be erroneously be toggled. Entry = FindLibPart( Component->m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); if( Entry == NULL ) @@ -137,7 +137,7 @@ static EDA_SchComponentStruct* FindNextComponentAndCreatPinList( /* Power symbol and other component which have the reference starting by * "#" are not included in netlist (pseudo components) */ - wxString str = Component->GetRef(sheet); + wxString str = Component->GetRef(sheet); if( str[0] == '#' ) continue; @@ -164,8 +164,8 @@ static EDA_SchComponentStruct* FindNextComponentAndCreatPinList( } //Component->m_FlagControlMulti = 1; - Component->m_UsedOnSheets.Add(*sheet); - + Component->m_UsedOnSheets.Add(*sheet); + if( Entry->m_UnitCount > 1 ) FindOthersUnits( Component, sheet); @@ -211,7 +211,7 @@ static wxString ReturnPinNetName( ObjetNetListStruct* Pin, continue; if( ( g_TabObjNet[jj].m_Type != NET_HIERLABEL) && ( g_TabObjNet[jj].m_Type != NET_LABEL) - && ( g_TabObjNet[jj].m_Type != NET_PINLABEL) ) + && ( g_TabObjNet[jj].m_Type != NET_PINLABEL) ) continue; NetName = *g_TabObjNet[jj].m_Label; @@ -221,9 +221,9 @@ static wxString ReturnPinNetName( ObjetNetListStruct* Pin, if( !NetName.IsEmpty() ) { if( g_TabObjNet[jj].m_Type != NET_PINLABEL ){ - NetName = g_TabObjNet[jj].m_SheetList.PathHumanReadable() - + NetName; - } + NetName = g_TabObjNet[jj].m_SheetList.PathHumanReadable() + + NetName; + } //NetName << wxT("_") << g_TabObjNet[jj].m_SheetList.PathHumanReadable(); } else @@ -241,13 +241,13 @@ void Write_GENERIC_NetList( WinEDA_SchematicFrame* frame, /* Create a generic netlist, and call an external netlister * to change the netlist syntax and create the file - * -- does this still work? + * -- does this still work? */ { wxString Line, FootprintName; - DrawSheetPath* sheet; + DrawSheetPath* sheet; EDA_BaseStruct* DrawList; - EDA_SchComponentStruct* Component; + SCH_COMPONENT* Component; wxString netname; int ii; FILE* tmpfile; @@ -267,14 +267,14 @@ void Write_GENERIC_NetList( WinEDA_SchematicFrame* frame, /* Create netlist module section */ fprintf( tmpfile, "$BeginComponentList\n" ); - EDA_SheetList SheetList( NULL ); + EDA_SheetList SheetList( NULL ); - for( sheet = SheetList.GetFirst(); sheet != NULL; sheet = SheetList.GetNext() ) - { - for( DrawList = sheet->LastDrawList(); DrawList != NULL; DrawList = DrawList->Pnext ) - { + for( sheet = SheetList.GetFirst(); sheet != NULL; sheet = SheetList.GetNext() ) + { + for( DrawList = sheet->LastDrawList(); DrawList != NULL; DrawList = DrawList->Pnext ) + { DrawList = Component = FindNextComponentAndCreatPinList( DrawList, sheet ); - + if( Component == NULL ) break; // No component left @@ -363,11 +363,11 @@ static void ClearUsedFlags( WinEDA_SchematicFrame* frame ) DrawList = screen->EEDrawList; while( DrawList ) { - if( DrawList->Type() == DRAW_LIB_ITEM_STRUCT_TYPE ) + if( DrawList->Type() == TYPE_SCH_COMPONENT ) { - EDA_SchComponentStruct* Component = (EDA_SchComponentStruct*) DrawList; + SCH_COMPONENT* Component = (SCH_COMPONENT*) DrawList; //Component->m_FlagControlMulti = 0; - Component->m_UsedOnSheets.Clear(); + Component->m_UsedOnSheets.Clear(); } DrawList = DrawList->Pnext; } @@ -384,7 +384,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, * si use_netnames = TRUE * les nodes sont identifies par le netname * sinon les nodes sont identifies par le netnumber - * + * * tous les textes graphiques commen�ant par [.-+]pspice ou [.-+]gnucap * sont consid�r�s comme des commandes a placer dans la netliste * [.-]pspice ou gnucap sont en debut @@ -394,7 +394,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, char Line[1024]; DrawSheetPath* sheet; EDA_BaseStruct* DrawList; - EDA_SchComponentStruct* Component; + SCH_COMPONENT* Component; int ii, nbitems; wxString text; wxArrayString SpiceCommandAtBeginFile, SpiceCommandAtEndFile; @@ -416,9 +416,9 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, for( DrawList = sheet->LastDrawList(); DrawList != NULL; DrawList = DrawList->Pnext ) { wxChar ident; - if( DrawList->Type() != DRAW_TEXT_STRUCT_TYPE ) + if( DrawList->Type() != TYPE_SCH_TEXT ) continue; - #define DRAWTEXT ( (DrawTextStruct*) DrawList ) + #define DRAWTEXT ( (SCH_TEXT*) DrawList ) text = DRAWTEXT->m_Text; if( text.IsEmpty() ) continue; ident = text.GetChar( 0 ); @@ -536,9 +536,9 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with char Buf[256]; DrawSheetPath* sheet; EDA_BaseStruct* DrawList; - EDA_SchComponentStruct* Component; + SCH_COMPONENT* Component; int ii; - ListComponent* CmpList = NULL; + ListComponent* CmpList = NULL; int CmpListCount = 0, CmpListSize = 1000; DateAndTime( Buf ); @@ -548,7 +548,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with fprintf( f, "( { %s created %s }\n", NETLIST_HEAD_STRING, Buf ); - /* Create netlist module section */ + /* Create netlist module section */ ClearUsedFlags( frame ); /* Reset the flags FlagControlMulti in all schematic files*/ EDA_SheetList SheetList( NULL ); @@ -569,18 +569,18 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with if( Entry->m_FootprintList.GetCount() != 0 ) /* Put in list */ { if( CmpList == NULL ){ - CmpList = (ListComponent*) - MyZMalloc( sizeof(ListComponent) * CmpListSize ); - } + CmpList = (ListComponent*) + MyZMalloc( sizeof(ListComponent) * CmpListSize ); + } if( CmpListCount >= CmpListSize ) { CmpListSize += 1000; - CmpList = (ListComponent*) realloc( + CmpList = (ListComponent*) realloc( CmpList, - sizeof(ListComponent) * CmpListSize ); + sizeof(ListComponent) * CmpListSize ); } CmpList[CmpListCount].m_Comp = Component; - strcpy(CmpList[CmpListCount].m_Ref, Component->GetRef( sheet ).mb_str()); + strcpy(CmpList[CmpListCount].m_Ref, Component->GetRef( sheet ).mb_str()); CmpListCount++; } } @@ -593,7 +593,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with else FootprintName = wxT( "$noname" ); - Line = Component->GetRef(sheet); + Line = Component->GetRef(sheet); fprintf( f, " ( %s %s", CONV_TO_UTF8(Component->GetPath(sheet)), CONV_TO_UTF8( FootprintName ) ); @@ -642,13 +642,13 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with { Component = CmpList[ii].m_Comp; Entry = FindLibPart( Component->m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); - //Line.Printf(_("%s"), CmpList[ii].m_Ref); + //Line.Printf(_("%s"), CmpList[ii].m_Ref); //Line.Replace( wxT( " " ), wxT( "_" ) ); - unsigned int i; - for(i=0; im_FootprintList.GetCount(); jj++ ) @@ -675,8 +675,8 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with /*************************************************************************************/ -static void AddPinToComponentPinList( EDA_SchComponentStruct* Component, - DrawSheetPath* sheetlist, LibDrawPin* Pin ) +static void AddPinToComponentPinList( SCH_COMPONENT* Component, + DrawSheetPath* sheetlist, LibDrawPin* Pin ) /*************************************************************************************/ /* Add a new pin description in the pin list s_SortedComponentPinList @@ -693,8 +693,8 @@ static void AddPinToComponentPinList( EDA_SchComponentStruct* Component, continue; if( g_TabObjNet[ii].m_Link != Component ) continue; - if( g_TabObjNet[ii].m_SheetList != *sheetlist ) - continue; + if( g_TabObjNet[ii].m_SheetList != *sheetlist ) + continue; if( g_TabObjNet[ii].m_PinNum != Pin->m_PinNum ) continue; { @@ -742,7 +742,7 @@ static void EraseDuplicatePins( ObjetNetListStruct** TabPin, int NbrPin ) /**********************************************************************/ -static void FindOthersUnits( EDA_SchComponentStruct* Component_in, DrawSheetPath* Sheet_in) +static void FindOthersUnits( SCH_COMPONENT* Component_in, DrawSheetPath* Sheet_in) /**********************************************************************/ /* Recherche les autres parts du boitier auquel appartient la part Component, @@ -751,15 +751,15 @@ static void FindOthersUnits( EDA_SchComponentStruct* Component_in, DrawSheetPath */ { EDA_BaseStruct* DrawList; - EDA_SchComponentStruct* Component2; + SCH_COMPONENT* Component2; EDA_LibComponentStruct* Entry; LibEDA_BaseStruct* DEntry; DrawSheetPath* sheet; - wxString str; + wxString str; EDA_SheetList SheetList( NULL ); - unsigned int i; - bool found; + unsigned int i; + bool found; for( sheet = SheetList.GetFirst(); sheet != NULL; sheet = SheetList.GetNext() ) { DrawList = sheet->LastDrawList(); @@ -767,26 +767,26 @@ static void FindOthersUnits( EDA_SchComponentStruct* Component_in, DrawSheetPath { switch( DrawList->Type() ) { - case DRAW_LIB_ITEM_STRUCT_TYPE: - Component2 = (EDA_SchComponentStruct*) DrawList; + case TYPE_SCH_COMPONENT: + Component2 = (SCH_COMPONENT*) DrawList; - found = false; - for( i =0; im_UsedOnSheets.GetCount(); i++){ - if( Component2->m_UsedOnSheets.Item(i) == *Sheet_in ){ - found = true; - } - } - if( found ) break; + found = false; + for( i =0; im_UsedOnSheets.GetCount(); i++){ + if( Component2->m_UsedOnSheets.Item(i) == *Sheet_in ){ + found = true; + } + } + if( found ) break; //if( Component2->m_FlagControlMulti == 1 ) //has it been used? (on this sheet?) // break; - str = Component2->GetRef(sheet); + str = Component2->GetRef(sheet); if( str.CmpNoCase( Component_in->GetRef(Sheet_in) ) != 0 ) break; Entry = FindLibPart( Component2->m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); if( Entry == NULL ) break; - + if( str[0] == '#' ) break; @@ -808,8 +808,8 @@ static void FindOthersUnits( EDA_SchComponentStruct* Component_in, DrawSheetPath } } } - Component2->m_UsedOnSheets.Add(*Sheet_in); - //Component2->m_FlagControlMulti = 1; //mark it as used.. + Component2->m_UsedOnSheets.Add(*Sheet_in); + //Component2->m_FlagControlMulti = 1; //mark it as used.. break; default: @@ -830,12 +830,12 @@ static int SortPinsByNum( ObjetNetListStruct** Pin1, ObjetNetListStruct** Pin2 ) * du tableau des pins s_SortedComponentPinList par qsort() */ { - ObjetNetListStruct* Obj1, * Obj2; + ObjetNetListStruct* Obj1, * Obj2; int Num1, Num2; char Line[5]; - Obj1 = *Pin1; Obj2 = *Pin2; - Num1 = Obj1->m_PinNum; Num2 = Obj2->m_PinNum; + Obj1 = *Pin1; Obj2 = *Pin2; + Num1 = Obj1->m_PinNum; Num2 = Obj2->m_PinNum; Line[4] = 0; memcpy( Line, &Num1, 4 ); Num1 = atoi( Line ); memcpy( Line, &Num2, 4 ); Num2 = atoi( Line ); return Num1 - Num2; @@ -853,7 +853,7 @@ static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet ) int ii, jj; int NetCode, LastNetCode = -1; int SameNetcodeCount = 0; - EDA_SchComponentStruct* Cmp; + SCH_COMPONENT* Cmp; wxString NetName, CmpRef; wxString NetcodeName; char FirstItemInNet[1024]; @@ -881,13 +881,13 @@ static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet ) if( !NetName.IsEmpty() ) { NetcodeName += NetName; - if( g_TabObjNet[jj].m_Type != NET_PINLABEL ){ - // usual net name, add in the sheet path - NetcodeName = g_TabObjNet[jj].m_SheetList.PathHumanReadable() - + NetcodeName; - //NetcodeName << wxT("_") << - // g_TabObjNet[jj].m_SheetList.PathHumanReadable(); - } + if( g_TabObjNet[jj].m_Type != NET_PINLABEL ){ + // usual net name, add in the sheet path + NetcodeName = g_TabObjNet[jj].m_SheetList.PathHumanReadable() + + NetcodeName; + //NetcodeName << wxT("_") << + // g_TabObjNet[jj].m_SheetList.PathHumanReadable(); + } } NetcodeName += wxT( "\"" ); LastNetCode = NetCode; @@ -896,8 +896,8 @@ static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet ) if( ObjNet[ii].m_Type != NET_PIN ) continue; - Cmp = (EDA_SchComponentStruct*) ObjNet[ii].m_Link; - CmpRef = Cmp->GetRef(&ObjNet[ii].m_SheetList); //is this correct? + Cmp = (SCH_COMPONENT*) ObjNet[ii].m_Link; + CmpRef = Cmp->GetRef(&ObjNet[ii].m_SheetList); //is this correct? if( CmpRef.StartsWith( wxT( "#" ) ) ) continue; // Pseudo component (Like Power symbol) @@ -936,21 +936,21 @@ static void WriteNetListCADSTAR( WinEDA_SchematicFrame* frame, FILE* f ) * ..APP "Cadstar RINF Output - Version 6.0.2.3" * ..UNI INCH 1000.0 in * ..TYP FULL - * + * * liste des composants: * ..ADD_COM X1 "CNT D41612 (48PTS MC CONTOUR)" * ..ADD_COM U2 "74HCT245D" "74HCT245D" - * + * * Connexions: * ..ADD_TER RR2 6 "$42" * ..TER U1 100 * CA 6 - * + * * ..ADD_TER U2 6 "$59" * ..TER U7 39 * U6 17 * U1 122 - * + * * ..ADD_TER P2 1 "$9" * ..TER T3 1 * U1 14 @@ -962,7 +962,7 @@ static void WriteNetListCADSTAR( WinEDA_SchematicFrame* frame, FILE* f ) char Line[1024]; DrawSheetPath* sheet; EDA_BaseStruct* DrawList; - EDA_SchComponentStruct* Component; + SCH_COMPONENT* Component; wxString Title = g_Main_Title + wxT( " " ) + GetBuildVersion(); fprintf( f, "%sHEA\n", CONV_TO_UTF8( StartLine ) ); @@ -1031,7 +1031,7 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet ) wxString NetcodeName, InitNetDescLine; int ii, jj, print_ter = 0; int NetCode, LastNetCode = -1; - EDA_SchComponentStruct* Cmp; + SCH_COMPONENT* Cmp; wxString NetName; for( ii = 0; ii < g_NbrObjNet; ii++ ) @@ -1060,11 +1060,11 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet ) { NetcodeName += NetName; if( g_TabObjNet[jj].m_Type != NET_PINLABEL ){ - NetcodeName = g_TabObjNet[jj].m_SheetList.PathHumanReadable() - + NetcodeName; - //NetcodeName << wxT("_") << - // g_TabObjNet[jj].m_SheetList.PathHumanReadable(); - } + NetcodeName = g_TabObjNet[jj].m_SheetList.PathHumanReadable() + + NetcodeName; + //NetcodeName << wxT("_") << + // g_TabObjNet[jj].m_SheetList.PathHumanReadable(); + } } else // this net has no name: create a default name $ NetcodeName << wxT( "$" ) << NetCode; @@ -1080,8 +1080,8 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet ) if( ObjNet[ii].m_Flag != 0 ) continue; - Cmp = (EDA_SchComponentStruct*) ObjNet[ii].m_Link; - wxString refstr = Cmp->GetRef(&(ObjNet[ii].m_SheetList)); + Cmp = (SCH_COMPONENT*) ObjNet[ii].m_Link; + wxString refstr = Cmp->GetRef(&(ObjNet[ii].m_SheetList)); if( refstr[0] == '#' ) continue; // Pseudo composant (symboles d'alims) @@ -1127,11 +1127,11 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet ) break; if( ObjNet[jj].m_Type != NET_PIN ) continue; - EDA_SchComponentStruct* tstcmp = - (EDA_SchComponentStruct*) ObjNet[jj].m_Link; - wxString p = Cmp->GetPath( &( ObjNet[ii].m_SheetList ) ); - wxString tstp = tstcmp->GetPath( &( ObjNet[jj].m_SheetList ) ); - if( p.Cmp(tstp) != 0 ) + SCH_COMPONENT* tstcmp = + (SCH_COMPONENT*) ObjNet[jj].m_Link; + wxString p = Cmp->GetPath( &( ObjNet[ii].m_SheetList ) ); + wxString tstp = tstcmp->GetPath( &( ObjNet[jj].m_SheetList ) ); + if( p.Cmp(tstp) != 0 ) continue; if( ObjNet[jj].m_PinNum == ObjNet[ii].m_PinNum ) diff --git a/eeschema/netlist.cpp b/eeschema/netlist.cpp index 11c97d4593..5ea61abe90 100644 --- a/eeschema/netlist.cpp +++ b/eeschema/netlist.cpp @@ -44,7 +44,7 @@ static int s_PassNumber; const char* ShowType( NetObjetType aType ) { const char* ret; - + switch( aType ) { case NET_SEGMENT: ret = "segment"; break; @@ -52,10 +52,10 @@ const char* ShowType( NetObjetType aType ) case NET_JONCTION: ret = "junction"; break; case NET_LABEL: ret = "label"; break; case NET_HIERLABEL: ret = "hierlabel"; break; - case NET_GLOBLABEL: ret = "glabel"; break; + case NET_GLOBLABEL: ret = "glabel"; break; case NET_BUSLABELMEMBER: ret = "buslblmember"; break; case NET_HIERBUSLABELMEMBER: ret = "hierbuslblmember"; break; - case NET_GLOBBUSLABELMEMBER: ret = "gbuslblmember"; break; + case NET_GLOBBUSLABELMEMBER: ret = "gbuslblmember"; break; case NET_SHEETBUSLABELMEMBER: ret = "sbuslblmember"; break; case NET_SHEETLABEL: ret = "sheetlabel"; break; case NET_PINLABEL: ret = "pinlabel"; break; @@ -69,8 +69,8 @@ const char* ShowType( NetObjetType aType ) void ObjetNetListStruct::Show( std::ostream& out, int ndx ) { - wxString path = m_SheetList.PathHumanReadable(); - out << "" << m_Label->mb_str() << "\n"; - + if( m_Comp ) m_Comp->Show( 1, out ); else out << " m_Comp==NULL\n"; - + out << "\n"; } @@ -124,17 +124,17 @@ void FreeTabNetList( ObjetNetListStruct* TabNetItems, int NbrNetItems ) case NET_BUS: case NET_LABEL: case NET_HIERLABEL: - case NET_GLOBLABEL: + case NET_GLOBLABEL: case NET_PINLABEL: case NET_NOCONNECT: break; case NET_HIERBUSLABELMEMBER: - case NET_GLOBBUSLABELMEMBER: + case NET_GLOBBUSLABELMEMBER: case NET_SHEETBUSLABELMEMBER: case NET_BUSLABELMEMBER: - SAFE_DELETE( TabNetItems[i].m_Label ); - //see the note in ConvertBustToMembers + SAFE_DELETE( TabNetItems[i].m_Label ); + //see the note in ConvertBustToMembers break; } } @@ -154,19 +154,19 @@ void* WinEDA_SchematicFrame::BuildNetListBase() { int NetNumber; int i, istart, NetCode; - DrawSheetPath* sheet; + DrawSheetPath* sheet; wxString msg; wxBusyCursor Busy; NetNumber = 1; s_PassNumber = 0; - + MsgPanel->EraseMsgBox(); Affiche_1_Parametre( this, 1, _( "List" ), wxEmptyString, LIGHTRED ); /* Build the sheet (not screen) list (flattened)*/ EDA_SheetList SheetListList( NULL ); - i=0; + i=0; /* 1ere passe : Comptage du nombre d'objet de Net */ g_NbrObjNet = 0; g_TabObjNet = NULL; /* Init pour le 1er passage dans ListeObjetConnection */ @@ -191,13 +191,13 @@ void* WinEDA_SchematicFrame::BuildNetListBase() return NULL; /* 2eme passe : Remplissage des champs des structures des objets de Net */ - /* second pass: fill the fields of the structures in the Net */ + /* second pass: fill the fields of the structures in the Net */ s_PassNumber++; Affiche_1_Parametre( this, 1, _( "List" ), wxEmptyString, RED ); - - sheet = SheetListList.GetFirst(); - for( ObjetNetListStruct* tabObjNet = g_TabObjNet; + + sheet = SheetListList.GetFirst(); + for( ObjetNetListStruct* tabObjNet = g_TabObjNet; sheet != NULL; sheet = SheetListList.GetNext() ) { tabObjNet += ListeObjetConnection( this, sheet, tabObjNet ); @@ -217,12 +217,12 @@ void* WinEDA_SchematicFrame::BuildNetListBase() sheet = &(g_TabObjNet[0].m_SheetList); LastNetCode = LastBusNetCode = 1; - + for( i = istart = 0; im_SheetListInclude ) - continue; //use SheetInclude, not the sheet!! - + if( ObjetNet[i].m_SheetList != SheetLabel->m_SheetListInclude ) + continue; //use SheetInclude, not the sheet!! + if( (ObjetNet[i].m_Type != NET_HIERLABEL ) && (ObjetNet[i].m_Type != NET_HIERBUSLABELMEMBER ) ) continue; - + if( ObjetNet[i].GetNet() == SheetLabel->GetNet() ) - continue; //already connected. - + continue; //already connected. + if( ObjetNet[i].m_Label->CmpNoCase( *SheetLabel->m_Label ) != 0 ) continue; //different names. @@ -441,7 +441,7 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh /* Routine generant la liste des objets relatifs aux connection * entree: - * sheetlist: pointer to a sheetlist. + * sheetlist: pointer to a sheetlist. * ObjNet: * si NULL: la routine compte seulement le nombre des objets * sinon: pointe le tableau a remplir @@ -449,21 +449,21 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh { int ii, NbrItem = 0; EDA_BaseStruct* DrawList; - EDA_SchComponentStruct* DrawLibItem; + SCH_COMPONENT* DrawLibItem; int TransMat[2][2], PartX, PartY, x2, y2; EDA_LibComponentStruct* Entry; LibEDA_BaseStruct* DEntry; DrawSheetLabelStruct* SheetLabel; - DrawSheetPath list; - + DrawSheetPath list; + DrawList = sheetlist->LastScreen()->EEDrawList; for( ; DrawList; DrawList = DrawList->Pnext ) { - if( ObjNet ){ - ObjNet[NbrItem].m_SheetList = *sheetlist; - ObjNet[NbrItem].m_SheetListInclude = *sheetlist; - //used for DrawSheetLabels - } + if( ObjNet ){ + ObjNet[NbrItem].m_SheetList = *sheetlist; + ObjNet[NbrItem].m_SheetListInclude = *sheetlist; + //used for DrawSheetLabels + } switch( DrawList->Type() ) { case DRAW_SEGMENT_STRUCT_TYPE: @@ -478,7 +478,7 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh ObjNet[NbrItem].m_Comp = STRUCT; ObjNet[NbrItem].m_Start = STRUCT->m_Start; ObjNet[NbrItem].m_End = STRUCT->m_End; - + if( STRUCT->m_Layer == LAYER_BUS ) { ObjNet[NbrItem].m_Type = NET_BUS; @@ -517,24 +517,24 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh NbrItem++; break; - case DRAW_LABEL_STRUCT_TYPE: + case TYPE_SCH_LABEL: #undef STRUCT - #define STRUCT ( (DrawLabelStruct*) DrawList ) + #define STRUCT ( (SCH_LABEL*) DrawList ) ii = IsBusLabel( STRUCT->m_Text ); if( ObjNet ) { ObjNet[NbrItem].m_Comp = STRUCT; ObjNet[NbrItem].m_Type = NET_LABEL; - + if( STRUCT->m_Layer == LAYER_GLOBLABEL ) ObjNet[NbrItem].m_Type = NET_GLOBLABEL; - if( STRUCT->m_Layer == LAYER_HIERLABEL ) - ObjNet[NbrItem].m_Type = NET_HIERLABEL; - + if( STRUCT->m_Layer == LAYER_HIERLABEL ) + ObjNet[NbrItem].m_Type = NET_HIERLABEL; + ObjNet[NbrItem].m_Label = &STRUCT->m_Text; ObjNet[NbrItem].m_Start = STRUCT->m_Pos; ObjNet[NbrItem].m_End = ObjNet[NbrItem].m_Start; - + /* Si c'est un Bus, eclatement en Label */ if( ii ) ConvertBusToMembers( ObjNet + NbrItem ); @@ -542,25 +542,25 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh NbrItem += ii + 1; break; - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: #undef STRUCT - #define STRUCT ( (DrawLabelStruct*) DrawList ) + #define STRUCT ( (SCH_LABEL*) DrawList ) ii = IsBusLabel( STRUCT->m_Text ); if( ObjNet ) { ObjNet[NbrItem].m_Comp = STRUCT; ObjNet[NbrItem].m_Type = NET_LABEL; - + if( STRUCT->m_Layer == LAYER_GLOBLABEL ) //this is not the simplest way of doing it - ObjNet[NbrItem].m_Type = NET_GLOBLABEL;// (look at the case statement above). - if( STRUCT->m_Layer == LAYER_HIERLABEL ) - ObjNet[NbrItem].m_Type = NET_HIERLABEL; - + ObjNet[NbrItem].m_Type = NET_GLOBLABEL;// (look at the case statement above). + if( STRUCT->m_Layer == LAYER_HIERLABEL ) + ObjNet[NbrItem].m_Type = NET_HIERLABEL; + ObjNet[NbrItem].m_Label = &STRUCT->m_Text; ObjNet[NbrItem].m_Start = STRUCT->m_Pos; ObjNet[NbrItem].m_End = ObjNet[NbrItem].m_Start; - + /* Si c'est un Bus, eclatement en Label */ if( ii ) ConvertBusToMembers( ObjNet + NbrItem ); @@ -568,48 +568,48 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh NbrItem += ii + 1; break; - case DRAW_LIB_ITEM_STRUCT_TYPE: - DrawLibItem = (EDA_SchComponentStruct*) DrawList; - + case TYPE_SCH_COMPONENT: + DrawLibItem = (SCH_COMPONENT*) DrawList; + memcpy( TransMat, DrawLibItem->m_Transform, sizeof(TransMat) ); - - PartX = DrawLibItem->m_Pos.x; + + PartX = DrawLibItem->m_Pos.x; PartY = DrawLibItem->m_Pos.y; - + Entry = FindLibPart( DrawLibItem->m_ChipName, wxEmptyString, FIND_ROOT ); if( Entry == NULL ) break; - + if( Entry->m_Drawings == NULL ) break; - + DEntry = Entry->m_Drawings; - + for( ; DEntry; DEntry = DEntry->Next() ) { LibDrawPin* Pin = (LibDrawPin*) DEntry; if( DEntry->Type() != COMPONENT_PIN_DRAW_TYPE ) continue; - + if( DEntry->m_Unit && (DEntry->m_Unit != DrawLibItem->m_Multi) ) continue; - + if( DEntry->m_Convert && (DEntry->m_Convert != DrawLibItem->m_Convert) ) continue; x2 = PartX + TransMat[0][0] * Pin->m_Pos.x + TransMat[0][1] * Pin->m_Pos.y; - + y2 = PartY + TransMat[1][0] * Pin->m_Pos.x + TransMat[1][1] * Pin->m_Pos.y; if( ObjNet ) { ObjNet[NbrItem].m_Comp = DEntry; - ObjNet[NbrItem].m_SheetList = *sheetlist; + ObjNet[NbrItem].m_SheetList = *sheetlist; ObjNet[NbrItem].m_Type = NET_PIN; ObjNet[NbrItem].m_Link = DrawLibItem; ObjNet[NbrItem].m_ElectricalType = Pin->m_PinType; @@ -623,12 +623,12 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh if( ( (int) Pin->m_PinType == (int) PIN_POWER_IN ) && ( Pin->m_Attributs & PINNOTDRAW ) ) - { + { /* Il y a un PIN_LABEL Associe */ if( ObjNet ) { ObjNet[NbrItem].m_Comp = NULL; - ObjNet[NbrItem].m_SheetList = *sheetlist; + ObjNet[NbrItem].m_SheetList = *sheetlist; ObjNet[NbrItem].m_Type = NET_PINLABEL; ObjNet[NbrItem].m_Label = &Pin->m_PinName; ObjNet[NbrItem].m_Start.x = x2; @@ -645,14 +645,14 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh case DRAW_POLYLINE_STRUCT_TYPE: case DRAW_BUSENTRY_STRUCT_TYPE: case DRAW_MARKER_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_TEXT: break; case DRAW_SHEET_STRUCT_TYPE: #undef STRUCT #define STRUCT ( (DrawSheetStruct*) DrawList ) - list = *sheetlist; - list.Push(STRUCT); + list = *sheetlist; + list.Push(STRUCT); SheetLabel = STRUCT->m_Label; for( ; SheetLabel != NULL; SheetLabel = (DrawSheetLabelStruct*) SheetLabel->Pnext ) @@ -661,7 +661,7 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh if( ObjNet ) { ObjNet[NbrItem].m_Comp = SheetLabel; - ObjNet[NbrItem].m_SheetList = *sheetlist; + ObjNet[NbrItem].m_SheetList = *sheetlist; ObjNet[NbrItem].m_Link = DrawList; ObjNet[NbrItem].m_Type = NET_SHEETLABEL; ObjNet[NbrItem].m_ElectricalType = SheetLabel->m_Shape; @@ -669,7 +669,7 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh ObjNet[NbrItem].m_SheetListInclude = list; ObjNet[NbrItem].m_Start = SheetLabel->m_Pos; ObjNet[NbrItem].m_End = ObjNet[NbrItem].m_Start; - + /* Si c'est un Bus, eclatement en Label */ if( ii ) ConvertBusToMembers( ObjNet + NbrItem ); @@ -721,10 +721,10 @@ static void ConnectBusLabels( ObjetNetListStruct* Label, int NbItems ) { if( Label->GetNet() == 0 ) { - Label->SetNet( LastNetCode ); + Label->SetNet( LastNetCode ); LastNetCode++; } - + for( LabelInTst = Label + 1; LabelInTst < Lim; LabelInTst++ ) { if( (LabelInTst->m_Type == NET_SHEETBUSLABELMEMBER) @@ -733,10 +733,10 @@ static void ConnectBusLabels( ObjetNetListStruct* Label, int NbItems ) { if( LabelInTst->m_BusNetCode != Label->m_BusNetCode ) continue; - + if( LabelInTst->m_Member != Label->m_Member ) continue; - + if( LabelInTst->GetNet() == 0 ) LabelInTst->SetNet( Label->GetNet() ); else @@ -767,7 +767,7 @@ int IsBusLabel( const wxString& LabelDrawList ) ii = LabelDrawList.Find( '[' ); if( ii < 0 ) return 0; - + Num = (unsigned) ii; FirstNumWireBus = LastNumWireBus = 9; @@ -781,7 +781,7 @@ int IsBusLabel( const wxString& LabelDrawList ) if( !BufLine.ToLong( &tmp ) ) error = TRUE; - + FirstNumWireBus = tmp; while( LabelDrawList[Num] == '.' && Num < LabelDrawList.Len() ) Num++; @@ -835,8 +835,8 @@ static int ConvertBusToMembers( ObjetNetListStruct* BusLabel ) if( BusLabel->m_Type == NET_HIERLABEL ) BusLabel->m_Type = NET_HIERBUSLABELMEMBER; - else if( BusLabel->m_Type == NET_GLOBLABEL ) - BusLabel->m_Type = NET_GLOBBUSLABELMEMBER; + else if( BusLabel->m_Type == NET_GLOBLABEL ) + BusLabel->m_Type = NET_GLOBBUSLABELMEMBER; else if( BusLabel->m_Type == NET_SHEETLABEL ) BusLabel->m_Type = NET_SHEETBUSLABELMEMBER; else @@ -844,7 +844,7 @@ static int ConvertBusToMembers( ObjetNetListStruct* BusLabel ) /* Convertion du BusLabel en la racine du Label + le numero du fil */ BufLine = BusLabel->m_Label->Left( RootBusNameLength ); - + BusMember = FirstNumWireBus; BufLine << BusMember; BusLabel->m_Label = new wxString( BufLine ); @@ -855,9 +855,9 @@ static int ConvertBusToMembers( ObjetNetListStruct* BusLabel ) for( BusMember++; BusMember <= LastNumWireBus; BusMember++ ) { *(BusLabel + 1) = *BusLabel; //copy constructor. - BusLabel++; + BusLabel++; NumItem++; - + /* Convertion du BusLabel en la racine du Label + le numero du fil */ BufLine = BusLabel->m_Label->Left( RootBusNameLength ); BufLine << BusMember; @@ -887,7 +887,7 @@ static void PropageNetCode( int OldNetCode, int NewNetCode, int IsBus ) if( OldNetCode == NewNetCode ) return; #if defined(NETLIST_DEBUG) && defined(DEBUG) - printf("replacing net %d with %d\n", OldNetCode,NewNetCode); + printf("replacing net %d with %d\n", OldNetCode,NewNetCode); #endif if( IsBus == 0 ) /* Propagation du NetCode */ @@ -920,16 +920,16 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start ) /* Routine qui verifie si l'element *Ref est connecte a * d'autres elements de la liste des objets du schema, selon le mode Point * a point ( Extremites superposees ) - * + * * si IsBus: * la connexion ne met en jeu que des elements type bus * ( BUS ou BUSLABEL ou JONCTION ) * sinon * la connexion ne met en jeu que des elements type non bus * ( autres que BUS ou BUSLABEL ) - * + * * L'objet Ref doit avoir un NetCode valide. - * + * * La liste des objets est supposee classe par SheetPath Croissants, * et la recherche se fait a partir de l'element start, 1er element * de la feuille de schema @@ -944,23 +944,23 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start ) netCode = Ref->GetNet(); for( i = start; i < g_NbrObjNet; i++ ) { - - if( netTable[i].m_SheetList != Ref->m_SheetList ) //used to be > (why?) + + if( netTable[i].m_SheetList != Ref->m_SheetList ) //used to be > (why?) continue; - + switch( netTable[i].m_Type ) { case NET_SEGMENT: case NET_PIN: case NET_LABEL: case NET_HIERLABEL: - case NET_GLOBLABEL: + case NET_GLOBLABEL: case NET_SHEETLABEL: case NET_PINLABEL: case NET_JONCTION: case NET_NOCONNECT: if( Ref->m_Start == netTable[i].m_Start - || Ref->m_Start == netTable[i].m_End + || Ref->m_Start == netTable[i].m_End || Ref->m_End == netTable[i].m_Start || Ref->m_End == netTable[i].m_End ) { @@ -975,12 +975,12 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start ) case NET_BUSLABELMEMBER: case NET_SHEETBUSLABELMEMBER: case NET_HIERBUSLABELMEMBER: - case NET_GLOBBUSLABELMEMBER: + case NET_GLOBBUSLABELMEMBER: break; } } } - + else /* Objets type BUS et BUSLABELS ( et JONCTIONS )*/ { netCode = Ref->m_BusNetCode; @@ -995,7 +995,7 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start ) case NET_PIN: case NET_LABEL: case NET_HIERLABEL: - case NET_GLOBLABEL: + case NET_GLOBLABEL: case NET_SHEETLABEL: case NET_PINLABEL: case NET_NOCONNECT: @@ -1005,10 +1005,10 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start ) case NET_BUSLABELMEMBER: case NET_SHEETBUSLABELMEMBER: case NET_HIERBUSLABELMEMBER: - case NET_GLOBBUSLABELMEMBER: + case NET_GLOBBUSLABELMEMBER: case NET_JONCTION: if( Ref->m_Start == netTable[i].m_Start - || Ref->m_Start == netTable[i].m_End + || Ref->m_Start == netTable[i].m_End || Ref->m_End == netTable[i].m_Start || Ref->m_End == netTable[i].m_End ) { @@ -1098,33 +1098,33 @@ static void LabelConnect( ObjetNetListStruct* LabelRef ) { if( netTable[i].GetNet() == LabelRef->GetNet() ) continue; - if( netTable[i].m_SheetList != LabelRef->m_SheetList ) + if( netTable[i].m_SheetList != LabelRef->m_SheetList ) { - if( (netTable[i].m_Type != NET_PINLABEL - && netTable[i].m_Type != NET_GLOBLABEL - && netTable[i].m_Type != NET_GLOBBUSLABELMEMBER) ) + if( (netTable[i].m_Type != NET_PINLABEL + && netTable[i].m_Type != NET_GLOBLABEL + && netTable[i].m_Type != NET_GLOBBUSLABELMEMBER) ) + continue; + if( (netTable[i].m_Type == NET_GLOBLABEL + || netTable[i].m_Type == NET_GLOBBUSLABELMEMBER) + && netTable[i].m_Type != LabelRef->m_Type) + //global labels only connect other global labels. continue; - if( (netTable[i].m_Type == NET_GLOBLABEL - || netTable[i].m_Type == NET_GLOBBUSLABELMEMBER) - && netTable[i].m_Type != LabelRef->m_Type) - //global labels only connect other global labels. - continue; } - //regular labels are sheet-local; - //NET_HIERLABEL are used to connect sheets. - //NET_LABEL is sheet-local (***) - //NET_GLOBLABEL is global. - if( netTable[i].m_Type == NET_LABEL + //regular labels are sheet-local; + //NET_HIERLABEL are used to connect sheets. + //NET_LABEL is sheet-local (***) + //NET_GLOBLABEL is global. + if( netTable[i].m_Type == NET_LABEL || netTable[i].m_Type == NET_GLOBLABEL - || netTable[i].m_Type == NET_HIERLABEL + || netTable[i].m_Type == NET_HIERLABEL || netTable[i].m_Type == NET_BUSLABELMEMBER || netTable[i].m_Type == NET_GLOBBUSLABELMEMBER - || netTable[i].m_Type == NET_HIERBUSLABELMEMBER + || netTable[i].m_Type == NET_HIERBUSLABELMEMBER || netTable[i].m_Type == NET_PINLABEL ) { if( netTable[i].m_Label->CmpNoCase( *LabelRef->m_Label ) != 0 ) continue; - // Propagation du Netcode a tous les Objets de meme NetCode + // Propagation du Netcode a tous les Objets de meme NetCode if( netTable[i].GetNet() ) PropageNetCode( netTable[i].GetNet(), LabelRef->GetNet(), 0 ); else @@ -1143,7 +1143,7 @@ static int TriNetCode( const void* o1, const void* o2 ) { ObjetNetListStruct* Objet1 = (ObjetNetListStruct*) o1; ObjetNetListStruct* Objet2 = (ObjetNetListStruct*) o2; - + return Objet1->GetNet() - Objet2->GetNet(); } @@ -1155,9 +1155,9 @@ static int TriBySheet( const void* o1, const void* o2 ) * du tableau des elements connectes ( TabPinSort ) par qsort() */ { - ObjetNetListStruct* Objet1 = (ObjetNetListStruct*) o1; + ObjetNetListStruct* Objet1 = (ObjetNetListStruct*) o1; ObjetNetListStruct* Objet2 = (ObjetNetListStruct*) o2; - return Objet1->m_SheetList.Cmp(Objet2->m_SheetList); + return Objet1->m_SheetList.Cmp(Objet2->m_SheetList); } /**********************************************************************/ @@ -1176,7 +1176,7 @@ static void SetUnconnectedFlag( ObjetNetListStruct* ListObj, int NbItems ) NetStart = NetEnd = ListObj; NetItemRef = NetStart; - Nb = 0; + Nb = 0; StateFlag = UNCONNECT; Lim = ListObj + NbItems; @@ -1191,7 +1191,7 @@ static void SetUnconnectedFlag( ObjetNetListStruct* ListObj, int NbItems ) if( (NetItemTst >= Lim) || (NetItemRef->GetNet() != NetItemTst->GetNet()) ) - { + { /* Net analyse: mise a jour de m_FlagOfConnection */ NetEnd = NetItemTst; @@ -1220,14 +1220,14 @@ static void SetUnconnectedFlag( ObjetNetListStruct* ListObj, int NbItems ) case NET_SEGMENT: case NET_LABEL: case NET_HIERLABEL: - case NET_GLOBLABEL: + case NET_GLOBLABEL: case NET_SHEETLABEL: case NET_PINLABEL: case NET_BUS: case NET_BUSLABELMEMBER: case NET_SHEETBUSLABELMEMBER: case NET_HIERBUSLABELMEMBER: - case NET_GLOBBUSLABELMEMBER: + case NET_GLOBBUSLABELMEMBER: case NET_JONCTION: break; diff --git a/eeschema/netlist.h b/eeschema/netlist.h index c622ec5613..0a2eb2dc17 100644 --- a/eeschema/netlist.h +++ b/eeschema/netlist.h @@ -26,7 +26,7 @@ typedef enum { * NET_TYPE_CUSTOM1+CUSTOMPANEL_COUNTMAX-1 * is the last id for user netlist format */ - NET_TYPE_CUSTOM_MAX = NET_TYPE_CUSTOM1+CUSTOMPANEL_COUNTMAX-1 + NET_TYPE_CUSTOM_MAX = NET_TYPE_CUSTOM1+CUSTOMPANEL_COUNTMAX-1 } TypeNetForm; @@ -39,11 +39,11 @@ enum NetObjetType { /* Type des objets de Net */ NET_JONCTION, NET_LABEL, NET_GLOBLABEL, - NET_HIERLABEL, //on a screen to indicate connection to a higher-level sheet - NET_SHEETLABEL, //on a drawscreen element to indicate connection to a lower-level sheet. + NET_HIERLABEL, //on a screen to indicate connection to a higher-level sheet + NET_SHEETLABEL, //on a drawscreen element to indicate connection to a lower-level sheet. NET_BUSLABELMEMBER, NET_GLOBBUSLABELMEMBER, - NET_HIERBUSLABELMEMBER, + NET_HIERBUSLABELMEMBER, NET_SHEETBUSLABELMEMBER, NET_PINLABEL, NET_PIN, @@ -93,23 +93,23 @@ public: /* Structures pour memo et liste des elements */ typedef struct ListLabel { - int m_LabelType; - void * m_Label; - char m_SheetPath[64]; + int m_LabelType; + void * m_Label; + char m_SheetPath[64]; } ListLabel; typedef struct ListComponent { - EDA_SchComponentStruct * m_Comp; - char m_Ref[32]; - //have to store it here since the object refrerences will be duplicated. - DrawSheetPath m_SheetList; //composed of UIDs + SCH_COMPONENT * m_Comp; + char m_Ref[32]; + //have to store it here since the object refrerences will be duplicated. + DrawSheetPath m_SheetList; //composed of UIDs } ListComponent; /* Structure decrivant 1 composant de la schematique (pour *annotation* ) */ struct CmpListStruct { public: - EDA_SchComponentStruct* m_Cmp; /* Pointeur sur le composant */ + SCH_COMPONENT* m_Cmp; /* Pointeur sur le composant */ int m_NbParts; /* Nombre de parts par boitier */ bool m_PartsLocked; // For multi part components: True if the part cannot be changed int m_Unit; /* Numero de part */ @@ -121,7 +121,7 @@ public: int m_NumRef; /* Numero de reference */ int m_Flag; /* flag pour calculs internes */ wxPoint m_Pos; /* position components */ - char m_Path[128]; // the 'path' of the object in the sheet hierarchy. + char m_Path[128]; // the 'path' of the object in the sheet hierarchy. }; diff --git a/eeschema/onleftclick.cpp b/eeschema/onleftclick.cpp index 9b5acf8205..b6593db050 100644 --- a/eeschema/onleftclick.cpp +++ b/eeschema/onleftclick.cpp @@ -39,15 +39,15 @@ void WinEDA_SchematicFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) { switch( DrawStruct->Type() ) { - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_TEXT: case DRAW_SHEETLABEL_STRUCT_TYPE: case DRAW_SHEET_STRUCT_TYPE: case DRAW_BUSENTRY_STRUCT_TYPE: case DRAW_JUNCTION_STRUCT_TYPE: - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: case DRAW_PART_TEXT_STRUCT_TYPE: DrawStruct->Place( this, DC ); GetScreen()->SetCurItem( NULL ); @@ -354,16 +354,16 @@ void WinEDA_SchematicFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) InstallNextScreen( (DrawSheetStruct*) DrawStruct ); break; - case DRAW_LIB_ITEM_STRUCT_TYPE: - InstallCmpeditFrame( this, pos, (EDA_SchComponentStruct*) DrawStruct ); + case TYPE_SCH_COMPONENT: + InstallCmpeditFrame( this, pos, (SCH_COMPONENT*) DrawStruct ); DrawPanel->MouseToCursorSchema(); break; - case DRAW_TEXT_STRUCT_TYPE: - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - EditSchematicText( (DrawTextStruct*) DrawStruct, DC ); + case TYPE_SCH_TEXT: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + EditSchematicText( (SCH_TEXT*) DrawStruct, DC ); break; case DRAW_PART_TEXT_STRUCT_TYPE: diff --git a/eeschema/onrightclick.cpp b/eeschema/onrightclick.cpp index 3ab6b87e52..499d500e01 100644 --- a/eeschema/onrightclick.cpp +++ b/eeschema/onrightclick.cpp @@ -55,11 +55,11 @@ static void AddMenusForBus( wxMenu* PopMenu, EDA_DrawLineStruct* Bus, WinEDA_SchematicFrame* frame ); static void AddMenusForHierchicalSheet( wxMenu* PopMenu, DrawSheetStruct* Sheet ); static void AddMenusForPinSheet( wxMenu* PopMenu, DrawSheetLabelStruct* PinSheet ); -static void AddMenusForText( wxMenu* PopMenu, DrawTextStruct* Text ); -static void AddMenusForLabel( wxMenu* PopMenu, DrawLabelStruct* Label ); -static void AddMenusForGLabel( wxMenu* PopMenu, DrawGlobalLabelStruct* GLabel ); -static void AddMenusForHLabel( wxMenu* PopMenu, DrawHierLabelStruct* GLabel ); -static void AddMenusForComponent( wxMenu* PopMenu, EDA_SchComponentStruct* Component ); +static void AddMenusForText( wxMenu* PopMenu, SCH_TEXT* Text ); +static void AddMenusForLabel( wxMenu* PopMenu, SCH_LABEL* Label ); +static void AddMenusForGLabel( wxMenu* PopMenu, SCH_GLOBALLABEL* GLabel ); +static void AddMenusForHLabel( wxMenu* PopMenu, SCH_HIERLABEL* GLabel ); +static void AddMenusForComponent( wxMenu* PopMenu, SCH_COMPONENT* Component ); static void AddMenusForComponentField( wxMenu* PopMenu, PartTextStruct* Field ); static void AddMenusForJunction( wxMenu* PopMenu, DrawJunctionStruct* Junction, WinEDA_SchematicFrame* frame ); @@ -90,20 +90,20 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos, * Ce menu est ensuite compl�t� par la liste des commandes de ZOOM */ { - EDA_BaseStruct* DrawStruct = GetScreen()->GetCurItem(); - bool BlockActive = (GetScreen()->BlockLocate.m_Command != BLOCK_IDLE); + EDA_BaseStruct* DrawStruct = GetScreen()->GetCurItem(); + bool BlockActive = (GetScreen()->BlockLocate.m_Command != BLOCK_IDLE); DrawPanel->m_CanStartBlock = -1; // Ne pas engager un debut de bloc sur validation menu if( BlockActive ) - { - AddMenusForBlock( PopMenu, this ); + { + AddMenusForBlock( PopMenu, this ); PopMenu->AppendSeparator(); - return true; - } + return true; + } - // Simple localisation des elements si possible + // Simple localisation des elements si possible if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) { DrawStruct = SchematicGeneralLocateAndDisplay( FALSE ); @@ -111,7 +111,7 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos, { DrawSheetLabelStruct* slabel; slabel = LocateSheetLabel( (DrawSheetStruct*) DrawStruct, - GetScreen()->m_Curseur ); + GetScreen()->m_Curseur ); if( slabel ) DrawStruct = slabel; } @@ -134,8 +134,8 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos, { if( DrawStruct && DrawStruct->m_Flags ) { - ADD_MENUITEM( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), cancel_xpm ); - PopMenu->AppendSeparator(); + ADD_MENUITEM( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), cancel_xpm ); + PopMenu->AppendSeparator(); } } @@ -149,7 +149,7 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos, return true; } - GetScreen()->SetCurItem( DrawStruct ); + GetScreen()->SetCurItem( DrawStruct ); int flags = DrawStruct->m_Flags; bool is_new = (flags & IS_NEW) ? TRUE : FALSE; @@ -182,20 +182,20 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos, ADD_MENUITEM( PopMenu, ID_POPUP_SCH_DELETE, _( "delete Marker" ), delete_xpm ); break; - case DRAW_TEXT_STRUCT_TYPE: - AddMenusForText( PopMenu, (DrawTextStruct*) DrawStruct ); + case TYPE_SCH_TEXT: + AddMenusForText( PopMenu, (SCH_TEXT*) DrawStruct ); break; - case DRAW_LABEL_STRUCT_TYPE: - AddMenusForLabel( PopMenu, (DrawLabelStruct*) DrawStruct ); + case TYPE_SCH_LABEL: + AddMenusForLabel( PopMenu, (SCH_LABEL*) DrawStruct ); break; - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - AddMenusForGLabel( PopMenu, (DrawGlobalLabelStruct*) DrawStruct ); + case TYPE_SCH_GLOBALLABEL: + AddMenusForGLabel( PopMenu, (SCH_GLOBALLABEL*) DrawStruct ); break; - - case DRAW_HIER_LABEL_STRUCT_TYPE: - AddMenusForHLabel( PopMenu, (DrawHierLabelStruct*) DrawStruct ); + + case TYPE_SCH_HIERLABEL: + AddMenusForHLabel( PopMenu, (SCH_HIERLABEL*) DrawStruct ); break; case DRAW_PART_TEXT_STRUCT_TYPE: @@ -205,17 +205,17 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos, break; // Many fields are inside a component. If this is the case, add the component menu - EDA_SchComponentStruct* Component = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); + SCH_COMPONENT* Component = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() ); if( Component ) { PopMenu->AppendSeparator(); - AddMenusForComponent( PopMenu, (EDA_SchComponentStruct*) DrawStruct ); + AddMenusForComponent( PopMenu, (SCH_COMPONENT*) DrawStruct ); } } break; - case DRAW_LIB_ITEM_STRUCT_TYPE: - AddMenusForComponent( PopMenu, (EDA_SchComponentStruct*) DrawStruct ); + case TYPE_SCH_COMPONENT: + AddMenusForComponent( PopMenu, (SCH_COMPONENT*) DrawStruct ); break; case DRAW_SEGMENT_STRUCT_TYPE: @@ -259,7 +259,7 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos, } PopMenu->AppendSeparator(); - return true; + return true; } @@ -278,7 +278,7 @@ void AddMenusForComponentField( wxMenu* PopMenu, PartTextStruct* Field ) /**************************************************************************/ -void AddMenusForComponent( wxMenu* PopMenu, EDA_SchComponentStruct* Component ) +void AddMenusForComponent( wxMenu* PopMenu, SCH_COMPONENT* Component ) /**************************************************************************/ /* Add menu commands for a component @@ -321,13 +321,13 @@ void AddMenusForComponent( wxMenu* PopMenu, EDA_SchComponentStruct* Component ) if( LibEntry && LibEntry->m_Options != ENTRY_POWER ) { - msg = AddHotkeyName( _( "Value " ), s_Schematic_Hokeys_Descr, HK_EDIT_COMPONENT_VALUE ); - ADD_MENUITEM( editmenu, ID_POPUP_SCH_EDIT_VALUE_CMP, msg, edit_comp_value_xpm ); - + msg = AddHotkeyName( _( "Value " ), s_Schematic_Hokeys_Descr, HK_EDIT_COMPONENT_VALUE ); + ADD_MENUITEM( editmenu, ID_POPUP_SCH_EDIT_VALUE_CMP, msg, edit_comp_value_xpm ); + ADD_MENUITEM( editmenu, ID_POPUP_SCH_EDIT_REF_CMP, _( "Reference" ), edit_comp_ref_xpm ); - - msg = AddHotkeyName( _( "Footprint " ), s_Schematic_Hokeys_Descr, HK_EDIT_COMPONENT_FOOTPRINT ); - ADD_MENUITEM( editmenu, ID_POPUP_SCH_EDIT_FOOTPRINT_CMP, msg, edit_comp_footprint_xpm ); + + msg = AddHotkeyName( _( "Footprint " ), s_Schematic_Hokeys_Descr, HK_EDIT_COMPONENT_FOOTPRINT ); + ADD_MENUITEM( editmenu, ID_POPUP_SCH_EDIT_FOOTPRINT_CMP, msg, edit_comp_footprint_xpm ); } if( LibEntry && (LookForConvertPart( LibEntry ) >= 2) ) editmenu->Append( ID_POPUP_SCH_EDIT_CONVERT_CMP, _( "Convert" ) ); @@ -363,7 +363,7 @@ void AddMenusForComponent( wxMenu* PopMenu, EDA_SchComponentStruct* Component ) /*******************************************************************/ -void AddMenusForGLabel( wxMenu* PopMenu, DrawGlobalLabelStruct* GLabel ) +void AddMenusForGLabel( wxMenu* PopMenu, SCH_GLOBALLABEL* GLabel ) /*******************************************************************/ /* Add menu commands for a Global Label @@ -388,7 +388,7 @@ void AddMenusForGLabel( wxMenu* PopMenu, DrawGlobalLabelStruct* GLabel ) ID_POPUP_SCH_CHANGE_TYPE_TEXT, _( "Change Type" ), gl_change_xpm ); } /*******************************************************************/ -void AddMenusForHLabel( wxMenu* PopMenu, DrawHierLabelStruct* HLabel ) +void AddMenusForHLabel( wxMenu* PopMenu, SCH_HIERLABEL* HLabel ) /*******************************************************************/ /* Add menu commands for a hierarchal Label */ @@ -414,7 +414,7 @@ void AddMenusForHLabel( wxMenu* PopMenu, DrawHierLabelStruct* HLabel ) /*****************************************************************/ -void AddMenusForLabel( wxMenu* PopMenu, DrawLabelStruct* Label ) +void AddMenusForLabel( wxMenu* PopMenu, SCH_LABEL* Label ) /*****************************************************************/ /* Add menu commands for a Label @@ -441,7 +441,7 @@ void AddMenusForLabel( wxMenu* PopMenu, DrawLabelStruct* Label ) /*****************************************************************/ -void AddMenusForText( wxMenu* PopMenu, DrawTextStruct* Text ) +void AddMenusForText( wxMenu* PopMenu, SCH_TEXT* Text ) /*****************************************************************/ /* Add menu commands for a Text (a comment) diff --git a/eeschema/plot.cpp b/eeschema/plot.cpp index e88cdcd24f..af0b666f14 100644 --- a/eeschema/plot.cpp +++ b/eeschema/plot.cpp @@ -16,7 +16,7 @@ /* Variables locales : */ static void PlotSheetLabelStruct( DrawSheetLabelStruct* Struct ); -static void PlotTextField( EDA_SchComponentStruct* DrawLibItem, +static void PlotTextField( SCH_COMPONENT* DrawLibItem, int FieldNumber, int IsMulti, int DrawMode ); static void PlotPinSymbol( int posX, int posY, int len, int orient, int Shape ); @@ -164,7 +164,7 @@ void PlotNoConnectStruct( DrawNoConnectStruct* Struct ) /*************************************************/ -void PlotLibPart( EDA_SchComponentStruct* DrawLibItem ) +void PlotLibPart( SCH_COMPONENT* DrawLibItem ) /*************************************************/ /* Genere le trace d'un composant */ { @@ -342,7 +342,7 @@ void PlotLibPart( EDA_SchComponentStruct* DrawLibItem ) /*************************************************************/ -static void PlotTextField( EDA_SchComponentStruct* DrawLibItem, +static void PlotTextField( SCH_COMPONENT* DrawLibItem, int FieldNumber, int IsMulti, int DrawMode ) /**************************************************************/ @@ -553,22 +553,22 @@ void PlotTextStruct( EDA_BaseStruct* Struct ) switch( Struct->Type() ) { - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: - Text = ( (DrawTextStruct*) Struct )->m_Text; - Size = ( (DrawTextStruct*) Struct )->m_Size; - Orient = ( (DrawTextStruct*) Struct )->m_Orient; - Shape = ( (DrawTextStruct*) Struct )->m_Shape; - pX = ( (DrawTextStruct*) Struct )->m_Pos.x; - pY = ( (DrawTextStruct*) Struct )->m_Pos.y; + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_LABEL: + case TYPE_SCH_TEXT: + Text = ( (SCH_TEXT*) Struct )->m_Text; + Size = ( (SCH_TEXT*) Struct )->m_Size; + Orient = ( (SCH_TEXT*) Struct )->m_Orient; + Shape = ( (SCH_TEXT*) Struct )->m_Shape; + pX = ( (SCH_TEXT*) Struct )->m_Pos.x; + pY = ( (SCH_TEXT*) Struct )->m_Pos.y; offset = TXTMARGE; - if( Struct->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE - || Struct->Type() == DRAW_HIER_LABEL_STRUCT_TYPE ) + if( Struct->Type() == TYPE_SCH_GLOBALLABEL + || Struct->Type() == TYPE_SCH_HIERLABEL ) offset += Size.x; // We must draw the Glabel graphic symbol if( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt ) - color = ReturnLayerColor( ( (DrawTextStruct*) Struct )->m_Layer ); + color = ReturnLayerColor( ( (SCH_TEXT*) Struct )->m_Layer ); break; default: @@ -580,31 +580,31 @@ void PlotTextStruct( EDA_BaseStruct* Struct ) SetCurrentLineWidth( -1 ); - if ( Struct->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE ) - { - offset = ( (DrawGlobalLabelStruct*) Struct )->m_Width; - switch( Shape ) - { - case NET_INPUT: - case NET_BIDI: - case NET_TRISTATE: - offset += Size.x/2; - break; + if ( Struct->Type() == TYPE_SCH_GLOBALLABEL ) + { + offset = ( (SCH_GLOBALLABEL*) Struct )->m_Width; + switch( Shape ) + { + case NET_INPUT: + case NET_BIDI: + case NET_TRISTATE: + offset += Size.x/2; + break; - case NET_OUTPUT: - offset += TXTMARGE; - break; + case NET_OUTPUT: + offset += TXTMARGE; + break; - default: - break; - } - } + default: + break; + } + } switch( Orient ) { case 0: /* Orientation horiz normale */ - if( Struct->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE || Struct->Type() == DRAW_HIER_LABEL_STRUCT_TYPE ) + if( Struct->Type() == TYPE_SCH_GLOBALLABEL || Struct->Type() == TYPE_SCH_HIERLABEL ) PlotGraphicText( g_PlotFormat, wxPoint( pX - offset, pY ), color, Text, TEXT_ORIENT_HORIZ, Size, GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER ); @@ -615,7 +615,7 @@ void PlotTextStruct( EDA_BaseStruct* Struct ) break; case 1: /* Orientation vert UP */ - if( Struct->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE || Struct->Type() == DRAW_HIER_LABEL_STRUCT_TYPE ) + if( Struct->Type() == TYPE_SCH_GLOBALLABEL || Struct->Type() == TYPE_SCH_HIERLABEL ) PlotGraphicText( g_PlotFormat, wxPoint( pX, pY + offset ), color, Text, TEXT_ORIENT_VERT, Size, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP ); @@ -626,7 +626,7 @@ void PlotTextStruct( EDA_BaseStruct* Struct ) break; case 2: /* Horiz Orientation - Right justified */ - if( Struct->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE || Struct->Type() == DRAW_HIER_LABEL_STRUCT_TYPE ) + if( Struct->Type() == TYPE_SCH_GLOBALLABEL || Struct->Type() == TYPE_SCH_HIERLABEL ) PlotGraphicText( g_PlotFormat, wxPoint( pX + offset, pY ), color, Text, TEXT_ORIENT_HORIZ, Size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER ); @@ -637,7 +637,7 @@ void PlotTextStruct( EDA_BaseStruct* Struct ) break; case 3: /* Orientation vert BOTTOM */ - if( Struct->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE || Struct->Type() == DRAW_HIER_LABEL_STRUCT_TYPE ) + if( Struct->Type() == TYPE_SCH_GLOBALLABEL || Struct->Type() == TYPE_SCH_HIERLABEL ) PlotGraphicText( g_PlotFormat, wxPoint( pX, pY - offset ), color, Text, TEXT_ORIENT_VERT, Size, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM ); @@ -649,14 +649,14 @@ void PlotTextStruct( EDA_BaseStruct* Struct ) } /* Draw graphic symbol for global or hierachical labels */ - if( Struct->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE ) + if( Struct->Type() == TYPE_SCH_GLOBALLABEL ) { - ( (DrawGlobalLabelStruct*) Struct )->CreateGraphicShape( Poly, wxPoint(pX, pY) ); + ( (SCH_GLOBALLABEL*) Struct )->CreateGraphicShape( Poly, wxPoint(pX, pY) ); PlotPoly( Poly[0], Poly + 1, NOFILL ); } - if( Struct->Type() == DRAW_HIER_LABEL_STRUCT_TYPE ) + if( Struct->Type() == TYPE_SCH_HIERLABEL ) { - ( (DrawHierLabelStruct*) Struct )->CreateGraphicShape( Poly, wxPoint(pX, pY) ); + ( (SCH_HIERLABEL*) Struct )->CreateGraphicShape( Poly, wxPoint(pX, pY) ); PlotPoly( Poly[0], Poly + 1, NOFILL ); } } diff --git a/eeschema/plothpgl.cpp b/eeschema/plothpgl.cpp index feb74b48e6..f775f37546 100644 --- a/eeschema/plothpgl.cpp +++ b/eeschema/plothpgl.cpp @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// // Name: plothpgl.cpp -// Purpose: +// Purpose: // Author: jean-pierre Charras -// Modified by: +// Modified by: // Created: 04/02/2006 16:54:19 -// RCS-ID: +// RCS-ID: // Copyright: License GNU -// Licence: +// Licence: ///////////////////////////////////////////////////////////////////////////// // Generated by DialogBlocks (unregistered), 04/02/2006 16:54:19 @@ -62,34 +62,34 @@ static double Scale_Y = 1; int HPGL_SizeSelect; enum PageFormatReq { - PAGE_DEFAULT = 0, - PAGE_SIZE_A4, - PAGE_SIZE_A3, - PAGE_SIZE_A2, - PAGE_SIZE_A1, - PAGE_SIZE_A0, - PAGE_SIZE_A, - PAGE_SIZE_B, - PAGE_SIZE_C, - PAGE_SIZE_D, - PAGE_SIZE_E + PAGE_DEFAULT = 0, + PAGE_SIZE_A4, + PAGE_SIZE_A3, + PAGE_SIZE_A2, + PAGE_SIZE_A1, + PAGE_SIZE_A0, + PAGE_SIZE_A, + PAGE_SIZE_B, + PAGE_SIZE_C, + PAGE_SIZE_D, + PAGE_SIZE_E }; static Ki_PageDescr * Plot_sheet_list[] = { - NULL, - &g_Sheet_A4, - &g_Sheet_A3, - &g_Sheet_A2, - &g_Sheet_A1, - &g_Sheet_A0, - &g_Sheet_A, - &g_Sheet_B, - &g_Sheet_C, - &g_Sheet_D, - &g_Sheet_E, - &g_Sheet_GERBER, - &g_Sheet_user + NULL, + &g_Sheet_A4, + &g_Sheet_A3, + &g_Sheet_A2, + &g_Sheet_A1, + &g_Sheet_A0, + &g_Sheet_A, + &g_Sheet_B, + &g_Sheet_C, + &g_Sheet_D, + &g_Sheet_E, + &g_Sheet_GERBER, + &g_Sheet_user }; /* Routines Locales */ @@ -101,9 +101,9 @@ static Ki_PageDescr * Plot_sheet_list[] = void WinEDA_SchematicFrame::ToPlot_HPGL(wxCommandEvent& event) /**************************************************************/ { - WinEDA_PlotHPGLFrame * HPGL_frame = new WinEDA_PlotHPGLFrame(this); - HPGL_frame->ShowModal(); - HPGL_frame->Destroy(); + WinEDA_PlotHPGLFrame * HPGL_frame = new WinEDA_PlotHPGLFrame(this); + HPGL_frame->ShowModal(); + HPGL_frame->Destroy(); } /*! @@ -149,9 +149,9 @@ WinEDA_PlotHPGLFrame::WinEDA_PlotHPGLFrame( ) WinEDA_PlotHPGLFrame::WinEDA_PlotHPGLFrame( WinEDA_DrawFrame* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) { - m_Parent = parent; + m_Parent = parent; Create(parent, id, caption, pos, size, style); - SetPageOffsetValue(); + SetPageOffsetValue(); } /*! @@ -187,8 +187,8 @@ bool WinEDA_PlotHPGLFrame::Create( wxWindow* parent, wxWindowID id, const wxStri */ void WinEDA_PlotHPGLFrame::CreateControls() -{ - SetFont(*g_DialogFont); +{ + SetFont(*g_DialogFont); ////@begin WinEDA_PlotHPGLFrame content construction // Generated by DialogBlocks, 04/02/2006 16:54:19 (unregistered) @@ -303,7 +303,7 @@ void WinEDA_PlotHPGLFrame::CreateControls() void WinEDA_PlotHPGLFrame::OnPlotHpglCurrentExecuteClick( wxCommandEvent& event ) { - HPGL_Plot(event); + HPGL_Plot(event); } /*! @@ -312,7 +312,7 @@ void WinEDA_PlotHPGLFrame::OnPlotHpglCurrentExecuteClick( wxCommandEvent& event void WinEDA_PlotHPGLFrame::OnPlotHpglAllExecuteClick( wxCommandEvent& event ) { - HPGL_Plot(event); + HPGL_Plot(event); } /*! @@ -324,7 +324,7 @@ void WinEDA_PlotHPGLFrame::OnCancelClick( wxCommandEvent& event ) ////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL in WinEDA_PlotHPGLFrame. // Before editing this code, remove the block markers. event.Skip(); -////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL in WinEDA_PlotHPGLFrame. +////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL in WinEDA_PlotHPGLFrame. } /*! @@ -333,7 +333,7 @@ void WinEDA_PlotHPGLFrame::OnCancelClick( wxCommandEvent& event ) void WinEDA_PlotHPGLFrame::OnPlotAcceptOffsetClick( wxCommandEvent& event ) { - AcceptPlotOffset(event); + AcceptPlotOffset(event); } /*! @@ -378,24 +378,24 @@ void WinEDA_PlotHPGLFrame::SetPageOffsetValue() /***************************************************/ { wxString msg; - if ( HPGL_SizeSelect != PAGE_DEFAULT ) - { - msg = ReturnStringFromValue(g_UnitMetric, - Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x, EESCHEMA_INTERNAL_UNIT); - m_PlotOrgPosition_X->SetValue(msg); - msg = ReturnStringFromValue(g_UnitMetric, - Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y, EESCHEMA_INTERNAL_UNIT); - m_PlotOrgPosition_Y->SetValue(msg); - - m_PlotOrgPosition_X->Enable(TRUE); - m_PlotOrgPosition_Y->Enable(TRUE); + if ( HPGL_SizeSelect != PAGE_DEFAULT ) + { + msg = ReturnStringFromValue(g_UnitMetric, + Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x, EESCHEMA_INTERNAL_UNIT); + m_PlotOrgPosition_X->SetValue(msg); + msg = ReturnStringFromValue(g_UnitMetric, + Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y, EESCHEMA_INTERNAL_UNIT); + m_PlotOrgPosition_Y->SetValue(msg); - } - else - { - m_PlotOrgPosition_X->Enable(FALSE); - m_PlotOrgPosition_Y->Enable(FALSE); - } + m_PlotOrgPosition_X->Enable(TRUE); + m_PlotOrgPosition_Y->Enable(TRUE); + + } + else + { + m_PlotOrgPosition_X->Enable(FALSE); + m_PlotOrgPosition_Y->Enable(FALSE); + } } /*****************************************************************/ @@ -404,18 +404,18 @@ void WinEDA_PlotHPGLFrame::AcceptPlotOffset(wxCommandEvent& event) { int ii = m_SizeOption->GetSelection(); - if ( ii <= 0 ) HPGL_SizeSelect = 0; - else HPGL_SizeSelect = ii; + if ( ii <= 0 ) HPGL_SizeSelect = 0; + else HPGL_SizeSelect = ii; - if ( HPGL_SizeSelect != PAGE_DEFAULT) - { - wxString msg = m_PlotOrgPosition_X->GetValue(); - Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x = - ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT); - msg = m_PlotOrgPosition_Y->GetValue(); - Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y = - ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT); - } + if ( HPGL_SizeSelect != PAGE_DEFAULT) + { + wxString msg = m_PlotOrgPosition_X->GetValue(); + Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x = + ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT); + msg = m_PlotOrgPosition_Y->GetValue(); + Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y = + ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT); + } } @@ -423,9 +423,9 @@ int ii = m_SizeOption->GetSelection(); void WinEDA_PlotHPGLFrame::SetPenWidth(wxSpinEvent & event) /************************************************************/ { - g_HPGL_Pen_Descr.m_Pen_Diam = m_ButtPenWidth->GetValue(); - if ( g_HPGL_Pen_Descr.m_Pen_Diam > 100 ) g_HPGL_Pen_Descr.m_Pen_Diam = 100; - if ( g_HPGL_Pen_Descr.m_Pen_Diam < 1 ) g_HPGL_Pen_Descr.m_Pen_Diam = 1; + g_HPGL_Pen_Descr.m_Pen_Diam = m_ButtPenWidth->GetValue(); + if ( g_HPGL_Pen_Descr.m_Pen_Diam > 100 ) g_HPGL_Pen_Descr.m_Pen_Diam = 100; + if ( g_HPGL_Pen_Descr.m_Pen_Diam < 1 ) g_HPGL_Pen_Descr.m_Pen_Diam = 1; } @@ -433,18 +433,18 @@ void WinEDA_PlotHPGLFrame::SetPenWidth(wxSpinEvent & event) void WinEDA_PlotHPGLFrame::SetPenSpeed(wxSpinEvent& event) /*********************************************************/ { - g_HPGL_Pen_Descr.m_Pen_Speed = m_ButtPenSpeed->GetValue(); - if ( g_HPGL_Pen_Descr.m_Pen_Speed > 40 ) g_HPGL_Pen_Descr.m_Pen_Speed = 40; - if ( g_HPGL_Pen_Descr.m_Pen_Speed < 1 ) g_HPGL_Pen_Descr.m_Pen_Speed = 1; + g_HPGL_Pen_Descr.m_Pen_Speed = m_ButtPenSpeed->GetValue(); + if ( g_HPGL_Pen_Descr.m_Pen_Speed > 40 ) g_HPGL_Pen_Descr.m_Pen_Speed = 40; + if ( g_HPGL_Pen_Descr.m_Pen_Speed < 1 ) g_HPGL_Pen_Descr.m_Pen_Speed = 1; } /*******************************************************/ void WinEDA_PlotHPGLFrame::SetPenNum(wxSpinEvent& event) /*******************************************************/ { - g_HPGL_Pen_Descr.m_Pen_Num = m_ButtPenNum->GetValue(); - if ( g_HPGL_Pen_Descr.m_Pen_Num > 8 ) g_HPGL_Pen_Descr.m_Pen_Num = 8; - if ( g_HPGL_Pen_Descr.m_Pen_Num < 1 ) g_HPGL_Pen_Descr.m_Pen_Num = 1; + g_HPGL_Pen_Descr.m_Pen_Num = m_ButtPenNum->GetValue(); + if ( g_HPGL_Pen_Descr.m_Pen_Num > 8 ) g_HPGL_Pen_Descr.m_Pen_Num = 8; + if ( g_HPGL_Pen_Descr.m_Pen_Num < 1 ) g_HPGL_Pen_Descr.m_Pen_Num = 1; } @@ -454,37 +454,37 @@ void WinEDA_PlotHPGLFrame::HPGL_Plot(wxCommandEvent& event) { int Select_PlotAll = FALSE; - if( event.GetId() == ID_PLOT_HPGL_ALL_EXECUTE ) Select_PlotAll = TRUE; + if( event.GetId() == ID_PLOT_HPGL_ALL_EXECUTE ) Select_PlotAll = TRUE; - if ( HPGL_SizeSelect ) - { - wxString msg = m_PlotOrgPosition_X->GetValue(); - Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x = - ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT); - msg = m_PlotOrgPosition_Y->GetValue(); - Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y = - ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT); - } + if ( HPGL_SizeSelect ) + { + wxString msg = m_PlotOrgPosition_X->GetValue(); + Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x = + ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT); + msg = m_PlotOrgPosition_Y->GetValue(); + Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y = + ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT); + } - Plot_Schematic_HPGL(Select_PlotAll, HPGL_SizeSelect); + Plot_Schematic_HPGL(Select_PlotAll, HPGL_SizeSelect); } /*******************************************************************/ void WinEDA_PlotHPGLFrame::ReturnSheetDims( BASE_SCREEN * screen, - wxSize & SheetSize, wxPoint & SheetOffset) + wxSize & SheetSize, wxPoint & SheetOffset) /*******************************************************************/ /* Fonction calculant les dims et offsets de trace de la feuille selectionnee - retourne: + retourne: */ { Ki_PageDescr * PlotSheet; - if( screen == NULL ) screen = m_Parent->GetScreen(); + if( screen == NULL ) screen = m_Parent->GetScreen(); - PlotSheet = screen->m_CurrentSheetDesc; + PlotSheet = screen->m_CurrentSheetDesc; - SheetSize = PlotSheet->m_Size; - SheetOffset = PlotSheet->m_Offset; + SheetSize = PlotSheet->m_Size; + SheetOffset = PlotSheet->m_Offset; } /***********************************************************************************/ @@ -498,182 +498,182 @@ wxSize SheetSize; wxPoint SheetOffset, PlotOffset; int margin; - g_PlotFormat = PLOT_FORMAT_HPGL; + g_PlotFormat = PLOT_FORMAT_HPGL; - /* Build the screen list */ - EDA_ScreenList ScreenList; + /* Build the screen list */ + EDA_ScreenList ScreenList; - if ( Select_PlotAll == TRUE ) screen = ScreenList.GetFirst(); - else screen = m_Parent->GetScreen(); - for ( ; screen != NULL; screen = ScreenList.GetNext() ) - { - ReturnSheetDims(screen, SheetSize, SheetOffset); - /* Calcul des echelles de conversion */ - g_PlotScaleX = Scale_X * SCALE_HPGL ; - g_PlotScaleY = Scale_Y * SCALE_HPGL ; + if ( Select_PlotAll == TRUE ) screen = ScreenList.GetFirst(); + else screen = m_Parent->GetScreen(); + for ( ; screen != NULL; screen = ScreenList.GetNext() ) + { + ReturnSheetDims(screen, SheetSize, SheetOffset); + /* Calcul des echelles de conversion */ + g_PlotScaleX = Scale_X * SCALE_HPGL ; + g_PlotScaleY = Scale_Y * SCALE_HPGL ; - margin = 400; // Margin in mils - PlotSheet = screen->m_CurrentSheetDesc; - g_PlotScaleX = g_PlotScaleX * (SheetSize.x - 2 * margin)/ PlotSheet->m_Size.x; - g_PlotScaleY = g_PlotScaleY * (SheetSize.y - 2 * margin) / PlotSheet->m_Size.y; + margin = 400; // Margin in mils + PlotSheet = screen->m_CurrentSheetDesc; + g_PlotScaleX = g_PlotScaleX * (SheetSize.x - 2 * margin)/ PlotSheet->m_Size.x; + g_PlotScaleY = g_PlotScaleY * (SheetSize.y - 2 * margin) / PlotSheet->m_Size.y; - /* calcul des offsets */ - PlotOffset.x = - (int)(SheetOffset.x * SCALE_HPGL); - PlotOffset.y = (int)( (SheetOffset.y + SheetSize.y) * SCALE_HPGL); - PlotOffset.x -= (int)(margin * SCALE_HPGL); - PlotOffset.y += (int)(margin * SCALE_HPGL); + /* calcul des offsets */ + PlotOffset.x = - (int)(SheetOffset.x * SCALE_HPGL); + PlotOffset.y = (int)( (SheetOffset.y + SheetSize.y) * SCALE_HPGL); + PlotOffset.x -= (int)(margin * SCALE_HPGL); + PlotOffset.y += (int)(margin * SCALE_HPGL); - wxSplitPath(screen->m_FileName.GetData(), (wxString*) NULL, - &ShortFileName, (wxString*) NULL); - wxString dirbuf = wxGetCwd() + STRING_DIR_SEP; - if( ! ShortFileName.IsEmpty() ) - PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".plt")); - else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".plt")); + wxSplitPath(screen->m_FileName.GetData(), (wxString*) NULL, + &ShortFileName, (wxString*) NULL); + wxString dirbuf = wxGetCwd() + STRING_DIR_SEP; + if( ! ShortFileName.IsEmpty() ) + PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".plt")); + else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".plt")); - setlocale(LC_NUMERIC, "C"); - InitPlotParametresHPGL(PlotOffset, g_PlotScaleX, g_PlotScaleY); - Plot_1_Page_HPGL(PlotFileName,screen); - setlocale(LC_NUMERIC, ""); - screen = (BASE_SCREEN*)screen->Pnext; - if ( Select_PlotAll == FALSE ) break; - } + setlocale(LC_NUMERIC, "C"); + InitPlotParametresHPGL(PlotOffset, g_PlotScaleX, g_PlotScaleY); + Plot_1_Page_HPGL(PlotFileName,screen); + setlocale(LC_NUMERIC, ""); + screen = (BASE_SCREEN*)screen->Pnext; + if ( Select_PlotAll == FALSE ) break; + } - m_MsgBox->AppendText(_("** Plot End **\n")); + m_MsgBox->AppendText(_("** Plot End **\n")); } /**************************************************************************/ void WinEDA_PlotHPGLFrame::Plot_1_Page_HPGL(const wxString & FullFileName, - BASE_SCREEN * screen) + BASE_SCREEN * screen) /**************************************************************************/ /* Trace en format HPGL. d'une feuille de dessin - 1 unite HPGL = 0.98 mils ( 1 mil = 1.02041 unite HPGL ) . + 1 unite HPGL = 0.98 mils ( 1 mil = 1.02041 unite HPGL ) . */ { EDA_BaseStruct *DrawList; -EDA_SchComponentStruct *DrawLibItem; +SCH_COMPONENT *DrawLibItem; int x1=0, y1=0, x2=0, y2=0, layer; wxString msg; - PlotOutput = wxFopen(FullFileName, wxT("wt")); - if (PlotOutput == 0) - { - msg = _("Unable to create ") + FullFileName; - DisplayError(this, msg); return ; - } + PlotOutput = wxFopen(FullFileName, wxT("wt")); + if (PlotOutput == 0) + { + msg = _("Unable to create ") + FullFileName; + DisplayError(this, msg); return ; + } - msg = _("Plot ") + FullFileName + wxT("\n"); - m_MsgBox->AppendText(msg); + msg = _("Plot ") + FullFileName + wxT("\n"); + m_MsgBox->AppendText(msg); - /* Init : */ - PrintHeaderHPGL(PlotOutput, g_HPGL_Pen_Descr.m_Pen_Speed, g_HPGL_Pen_Descr.m_Pen_Num); + /* Init : */ + PrintHeaderHPGL(PlotOutput, g_HPGL_Pen_Descr.m_Pen_Speed, g_HPGL_Pen_Descr.m_Pen_Num); - PlotWorkSheet(PLOT_FORMAT_HPGL, screen); + PlotWorkSheet(PLOT_FORMAT_HPGL, screen); - DrawList = screen->EEDrawList; - while ( DrawList ) /* tracage */ - { - Plume('U'); - layer = LAYER_NOTES; - switch( DrawList->Type() ) - { - case DRAW_BUSENTRY_STRUCT_TYPE : - #undef STRUCT - #define STRUCT ((DrawBusEntryStruct*)DrawList) - x1 = STRUCT->m_Pos.x; y1 = STRUCT->m_Pos.y; - x2 = STRUCT->m_End().x; y2 = STRUCT->m_End().y; - layer = STRUCT->m_Layer; - case DRAW_SEGMENT_STRUCT_TYPE : - #undef STRUCT - #define STRUCT ((EDA_DrawLineStruct*)DrawList) - if ( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE) - { - x1 = STRUCT->m_Start.x; y1 = STRUCT->m_Start.y; - x2 = STRUCT->m_End.x; y2 = STRUCT->m_End.y; - layer = STRUCT->m_Layer; - } - switch (layer) - { - case LAYER_NOTES: /* Trace en pointilles */ - Move_Plume( wxPoint(x1,y1),'U'); - fprintf(PlotOutput,"LT 2;\n"); - Move_Plume( wxPoint(x2,y2),'D'); - fprintf(PlotOutput,"LT;\n"); - break; + DrawList = screen->EEDrawList; + while ( DrawList ) /* tracage */ + { + Plume('U'); + layer = LAYER_NOTES; + switch( DrawList->Type() ) + { + case DRAW_BUSENTRY_STRUCT_TYPE : + #undef STRUCT + #define STRUCT ((DrawBusEntryStruct*)DrawList) + x1 = STRUCT->m_Pos.x; y1 = STRUCT->m_Pos.y; + x2 = STRUCT->m_End().x; y2 = STRUCT->m_End().y; + layer = STRUCT->m_Layer; + case DRAW_SEGMENT_STRUCT_TYPE : + #undef STRUCT + #define STRUCT ((EDA_DrawLineStruct*)DrawList) + if ( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE) + { + x1 = STRUCT->m_Start.x; y1 = STRUCT->m_Start.y; + x2 = STRUCT->m_End.x; y2 = STRUCT->m_End.y; + layer = STRUCT->m_Layer; + } + switch (layer) + { + case LAYER_NOTES: /* Trace en pointilles */ + Move_Plume( wxPoint(x1,y1),'U'); + fprintf(PlotOutput,"LT 2;\n"); + Move_Plume( wxPoint(x2,y2),'D'); + fprintf(PlotOutput,"LT;\n"); + break; - case LAYER_BUS: /* Trait large */ - { - int deltaX = 0, deltaY = 0; double angle; - if( (x2 - x1) == 0 ) deltaX = 8; - else if( (y2 - y1) == 0 ) deltaY = 8; - else - { - angle = atan2( (double)(x2-x1), (double)(y1-y2) ); - deltaX = (int)( 8 * sin(angle) ); - deltaY = (int)( 8 * cos(angle) ); - } - Move_Plume( wxPoint(x1 + deltaX, y1 - deltaY), 'U'); - Move_Plume( wxPoint(x1 - deltaX,y1 + deltaY), 'D'); - Move_Plume( wxPoint(x2 - deltaX,y2 + deltaY), 'D'); - Move_Plume( wxPoint(x2 + deltaX,y2 - deltaY), 'D'); - Move_Plume( wxPoint(x1 + deltaX,y1 - deltaY), 'D'); - } - break; + case LAYER_BUS: /* Trait large */ + { + int deltaX = 0, deltaY = 0; double angle; + if( (x2 - x1) == 0 ) deltaX = 8; + else if( (y2 - y1) == 0 ) deltaY = 8; + else + { + angle = atan2( (double)(x2-x1), (double)(y1-y2) ); + deltaX = (int)( 8 * sin(angle) ); + deltaY = (int)( 8 * cos(angle) ); + } + Move_Plume( wxPoint(x1 + deltaX, y1 - deltaY), 'U'); + Move_Plume( wxPoint(x1 - deltaX,y1 + deltaY), 'D'); + Move_Plume( wxPoint(x2 - deltaX,y2 + deltaY), 'D'); + Move_Plume( wxPoint(x2 + deltaX,y2 - deltaY), 'D'); + Move_Plume( wxPoint(x1 + deltaX,y1 - deltaY), 'D'); + } + break; - default: - Move_Plume( wxPoint(x1,y1), 'U'); - Move_Plume( wxPoint(x2,y2), 'D'); - break; - } - break; + default: + Move_Plume( wxPoint(x1,y1), 'U'); + Move_Plume( wxPoint(x2,y2), 'D'); + break; + } + break; - case DRAW_JUNCTION_STRUCT_TYPE : - #undef STRUCT - #define STRUCT ((DrawJunctionStruct*)DrawList) - x1 = STRUCT->m_Pos.x; y1 = STRUCT->m_Pos.y; - PlotCercle( wxPoint(x1,y1), DRAWJUNCTION_SIZE * 2); - break; + case DRAW_JUNCTION_STRUCT_TYPE : + #undef STRUCT + #define STRUCT ((DrawJunctionStruct*)DrawList) + x1 = STRUCT->m_Pos.x; y1 = STRUCT->m_Pos.y; + PlotCercle( wxPoint(x1,y1), DRAWJUNCTION_SIZE * 2); + break; - case DRAW_TEXT_STRUCT_TYPE : - case DRAW_LABEL_STRUCT_TYPE : - case DRAW_GLOBAL_LABEL_STRUCT_TYPE : - case DRAW_HIER_LABEL_STRUCT_TYPE : - PlotTextStruct(DrawList); - break; + case TYPE_SCH_TEXT : + case TYPE_SCH_LABEL : + case TYPE_SCH_GLOBALLABEL : + case TYPE_SCH_HIERLABEL : + PlotTextStruct(DrawList); + break; - case DRAW_LIB_ITEM_STRUCT_TYPE : - DrawLibItem = (EDA_SchComponentStruct *) DrawList; - PlotLibPart( DrawLibItem ); - break; + case TYPE_SCH_COMPONENT : + DrawLibItem = (SCH_COMPONENT *) DrawList; + PlotLibPart( DrawLibItem ); + break; - case DRAW_PICK_ITEM_STRUCT_TYPE : break; - case DRAW_POLYLINE_STRUCT_TYPE : break; - case DRAW_SHEETLABEL_STRUCT_TYPE : break; - case DRAW_MARKER_STRUCT_TYPE : break; + case DRAW_PICK_ITEM_STRUCT_TYPE : break; + case DRAW_POLYLINE_STRUCT_TYPE : break; + case DRAW_SHEETLABEL_STRUCT_TYPE : break; + case DRAW_MARKER_STRUCT_TYPE : break; - case DRAW_SHEET_STRUCT_TYPE : - #undef STRUCT - #define STRUCT ((DrawSheetStruct*)DrawList) - PlotSheetStruct(STRUCT); - break; + case DRAW_SHEET_STRUCT_TYPE : + #undef STRUCT + #define STRUCT ((DrawSheetStruct*)DrawList) + PlotSheetStruct(STRUCT); + break; - case DRAW_NOCONNECT_STRUCT_TYPE: - #undef STRUCT - #define STRUCT ((DrawNoConnectStruct*)DrawList) - PlotNoConnectStruct(STRUCT); - break; + case DRAW_NOCONNECT_STRUCT_TYPE: + #undef STRUCT + #define STRUCT ((DrawNoConnectStruct*)DrawList) + PlotNoConnectStruct(STRUCT); + break; - default : - break; - } + default : + break; + } - Plume('U'); - DrawList = DrawList->Pnext; - } + Plume('U'); + DrawList = DrawList->Pnext; + } - /* fin */ - CloseFileHPGL(PlotOutput); + /* fin */ + CloseFileHPGL(PlotOutput); } /*! @@ -682,8 +682,8 @@ wxString msg; void WinEDA_PlotHPGLFrame::OnRadioboxSelected( wxCommandEvent& event ) { - HPGL_SizeSelect = m_SizeOption->GetSelection(); - SetPageOffsetValue(); + HPGL_SizeSelect = m_SizeOption->GetSelection(); + SetPageOffsetValue(); } @@ -695,7 +695,7 @@ void WinEDA_PlotHPGLFrame::OnRadioboxSelected( wxCommandEvent& event ) void WinEDA_PlotHPGLFrame::OnPenWidthUpdatedUpdated( wxSpinEvent& event ) { - SetPenWidth(event); + SetPenWidth(event); } /*! @@ -704,7 +704,7 @@ void WinEDA_PlotHPGLFrame::OnPenWidthUpdatedUpdated( wxSpinEvent& event ) void WinEDA_PlotHPGLFrame::OnPenSpeedUpdatedUpdated( wxSpinEvent& event ) { - SetPenSpeed(event); + SetPenSpeed(event); } /*! @@ -713,6 +713,6 @@ void WinEDA_PlotHPGLFrame::OnPenSpeedUpdatedUpdated( wxSpinEvent& event ) void WinEDA_PlotHPGLFrame::OnPenNumberUpdatedUpdated( wxSpinEvent& event ) { - SetPenNum(event); + SetPenNum(event); } diff --git a/eeschema/plotps.cpp b/eeschema/plotps.cpp index 137bd5aa54..e169644ebf 100644 --- a/eeschema/plotps.cpp +++ b/eeschema/plotps.cpp @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// // Name: plotps.cpp -// Purpose: +// Purpose: // Author: jean-pierre Charras -// Modified by: +// Modified by: // Created: 01/02/2006 08:37:24 -// RCS-ID: +// RCS-ID: // Copyright: GNU License -// Licence: +// Licence: ///////////////////////////////////////////////////////////////////////////// // Generated by DialogBlocks (unregistered), 01/02/2006 08:37:24 @@ -47,9 +47,9 @@ extern void Move_Plume( wxPoint pos, int plume ); extern void Plume( int plume ); enum PageFormatReq { - PAGE_SIZE_AUTO, - PAGE_SIZE_A4, - PAGE_SIZE_A + PAGE_SIZE_AUTO, + PAGE_SIZE_A4, + PAGE_SIZE_A }; @@ -76,10 +76,10 @@ void WinEDA_SchematicFrame::ToPlot_PS(wxCommandEvent& event) { wxPoint pos; - pos = GetPosition(); - pos.x += 10; pos.y += 20; - WinEDA_PlotPSFrame * Ps_frame = new WinEDA_PlotPSFrame(this); - Ps_frame->ShowModal(); Ps_frame->Destroy(); + pos = GetPosition(); + pos.x += 10; pos.y += 20; + WinEDA_PlotPSFrame * Ps_frame = new WinEDA_PlotPSFrame(this); + Ps_frame->ShowModal(); Ps_frame->Destroy(); } @@ -153,9 +153,9 @@ bool WinEDA_PlotPSFrame::Create( wxWindow* parent, wxWindowID id, const wxString */ void WinEDA_PlotPSFrame::CreateControls() -{ - SetFont(*g_DialogFont); - +{ + SetFont(*g_DialogFont); + ////@begin WinEDA_PlotPSFrame content construction // Generated by DialogBlocks, 22/01/2007 11:32:43 (unregistered) @@ -226,8 +226,8 @@ void WinEDA_PlotPSFrame::CreateControls() m_Plot_Sheet_Ref->SetValidator( wxGenericValidator(& Plot_Sheet_Ref) ); ////@end WinEDA_PlotPSFrame content construction - m_DefaultLineSizeCtrl = new WinEDA_ValueCtrl(this, _("Default Line Width"), g_PlotPSMinimunLineWidth, - g_UnitMetric, m_DefaultLineSizeCtrlSizer, EESCHEMA_INTERNAL_UNIT ); + m_DefaultLineSizeCtrl = new WinEDA_ValueCtrl(this, _("Default Line Width"), g_PlotPSMinimunLineWidth, + g_UnitMetric, m_DefaultLineSizeCtrlSizer, EESCHEMA_INTERNAL_UNIT ); } @@ -273,9 +273,9 @@ void WinEDA_PlotPSFrame::OnPlotPsCurrentExecuteClick( wxCommandEvent& event ) { int Select_PlotAll = FALSE; - InitOptVars(); - CreatePSFile(Select_PlotAll, PS_SizeSelect); - m_MsgBox->AppendText( wxT("*****\n")); + InitOptVars(); + CreatePSFile(Select_PlotAll, PS_SizeSelect); + m_MsgBox->AppendText( wxT("*****\n")); } @@ -287,9 +287,9 @@ void WinEDA_PlotPSFrame::OnPlotPsAllExecuteClick( wxCommandEvent& event ) { int Select_PlotAll = TRUE; - InitOptVars(); - CreatePSFile(Select_PlotAll, PS_SizeSelect); - m_MsgBox->AppendText( wxT("*****\n")); + InitOptVars(); + CreatePSFile(Select_PlotAll, PS_SizeSelect); + m_MsgBox->AppendText( wxT("*****\n")); } @@ -299,7 +299,7 @@ int Select_PlotAll = TRUE; void WinEDA_PlotPSFrame::OnCloseClick( wxCommandEvent& event ) { - InitOptVars(); + InitOptVars(); Close(TRUE); } @@ -308,14 +308,14 @@ void WinEDA_PlotPSFrame::OnCloseClick( wxCommandEvent& event ) void WinEDA_PlotPSFrame::InitOptVars() /*****************************************/ { - Plot_Sheet_Ref = m_Plot_Sheet_Ref->GetValue(); - g_PlotPSColorOpt = m_PlotPSColorOption->GetSelection(); - PS_SizeSelect = m_SizeOption->GetSelection(); - g_PlotPSMinimunLineWidth = m_DefaultLineSizeCtrl->GetValue(); - if ( g_PlotPSMinimunLineWidth < 1 ) g_PlotPSMinimunLineWidth = 1; + Plot_Sheet_Ref = m_Plot_Sheet_Ref->GetValue(); + g_PlotPSColorOpt = m_PlotPSColorOption->GetSelection(); + PS_SizeSelect = m_SizeOption->GetSelection(); + g_PlotPSMinimunLineWidth = m_DefaultLineSizeCtrl->GetValue(); + if ( g_PlotPSMinimunLineWidth < 1 ) g_PlotPSMinimunLineWidth = 1; } - + /*************************************************************/ void WinEDA_PlotPSFrame::CreatePSFile(int AllPages, int pagesize) @@ -327,193 +327,193 @@ Ki_PageDescr * PlotSheet, * RealSheet; int BBox[4]; wxPoint plot_offset; - g_PlotFormat = PLOT_FORMAT_POST; + g_PlotFormat = PLOT_FORMAT_POST; - /* Build the screen list */ - EDA_ScreenList ScreenList; + /* Build the screen list */ + EDA_ScreenList ScreenList; - if ( AllPages == TRUE ) screen = ScreenList.GetFirst(); - else screen = ActiveScreen; - for ( ; screen != NULL; screen = ScreenList.GetNext() ) - { - PlotSheet = screen->m_CurrentSheetDesc; - RealSheet = &g_Sheet_A4; - if ( pagesize == PAGE_SIZE_AUTO ) RealSheet = PlotSheet; - else if ( pagesize == PAGE_SIZE_A ) RealSheet = &g_Sheet_A; + if ( AllPages == TRUE ) screen = ScreenList.GetFirst(); + else screen = ActiveScreen; + for ( ; screen != NULL; screen = ScreenList.GetNext() ) + { + PlotSheet = screen->m_CurrentSheetDesc; + RealSheet = &g_Sheet_A4; + if ( pagesize == PAGE_SIZE_AUTO ) RealSheet = PlotSheet; + else if ( pagesize == PAGE_SIZE_A ) RealSheet = &g_Sheet_A; - /* Calcul des limites de trace en 1/1000 pouce */ - BBox[0] = BBox[1] = g_PlotMargin; // Plot margin in 1/1000 inch - BBox[2] = RealSheet->m_Size.x - g_PlotMargin; - BBox[3] = RealSheet->m_Size.y - g_PlotMargin; + /* Calcul des limites de trace en 1/1000 pouce */ + BBox[0] = BBox[1] = g_PlotMargin; // Plot margin in 1/1000 inch + BBox[2] = RealSheet->m_Size.x - g_PlotMargin; + BBox[3] = RealSheet->m_Size.y - g_PlotMargin; - /* Calcul des echelles de conversion */ - g_PlotScaleX = SCALE_PS * - (float) (BBox[2] - BBox[0]) / - PlotSheet->m_Size.x; - g_PlotScaleY = SCALE_PS * - (float) (BBox[3] - BBox[1]) / - PlotSheet->m_Size.y; + /* Calcul des echelles de conversion */ + g_PlotScaleX = SCALE_PS * + (float) (BBox[2] - BBox[0]) / + PlotSheet->m_Size.x; + g_PlotScaleY = SCALE_PS * + (float) (BBox[3] - BBox[1]) / + PlotSheet->m_Size.y; - plot_offset.x = 0; - plot_offset.y = PlotSheet->m_Size.y; + plot_offset.x = 0; + plot_offset.y = PlotSheet->m_Size.y; - wxSplitPath(screen->m_FileName.GetData(), (wxString*) NULL, - &ShortFileName, (wxString*) NULL); - wxString dirbuf = wxGetCwd() + STRING_DIR_SEP; - if( ! ShortFileName.IsEmpty() ) - PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".ps")); - else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".ps")); + wxSplitPath(screen->m_FileName.GetData(), (wxString*) NULL, + &ShortFileName, (wxString*) NULL); + wxString dirbuf = wxGetCwd() + STRING_DIR_SEP; + if( ! ShortFileName.IsEmpty() ) + PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".ps")); + else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".ps")); - PlotOneSheetPS(PlotFileName,screen, RealSheet, BBox, plot_offset); - screen = (BASE_SCREEN*)screen->Pnext; - if (AllPages == FALSE ) break; - } + PlotOneSheetPS(PlotFileName,screen, RealSheet, BBox, plot_offset); + screen = (BASE_SCREEN*)screen->Pnext; + if (AllPages == FALSE ) break; + } } /*****************************************************************************************/ void WinEDA_PlotPSFrame::PlotOneSheetPS(const wxString & FileName, - BASE_SCREEN * screen, Ki_PageDescr * sheet, int BBox[4], wxPoint plot_offset) + BASE_SCREEN * screen, Ki_PageDescr * sheet, int BBox[4], wxPoint plot_offset) /*****************************************************************************************/ /* Trace en format PS. d'une feuille de dessin */ { wxString Line; EDA_BaseStruct *DrawList; -EDA_SchComponentStruct *DrawLibItem; +SCH_COMPONENT *DrawLibItem; int layer; wxPoint StartPos, EndPos; - PlotOutput = wxFopen(FileName, wxT("wt")); - if (PlotOutput == NULL) - { - Line = wxT("\n** "); - Line += _("Unable to create ") + FileName + wxT(" **\n\n"); - m_MsgBox->AppendText(Line); - wxBell(); - return ; - } + PlotOutput = wxFopen(FileName, wxT("wt")); + if (PlotOutput == NULL) + { + Line = wxT("\n** "); + Line += _("Unable to create ") + FileName + wxT(" **\n\n"); + m_MsgBox->AppendText(Line); + wxBell(); + return ; + } - setlocale(LC_NUMERIC, "C"); - Line.Printf(_("Plot: %s\n"), FileName.GetData()) ; - m_MsgBox->AppendText(Line); + setlocale(LC_NUMERIC, "C"); + Line.Printf(_("Plot: %s\n"), FileName.GetData()) ; + m_MsgBox->AppendText(Line); - InitPlotParametresPS(plot_offset, sheet, g_PlotScaleX, g_PlotScaleY); - SetDefaultLineWidthPS( g_PlotPSMinimunLineWidth); + InitPlotParametresPS(plot_offset, sheet, g_PlotScaleX, g_PlotScaleY); + SetDefaultLineWidthPS( g_PlotPSMinimunLineWidth); - /* Init : */ - PrintHeaderPS( PlotOutput, wxT("EESchema-PS"), FileName, 1, BBox, wxLANDSCAPE ); - InitPlotParametresPS(plot_offset, sheet, 1.0, 1.0); + /* Init : */ + PrintHeaderPS( PlotOutput, wxT("EESchema-PS"), FileName, 1, BBox, wxLANDSCAPE ); + InitPlotParametresPS(plot_offset, sheet, 1.0, 1.0); - if ( m_Plot_Sheet_Ref->GetValue() ) - { - if ( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt ) - SetColorMapPS ( BLACK ); - PlotWorkSheet(PLOT_FORMAT_POST, screen); - } + if ( m_Plot_Sheet_Ref->GetValue() ) + { + if ( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt ) + SetColorMapPS ( BLACK ); + PlotWorkSheet(PLOT_FORMAT_POST, screen); + } - DrawList = screen->EEDrawList; - while ( DrawList ) /* tracage */ - { - Plume('U'); - layer = LAYER_NOTES; - switch( DrawList->Type() ) - { - case DRAW_BUSENTRY_STRUCT_TYPE : /* Struct Raccord et Segment sont identiques */ - #undef STRUCT - #define STRUCT ((DrawBusEntryStruct*)DrawList) - StartPos = STRUCT->m_Pos; - EndPos = STRUCT->m_End(); - layer = STRUCT->m_Layer; - case DRAW_SEGMENT_STRUCT_TYPE : - #undef STRUCT - #define STRUCT ((EDA_DrawLineStruct*)DrawList) - if ( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE) - { - StartPos = STRUCT->m_Start; - EndPos = STRUCT->m_End; - layer = STRUCT->m_Layer; - } - if ( g_PlotPSColorOpt ) - SetColorMapPS ( ReturnLayerColor(layer) ); - switch (layer) - { - case LAYER_NOTES: /* Trace en pointilles */ - SetCurrentLineWidth(-1); - fprintf(PlotOutput,"[50 50] 0 setdash\n"); - Move_Plume( StartPos, 'U'); - Move_Plume( EndPos, 'D'); - fprintf(PlotOutput,"[] 0 setdash\n"); - break; + DrawList = screen->EEDrawList; + while ( DrawList ) /* tracage */ + { + Plume('U'); + layer = LAYER_NOTES; + switch( DrawList->Type() ) + { + case DRAW_BUSENTRY_STRUCT_TYPE : /* Struct Raccord et Segment sont identiques */ + #undef STRUCT + #define STRUCT ((DrawBusEntryStruct*)DrawList) + StartPos = STRUCT->m_Pos; + EndPos = STRUCT->m_End(); + layer = STRUCT->m_Layer; + case DRAW_SEGMENT_STRUCT_TYPE : + #undef STRUCT + #define STRUCT ((EDA_DrawLineStruct*)DrawList) + if ( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE) + { + StartPos = STRUCT->m_Start; + EndPos = STRUCT->m_End; + layer = STRUCT->m_Layer; + } + if ( g_PlotPSColorOpt ) + SetColorMapPS ( ReturnLayerColor(layer) ); + switch (layer) + { + case LAYER_NOTES: /* Trace en pointilles */ + SetCurrentLineWidth(-1); + fprintf(PlotOutput,"[50 50] 0 setdash\n"); + Move_Plume( StartPos, 'U'); + Move_Plume( EndPos, 'D'); + fprintf(PlotOutput,"[] 0 setdash\n"); + break; - case LAYER_BUS: /* Trait large */ - { - fprintf(PlotOutput,"%d setlinewidth\n", g_PlotPSMinimunLineWidth * 3); - Move_Plume( StartPos,'U'); - Move_Plume( EndPos,'D'); - fprintf(PlotOutput,"%d setlinewidth\n", g_PlotPSMinimunLineWidth); - } - break; + case LAYER_BUS: /* Trait large */ + { + fprintf(PlotOutput,"%d setlinewidth\n", g_PlotPSMinimunLineWidth * 3); + Move_Plume( StartPos,'U'); + Move_Plume( EndPos,'D'); + fprintf(PlotOutput,"%d setlinewidth\n", g_PlotPSMinimunLineWidth); + } + break; - default: - SetCurrentLineWidth(-1); - Move_Plume( StartPos,'U'); - Move_Plume( EndPos,'D'); - break; - } - break; + default: + SetCurrentLineWidth(-1); + Move_Plume( StartPos,'U'); + Move_Plume( EndPos,'D'); + break; + } + break; - case DRAW_JUNCTION_STRUCT_TYPE : - #undef STRUCT - #define STRUCT ((DrawJunctionStruct*)DrawList) - if ( g_PlotPSColorOpt ) - SetColorMapPS (ReturnLayerColor(STRUCT->m_Layer) ); - PlotCercle( STRUCT->m_Pos, DRAWJUNCTION_SIZE); - break; + case DRAW_JUNCTION_STRUCT_TYPE : + #undef STRUCT + #define STRUCT ((DrawJunctionStruct*)DrawList) + if ( g_PlotPSColorOpt ) + SetColorMapPS (ReturnLayerColor(STRUCT->m_Layer) ); + PlotCercle( STRUCT->m_Pos, DRAWJUNCTION_SIZE); + break; - case DRAW_TEXT_STRUCT_TYPE : - case DRAW_LABEL_STRUCT_TYPE : - case DRAW_GLOBAL_LABEL_STRUCT_TYPE : - case DRAW_HIER_LABEL_STRUCT_TYPE : - PlotTextStruct(DrawList); - break; + case TYPE_SCH_TEXT : + case TYPE_SCH_LABEL : + case TYPE_SCH_GLOBALLABEL : + case TYPE_SCH_HIERLABEL : + PlotTextStruct(DrawList); + break; - case DRAW_LIB_ITEM_STRUCT_TYPE : - DrawLibItem = (EDA_SchComponentStruct *) DrawList; - PlotLibPart( DrawLibItem ); - break; + case TYPE_SCH_COMPONENT : + DrawLibItem = (SCH_COMPONENT *) DrawList; + PlotLibPart( DrawLibItem ); + break; - case DRAW_PICK_ITEM_STRUCT_TYPE : break; - case DRAW_POLYLINE_STRUCT_TYPE : break; - case DRAW_SHEETLABEL_STRUCT_TYPE: break; - case DRAW_MARKER_STRUCT_TYPE : break; + case DRAW_PICK_ITEM_STRUCT_TYPE : break; + case DRAW_POLYLINE_STRUCT_TYPE : break; + case DRAW_SHEETLABEL_STRUCT_TYPE: break; + case DRAW_MARKER_STRUCT_TYPE : break; - case DRAW_SHEET_STRUCT_TYPE : - #undef STRUCT - #define STRUCT ((DrawSheetStruct*)DrawList) - PlotSheetStruct(STRUCT); - break; + case DRAW_SHEET_STRUCT_TYPE : + #undef STRUCT + #define STRUCT ((DrawSheetStruct*)DrawList) + PlotSheetStruct(STRUCT); + break; - case DRAW_NOCONNECT_STRUCT_TYPE: - #undef STRUCT - #define STRUCT ((DrawNoConnectStruct*)DrawList) - if ( g_PlotPSColorOpt ) - SetColorMapPS (ReturnLayerColor(LAYER_NOCONNECT) ); - PlotNoConnectStruct(STRUCT); - break; + case DRAW_NOCONNECT_STRUCT_TYPE: + #undef STRUCT + #define STRUCT ((DrawNoConnectStruct*)DrawList) + if ( g_PlotPSColorOpt ) + SetColorMapPS (ReturnLayerColor(LAYER_NOCONNECT) ); + PlotNoConnectStruct(STRUCT); + break; - default: - break; - } + default: + break; + } - Plume('U'); - DrawList = DrawList->Pnext; - } + Plume('U'); + DrawList = DrawList->Pnext; + } - /* fin */ - CloseFilePS(PlotOutput); - setlocale(LC_NUMERIC, ""); + /* fin */ + CloseFilePS(PlotOutput); + setlocale(LC_NUMERIC, ""); - m_MsgBox->AppendText( wxT("Ok\n")); + m_MsgBox->AppendText( wxT("Ok\n")); } diff --git a/eeschema/protos.h b/eeschema/protos.h index c7bed1ac49..b7fe987e77 100644 --- a/eeschema/protos.h +++ b/eeschema/protos.h @@ -4,9 +4,9 @@ void FreeLibraryEntry(LibCmpEntry * Entry); LibEDA_BaseStruct * LocatePin(const wxPoint & RefPos, - EDA_LibComponentStruct * Entry, - int Unit, int Convert, EDA_SchComponentStruct * DrawItem = NULL); - /* Routine de localisation d'une PIN de la PartLib pointee par Entry */ + EDA_LibComponentStruct * Entry, + int Unit, int Convert, SCH_COMPONENT * DrawItem = NULL); + /* Routine de localisation d'une PIN de la PartLib pointee par Entry */ const wxString& ReturnDefaultFieldName( int aFieldNdx ); @@ -20,7 +20,7 @@ const wxString& ReturnDefaultFieldName( int aFieldNdx ); /****************/ void DisplayCmpDoc(wxString & Name); bool DataBaseGetName(WinEDA_DrawFrame * frame, - wxString & Keys, wxString & BufName); + wxString & Keys, wxString & BufName); /*********************/ /* DANGLING_ENDS.CPP */ @@ -36,12 +36,12 @@ void IncrementLabelMember(wxString & name); /* EDITPART.CPP */ /****************/ void InstallCmpeditFrame(WinEDA_SchematicFrame * parent, wxPoint & pos, - EDA_SchComponentStruct * m_Cmp); + SCH_COMPONENT * m_Cmp); - /**************/ - /* EELIBS2.CPP */ - /**************/ + /**************/ + /* EELIBS2.CPP */ + /**************/ /* Functions common to all EELibs?.c modules: */ int LibraryEntryCompare(EDA_LibComponentStruct *LE1, EDA_LibComponentStruct *LE2); @@ -49,162 +49,162 @@ int NumOfLibraries(); EDA_LibComponentStruct *FindLibPart(const wxChar *Name, const wxString & LibName, int Alias); void DrawingLibInGhost(WinEDA_DrawPanel * panel, wxDC * DC, EDA_LibComponentStruct *LibEntry, - EDA_SchComponentStruct * DrawLibItem, int PartX, int PartY, - int Multi, int convert, - int Color, bool DrawPinText); + SCH_COMPONENT * DrawLibItem, int PartX, int PartY, + int Multi, int convert, + int Color, bool DrawPinText); void DrawLibEntry(WinEDA_DrawPanel * panel, wxDC * DC, - EDA_LibComponentStruct *LibEntry, int posX, int posY, - int Multi, int convert, - int DrawMode, int Color = -1); + EDA_LibComponentStruct *LibEntry, int posX, int posY, + int Multi, int convert, + int DrawMode, int Color = -1); void DrawLibraryDrawStruct(WinEDA_DrawPanel * panel, wxDC * DC, - EDA_LibComponentStruct *LibEntry, int PartX, int PartY, - LibEDA_BaseStruct *DrawItem, int Multi, - int DrawMode, int Color = -1); + EDA_LibComponentStruct *LibEntry, int PartX, int PartY, + LibEDA_BaseStruct *DrawItem, int Multi, + int DrawMode, int Color = -1); bool MapAngles(int *Angle1, int *Angle2, int TransMat[2][2]); - /**************/ - /* EELIBS1.CPP */ - /**************/ + /**************/ + /* EELIBS1.CPP */ + /**************/ EDA_LibComponentStruct * Read_Component_Definition(WinEDA_DrawFrame * frame, char * Line, - FILE *f, int *LineNum); + FILE *f, int *LineNum); /* Routine to Read a DEF/ENDDEF part entry from given open file. */ LibraryStruct *FindLibrary(const wxString & Name); int LoadDocLib(WinEDA_DrawFrame * frame, const wxString & FullDocLibName, const wxString & Libname); PriorQue *LoadLibraryAux(WinEDA_DrawFrame * frame, LibraryStruct * library, - FILE *f, int *NumOfParts); + FILE *f, int *NumOfParts); LibraryStruct * LoadLibraryName(WinEDA_DrawFrame * frame, - const wxString & FullLibName, const wxString & LibName); + const wxString & FullLibName, const wxString & LibName); void LoadLibraries(WinEDA_DrawFrame * frame); void FreeCmpLibrary(wxWindow * frame, const wxString & LibName); const wxChar **GetLibNames(); void SnapLibItemPoint(int OrigX, int OrigY, int *ClosestX, int *ClosestY, - EDA_SchComponentStruct *DrawLibItem); + SCH_COMPONENT *DrawLibItem); bool LibItemInBox(int x1, int y1, int x2, int y2, - EDA_SchComponentStruct *DrawLibItem); + SCH_COMPONENT *DrawLibItem); void DrawTextField(WinEDA_DrawPanel * panel, wxDC * DC, PartTextStruct * Field, int IsMulti, int DrawMode); - /* Routine de trace des textes type Field du composant. - entree: - Field: champ - IsMulti: flag Non Null si il y a plusieurs parts par boitier. - n'est utile que pour le champ reference pour ajouter a celui ci - l'identification de la part ( A, B ... ) - DrawMode: mode de trace */ + /* Routine de trace des textes type Field du composant. + entree: + Field: champ + IsMulti: flag Non Null si il y a plusieurs parts par boitier. + n'est utile que pour le champ reference pour ajouter a celui ci + l'identification de la part ( A, B ... ) + DrawMode: mode de trace */ char * StrPurge(char * text); - /* Supprime les caracteres Space en debut de la ligne text - retourne un pointeur sur le 1er caractere non Space de text */ + /* Supprime les caracteres Space en debut de la ligne text + retourne un pointeur sur le 1er caractere non Space de text */ - /************/ - /* BLOCK.CPP */ - /************/ + /************/ + /* BLOCK.CPP */ + /************/ EDA_BaseStruct * DuplicateStruct(EDA_BaseStruct *DrawStruct); void MoveOneStruct(EDA_BaseStruct *DrawStructs, const wxPoint & move_vector); - /* Given a structure move it by move_vector.x, move_vector.y. */ + /* Given a structure move it by move_vector.x, move_vector.y. */ bool PlaceStruct(BASE_SCREEN * screen, EDA_BaseStruct *DrawStruct); bool MoveStruct(WinEDA_DrawPanel * panel, wxDC * DC, EDA_BaseStruct *DrawStruct); void DeleteStruct(WinEDA_DrawPanel * panel, wxDC * DC, EDA_BaseStruct *DrawStruct); bool DrawStructInBox(int x1, int y1, int x2, int y2, - EDA_BaseStruct *DrawStruct); + EDA_BaseStruct *DrawStruct); - /*************/ - /* LOCATE.CPP */ - /*************/ + /*************/ + /* LOCATE.CPP */ + /*************/ LibDrawPin* LocatePinByNumber( const wxString & ePin_Number, - EDA_SchComponentStruct* eComponent ); + SCH_COMPONENT* eComponent ); -EDA_SchComponentStruct * LocateSmallestComponent( SCH_SCREEN * Screen ); +SCH_COMPONENT * LocateSmallestComponent( SCH_SCREEN * Screen ); /* Recherche du plus petit (en surface) composant pointe par la souris */ EDA_BaseStruct * PickStruct(EDA_Rect & block, - BASE_SCREEN* screen, int SearchMask ); + BASE_SCREEN* screen, int SearchMask ); EDA_BaseStruct * PickStruct(const wxPoint & refpos, - BASE_SCREEN* screen, int SearchMask); + BASE_SCREEN* screen, int SearchMask); /* 2 functions EDA_BaseStruct * PickStruct: - Search in block, or Serach at location pos + Search in block, or Serach at location pos - SearchMask = (bitwise OR): - LIBITEM - WIREITEM - BUSITEM - RACCORDITEM - JUNCTIONITEM - DRAWITEM - TEXTITEM - LABELITEM - SHEETITEM - MARKERITEM - NOCONNECTITEM - SEARCH_PINITEM - SHEETLABELITEM - FIELDCMPITEM + SearchMask = (bitwise OR): + LIBITEM + WIREITEM + BUSITEM + RACCORDITEM + JUNCTIONITEM + DRAWITEM + TEXTITEM + LABELITEM + SHEETITEM + MARKERITEM + NOCONNECTITEM + SEARCH_PINITEM + SHEETLABELITEM + FIELDCMPITEM - if EXCLUDE_WIRE_BUS_ENDPOINTS is set, in wire ou bus search and locate, - start and end points are not included in search - if WIRE_BUS_ENDPOINTS_ONLY is set, in wire ou bus search and locate, - only start and end points are included in search + if EXCLUDE_WIRE_BUS_ENDPOINTS is set, in wire ou bus search and locate, + start and end points are not included in search + if WIRE_BUS_ENDPOINTS_ONLY is set, in wire ou bus search and locate, + only start and end points are included in search - Return: - -Bloc searc: - pointeur sur liste de pointeurs de structures si Plusieurs - structures selectionnees. - pointeur sur la structure si 1 seule + Return: + -Bloc searc: + pointeur sur liste de pointeurs de structures si Plusieurs + structures selectionnees. + pointeur sur la structure si 1 seule - Positon serach: - pointeur sur la structure. - Si pas de structures selectionnees: retourne NULL */ + Positon serach: + pointeur sur la structure. + Si pas de structures selectionnees: retourne NULL */ LibEDA_BaseStruct * LocateDrawItem(SCH_SCREEN * Screen, const wxPoint & refpoint, - EDA_LibComponentStruct * LibEntry, int Unit, int Convert, int masque); + EDA_LibComponentStruct * LibEntry, int Unit, int Convert, int masque); DrawSheetLabelStruct * LocateSheetLabel(DrawSheetStruct *Sheet, const wxPoint & pos); LibDrawPin * LocateAnyPin(EDA_BaseStruct *DrawList, const wxPoint & RefPos, - EDA_SchComponentStruct ** libpart = NULL ); + SCH_COMPONENT ** libpart = NULL ); DrawSheetLabelStruct * LocateAnyPinSheet(const wxPoint & RefPos, - EDA_BaseStruct *DrawList); + EDA_BaseStruct *DrawList); int distance(int dx, int dy, int spot_cX, int spot_cY, int seuil); - /* Calcul de la distance du point spot_cx,spot_cy a un segment de droite, - d'origine 0,0 et d'extremite dx, dy; - retourne: - 0 si distance > seuil - 1 si distance <= seuil - Variables utilisees ( sont ramenees au repere centre sur l'origine du segment) - dx, dy = coord de l'extremite segment. - spot_cX,spot_cY = coord du curseur souris - la recherche se fait selon 4 cas: - segment horizontal - segment vertical - segment quelconque */ + /* Calcul de la distance du point spot_cx,spot_cy a un segment de droite, + d'origine 0,0 et d'extremite dx, dy; + retourne: + 0 si distance > seuil + 1 si distance <= seuil + Variables utilisees ( sont ramenees au repere centre sur l'origine du segment) + dx, dy = coord de l'extremite segment. + spot_cX,spot_cY = coord du curseur souris + la recherche se fait selon 4 cas: + segment horizontal + segment vertical + segment quelconque */ /***************/ /* EEREDRAW.CPP */ /***************/ void DrawDanglingSymbol(WinEDA_DrawPanel * panel,wxDC * DC, - const wxPoint & pos, int Color); + const wxPoint & pos, int Color); void Draw_Marqueur(WinEDA_DrawPanel * panel, wxDC * DC, - wxPoint pos, char* pt_bitmap, int DrawMode, int Color); + wxPoint pos, char* pt_bitmap, int DrawMode, int Color); void DrawStructsInGhost(WinEDA_DrawPanel * panel, wxDC * DC, - EDA_BaseStruct * DrawStruct, int dx, int dy ); + EDA_BaseStruct * DrawStruct, int dx, int dy ); void SetHighLightStruct(EDA_BaseStruct *HighLight); void RedrawActiveWindow(WinEDA_DrawPanel * panel, wxDC * DC); void RedrawStructList(WinEDA_DrawPanel * panel, wxDC * DC, EDA_BaseStruct *Structs, int DrawMode, - int Color = -1); + int Color = -1); void RedrawOneStruct(WinEDA_DrawPanel * panel, wxDC * DC, EDA_BaseStruct *Struct, int DrawMode, - int Color = -1); + int Color = -1); /**************/ /* EELAYER.CPP */ @@ -236,53 +236,53 @@ bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose ); /**************/ LibEDA_BaseStruct * CopyDrawEntryStruct( wxWindow * frame, LibEDA_BaseStruct * DrawItem); - /* Routine de Duplication d'une structure DrawLibItem d'une partlib - Parametres d'entree: - DrawEntry = pointeur sur la structure a dupliquer - La structure nouvelle est creee, mais n'est pas inseree dans le - chainage - Retourne: - Pointeur sur la structure creee (ou NULL si impossible) */ + /* Routine de Duplication d'une structure DrawLibItem d'une partlib + Parametres d'entree: + DrawEntry = pointeur sur la structure a dupliquer + La structure nouvelle est creee, mais n'est pas inseree dans le + chainage + Retourne: + Pointeur sur la structure creee (ou NULL si impossible) */ int WriteOneLibEntry(wxWindow * frame, FILE * ExportFile, EDA_LibComponentStruct * LibEntry); - /* Routine d'ecriture du composant pointe par LibEntry - dans le fichier ExportFile( qui doit etre deja ouvert) - return: FALSE si Ok, TRUE si err write */ + /* Routine d'ecriture du composant pointe par LibEntry + dans le fichier ExportFile( qui doit etre deja ouvert) + return: FALSE si Ok, TRUE si err write */ EDA_LibComponentStruct * CopyLibEntryStruct (wxWindow * frame, EDA_LibComponentStruct * OldEntry); - /* Routine de copie d'une partlib - Parametres d'entree: pointeur sur la structure de depart - Parametres de sortie: pointeur sur la structure creee */ + /* Routine de copie d'une partlib + Parametres d'entree: pointeur sur la structure de depart + Parametres de sortie: pointeur sur la structure creee */ int WriteOneDocLibEntry(FILE * ExportFile, EDA_LibComponentStruct * LibEntry); - /* Routine d'ecriture de la doc du composant pointe par LibEntry - dans le fichier ExportFile( qui doit etre deja ouvert) - return: 0 si Ok - 1 si err write */ + /* Routine d'ecriture de la doc du composant pointe par LibEntry + dans le fichier ExportFile( qui doit etre deja ouvert) + return: 0 si Ok + 1 si err write */ int SaveOneLibrary(wxWindow * frame, const wxString & FullFileName, LibraryStruct * Library); - /* Sauvegarde en fichier la librairie pointee par Library, sous le nom - FullFileName. - 2 fichiers sont crees - - La librarie - - le fichier de documentation + /* Sauvegarde en fichier la librairie pointee par Library, sous le nom + FullFileName. + 2 fichiers sont crees + - La librarie + - le fichier de documentation - une sauvegarde .bak de l'ancien fichier librairie est cree - une sauvegarde .bck de l'ancien fichier documentation est cree + une sauvegarde .bak de l'ancien fichier librairie est cree + une sauvegarde .bck de l'ancien fichier documentation est cree - return: - 0 si OK - 1 si erreur */ + return: + 0 si OK + 1 si erreur */ /***************/ /* SYMBEDIT.CPP */ /***************/ void SuppressDuplicateDrawItem(EDA_LibComponentStruct * LibEntry); - /* Routine de suppression des elements de trace dupliques, situation - frequente lorsque l'on charge des symboles predessines plusieurs fois - pour definir un composant */ + /* Routine de suppression des elements de trace dupliques, situation + frequente lorsque l'on charge des symboles predessines plusieurs fois + pour definir un composant */ /***************/ /* SYMBTEXT.CPP */ @@ -300,9 +300,9 @@ int IsBusLabel(const wxString & LabelDrawList); void ReAnnotatePowerSymbolsOnly(); int CheckAnnotate(WinEDA_SchematicFrame * frame, bool OneSheetOnly); - /* Retourne le nombre de composants non annotes ou erron�s - Si OneSheetOnly : recherche sur le schema courant - else: recherche sur toute la hierarchie */ + /* Retourne le nombre de composants non annotes ou erron�s + Si OneSheetOnly : recherche sur le schema courant + else: recherche sur toute la hierarchie */ /************/ @@ -315,10 +315,10 @@ void PlotCercle(wxPoint centre, int diametre, int width = -1); void PlotPoly( int nb, int * coord, int fill, int width = -1); void PlotNoConnectStruct(DrawNoConnectStruct * Struct); -void PlotLibPart( EDA_SchComponentStruct *DrawLibItem ); - /* Genere le trace d'un composant */ +void PlotLibPart( SCH_COMPONENT *DrawLibItem ); + /* Genere le trace d'un composant */ void PlotSheetStruct(DrawSheetStruct *Struct); - /* Routine de dessin du bloc type hierarchie */ + /* Routine de dessin du bloc type hierarchie */ void PlotTextStruct(EDA_BaseStruct *Struct); /***************/ @@ -327,7 +327,7 @@ void PlotTextStruct(EDA_BaseStruct *Struct); void DeleteSubHierarchy(DrawSheetStruct * Sheet, bool confirm_deletion); bool ClearProjectDrawList(SCH_SCREEN * FirstWindow, bool confirm_deletion); /* free the draw list screen->EEDrawList and the subhierarchies - clear the screen datas (filenames ..) + clear the screen datas (filenames ..) */ /*************/ @@ -337,19 +337,19 @@ bool ClearProjectDrawList(SCH_SCREEN * FirstWindow, bool confirm_deletion); bool LocateAndDeleteItem(WinEDA_SchematicFrame * frame, wxDC * DC); void EraseStruct(EDA_BaseStruct *DrawStruct, SCH_SCREEN * Window); void DeleteAllMarkers(int type); - /* Effacement des marqueurs du type "type" */ + /* Effacement des marqueurs du type "type" */ void DeleteOneLibraryDrawStruct(WinEDA_DrawPanel * panel, - wxDC *DC, EDA_LibComponentStruct * LibEntry, - LibEDA_BaseStruct * DrawItem, int Affiche); - /* Routine d'effacement d'un "LibraryDrawStruct" - (d'un element de dessin d'un composant ) - Parametres d'entree - Pointeur sur le composant comportant la structure - (Si NULL la structure a effacer est supposee non rattachee - a un composant) - Pointeur sur la structure a effacer - Affiche (si != 0 Efface le graphique correspondant de l'ecran) */ + wxDC *DC, EDA_LibComponentStruct * LibEntry, + LibEDA_BaseStruct * DrawItem, int Affiche); + /* Routine d'effacement d'un "LibraryDrawStruct" + (d'un element de dessin d'un composant ) + Parametres d'entree + Pointeur sur le composant comportant la structure + (Si NULL la structure a effacer est supposee non rattachee + a un composant) + Pointeur sur la structure a effacer + Affiche (si != 0 Efface le graphique correspondant de l'ecran) */ /**************/ @@ -357,12 +357,12 @@ void DeleteOneLibraryDrawStruct(WinEDA_DrawPanel * panel, /**************/ int LookForConvertPart( EDA_LibComponentStruct * LibEntry ); - /* Retourne la plus grande valeur trouvee dans la liste des elements - "drawings" du composant LibEntry, pour le membre .Convert - Si il n'y a pas de representation type "convert", la valeur - retournee est 0 ou 1 - Si il y a une representation type "convert", - la valeur retournee est > 1 (typiquement 2) */ + /* Retourne la plus grande valeur trouvee dans la liste des elements + "drawings" du composant LibEntry, pour le membre .Convert + Si il n'y a pas de representation type "convert", la valeur + retournee est 0 ou 1 + Si il y a une representation type "convert", + la valeur retournee est > 1 (typiquement 2) */ /**************/ @@ -376,66 +376,66 @@ void InstallPineditFrame(WinEDA_LibeditFrame * parent, wxDC * DC, const wxPoint /**************/ int DisplayComponentsNamesInLib(WinEDA_DrawFrame * frame, - LibraryStruct *Library, wxString & Buffer, wxString & OldName); + LibraryStruct *Library, wxString & Buffer, wxString & OldName); LibraryStruct * SelectLibraryFromList(WinEDA_DrawFrame * frame); - /* Routine pour selectionner une librairie a partir d'une liste */ + /* Routine pour selectionner une librairie a partir d'une liste */ int GetNameOfPartToLoad(WinEDA_DrawFrame * frame, LibraryStruct * Lib, - wxString & BufName); - /* Routine de selection du nom d'un composant en librairie pour chargement, - dans la librairie Library. - Si Library == NULL, il y aura demande de selection d'une librairie - Retourne - 1 si composant selectionne - 0 si commande annulee - place le nom du composant a charger, selectionne a partir d'une liste dans - BufName */ + wxString & BufName); + /* Routine de selection du nom d'un composant en librairie pour chargement, + dans la librairie Library. + Si Library == NULL, il y aura demande de selection d'une librairie + Retourne + 1 si composant selectionne + 0 si commande annulee + place le nom du composant a charger, selectionne a partir d'une liste dans + BufName */ - /**************/ - /* LIBARCH.CPP */ - /**************/ + /**************/ + /* LIBARCH.CPP */ + /**************/ bool LibArchive(wxWindow * frame, const wxString & ArchFullFileName); - /***************/ - /* GENLISTE.CPP */ - /***************/ -struct ListComponent; + /***************/ + /* GENLISTE.CPP */ + /***************/ +struct ListComponent; int GenListeCmp( ListComponent * List ); - /**************/ - /* CLEANUP.CPP */ - /**************/ + /**************/ + /* CLEANUP.CPP */ + /**************/ void SchematicCleanUp(SCH_SCREEN * screen, wxDC * DC); - /* Routine de nettoyage: - - regroupe les segments de fils (ou de bus) alignes en 1 seul segment - - Detecte les objets identiques superposes - */ + /* Routine de nettoyage: + - regroupe les segments de fils (ou de bus) alignes en 1 seul segment + - Detecte les objets identiques superposes + */ void BreakSegmentOnJunction( SCH_SCREEN * Screen ); - /* Routine creant des debuts / fin de segment (BUS ou WIRES) sur les jonctions - et les raccords */ + /* Routine creant des debuts / fin de segment (BUS ou WIRES) sur les jonctions + et les raccords */ DrawPickedStruct * BreakSegment(SCH_SCREEN * screen, wxPoint breakpoint, - bool PutInUndoList = FALSE); - /* Coupe un segment ( BUS, WIRE ) en 2 au point breakpoint, - - si ce point est sur le segment - - extremites non comprises */ + bool PutInUndoList = FALSE); + /* Coupe un segment ( BUS, WIRE ) en 2 au point breakpoint, + - si ce point est sur le segment + - extremites non comprises */ - /**************/ - /* EECLASS.CPP */ - /**************/ + /**************/ + /* EECLASS.CPP */ + /**************/ void SetStructFather(EDA_BaseStruct * Struct, BASE_SCREEN * Screen); - /***************/ - /* LIBALIAS.CPP */ - /***************/ + /***************/ + /* LIBALIAS.CPP */ + /***************/ bool BuildAliasData(LibraryStruct * Lib, EDA_LibComponentStruct * component); - /* Create the alias data for the lib component to edit */ + /* Create the alias data for the lib component to edit */ int LocateAlias( const wxArrayString & AliasData, const wxString & Name); - /* Return an index in alias data list ( -1 if not found ) */ + /* Return an index in alias data list ( -1 if not found ) */ /***************/ diff --git a/eeschema/save_schemas.cpp b/eeschema/save_schemas.cpp index cf166a45da..46b747e801 100644 --- a/eeschema/save_schemas.cpp +++ b/eeschema/save_schemas.cpp @@ -1,6 +1,6 @@ - /*********************************************/ - /* eesave.cpp Module to Save EESchema files */ - /*********************************************/ + /*********************************************/ + /* eesave.cpp Module to Save EESchema files */ + /*********************************************/ #include "fctsys.h" #include "gr_basic.h" @@ -20,7 +20,7 @@ /* Fonctions externes */ /* Fonctions Locales */ -static int SavePartDescr( FILE *f, EDA_SchComponentStruct * LibItemStruct); +static int SavePartDescr( FILE *f, SCH_COMPONENT * LibItemStruct); static int SaveSheetDescr( FILE *f, DrawSheetStruct * SheetStruct); static void SaveLayers(FILE *f); @@ -33,510 +33,510 @@ static void SaveLayers(FILE *f); *****************************************************************************/ bool WinEDA_SchematicFrame::SaveEEFile(SCH_SCREEN *screen, int FileSave) { - wxString msg; - wxString Name, BakName; - const wxChar **LibNames; - const char * layer, *width; - int ii, shape; - bool Failed = FALSE; - EDA_BaseStruct *Phead; - Ki_PageDescr * PlotSheet; - FILE *f; - wxString dirbuf; + wxString msg; + wxString Name, BakName; + const wxChar **LibNames; + const char * layer, *width; + int ii, shape; + bool Failed = FALSE; + EDA_BaseStruct *Phead; + Ki_PageDescr * PlotSheet; + FILE *f; + wxString dirbuf; - if ( screen == NULL ) screen = (SCH_SCREEN*)GetScreen(); + if ( screen == NULL ) screen = (SCH_SCREEN*)GetScreen(); - /* If no name exists in the window yet - save as new. */ - if( screen->m_FileName.IsEmpty() ) FileSave = FILE_SAVE_NEW; + /* If no name exists in the window yet - save as new. */ + if( screen->m_FileName.IsEmpty() ) FileSave = FILE_SAVE_NEW; - switch (FileSave) - { - case FILE_SAVE_AS: - dirbuf = wxGetCwd() + STRING_DIR_SEP; - Name = MakeFileName(dirbuf, screen->m_FileName, g_SchExtBuffer); - /* Rename the old file to a '.bak' one: */ - BakName = Name; - if ( wxFileExists(Name) ) - { - ChangeFileNameExt(BakName, wxT(".bak")); - wxRemoveFile(BakName); /* delete Old .bak file */ - if( ! wxRenameFile(Name, BakName) ){ - DisplayError(this, wxT("Warning: unable to rename old file"), 10); - } - } - break; + switch (FileSave) + { + case FILE_SAVE_AS: + dirbuf = wxGetCwd() + STRING_DIR_SEP; + Name = MakeFileName(dirbuf, screen->m_FileName, g_SchExtBuffer); + /* Rename the old file to a '.bak' one: */ + BakName = Name; + if ( wxFileExists(Name) ) + { + ChangeFileNameExt(BakName, wxT(".bak")); + wxRemoveFile(BakName); /* delete Old .bak file */ + if( ! wxRenameFile(Name, BakName) ){ + DisplayError(this, wxT("Warning: unable to rename old file"), 10); + } + } + break; - case FILE_SAVE_NEW: - { - wxString mask = wxT("*") + g_SchExtBuffer; - Name = EDA_FileSelector(_("Schematic files:"), - wxEmptyString, /* Chemin par defaut */ - screen->m_FileName, /* nom fichier par defaut, et resultat */ - g_SchExtBuffer, /* extension par defaut */ - mask, /* Masque d'affichage */ - this, - wxFD_SAVE, - FALSE - ); - if ( Name.IsEmpty() ) return FALSE; + case FILE_SAVE_NEW: + { + wxString mask = wxT("*") + g_SchExtBuffer; + Name = EDA_FileSelector(_("Schematic files:"), + wxEmptyString, /* Chemin par defaut */ + screen->m_FileName, /* nom fichier par defaut, et resultat */ + g_SchExtBuffer, /* extension par defaut */ + mask, /* Masque d'affichage */ + this, + wxFD_SAVE, + FALSE + ); + if ( Name.IsEmpty() ) return FALSE; - screen->m_FileName = Name; - dirbuf = wxGetCwd() + STRING_DIR_SEP; - Name = MakeFileName(dirbuf, Name, g_SchExtBuffer); + screen->m_FileName = Name; + dirbuf = wxGetCwd() + STRING_DIR_SEP; + Name = MakeFileName(dirbuf, Name, g_SchExtBuffer); - break; - } + break; + } - default: break; - } + default: break; + } - if ((f = wxFopen(Name, wxT("wt"))) == NULL) - { - msg = _("Failed to create file ") + Name; - DisplayError(this, msg); - return FALSE; - } + if ((f = wxFopen(Name, wxT("wt"))) == NULL) + { + msg = _("Failed to create file ") + Name; + DisplayError(this, msg); + return FALSE; + } - msg = _("Save file ") + Name; - Affiche_Message(msg); + msg = _("Save file ") + Name; + Affiche_Message(msg); - LibNames = GetLibNames(); - BakName.Empty(); // temporary buffer! - for (ii = 0; LibNames[ii] != NULL; ii++) - { - if (ii > 0) BakName += wxT(","); - BakName += LibNames[ii]; - } - MyFree( LibNames); + LibNames = GetLibNames(); + BakName.Empty(); // temporary buffer! + for (ii = 0; LibNames[ii] != NULL; ii++) + { + if (ii > 0) BakName += wxT(","); + BakName += LibNames[ii]; + } + MyFree( LibNames); - if (fprintf(f, "%s %s %d\n", EESCHEMA_FILE_STAMP, - SCHEMATIC_HEAD_STRING, EESCHEMA_VERSION) == EOF || - fprintf(f, "LIBS:%s\n", CONV_TO_UTF8(BakName)) == EOF) - { - DisplayError(this, _("File write operation failed.")); - fclose(f); - return FALSE; - } + if (fprintf(f, "%s %s %d\n", EESCHEMA_FILE_STAMP, + SCHEMATIC_HEAD_STRING, EESCHEMA_VERSION) == EOF || + fprintf(f, "LIBS:%s\n", CONV_TO_UTF8(BakName)) == EOF) + { + DisplayError(this, _("File write operation failed.")); + fclose(f); + return FALSE; + } - screen->ClrModify(); + screen->ClrModify(); - SaveLayers(f); - /* Sauvegarde des dimensions du schema, des textes du cartouche.. */ - - PlotSheet = screen->m_CurrentSheetDesc; - fprintf(f,"$Descr %s %d %d\n",CONV_TO_UTF8(PlotSheet->m_Name), - PlotSheet->m_Size.x, PlotSheet->m_Size.y); + SaveLayers(f); + /* Sauvegarde des dimensions du schema, des textes du cartouche.. */ - fprintf(f,"Sheet %d %d\n",screen->m_ScreenNumber, screen->m_NumberOfScreen); - fprintf(f,"Title \"%s\"\n",CONV_TO_UTF8(screen->m_Title)); - fprintf(f,"Date \"%s\"\n",CONV_TO_UTF8(screen->m_Date)); - fprintf(f,"Rev \"%s\"\n",CONV_TO_UTF8(screen->m_Revision)); - fprintf(f,"Comp \"%s\"\n",CONV_TO_UTF8(screen->m_Company)); - fprintf(f,"Comment1 \"%s\"\n", CONV_TO_UTF8(screen->m_Commentaire1)); - fprintf(f,"Comment2 \"%s\"\n", CONV_TO_UTF8(screen->m_Commentaire2)); - fprintf(f,"Comment3 \"%s\"\n", CONV_TO_UTF8(screen->m_Commentaire3)); - fprintf(f,"Comment4 \"%s\"\n", CONV_TO_UTF8(screen->m_Commentaire4)); + PlotSheet = screen->m_CurrentSheetDesc; + fprintf(f,"$Descr %s %d %d\n",CONV_TO_UTF8(PlotSheet->m_Name), + PlotSheet->m_Size.x, PlotSheet->m_Size.y); - fprintf(f,"$EndDescr\n"); + fprintf(f,"Sheet %d %d\n",screen->m_ScreenNumber, screen->m_NumberOfScreen); + fprintf(f,"Title \"%s\"\n",CONV_TO_UTF8(screen->m_Title)); + fprintf(f,"Date \"%s\"\n",CONV_TO_UTF8(screen->m_Date)); + fprintf(f,"Rev \"%s\"\n",CONV_TO_UTF8(screen->m_Revision)); + fprintf(f,"Comp \"%s\"\n",CONV_TO_UTF8(screen->m_Company)); + fprintf(f,"Comment1 \"%s\"\n", CONV_TO_UTF8(screen->m_Commentaire1)); + fprintf(f,"Comment2 \"%s\"\n", CONV_TO_UTF8(screen->m_Commentaire2)); + fprintf(f,"Comment3 \"%s\"\n", CONV_TO_UTF8(screen->m_Commentaire3)); + fprintf(f,"Comment4 \"%s\"\n", CONV_TO_UTF8(screen->m_Commentaire4)); - /* Sauvegarde des elements du dessin */ - Phead = screen->EEDrawList; - while (Phead) - { - switch(Phead->Type()) - { - case DRAW_LIB_ITEM_STRUCT_TYPE: /* Its a library item. */ - SavePartDescr( f, (EDA_SchComponentStruct *) Phead); - break; + fprintf(f,"$EndDescr\n"); - case DRAW_SHEET_STRUCT_TYPE: /* Its a Sheet item. */ - SaveSheetDescr( f, (DrawSheetStruct *) Phead); - break; + /* Sauvegarde des elements du dessin */ + Phead = screen->EEDrawList; + while (Phead) + { + switch(Phead->Type()) + { + case TYPE_SCH_COMPONENT: /* Its a library item. */ + SavePartDescr( f, (SCH_COMPONENT *) Phead); + break; - case DRAW_SEGMENT_STRUCT_TYPE: /* Its a Segment item. */ - #undef STRUCT - #define STRUCT ((EDA_DrawLineStruct *) Phead) - layer = "Notes"; width = "Line"; - if (STRUCT->m_Layer == LAYER_WIRE) layer = "Wire"; - if (STRUCT->m_Layer == LAYER_BUS) layer = "Bus"; - if( STRUCT->m_Width != GR_NORM_WIDTH) layer = "Bus"; - if (fprintf(f, "Wire %s %s\n", layer, width ) == EOF) - { - Failed = TRUE; break; - } - if (fprintf(f, "\t%-4d %-4d %-4d %-4d\n", - STRUCT->m_Start.x,STRUCT->m_Start.y, - STRUCT->m_End.x,STRUCT->m_End.y) == EOF) - { - Failed = TRUE; break; - } - break; + case DRAW_SHEET_STRUCT_TYPE: /* Its a Sheet item. */ + SaveSheetDescr( f, (DrawSheetStruct *) Phead); + break; - case DRAW_BUSENTRY_STRUCT_TYPE: /* Its a Raccord item. */ - #undef STRUCT - #define STRUCT ((DrawBusEntryStruct *) Phead) - layer = "Wire"; width = "Line"; - if (STRUCT->m_Layer == LAYER_BUS) - { - layer = "Bus"; width = "Bus"; - } + case DRAW_SEGMENT_STRUCT_TYPE: /* Its a Segment item. */ + #undef STRUCT + #define STRUCT ((EDA_DrawLineStruct *) Phead) + layer = "Notes"; width = "Line"; + if (STRUCT->m_Layer == LAYER_WIRE) layer = "Wire"; + if (STRUCT->m_Layer == LAYER_BUS) layer = "Bus"; + if( STRUCT->m_Width != GR_NORM_WIDTH) layer = "Bus"; + if (fprintf(f, "Wire %s %s\n", layer, width ) == EOF) + { + Failed = TRUE; break; + } + if (fprintf(f, "\t%-4d %-4d %-4d %-4d\n", + STRUCT->m_Start.x,STRUCT->m_Start.y, + STRUCT->m_End.x,STRUCT->m_End.y) == EOF) + { + Failed = TRUE; break; + } + break; - if (fprintf(f, "Entry %s %s\n", layer, width) == EOF) - { - Failed = TRUE; break; - } - if( fprintf(f, "\t%-4d %-4d %-4d %-4d\n", - STRUCT->m_Pos.x,STRUCT->m_Pos.y, - STRUCT->m_End().x,STRUCT->m_End().y) == EOF) - { - Failed = TRUE; break; - } - break; + case DRAW_BUSENTRY_STRUCT_TYPE: /* Its a Raccord item. */ + #undef STRUCT + #define STRUCT ((DrawBusEntryStruct *) Phead) + layer = "Wire"; width = "Line"; + if (STRUCT->m_Layer == LAYER_BUS) + { + layer = "Bus"; width = "Bus"; + } - case DRAW_POLYLINE_STRUCT_TYPE: /* Its a polyline item. */ - #undef STRUCT - #define STRUCT ((DrawPolylineStruct *) Phead) - layer = "Notes"; width = "Line"; - if (STRUCT->m_Layer == LAYER_WIRE) layer = "Wire"; - if (STRUCT->m_Layer == LAYER_BUS) layer = "Bus"; - if( STRUCT->m_Width != GR_NORM_WIDTH) width = "Bus"; - if (fprintf(f, "Poly %s %s %d\n", - width, layer, STRUCT->m_NumOfPoints) == EOF) - { - Failed = TRUE; break; - } - for (ii = 0; ii < STRUCT->m_NumOfPoints; ii++) - { - if (fprintf(f, "\t%-4d %-4d\n", - STRUCT->m_Points[ii*2], - STRUCT->m_Points[ii*2+1]) == EOF) - { - Failed = TRUE; - break; - } - } - break; + if (fprintf(f, "Entry %s %s\n", layer, width) == EOF) + { + Failed = TRUE; break; + } + if( fprintf(f, "\t%-4d %-4d %-4d %-4d\n", + STRUCT->m_Pos.x,STRUCT->m_Pos.y, + STRUCT->m_End().x,STRUCT->m_End().y) == EOF) + { + Failed = TRUE; break; + } + break; - case DRAW_JUNCTION_STRUCT_TYPE: /* Its a connection item. */ - #undef STRUCT - #define STRUCT ((DrawJunctionStruct *) Phead) - if (fprintf(f, "Connection ~ %-4d %-4d\n", - STRUCT->m_Pos.x, STRUCT->m_Pos.y) == EOF) - { - Failed = TRUE; - } - break; + case DRAW_POLYLINE_STRUCT_TYPE: /* Its a polyline item. */ + #undef STRUCT + #define STRUCT ((DrawPolylineStruct *) Phead) + layer = "Notes"; width = "Line"; + if (STRUCT->m_Layer == LAYER_WIRE) layer = "Wire"; + if (STRUCT->m_Layer == LAYER_BUS) layer = "Bus"; + if( STRUCT->m_Width != GR_NORM_WIDTH) width = "Bus"; + if (fprintf(f, "Poly %s %s %d\n", + width, layer, STRUCT->m_NumOfPoints) == EOF) + { + Failed = TRUE; break; + } + for (ii = 0; ii < STRUCT->m_NumOfPoints; ii++) + { + if (fprintf(f, "\t%-4d %-4d\n", + STRUCT->m_Points[ii*2], + STRUCT->m_Points[ii*2+1]) == EOF) + { + Failed = TRUE; + break; + } + } + break; - case DRAW_NOCONNECT_STRUCT_TYPE: /* Its a NoConnection item. */ - #undef STRUCT - #define STRUCT ((DrawNoConnectStruct *) Phead) - if (fprintf(f, "NoConn ~ %-4d %-4d\n", - STRUCT->m_Pos.x, STRUCT->m_Pos.y) == EOF) - { - Failed = TRUE; - } - break; + case DRAW_JUNCTION_STRUCT_TYPE: /* Its a connection item. */ + #undef STRUCT + #define STRUCT ((DrawJunctionStruct *) Phead) + if (fprintf(f, "Connection ~ %-4d %-4d\n", + STRUCT->m_Pos.x, STRUCT->m_Pos.y) == EOF) + { + Failed = TRUE; + } + break; - case DRAW_TEXT_STRUCT_TYPE: /* Its a text item. */ - #undef STRUCT - #define STRUCT ((DrawTextStruct *) Phead) - if (fprintf(f, "Text Notes %-4d %-4d %-4d %-4d ~\n%s\n", - STRUCT->m_Pos.x, STRUCT->m_Pos.y, - STRUCT->m_Orient, STRUCT->m_Size.x, - CONV_TO_UTF8(STRUCT->m_Text)) == EOF) - Failed = TRUE; - break; + case DRAW_NOCONNECT_STRUCT_TYPE: /* Its a NoConnection item. */ + #undef STRUCT + #define STRUCT ((DrawNoConnectStruct *) Phead) + if (fprintf(f, "NoConn ~ %-4d %-4d\n", + STRUCT->m_Pos.x, STRUCT->m_Pos.y) == EOF) + { + Failed = TRUE; + } + break; + + case TYPE_SCH_TEXT: /* Its a text item. */ + #undef STRUCT + #define STRUCT ((SCH_TEXT *) Phead) + if (fprintf(f, "Text Notes %-4d %-4d %-4d %-4d ~\n%s\n", + STRUCT->m_Pos.x, STRUCT->m_Pos.y, + STRUCT->m_Orient, STRUCT->m_Size.x, + CONV_TO_UTF8(STRUCT->m_Text)) == EOF) + Failed = TRUE; + break; - case DRAW_LABEL_STRUCT_TYPE: /* Its a label item. */ - #undef STRUCT - #define STRUCT ((DrawLabelStruct *) Phead) - shape = '~'; - if (fprintf(f, "Text Label %-4d %-4d %-4d %-4d %c\n%s\n", - STRUCT->m_Pos.x, STRUCT->m_Pos.y, - STRUCT->m_Orient, STRUCT->m_Size.x, shape, - CONV_TO_UTF8(STRUCT->m_Text)) == EOF) - Failed = TRUE; - break; + case TYPE_SCH_LABEL: /* Its a label item. */ + #undef STRUCT + #define STRUCT ((SCH_LABEL *) Phead) + shape = '~'; + if (fprintf(f, "Text Label %-4d %-4d %-4d %-4d %c\n%s\n", + STRUCT->m_Pos.x, STRUCT->m_Pos.y, + STRUCT->m_Orient, STRUCT->m_Size.x, shape, + CONV_TO_UTF8(STRUCT->m_Text)) == EOF) + Failed = TRUE; + break; - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: /* Its a Global label item. */ - #undef STRUCT - #define STRUCT ((DrawGlobalLabelStruct *) Phead) - shape = STRUCT->m_Shape; - if (fprintf(f, "Text GLabel %-4d %-4d %-4d %-4d %s\n%s\n", - STRUCT->m_Pos.x, STRUCT->m_Pos.y, - STRUCT->m_Orient, STRUCT->m_Size.x, - SheetLabelType[shape], - CONV_TO_UTF8(STRUCT->m_Text)) == EOF) - Failed = TRUE; - break; - - case DRAW_HIER_LABEL_STRUCT_TYPE: /* Its a Hierarchical label item. */ - #undef STRUCT - #define STRUCT ((DrawHierLabelStruct *) Phead) - shape = STRUCT->m_Shape; - if (fprintf(f, "Text HLabel %-4d %-4d %-4d %-4d %s\n%s\n", - STRUCT->m_Pos.x, STRUCT->m_Pos.y, - STRUCT->m_Orient, STRUCT->m_Size.x, - SheetLabelType[shape], - CONV_TO_UTF8(STRUCT->m_Text)) == EOF) - Failed = TRUE; - break; + case TYPE_SCH_GLOBALLABEL: /* Its a Global label item. */ + #undef STRUCT + #define STRUCT ((SCH_GLOBALLABEL *) Phead) + shape = STRUCT->m_Shape; + if (fprintf(f, "Text GLabel %-4d %-4d %-4d %-4d %s\n%s\n", + STRUCT->m_Pos.x, STRUCT->m_Pos.y, + STRUCT->m_Orient, STRUCT->m_Size.x, + SheetLabelType[shape], + CONV_TO_UTF8(STRUCT->m_Text)) == EOF) + Failed = TRUE; + break; - case DRAW_MARKER_STRUCT_TYPE: /* Its a marker item. */ - #undef STRUCT - #define STRUCT ((DrawMarkerStruct *) Phead) - if( STRUCT->GetComment() ) msg = STRUCT->GetComment(); - else msg.Empty(); - if (fprintf(f, "Kmarq %c %-4d %-4d \"%s\" F=%X\n", - (int) STRUCT->m_Type + 'A', - STRUCT->m_Pos.x, STRUCT->m_Pos.y, - CONV_TO_UTF8(msg), STRUCT->m_MarkFlags) == EOF) - { - Failed = TRUE; - } - break; + case TYPE_SCH_HIERLABEL: /* Its a Hierarchical label item. */ + #undef STRUCT + #define STRUCT ((SCH_HIERLABEL *) Phead) + shape = STRUCT->m_Shape; + if (fprintf(f, "Text HLabel %-4d %-4d %-4d %-4d %s\n%s\n", + STRUCT->m_Pos.x, STRUCT->m_Pos.y, + STRUCT->m_Orient, STRUCT->m_Size.x, + SheetLabelType[shape], + CONV_TO_UTF8(STRUCT->m_Text)) == EOF) + Failed = TRUE; + break; - case DRAW_SHEETLABEL_STRUCT_TYPE : - case DRAW_PICK_ITEM_STRUCT_TYPE : - break; + case DRAW_MARKER_STRUCT_TYPE: /* Its a marker item. */ + #undef STRUCT + #define STRUCT ((DrawMarkerStruct *) Phead) + if( STRUCT->GetComment() ) msg = STRUCT->GetComment(); + else msg.Empty(); + if (fprintf(f, "Kmarq %c %-4d %-4d \"%s\" F=%X\n", + (int) STRUCT->m_Type + 'A', + STRUCT->m_Pos.x, STRUCT->m_Pos.y, + CONV_TO_UTF8(msg), STRUCT->m_MarkFlags) == EOF) + { + Failed = TRUE; + } + break; - default: - break; - } + case DRAW_SHEETLABEL_STRUCT_TYPE : + case DRAW_PICK_ITEM_STRUCT_TYPE : + break; - if (Failed) - { - DisplayError(this, _("File write operation failed.")); - break; - } + default: + break; + } - Phead = Phead->Pnext; - } - if (fprintf(f, "$EndSCHEMATC\n") == EOF) Failed = TRUE; + if (Failed) + { + DisplayError(this, _("File write operation failed.")); + break; + } - fclose(f); + Phead = Phead->Pnext; + } + if (fprintf(f, "$EndSCHEMATC\n") == EOF) Failed = TRUE; - if (FileSave == FILE_SAVE_NEW) screen->m_FileName = Name; + fclose(f); - return !Failed; + if (FileSave == FILE_SAVE_NEW) screen->m_FileName = Name; + + return !Failed; } /*******************************************************************/ -static int SavePartDescr( FILE *f, EDA_SchComponentStruct * LibItemStruct) +static int SavePartDescr( FILE *f, SCH_COMPONENT * LibItemStruct) /*******************************************************************/ /* Routine utilisee dans la routine precedente. - Assure la sauvegarde de la structure LibItemStruct + Assure la sauvegarde de la structure LibItemStruct */ { int ii, Failed = FALSE; char Name1[256], Name2[256]; int hjustify, vjustify; - //this is redundant with the AR entries below, but it makes the - //files backwards-compatible. - if(LibItemStruct->m_References.GetCount() > 0) - strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_References[0]), sizeof(Name1)); - else{ - if(LibItemStruct->m_Field[REFERENCE].m_Text.IsEmpty()) - strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_PrefixString),sizeof(Name1)); - else - strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_Field[REFERENCE].m_Text),sizeof(Name1)); - } - for (ii = 0; ii < (int)strlen(Name1); ii++){ - if (Name1[ii] <= ' ') Name1[ii] = '~'; - } - if ( ! LibItemStruct->m_ChipName.IsEmpty() ) - { - strncpy(Name2, CONV_TO_UTF8(LibItemStruct->m_ChipName),sizeof(Name2)); - for (ii = 0; ii < (int)strlen(Name2); ii++) - if (Name2[ii] <= ' ') Name2[ii] = '~'; - } + //this is redundant with the AR entries below, but it makes the + //files backwards-compatible. + if(LibItemStruct->m_References.GetCount() > 0) + strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_References[0]), sizeof(Name1)); + else{ + if(LibItemStruct->m_Field[REFERENCE].m_Text.IsEmpty()) + strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_PrefixString),sizeof(Name1)); + else + strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_Field[REFERENCE].m_Text),sizeof(Name1)); + } + for (ii = 0; ii < (int)strlen(Name1); ii++){ + if (Name1[ii] <= ' ') Name1[ii] = '~'; + } + if ( ! LibItemStruct->m_ChipName.IsEmpty() ) + { + strncpy(Name2, CONV_TO_UTF8(LibItemStruct->m_ChipName),sizeof(Name2)); + for (ii = 0; ii < (int)strlen(Name2); ii++) + if (Name2[ii] <= ' ') Name2[ii] = '~'; + } - else strncpy(Name2, NULL_STRING,sizeof(Name2)); + else strncpy(Name2, NULL_STRING,sizeof(Name2)); - fprintf(f, "$Comp\n"); + fprintf(f, "$Comp\n"); - if(fprintf (f, "L %s %s\n", Name2, Name1) == EOF) - { - Failed = TRUE; - return(Failed); - } + if(fprintf (f, "L %s %s\n", Name2, Name1) == EOF) + { + Failed = TRUE; + return(Failed); + } - /* Generation de numero d'unit, convert et Time Stamp*/ - if(fprintf(f, "U %d %d %8.8lX\n", - LibItemStruct->m_Multi, - LibItemStruct->m_Convert, - LibItemStruct->m_TimeStamp) == EOF) - { - Failed = TRUE; return(Failed); - } + /* Generation de numero d'unit, convert et Time Stamp*/ + if(fprintf(f, "U %d %d %8.8lX\n", + LibItemStruct->m_Multi, + LibItemStruct->m_Convert, + LibItemStruct->m_TimeStamp) == EOF) + { + Failed = TRUE; return(Failed); + } - /* Sortie de la position */ - if(fprintf(f, "P %d %d\n", - LibItemStruct->m_Pos.x, LibItemStruct->m_Pos.y) == EOF) - { - Failed = TRUE; return(Failed); - } - unsigned int i; - for(i=0; i< LibItemStruct->m_References.GetCount(); i++){ - /*format: - AR Path="/140/2" Ref="C99" - where 140 is the uid of the contianing sheet - and 2 is the timestamp of this component. - (timestamps are actually 8 hex chars) - Ref is the conventional component reference for this 'path' - */ - /*printf("AR Path=\"%s\" Ref=\"%s\" \n", - CONV_TO_UTF8( LibItemStruct->m_Paths[i]), - CONV_TO_UTF8( LibItemStruct->m_References[i] ) ); */ - if( fprintf(f, "AR Path=\"%s\" Ref=\"%s\" \n", - CONV_TO_UTF8( LibItemStruct->m_Paths[i]), - CONV_TO_UTF8( LibItemStruct->m_References[i] ) ) == EOF ) - { - Failed = TRUE; break; - } - } - for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ ) - { - PartTextStruct * field = & LibItemStruct->m_Field[ii]; - if( field->m_Text.IsEmpty() ) continue; - hjustify = 'C'; - if ( field->m_HJustify == GR_TEXT_HJUSTIFY_LEFT) - hjustify = 'L'; - else if ( field->m_HJustify == GR_TEXT_HJUSTIFY_RIGHT) - hjustify = 'R'; - vjustify = 'C'; - if ( field->m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM) - vjustify = 'B'; - else if ( field->m_VJustify == GR_TEXT_VJUSTIFY_TOP) - vjustify = 'T'; - if( fprintf(f,"F %d \"%s\" %c %-3d %-3d %-3d %4.4X %c %c", ii, - CONV_TO_UTF8(field->m_Text), - field->m_Orient == TEXT_ORIENT_HORIZ ? 'H' : 'V', - field->m_Pos.x, field->m_Pos.y, - field->m_Size.x, - field->m_Attributs, - hjustify, vjustify) == EOF) - { - Failed = TRUE; break; - } - // Save field name, if necessary - if ( ii >= FIELD1 && ! field->m_Name.IsEmpty() ) - { - wxString fieldname = ReturnDefaultFieldName(ii); - if ( fieldname != field->m_Name ) - if( fprintf(f," \"%s\"", CONV_TO_UTF8(field->m_Name) ) == EOF) - { - Failed = TRUE; break; - } - } - if( fprintf(f,"\n") == EOF) - { - Failed = TRUE; break; - } - } + /* Sortie de la position */ + if(fprintf(f, "P %d %d\n", + LibItemStruct->m_Pos.x, LibItemStruct->m_Pos.y) == EOF) + { + Failed = TRUE; return(Failed); + } + unsigned int i; + for(i=0; i< LibItemStruct->m_References.GetCount(); i++){ + /*format: + AR Path="/140/2" Ref="C99" + where 140 is the uid of the contianing sheet + and 2 is the timestamp of this component. + (timestamps are actually 8 hex chars) + Ref is the conventional component reference for this 'path' + */ + /*printf("AR Path=\"%s\" Ref=\"%s\" \n", + CONV_TO_UTF8( LibItemStruct->m_Paths[i]), + CONV_TO_UTF8( LibItemStruct->m_References[i] ) ); */ + if( fprintf(f, "AR Path=\"%s\" Ref=\"%s\" \n", + CONV_TO_UTF8( LibItemStruct->m_Paths[i]), + CONV_TO_UTF8( LibItemStruct->m_References[i] ) ) == EOF ) + { + Failed = TRUE; break; + } + } + for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ ) + { + PartTextStruct * field = & LibItemStruct->m_Field[ii]; + if( field->m_Text.IsEmpty() ) continue; + hjustify = 'C'; + if ( field->m_HJustify == GR_TEXT_HJUSTIFY_LEFT) + hjustify = 'L'; + else if ( field->m_HJustify == GR_TEXT_HJUSTIFY_RIGHT) + hjustify = 'R'; + vjustify = 'C'; + if ( field->m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM) + vjustify = 'B'; + else if ( field->m_VJustify == GR_TEXT_VJUSTIFY_TOP) + vjustify = 'T'; + if( fprintf(f,"F %d \"%s\" %c %-3d %-3d %-3d %4.4X %c %c", ii, + CONV_TO_UTF8(field->m_Text), + field->m_Orient == TEXT_ORIENT_HORIZ ? 'H' : 'V', + field->m_Pos.x, field->m_Pos.y, + field->m_Size.x, + field->m_Attributs, + hjustify, vjustify) == EOF) + { + Failed = TRUE; break; + } + // Save field name, if necessary + if ( ii >= FIELD1 && ! field->m_Name.IsEmpty() ) + { + wxString fieldname = ReturnDefaultFieldName(ii); + if ( fieldname != field->m_Name ) + if( fprintf(f," \"%s\"", CONV_TO_UTF8(field->m_Name) ) == EOF) + { + Failed = TRUE; break; + } + } + if( fprintf(f,"\n") == EOF) + { + Failed = TRUE; break; + } + } - if (Failed) return(Failed); + if (Failed) return(Failed); - /* Generation du num unit, position, box ( ancienne norme )*/ - if(fprintf(f, "\t%-4d %-4d %-4d\n", - LibItemStruct->m_Multi, - LibItemStruct->m_Pos.x, LibItemStruct->m_Pos.y) == EOF) - { - Failed = TRUE; return(Failed); - } + /* Generation du num unit, position, box ( ancienne norme )*/ + if(fprintf(f, "\t%-4d %-4d %-4d\n", + LibItemStruct->m_Multi, + LibItemStruct->m_Pos.x, LibItemStruct->m_Pos.y) == EOF) + { + Failed = TRUE; return(Failed); + } - if( fprintf(f, "\t%-4d %-4d %-4d %-4d\n", - LibItemStruct->m_Transform[0][0], - LibItemStruct->m_Transform[0][1], - LibItemStruct->m_Transform[1][0], - LibItemStruct->m_Transform[1][1]) == EOF) - { - Failed = TRUE; return(Failed); - } + if( fprintf(f, "\t%-4d %-4d %-4d %-4d\n", + LibItemStruct->m_Transform[0][0], + LibItemStruct->m_Transform[0][1], + LibItemStruct->m_Transform[1][0], + LibItemStruct->m_Transform[1][1]) == EOF) + { + Failed = TRUE; return(Failed); + } - fprintf(f, "$EndComp\n"); - return(Failed); + fprintf(f, "$EndComp\n"); + return(Failed); } /*******************************************************************/ static int SaveSheetDescr( FILE *f, DrawSheetStruct * SheetStruct) /*******************************************************************/ /* Routine utilisee dans la routine precedente. - Assure la sauvegarde de la structure LibItemStruct + Assure la sauvegarde de la structure LibItemStruct */ { int ii; int Failed = FALSE; DrawSheetLabelStruct * SheetLabel; - fprintf(f, "$Sheet\n"); + fprintf(f, "$Sheet\n"); - if (fprintf(f, "S %-4d %-4d %-4d %-4d\n", - SheetStruct->m_Pos.x,SheetStruct->m_Pos.y, - SheetStruct->m_Size.x,SheetStruct->m_Size.y) == EOF){ - Failed = TRUE; return(Failed); - } + if (fprintf(f, "S %-4d %-4d %-4d %-4d\n", + SheetStruct->m_Pos.x,SheetStruct->m_Pos.y, + SheetStruct->m_Size.x,SheetStruct->m_Size.y) == EOF){ + Failed = TRUE; return(Failed); + } - //save the unique timestamp, like other shematic parts. - if( fprintf(f, "U %8.8lX\n", SheetStruct->m_TimeStamp) == EOF ){ - Failed = TRUE; return(Failed); - } - - /* Generation de la liste des 2 textes (sheetname et filename) */ - if ( ! SheetStruct->m_SheetName.IsEmpty()) - { - if(fprintf(f,"F0 \"%s\" %d\n", CONV_TO_UTF8(SheetStruct->m_SheetName), - SheetStruct->m_SheetNameSize) == EOF) - { - Failed = TRUE; return(Failed); - } - } + //save the unique timestamp, like other shematic parts. + if( fprintf(f, "U %8.8lX\n", SheetStruct->m_TimeStamp) == EOF ){ + Failed = TRUE; return(Failed); + } - if( ! SheetStruct->GetFileName().IsEmpty()) - { - if(fprintf(f,"F1 \"%s\" %d\n", - CONV_TO_UTF8(SheetStruct->GetFileName()), - SheetStruct->m_FileNameSize) == EOF) - { - Failed = TRUE; return(Failed); - } - } + /* Generation de la liste des 2 textes (sheetname et filename) */ + if ( ! SheetStruct->m_SheetName.IsEmpty()) + { + if(fprintf(f,"F0 \"%s\" %d\n", CONV_TO_UTF8(SheetStruct->m_SheetName), + SheetStruct->m_SheetNameSize) == EOF) + { + Failed = TRUE; return(Failed); + } + } - /* Generation de la liste des labels (entrees) de la sous feuille */ - ii = 2; - SheetLabel = SheetStruct->m_Label; - while( SheetLabel != NULL ) - { - int type = 'U', side = 'L'; + if( ! SheetStruct->GetFileName().IsEmpty()) + { + if(fprintf(f,"F1 \"%s\" %d\n", + CONV_TO_UTF8(SheetStruct->GetFileName()), + SheetStruct->m_FileNameSize) == EOF) + { + Failed = TRUE; return(Failed); + } + } - if( SheetLabel->m_Text.IsEmpty() ) continue; - if( SheetLabel->m_Edge ) side = 'R'; + /* Generation de la liste des labels (entrees) de la sous feuille */ + ii = 2; + SheetLabel = SheetStruct->m_Label; + while( SheetLabel != NULL ) + { + int type = 'U', side = 'L'; - switch(SheetLabel->m_Shape) - { - case NET_INPUT: type = 'I'; break; - case NET_OUTPUT: type = 'O'; break; - case NET_BIDI: type = 'B'; break; - case NET_TRISTATE: type = 'T'; break; - case NET_UNSPECIFIED: type = 'U'; break; - } + if( SheetLabel->m_Text.IsEmpty() ) continue; + if( SheetLabel->m_Edge ) side = 'R'; - if(fprintf(f,"F%d \"%s\" %c %c %-3d %-3d %-3d\n", ii, - CONV_TO_UTF8(SheetLabel->m_Text), type, side, - SheetLabel->m_Pos.x, SheetLabel->m_Pos.y, - SheetLabel->m_Size.x) == EOF) - { - Failed = TRUE; break; - } - ii++; - SheetLabel = (DrawSheetLabelStruct*)SheetLabel->Pnext; - } + switch(SheetLabel->m_Shape) + { + case NET_INPUT: type = 'I'; break; + case NET_OUTPUT: type = 'O'; break; + case NET_BIDI: type = 'B'; break; + case NET_TRISTATE: type = 'T'; break; + case NET_UNSPECIFIED: type = 'U'; break; + } - fprintf(f, "$EndSheet\n"); - return(Failed); + if(fprintf(f,"F%d \"%s\" %c %c %-3d %-3d %-3d\n", ii, + CONV_TO_UTF8(SheetLabel->m_Text), type, side, + SheetLabel->m_Pos.x, SheetLabel->m_Pos.y, + SheetLabel->m_Size.x) == EOF) + { + Failed = TRUE; break; + } + ii++; + SheetLabel = (DrawSheetLabelStruct*)SheetLabel->Pnext; + } + + fprintf(f, "$EndSheet\n"); + return(Failed); } /****************************/ @@ -546,8 +546,8 @@ static void SaveLayers(FILE *f) theses infos are not used in eeschema */ { - fprintf(f,"EELAYER %2d %2d\n", g_LayerDescr.NumberOfLayers,g_LayerDescr.CurrentLayer); - fprintf(f,"EELAYER END\n"); + fprintf(f,"EELAYER %2d %2d\n", g_LayerDescr.NumberOfLayers,g_LayerDescr.CurrentLayer); + fprintf(f,"EELAYER END\n"); } diff --git a/eeschema/schedit.cpp b/eeschema/schedit.cpp index 1ca3deffc5..18527ab89f 100644 --- a/eeschema/schedit.cpp +++ b/eeschema/schedit.cpp @@ -273,36 +273,36 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_SCH_EDIT_TEXT: - EditSchematicText( (DrawTextStruct*) GetScreen()->GetCurItem(), &dc ); + EditSchematicText( (SCH_TEXT*) GetScreen()->GetCurItem(), &dc ); break; case ID_POPUP_SCH_ROTATE_TEXT: DrawPanel->MouseToCursorSchema(); - ChangeTextOrient( (DrawTextStruct*) GetScreen()->GetCurItem(), &dc ); + ChangeTextOrient( (SCH_TEXT*) GetScreen()->GetCurItem(), &dc ); break; case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_LABEL: DrawPanel->MouseToCursorSchema(); - ConvertTextType( (DrawTextStruct*) GetScreen()->GetCurItem(), - &dc, DRAW_LABEL_STRUCT_TYPE ); + ConvertTextType( (SCH_TEXT*) GetScreen()->GetCurItem(), + &dc, TYPE_SCH_LABEL ); break; case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_GLABEL: DrawPanel->MouseToCursorSchema(); - ConvertTextType( (DrawTextStruct*) GetScreen()->GetCurItem(), - &dc, DRAW_GLOBAL_LABEL_STRUCT_TYPE ); + ConvertTextType( (SCH_TEXT*) GetScreen()->GetCurItem(), + &dc, TYPE_SCH_GLOBALLABEL ); break; case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_HLABEL: DrawPanel->MouseToCursorSchema(); - ConvertTextType( (DrawTextStruct*) GetScreen()->GetCurItem(), - &dc, DRAW_HIER_LABEL_STRUCT_TYPE ); + ConvertTextType( (SCH_TEXT*) GetScreen()->GetCurItem(), + &dc, TYPE_SCH_HIERLABEL ); break; case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_COMMENT: DrawPanel->MouseToCursorSchema(); - ConvertTextType( (DrawTextStruct*) GetScreen()->GetCurItem(), - &dc, DRAW_TEXT_STRUCT_TYPE ); + ConvertTextType( (SCH_TEXT*) GetScreen()->GetCurItem(), + &dc, TYPE_SCH_TEXT ); break; case ID_POPUP_SCH_SET_SHAPE_TEXT: @@ -347,7 +347,7 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) // Ensure the struct is a component (could be a struct of a // component, like Field, text..) - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); @@ -403,7 +403,7 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) // Ensure the struct is a component (could be a struct of a // component, like Field, text..) - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); if( GetScreen()->GetCurItem() == NULL ) @@ -431,13 +431,13 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) // Ensure the struct is a component (could be a struct of a // component, like Field, text..) - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); if( GetScreen()->GetCurItem() == NULL ) break; InstallCmpeditFrame( this, pos, - (EDA_SchComponentStruct*) GetScreen()->GetCurItem() ); + (SCH_COMPONENT*) GetScreen()->GetCurItem() ); break; case ID_POPUP_SCH_MIROR_X_CMP: @@ -448,7 +448,7 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) // Ensure the struct is a component (could be a struct of a // component, like Field, text..) - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); if( GetScreen()->GetCurItem() == NULL ) @@ -480,7 +480,7 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) SaveCopyInUndoList( GetScreen()->GetCurItem(), IS_CHANGED ); CmpRotationMiroir( - (EDA_SchComponentStruct*) GetScreen()->GetCurItem(), + (SCH_COMPONENT*) GetScreen()->GetCurItem(), &dc, option ); break; } @@ -493,41 +493,41 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) // Ensure the struct is a component (could be a struct of a // component, like Field, text..) - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); if( GetScreen()->GetCurItem() == NULL ) break; EditComponentValue( - (EDA_SchComponentStruct*) GetScreen()->GetCurItem(), &dc ); + (SCH_COMPONENT*) GetScreen()->GetCurItem(), &dc ); break; case ID_POPUP_SCH_EDIT_REF_CMP: // Ensure the struct is a component (could be a struct of a // component, like Field, text..) - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); if( GetScreen()->GetCurItem() == NULL ) break; EditComponentReference( - (EDA_SchComponentStruct*) GetScreen()->GetCurItem(), &dc ); + (SCH_COMPONENT*) GetScreen()->GetCurItem(), &dc ); break; case ID_POPUP_SCH_EDIT_FOOTPRINT_CMP: // Ensure the struct is a component (could be a struct of a // component, like Field, text..) - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); if( GetScreen()->GetCurItem() == NULL ) break; EditComponentFootprint( - (EDA_SchComponentStruct*) GetScreen()->GetCurItem(), &dc ); + (SCH_COMPONENT*) GetScreen()->GetCurItem(), &dc ); break; @@ -535,25 +535,25 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) // Ensure the struct is a component (could be a struct of a // component, like Field, text..) - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); if( GetScreen()->GetCurItem() == NULL ) break; DrawPanel->MouseToCursorSchema(); ConvertPart( - (EDA_SchComponentStruct*) GetScreen()->GetCurItem(), + (SCH_COMPONENT*) GetScreen()->GetCurItem(), &dc ); break; case ID_POPUP_SCH_COPY_COMPONENT_CMP: DrawPanel->MouseToCursorSchema(); { - EDA_SchComponentStruct* olditem, * newitem; - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + SCH_COMPONENT* olditem, * newitem; + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); - olditem = (EDA_SchComponentStruct*) GetScreen()->GetCurItem(); + olditem = (SCH_COMPONENT*) GetScreen()->GetCurItem(); if( olditem == NULL ) break; newitem = olditem->GenCopy(); @@ -597,14 +597,14 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) // Ensure the struct is a component (could be a struct of a // component, like Field, text..) - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); if( GetScreen()->GetCurItem() == NULL ) break; DrawPanel->MouseToCursorSchema(); SelPartUnit( - (EDA_SchComponentStruct*) GetScreen()->GetCurItem(), + (SCH_COMPONENT*) GetScreen()->GetCurItem(), id + 1 - ID_POPUP_SCH_SELECT_UNIT1, &dc ); break; @@ -613,7 +613,7 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) // Ensure the struct is a component (could be a piece of a // component, like Field, text..) - if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) + if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT ) GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*) GetScreen() ) ); if( GetScreen()->GetCurItem() == NULL ) @@ -621,7 +621,7 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event ) { EDA_LibComponentStruct* LibEntry; LibEntry = FindLibPart( - ( (EDA_SchComponentStruct*) GetScreen()->GetCurItem() )->m_ChipName, + ( (SCH_COMPONENT*) GetScreen()->GetCurItem() )->m_ChipName, wxEmptyString, FIND_ALIAS ); if( LibEntry && LibEntry->m_DocFile != wxEmptyString ) @@ -755,15 +755,15 @@ void WinEDA_SchematicFrame::Process_Move_Item( EDA_BaseStruct* DrawStruct, StartMoveBusEntry( (DrawBusEntryStruct*) DrawStruct, DC ); break; - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: - StartMoveTexte( (DrawTextStruct*) DrawStruct, DC ); + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_TEXT: + StartMoveTexte( (SCH_TEXT*) DrawStruct, DC ); break; - case DRAW_LIB_ITEM_STRUCT_TYPE: - StartMovePart( (EDA_SchComponentStruct*) DrawStruct, DC ); + case TYPE_SCH_COMPONENT: + StartMovePart( (SCH_COMPONENT*) DrawStruct, DC ); break; case DRAW_SEGMENT_STRUCT_TYPE: diff --git a/eeschema/schematic_undo_redo.cpp b/eeschema/schematic_undo_redo.cpp index c54e03c4d2..d342ac99e3 100644 --- a/eeschema/schematic_undo_redo.cpp +++ b/eeschema/schematic_undo_redo.cpp @@ -90,22 +90,22 @@ void SwapData( EDA_BaseStruct* Item ) EXCHG( SOURCE->m_Pos, DEST->m_Pos ); break; - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - case DRAW_HIER_LABEL_STRUCT_TYPE: - case DRAW_TEXT_STRUCT_TYPE: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + case TYPE_SCH_TEXT: #undef SOURCE #undef DEST - #define SOURCE ( (DrawTextStruct*) Item ) - #define DEST ( (DrawTextStruct*) image ) + #define SOURCE ( (SCH_TEXT*) Item ) + #define DEST ( (SCH_TEXT*) image ) DEST->SwapData( SOURCE ); break; - case DRAW_LIB_ITEM_STRUCT_TYPE: + case TYPE_SCH_COMPONENT: #undef SOURCE #undef DEST - #define SOURCE ( (EDA_SchComponentStruct*) Item ) - #define DEST ( (EDA_SchComponentStruct*) image ) + #define SOURCE ( (SCH_COMPONENT*) Item ) + #define DEST ( (SCH_COMPONENT*) image ) DEST->SwapData( SOURCE ); break; diff --git a/eeschema/schframe.h b/eeschema/schframe.h index 92661e523a..96e0d98d10 100644 --- a/eeschema/schframe.h +++ b/eeschema/schframe.h @@ -71,7 +71,7 @@ public: /* Cross probing with pcbnew */ void SendMessageToPCBNEW( EDA_BaseStruct* objectToSync, - EDA_SchComponentStruct* LibItem ); + SCH_COMPONENT* LibItem ); /* netlist generation */ void* BuildNetListBase(); @@ -144,10 +144,10 @@ private: // Text ,label, glabel EDA_BaseStruct* CreateNewText( wxDC* DC, int type ); - void EditSchematicText( DrawTextStruct* TextStruct, wxDC* DC ); - void ChangeTextOrient( DrawTextStruct* TextStruct, wxDC* DC ); - void StartMoveTexte( DrawTextStruct* TextStruct, wxDC* DC ); - void ConvertTextType( DrawTextStruct* Text, wxDC* DC, int newtype ); + void EditSchematicText( SCH_TEXT* TextStruct, wxDC* DC ); + void ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC ); + void StartMoveTexte( SCH_TEXT* TextStruct, wxDC* DC ); + void ConvertTextType( SCH_TEXT* Text, wxDC* DC, int newtype ); // Wire, Bus void BeginSegment( wxDC* DC, int type ); @@ -168,10 +168,10 @@ private: public: 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 - */ + /** 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: @@ -188,25 +188,25 @@ public: private: // Component - EDA_SchComponentStruct* Load_Component( wxDC* DC, + SCH_COMPONENT* Load_Component( wxDC* DC, const wxString& libname, wxArrayString& List, bool UseLibBrowser ); - void StartMovePart( EDA_SchComponentStruct* DrawLibItem, wxDC* DC ); + void StartMovePart( SCH_COMPONENT* DrawLibItem, wxDC* DC ); public: - void CmpRotationMiroir( EDA_SchComponentStruct* DrawComponent, + void CmpRotationMiroir( SCH_COMPONENT* DrawComponent, wxDC* DC, int type_rotate ); private: - void SelPartUnit( EDA_SchComponentStruct* DrawComponent, + void SelPartUnit( SCH_COMPONENT* DrawComponent, int unit, wxDC* DC ); - void ConvertPart( EDA_SchComponentStruct* DrawComponent, wxDC* DC ); - void SetInitCmp( EDA_SchComponentStruct* DrawComponent, wxDC* DC ); - void EditComponentReference( EDA_SchComponentStruct* DrawLibItem, + void ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC ); + void SetInitCmp( SCH_COMPONENT* DrawComponent, wxDC* DC ); + void EditComponentReference( SCH_COMPONENT* DrawLibItem, wxDC* DC ); - void EditComponentValue( EDA_SchComponentStruct* DrawLibItem, wxDC* DC ); - void EditComponentFootprint( EDA_SchComponentStruct* DrawLibItem, + void EditComponentValue( SCH_COMPONENT* DrawLibItem, wxDC* DC ); + void EditComponentFootprint( SCH_COMPONENT* DrawLibItem, wxDC* DC ); void StartMoveCmpField( PartTextStruct* Field, wxDC* DC ); void EditCmpFieldText( PartTextStruct* Field, wxDC* DC ); diff --git a/eeschema/sheetlab.cpp b/eeschema/sheetlab.cpp index cfa91918c5..9c65f074c9 100644 --- a/eeschema/sheetlab.cpp +++ b/eeschema/sheetlab.cpp @@ -153,7 +153,7 @@ static void ExitPinSheet( WinEDA_DrawPanel* Panel, wxDC* DC ) if( SheetLabel->m_Flags & IS_NEW ) { /* Nouveau Placement en cours, on l'efface */ RedrawOneStruct( Panel, DC, SheetLabel, g_XorMode ); - SAFE_DELETE( SheetLabel ); + SAFE_DELETE( SheetLabel ); } else { @@ -359,16 +359,16 @@ DrawSheetLabelStruct* WinEDA_SchematicFrame::Import_PinSheet( DrawSheetStruct* S { EDA_BaseStruct* DrawStruct; DrawSheetLabelStruct* NewSheetLabel, * SheetLabel = NULL; - DrawHierLabelStruct* HLabel = NULL; + SCH_HIERLABEL* HLabel = NULL; - if(!Sheet->m_AssociatedScreen) return NULL; + if(!Sheet->m_AssociatedScreen) return NULL; DrawStruct = Sheet->m_AssociatedScreen->EEDrawList; HLabel = NULL; for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext ) { - if( DrawStruct->Type() != DRAW_HIER_LABEL_STRUCT_TYPE ) + if( DrawStruct->Type() != TYPE_SCH_HIERLABEL ) continue; - HLabel = (DrawHierLabelStruct*) DrawStruct; + HLabel = (SCH_HIERLABEL*) DrawStruct; /* Ici un G-Label a ete trouve: y a t-il un SheetLabel correspondant */ SheetLabel = Sheet->m_Label; diff --git a/include/base_struct.h b/include/base_struct.h index 1705644412..fc643d303f 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -47,11 +47,11 @@ enum KICAD_T { // Draw Items in schematic DRAW_POLYLINE_STRUCT_TYPE, DRAW_JUNCTION_STRUCT_TYPE, - DRAW_TEXT_STRUCT_TYPE, - DRAW_LABEL_STRUCT_TYPE, - DRAW_GLOBAL_LABEL_STRUCT_TYPE, - DRAW_HIER_LABEL_STRUCT_TYPE, - DRAW_LIB_ITEM_STRUCT_TYPE, + TYPE_SCH_TEXT, + TYPE_SCH_LABEL, + TYPE_SCH_GLOBALLABEL, + TYPE_SCH_HIERLABEL, + TYPE_SCH_COMPONENT, DRAW_PICK_ITEM_STRUCT_TYPE, DRAW_SEGMENT_STRUCT_TYPE, DRAW_BUSENTRY_STRUCT_TYPE, @@ -194,13 +194,13 @@ public: operator wxRect() const { return wxRect( m_Pos, m_Size ); } EDA_Rect& Inflate( wxCoord dx, wxCoord dy ); - - /** Function Merge - * Modify Position and Size of this in order to contain the given rect - * mainly used to calculate bounding boxes - * @param aRect = given rect to merge with this - */ - void Merge( const EDA_Rect & aRect ); + + /** Function Merge + * Modify Position and Size of this in order to contain the given rect + * mainly used to calculate bounding boxes + * @param aRect = given rect to merge with this + */ + void Merge( const EDA_Rect & aRect ); }; @@ -357,6 +357,10 @@ public: */ virtual EDA_Rect GetBoundingBox() { +#if defined (DEBUG) + printf("Missing GetBoundingBox() -> no good! :-)\n"); + Show( 0, std::cout ); // tell me which classes still need GetBoundingBox support +#endif // return a zero-sized box per default. derived classes should override this EDA_Rect ret( wxPoint( 0, 0 ), wxSize( 0, 0 ) ); return ret; @@ -668,18 +672,44 @@ public: }; -/**************************/ -/* class DrawPickedStruct */ -/**************************/ - -/* Class to hold structures picked by pick events (like block selection) - * This class has only one useful member: .m_PickedStruct, used as a link. - * It does not describe really an item. - * It is used to create a linked list of selected items (in block selection). - * Each DrawPickedStruct item has is member: .m_PickedStruct pointing the - * real selected item +/** + * Class SCH_ITEM + * is a base class for any item which can be embedded within the SCHEMATIC + * container class, and therefore instances of derived classes should only be + * found in EESCHEMA or other programs that use class SCHEMATIC and its contents. + * The corresponding class in PCBNEW is BOARD_ITEM. */ -class DrawPickedStruct : public EDA_BaseStruct +class SCH_ITEM : public EDA_BaseStruct +{ +protected: + int m_Layer; + + +public: + SCH_ITEM( EDA_BaseStruct* aParent, KICAD_T aType ) : + EDA_BaseStruct( aParent, aType ), + m_Layer( 0 ) + { + } + + ~SCH_ITEM(){} + + virtual wxString GetClass() const + { + return wxT( "SCH_ITEM" ); + } +}; + + +/** + * Class DrawPickedStruct + * holds structures picked by pick events (like block selection). + * This class has only one useful member: .m_PickedStruct, used as a link. + * It is used to create a linked list of selected items (in block selection). + * Each DrawPickedStruct item has is member: .m_PickedStruct pointing the + * real selected item. + */ +class DrawPickedStruct : public SCH_ITEM { public: EDA_BaseStruct* m_PickedStruct; @@ -691,6 +721,22 @@ public: void DeleteWrapperList(); DrawPickedStruct* Next() { return (DrawPickedStruct*) Pnext; } + + EDA_Rect GetBoundingBox(); + + /** + * Function GetBoundingBoxUnion + * returns the union of all the BoundingBox rectangles of all held items + * in the picklist whose list head is this DrawPickedStruct. + * @return EDA_Rect - The combined, composite, bounding box. + */ + EDA_Rect GetBoundingBoxUnion(); + + wxString GetClass() const { return wxT( "DrawPickedStruct" ); } + +#if defined(DEBUG) + void Show( int nestLevel, std::ostream& os ); +#endif }; #endif /* BASE_STRUCT_H */ diff --git a/include/wxstruct.h b/include/wxstruct.h index 1aa72a5ffb..e9f11eda21 100644 --- a/include/wxstruct.h +++ b/include/wxstruct.h @@ -71,13 +71,13 @@ class EDA_LibComponentStruct; class LibEDA_BaseStruct; class EDA_BaseStruct; class DrawBusEntryStruct; -class DrawGlobalLabelStruct; -class DrawTextStruct; +class SCH_GLOBALLABEL; +class SCH_TEXT; class EDA_DrawLineStruct; class DrawSheetStruct; class DrawSheetPath; class DrawSheetLabelStruct; -class EDA_SchComponentStruct; +class SCH_COMPONENT; class LibDrawField; class PartTextStruct; class LibDrawPin; @@ -158,7 +158,7 @@ public: WinEDA_BasicFrame( wxWindow* father, int idtype, WinEDA_App* parent, const wxString& title, const wxPoint& pos, const wxSize& size, - long style = KICAD_DEFAULT_DRAWFRAME_STYLE); + long style = KICAD_DEFAULT_DRAWFRAME_STYLE); #ifdef KICAD_PYTHON WinEDA_BasicFrame( const WinEDA_BasicFrame& ) { } // Should throw!! WinEDA_BasicFrame() { } // Should throw!! @@ -230,12 +230,12 @@ public: WinEDA_DrawFrame( wxWindow* father, int idtype, WinEDA_App* parent, const wxString& title, const wxPoint& pos, const wxSize& size, - long style = KICAD_DEFAULT_DRAWFRAME_STYLE ); + long style = KICAD_DEFAULT_DRAWFRAME_STYLE ); ~WinEDA_DrawFrame(); virtual BASE_SCREEN* GetScreen() { return m_CurrentScreen; } - virtual wxString GetScreenDesc(); + virtual wxString GetScreenDesc(); void OnMenuOpen( wxMenuEvent& event ); void OnMouseEvent( wxMouseEvent& event ); @@ -279,7 +279,7 @@ public: virtual int BestZoom() = 0; /* Return the current zoom level */ - int GetZoom(void); + int GetZoom(void); void ToPrinter( wxCommandEvent& event ); void SVG_Print( wxCommandEvent& event ); @@ -353,7 +353,7 @@ public: WinEDA_LibeditFrame( wxWindow* father, WinEDA_App* parent, const wxString& title, const wxPoint& pos, const wxSize& size, - long style = KICAD_DEFAULT_DRAWFRAME_STYLE ); + long style = KICAD_DEFAULT_DRAWFRAME_STYLE ); ~WinEDA_LibeditFrame(); @@ -422,7 +422,7 @@ private: void RotateSymbolText( wxDC* DC ); void DeleteDrawPoly( wxDC* DC ); LibDrawField* LocateField( EDA_LibComponentStruct* LibEntry ); - LibEDA_BaseStruct* LocateItemUsingCursor(); + LibEDA_BaseStruct* LocateItemUsingCursor(); void RotateField( wxDC* DC, LibDrawField* Field ); void PlaceField( wxDC* DC, LibDrawField* Field ); void EditField( wxDC* DC, LibDrawField* Field ); @@ -540,10 +540,10 @@ struct MsgItem class WinEDA_MsgPanel : public wxPanel { protected: - std::vector m_Items; + std::vector m_Items; void showItem( wxDC& dc, const MsgItem& aItem ); - + public: WinEDA_DrawFrame* m_Parent; int m_BgColor; // couleur de fond diff --git a/pcbnew/specctra.h b/pcbnew/specctra.h index 1ec720370e..0773960a27 100644 --- a/pcbnew/specctra.h +++ b/pcbnew/specctra.h @@ -934,7 +934,7 @@ typedef boost::ptr_vector WINDOWS; /** * Class KEEPOUT - * is used for and . + * is used for <keepout_descriptor> and <plane_descriptor>. */ class KEEPOUT : public ELEM {