class name changes, XOR artifacts
This commit is contained in:
parent
bd77c9f2e6
commit
c406eed135
|
@ -5,6 +5,27 @@ Started 2007-June-11
|
||||||
Please add newer entries at the top, list the date and your name with
|
Please add newer entries at the top, list the date and your name with
|
||||||
email address.
|
email address.
|
||||||
|
|
||||||
|
2008-Mar-19 UPDATE Dick Hollenbeck <dick@softplc.com>
|
||||||
|
================================================================================
|
||||||
|
+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 <plyatov@mail.ru>
|
2008-Mar-19 UPDATE Igor Plyatov <plyatov@mail.ru>
|
||||||
================================================================================
|
================================================================================
|
||||||
* Support for Gnome/KDE menu added.
|
* Support for Gnome/KDE menu added.
|
||||||
|
|
|
@ -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
|
* mainly used to calculate bounding boxes
|
||||||
* @param aRect = given rect to merge with this
|
* @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 ) :
|
DrawPickedStruct::DrawPickedStruct( EDA_BaseStruct* pickedstruct ) :
|
||||||
EDA_BaseStruct( DRAW_PICK_ITEM_STRUCT_TYPE )
|
SCH_ITEM( NULL, DRAW_PICK_ITEM_STRUCT_TYPE )
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
{
|
{
|
||||||
m_PickedStruct = pickedstruct;
|
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()
|
void DrawPickedStruct::DeleteWrapperList()
|
||||||
|
|
|
@ -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 );;
|
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();
|
frame->MsgPanel->EraseMsgBox();
|
||||||
|
|
||||||
Affiche_1_Parametre( frame, 1, _( "Ref" ),
|
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 )
|
if( Entry && Entry->m_Options == ENTRY_POWER )
|
||||||
msg = _( "Pwr Symb" );
|
msg = _( "Pwr Symb" );
|
||||||
|
|
|
@ -90,10 +90,10 @@ void ReAnnotatePowerSymbolsOnly( void )
|
||||||
EDA_BaseStruct* DrawList = sheet->LastDrawList();
|
EDA_BaseStruct* DrawList = sheet->LastDrawList();
|
||||||
for( ; DrawList != NULL; DrawList = DrawList->Pnext )
|
for( ; DrawList != NULL; DrawList = DrawList->Pnext )
|
||||||
{
|
{
|
||||||
if( DrawList->Type() != DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( DrawList->Type() != TYPE_SCH_COMPONENT )
|
||||||
continue;
|
continue;
|
||||||
EDA_SchComponentStruct* DrawLibItem =
|
SCH_COMPONENT* DrawLibItem =
|
||||||
(EDA_SchComponentStruct*) DrawList;
|
(SCH_COMPONENT*) DrawList;
|
||||||
EDA_LibComponentStruct* Entry =
|
EDA_LibComponentStruct* Entry =
|
||||||
FindLibPart(
|
FindLibPart(
|
||||||
DrawLibItem->m_ChipName.GetData(), wxEmptyString,
|
DrawLibItem->m_ChipName.GetData(), wxEmptyString,
|
||||||
|
@ -303,14 +303,14 @@ int ListeComposants( CmpListStruct* BaseListeCmp, DrawSheetPath* sheet )
|
||||||
{
|
{
|
||||||
int NbrCmp = 0;
|
int NbrCmp = 0;
|
||||||
EDA_BaseStruct* DrawList = sheet->LastDrawList();
|
EDA_BaseStruct* DrawList = sheet->LastDrawList();
|
||||||
EDA_SchComponentStruct* DrawLibItem;
|
SCH_COMPONENT* DrawLibItem;
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
|
|
||||||
for( ; DrawList; DrawList = DrawList->Pnext )
|
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(),
|
Entry = FindLibPart( DrawLibItem->m_ChipName.GetData(),
|
||||||
wxEmptyString,
|
wxEmptyString,
|
||||||
FIND_ROOT );
|
FIND_ROOT );
|
||||||
|
@ -361,7 +361,7 @@ static void ReAnnotateComponents( CmpListStruct* BaseListeCmp, int NbOfCmp )
|
||||||
{
|
{
|
||||||
int ii;
|
int ii;
|
||||||
char* Text;
|
char* Text;
|
||||||
EDA_SchComponentStruct* DrawLibItem;
|
SCH_COMPONENT* DrawLibItem;
|
||||||
|
|
||||||
/* Reattribution des numeros */
|
/* Reattribution des numeros */
|
||||||
for( ii = 0; ii < NbOfCmp; ii++ )
|
for( ii = 0; ii < NbOfCmp; ii++ )
|
||||||
|
|
|
@ -24,7 +24,7 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_
|
||||||
EDA_BaseStruct* DrawStruct );
|
EDA_BaseStruct* DrawStruct );
|
||||||
static void CollectStructsToDrag( SCH_SCREEN* screen );
|
static void CollectStructsToDrag( SCH_SCREEN* screen );
|
||||||
static void AddPickedItem( SCH_SCREEN* screen, wxPoint position );
|
static void AddPickedItem( SCH_SCREEN* screen, wxPoint position );
|
||||||
static LibEDA_BaseStruct* GetNextPinPosition( EDA_SchComponentStruct* DrawLibItem,
|
static LibEDA_BaseStruct* GetNextPinPosition( SCH_COMPONENT* DrawLibItem,
|
||||||
wxPoint& position );
|
wxPoint& position );
|
||||||
static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, bool erase );
|
static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, bool erase );
|
||||||
static EDA_BaseStruct* SaveStructListForPaste( EDA_BaseStruct* DrawStruct );
|
static EDA_BaseStruct* SaveStructListForPaste( EDA_BaseStruct* DrawStruct );
|
||||||
|
@ -555,27 +555,28 @@ static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
bool MoveStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct )
|
bool MoveStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct )
|
||||||
{
|
{
|
||||||
DrawPickedStruct* PickedList = NULL;
|
|
||||||
|
|
||||||
if( !DrawStruct )
|
if( !DrawStruct )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if( DrawStruct->Type() == DRAW_PICK_ITEM_STRUCT_TYPE )
|
if( DrawStruct->Type() == DRAW_PICK_ITEM_STRUCT_TYPE )
|
||||||
{
|
{
|
||||||
if( DC )
|
DrawPickedStruct* pickedList = (DrawPickedStruct*) DrawStruct;
|
||||||
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 );
|
|
||||||
|
|
||||||
/* Free the wrapper DrawPickedStruct chain: */
|
if( DC )
|
||||||
PickedList = (DrawPickedStruct*) DrawStruct;
|
panel->PostDirtyRect( pickedList->GetBoundingBoxUnion() );
|
||||||
PickedList->DeleteWrapperList();
|
|
||||||
|
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
|
else
|
||||||
{
|
{
|
||||||
if( DC )
|
if( DC )
|
||||||
RedrawOneStruct( panel, DC, DrawStruct, g_XorMode );
|
panel->PostDirtyRect( DrawStruct->GetBoundingBox());
|
||||||
PlaceStruct( panel->GetScreen(), DrawStruct ); /* Place it in its new position. */
|
PlaceStruct( panel->GetScreen(), DrawStruct ); /* Place it in its new position. */
|
||||||
if( DC )
|
if( DC )
|
||||||
RedrawOneStruct( panel, DC, DrawStruct, GR_DEFAULT_DRAWMODE );
|
RedrawOneStruct( panel, DC, DrawStruct, GR_DEFAULT_DRAWMODE );
|
||||||
|
@ -604,12 +605,12 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center )
|
||||||
DrawJunctionStruct* DrawConnect;
|
DrawJunctionStruct* DrawConnect;
|
||||||
EDA_DrawLineStruct* DrawSegment;
|
EDA_DrawLineStruct* DrawSegment;
|
||||||
DrawBusEntryStruct* DrawRaccord;
|
DrawBusEntryStruct* DrawRaccord;
|
||||||
EDA_SchComponentStruct* DrawLibItem;
|
SCH_COMPONENT* DrawLibItem;
|
||||||
DrawSheetStruct* DrawSheet;
|
DrawSheetStruct* DrawSheet;
|
||||||
DrawSheetLabelStruct* DrawSheetLabel;
|
DrawSheetLabelStruct* DrawSheetLabel;
|
||||||
DrawMarkerStruct* DrawMarker;
|
DrawMarkerStruct* DrawMarker;
|
||||||
DrawNoConnectStruct* DrawNoConnect;
|
DrawNoConnectStruct* DrawNoConnect;
|
||||||
DrawTextStruct* DrawText;
|
SCH_TEXT* DrawText;
|
||||||
wxPoint px;
|
wxPoint px;
|
||||||
|
|
||||||
if( !DrawStruct )
|
if( !DrawStruct )
|
||||||
|
@ -665,13 +666,13 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center )
|
||||||
MirrorYPoint( DrawNoConnect->m_Pos, Center );
|
MirrorYPoint( DrawNoConnect->m_Pos, Center );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
|
|
||||||
// Text is not really mirrored; it is moved to a suitable position
|
// Text is not really mirrored; it is moved to a suitable position
|
||||||
// which is the closest position for a true mirrored text
|
// which is the closest position for a true mirrored text
|
||||||
// The center position is mirrored and the text is moved for half horizontal len
|
// The center position is mirrored and the text is moved for half horizontal len
|
||||||
DrawText = (DrawTextStruct*) DrawStruct;
|
DrawText = (SCH_TEXT*) DrawStruct;
|
||||||
px = DrawText->m_Pos;
|
px = DrawText->m_Pos;
|
||||||
if( DrawText->m_Orient == 0 ) /* horizontal text */
|
if( DrawText->m_Orient == 0 ) /* horizontal text */
|
||||||
dx = DrawText->Len_Size() / 2;
|
dx = DrawText->Len_Size() / 2;
|
||||||
|
@ -687,11 +688,11 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center )
|
||||||
DrawText->m_Pos.x = px.x;
|
DrawText->m_Pos.x = px.x;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
|
|
||||||
// Text is not really mirrored: Orientation is changed
|
// Text is not really mirrored: Orientation is changed
|
||||||
DrawText = (DrawLabelStruct*) DrawStruct;
|
DrawText = (SCH_LABEL*) DrawStruct;
|
||||||
if( DrawText->m_Orient == 0 ) /* horizontal text */
|
if( DrawText->m_Orient == 0 ) /* horizontal text */
|
||||||
DrawText->m_Orient = 2;
|
DrawText->m_Orient = 2;
|
||||||
else if( DrawText->m_Orient == 2 ) /* invert horizontal text*/
|
else if( DrawText->m_Orient == 2 ) /* invert horizontal text*/
|
||||||
|
@ -703,8 +704,8 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center )
|
||||||
DrawText->m_Pos.x = px.x;
|
DrawText->m_Pos.x = px.x;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
DrawLibItem = (EDA_SchComponentStruct*) DrawStruct;
|
DrawLibItem = (SCH_COMPONENT*) DrawStruct;
|
||||||
dx = DrawLibItem->m_Pos.x;
|
dx = DrawLibItem->m_Pos.x;
|
||||||
g_EDA_Appl->m_SchematicFrame->CmpRotationMiroir( DrawLibItem,
|
g_EDA_Appl->m_SchematicFrame->CmpRotationMiroir( DrawLibItem,
|
||||||
NULL, CMP_MIROIR_Y );
|
NULL, CMP_MIROIR_Y );
|
||||||
|
@ -753,43 +754,42 @@ void MirrorOneStruct( EDA_BaseStruct* DrawStruct, wxPoint& Center )
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
bool MirrorStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct, wxPoint& Center )
|
bool MirrorStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct, wxPoint& Center )
|
||||||
{
|
{
|
||||||
DrawPickedStruct* PickedList = NULL;
|
|
||||||
DrawPickedStruct* DrawStructs;
|
|
||||||
|
|
||||||
if( !DrawStruct )
|
if( !DrawStruct )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if( DrawStruct->Type() == DRAW_PICK_ITEM_STRUCT_TYPE )
|
if( DrawStruct->Type() == DRAW_PICK_ITEM_STRUCT_TYPE )
|
||||||
{
|
{
|
||||||
|
DrawPickedStruct* pickedList = (DrawPickedStruct*) DrawStruct;
|
||||||
|
|
||||||
if( DC )
|
if( DC )
|
||||||
RedrawStructList( panel, DC, DrawStruct, g_XorMode );
|
panel->PostDirtyRect( pickedList->GetBoundingBoxUnion() );
|
||||||
DrawStructs = (DrawPickedStruct*) DrawStruct;
|
|
||||||
while( DrawStructs )
|
for( DrawPickedStruct* cur = pickedList; cur; cur=cur->Next() )
|
||||||
{
|
{
|
||||||
MirrorOneStruct( DrawStructs->m_PickedStruct, Center );
|
MirrorOneStruct( cur->m_PickedStruct, Center );
|
||||||
DrawStructs->m_PickedStruct->m_Flags = 0;
|
cur->m_PickedStruct->m_Flags = 0;
|
||||||
DrawStructs = (DrawPickedStruct*) DrawStructs->Pnext;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( DC )
|
if( DC )
|
||||||
RedrawStructList( panel, DC, DrawStruct, GR_DEFAULT_DRAWMODE );
|
RedrawStructList( panel, DC, pickedList, GR_DEFAULT_DRAWMODE );
|
||||||
|
|
||||||
/* Free the wrapper DrawPickedStruct chain: */
|
// Free the wrapper DrawPickedStruct chain
|
||||||
PickedList = (DrawPickedStruct*) DrawStruct;
|
pickedList->DeleteWrapperList();
|
||||||
PickedList->DeleteWrapperList();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( DC )
|
if( DC )
|
||||||
RedrawOneStruct( panel, DC, DrawStruct, g_XorMode );
|
panel->PostDirtyRect( DrawStruct->GetBoundingBox() );
|
||||||
MirrorOneStruct( DrawStruct, Center ); /* Place it in its new position. */
|
|
||||||
|
MirrorOneStruct( DrawStruct, Center ); // Place it in its new position.
|
||||||
|
|
||||||
if( DC )
|
if( DC )
|
||||||
RedrawOneStruct( panel, DC, DrawStruct, GR_DEFAULT_DRAWMODE );
|
RedrawOneStruct( panel, DC, DrawStruct, GR_DEFAULT_DRAWMODE );
|
||||||
|
|
||||||
DrawStruct->m_Flags = 0;
|
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() )
|
switch( Struct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
{
|
{
|
||||||
( (EDA_SchComponentStruct*) Struct )->m_TimeStamp = GetTimeStamp();
|
( (SCH_COMPONENT*) Struct )->m_TimeStamp = GetTimeStamp();
|
||||||
( (EDA_SchComponentStruct*) Struct )->ClearAnnotation();
|
( (SCH_COMPONENT*) Struct )->ClearAnnotation();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -872,10 +872,10 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case DRAW_JUNCTION_STRUCT_TYPE:
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case DRAW_SEGMENT_STRUCT_TYPE:
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case DRAW_BUSENTRY_STRUCT_TYPE:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_SHEETLABEL_STRUCT_TYPE:
|
case DRAW_SHEETLABEL_STRUCT_TYPE:
|
||||||
case DRAW_PICK_ITEM_STRUCT_TYPE:
|
case DRAW_PICK_ITEM_STRUCT_TYPE:
|
||||||
case DRAW_MARKER_STRUCT_TYPE:
|
case DRAW_MARKER_STRUCT_TYPE:
|
||||||
|
@ -891,9 +891,9 @@ static EDA_BaseStruct* CopyStruct( WinEDA_DrawPanel* panel, wxDC* DC, BASE_SCREE
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
( (EDA_SchComponentStruct*) NewDrawStruct )->m_TimeStamp = GetTimeStamp();
|
( (SCH_COMPONENT*) NewDrawStruct )->m_TimeStamp = GetTimeStamp();
|
||||||
( (EDA_SchComponentStruct*) NewDrawStruct )->ClearAnnotation();
|
( (SCH_COMPONENT*) NewDrawStruct )->ClearAnnotation();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -924,13 +924,11 @@ void DeleteStruct( WinEDA_DrawPanel* panel, wxDC* DC, EDA_BaseStruct* DrawStruct
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
SCH_SCREEN* screen = (SCH_SCREEN*) panel->GetScreen();
|
SCH_SCREEN* screen = (SCH_SCREEN*) panel->GetScreen();
|
||||||
DrawPickedStruct* PickedList = NULL;
|
|
||||||
WinEDA_SchematicFrame* frame = (WinEDA_SchematicFrame*) panel->m_Parent;
|
WinEDA_SchematicFrame* frame = (WinEDA_SchematicFrame*) panel->m_Parent;
|
||||||
|
|
||||||
if( !DrawStruct )
|
if( !DrawStruct )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
if( DrawStruct->Type() == DRAW_SHEETLABEL_STRUCT_TYPE )
|
if( DrawStruct->Type() == DRAW_SHEETLABEL_STRUCT_TYPE )
|
||||||
{
|
{
|
||||||
/* Cette stucture est rattachee a une feuille, et n'est pas
|
/* 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 )
|
if( DrawStruct->Type() == DRAW_PICK_ITEM_STRUCT_TYPE )
|
||||||
{
|
{
|
||||||
/* Unlink all picked structs from current EEDrawList */
|
// Unlink all picked structs from current EEDrawList
|
||||||
PickedList = (DrawPickedStruct*) DrawStruct;
|
|
||||||
while( PickedList )
|
for( DrawPickedStruct* cur = (DrawPickedStruct*) DrawStruct; cur; cur=cur->Next() )
|
||||||
{
|
{
|
||||||
screen->RemoveFromDrawList( PickedList->m_PickedStruct );
|
EDA_BaseStruct* item = cur->m_PickedStruct;
|
||||||
PickedList->m_PickedStruct->Pnext =
|
screen->RemoveFromDrawList( item );
|
||||||
PickedList->m_PickedStruct->Pback = NULL;
|
panel->PostDirtyRect( item->GetBoundingBox() );
|
||||||
PickedList->m_PickedStruct->m_Flags = IS_DELETED;
|
item->Pnext = item->Pback = NULL;
|
||||||
PickedList = PickedList->Next();
|
item->m_Flags = IS_DELETED;
|
||||||
}
|
}
|
||||||
|
|
||||||
RedrawStructList( panel, DC, DrawStruct, g_XorMode );
|
// Removed items are put onto the Undo list
|
||||||
|
|
||||||
/* Removed items are put to the Undo list */
|
|
||||||
frame->SaveCopyInUndoList( DrawStruct, IS_DELETED );
|
frame->SaveCopyInUndoList( DrawStruct, IS_DELETED );
|
||||||
}
|
}
|
||||||
else /* structure classique */
|
else /* structure classique */
|
||||||
{
|
{
|
||||||
screen->RemoveFromDrawList( DrawStruct );
|
screen->RemoveFromDrawList( DrawStruct );
|
||||||
|
|
||||||
if( (DrawStruct->Type() == DRAW_SEGMENT_STRUCT_TYPE) ||
|
switch( DrawStruct->Type() )
|
||||||
(DrawStruct->Type() == DRAW_JUNCTION_STRUCT_TYPE) ||
|
|
||||||
(DrawStruct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE) )
|
|
||||||
{
|
{
|
||||||
|
case DRAW_SEGMENT_STRUCT_TYPE:
|
||||||
|
case DRAW_JUNCTION_STRUCT_TYPE:
|
||||||
|
case TYPE_SCH_COMPONENT:
|
||||||
panel->PostDirtyRect( DrawStruct->GetBoundingBox() );
|
panel->PostDirtyRect( DrawStruct->GetBoundingBox() );
|
||||||
}
|
break;
|
||||||
else
|
|
||||||
{
|
// other classes do not yet have GetBoundingBox() implementations
|
||||||
|
default:
|
||||||
D( DrawStruct->Show( 0, std::cout ); ) // tell me which classes still need GetBoundingBox support
|
D( DrawStruct->Show( 0, std::cout ); ) // tell me which classes still need GetBoundingBox support
|
||||||
RedrawOneStruct( panel, DC, DrawStruct, g_XorMode );
|
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
|
for( PickedList = (DrawPickedStruct*) DrawStruct; PickedList != NULL; ) // Clear annotation for new components
|
||||||
{
|
{
|
||||||
EDA_BaseStruct* Struct = PickedList->m_PickedStruct;
|
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();
|
( (SCH_COMPONENT*) Struct )->m_TimeStamp = GetTimeStamp();
|
||||||
( (EDA_SchComponentStruct*) Struct )->ClearAnnotation();
|
( (SCH_COMPONENT*) Struct )->ClearAnnotation();
|
||||||
SetStructFather( Struct, GetScreen() );
|
SetStructFather( Struct, GetScreen() );
|
||||||
}
|
}
|
||||||
PickedList = (DrawPickedStruct*) PickedList->Pnext;
|
PickedList = (DrawPickedStruct*) PickedList->Pnext;
|
||||||
|
@ -1086,10 +1084,10 @@ void WinEDA_SchematicFrame::PasteStruct( wxDC* DC )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( DrawStruct->Type() == TYPE_SCH_COMPONENT )
|
||||||
{
|
{
|
||||||
( (EDA_SchComponentStruct*) DrawStruct )->m_TimeStamp = GetTimeStamp();
|
( (SCH_COMPONENT*) DrawStruct )->m_TimeStamp = GetTimeStamp();
|
||||||
( (EDA_SchComponentStruct*) DrawStruct )->ClearAnnotation();
|
( (SCH_COMPONENT*) DrawStruct )->ClearAnnotation();
|
||||||
}
|
}
|
||||||
SetStructFather( DrawStruct, GetScreen() );
|
SetStructFather( DrawStruct, GetScreen() );
|
||||||
RedrawOneStruct( DrawPanel, DC, DrawStruct, GR_DEFAULT_DRAWMODE );
|
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_JUNCTION_STRUCT_TYPE:
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case DRAW_SEGMENT_STRUCT_TYPE:
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case DRAW_BUSENTRY_STRUCT_TYPE:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case DRAW_SHEET_STRUCT_TYPE:
|
||||||
case DRAW_SHEETLABEL_STRUCT_TYPE:
|
case DRAW_SHEETLABEL_STRUCT_TYPE:
|
||||||
case DRAW_MARKER_STRUCT_TYPE:
|
case DRAW_MARKER_STRUCT_TYPE:
|
||||||
|
@ -1174,7 +1172,7 @@ void MoveOneStruct( EDA_BaseStruct* DrawStruct, const wxPoint& move_vector )
|
||||||
DrawJunctionStruct* DrawConnect;
|
DrawJunctionStruct* DrawConnect;
|
||||||
EDA_DrawLineStruct* DrawSegment;
|
EDA_DrawLineStruct* DrawSegment;
|
||||||
DrawBusEntryStruct* DrawRaccord;
|
DrawBusEntryStruct* DrawRaccord;
|
||||||
EDA_SchComponentStruct* DrawLibItem;
|
SCH_COMPONENT* DrawLibItem;
|
||||||
DrawSheetStruct* DrawSheet;
|
DrawSheetStruct* DrawSheet;
|
||||||
DrawSheetLabelStruct* DrawSheetLabel;
|
DrawSheetLabelStruct* DrawSheetLabel;
|
||||||
DrawMarkerStruct* DrawMarker;
|
DrawMarkerStruct* DrawMarker;
|
||||||
|
@ -1231,24 +1229,24 @@ void MoveOneStruct( EDA_BaseStruct* DrawStruct, const wxPoint& move_vector )
|
||||||
DrawNoConnect->m_Pos += move_vector;
|
DrawNoConnect->m_Pos += move_vector;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
#define DrawText ( (DrawTextStruct*) DrawStruct )
|
#define DrawText ( (SCH_TEXT*) DrawStruct )
|
||||||
DrawText->m_Pos += move_vector;
|
DrawText->m_Pos += move_vector;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
#define DrawLabel ( (DrawLabelStruct*) DrawStruct )
|
#define DrawLabel ( (SCH_LABEL*) DrawStruct )
|
||||||
DrawLabel->m_Pos += move_vector;
|
DrawLabel->m_Pos += move_vector;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
#define DrawGHLabel ( (DrawLabelStruct*) DrawStruct )
|
#define DrawGHLabel ( (SCH_LABEL*) DrawStruct )
|
||||||
DrawGHLabel->m_Pos += move_vector;
|
DrawGHLabel->m_Pos += move_vector;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
DrawLibItem = (EDA_SchComponentStruct*) DrawStruct;
|
DrawLibItem = (SCH_COMPONENT*) DrawStruct;
|
||||||
DrawLibItem->m_Pos += move_vector;
|
DrawLibItem->m_Pos += move_vector;
|
||||||
for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
|
for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
|
||||||
{
|
{
|
||||||
|
@ -1325,24 +1323,24 @@ EDA_BaseStruct* DuplicateStruct( EDA_BaseStruct* DrawStruct )
|
||||||
NewDrawStruct = ( (DrawNoConnectStruct*) DrawStruct )->GenCopy();
|
NewDrawStruct = ( (DrawNoConnectStruct*) DrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
NewDrawStruct = ( (DrawTextStruct*) DrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_TEXT*) DrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
NewDrawStruct = ( (DrawLabelStruct*) DrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_LABEL*) DrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
NewDrawStruct = ( (DrawHierLabelStruct*) DrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_HIERLABEL*) DrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
NewDrawStruct = ( (DrawGlobalLabelStruct*) DrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_GLOBALLABEL*) DrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
NewDrawStruct = ( (EDA_SchComponentStruct*) DrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_COMPONENT*) DrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case DRAW_SHEET_STRUCT_TYPE:
|
||||||
|
@ -1465,11 +1463,11 @@ static void CollectStructsToDrag( SCH_SCREEN* screen )
|
||||||
{
|
{
|
||||||
Struct = DrawStructs->m_PickedStruct;
|
Struct = DrawStructs->m_PickedStruct;
|
||||||
DrawStructs = (DrawPickedStruct*) DrawStructs->Pnext;
|
DrawStructs = (DrawPickedStruct*) DrawStructs->Pnext;
|
||||||
if( Struct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( Struct->Type() == TYPE_SCH_COMPONENT )
|
||||||
{
|
{
|
||||||
LibEDA_BaseStruct* DrawItem;
|
LibEDA_BaseStruct* DrawItem;
|
||||||
wxPoint pos;
|
wxPoint pos;
|
||||||
DrawItem = GetNextPinPosition( (EDA_SchComponentStruct*) Struct, pos );
|
DrawItem = GetNextPinPosition( (SCH_COMPONENT*) Struct, pos );
|
||||||
while( DrawItem )
|
while( DrawItem )
|
||||||
{
|
{
|
||||||
if( (pos.x < ox) || (pos.x > fx) || (pos.y < oy) || (pos.y > fy) )
|
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:
|
case DRAW_BUSENTRY_STRUCT_TYPE:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawLabelStruct*) Struct )
|
#define STRUCT ( (SCH_LABEL*) Struct )
|
||||||
if( Struct->m_Flags & SELECTED )
|
if( Struct->m_Flags & SELECTED )
|
||||||
break; /* Already in list */
|
break; /* Already in list */
|
||||||
if( STRUCT->m_Pos != position )
|
if( STRUCT->m_Pos != position )
|
||||||
|
@ -1604,10 +1602,10 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
|
||||||
Struct->m_Flags |= SELECTED;
|
Struct->m_Flags |= SELECTED;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawLabelStruct*) Struct )
|
#define STRUCT ( (SCH_LABEL*) Struct )
|
||||||
if( Struct->m_Flags & SELECTED )
|
if( Struct->m_Flags & SELECTED )
|
||||||
break; /* Already in list */
|
break; /* Already in list */
|
||||||
if( STRUCT->m_Pos != position )
|
if( STRUCT->m_Pos != position )
|
||||||
|
@ -1619,7 +1617,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
|
||||||
Struct->m_Flags |= SELECTED;
|
Struct->m_Flags |= SELECTED;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
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 )
|
wxPoint& position )
|
||||||
/*********************************************************************************/
|
/*********************************************************************************/
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
* 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,
|
* 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.
|
* 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
|
* 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
|
* 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 */
|
if( !newsegment ) /* first point : Create first wire ou bus */
|
||||||
{
|
{
|
||||||
s_ConnexionStartPoint = cursorpos;
|
s_ConnexionStartPoint = cursorpos;
|
||||||
s_OldWiresList = ((SCH_SCREEN*)GetScreen())->ExtractWires( TRUE );
|
s_OldWiresList = ((SCH_SCREEN*)GetScreen())->ExtractWires( TRUE );
|
||||||
((SCH_SCREEN*)GetScreen())->SchematicCleanUp( NULL );
|
((SCH_SCREEN*)GetScreen())->SchematicCleanUp( NULL );
|
||||||
|
|
||||||
switch( type )
|
switch( type )
|
||||||
{
|
{
|
||||||
|
@ -194,7 +194,7 @@ void WinEDA_SchematicFrame::BeginSegment( wxDC* DC, int type )
|
||||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||||
|
|
||||||
/* Creation du segment suivant ou fin de trac<61> si point sur pin, jonction ...*/
|
/* Creation du segment suivant ou fin de trac<61> 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;
|
EndSegment( DC ); return;
|
||||||
}
|
}
|
||||||
|
@ -301,7 +301,7 @@ void WinEDA_SchematicFrame::EndSegment( wxDC* DC )
|
||||||
alt_end_point = lastsegment->m_Start;
|
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 */
|
/* clear flags and find last segment entered, for repeat function */
|
||||||
segment = (EDA_DrawLineStruct*) GetScreen()->EEDrawList;
|
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 */
|
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;
|
DrawPanel->ManageCurseur = NULL;
|
||||||
GetScreen()->SetCurItem( NULL );
|
GetScreen()->SetCurItem( NULL );
|
||||||
}
|
}
|
||||||
|
@ -642,9 +642,9 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC )
|
||||||
new_pos = STRUCT->m_Pos;
|
new_pos = STRUCT->m_Pos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawTextStruct*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_TEXT*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
STRUCT->m_Pos += g_RepeatStep;
|
STRUCT->m_Pos += g_RepeatStep;
|
||||||
new_pos = STRUCT->m_Pos;
|
new_pos = STRUCT->m_Pos;
|
||||||
|
@ -653,9 +653,9 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawLabelStruct*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_LABEL*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
STRUCT->m_Pos += g_RepeatStep;
|
STRUCT->m_Pos += g_RepeatStep;
|
||||||
new_pos = STRUCT->m_Pos;
|
new_pos = STRUCT->m_Pos;
|
||||||
|
@ -664,19 +664,19 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawHierLabelStruct*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_HIERLABEL*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
STRUCT->m_Pos += g_RepeatStep;
|
STRUCT->m_Pos += g_RepeatStep;
|
||||||
new_pos = STRUCT->m_Pos;
|
new_pos = STRUCT->m_Pos;
|
||||||
/*** Increment du numero de label ***/
|
/*** Increment du numero de label ***/
|
||||||
IncrementLabelMember( STRUCT->m_Text );
|
IncrementLabelMember( STRUCT->m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawGlobalLabelStruct*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_GLOBALLABEL*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
STRUCT->m_Pos += g_RepeatStep;
|
STRUCT->m_Pos += g_RepeatStep;
|
||||||
new_pos = STRUCT->m_Pos;
|
new_pos = STRUCT->m_Pos;
|
||||||
|
@ -701,17 +701,17 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC )
|
||||||
new_pos = STRUCT->m_Pos;
|
new_pos = STRUCT->m_Pos;
|
||||||
break;
|
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
|
#undef STRUCT
|
||||||
#define STRUCT ( (EDA_SchComponentStruct*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_COMPONENT*) g_ItemToRepeat )
|
||||||
|
|
||||||
// Create the duplicate component, position = mouse cursor
|
// Create the duplicate component, position = mouse cursor
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
new_pos.x = GetScreen()->m_Curseur.x - STRUCT->m_Pos.x;
|
new_pos.x = GetScreen()->m_Curseur.x - STRUCT->m_Pos.x;
|
||||||
new_pos.y = GetScreen()->m_Curseur.y - STRUCT->m_Pos.y;
|
new_pos.y = GetScreen()->m_Curseur.y - STRUCT->m_Pos.y;
|
||||||
STRUCT->m_Pos = GetScreen()->m_Curseur;
|
STRUCT->m_Pos = GetScreen()->m_Curseur;
|
||||||
STRUCT->m_Flags = IS_NEW;
|
STRUCT->m_Flags = IS_NEW;
|
||||||
STRUCT->m_TimeStamp = GetTimeStamp();
|
STRUCT->m_TimeStamp = GetTimeStamp();
|
||||||
for( int ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
|
for( int ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
|
||||||
{
|
{
|
||||||
STRUCT->m_Field[ii].m_Pos += new_pos;
|
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
|
* - une jonction
|
||||||
* - ou une pin
|
* - ou une pin
|
||||||
* - ou une extr<EFBFBD>mit<EFBFBD> unique de fil
|
* - ou une extr<EFBFBD>mit<EFBFBD> unique de fil
|
||||||
*
|
*
|
||||||
* - type BUS, si il y a
|
* - type BUS, si il y a
|
||||||
* - ou une extr<EFBFBD>mit<EFBFBD> unique de BUS
|
* - ou une extr<EFBFBD>mit<EFBFBD> unique de BUS
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
EDA_BaseStruct* item;
|
EDA_BaseStruct* item;
|
||||||
LibDrawPin* pin;
|
LibDrawPin* pin;
|
||||||
EDA_SchComponentStruct* LibItem = NULL;
|
SCH_COMPONENT* LibItem = NULL;
|
||||||
DrawSheetLabelStruct* pinsheet;
|
DrawSheetLabelStruct* pinsheet;
|
||||||
wxPoint itempos;
|
wxPoint itempos;
|
||||||
|
|
||||||
|
@ -837,9 +837,9 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer )
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
item = PickStruct( pos, screen, LABELITEM );
|
item = PickStruct( pos, screen, LABELITEM );
|
||||||
if( item && (item->Type() != DRAW_TEXT_STRUCT_TYPE)
|
if( item && (item->Type() != TYPE_SCH_TEXT)
|
||||||
&& ( ( (DrawGlobalLabelStruct*) item )->m_Pos.x == pos.x )
|
&& ( ( (SCH_GLOBALLABEL*) item )->m_Pos.x == pos.x )
|
||||||
&& ( ( (DrawGlobalLabelStruct*) item )->m_Pos.y == pos.y ) )
|
&& ( ( (SCH_GLOBALLABEL*) item )->m_Pos.y == pos.y ) )
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
pinsheet = LocateAnyPinSheet( pos, screen );
|
pinsheet = LocateAnyPinSheet( pos, screen );
|
||||||
|
|
|
@ -184,12 +184,12 @@ void DrawSheetStruct::CleanupSheet( WinEDA_SchematicFrame* frame, wxDC* DC )
|
||||||
/* Search Hlabel corresponding to this Pinsheet */
|
/* Search Hlabel corresponding to this Pinsheet */
|
||||||
|
|
||||||
EDA_BaseStruct* DrawStruct = m_AssociatedScreen->EEDrawList;
|
EDA_BaseStruct* DrawStruct = m_AssociatedScreen->EEDrawList;
|
||||||
DrawHierLabelStruct* HLabel = NULL;
|
SCH_HIERLABEL* HLabel = NULL;
|
||||||
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext )
|
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() != DRAW_HIER_LABEL_STRUCT_TYPE )
|
if( DrawStruct->Type() != TYPE_SCH_HIERLABEL )
|
||||||
continue;
|
continue;
|
||||||
HLabel = (DrawHierLabelStruct*) DrawStruct;
|
HLabel = (SCH_HIERLABEL*) DrawStruct;
|
||||||
if( Pinsheet->m_Text.CmpNoCase( HLabel->m_Text ) == 0 )
|
if( Pinsheet->m_Text.CmpNoCase( HLabel->m_Text ) == 0 )
|
||||||
break; // Found!
|
break; // Found!
|
||||||
HLabel = NULL;
|
HLabel = NULL;
|
||||||
|
@ -282,9 +282,9 @@ void DrawSheetStruct::DeleteAnnotation( bool recurse )
|
||||||
EDA_BaseStruct* comp = m_AssociatedScreen->EEDrawList;
|
EDA_BaseStruct* comp = m_AssociatedScreen->EEDrawList;
|
||||||
for( ; comp; comp = comp->Pnext )
|
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;
|
EDA_BaseStruct* bs;
|
||||||
for( bs = m_AssociatedScreen->EEDrawList; bs != NULL; bs = bs->Pnext )
|
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 ) != '#' )
|
if( Cmp->m_Field[VALUE].m_Text.GetChar( 0 ) != '#' )
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
|
@ -475,84 +475,84 @@ bool DrawSheetStruct::ChangeFileName( WinEDA_SchematicFrame * aFrame, const wxSt
|
||||||
if( (GetFileName() == aFileName) && m_AssociatedScreen )
|
if( (GetFileName() == aFileName) && m_AssociatedScreen )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
SCH_SCREEN* Screen_to_use = NULL;
|
SCH_SCREEN* Screen_to_use = NULL;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
bool LoadFromFile = false;
|
bool LoadFromFile = false;
|
||||||
|
|
||||||
|
|
||||||
if( g_RootSheet->SearchHierarchy( aFileName, &Screen_to_use ) ) //do we reload the data from the existing hierarchy
|
if( g_RootSheet->SearchHierarchy( aFileName, &Screen_to_use ) ) //do we reload the data from the existing hierarchy
|
||||||
{
|
{
|
||||||
msg.Printf( _(
|
msg.Printf( _(
|
||||||
"A Sub Hierarchy named %s exists, Use it (The data in this sheet will be replaced)?" ),
|
"A Sub Hierarchy named %s exists, Use it (The data in this sheet will be replaced)?" ),
|
||||||
aFileName.GetData() );
|
aFileName.GetData() );
|
||||||
if( ! IsOK( NULL, msg ) )
|
if( ! IsOK( NULL, msg ) )
|
||||||
{
|
{
|
||||||
DisplayInfo(NULL, _("Sheet Filename Renaming Aborted"));
|
DisplayInfo(NULL, _("Sheet Filename Renaming Aborted"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if( wxFileExists( aFileName ) ) //do we reload the data from an existing file
|
else if( wxFileExists( aFileName ) ) //do we reload the data from an existing file
|
||||||
{
|
{
|
||||||
msg.Printf( _(
|
msg.Printf( _(
|
||||||
"A file named %s exists, load it (otherwise keep current sheet data if possible)?" ),
|
"A file named %s exists, load it (otherwise keep current sheet data if possible)?" ),
|
||||||
aFileName.GetData() );
|
aFileName.GetData() );
|
||||||
if( IsOK( NULL, msg ) )
|
if( IsOK( NULL, msg ) )
|
||||||
{
|
{
|
||||||
LoadFromFile = true;
|
LoadFromFile = true;
|
||||||
m_AssociatedScreen->m_RefCount--; //be careful with these
|
m_AssociatedScreen->m_RefCount--; //be careful with these
|
||||||
if( m_AssociatedScreen->m_RefCount == 0 )
|
if( m_AssociatedScreen->m_RefCount == 0 )
|
||||||
SAFE_DELETE( m_AssociatedScreen );
|
SAFE_DELETE( m_AssociatedScreen );
|
||||||
m_AssociatedScreen = NULL; //will be created later
|
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 an associated screen exists, shared between this sheet and others sheets, what we do ?
|
||||||
if( !m_AssociatedScreen )
|
if( m_AssociatedScreen && ( m_AssociatedScreen->m_RefCount > 1 ))
|
||||||
{
|
{
|
||||||
m_AssociatedScreen = new SCH_SCREEN( SCHEMATIC_FRAME );
|
msg = _("This sheet uses shared data in a complex hierarchy" ) ;
|
||||||
m_AssociatedScreen->m_RefCount++; //be careful with these
|
msg << wxT("\n");
|
||||||
}
|
msg << _("Do we convert it in a simple hierarchical sheet (otherwise delete current sheet data)");
|
||||||
m_AssociatedScreen->m_FileName = aFileName;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -803,9 +803,9 @@ void DrawSheetPath::UpdateAllScreenReferences()
|
||||||
|
|
||||||
while( t )
|
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 );
|
d->m_Field[REFERENCE].m_Text = d->GetRef( this );
|
||||||
}
|
}
|
||||||
t = t->Pnext;
|
t = t->Pnext;
|
||||||
|
|
|
@ -19,11 +19,11 @@ void SetStructFather( EDA_BaseStruct* Struct, BASE_SCREEN* Screen )
|
||||||
{
|
{
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case DRAW_POLYLINE_STRUCT_TYPE:
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case DRAW_JUNCTION_STRUCT_TYPE:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case DRAW_SEGMENT_STRUCT_TYPE:
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case DRAW_BUSENTRY_STRUCT_TYPE:
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case DRAW_SHEET_STRUCT_TYPE:
|
||||||
|
|
|
@ -18,15 +18,15 @@
|
||||||
|
|
||||||
|
|
||||||
/************************/
|
/************************/
|
||||||
/* class DrawTextStruct */
|
/* class SCH_TEXT */
|
||||||
/* class DrawLabelStruct */
|
/* class SCH_LABEL */
|
||||||
/* class DrawGlobalLabelStruct */
|
/* class SCH_GLOBALLABEL */
|
||||||
/* class DrawHierLabelStruct */
|
/* class SCH_HIERLABEL */
|
||||||
/************************/
|
/************************/
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
DrawTextStruct::DrawTextStruct( const wxPoint& pos, const wxString& text, KICAD_T aType ) :
|
SCH_TEXT::SCH_TEXT( const wxPoint& pos, const wxString& text, KICAD_T aType ) :
|
||||||
EDA_BaseStruct( aType )
|
SCH_ITEM( NULL, aType )
|
||||||
, EDA_TextStruct( text )
|
, 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() )
|
switch( Type() )
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
newitem = new DrawTextStruct( m_Pos, m_Text );
|
newitem = new SCH_TEXT( m_Pos, m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
newitem = new DrawGlobalLabelStruct( m_Pos, m_Text );
|
newitem = new SCH_GLOBALLABEL( m_Pos, m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
newitem = new DrawHierLabelStruct( m_Pos, m_Text );
|
newitem = new SCH_HIERLABEL( m_Pos, m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
newitem = new DrawLabelStruct( m_Pos, m_Text );
|
newitem = new SCH_LABEL( m_Pos, m_Text );
|
||||||
break;
|
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 );
|
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 */
|
/* save old text in undo list */
|
||||||
if( g_ItemToUndoCopy && ( (m_Flags & IS_NEW) == 0 ) )
|
if( g_ItemToUndoCopy && ( (m_Flags & IS_NEW) == 0 ) )
|
||||||
{
|
{
|
||||||
/* restore old values and save new ones */
|
/* restore old values and save new ones */
|
||||||
SwapData( (DrawTextStruct*) g_ItemToUndoCopy );
|
SwapData( (SCH_TEXT*) g_ItemToUndoCopy );
|
||||||
|
|
||||||
/* save in undo list */
|
/* save in undo list */
|
||||||
( (WinEDA_SchematicFrame*) frame )->SaveCopyInUndoList( this, IS_CHANGED );
|
( (WinEDA_SchematicFrame*) frame )->SaveCopyInUndoList( this, IS_CHANGED );
|
||||||
|
|
||||||
/* restore new values */
|
/* restore new values */
|
||||||
SwapData( (DrawTextStruct*) g_ItemToUndoCopy );
|
SwapData( (SCH_TEXT*) g_ItemToUndoCopy );
|
||||||
|
|
||||||
SAFE_DELETE( 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 ) :
|
SCH_LABEL::SCH_LABEL( const wxPoint& pos, const wxString& text ) :
|
||||||
DrawTextStruct( pos, text, DRAW_LABEL_STRUCT_TYPE )
|
SCH_TEXT( pos, text, TYPE_SCH_LABEL )
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_LOCLABEL;
|
m_Layer = LAYER_LOCLABEL;
|
||||||
|
@ -129,8 +129,8 @@ DrawLabelStruct::DrawLabelStruct( const wxPoint& pos, const wxString& text ) :
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
DrawGlobalLabelStruct::DrawGlobalLabelStruct( const wxPoint& pos, const wxString& text ) :
|
SCH_GLOBALLABEL::SCH_GLOBALLABEL( const wxPoint& pos, const wxString& text ) :
|
||||||
DrawTextStruct( pos, text, DRAW_GLOBAL_LABEL_STRUCT_TYPE )
|
SCH_TEXT( pos, text, TYPE_SCH_GLOBALLABEL )
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_GLOBLABEL;
|
m_Layer = LAYER_GLOBLABEL;
|
||||||
|
@ -140,8 +140,8 @@ DrawGlobalLabelStruct::DrawGlobalLabelStruct( const wxPoint& pos, const wxString
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
DrawHierLabelStruct::DrawHierLabelStruct( const wxPoint& pos, const wxString& text ) :
|
SCH_HIERLABEL::SCH_HIERLABEL( const wxPoint& pos, const wxString& text ) :
|
||||||
DrawTextStruct( pos, text, DRAW_HIER_LABEL_STRUCT_TYPE )
|
SCH_TEXT( pos, text, TYPE_SCH_HIERLABEL )
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_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 )
|
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 )
|
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 )
|
int DrawMode, int Color )
|
||||||
/******************************************************************************************/
|
/******************************************************************************************/
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ void DrawHierLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint
|
||||||
* format list is
|
* format list is
|
||||||
* corner_count, x0, y0, ... xn, yn
|
* 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* Template = TemplateShape[m_Shape][m_Orient];
|
||||||
int HalfSize = m_Size.x / 2;
|
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 )
|
int DrawMode, int Color )
|
||||||
/******************************************************************************************/
|
/******************************************************************************************/
|
||||||
|
|
||||||
|
@ -338,9 +338,9 @@ void DrawGlobalLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoi
|
||||||
offset += HalfSize;
|
offset += HalfSize;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NET_OUTPUT:
|
case NET_OUTPUT:
|
||||||
offset += TXTMARGE;
|
offset += TXTMARGE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -392,7 +392,7 @@ void DrawGlobalLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoi
|
||||||
* format list is
|
* format list is
|
||||||
* <corner_count>, x0, y0, ... xn, yn
|
* <corner_count>, 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 HalfSize = m_Size.x / 2;
|
||||||
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
||||||
|
|
|
@ -76,7 +76,7 @@ int* TemplateShape[5][4] =
|
||||||
extern int* TemplateShape[5][4];
|
extern int* TemplateShape[5][4];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class DrawTextStruct : public EDA_BaseStruct
|
class SCH_TEXT : public SCH_ITEM
|
||||||
, public EDA_TextStruct
|
, public EDA_TextStruct
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -85,31 +85,31 @@ public:
|
||||||
bool m_IsDangling; // TRUE si non connect<63>
|
bool m_IsDangling; // TRUE si non connect<63>
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DrawTextStruct( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString,
|
SCH_TEXT( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString,
|
||||||
KICAD_T aType = DRAW_TEXT_STRUCT_TYPE );
|
KICAD_T aType = TYPE_SCH_TEXT );
|
||||||
~DrawTextStruct() { }
|
~SCH_TEXT() { }
|
||||||
|
|
||||||
virtual wxString GetClass() const
|
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,
|
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
||||||
int Color = -1 );
|
int Color = -1 );
|
||||||
|
|
||||||
void SwapData( DrawTextStruct* copyitem );
|
void SwapData( SCH_TEXT* copyitem );
|
||||||
|
|
||||||
virtual void Place( WinEDA_DrawFrame* frame, wxDC* DC );
|
virtual void Place( WinEDA_DrawFrame* frame, wxDC* DC );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class DrawLabelStruct : public DrawTextStruct
|
class SCH_LABEL : public SCH_TEXT
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DrawLabelStruct( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString );
|
SCH_LABEL( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString );
|
||||||
~DrawLabelStruct() { }
|
~SCH_LABEL() { }
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
||||||
int Color = -1 );
|
int Color = -1 );
|
||||||
|
|
||||||
|
@ -120,12 +120,12 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class DrawGlobalLabelStruct : public DrawTextStruct
|
class SCH_GLOBALLABEL : public SCH_TEXT
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DrawGlobalLabelStruct( const wxPoint& pos = wxPoint( 0, 0 ),
|
SCH_GLOBALLABEL( const wxPoint& pos = wxPoint( 0, 0 ),
|
||||||
const wxString& text = wxEmptyString );
|
const wxString& text = wxEmptyString );
|
||||||
~DrawGlobalLabelStruct() { }
|
~SCH_GLOBALLABEL() { }
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
||||||
int Color = -1 );
|
int Color = -1 );
|
||||||
|
|
||||||
|
@ -138,21 +138,21 @@ public:
|
||||||
/** function CreateGraphicShape
|
/** function CreateGraphicShape
|
||||||
* Calculates the graphic shape (a polygon) associated to the text
|
* Calculates the graphic shape (a polygon) associated to the text
|
||||||
* @param corner_list = coordinates list fill with polygon corners ooordinates (size > 20)
|
* @param corner_list = coordinates list fill with polygon corners ooordinates (size > 20)
|
||||||
* @param Pos = Postion of the shape
|
* @param Pos = Postion of the shape
|
||||||
* format list is
|
* format list is
|
||||||
* <corner_count>, x0, y0, ... xn, yn
|
* <corner_count>, x0, y0, ... xn, yn
|
||||||
*/
|
*/
|
||||||
void CreateGraphicShape( int* corner_list, const wxPoint & Pos );
|
void CreateGraphicShape( int* corner_list, const wxPoint & Pos );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class DrawHierLabelStruct : public DrawTextStruct
|
class SCH_HIERLABEL : public SCH_TEXT
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DrawHierLabelStruct( const wxPoint& pos = wxPoint( 0, 0 ),
|
SCH_HIERLABEL( const wxPoint& pos = wxPoint( 0, 0 ),
|
||||||
const wxString& text = wxEmptyString );
|
const wxString& text = wxEmptyString );
|
||||||
~DrawHierLabelStruct() { }
|
~SCH_HIERLABEL() { }
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
||||||
int Color = -1 );
|
int Color = -1 );
|
||||||
|
|
||||||
|
@ -165,9 +165,9 @@ public:
|
||||||
/** function CreateGraphicShape
|
/** function CreateGraphicShape
|
||||||
* Calculates the graphic shape (a polygon) associated to the text
|
* Calculates the graphic shape (a polygon) associated to the text
|
||||||
* @param corner_list = coordinates list fill with polygon corners ooordinates (size >= 14)
|
* @param corner_list = coordinates list fill with polygon corners ooordinates (size >= 14)
|
||||||
* @param Pos = Postion of the shape
|
* @param Pos = Postion of the shape
|
||||||
* format list is
|
* format list is
|
||||||
* <corner_count>, x0, y0, ... xn, yn
|
* <corner_count>, x0, y0, ... xn, yn
|
||||||
*/
|
*/
|
||||||
void CreateGraphicShape( int* corner_list, const wxPoint & Pos );
|
void CreateGraphicShape( int* corner_list, const wxPoint & Pos );
|
||||||
};
|
};
|
||||||
|
|
|
@ -105,14 +105,14 @@ void BreakSegmentOnJunction( SCH_SCREEN* Screen )
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case DRAW_SEGMENT_STRUCT_TYPE:
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case DRAW_NOCONNECT_STRUCT_TYPE:
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
case DRAW_PICK_ITEM_STRUCT_TYPE:
|
case DRAW_PICK_ITEM_STRUCT_TYPE:
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case DRAW_POLYLINE_STRUCT_TYPE:
|
||||||
case DRAW_MARKER_STRUCT_TYPE:
|
case DRAW_MARKER_STRUCT_TYPE:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case DRAW_SHEET_STRUCT_TYPE:
|
||||||
case DRAW_SHEETLABEL_STRUCT_TYPE:
|
case DRAW_SHEETLABEL_STRUCT_TYPE:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -269,7 +269,7 @@ EDA_Rect DrawJunctionStruct::GetBoundingBox()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect EDA_SchComponentStruct::GetBoundingBox()
|
EDA_Rect SCH_COMPONENT::GetBoundingBox()
|
||||||
{
|
{
|
||||||
const int PADDING = 40;
|
const int PADDING = 40;
|
||||||
|
|
||||||
|
|
|
@ -22,28 +22,9 @@
|
||||||
WX_DEFINE_OBJARRAY( ArrayOfSheetLists );
|
WX_DEFINE_OBJARRAY( ArrayOfSheetLists );
|
||||||
|
|
||||||
/***************************/
|
/***************************/
|
||||||
/* class DrawPartStruct */
|
/* class SCH_COMPONENT */
|
||||||
/* class EDA_SchComponentStruct */
|
|
||||||
/***************************/
|
/***************************/
|
||||||
|
|
||||||
/***********************************************************************************/
|
|
||||||
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 )
|
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 ..)
|
/* 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;
|
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 );
|
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
|
//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();
|
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.
|
// avoid unnecessarily copying wxStrings.
|
||||||
static const wxString myEmpty = wxEmptyString;
|
static const wxString myEmpty = wxEmptyString;
|
||||||
|
@ -197,14 +178,16 @@ const wxString& EDA_SchComponentStruct::GetFieldValue( int aFieldNdx ) const
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
EDA_SchComponentStruct::EDA_SchComponentStruct( const wxPoint& pos ) :
|
SCH_COMPONENT::SCH_COMPONENT( const wxPoint& aPos ) :
|
||||||
DrawPartStruct( DRAW_LIB_ITEM_STRUCT_TYPE, pos )
|
SCH_ITEM( NULL, TYPE_SCH_COMPONENT )
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
{
|
{
|
||||||
int ii;
|
int ii;
|
||||||
|
|
||||||
m_Multi = 0; /* In multi unit chip - which unit to draw. */
|
m_Multi = 0; /* In multi unit chip - which unit to draw. */
|
||||||
|
|
||||||
|
m_Pos = aPos;
|
||||||
|
|
||||||
//m_FlagControlMulti = 0;
|
//m_FlagControlMulti = 0;
|
||||||
m_UsedOnSheets.Clear();
|
m_UsedOnSheets.Clear();
|
||||||
m_Convert = 0; /* Gestion des mutiples representations (conversion De Morgan) */
|
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 );
|
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:
|
/* Used if undo / redo command:
|
||||||
* swap data between this and copyitem
|
* 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_Pos, copyitem->m_Pos );
|
||||||
EXCHG( m_Multi, copyitem->m_Multi );
|
EXCHG( m_Multi, copyitem->m_Multi );
|
||||||
EXCHG( m_Convert, copyitem->m_Convert );
|
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 */
|
/* save old text in undo list */
|
||||||
|
@ -341,13 +324,13 @@ void EDA_SchComponentStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC )
|
||||||
&& ( (m_Flags & IS_NEW) == 0 ) )
|
&& ( (m_Flags & IS_NEW) == 0 ) )
|
||||||
{
|
{
|
||||||
/* restore old values and save new ones */
|
/* restore old values and save new ones */
|
||||||
SwapData( (EDA_SchComponentStruct*) g_ItemToUndoCopy );
|
SwapData( (SCH_COMPONENT*) g_ItemToUndoCopy );
|
||||||
|
|
||||||
/* save in undo list */
|
/* save in undo list */
|
||||||
( (WinEDA_SchematicFrame*) frame )->SaveCopyInUndoList( this, IS_CHANGED );
|
( (WinEDA_SchematicFrame*) frame )->SaveCopyInUndoList( this, IS_CHANGED );
|
||||||
|
|
||||||
/* restore new values */
|
/* restore new values */
|
||||||
SwapData( (EDA_SchComponentStruct*) g_ItemToUndoCopy );
|
SwapData( (SCH_COMPONENT*) g_ItemToUndoCopy );
|
||||||
|
|
||||||
SAFE_DELETE( 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)
|
/* 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;
|
int ii;
|
||||||
|
|
||||||
new_item->m_Multi = m_Multi;
|
new_item->m_Multi = m_Multi;
|
||||||
new_item->m_ChipName = m_ChipName;
|
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_FlagControlMulti = m_FlagControlMulti;
|
||||||
new_item->m_UsedOnSheets = m_UsedOnSheets;
|
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
|
/* 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;
|
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<6E>e du point coord, en fonction de l'orientation
|
/* Renvoie la coordonn<6E>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.
|
* of nesting of this object within the overall tree.
|
||||||
* @param os The ostream& to output to.
|
* @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:
|
// for now, make it look like XML:
|
||||||
NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() <<
|
NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() <<
|
||||||
|
@ -748,7 +731,7 @@ EDA_Rect PartTextStruct::GetBoundaryBox() const
|
||||||
int orient;
|
int orient;
|
||||||
int dx, dy, x1, y1, x2, y2;
|
int dx, dy, x1, y1, x2, y2;
|
||||||
|
|
||||||
EDA_SchComponentStruct* DrawLibItem = (EDA_SchComponentStruct*) m_Parent;
|
SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) m_Parent;
|
||||||
|
|
||||||
orient = m_Orient;
|
orient = m_Orient;
|
||||||
wxPoint pos = DrawLibItem->m_Pos;
|
wxPoint pos = DrawLibItem->m_Pos;
|
||||||
|
|
|
@ -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 );
|
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:
|
public:
|
||||||
int m_Multi; /* In multi unit chip - which unit to draw. */
|
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;
|
//int m_FlagControlMulti;
|
||||||
ArrayOfSheetLists m_UsedOnSheets;
|
ArrayOfSheetLists m_UsedOnSheets;
|
||||||
int m_Convert; /* Gestion (management) des mutiples representations (ex: conversion De Morgan) */
|
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. */
|
* determined, upon file load, by the first non-digits in the reference fields. */
|
||||||
|
|
||||||
public:
|
public:
|
||||||
EDA_SchComponentStruct( const wxPoint& pos = wxPoint( 0, 0 ) );
|
SCH_COMPONENT( const wxPoint& pos = wxPoint( 0, 0 ) );
|
||||||
~EDA_SchComponentStruct( void ) { }
|
~SCH_COMPONENT() { }
|
||||||
|
|
||||||
virtual wxString GetClass() const
|
virtual wxString GetClass() const
|
||||||
{
|
{
|
||||||
return wxT( "EDA_SchComponent" );
|
return wxT( "SCH_COMPONENT" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_SchComponentStruct* GenCopy();
|
SCH_COMPONENT* GenCopy();
|
||||||
void SetRotationMiroir( int type );
|
void SetRotationMiroir( int type );
|
||||||
int GetRotationMiroir();
|
int GetRotationMiroir();
|
||||||
wxPoint GetScreenCoord( const wxPoint& coord );
|
wxPoint GetScreenCoord( const wxPoint& coord );
|
||||||
|
@ -143,7 +129,7 @@ public:
|
||||||
const wxPoint& offset,
|
const wxPoint& offset,
|
||||||
int draw_mode,
|
int draw_mode,
|
||||||
int Color = -1 );
|
int Color = -1 );
|
||||||
void SwapData( EDA_SchComponentStruct* copyitem );
|
void SwapData( SCH_COMPONENT* copyitem );
|
||||||
|
|
||||||
virtual void Place( WinEDA_DrawFrame* frame, wxDC* DC );
|
virtual void Place( WinEDA_DrawFrame* frame, wxDC* DC );
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ SchematicGeneralLocateAndDisplay( bool IncludePin )
|
||||||
wxString msg;
|
wxString msg;
|
||||||
wxPoint mouse_position = GetScreen()->m_MousePosition;
|
wxPoint mouse_position = GetScreen()->m_MousePosition;
|
||||||
LibDrawPin* Pin = NULL;
|
LibDrawPin* Pin = NULL;
|
||||||
EDA_SchComponentStruct* LibItem = NULL;
|
SCH_COMPONENT* LibItem = NULL;
|
||||||
|
|
||||||
DrawStruct = SchematicGeneralLocateAndDisplay( mouse_position, IncludePin );
|
DrawStruct = SchematicGeneralLocateAndDisplay( mouse_position, IncludePin );
|
||||||
if( !DrawStruct && ( mouse_position != GetScreen()->m_Curseur) )
|
if( !DrawStruct && ( mouse_position != GetScreen()->m_Curseur) )
|
||||||
|
@ -57,15 +57,15 @@ SchematicGeneralLocateAndDisplay( bool IncludePin )
|
||||||
{
|
{
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case DRAW_PART_TEXT_STRUCT_TYPE:
|
||||||
case COMPONENT_FIELD_DRAW_TYPE:
|
case COMPONENT_FIELD_DRAW_TYPE:
|
||||||
LibItem = (EDA_SchComponentStruct*) DrawStruct->m_Parent;
|
LibItem = (SCH_COMPONENT*) DrawStruct->m_Parent;
|
||||||
SendMessageToPCBNEW( DrawStruct,LibItem );
|
SendMessageToPCBNEW( DrawStruct,LibItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
Pin = LocateAnyPin( GetScreen()->EEDrawList, GetScreen()->m_Curseur, &LibItem );
|
Pin = LocateAnyPin( GetScreen()->EEDrawList, GetScreen()->m_Curseur, &LibItem );
|
||||||
if( Pin )
|
if( Pin )
|
||||||
break; // Priority is probing a pin first
|
break; // Priority is probing a pin first
|
||||||
LibItem = (EDA_SchComponentStruct*) DrawStruct;
|
LibItem = (SCH_COMPONENT*) DrawStruct;
|
||||||
SendMessageToPCBNEW( DrawStruct, LibItem );
|
SendMessageToPCBNEW( DrawStruct, LibItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ SchematicGeneralLocateAndDisplay( const wxPoint& refpoint, bool IncludePin )
|
||||||
{
|
{
|
||||||
EDA_BaseStruct* DrawStruct;
|
EDA_BaseStruct* DrawStruct;
|
||||||
LibDrawPin* Pin;
|
LibDrawPin* Pin;
|
||||||
EDA_SchComponentStruct* LibItem;
|
SCH_COMPONENT* LibItem;
|
||||||
wxString Text;
|
wxString Text;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
int ii;
|
int ii;
|
||||||
|
@ -175,7 +175,7 @@ SchematicGeneralLocateAndDisplay( const wxPoint& refpoint, bool IncludePin )
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
PartTextStruct* Field = (PartTextStruct*) DrawStruct;
|
PartTextStruct* Field = (PartTextStruct*) DrawStruct;
|
||||||
LibItem = (EDA_SchComponentStruct*) Field->m_Parent;
|
LibItem = (SCH_COMPONENT*) Field->m_Parent;
|
||||||
LibItem->Display_Infos( this );
|
LibItem->Display_Infos( this );
|
||||||
|
|
||||||
return DrawStruct;
|
return DrawStruct;
|
||||||
|
@ -199,7 +199,7 @@ SchematicGeneralLocateAndDisplay( const wxPoint& refpoint, bool IncludePin )
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
||||||
LibItem = (EDA_SchComponentStruct*) DrawStruct;
|
LibItem = (SCH_COMPONENT*) DrawStruct;
|
||||||
LibItem->Display_Infos( this );
|
LibItem->Display_Infos( this );
|
||||||
return DrawStruct;
|
return DrawStruct;
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,7 @@ void RemoteCommand( const char* cmdline )
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
void WinEDA_SchematicFrame::SendMessageToPCBNEW( EDA_BaseStruct* objectToSync,
|
void WinEDA_SchematicFrame::SendMessageToPCBNEW( EDA_BaseStruct* objectToSync,
|
||||||
EDA_SchComponentStruct* LibItem )
|
SCH_COMPONENT* LibItem )
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
/** Send a remote command to eeschema via a socket,
|
/** Send a remote command to eeschema via a socket,
|
||||||
|
@ -116,8 +116,8 @@ void WinEDA_SchematicFrame::SendMessageToPCBNEW( EDA_BaseStruct* objectT
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
LibItem = (EDA_SchComponentStruct*) objectToSync;
|
LibItem = (SCH_COMPONENT*) objectToSync;
|
||||||
sprintf( Line, "$PART: %s", CONV_TO_UTF8( LibItem->m_Field[REFERENCE].m_Text ) );
|
sprintf( Line, "$PART: %s", CONV_TO_UTF8( LibItem->m_Field[REFERENCE].m_Text ) );
|
||||||
SendCommand( MSG_TO_PCB, Line );
|
SendCommand( MSG_TO_PCB, Line );
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -47,7 +47,7 @@ DanglingEndHandle* ItemList;
|
||||||
|
|
||||||
static void TestWireForDangling( EDA_DrawLineStruct* DrawRef,
|
static void TestWireForDangling( EDA_DrawLineStruct* DrawRef,
|
||||||
WinEDA_SchematicFrame* frame, wxDC* DC );
|
WinEDA_SchematicFrame* frame, wxDC* DC );
|
||||||
void TestLabelForDangling( DrawTextStruct* label,
|
void TestLabelForDangling( SCH_TEXT* label,
|
||||||
WinEDA_SchematicFrame* frame, wxDC* DC );
|
WinEDA_SchematicFrame* frame, wxDC* DC );
|
||||||
DanglingEndHandle* RebuildEndList( EDA_BaseStruct* DrawList );
|
DanglingEndHandle* RebuildEndList( EDA_BaseStruct* DrawList );
|
||||||
|
|
||||||
|
@ -111,11 +111,11 @@ void WinEDA_SchematicFrame::TestDanglingEnds( EDA_BaseStruct* DrawList, wxDC* DC
|
||||||
{
|
{
|
||||||
switch( DrawItem->Type() )
|
switch( DrawItem->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawLabelStruct*) DrawItem )
|
#define STRUCT ( (SCH_LABEL*) DrawItem )
|
||||||
TestLabelForDangling( STRUCT, this, DC );
|
TestLabelForDangling( STRUCT, this, DC );
|
||||||
break;
|
break;
|
||||||
break;
|
break;
|
||||||
|
@ -155,7 +155,7 @@ LibDrawPin* WinEDA_SchematicFrame::LocatePinEnd( EDA_BaseStruct* DrawList,
|
||||||
* NULL sinon
|
* NULL sinon
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
EDA_SchComponentStruct* DrawLibItem;
|
SCH_COMPONENT* DrawLibItem;
|
||||||
LibDrawPin* Pin;
|
LibDrawPin* Pin;
|
||||||
wxPoint pinpos;
|
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 )
|
WinEDA_SchematicFrame* frame, wxDC* DC )
|
||||||
/********************************************************/
|
/********************************************************/
|
||||||
{
|
{
|
||||||
|
@ -281,7 +281,7 @@ void TestLabelForDangling( DrawTextStruct* label,
|
||||||
|
|
||||||
/****************************************************/
|
/****************************************************/
|
||||||
wxPoint ReturnPinPhysicalPosition( LibDrawPin* Pin,
|
wxPoint ReturnPinPhysicalPosition( LibDrawPin* Pin,
|
||||||
EDA_SchComponentStruct* DrawLibItem )
|
SCH_COMPONENT* DrawLibItem )
|
||||||
/****************************************************/
|
/****************************************************/
|
||||||
|
|
||||||
/* Retourne la position physique de la pin, qui d<>pend de l'orientation
|
/* 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() )
|
switch( DrawItem->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawLabelStruct*) DrawItem )
|
#define STRUCT ( (SCH_LABEL*) DrawItem )
|
||||||
item = new DanglingEndHandle( LABEL_END );
|
item = new DanglingEndHandle( LABEL_END );
|
||||||
|
|
||||||
item->m_Item = DrawItem;
|
item->m_Item = DrawItem;
|
||||||
|
@ -395,15 +395,15 @@ DanglingEndHandle* RebuildEndList( EDA_BaseStruct* DrawList )
|
||||||
lastitem = item;
|
lastitem = item;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
{
|
{
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (EDA_SchComponentStruct*) DrawItem )
|
#define STRUCT ( (SCH_COMPONENT*) DrawItem )
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
Entry = FindLibPart( STRUCT->m_ChipName, wxEmptyString, FIND_ROOT );
|
Entry = FindLibPart( STRUCT->m_ChipName, wxEmptyString, FIND_ROOT );
|
||||||
if( Entry == NULL )
|
if( Entry == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
LibEDA_BaseStruct* DrawLibItem = Entry->m_Drawings;
|
LibEDA_BaseStruct* DrawLibItem = Entry->m_Drawings;
|
||||||
for( ; DrawLibItem != NULL; DrawLibItem = DrawLibItem->Next() )
|
for( ; DrawLibItem != NULL; DrawLibItem = DrawLibItem->Next() )
|
||||||
{
|
{
|
||||||
|
@ -455,7 +455,7 @@ DanglingEndHandle* RebuildEndList( EDA_BaseStruct* DrawList )
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -280,10 +280,10 @@ void WinEDA_SchematicFrame::DeleteConnection( wxDC* DC, bool DeleteFullConnectio
|
||||||
if( DelStruct->m_Flags & STRUCT_DELETED )
|
if( DelStruct->m_Flags & STRUCT_DELETED )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( DelStruct->Type() != DRAW_LABEL_STRUCT_TYPE )
|
if( DelStruct->Type() != TYPE_SCH_LABEL )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
GetScreen()->m_Curseur = ( (DrawTextStruct*) DelStruct )->m_Pos;
|
GetScreen()->m_Curseur = ( (SCH_TEXT*) DelStruct )->m_Pos;
|
||||||
EDA_BaseStruct* TstStruct =
|
EDA_BaseStruct* TstStruct =
|
||||||
PickStruct( GetScreen()->m_Curseur, GetScreen(), WIREITEM | BUSITEM );
|
PickStruct( GetScreen()->m_Curseur, GetScreen(), WIREITEM | BUSITEM );
|
||||||
|
|
||||||
|
|
|
@ -845,7 +845,7 @@ int GenListeCmp( ListComponent* List )
|
||||||
{
|
{
|
||||||
int ItemCount = 0;
|
int ItemCount = 0;
|
||||||
EDA_BaseStruct* DrawList;
|
EDA_BaseStruct* DrawList;
|
||||||
EDA_SchComponentStruct* DrawLibItem;
|
SCH_COMPONENT* DrawLibItem;
|
||||||
DrawSheetPath* sheet;
|
DrawSheetPath* sheet;
|
||||||
|
|
||||||
/* Build the sheet (not screen) list */
|
/* Build the sheet (not screen) list */
|
||||||
|
@ -858,9 +858,9 @@ int GenListeCmp( ListComponent* List )
|
||||||
{
|
{
|
||||||
switch( DrawList->Type() )
|
switch( DrawList->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
ItemCount++;
|
ItemCount++;
|
||||||
DrawLibItem = (EDA_SchComponentStruct*) DrawList;
|
DrawLibItem = (SCH_COMPONENT*) DrawList;
|
||||||
DrawLibItem->m_Parent = sheet->LastScreen();
|
DrawLibItem->m_Parent = sheet->LastScreen();
|
||||||
if( List )
|
if( List )
|
||||||
{
|
{
|
||||||
|
@ -910,8 +910,8 @@ static int GenListeGLabels( ListLabel* List )
|
||||||
{
|
{
|
||||||
switch( DrawList->Type() )
|
switch( DrawList->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
ItemCount++;
|
ItemCount++;
|
||||||
if( List )
|
if( List )
|
||||||
{
|
{
|
||||||
|
@ -1063,12 +1063,12 @@ static int ListTriGLabelByVal( ListLabel* Objet1, ListLabel* Objet2 )
|
||||||
if( Objet1->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE )
|
if( Objet1->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE )
|
||||||
Text1 = &( (DrawSheetLabelStruct*) Objet1->m_Label )->m_Text;
|
Text1 = &( (DrawSheetLabelStruct*) Objet1->m_Label )->m_Text;
|
||||||
else
|
else
|
||||||
Text1 = &( (DrawTextStruct*) Objet1->m_Label )->m_Text;
|
Text1 = &( (SCH_TEXT*) Objet1->m_Label )->m_Text;
|
||||||
|
|
||||||
if( Objet2->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE )
|
if( Objet2->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE )
|
||||||
Text2 = &( (DrawSheetLabelStruct*) Objet2->m_Label )->m_Text;
|
Text2 = &( (DrawSheetLabelStruct*) Objet2->m_Label )->m_Text;
|
||||||
else
|
else
|
||||||
Text2 = &( (DrawTextStruct*) Objet2->m_Label )->m_Text;
|
Text2 = &( (SCH_TEXT*) Objet2->m_Label )->m_Text;
|
||||||
|
|
||||||
ii = Text1->CmpNoCase( *Text2 );
|
ii = Text1->CmpNoCase( *Text2 );
|
||||||
|
|
||||||
|
@ -1102,12 +1102,12 @@ static int ListTriGLabelBySheet( ListLabel* Objet1, ListLabel* Objet2 )
|
||||||
if( Objet1->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE )
|
if( Objet1->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE )
|
||||||
Text1 = &( (DrawSheetLabelStruct*) Objet1->m_Label )->m_Text;
|
Text1 = &( (DrawSheetLabelStruct*) Objet1->m_Label )->m_Text;
|
||||||
else
|
else
|
||||||
Text1 = &( (DrawTextStruct*) Objet1->m_Label )->m_Text;
|
Text1 = &( (SCH_TEXT*) Objet1->m_Label )->m_Text;
|
||||||
|
|
||||||
if( Objet2->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE )
|
if( Objet2->m_LabelType == DRAW_SHEETLABEL_STRUCT_TYPE )
|
||||||
Text2 = &( (DrawSheetLabelStruct*) Objet2->m_Label )->m_Text;
|
Text2 = &( (DrawSheetLabelStruct*) Objet2->m_Label )->m_Text;
|
||||||
else
|
else
|
||||||
Text2 = &( (DrawTextStruct*) Objet2->m_Label )->m_Text;
|
Text2 = &( (SCH_TEXT*) Objet2->m_Label )->m_Text;
|
||||||
|
|
||||||
ii = Text1->CmpNoCase( *Text2 );
|
ii = Text1->CmpNoCase( *Text2 );
|
||||||
}
|
}
|
||||||
|
@ -1125,7 +1125,7 @@ static void DeleteSubCmp( ListComponent* List, int NbItems )
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int ii;
|
int ii;
|
||||||
EDA_SchComponentStruct* LibItem;
|
SCH_COMPONENT* LibItem;
|
||||||
wxString OldName, CurrName;
|
wxString OldName, CurrName;
|
||||||
|
|
||||||
for( ii = 0; ii < NbItems; ii++ )
|
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 )
|
bool CompactForm )
|
||||||
/*******************************************************************************************/
|
/*******************************************************************************************/
|
||||||
{
|
{
|
||||||
|
@ -1198,7 +1198,7 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByRef( FILE* f, ListComponent* List, in
|
||||||
{
|
{
|
||||||
int ii, Multi, Unit;
|
int ii, Multi, Unit;
|
||||||
EDA_BaseStruct* DrawList;
|
EDA_BaseStruct* DrawList;
|
||||||
EDA_SchComponentStruct* DrawLibItem;
|
SCH_COMPONENT* DrawLibItem;
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
char NameCmp[80];
|
char NameCmp[80];
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
@ -1254,10 +1254,10 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByRef( FILE* f, ListComponent* List, in
|
||||||
|
|
||||||
if( DrawList == NULL )
|
if( DrawList == NULL )
|
||||||
continue;
|
continue;
|
||||||
if( DrawList->Type() != DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( DrawList->Type() != TYPE_SCH_COMPONENT )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
DrawLibItem = (EDA_SchComponentStruct*) DrawList;
|
DrawLibItem = (SCH_COMPONENT*) DrawList;
|
||||||
if( List[ii].m_Ref[0] == '#' )
|
if( List[ii].m_Ref[0] == '#' )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -1313,7 +1313,7 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByVal( FILE* f, ListComponent* List, in
|
||||||
int ii, Multi;
|
int ii, Multi;
|
||||||
wxChar Unit;
|
wxChar Unit;
|
||||||
EDA_BaseStruct* DrawList;
|
EDA_BaseStruct* DrawList;
|
||||||
EDA_SchComponentStruct* DrawLibItem;
|
SCH_COMPONENT* DrawLibItem;
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
|
@ -1331,10 +1331,10 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByVal( FILE* f, ListComponent* List, in
|
||||||
|
|
||||||
if( DrawList == NULL )
|
if( DrawList == NULL )
|
||||||
continue;
|
continue;
|
||||||
if( DrawList->Type() != DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( DrawList->Type() != TYPE_SCH_COMPONENT )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
DrawLibItem = (EDA_SchComponentStruct*) DrawList;
|
DrawLibItem = (SCH_COMPONENT*) DrawList;
|
||||||
if( List[ii].m_Ref[0] == '#' )
|
if( List[ii].m_Ref[0] == '#' )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -1354,10 +1354,10 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByVal( FILE* f, ListComponent* List, in
|
||||||
List[ii].m_Ref, Unit );
|
List[ii].m_Ref, Unit );
|
||||||
|
|
||||||
// if( s_ListWithSubCmponents )
|
// if( s_ListWithSubCmponents )
|
||||||
// print the sheet path
|
// print the sheet path
|
||||||
if( m_ListSubCmpItems->GetValue() )
|
if( m_ListSubCmpItems->GetValue() )
|
||||||
{
|
{
|
||||||
msg = List[ii].m_SheetList.PathHumanReadable();
|
msg = List[ii].m_SheetList.PathHumanReadable();
|
||||||
fprintf( f, " (Sheet %s)", CONV_TO_UTF8( msg ) );
|
fprintf( f, " (Sheet %s)", CONV_TO_UTF8( msg ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1377,7 +1377,7 @@ static int PrintListeGLabel( FILE* f, ListLabel* List, int NbItems )
|
||||||
/******************************************************************/
|
/******************************************************************/
|
||||||
{
|
{
|
||||||
int ii, jj;
|
int ii, jj;
|
||||||
DrawLabelStruct* DrawTextItem;
|
SCH_LABEL* DrawTextItem;
|
||||||
DrawSheetLabelStruct* DrawSheetLabel;
|
DrawSheetLabelStruct* DrawSheetLabel;
|
||||||
ListLabel* LabelItem;
|
ListLabel* LabelItem;
|
||||||
wxString msg, sheetpath;
|
wxString msg, sheetpath;
|
||||||
|
@ -1389,14 +1389,14 @@ static int PrintListeGLabel( FILE* f, ListLabel* List, int NbItems )
|
||||||
|
|
||||||
switch( LabelItem->m_LabelType )
|
switch( LabelItem->m_LabelType )
|
||||||
{
|
{
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
DrawTextItem = (DrawLabelStruct*) (LabelItem->m_Label);
|
DrawTextItem = (SCH_LABEL*) (LabelItem->m_Label);
|
||||||
if( LabelItem->m_LabelType == DRAW_HIER_LABEL_STRUCT_TYPE )
|
if( LabelItem->m_LabelType == TYPE_SCH_HIERLABEL )
|
||||||
labeltype = wxT("Hierarchical");
|
labeltype = wxT("Hierarchical");
|
||||||
else
|
else
|
||||||
labeltype = wxT("Global ");
|
labeltype = wxT("Global ");
|
||||||
sheetpath = CONV_FROM_UTF8(LabelItem->m_SheetPath);
|
sheetpath = CONV_FROM_UTF8(LabelItem->m_SheetPath);
|
||||||
msg.Printf(
|
msg.Printf(
|
||||||
_( "> %-28.28s %s (Sheet %s) pos: %3.3f, %3.3f\n" ),
|
_( "> %-28.28s %s (Sheet %s) pos: %3.3f, %3.3f\n" ),
|
||||||
DrawTextItem->m_Text.GetData(),
|
DrawTextItem->m_Text.GetData(),
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: dialog_build_BOM.h
|
// Name: dialog_build_BOM.h
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: jean-pieere Charras
|
// Author: jean-pieere Charras
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 01/15/06 18:18:44
|
// Created: 01/15/06 18:18:44
|
||||||
// RCS-ID:
|
// RCS-ID:
|
||||||
// Copyright: GNU license
|
// Copyright: GNU license
|
||||||
// Licence:
|
// Licence:
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 01/15/06 18:18:44
|
// Generated by DialogBlocks (unregistered), 01/15/06 18:18:44
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class WinEDA_Build_BOM_Frame: public wxDialog
|
class WinEDA_Build_BOM_Frame: public wxDialog
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS( WinEDA_Build_BOM_Frame )
|
DECLARE_DYNAMIC_CLASS( WinEDA_Build_BOM_Frame )
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
|
||||||
|
@ -88,11 +88,11 @@ public:
|
||||||
/// Constructors
|
/// Constructors
|
||||||
WinEDA_Build_BOM_Frame( );
|
WinEDA_Build_BOM_Frame( );
|
||||||
WinEDA_Build_BOM_Frame( WinEDA_DrawFrame* parent,
|
WinEDA_Build_BOM_Frame( WinEDA_DrawFrame* parent,
|
||||||
wxWindowID id = SYMBOL_WINEDA_BUILD_BOM_FRAME_IDNAME,
|
wxWindowID id = SYMBOL_WINEDA_BUILD_BOM_FRAME_IDNAME,
|
||||||
const wxString& caption = SYMBOL_WINEDA_BUILD_BOM_FRAME_TITLE,
|
const wxString& caption = SYMBOL_WINEDA_BUILD_BOM_FRAME_TITLE,
|
||||||
const wxPoint& pos = SYMBOL_WINEDA_BUILD_BOM_FRAME_POSITION,
|
const wxPoint& pos = SYMBOL_WINEDA_BUILD_BOM_FRAME_POSITION,
|
||||||
const wxSize& size = SYMBOL_WINEDA_BUILD_BOM_FRAME_SIZE,
|
const wxSize& size = SYMBOL_WINEDA_BUILD_BOM_FRAME_SIZE,
|
||||||
long style = SYMBOL_WINEDA_BUILD_BOM_FRAME_STYLE );
|
long style = SYMBOL_WINEDA_BUILD_BOM_FRAME_STYLE );
|
||||||
|
|
||||||
/// Creation
|
/// 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 );
|
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
|
////@end WinEDA_Build_BOM_Frame event handler declarations
|
||||||
|
|
||||||
void GenList();
|
void GenList();
|
||||||
|
|
||||||
////@begin WinEDA_Build_BOM_Frame member function declarations
|
////@begin WinEDA_Build_BOM_Frame member function declarations
|
||||||
|
|
||||||
|
@ -129,12 +129,12 @@ public:
|
||||||
/// Retrieves icon resources
|
/// Retrieves icon resources
|
||||||
wxIcon GetIconResource( const wxString& name );
|
wxIcon GetIconResource( const wxString& name );
|
||||||
////@end WinEDA_Build_BOM_Frame member function declarations
|
////@end WinEDA_Build_BOM_Frame member function declarations
|
||||||
void GenereListeOfItems(const wxString & FullFileName);
|
void GenereListeOfItems(const wxString & FullFileName);
|
||||||
void CreateExportList(const wxString & FullFileName);
|
void CreateExportList(const wxString & FullFileName);
|
||||||
int PrintListeCmpByRef( FILE * f, ListComponent * List, int NbItems, bool CompactForm = FALSE );
|
int PrintListeCmpByRef( FILE * f, ListComponent * List, int NbItems, bool CompactForm = FALSE );
|
||||||
int PrintListeCmpByVal( FILE *f, ListComponent * List, int NbItems);
|
int PrintListeCmpByVal( FILE *f, ListComponent * List, int NbItems);
|
||||||
void PrintFieldData(FILE * f, EDA_SchComponentStruct * DrawLibItem, bool CompactForm = FALSE);
|
void PrintFieldData(FILE * f, SCH_COMPONENT * DrawLibItem, bool CompactForm = FALSE);
|
||||||
void SavePreferences();
|
void SavePreferences();
|
||||||
|
|
||||||
|
|
||||||
/// Should we show tooltips?
|
/// Should we show tooltips?
|
||||||
|
@ -161,9 +161,9 @@ public:
|
||||||
wxCheckBox* m_AddField8;
|
wxCheckBox* m_AddField8;
|
||||||
////@end WinEDA_Build_BOM_Frame member variables
|
////@end WinEDA_Build_BOM_Frame member variables
|
||||||
|
|
||||||
WinEDA_DrawFrame * m_Parent;
|
WinEDA_DrawFrame * m_Parent;
|
||||||
wxString m_LibArchiveFileName;
|
wxString m_LibArchiveFileName;
|
||||||
wxString m_ListFileName;
|
wxString m_ListFileName;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: dialog_edit_component_in_schematic.cpp
|
// Name: dialog_edit_component_in_schematic.cpp
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: jean-pierre Charras
|
// Author: jean-pierre Charras
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 03/03/2006 15:02:54
|
// Created: 03/03/2006 15:02:54
|
||||||
// RCS-ID:
|
// RCS-ID:
|
||||||
// Copyright: License GNU
|
// Copyright: License GNU
|
||||||
// Licence:
|
// Licence:
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 03/03/2006 15:02:54
|
// 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
|
////@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()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
@ -54,21 +54,21 @@ WinEDA_ComponentPropertiesFrame::WinEDA_ComponentPropertiesFrame( )
|
||||||
}
|
}
|
||||||
|
|
||||||
WinEDA_ComponentPropertiesFrame::WinEDA_ComponentPropertiesFrame( WinEDA_SchematicFrame* parent,
|
WinEDA_ComponentPropertiesFrame::WinEDA_ComponentPropertiesFrame( WinEDA_SchematicFrame* parent,
|
||||||
EDA_SchComponentStruct * cmp,
|
SCH_COMPONENT * cmp,
|
||||||
wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
|
wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
|
||||||
{
|
{
|
||||||
m_Parent = parent;
|
m_Parent = parent;
|
||||||
m_Cmp = cmp;
|
m_Cmp = cmp;
|
||||||
m_LibEntry = FindLibPart(m_Cmp->m_ChipName.GetData(), wxEmptyString, FIND_ROOT);
|
m_LibEntry = FindLibPart(m_Cmp->m_ChipName.GetData(), wxEmptyString, FIND_ROOT);
|
||||||
|
|
||||||
InitBuffers();
|
InitBuffers();
|
||||||
|
|
||||||
Create(parent, id, caption, pos, size, style);
|
Create(parent, id, caption, pos, size, style);
|
||||||
|
|
||||||
if ( m_LibEntry == NULL )
|
if ( m_LibEntry == NULL )
|
||||||
{
|
{
|
||||||
SetTitle(_("Component properties (Not found in lib)"));
|
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 )
|
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
|
////@begin WinEDA_ComponentPropertiesFrame member initialisation
|
||||||
m_GeneralBoxSizer = NULL;
|
m_GeneralBoxSizer = NULL;
|
||||||
m_NoteBook = NULL;
|
m_NoteBook = NULL;
|
||||||
|
@ -114,9 +114,9 @@ bool WinEDA_ComponentPropertiesFrame::Create( wxWindow* parent, wxWindowID id, c
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void WinEDA_ComponentPropertiesFrame::CreateControls()
|
void WinEDA_ComponentPropertiesFrame::CreateControls()
|
||||||
{
|
{
|
||||||
SetFont(*g_DialogFont);
|
SetFont(*g_DialogFont);
|
||||||
|
|
||||||
////@begin WinEDA_ComponentPropertiesFrame content construction
|
////@begin WinEDA_ComponentPropertiesFrame content construction
|
||||||
// Generated by DialogBlocks, 07/11/2007 08:28:00 (unregistered)
|
// 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);
|
itemBoxSizer23->Add(itemButton26, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||||
|
|
||||||
////@end WinEDA_ComponentPropertiesFrame content construction
|
////@end WinEDA_ComponentPropertiesFrame content construction
|
||||||
BuildPanelBasic();
|
BuildPanelBasic();
|
||||||
BuildPanelFields();
|
BuildPanelFields();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -295,7 +295,7 @@ void WinEDA_ComponentPropertiesFrame::OnCancelClick( wxCommandEvent& event )
|
||||||
|
|
||||||
void WinEDA_ComponentPropertiesFrame::OnRestoreCmpDefaultsClick( 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 )
|
void WinEDA_ComponentPropertiesFrame::OnOkClick( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
ComponentPropertiesAccept(event);
|
ComponentPropertiesAccept(event);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: dialog_edit_component_in_schematic.h
|
// Name: dialog_edit_component_in_schematic.h
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: jean-pierre Charras
|
// Author: jean-pierre Charras
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 03/03/2006 15:02:54
|
// Created: 03/03/2006 15:02:54
|
||||||
// RCS-ID:
|
// RCS-ID:
|
||||||
// Copyright: License GNU
|
// Copyright: License GNU
|
||||||
// Licence:
|
// Licence:
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 03/03/2006 15:02:54
|
// Generated by DialogBlocks (unregistered), 03/03/2006 15:02:54
|
||||||
|
@ -68,7 +68,7 @@ class wxNotebook;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class WinEDA_ComponentPropertiesFrame: public wxDialog
|
class WinEDA_ComponentPropertiesFrame: public wxDialog
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS( WinEDA_ComponentPropertiesFrame )
|
DECLARE_DYNAMIC_CLASS( WinEDA_ComponentPropertiesFrame )
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
|
||||||
|
@ -76,8 +76,8 @@ public:
|
||||||
/// Constructors
|
/// Constructors
|
||||||
WinEDA_ComponentPropertiesFrame( );
|
WinEDA_ComponentPropertiesFrame( );
|
||||||
WinEDA_ComponentPropertiesFrame( WinEDA_SchematicFrame* parent,
|
WinEDA_ComponentPropertiesFrame( WinEDA_SchematicFrame* parent,
|
||||||
EDA_SchComponentStruct * cmp,
|
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 );
|
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
|
/// 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 );
|
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?
|
/// Should we show tooltips?
|
||||||
static bool ShowToolTips();
|
static bool ShowToolTips();
|
||||||
|
|
||||||
void InitBuffers();
|
void InitBuffers();
|
||||||
void BuildPanelBasic();
|
void BuildPanelBasic();
|
||||||
void BuildPanelFields();
|
void BuildPanelFields();
|
||||||
void ComponentPropertiesAccept(wxCommandEvent& event);
|
void ComponentPropertiesAccept(wxCommandEvent& event);
|
||||||
void SetInitCmp( wxCommandEvent& event );
|
void SetInitCmp( wxCommandEvent& event );
|
||||||
void CopyDataToPanelField();
|
void CopyDataToPanelField();
|
||||||
void CopyPanelFieldToData();
|
void CopyPanelFieldToData();
|
||||||
void SelectNewField(wxCommandEvent& event);
|
void SelectNewField(wxCommandEvent& event);
|
||||||
|
|
||||||
////@begin WinEDA_ComponentPropertiesFrame member variables
|
////@begin WinEDA_ComponentPropertiesFrame member variables
|
||||||
wxBoxSizer* m_GeneralBoxSizer;
|
wxBoxSizer* m_GeneralBoxSizer;
|
||||||
|
@ -136,21 +136,21 @@ public:
|
||||||
wxBoxSizer* m_FieldSelectionBoxSizer;
|
wxBoxSizer* m_FieldSelectionBoxSizer;
|
||||||
////@end WinEDA_ComponentPropertiesFrame member variables
|
////@end WinEDA_ComponentPropertiesFrame member variables
|
||||||
|
|
||||||
WinEDA_SchematicFrame * m_Parent;
|
WinEDA_SchematicFrame * m_Parent;
|
||||||
EDA_SchComponentStruct * m_Cmp;
|
SCH_COMPONENT * m_Cmp;
|
||||||
EDA_LibComponentStruct * m_LibEntry;
|
EDA_LibComponentStruct * m_LibEntry;
|
||||||
int m_CurrentFieldId;
|
int m_CurrentFieldId;
|
||||||
|
|
||||||
wxRadioBox * m_FieldSelection;
|
wxRadioBox * m_FieldSelection;
|
||||||
WinEDA_GraphicTextCtrl * m_FieldTextCtrl;
|
WinEDA_GraphicTextCtrl * m_FieldTextCtrl;
|
||||||
WinEDA_EnterText * m_FieldNameCtrl;
|
WinEDA_EnterText * m_FieldNameCtrl;
|
||||||
WinEDA_PositionCtrl * m_FieldPositionCtrl;
|
WinEDA_PositionCtrl * m_FieldPositionCtrl;
|
||||||
wxString m_FieldText[NUMBER_OF_FIELDS];
|
wxString m_FieldText[NUMBER_OF_FIELDS];
|
||||||
wxString m_FieldName[NUMBER_OF_FIELDS];
|
wxString m_FieldName[NUMBER_OF_FIELDS];
|
||||||
wxPoint m_FieldPosition[NUMBER_OF_FIELDS];
|
wxPoint m_FieldPosition[NUMBER_OF_FIELDS];
|
||||||
int m_FieldSize[NUMBER_OF_FIELDS];
|
int m_FieldSize[NUMBER_OF_FIELDS];
|
||||||
int m_FieldFlags[NUMBER_OF_FIELDS];
|
int m_FieldFlags[NUMBER_OF_FIELDS];
|
||||||
int m_FieldOrient[NUMBER_OF_FIELDS];
|
int m_FieldOrient[NUMBER_OF_FIELDS];
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: dialog_edit_label.cpp
|
// Name: dialog_edit_label.cpp
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: jean-pierre Charras
|
// Author: jean-pierre Charras
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 19/02/2006 15:46:26
|
// Created: 19/02/2006 15:46:26
|
||||||
// RCS-ID:
|
// RCS-ID:
|
||||||
// Copyright: License GNU
|
// Copyright: License GNU
|
||||||
// Licence:
|
// Licence:
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 19/02/2006 15:46:26
|
// 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,
|
WinEDA_LabelPropertiesFrame::WinEDA_LabelPropertiesFrame( WinEDA_SchematicFrame* parent,
|
||||||
DrawTextStruct * CurrentText,
|
SCH_TEXT * CurrentText,
|
||||||
const wxPoint& pos,
|
const wxPoint& pos,
|
||||||
wxWindowID id, const wxString& caption, const wxSize& size, long style )
|
wxWindowID id, const wxString& caption, const wxSize& size, long style )
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
m_Parent = parent;
|
m_Parent = parent;
|
||||||
m_CurrentText = CurrentText;
|
m_CurrentText = CurrentText;
|
||||||
Create(parent, id, caption, pos, size, style);
|
Create(parent, id, caption, pos, size, style);
|
||||||
m_TextLabel->SetValue(m_CurrentText->m_Text);
|
m_TextLabel->SetValue(m_CurrentText->m_Text);
|
||||||
m_TextLabel->SetFocus();
|
m_TextLabel->SetFocus();
|
||||||
switch( m_CurrentText->Type() )
|
switch( m_CurrentText->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
SetTitle(_("Global Label properties"));
|
SetTitle(_("Global Label properties"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
|
||||||
SetTitle(_("Hierarchal Label properties"));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
SetTitle(_("Label properties"));
|
SetTitle(_("Hierarchal Label properties"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
case TYPE_SCH_LABEL:
|
||||||
SetTitle(_("Text properties"));
|
SetTitle(_("Label properties"));
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
default:
|
||||||
|
SetTitle(_("Text properties"));
|
||||||
msg = m_SizeTitle->GetLabel() + ReturnUnitSymbol();
|
break;
|
||||||
m_SizeTitle->SetLabel(msg);
|
}
|
||||||
|
|
||||||
msg = ReturnStringFromValue(g_UnitMetric, m_CurrentText->m_Size.x, m_Parent->m_InternalUnits);
|
|
||||||
m_TextSize->SetValue(msg);
|
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()
|
void WinEDA_LabelPropertiesFrame::CreateControls()
|
||||||
{
|
{
|
||||||
SetFont(*g_DialogFont);
|
SetFont(*g_DialogFont);
|
||||||
////@begin WinEDA_LabelPropertiesFrame content construction
|
////@begin WinEDA_LabelPropertiesFrame content construction
|
||||||
// Generated by DialogBlocks, 07/11/2007 12:37:47 (unregistered)
|
// 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) );
|
m_TextShape->SetValidator( wxGenericValidator(& m_CurrentText->m_Shape) );
|
||||||
////@end WinEDA_LabelPropertiesFrame content construction
|
////@end WinEDA_LabelPropertiesFrame content construction
|
||||||
|
|
||||||
if (m_CurrentText->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE ||
|
if (m_CurrentText->Type() == TYPE_SCH_GLOBALLABEL ||
|
||||||
m_CurrentText->Type() == DRAW_HIER_LABEL_STRUCT_TYPE)
|
m_CurrentText->Type() == TYPE_SCH_HIERLABEL)
|
||||||
m_TextShape->Show(true);
|
m_TextShape->Show(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: dialog_edit_label.h
|
// Name: dialog_edit_label.h
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: jean-pierre Charras
|
// Author: jean-pierre Charras
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 19/02/2006 15:46:26
|
// Created: 19/02/2006 15:46:26
|
||||||
// RCS-ID:
|
// RCS-ID:
|
||||||
// Copyright: License GNU
|
// Copyright: License GNU
|
||||||
// Licence:
|
// Licence:
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 19/02/2006 15:46:26
|
// Generated by DialogBlocks (unregistered), 19/02/2006 15:46:26
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class WinEDA_LabelPropertiesFrame: public wxDialog
|
class WinEDA_LabelPropertiesFrame: public wxDialog
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS( WinEDA_LabelPropertiesFrame )
|
DECLARE_DYNAMIC_CLASS( WinEDA_LabelPropertiesFrame )
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
|
||||||
|
@ -68,9 +68,9 @@ public:
|
||||||
/// Constructors
|
/// Constructors
|
||||||
WinEDA_LabelPropertiesFrame( );
|
WinEDA_LabelPropertiesFrame( );
|
||||||
WinEDA_LabelPropertiesFrame( WinEDA_SchematicFrame* parent,
|
WinEDA_LabelPropertiesFrame( WinEDA_SchematicFrame* parent,
|
||||||
DrawTextStruct * CurrentText,
|
SCH_TEXT * CurrentText,
|
||||||
const wxPoint& pos = SYMBOL_WINEDA_LABELPROPERTIESFRAME_POSITION,
|
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 );
|
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
|
/// 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 );
|
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?
|
/// Should we show tooltips?
|
||||||
static bool ShowToolTips();
|
static bool ShowToolTips();
|
||||||
void TextPropertiesAccept(wxCommandEvent& event);
|
void TextPropertiesAccept(wxCommandEvent& event);
|
||||||
|
|
||||||
////@begin WinEDA_LabelPropertiesFrame member variables
|
////@begin WinEDA_LabelPropertiesFrame member variables
|
||||||
wxTextCtrl* m_TextLabel;
|
wxTextCtrl* m_TextLabel;
|
||||||
wxRadioBox* m_TextOrient;
|
wxRadioBox* m_TextOrient;
|
||||||
|
@ -110,7 +110,7 @@ public:
|
||||||
////@end WinEDA_LabelPropertiesFrame member variables
|
////@end WinEDA_LabelPropertiesFrame member variables
|
||||||
|
|
||||||
WinEDA_SchematicFrame * m_Parent;
|
WinEDA_SchematicFrame * m_Parent;
|
||||||
DrawTextStruct * m_CurrentText;
|
SCH_TEXT * m_CurrentText;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -39,14 +39,14 @@ static wxPoint OldPos;
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
|
void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
|
||||||
EDA_SchComponentStruct* cmp )
|
SCH_COMPONENT* cmp )
|
||||||
/*********************************************************************/
|
/*********************************************************************/
|
||||||
|
|
||||||
/* Create the dialog box for the current component edition
|
/* Create the dialog box for the current component edition
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
parent->DrawPanel->m_IgnoreMouseEvents = TRUE;
|
parent->DrawPanel->m_IgnoreMouseEvents = TRUE;
|
||||||
if( cmp->Type() != DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( cmp->Type() != TYPE_SCH_COMPONENT )
|
||||||
{
|
{
|
||||||
DisplayError( parent,
|
DisplayError( parent,
|
||||||
wxT( "InstallCmpeditFrame() error: This struct is not a component" ) );
|
wxT( "InstallCmpeditFrame() error: This struct is not a component" ) );
|
||||||
|
@ -55,7 +55,7 @@ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
|
||||||
{
|
{
|
||||||
WinEDA_ComponentPropertiesFrame* frame =
|
WinEDA_ComponentPropertiesFrame* frame =
|
||||||
new WinEDA_ComponentPropertiesFrame( parent, cmp );
|
new WinEDA_ComponentPropertiesFrame( parent, cmp );
|
||||||
frame->ShowModal();
|
frame->ShowModal();
|
||||||
frame->Destroy();
|
frame->Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,10 +90,10 @@ void WinEDA_ComponentPropertiesFrame::InitBuffers()
|
||||||
for( ii = REFERENCE; ii < NUMBER_OF_FIELDS; ii++ )
|
for( ii = REFERENCE; ii < NUMBER_OF_FIELDS; ii++ )
|
||||||
{
|
{
|
||||||
m_FieldName[ii] = m_Cmp->ReturnFieldName( ii );
|
m_FieldName[ii] = m_Cmp->ReturnFieldName( ii );
|
||||||
if(ii == REFERENCE)
|
if(ii == REFERENCE)
|
||||||
m_FieldText[ii] = m_Cmp->GetRef(m_Parent->GetSheet());
|
m_FieldText[ii] = m_Cmp->GetRef(m_Parent->GetSheet());
|
||||||
else
|
else
|
||||||
m_FieldText[ii] = m_Cmp->m_Field[ii].m_Text;
|
m_FieldText[ii] = m_Cmp->m_Field[ii].m_Text;
|
||||||
m_FieldSize[ii] = m_Cmp->m_Field[ii].m_Size.x;
|
m_FieldSize[ii] = m_Cmp->m_Field[ii].m_Size.x;
|
||||||
m_FieldFlags[ii] =
|
m_FieldFlags[ii] =
|
||||||
(m_Cmp->m_Field[ii].m_Attributs & TEXT_NO_VISIBLE) ? 0 : 1;
|
(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++ ){
|
for( int ii = FIELD1; ii < NUMBER_OF_FIELDS; ii++ ){
|
||||||
m_FieldSelection->SetString( ii, m_FieldName[ii] );
|
m_FieldSelection->SetString( ii, m_FieldName[ii] );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( fieldId == VALUE && m_LibEntry && m_LibEntry->m_Options == ENTRY_POWER )
|
if( fieldId == VALUE && m_LibEntry && m_LibEntry->m_Options == ENTRY_POWER )
|
||||||
m_FieldTextCtrl->Enable( FALSE );
|
m_FieldTextCtrl->Enable( FALSE );
|
||||||
|
@ -394,7 +394,7 @@ void WinEDA_ComponentPropertiesFrame::ComponentPropertiesAccept( wxCommandEvent&
|
||||||
if( ii == REFERENCE ) // la reference ne peut etre vide
|
if( ii == REFERENCE ) // la reference ne peut etre vide
|
||||||
{
|
{
|
||||||
if( !m_FieldText[ii].IsEmpty() )
|
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
|
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_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 );
|
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 );
|
EndModal( 0 );
|
||||||
}
|
}
|
||||||
|
@ -458,9 +458,9 @@ void WinEDA_SchematicFrame::StartMoveCmpField( PartTextStruct* Field, wxDC* DC )
|
||||||
|
|
||||||
wxPoint pos, newpos;
|
wxPoint pos, newpos;
|
||||||
int x1, y1;
|
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();
|
g_ItemToUndoCopy = Cmp->GenCopy();
|
||||||
|
|
||||||
pos = Cmp->m_Pos;
|
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;
|
newpos.y = pos.y + Cmp->m_Transform[0][1] * x1 + Cmp->m_Transform[1][1] * y1;
|
||||||
|
|
||||||
DrawPanel->CursorOff( DC );
|
DrawPanel->CursorOff( DC );
|
||||||
GetScreen()->m_Curseur = newpos;
|
GetScreen()->m_Curseur = newpos;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
|
|
||||||
OldPos = Field->m_Pos;
|
OldPos = Field->m_Pos;
|
||||||
|
@ -519,7 +519,7 @@ void WinEDA_SchematicFrame::EditCmpFieldText( PartTextStruct* Field, wxDC* DC )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
EDA_SchComponentStruct* Cmp = (EDA_SchComponentStruct*) Field->m_Parent;
|
SCH_COMPONENT* Cmp = (SCH_COMPONENT*) Field->m_Parent;
|
||||||
|
|
||||||
FieldNumber = Field->m_FieldId;
|
FieldNumber = Field->m_FieldId;
|
||||||
if( FieldNumber == VALUE )
|
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_Size.x = Field->m_Size.y = TextFieldSize;
|
||||||
}
|
}
|
||||||
Field->m_Text = newtext;
|
Field->m_Text = newtext;
|
||||||
if( FieldNumber == REFERENCE ){
|
if( FieldNumber == REFERENCE ){
|
||||||
Cmp->SetRef(GetSheet(), newtext);
|
Cmp->SetRef(GetSheet(), newtext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else /* Nouveau texte NULL */
|
else /* Nouveau texte NULL */
|
||||||
{
|
{
|
||||||
|
@ -589,7 +589,7 @@ void WinEDA_SchematicFrame::EditCmpFieldText( PartTextStruct* Field, wxDC* DC )
|
||||||
|
|
||||||
DrawTextField( DrawPanel, DC, Field, flag, g_XorMode );
|
DrawTextField( DrawPanel, DC, Field, flag, g_XorMode );
|
||||||
Cmp->Display_Infos( this );
|
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 )
|
if( CurrentField == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
EDA_SchComponentStruct* Cmp = (EDA_SchComponentStruct*) CurrentField->m_Parent;
|
SCH_COMPONENT* Cmp = (SCH_COMPONENT*) CurrentField->m_Parent;
|
||||||
FieldNumber = CurrentField->m_FieldId;
|
FieldNumber = CurrentField->m_FieldId;
|
||||||
|
|
||||||
/* Effacement: */
|
/* Effacement: */
|
||||||
if( erase )
|
if( erase )
|
||||||
DrawTextField( panel, DC, CurrentField, Multiflag, g_XorMode );
|
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
|
/* Les positions sont caculees par la matrice TRANSPOSEE de la matrice
|
||||||
* de rotation-miroir */
|
* de rotation-miroir */
|
||||||
|
@ -642,7 +642,7 @@ static void AbortMoveCmpField( WinEDA_DrawPanel* Panel, wxDC* DC )
|
||||||
DrawTextField( Panel, DC, CurrentField, Multiflag, GR_DEFAULT_DRAWMODE );
|
DrawTextField( Panel, DC, CurrentField, Multiflag, GR_DEFAULT_DRAWMODE );
|
||||||
}
|
}
|
||||||
CurrentField = NULL;
|
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 )
|
if( Field->m_Text == wxEmptyString )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
EDA_SchComponentStruct* Cmp = (EDA_SchComponentStruct*) Field->m_Parent;
|
SCH_COMPONENT* Cmp = (SCH_COMPONENT*) Field->m_Parent;
|
||||||
|
|
||||||
FieldNumber = Field->m_FieldId;
|
FieldNumber = Field->m_FieldId;
|
||||||
flag = 0;
|
flag = 0;
|
||||||
if( FieldNumber == REFERENCE )
|
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 );
|
wxEmptyString, FIND_ROOT );
|
||||||
if( Entry != NULL )
|
if( Entry != NULL )
|
||||||
{
|
{
|
||||||
|
@ -699,13 +699,13 @@ void PartTextStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC )
|
||||||
frame->DrawPanel->ManageCurseur = NULL;
|
frame->DrawPanel->ManageCurseur = NULL;
|
||||||
frame->DrawPanel->ForceCloseManageCurseur = 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 */
|
/* save old cmp in undo list */
|
||||||
if( g_ItemToUndoCopy && ( g_ItemToUndoCopy->Type() == Cmp->Type()) )
|
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 );
|
( (WinEDA_SchematicFrame*) frame )->SaveCopyInUndoList( Cmp, IS_CHANGED );
|
||||||
Cmp->SwapData( (EDA_SchComponentStruct*) g_ItemToUndoCopy );
|
Cmp->SwapData( (SCH_COMPONENT*) g_ItemToUndoCopy );
|
||||||
}
|
}
|
||||||
|
|
||||||
FieldNumber = m_FieldId;
|
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*/
|
/* Edit the component text reference*/
|
||||||
{
|
{
|
||||||
|
@ -747,7 +747,7 @@ void WinEDA_SchematicFrame::EditComponentReference( EDA_SchComponentStruct* Cmp,
|
||||||
if( Entry->m_UnitCount > 1 )
|
if( Entry->m_UnitCount > 1 )
|
||||||
flag = 1;
|
flag = 1;
|
||||||
|
|
||||||
wxString ref = Cmp->GetRef(GetSheet());
|
wxString ref = Cmp->GetRef(GetSheet());
|
||||||
Get_Message( _( "Reference" ), ref, this );
|
Get_Message( _( "Reference" ), ref, this );
|
||||||
|
|
||||||
if( !ref.IsEmpty() ) // New text entered
|
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 ... */
|
/* save old cmp in undo list if not already in edit, or moving ... */
|
||||||
if( Cmp->m_Flags == 0 )
|
if( Cmp->m_Flags == 0 )
|
||||||
SaveCopyInUndoList( Cmp, IS_CHANGED );
|
SaveCopyInUndoList( Cmp, IS_CHANGED );
|
||||||
Cmp->SetRef(GetSheet(), ref);
|
Cmp->SetRef(GetSheet(), ref);
|
||||||
|
|
||||||
DrawTextField( DrawPanel, DC, &Cmp->m_Field[REFERENCE], flag, g_XorMode );
|
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,
|
DrawTextField( DrawPanel, DC, &Cmp->m_Field[REFERENCE], flag,
|
||||||
Cmp->m_Flags ? g_XorMode : GR_DEFAULT_DRAWMODE );
|
Cmp->m_Flags ? g_XorMode : GR_DEFAULT_DRAWMODE );
|
||||||
GetScreen()->SetModify();
|
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 */
|
/* Routine de changement du texte selectionne */
|
||||||
{
|
{
|
||||||
|
@ -789,7 +789,7 @@ void WinEDA_SchematicFrame::EditComponentValue( EDA_SchComponentStruct* Cmp, wxD
|
||||||
|
|
||||||
msg = TextField->m_Text;
|
msg = TextField->m_Text;
|
||||||
if( Get_Message( _( "Value" ), msg, this ) )
|
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())
|
if( !msg.IsEmpty() && !msg.IsEmpty())
|
||||||
{
|
{
|
||||||
|
@ -801,20 +801,20 @@ void WinEDA_SchematicFrame::EditComponentValue( EDA_SchComponentStruct* Cmp, wxD
|
||||||
TextField->m_Text = msg;
|
TextField->m_Text = msg;
|
||||||
DrawTextField( DrawPanel, DC, &Cmp->m_Field[VALUE], flag,
|
DrawTextField( DrawPanel, DC, &Cmp->m_Field[VALUE], flag,
|
||||||
Cmp->m_Flags ? g_XorMode : GR_DEFAULT_DRAWMODE );
|
Cmp->m_Flags ? g_XorMode : GR_DEFAULT_DRAWMODE );
|
||||||
GetScreen()->SetModify();
|
GetScreen()->SetModify();
|
||||||
}
|
}
|
||||||
|
|
||||||
Cmp->Display_Infos( this );
|
Cmp->Display_Infos( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************************/
|
/*****************************************************************************************/
|
||||||
void WinEDA_SchematicFrame::EditComponentFootprint( EDA_SchComponentStruct* Cmp, wxDC* DC )
|
void WinEDA_SchematicFrame::EditComponentFootprint( SCH_COMPONENT* Cmp, wxDC* DC )
|
||||||
/*****************************************************************************************/
|
/*****************************************************************************************/
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
int flag = 0;
|
int flag = 0;
|
||||||
bool wasEmpty = false;
|
bool wasEmpty = false;
|
||||||
|
|
||||||
if( Cmp == NULL )
|
if( Cmp == NULL )
|
||||||
return;
|
return;
|
||||||
|
@ -828,35 +828,35 @@ void WinEDA_SchematicFrame::EditComponentFootprint( EDA_SchComponentStruct* Cmp,
|
||||||
PartTextStruct* TextField = &Cmp->m_Field[FOOTPRINT];
|
PartTextStruct* TextField = &Cmp->m_Field[FOOTPRINT];
|
||||||
|
|
||||||
msg = TextField->m_Text;
|
msg = TextField->m_Text;
|
||||||
if(msg.IsEmpty() )
|
if(msg.IsEmpty() )
|
||||||
wasEmpty = true;
|
wasEmpty = true;
|
||||||
if( Get_Message( _( "Footprint" ), msg, this ) )
|
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 );
|
Cmp->Display_Infos( this );
|
||||||
}
|
}
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -903,7 +903,7 @@ void WinEDA_ComponentPropertiesFrame::SetInitCmp( wxCommandEvent& event )
|
||||||
|
|
||||||
m_Cmp->SetRotationMiroir( CMP_NORMAL );
|
m_Cmp->SetRotationMiroir( CMP_NORMAL );
|
||||||
|
|
||||||
m_Parent->GetScreen()->SetModify();
|
m_Parent->GetScreen()->SetModify();
|
||||||
|
|
||||||
RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, GR_DEFAULT_DRAWMODE );
|
RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, GR_DEFAULT_DRAWMODE );
|
||||||
EndModal( 1 );
|
EndModal( 1 );
|
||||||
|
|
|
@ -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 )
|
if( TextStruct == NULL )
|
||||||
|
@ -87,10 +87,10 @@ void WinEDA_SchematicFrame::StartMoveTexte( DrawTextStruct* TextStruct, wxDC* DC
|
||||||
|
|
||||||
switch( TextStruct->Type() )
|
switch( TextStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
ItemInitialPosition = TextStruct->m_Pos;
|
ItemInitialPosition = TextStruct->m_Pos;
|
||||||
OldSize = TextStruct->m_Size;
|
OldSize = TextStruct->m_Size;
|
||||||
OldOrient = TextStruct->m_Orient;
|
OldOrient = TextStruct->m_Orient;
|
||||||
|
@ -101,13 +101,13 @@ void WinEDA_SchematicFrame::StartMoveTexte( DrawTextStruct* TextStruct, wxDC* DC
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawPanel->CursorOff( DC );
|
DrawPanel->CursorOff( DC );
|
||||||
GetScreen()->m_Curseur = ItemInitialPosition;
|
GetScreen()->m_Curseur = ItemInitialPosition;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
|
|
||||||
GetScreen()->SetModify();
|
GetScreen()->SetModify();
|
||||||
DrawPanel->ManageCurseur = ShowWhileMoving;
|
DrawPanel->ManageCurseur = ShowWhileMoving;
|
||||||
DrawPanel->ForceCloseManageCurseur = ExitMoveTexte;
|
DrawPanel->ForceCloseManageCurseur = ExitMoveTexte;
|
||||||
GetScreen()->SetCurItem( TextStruct );
|
GetScreen()->SetCurItem( TextStruct );
|
||||||
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
|
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
|
||||||
|
|
||||||
DrawPanel->CursorOn( DC );
|
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 )
|
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 )
|
if( TextStruct == NULL )
|
||||||
TextStruct = (DrawTextStruct*) PickStruct( GetScreen()->m_Curseur,
|
TextStruct = (SCH_TEXT*) PickStruct( GetScreen()->m_Curseur,
|
||||||
GetScreen(), TEXTITEM | LABELITEM );
|
GetScreen(), TEXTITEM | LABELITEM );
|
||||||
if( TextStruct == NULL )
|
if( TextStruct == NULL )
|
||||||
return;
|
return;
|
||||||
|
@ -160,10 +160,10 @@ void WinEDA_SchematicFrame::ChangeTextOrient( DrawTextStruct* TextStruct, wxDC*
|
||||||
/* Rotation du texte */
|
/* Rotation du texte */
|
||||||
switch( TextStruct->Type() )
|
switch( TextStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
TextStruct->m_Orient++;
|
TextStruct->m_Orient++;
|
||||||
TextStruct->m_Orient &= 3;
|
TextStruct->m_Orient &= 3;
|
||||||
break;
|
break;
|
||||||
|
@ -187,28 +187,28 @@ EDA_BaseStruct* WinEDA_SchematicFrame::CreateNewText( wxDC* DC, int type )
|
||||||
/* Routine to create new text struct (GraphicText, label or Glabel).
|
/* Routine to create new text struct (GraphicText, label or Glabel).
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
DrawTextStruct* NewText = NULL;
|
SCH_TEXT* NewText = NULL;
|
||||||
|
|
||||||
g_ItemToRepeat = NULL;
|
g_ItemToRepeat = NULL;
|
||||||
|
|
||||||
switch( type )
|
switch( type )
|
||||||
{
|
{
|
||||||
case LAYER_NOTES:
|
case LAYER_NOTES:
|
||||||
NewText = new DrawTextStruct( GetScreen()->m_Curseur );
|
NewText = new SCH_TEXT( GetScreen()->m_Curseur );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LAYER_LOCLABEL:
|
case LAYER_LOCLABEL:
|
||||||
NewText = new DrawLabelStruct( GetScreen()->m_Curseur );
|
NewText = new SCH_LABEL( GetScreen()->m_Curseur );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LAYER_HIERLABEL:
|
case LAYER_HIERLABEL:
|
||||||
NewText = new DrawHierLabelStruct(GetScreen()->m_Curseur );
|
NewText = new SCH_HIERLABEL(GetScreen()->m_Curseur );
|
||||||
NewText->m_Shape = s_DefaultShapeGLabel;
|
NewText->m_Shape = s_DefaultShapeGLabel;
|
||||||
NewText->m_Orient = s_DefaultOrientGLabel;
|
NewText->m_Orient = s_DefaultOrientGLabel;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LAYER_GLOBLABEL:
|
case LAYER_GLOBLABEL:
|
||||||
NewText = new DrawGlobalLabelStruct(GetScreen()->m_Curseur );
|
NewText = new SCH_GLOBALLABEL(GetScreen()->m_Curseur );
|
||||||
NewText->m_Shape = s_DefaultShapeGLabel;
|
NewText->m_Shape = s_DefaultShapeGLabel;
|
||||||
NewText->m_Orient = s_DefaultOrientGLabel;
|
NewText->m_Orient = s_DefaultOrientGLabel;
|
||||||
break;
|
break;
|
||||||
|
@ -226,11 +226,11 @@ EDA_BaseStruct* WinEDA_SchematicFrame::CreateNewText( wxDC* DC, int type )
|
||||||
|
|
||||||
if( NewText->m_Text.IsEmpty() )
|
if( NewText->m_Text.IsEmpty() )
|
||||||
{
|
{
|
||||||
SAFE_DELETE( NewText );
|
SAFE_DELETE( NewText );
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( type == LAYER_GLOBLABEL || type == LAYER_HIERLABEL)
|
if( type == LAYER_GLOBLABEL || type == LAYER_HIERLABEL)
|
||||||
{
|
{
|
||||||
s_DefaultShapeGLabel = NewText->m_Shape;
|
s_DefaultShapeGLabel = NewText->m_Shape;
|
||||||
s_DefaultOrientGLabel = NewText->m_Orient;
|
s_DefaultOrientGLabel = NewText->m_Orient;
|
||||||
|
@ -240,7 +240,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::CreateNewText( wxDC* DC, int type )
|
||||||
DrawPanel->ManageCurseur = ShowWhileMoving;
|
DrawPanel->ManageCurseur = ShowWhileMoving;
|
||||||
DrawPanel->ForceCloseManageCurseur = ExitMoveTexte;
|
DrawPanel->ForceCloseManageCurseur = ExitMoveTexte;
|
||||||
|
|
||||||
GetScreen()->SetCurItem( NewText );
|
GetScreen()->SetCurItem( NewText );
|
||||||
|
|
||||||
return NewText;
|
return NewText;
|
||||||
}
|
}
|
||||||
|
@ -260,11 +260,11 @@ static void ShowWhileMoving( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
||||||
/* redraw the text */
|
/* redraw the text */
|
||||||
switch( TextStruct->Type() )
|
switch( TextStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
( (DrawTextStruct*) TextStruct )->m_Pos = panel->GetScreen()->m_Curseur;
|
( (SCH_TEXT*) TextStruct )->m_Pos = panel->GetScreen()->m_Curseur;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -297,19 +297,19 @@ static void ExitMoveTexte( WinEDA_DrawPanel* Panel, wxDC* DC )
|
||||||
|
|
||||||
if( Struct->m_Flags & IS_NEW )
|
if( Struct->m_Flags & IS_NEW )
|
||||||
{
|
{
|
||||||
SAFE_DELETE( Struct );
|
SAFE_DELETE( Struct );
|
||||||
screen->SetCurItem( NULL );
|
screen->SetCurItem( NULL );
|
||||||
}
|
}
|
||||||
else /* this was a move command on an "old" text: restore its old settings. */
|
else /* this was a move command on an "old" text: restore its old settings. */
|
||||||
{
|
{
|
||||||
switch( Struct->Type() )
|
switch( Struct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
{
|
{
|
||||||
DrawTextStruct* Text = (DrawTextStruct*) Struct;
|
SCH_TEXT* Text = (SCH_TEXT*) Struct;
|
||||||
Text->m_Pos = ItemInitialPosition;
|
Text->m_Pos = ItemInitialPosition;
|
||||||
Text->m_Size = OldSize;
|
Text->m_Size = OldSize;
|
||||||
Text->m_Orient = OldOrient;
|
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 )
|
wxDC* DC, int newtype )
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
@ -339,22 +339,22 @@ void WinEDA_SchematicFrame::ConvertTextType( DrawTextStruct* Text,
|
||||||
if( Text == NULL )
|
if( Text == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DrawTextStruct* newtext;
|
SCH_TEXT* newtext;
|
||||||
|
|
||||||
switch( newtype )
|
switch( newtype )
|
||||||
{
|
{
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
newtext = new DrawLabelStruct( Text->m_Pos, Text->m_Text );
|
newtext = new SCH_LABEL( Text->m_Pos, Text->m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
newtext = new DrawGlobalLabelStruct(Text->m_Pos, Text->m_Text );
|
newtext = new SCH_GLOBALLABEL(Text->m_Pos, Text->m_Text );
|
||||||
break;
|
break;
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
newtext = new DrawHierLabelStruct(Text->m_Pos, Text->m_Text );
|
newtext = new SCH_HIERLABEL(Text->m_Pos, Text->m_Text );
|
||||||
break;
|
break;
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
newtext = new DrawTextStruct( Text->m_Pos, Text->m_Text );
|
newtext = new SCH_TEXT( Text->m_Pos, Text->m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -395,13 +395,13 @@ void WinEDA_SchematicFrame::ConvertTextType( DrawTextStruct* Text,
|
||||||
{
|
{
|
||||||
Text->m_Flags = 0;
|
Text->m_Flags = 0;
|
||||||
DeleteStruct( DrawPanel, DC, Text ); // old text is really saved in undo list
|
DeleteStruct( DrawPanel, DC, Text ); // old text is really saved in undo list
|
||||||
GetScreen()->SetCurItem( NULL );
|
GetScreen()->SetCurItem( NULL );
|
||||||
g_ItemToRepeat = NULL;
|
g_ItemToRepeat = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
GetScreen()->SetCurItem( NULL );
|
GetScreen()->SetCurItem( NULL );
|
||||||
|
|
||||||
SAFE_DELETE( g_ItemToUndoCopy );
|
SAFE_DELETE( g_ItemToUndoCopy );
|
||||||
|
|
||||||
DrawPanel->CursorOff( DC ); // Erase schematic cursor
|
DrawPanel->CursorOff( DC ); // Erase schematic cursor
|
||||||
|
|
||||||
|
@ -415,15 +415,15 @@ void WinEDA_SchematicFrame::ConvertTextType( DrawTextStruct* Text,
|
||||||
SaveCopyInUndoList( newtext, IS_NEW );
|
SaveCopyInUndoList( newtext, IS_NEW );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GetScreen()->SetCurItem( newtext );
|
GetScreen()->SetCurItem( newtext );
|
||||||
newtext->m_Flags = IS_NEW;
|
newtext->m_Flags = IS_NEW;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if( (flags & IS_MOVED) != 0 )
|
if( (flags & IS_MOVED) != 0 )
|
||||||
{
|
{
|
||||||
GetScreen()->SetCurItem( newtext );
|
GetScreen()->SetCurItem( newtext );
|
||||||
StartMoveTexte( newtext, DC );
|
StartMoveTexte( newtext, DC );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -376,9 +376,9 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC )
|
||||||
STRUCT->m_Pos.y += g_RepeatStep.y; oy = STRUCT->m_Pos.y;
|
STRUCT->m_Pos.y += g_RepeatStep.y; oy = STRUCT->m_Pos.y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawTextStruct*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_TEXT*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
STRUCT->m_Pos.x += g_RepeatStep.x; ox = STRUCT->m_Pos.x;
|
STRUCT->m_Pos.x += g_RepeatStep.x; ox = STRUCT->m_Pos.x;
|
||||||
STRUCT->m_Pos.y += g_RepeatStep.y; oy = STRUCT->m_Pos.y;
|
STRUCT->m_Pos.y += g_RepeatStep.y; oy = STRUCT->m_Pos.y;
|
||||||
|
@ -389,11 +389,11 @@ void WinEDA_SchematicFrame::RepeatDrawItem( wxDC* DC )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawLabelStruct*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_LABEL*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
STRUCT->m_Pos.x += g_RepeatStep.x; ox = STRUCT->m_Pos.x;
|
STRUCT->m_Pos.x += g_RepeatStep.x; ox = STRUCT->m_Pos.x;
|
||||||
STRUCT->m_Pos.y += g_RepeatStep.y; oy = STRUCT->m_Pos.y;
|
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
|
* - une jonction
|
||||||
* - ou une pin
|
* - ou une pin
|
||||||
* - ou une extr<EFBFBD>mit<EFBFBD> unique de fil
|
* - ou une extr<EFBFBD>mit<EFBFBD> unique de fil
|
||||||
*
|
*
|
||||||
* - type BUS, si il y a
|
* - type BUS, si il y a
|
||||||
* - ou une extr<EFBFBD>mit<EFBFBD> unique de BUS
|
* - ou une extr<EFBFBD>mit<EFBFBD> unique de BUS
|
||||||
*/
|
*/
|
||||||
|
@ -528,9 +528,9 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer )
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
item = PickStruct( screen, LABELITEM );
|
item = PickStruct( screen, LABELITEM );
|
||||||
if( item && (item->Type() != DRAW_TEXT_STRUCT_TYPE)
|
if( item && (item->Type() != TYPE_SCH_TEXT)
|
||||||
&& ( ( (DrawGlobalLabelStruct*) item )->m_Pos.x == pos.x )
|
&& ( ( (SCH_GLOBALLABEL*) item )->m_Pos.x == pos.x )
|
||||||
&& ( ( (DrawGlobalLabelStruct*) item )->m_Pos.y == pos.y ) )
|
&& ( ( (SCH_GLOBALLABEL*) item )->m_Pos.y == pos.y ) )
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
pinsheet = LocateAnyPinSheet( pos, screen->EEDrawList );
|
pinsheet = LocateAnyPinSheet( pos, screen->EEDrawList );
|
||||||
|
|
|
@ -40,7 +40,7 @@ static int s_ItemSelectColor = BROWN;
|
||||||
static EDA_LibComponentStruct* DummyCmp;
|
static EDA_LibComponentStruct* DummyCmp;
|
||||||
static int* Buf_Poly_Drawings, Buf_Poly_Size; // Used fo polyline drawings
|
static int* Buf_Poly_Drawings, Buf_Poly_Size; // Used fo polyline drawings
|
||||||
static void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC,
|
static void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
EDA_SchComponentStruct* Component,
|
SCH_COMPONENT* Component,
|
||||||
EDA_LibComponentStruct* Entry,
|
EDA_LibComponentStruct* Entry,
|
||||||
const wxPoint& Pos,
|
const wxPoint& Pos,
|
||||||
int TransMat[2][2],
|
int TransMat[2][2],
|
||||||
|
@ -82,9 +82,9 @@ void DrawLibEntry( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
* posX, posY = position du composant
|
* posX, posY = position du composant
|
||||||
* DrawMode = GrOR ..
|
* DrawMode = GrOR ..
|
||||||
* Color = 0 : dessin en vraies couleurs, sinon couleur = Color
|
* Color = 0 : dessin en vraies couleurs, sinon couleur = Color
|
||||||
*
|
*
|
||||||
* Une croix symbolise le point d'accrochage (ref position) du composant
|
* Une croix symbolise le point d'accrochage (ref position) du composant
|
||||||
*
|
*
|
||||||
* Le composant est toujours trace avec orientation 0
|
* 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 *
|
* Routine to draw the given part at given position, transformed/mirror as *
|
||||||
* specified, and in the given drawing mode. Only this one is visible... *
|
* 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 )
|
const wxPoint& offset, int DrawMode, int Color )
|
||||||
{
|
{
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
|
@ -262,7 +262,7 @@ void DrawTextField( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
{
|
{
|
||||||
int orient, color;
|
int orient, color;
|
||||||
wxPoint pos; /* Position des textes */
|
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 hjustify, vjustify;
|
||||||
int LineWidth = MAX( Field->m_Width, g_DrawMinimunLineWidth );
|
int LineWidth = MAX( Field->m_Width, g_DrawMinimunLineWidth );
|
||||||
|
|
||||||
|
@ -357,30 +357,30 @@ EDA_LibComponentStruct* FindLibPart( const wxChar* Name, const wxString& LibName
|
||||||
|
|
||||||
PQCompFunc( (PQCompFuncType) LibraryEntryCompare );
|
PQCompFunc( (PQCompFuncType) LibraryEntryCompare );
|
||||||
|
|
||||||
Entry = NULL;
|
Entry = NULL;
|
||||||
FindLibName.Empty();
|
FindLibName.Empty();
|
||||||
|
|
||||||
while( Lib )
|
while( Lib )
|
||||||
{
|
{
|
||||||
if( !LibName.IsEmpty() )
|
if( !LibName.IsEmpty() )
|
||||||
{
|
{
|
||||||
if( Lib->m_Name != LibName )
|
if( Lib->m_Name != LibName )
|
||||||
{
|
{
|
||||||
Lib = Lib->m_Pnext;
|
Lib = Lib->m_Pnext;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Lib == NULL )
|
if( Lib == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Entry = (EDA_LibComponentStruct*) PQFind( Lib->m_Entries, &DummyEntry );
|
Entry = (EDA_LibComponentStruct*) PQFind( Lib->m_Entries, &DummyEntry );
|
||||||
if( Entry != NULL )
|
if( Entry != NULL )
|
||||||
{
|
{
|
||||||
FindLibName = Lib->m_Name;
|
FindLibName = Lib->m_Name;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Lib = Lib->m_Pnext;
|
Lib = Lib->m_Pnext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -404,7 +404,7 @@ EDA_LibComponentStruct* FindLibPart( const wxChar* Name, const wxString& LibName
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
/* DrawMode = GrXOR, GrOR ..*/
|
/* DrawMode = GrXOR, GrOR ..*/
|
||||||
void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC,
|
void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
EDA_SchComponentStruct* Component,
|
SCH_COMPONENT* Component,
|
||||||
EDA_LibComponentStruct* Entry,
|
EDA_LibComponentStruct* Entry,
|
||||||
const wxPoint& Pos,
|
const wxPoint& Pos,
|
||||||
int TransMat[2][2],
|
int TransMat[2][2],
|
||||||
|
@ -431,13 +431,13 @@ void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
/* Elimination des elements non relatifs a l'unite */
|
/* Elimination des elements non relatifs a l'unite */
|
||||||
if( Multi && DEntry->m_Unit && (DEntry->m_Unit != Multi) )
|
if( Multi && DEntry->m_Unit && (DEntry->m_Unit != Multi) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( convert && DEntry->m_Convert && (DEntry->m_Convert != convert) )
|
if( convert && DEntry->m_Convert && (DEntry->m_Convert != convert) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( DEntry->m_Flags & IS_MOVED )
|
if( DEntry->m_Flags & IS_MOVED )
|
||||||
continue; // Element en deplacement non trace
|
continue; // Element en deplacement non trace
|
||||||
|
|
||||||
SetHightColor = (DEntry->m_Selected & IS_SELECTED) ? HIGHT_LIGHT_FLAG : 0;
|
SetHightColor = (DEntry->m_Selected & IS_SELECTED) ? HIGHT_LIGHT_FLAG : 0;
|
||||||
LineWidth = MAX( DEntry->m_Width, g_DrawMinimunLineWidth );
|
LineWidth = MAX( DEntry->m_Width, g_DrawMinimunLineWidth );
|
||||||
|
|
||||||
|
@ -502,12 +502,12 @@ void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
{
|
{
|
||||||
LibDrawCircle* Circle = (LibDrawCircle*) DEntry;
|
LibDrawCircle* Circle = (LibDrawCircle*) DEntry;
|
||||||
CharColor = GETCOLOR( LAYER_DEVICE );
|
CharColor = GETCOLOR( LAYER_DEVICE );
|
||||||
|
|
||||||
x1 = Pos.x + TransMat[0][0] * Circle->m_Pos.x +
|
x1 = Pos.x + TransMat[0][0] * Circle->m_Pos.x +
|
||||||
TransMat[0][1] * Circle->m_Pos.y;
|
TransMat[0][1] * Circle->m_Pos.y;
|
||||||
y1 = Pos.y + TransMat[1][0] * Circle->m_Pos.x +
|
y1 = Pos.y + TransMat[1][0] * Circle->m_Pos.x +
|
||||||
TransMat[1][1] * Circle->m_Pos.y;
|
TransMat[1][1] * Circle->m_Pos.y;
|
||||||
|
|
||||||
fill_option = Circle->m_Fill & (~g_PrintFillMask);
|
fill_option = Circle->m_Fill & (~g_PrintFillMask);
|
||||||
if( Color < 0 )
|
if( Color < 0 )
|
||||||
{
|
{
|
||||||
|
@ -536,12 +536,12 @@ void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
/* The text orientation may need to be flipped if the
|
/* The text orientation may need to be flipped if the
|
||||||
* transformation matrix cuases xy axes to be flipped. */
|
* transformation matrix cuases xy axes to be flipped. */
|
||||||
t1 = (TransMat[0][0] != 0) ^ (Text->m_Horiz != 0);
|
t1 = (TransMat[0][0] != 0) ^ (Text->m_Horiz != 0);
|
||||||
|
|
||||||
x1 = Pos.x + TransMat[0][0] * Text->m_Pos.x
|
x1 = Pos.x + TransMat[0][0] * Text->m_Pos.x
|
||||||
+ TransMat[0][1] * Text->m_Pos.y;
|
+ TransMat[0][1] * Text->m_Pos.y;
|
||||||
y1 = Pos.y + TransMat[1][0] * Text->m_Pos.x
|
y1 = Pos.y + TransMat[1][0] * Text->m_Pos.x
|
||||||
+ TransMat[1][1] * Text->m_Pos.y;
|
+ TransMat[1][1] * Text->m_Pos.y;
|
||||||
|
|
||||||
DrawGraphicText( panel, DC, wxPoint( x1, y1 ), CharColor, Text->m_Text,
|
DrawGraphicText( panel, DC, wxPoint( x1, y1 ), CharColor, Text->m_Text,
|
||||||
t1 ? TEXT_ORIENT_HORIZ : TEXT_ORIENT_VERT,
|
t1 ? TEXT_ORIENT_HORIZ : TEXT_ORIENT_VERT,
|
||||||
Text->m_Size,
|
Text->m_Size,
|
||||||
|
@ -591,7 +591,7 @@ void DrawLibPartAux( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
&&*/ !g_ShowAllPins )
|
&&*/ !g_ShowAllPins )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Calcul de l'orientation reelle de la Pin */
|
/* Calcul de l'orientation reelle de la Pin */
|
||||||
orient = Pin->ReturnPinDrawOrient( TransMat );
|
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,
|
void DrawingLibInGhost( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
EDA_LibComponentStruct* LibEntry,
|
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 multi, int convert, int Color, bool DrawPinText )
|
||||||
{
|
{
|
||||||
int DrawMode = g_XorMode;
|
int DrawMode = g_XorMode;
|
||||||
|
|
|
@ -459,22 +459,22 @@ void DrawStructsInGhost( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
{
|
{
|
||||||
DrawTextStruct* Struct;
|
SCH_TEXT* Struct;
|
||||||
Struct = (DrawTextStruct*) DrawStruct;
|
Struct = (SCH_TEXT*) DrawStruct;
|
||||||
Struct->m_Pos.x += dx; Struct->m_Pos.y += dy;
|
Struct->m_Pos.x += dx; Struct->m_Pos.y += dy;
|
||||||
Struct->Draw( panel, DC, wxPoint( 0, 0 ), DrawMode, g_GhostColor );
|
Struct->Draw( panel, DC, wxPoint( 0, 0 ), DrawMode, g_GhostColor );
|
||||||
Struct->m_Pos.x -= dx; Struct->m_Pos.y -= dy;
|
Struct->m_Pos.x -= dx; Struct->m_Pos.y -= dy;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
{
|
{
|
||||||
DrawLabelStruct* Struct;
|
SCH_LABEL* Struct;
|
||||||
Struct = (DrawLabelStruct*) DrawStruct;
|
Struct = (SCH_LABEL*) DrawStruct;
|
||||||
Struct->m_Pos.x += dx; Struct->m_Pos.y += dy;
|
Struct->m_Pos.x += dx; Struct->m_Pos.y += dy;
|
||||||
Struct->Draw( panel, DC, wxPoint( 0, 0 ), DrawMode, g_GhostColor );
|
Struct->Draw( panel, DC, wxPoint( 0, 0 ), DrawMode, g_GhostColor );
|
||||||
Struct->m_Pos.x -= dx; Struct->m_Pos.y -= dy;
|
Struct->m_Pos.x -= dx; Struct->m_Pos.y -= dy;
|
||||||
|
@ -491,11 +491,11 @@ void DrawStructsInGhost( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
{
|
{
|
||||||
EDA_LibComponentStruct* LibEntry;
|
EDA_LibComponentStruct* LibEntry;
|
||||||
EDA_SchComponentStruct* Struct;
|
SCH_COMPONENT* Struct;
|
||||||
Struct = (EDA_SchComponentStruct*) DrawStruct;
|
Struct = (SCH_COMPONENT*) DrawStruct;
|
||||||
LibEntry = FindLibPart( Struct->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
|
LibEntry = FindLibPart( Struct->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
|
||||||
if( LibEntry == NULL )
|
if( LibEntry == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -52,11 +52,11 @@ void WinEDA_SchematicFrame::Save_File( wxCommandEvent& event )
|
||||||
//bool WinEDA_SchematicFrame::LoadOneSheet(DrawSheetStruct* sheet, const wxString& filename )
|
//bool WinEDA_SchematicFrame::LoadOneSheet(DrawSheetStruct* sheet, const wxString& filename )
|
||||||
/******************************************************************************************/
|
/******************************************************************************************/
|
||||||
//{
|
//{
|
||||||
// return FALSE;
|
// return FALSE;
|
||||||
//when is this used? and why?
|
//when is this used? and why?
|
||||||
/*
|
/*
|
||||||
//this must be called with a non-null pointer screen pointer, clearly.
|
//this must be called with a non-null pointer screen pointer, clearly.
|
||||||
//also note that this is for reading in a *root* file
|
//also note that this is for reading in a *root* file
|
||||||
wxString FullFileName = filename;
|
wxString FullFileName = filename;
|
||||||
|
|
||||||
if( FullFileName.IsEmpty() )
|
if( FullFileName.IsEmpty() )
|
||||||
|
@ -65,7 +65,7 @@ void WinEDA_SchematicFrame::Save_File( wxCommandEvent& event )
|
||||||
mask = wxT( "*" ) + g_SchExtBuffer;
|
mask = wxT( "*" ) + g_SchExtBuffer;
|
||||||
FullFileName = EDA_FileSelector( _( "Schematic files:" ),
|
FullFileName = EDA_FileSelector( _( "Schematic files:" ),
|
||||||
wxEmptyString, //default path
|
wxEmptyString, //default path
|
||||||
sheet->m_AssociatedScreen->m_FileName,// default filename
|
sheet->m_AssociatedScreen->m_FileName,// default filename
|
||||||
g_SchExtBuffer, // extension par defaut
|
g_SchExtBuffer, // extension par defaut
|
||||||
mask, // Masque d'affichage
|
mask, // Masque d'affichage
|
||||||
this,
|
this,
|
||||||
|
@ -77,180 +77,180 @@ void WinEDA_SchematicFrame::Save_File( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
|
|
||||||
ClearProjectDrawList( screen, TRUE );
|
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;
|
screen->m_FileName = FullFileName;
|
||||||
LoadDrawSheet( DrawSheetStruct * sheet, filename);
|
LoadDrawSheet( DrawSheetStruct * sheet, filename);
|
||||||
screen->SetModify();
|
screen->SetModify();
|
||||||
|
|
||||||
if( GetScreen() == screen )
|
if( GetScreen() == screen )
|
||||||
Refresh( TRUE );
|
Refresh( TRUE );
|
||||||
return TRUE;
|
return TRUE;
|
||||||
*/
|
*/
|
||||||
//}
|
//}
|
||||||
|
|
||||||
/************************************************************************************/
|
/************************************************************************************/
|
||||||
int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsNew )
|
int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsNew )
|
||||||
/************************************************************************************/
|
/************************************************************************************/
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Load an entire project
|
* Load an entire project
|
||||||
* ( schematic root file and its subhierarchies, the configuration and the libs
|
* ( schematic root file and its subhierarchies, the configuration and the libs
|
||||||
* which are not already loaded)
|
* which are not already loaded)
|
||||||
*/
|
*/
|
||||||
SCH_SCREEN* screen;
|
SCH_SCREEN* screen;
|
||||||
wxString FullFileName, msg;
|
wxString FullFileName, msg;
|
||||||
bool LibCacheExist = FALSE;
|
bool LibCacheExist = FALSE;
|
||||||
|
|
||||||
EDA_ScreenList ScreenList;
|
EDA_ScreenList ScreenList;
|
||||||
|
|
||||||
for( screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
|
for( screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
|
||||||
{
|
{
|
||||||
if( screen->IsModify() )
|
if( screen->IsModify() )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( screen )
|
if( screen )
|
||||||
{
|
{
|
||||||
if( !IsOK( this, _( "Clear Schematic Hierarchy (modified!)?" ) ) )
|
if( !IsOK( this, _( "Clear Schematic Hierarchy (modified!)?" ) ) )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if( g_RootSheet->m_AssociatedScreen->m_FileName != g_DefaultSchematicFileName )
|
if( g_RootSheet->m_AssociatedScreen->m_FileName != g_DefaultSchematicFileName )
|
||||||
SetLastProject( g_RootSheet->m_AssociatedScreen->m_FileName );
|
SetLastProject( g_RootSheet->m_AssociatedScreen->m_FileName );
|
||||||
}
|
}
|
||||||
|
|
||||||
FullFileName = FileName;
|
FullFileName = FileName;
|
||||||
if( ( FullFileName.IsEmpty() ) && !IsNew )
|
if( ( FullFileName.IsEmpty() ) && !IsNew )
|
||||||
{
|
{
|
||||||
wxString mask = wxT( "*" ) + g_SchExtBuffer;
|
wxString mask = wxT( "*" ) + g_SchExtBuffer;
|
||||||
FullFileName = EDA_FileSelector( _( "Schematic files:" ),
|
FullFileName = EDA_FileSelector( _( "Schematic files:" ),
|
||||||
wxEmptyString, /* Chemin par defaut */
|
wxEmptyString, /* Chemin par defaut */
|
||||||
wxEmptyString, /* nom fichier par defaut */
|
wxEmptyString, /* nom fichier par defaut */
|
||||||
g_SchExtBuffer, /* extension par defaut */
|
g_SchExtBuffer, /* extension par defaut */
|
||||||
mask, /* Masque d'affichage */
|
mask, /* Masque d'affichage */
|
||||||
this,
|
this,
|
||||||
wxFD_OPEN,
|
wxFD_OPEN,
|
||||||
TRUE
|
TRUE
|
||||||
);
|
);
|
||||||
if( FullFileName.IsEmpty() )
|
if( FullFileName.IsEmpty() )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if(g_RootSheet){
|
if(g_RootSheet){
|
||||||
SAFE_DELETE(g_RootSheet);
|
SAFE_DELETE(g_RootSheet);
|
||||||
}
|
}
|
||||||
CreateScreens();
|
CreateScreens();
|
||||||
screen = (SCH_SCREEN*)GetScreen();
|
screen = (SCH_SCREEN*)GetScreen();
|
||||||
|
|
||||||
wxSetWorkingDirectory( wxPathOnly( FullFileName ) );
|
|
||||||
GetScreen()->m_FileName = FullFileName;
|
|
||||||
g_RootSheet->SetFileName(FullFileName);
|
|
||||||
Affiche_Message( wxEmptyString );
|
|
||||||
MsgPanel->EraseMsgBox();
|
|
||||||
|
|
||||||
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();
|
memset( &g_EESchemaVar, 0, sizeof(g_EESchemaVar) );
|
||||||
//m_CurrentSheet->m_AssociatedScreen->Pnext = NULL; should be by default
|
|
||||||
|
|
||||||
if( IsNew )
|
GetScreen()->ClrModify();
|
||||||
{
|
//m_CurrentSheet->m_AssociatedScreen->Pnext = NULL; should be by default
|
||||||
screen->m_CurrentSheetDesc = &g_Sheet_A4;
|
|
||||||
screen->SetZoom( 32 );
|
if( IsNew )
|
||||||
screen->m_ScreenNumber = screen->m_NumberOfScreen = 1;
|
{
|
||||||
screen->m_Title = wxT( "noname.sch" );
|
screen->m_CurrentSheetDesc = &g_Sheet_A4;
|
||||||
GetScreen()->m_FileName = screen->m_Title;
|
screen->SetZoom( 32 );
|
||||||
screen->m_Company.Empty();
|
screen->m_ScreenNumber = screen->m_NumberOfScreen = 1;
|
||||||
screen->m_Commentaire1.Empty();
|
screen->m_Title = wxT( "noname.sch" );
|
||||||
screen->m_Commentaire2.Empty();
|
GetScreen()->m_FileName = screen->m_Title;
|
||||||
screen->m_Commentaire3.Empty();
|
screen->m_Company.Empty();
|
||||||
screen->m_Commentaire4.Empty();
|
screen->m_Commentaire1.Empty();
|
||||||
Read_Config( wxEmptyString, TRUE );
|
screen->m_Commentaire2.Empty();
|
||||||
Zoom_Automatique( TRUE );
|
screen->m_Commentaire3.Empty();
|
||||||
ReDrawPanel();
|
screen->m_Commentaire4.Empty();
|
||||||
return 1;
|
Read_Config( wxEmptyString, TRUE );
|
||||||
}
|
Zoom_Automatique( TRUE );
|
||||||
|
ReDrawPanel();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Rechargement de la configuration:
|
// Rechargement de la configuration:
|
||||||
msg = _( "Ready\nWorking dir: \n" ) + wxGetCwd();
|
msg = _( "Ready\nWorking dir: \n" ) + wxGetCwd();
|
||||||
PrintMsg( msg );
|
PrintMsg( msg );
|
||||||
|
|
||||||
Read_Config( wxEmptyString, FALSE );
|
Read_Config( wxEmptyString, FALSE );
|
||||||
|
|
||||||
// Delete old caches.
|
// Delete old caches.
|
||||||
LibraryStruct* nextlib, * lib = g_LibraryList;
|
LibraryStruct* nextlib, * lib = g_LibraryList;
|
||||||
for( ; lib != NULL; lib = nextlib )
|
for( ; lib != NULL; lib = nextlib )
|
||||||
{
|
{
|
||||||
nextlib = lib->m_Pnext;
|
nextlib = lib->m_Pnext;
|
||||||
if( lib->m_IsLibCache )
|
if( lib->m_IsLibCache )
|
||||||
FreeCmpLibrary( this, lib->m_Name );
|
FreeCmpLibrary( this, lib->m_Name );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( IsNew )
|
if( IsNew )
|
||||||
{
|
{
|
||||||
ReDrawPanel();
|
ReDrawPanel();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Loading the project library cache
|
// Loading the project library cache
|
||||||
wxString FullLibName;
|
wxString FullLibName;
|
||||||
wxString shortfilename;
|
wxString shortfilename;
|
||||||
wxSplitPath( g_RootSheet->m_AssociatedScreen->m_FileName, NULL, &shortfilename, NULL );
|
wxSplitPath( g_RootSheet->m_AssociatedScreen->m_FileName, NULL, &shortfilename, NULL );
|
||||||
FullLibName << wxT( "." ) << STRING_DIR_SEP << shortfilename << wxT( ".cache" ) <<
|
FullLibName << wxT( "." ) << STRING_DIR_SEP << shortfilename << wxT( ".cache" ) <<
|
||||||
g_LibExtBuffer;
|
g_LibExtBuffer;
|
||||||
if( wxFileExists( FullLibName ) )
|
if( wxFileExists( FullLibName ) )
|
||||||
{
|
{
|
||||||
wxString libname;
|
wxString libname;
|
||||||
libname = FullLibName;
|
libname = FullLibName;
|
||||||
ChangeFileNameExt( libname, wxEmptyString );
|
ChangeFileNameExt( libname, wxEmptyString );
|
||||||
msg = wxT( "Load " ) + FullLibName;
|
msg = wxT( "Load " ) + FullLibName;
|
||||||
LibraryStruct* LibCache = LoadLibraryName( this, FullLibName, libname );
|
LibraryStruct* LibCache = LoadLibraryName( this, FullLibName, libname );
|
||||||
if( LibCache )
|
if( LibCache )
|
||||||
{
|
{
|
||||||
LibCache->m_IsLibCache = TRUE;
|
LibCache->m_IsLibCache = TRUE;
|
||||||
msg += wxT( " OK" );
|
msg += wxT( " OK" );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
msg += wxT( " ->Error" );
|
msg += wxT( " ->Error" );
|
||||||
PrintMsg( msg );
|
PrintMsg( msg );
|
||||||
LibCacheExist = TRUE;
|
LibCacheExist = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !wxFileExists( g_RootSheet->m_AssociatedScreen->m_FileName ) && !LibCacheExist ) // Nouveau projet prpbablement
|
if( !wxFileExists( g_RootSheet->m_AssociatedScreen->m_FileName ) && !LibCacheExist ) // Nouveau projet prpbablement
|
||||||
{
|
{
|
||||||
msg.Printf( _( "File %s not found (new project ?)" ),
|
msg.Printf( _( "File %s not found (new project ?)" ),
|
||||||
g_RootSheet->m_AssociatedScreen->m_FileName.GetData() );
|
g_RootSheet->m_AssociatedScreen->m_FileName.GetData() );
|
||||||
DisplayInfo( this, msg, 20 );
|
DisplayInfo( this, msg, 20 );
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//load the project.
|
//load the project.
|
||||||
SAFE_DELETE(g_RootSheet->m_AssociatedScreen);
|
SAFE_DELETE(g_RootSheet->m_AssociatedScreen);
|
||||||
bool diag = g_RootSheet->Load(this);
|
bool diag = g_RootSheet->Load(this);
|
||||||
|
|
||||||
/* Reaffichage ecran de base (ROOT) si necessaire */
|
/* Reaffichage ecran de base (ROOT) si necessaire */
|
||||||
ActiveScreen = GetScreen();
|
ActiveScreen = GetScreen();
|
||||||
Zoom_Automatique( FALSE );
|
Zoom_Automatique( FALSE );
|
||||||
DrawPanel->Refresh( TRUE );
|
DrawPanel->Refresh( TRUE );
|
||||||
return diag;
|
return diag;
|
||||||
}
|
}
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
SCH_SCREEN * WinEDA_SchematicFrame::CreateNewScreen(
|
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
|
/* Routine de creation ( par allocation memoire ) d'un nouvel ecran
|
||||||
cet ecran est en chainage arriere avec OldScreen
|
cet ecran est en chainage arriere avec OldScreen
|
||||||
la valeur TimeStamp est attribuee au parametre NewScreen->TimeStamp
|
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();
|
NewScreen->SetRefreshReq();
|
||||||
if(OldScreen) NewScreen->m_Company = OldScreen->m_Company;
|
if(OldScreen) NewScreen->m_Company = OldScreen->m_Company;
|
||||||
NewScreen->m_TimeStamp = TimeStamp;
|
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;
|
EDA_ScreenList ScreenList;
|
||||||
|
|
||||||
for( screen = ScreenList.GetFirst(); screen != NULL;
|
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 );
|
SaveEEFile( screen, FILE_SAVE_AS );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Creation du fichier d'archivage composants en repertoire courant */
|
/* Creation du fichier d'archivage composants en repertoire courant */
|
||||||
LibArchiveFileName = MakeFileName( wxEmptyString, GetScreen()->m_FileName, wxEmptyString );
|
LibArchiveFileName = MakeFileName( wxEmptyString, GetScreen()->m_FileName, wxEmptyString );
|
||||||
ChangeFileNameExt( LibArchiveFileName, wxEmptyString );
|
ChangeFileNameExt( LibArchiveFileName, wxEmptyString );
|
||||||
|
|
||||||
/* mise a jour extension */
|
/* mise a jour extension */
|
||||||
LibArchiveFileName += wxT( ".cache" ) + g_LibExtBuffer;
|
LibArchiveFileName += wxT( ".cache" ) + g_LibExtBuffer;
|
||||||
LibArchive( this, LibArchiveFileName );
|
LibArchive( this, LibArchiveFileName );
|
||||||
|
@ -290,20 +290,20 @@ int CountCmpNumber()
|
||||||
/* Routine retournant le nombre de composants dans le schema,
|
/* Routine retournant le nombre de composants dans le schema,
|
||||||
* powers non comprises */
|
* powers non comprises */
|
||||||
{
|
{
|
||||||
return g_RootSheet->ComponentCount();
|
return g_RootSheet->ComponentCount();
|
||||||
/*
|
/*
|
||||||
BASE_SCREEN* Window;
|
BASE_SCREEN* Window;
|
||||||
EDA_BaseStruct* Phead;
|
EDA_BaseStruct* Phead;
|
||||||
int Nb = 0;
|
int Nb = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Window = ScreenSch;
|
Window = ScreenSch;
|
||||||
while( Window )
|
while( Window )
|
||||||
{
|
{
|
||||||
for( Phead = Window->EEDrawList; Phead != NULL; Phead = Phead->Pnext )
|
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;
|
DrawPartStruct* Cmp = (DrawPartStruct*) Phead;
|
||||||
if( Cmp->m_Field[VALUE].m_Text.GetChar( 0 ) != '#' )
|
if( Cmp->m_Field[VALUE].m_Text.GetChar( 0 ) != '#' )
|
||||||
|
@ -315,5 +315,5 @@ int CountCmpNumber()
|
||||||
}
|
}
|
||||||
|
|
||||||
return Nb;
|
return Nb;
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindComponentAndItem(
|
||||||
{
|
{
|
||||||
DrawSheetPath* sheet, * SheetWithComponentFound = NULL;
|
DrawSheetPath* sheet, * SheetWithComponentFound = NULL;
|
||||||
EDA_BaseStruct* DrawList = NULL;
|
EDA_BaseStruct* DrawList = NULL;
|
||||||
EDA_SchComponentStruct* Component = NULL;
|
SCH_COMPONENT* Component = NULL;
|
||||||
wxSize DrawAreaSize = DrawPanel->GetClientSize();
|
wxSize DrawAreaSize = DrawPanel->GetClientSize();
|
||||||
wxPoint pos, curpos;
|
wxPoint pos, curpos;
|
||||||
bool DoCenterAndRedraw = FALSE;
|
bool DoCenterAndRedraw = FALSE;
|
||||||
|
@ -91,10 +91,10 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindComponentAndItem(
|
||||||
DrawList = sheet->LastDrawList();
|
DrawList = sheet->LastDrawList();
|
||||||
for( ; (DrawList != NULL) && (NotFound == true); DrawList = DrawList->Pnext )
|
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;
|
SCH_COMPONENT* pSch;
|
||||||
pSch = (EDA_SchComponentStruct*) DrawList;
|
pSch = (SCH_COMPONENT*) DrawList;
|
||||||
if( component_reference.CmpNoCase( pSch->GetRef(sheet) ) == 0 )
|
if( component_reference.CmpNoCase( pSch->GetRef(sheet) ) == 0 )
|
||||||
{
|
{
|
||||||
Component = pSch;
|
Component = pSch;
|
||||||
|
@ -465,9 +465,9 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindSchematicItem(
|
||||||
{
|
{
|
||||||
switch( DrawList->Type() )
|
switch( DrawList->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
EDA_SchComponentStruct * pSch;
|
SCH_COMPONENT * pSch;
|
||||||
pSch = (EDA_SchComponentStruct*) DrawList;
|
pSch = (SCH_COMPONENT*) DrawList;
|
||||||
if( WildCompareString( WildText, pSch->GetRef(Sheet), FALSE ) )
|
if( WildCompareString( WildText, pSch->GetRef(Sheet), FALSE ) )
|
||||||
{
|
{
|
||||||
NotFound = FALSE;
|
NotFound = FALSE;
|
||||||
|
@ -481,12 +481,12 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindSchematicItem(
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
DrawTextStruct * pDraw;
|
SCH_TEXT * pDraw;
|
||||||
pDraw = (DrawTextStruct*) DrawList;
|
pDraw = (SCH_TEXT*) DrawList;
|
||||||
if( WildCompareString( WildText, pDraw->m_Text, FALSE ) )
|
if( WildCompareString( WildText, pDraw->m_Text, FALSE ) )
|
||||||
{
|
{
|
||||||
NotFound = FALSE;
|
NotFound = FALSE;
|
||||||
|
@ -551,12 +551,12 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindSchematicItem(
|
||||||
DoCenterAndRedraw = TRUE;
|
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
|
* 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.x -= pSch->m_Pos.x;
|
||||||
pos.y -= pSch->m_Pos.y;
|
pos.y -= pSch->m_Pos.y;
|
||||||
|
|
|
@ -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,
|
const wxString& libname,
|
||||||
wxArrayString& HistoryList,
|
wxArrayString& HistoryList,
|
||||||
bool UseLibBrowser )
|
bool UseLibBrowser )
|
||||||
|
@ -73,7 +73,7 @@ EDA_SchComponentStruct* WinEDA_SchematicFrame::Load_Component( wxDC* DC,
|
||||||
int ii, CmpCount = 0;
|
int ii, CmpCount = 0;
|
||||||
LibDrawField* Field;
|
LibDrawField* Field;
|
||||||
EDA_LibComponentStruct* Entry = NULL;
|
EDA_LibComponentStruct* Entry = NULL;
|
||||||
EDA_SchComponentStruct* DrawLibItem = NULL;
|
SCH_COMPONENT* DrawLibItem = NULL;
|
||||||
LibraryStruct* Library = NULL;
|
LibraryStruct* Library = NULL;
|
||||||
wxString Name, keys, msg;
|
wxString Name, keys, msg;
|
||||||
bool AllowWildSeach = TRUE;
|
bool AllowWildSeach = TRUE;
|
||||||
|
@ -180,7 +180,7 @@ EDA_SchComponentStruct* WinEDA_SchematicFrame::Load_Component( wxDC* DC,
|
||||||
DrawPanel->ManageCurseur = ShowWhileMoving;
|
DrawPanel->ManageCurseur = ShowWhileMoving;
|
||||||
DrawPanel->ForceCloseManageCurseur = ExitPlaceCmp;
|
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_Multi = 1;/* Selection de l'unite 1 dans le boitier */
|
||||||
DrawLibItem->m_Convert = 1;
|
DrawLibItem->m_Convert = 1;
|
||||||
DrawLibItem->m_ChipName = Name;
|
DrawLibItem->m_ChipName = Name;
|
||||||
|
@ -257,7 +257,7 @@ static void ShowWhileMoving( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
||||||
{
|
{
|
||||||
wxPoint move_vector;
|
wxPoint move_vector;
|
||||||
|
|
||||||
EDA_SchComponentStruct* DrawLibItem = (EDA_SchComponentStruct*)
|
SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*)
|
||||||
panel->m_Parent->GetScreen()->GetCurItem();
|
panel->m_Parent->GetScreen()->GetCurItem();
|
||||||
|
|
||||||
/* Effacement du composant */
|
/* Effacement du composant */
|
||||||
|
@ -276,7 +276,7 @@ static void ShowWhileMoving( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
void WinEDA_SchematicFrame::CmpRotationMiroir(
|
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
|
/* Routine permettant les rotations et les miroirs d'un composant
|
||||||
|
@ -293,7 +293,9 @@ void WinEDA_SchematicFrame::CmpRotationMiroir(
|
||||||
if( DrawComponent->m_Flags )
|
if( DrawComponent->m_Flags )
|
||||||
DrawStructsInGhost( DrawPanel, DC, DrawComponent, 0, 0 );
|
DrawStructsInGhost( DrawPanel, DC, DrawComponent, 0, 0 );
|
||||||
else
|
else
|
||||||
DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode );
|
{
|
||||||
|
DrawPanel->PostDirtyRect( DrawComponent->GetBoundingBox());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawComponent->SetRotationMiroir( type_rotate );
|
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
|
/* 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();
|
Panel->m_Parent->GetScreen()->GetCurItem();
|
||||||
|
|
||||||
if( DrawLibItem->m_Flags & IS_NEW ) /* Nouveau Placement en cours, on l'efface */
|
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 )
|
int unit, wxDC* DC )
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* Selection de l'unite dans les boitiers a multiples Parts */
|
/* 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 )
|
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 )
|
wxDC* DC )
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
{
|
{
|
||||||
if( Component == NULL )
|
if( Component == NULL )
|
||||||
return;
|
return;
|
||||||
if( Component->Type() != DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( Component->Type() != TYPE_SCH_COMPONENT )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( Component->m_Flags == 0 )
|
if( Component->m_Flags == 0 )
|
||||||
|
|
|
@ -98,7 +98,7 @@ Ki_HotkeyInfo* s_Schematic_Hotkey_List[] = {
|
||||||
&HkDelete, &HkInsert, &HkMove2Drag,
|
&HkDelete, &HkInsert, &HkMove2Drag,
|
||||||
&HkMoveComponent, &HkDragComponent, &HkAddComponent,
|
&HkMoveComponent, &HkDragComponent, &HkAddComponent,
|
||||||
&HkRotateComponent, &HkMirrorXComponent, &HkMirrorYComponent, &HkOrientNormalComponent,
|
&HkRotateComponent, &HkMirrorXComponent, &HkMirrorYComponent, &HkOrientNormalComponent,
|
||||||
&HkEditComponentValue, &HkEditComponentFootprint,
|
&HkEditComponentValue, &HkEditComponentFootprint,
|
||||||
&HkBeginWire,
|
&HkBeginWire,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
@ -107,9 +107,9 @@ Ki_HotkeyInfo* s_Schematic_Hotkey_List[] = {
|
||||||
Ki_HotkeyInfo* s_LibEdit_Hotkey_List[] =
|
Ki_HotkeyInfo* s_LibEdit_Hotkey_List[] =
|
||||||
{
|
{
|
||||||
&HkInsertPin,
|
&HkInsertPin,
|
||||||
&HkEditPin,
|
&HkEditPin,
|
||||||
&HkMovePin,
|
&HkMovePin,
|
||||||
&HkDeletePin,
|
&HkDeletePin,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -148,13 +148,13 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
bool ItemInEdit = GetScreen()->GetCurItem()
|
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
|
bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified
|
||||||
|
|
||||||
if( hotkey == 0 )
|
if( hotkey == 0 )
|
||||||
return;
|
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...)
|
// Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
|
||||||
if( (hotkey & GR_KB_CTRL) != 0 )
|
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 );
|
HK_Descr = GetDescriptorFromHotkey( hotkey, s_Schematic_Hotkey_List );
|
||||||
if( HK_Descr == NULL ) return;
|
if( HK_Descr == NULL ) return;
|
||||||
|
|
||||||
switch( HK_Descr->m_Idcommand )
|
switch( HK_Descr->m_Idcommand )
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case HK_NOT_FOUND:
|
case HK_NOT_FOUND:
|
||||||
|
@ -181,7 +181,7 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_RESET_LOCAL_COORD: /* Reset the relative coord */
|
case HK_RESET_LOCAL_COORD: /* Reset the relative coord */
|
||||||
GetScreen()->m_O_Curseur = GetScreen()->m_Curseur;
|
GetScreen()->m_O_Curseur = GetScreen()->m_Curseur;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_ZOOM_IN:
|
case HK_ZOOM_IN:
|
||||||
|
@ -219,9 +219,9 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
if( ItemInEdit )
|
if( ItemInEdit )
|
||||||
break;
|
break;
|
||||||
RefreshToolBar = LocateAndDeleteItem( this, DC );
|
RefreshToolBar = LocateAndDeleteItem( this, DC );
|
||||||
GetScreen()->SetModify();
|
GetScreen()->SetModify();
|
||||||
GetScreen()->SetCurItem( NULL );
|
GetScreen()->SetCurItem( NULL );
|
||||||
TestDanglingEnds( GetScreen()->EEDrawList, DC );
|
TestDanglingEnds( GetScreen()->EEDrawList, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_REPEAT_LAST:
|
case HK_REPEAT_LAST:
|
||||||
|
@ -281,7 +281,7 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
GetScreen(), LIBITEM | TEXTITEM | LABELITEM );
|
GetScreen(), LIBITEM | TEXTITEM | LABELITEM );
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
break;
|
break;
|
||||||
if( DrawStruct->Type() == DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( DrawStruct->Type() == TYPE_SCH_COMPONENT )
|
||||||
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
break;
|
break;
|
||||||
|
@ -289,7 +289,7 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
|
|
||||||
switch( DrawStruct->Type() )
|
switch( DrawStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
if( DrawStruct->m_Flags == 0 )
|
if( DrawStruct->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
SaveCopyInUndoList( DrawStruct, IS_CHANGED );
|
SaveCopyInUndoList( DrawStruct, IS_CHANGED );
|
||||||
|
@ -297,19 +297,19 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
}
|
}
|
||||||
|
|
||||||
CmpRotationMiroir(
|
CmpRotationMiroir(
|
||||||
(EDA_SchComponentStruct*) DrawStruct, DC, CMP_ROTATE_COUNTERCLOCKWISE );
|
(SCH_COMPONENT*) DrawStruct, DC, CMP_ROTATE_COUNTERCLOCKWISE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
if( DrawStruct->m_Flags == 0 )
|
if( DrawStruct->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
SaveCopyInUndoList( DrawStruct, IS_CHANGED );
|
SaveCopyInUndoList( DrawStruct, IS_CHANGED );
|
||||||
RefreshToolBar = TRUE;
|
RefreshToolBar = TRUE;
|
||||||
}
|
}
|
||||||
ChangeTextOrient( (DrawTextStruct*) DrawStruct, DC );
|
ChangeTextOrient( (SCH_TEXT*) DrawStruct, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -320,7 +320,7 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
|
|
||||||
case HK_MIRROR_Y_COMPONENT: // Mirror Y (Component)
|
case HK_MIRROR_Y_COMPONENT: // Mirror Y (Component)
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
if( DrawStruct->m_Flags == 0 )
|
if( DrawStruct->m_Flags == 0 )
|
||||||
|
@ -329,13 +329,13 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
RefreshToolBar = TRUE;
|
RefreshToolBar = TRUE;
|
||||||
}
|
}
|
||||||
CmpRotationMiroir(
|
CmpRotationMiroir(
|
||||||
(EDA_SchComponentStruct*) DrawStruct, DC, CMP_MIROIR_Y );
|
(SCH_COMPONENT*) DrawStruct, DC, CMP_MIROIR_Y );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_MIRROR_X_COMPONENT: // Mirror X (Component)
|
case HK_MIRROR_X_COMPONENT: // Mirror X (Component)
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
if( DrawStruct->m_Flags == 0 )
|
if( DrawStruct->m_Flags == 0 )
|
||||||
|
@ -344,13 +344,13 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
RefreshToolBar = TRUE;
|
RefreshToolBar = TRUE;
|
||||||
}
|
}
|
||||||
CmpRotationMiroir(
|
CmpRotationMiroir(
|
||||||
(EDA_SchComponentStruct*) DrawStruct, DC, CMP_MIROIR_X );
|
(SCH_COMPONENT*) DrawStruct, DC, CMP_MIROIR_X );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_ORIENT_NORMAL_COMPONENT: // Orient 0, no mirror (Component)
|
case HK_ORIENT_NORMAL_COMPONENT: // Orient 0, no mirror (Component)
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
if( DrawStruct->m_Flags == 0 )
|
if( DrawStruct->m_Flags == 0 )
|
||||||
|
@ -359,8 +359,8 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
RefreshToolBar = TRUE;
|
RefreshToolBar = TRUE;
|
||||||
}
|
}
|
||||||
CmpRotationMiroir(
|
CmpRotationMiroir(
|
||||||
(EDA_SchComponentStruct*) DrawStruct, DC, CMP_NORMAL );
|
(SCH_COMPONENT*) DrawStruct, DC, CMP_NORMAL );
|
||||||
TestDanglingEnds( (SCH_SCREEN*)GetScreen()->EEDrawList, DC );
|
TestDanglingEnds( (SCH_SCREEN*)GetScreen()->EEDrawList, DC );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -369,37 +369,37 @@ void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
if( ItemInEdit )
|
if( ItemInEdit )
|
||||||
break;
|
break;
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
||||||
if( DrawStruct && (DrawStruct->m_Flags ==0) )
|
if( DrawStruct && (DrawStruct->m_Flags ==0) )
|
||||||
{
|
{
|
||||||
((SCH_SCREEN*)GetScreen())->SetCurItem( DrawStruct );
|
((SCH_SCREEN*)GetScreen())->SetCurItem( DrawStruct );
|
||||||
wxCommandEvent event( wxEVT_COMMAND_TOOL_CLICKED, HK_Descr->m_IdMenuEvent );
|
wxCommandEvent event( wxEVT_COMMAND_TOOL_CLICKED, HK_Descr->m_IdMenuEvent );
|
||||||
|
|
||||||
wxPostEvent( this, event );
|
wxPostEvent( this, event );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HK_EDIT_COMPONENT_VALUE:
|
case HK_EDIT_COMPONENT_VALUE:
|
||||||
if( ItemInEdit )
|
if( ItemInEdit )
|
||||||
break;
|
break;
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
||||||
if(DrawStruct)
|
if(DrawStruct)
|
||||||
{
|
{
|
||||||
EditComponentValue(
|
EditComponentValue(
|
||||||
(EDA_SchComponentStruct*) DrawStruct, DC );
|
(SCH_COMPONENT*) DrawStruct, DC );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_EDIT_COMPONENT_FOOTPRINT:
|
case HK_EDIT_COMPONENT_FOOTPRINT:
|
||||||
if( ItemInEdit )
|
if( ItemInEdit )
|
||||||
break;
|
break;
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*)GetScreen() );
|
||||||
if(DrawStruct)
|
if(DrawStruct)
|
||||||
{
|
{
|
||||||
EditComponentFootprint(
|
EditComponentFootprint(
|
||||||
(EDA_SchComponentStruct*) DrawStruct, DC );
|
(SCH_COMPONENT*) DrawStruct, DC );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -417,16 +417,16 @@ void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
* Commands are case insensitive
|
* Commands are case insensitive
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
bool ItemInEdit = GetScreen()->GetCurItem()
|
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
|
bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified
|
||||||
|
|
||||||
if( hotkey == 0 )
|
if( hotkey == 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxPoint MousePos = GetScreen()->m_MousePosition;
|
wxPoint MousePos = GetScreen()->m_MousePosition;
|
||||||
|
|
||||||
LibEDA_BaseStruct* DrawEntry = LocateItemUsingCursor();
|
LibEDA_BaseStruct* DrawEntry = LocateItemUsingCursor();
|
||||||
|
|
||||||
// Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
|
// Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
|
||||||
if( (hotkey & GR_KB_CTRL) != 0 )
|
if( (hotkey & GR_KB_CTRL) != 0 )
|
||||||
|
@ -451,7 +451,7 @@ void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_RESET_LOCAL_COORD: /* Reset the relative coord */
|
case HK_RESET_LOCAL_COORD: /* Reset the relative coord */
|
||||||
GetScreen()->m_O_Curseur = GetScreen()->m_Curseur;
|
GetScreen()->m_O_Curseur = GetScreen()->m_Curseur;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_ZOOM_IN:
|
case HK_ZOOM_IN:
|
||||||
|
@ -490,36 +490,36 @@ void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey,
|
||||||
else
|
else
|
||||||
wxBell();
|
wxBell();
|
||||||
break;
|
break;
|
||||||
case HK_EDIT_PIN:
|
case HK_EDIT_PIN:
|
||||||
if(DrawEntry)
|
if(DrawEntry)
|
||||||
CurrentDrawItem = DrawEntry;
|
CurrentDrawItem = DrawEntry;
|
||||||
if(CurrentDrawItem)
|
if(CurrentDrawItem)
|
||||||
{
|
{
|
||||||
if(CurrentDrawItem->Type() == COMPONENT_PIN_DRAW_TYPE)
|
if(CurrentDrawItem->Type() == COMPONENT_PIN_DRAW_TYPE)
|
||||||
InstallPineditFrame( this, DC, MousePos );
|
InstallPineditFrame( this, DC, MousePos );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HK_DELETE_PIN:
|
case HK_DELETE_PIN:
|
||||||
if(DrawEntry)
|
if(DrawEntry)
|
||||||
CurrentDrawItem = DrawEntry;
|
CurrentDrawItem = DrawEntry;
|
||||||
if(CurrentDrawItem)
|
if(CurrentDrawItem)
|
||||||
{
|
{
|
||||||
wxCommandEvent evt;
|
wxCommandEvent evt;
|
||||||
evt.SetId(ID_POPUP_LIBEDIT_DELETE_ITEM);
|
evt.SetId(ID_POPUP_LIBEDIT_DELETE_ITEM);
|
||||||
Process_Special_Functions(evt);
|
Process_Special_Functions(evt);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HK_MOVE_PIN:
|
case HK_MOVE_PIN:
|
||||||
if(DrawEntry)
|
if(DrawEntry)
|
||||||
CurrentDrawItem = DrawEntry;
|
CurrentDrawItem = DrawEntry;
|
||||||
if(CurrentDrawItem)
|
if(CurrentDrawItem)
|
||||||
{
|
{
|
||||||
wxCommandEvent evt;
|
wxCommandEvent evt;
|
||||||
evt.SetId(ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST);
|
evt.SetId(ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST);
|
||||||
Process_Special_Functions(evt);
|
Process_Special_Functions(evt);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if( RefreshToolBar )
|
if( RefreshToolBar )
|
||||||
SetToolbars();
|
SetToolbars();
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,27 +21,27 @@
|
||||||
* EESchema Schematic File Version n
|
* EESchema Schematic File Version n
|
||||||
* - liste des librairies utilisees
|
* - liste des librairies utilisees
|
||||||
* LIBS:lib1,lib2,...
|
* LIBS:lib1,lib2,...
|
||||||
*
|
*
|
||||||
* - description des elements:
|
* - description des elements:
|
||||||
* - ici Dimensions du schema, cartouche..:
|
* - ici Dimensions du schema, cartouche..:
|
||||||
* $Descr A3 xx yy (format A3 (A..A0 / A..E / "user") xx yy = dims internes )
|
* $Descr A3 xx yy (format A3 (A..A0 / A..E / "user") xx yy = dims internes )
|
||||||
* $EndDescr
|
* $EndDescr
|
||||||
*
|
*
|
||||||
* - ici: polyline
|
* - ici: polyline
|
||||||
* P L 0 3
|
* P L 0 3
|
||||||
* 2208 1008
|
* 2208 1008
|
||||||
* 2208 1136
|
* 2208 1136
|
||||||
* 2128 1136
|
* 2128 1136
|
||||||
*
|
*
|
||||||
* - ici: Segment (wire, bus) ( 1; W = segment type Wire, 2: W = Wire B = Bus
|
* - ici: Segment (wire, bus) ( 1; W = segment type Wire, 2: W = Wire B = Bus
|
||||||
* 3: L ou B = epaisseur ( L = ligne, B = bus)
|
* 3: L ou B = epaisseur ( L = ligne, B = bus)
|
||||||
* W W L (W B B si bus)
|
* W W L (W B B si bus)
|
||||||
* 1856 1008 1856 1136 (debut X,Y fin X,Y)
|
* 1856 1008 1856 1136 (debut X,Y fin X,Y)
|
||||||
*
|
*
|
||||||
* - ici: Raccord (wire, bus)
|
* - ici: Raccord (wire, bus)
|
||||||
* R W L
|
* R W L
|
||||||
* 1856 1008 1856 1136 (debut X,Y fin X,Y)
|
* 1856 1008 1856 1136 (debut X,Y fin X,Y)
|
||||||
*
|
*
|
||||||
* - ici: Sheet ( Sous-feuille de hierarchie)
|
* - ici: Sheet ( Sous-feuille de hierarchie)
|
||||||
* $Sheet
|
* $Sheet
|
||||||
* S 1856 1008 1856 1136 (debut X,Y fin X,Y)
|
* S 1856 1008 1856 1136 (debut X,Y fin X,Y)
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
* F1 "texte" X X posx posy ; filename
|
* F1 "texte" X X posx posy ; filename
|
||||||
* Fn "label" type side posx posy size ; n lignes de label
|
* Fn "label" type side posx posy size ; n lignes de label
|
||||||
* $EndSheet
|
* $EndSheet
|
||||||
*
|
*
|
||||||
* - ici: composant
|
* - ici: composant
|
||||||
* $Comp
|
* $Comp
|
||||||
* L CAPACITOR C1 H H -30863 -14794 1968 1184 nom, ref, dir et pos
|
* 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;
|
return FALSE;
|
||||||
|
|
||||||
screen->SetCurItem( NULL );
|
screen->SetCurItem( NULL );
|
||||||
screen->m_FileName = FullFileName;
|
screen->m_FileName = FullFileName;
|
||||||
|
|
||||||
LineCount = 1;
|
LineCount = 1;
|
||||||
if( ( f = wxFopen( FullFileName, wxT( "rt" ) ) ) == NULL )
|
if( ( f = wxFopen( FullFileName, wxT( "rt" ) ) ) == NULL )
|
||||||
|
@ -108,7 +108,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
MsgDiag = _( "Loading " ) + screen->m_FileName;
|
MsgDiag = _( "Loading " ) + screen->m_FileName;
|
||||||
PrintMsg( MsgDiag );
|
PrintMsg( MsgDiag );
|
||||||
|
|
||||||
if( fgets( Line, 1024 - 1, f ) == NULL
|
if( fgets( Line, 1024 - 1, f ) == NULL
|
||||||
|
@ -120,8 +120,8 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F
|
||||||
fclose( f );
|
fclose( f );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
//get the file version here.
|
//get the file version here.
|
||||||
char version = Line[9 + sizeof(SCHEMATIC_HEAD_STRING)];
|
char version = Line[9 + sizeof(SCHEMATIC_HEAD_STRING)];
|
||||||
LineCount++;
|
LineCount++;
|
||||||
if( fgets( Line, 1024 - 1, f ) == NULL || strncmp( Line, "LIBS:", 5 ) != 0 )
|
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" ),
|
wxT( "EESchema file Segment struct error at line %d, aborted" ),
|
||||||
LineCount );
|
LineCount );
|
||||||
Failed = TRUE;
|
Failed = TRUE;
|
||||||
SAFE_DELETE( SegmentStruct ) ;
|
SAFE_DELETE( SegmentStruct ) ;
|
||||||
break;
|
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" ),
|
wxT( "EESchema file Raccord struct error at line %d, aborted" ),
|
||||||
LineCount );
|
LineCount );
|
||||||
Failed = TRUE;
|
Failed = TRUE;
|
||||||
SAFE_DELETE( RaccordStruct ) ;
|
SAFE_DELETE( RaccordStruct ) ;
|
||||||
break;
|
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" ),
|
wxT( "EESchema file polyline struct error at line %d, aborted" ),
|
||||||
LineCount );
|
LineCount );
|
||||||
Failed = TRUE;
|
Failed = TRUE;
|
||||||
SAFE_DELETE( PolylineStruct ) ;
|
SAFE_DELETE( PolylineStruct ) ;
|
||||||
break;
|
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" ),
|
wxT( "EESchema file connection struct error at line %d, aborted" ),
|
||||||
LineCount );
|
LineCount );
|
||||||
Failed = TRUE;
|
Failed = TRUE;
|
||||||
SAFE_DELETE( ConnectionStruct ) ;
|
SAFE_DELETE( ConnectionStruct ) ;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -378,20 +378,20 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F
|
||||||
|
|
||||||
if( Name1[0] == 'L' )
|
if( Name1[0] == 'L' )
|
||||||
{
|
{
|
||||||
DrawLabelStruct* TextStruct =
|
SCH_LABEL* TextStruct =
|
||||||
new DrawLabelStruct( pos, CONV_FROM_UTF8( text ) );
|
new SCH_LABEL( pos, CONV_FROM_UTF8( text ) );
|
||||||
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
||||||
TextStruct->m_Orient = orient;
|
TextStruct->m_Orient = orient;
|
||||||
Struct = (EDA_BaseStruct*) TextStruct;
|
Struct = (EDA_BaseStruct*) TextStruct;
|
||||||
}
|
}
|
||||||
else if( Name1[0] == 'G' && version > '1')
|
else if( Name1[0] == 'G' && version > '1')
|
||||||
{
|
{
|
||||||
DrawGlobalLabelStruct* TextStruct =
|
SCH_GLOBALLABEL* TextStruct =
|
||||||
new DrawGlobalLabelStruct(pos, CONV_FROM_UTF8( text ) );
|
new SCH_GLOBALLABEL(pos, CONV_FROM_UTF8( text ) );
|
||||||
Struct = (EDA_BaseStruct*) TextStruct;
|
Struct = (EDA_BaseStruct*) TextStruct;
|
||||||
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
||||||
TextStruct->m_Orient = orient;
|
TextStruct->m_Orient = orient;
|
||||||
TextStruct->m_Shape = NET_INPUT;
|
TextStruct->m_Shape = NET_INPUT;
|
||||||
if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 )
|
if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 )
|
||||||
TextStruct->m_Shape = NET_OUTPUT;
|
TextStruct->m_Shape = NET_OUTPUT;
|
||||||
if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 )
|
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 )
|
if( stricmp( Name2, SheetLabelType[NET_UNSPECIFIED] ) == 0 )
|
||||||
TextStruct->m_Shape = NET_UNSPECIFIED;
|
TextStruct->m_Shape = NET_UNSPECIFIED;
|
||||||
}
|
}
|
||||||
else if( (Name1[0] == 'H') || (Name1[0] == 'G' && version == '1'))
|
else if( (Name1[0] == 'H') || (Name1[0] == 'G' && version == '1'))
|
||||||
{ //in schematic file version 1, glabels were actually hierarchal labels.
|
{ //in schematic file version 1, glabels were actually hierarchal labels.
|
||||||
DrawHierLabelStruct* TextStruct =
|
SCH_HIERLABEL* TextStruct =
|
||||||
new DrawHierLabelStruct(pos, CONV_FROM_UTF8( text ) );
|
new SCH_HIERLABEL(pos, CONV_FROM_UTF8( text ) );
|
||||||
Struct = (EDA_BaseStruct*) TextStruct;
|
Struct = (EDA_BaseStruct*) TextStruct;
|
||||||
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
||||||
TextStruct->m_Orient = orient;
|
TextStruct->m_Orient = orient;
|
||||||
TextStruct->m_Shape = NET_INPUT;
|
TextStruct->m_Shape = NET_INPUT;
|
||||||
if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 )
|
if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 )
|
||||||
TextStruct->m_Shape = NET_OUTPUT;
|
TextStruct->m_Shape = NET_OUTPUT;
|
||||||
if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 )
|
if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 )
|
||||||
|
@ -420,8 +420,8 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DrawTextStruct* TextStruct =
|
SCH_TEXT* TextStruct =
|
||||||
new DrawTextStruct( pos, CONV_FROM_UTF8( text ) );
|
new SCH_TEXT( pos, CONV_FROM_UTF8( text ) );
|
||||||
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
||||||
TextStruct->m_Orient = orient;
|
TextStruct->m_Orient = orient;
|
||||||
Struct = (EDA_BaseStruct*) TextStruct;
|
Struct = (EDA_BaseStruct*) TextStruct;
|
||||||
|
@ -465,14 +465,14 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F
|
||||||
#if 0 && defined(DEBUG)
|
#if 0 && defined(DEBUG)
|
||||||
screen->Show( 0, std::cout );
|
screen->Show( 0, std::cout );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fclose( f );
|
fclose( f );
|
||||||
|
|
||||||
TestDanglingEnds( screen->EEDrawList, NULL );
|
TestDanglingEnds( screen->EEDrawList, NULL );
|
||||||
|
|
||||||
MsgDiag = _( "Done Loading " ) + screen->m_FileName;
|
MsgDiag = _( "Done Loading " ) + screen->m_FileName;
|
||||||
PrintMsg( MsgDiag );
|
PrintMsg( MsgDiag );
|
||||||
|
|
||||||
return TRUE; /* Although it may be that file is only partially loaded. */
|
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;
|
int ii, fieldref;
|
||||||
char Name1[256], Name2[256],
|
char Name1[256], Name2[256],
|
||||||
Char1[256], Char2[256], Char3[256];
|
Char1[256], Char2[256], Char3[256];
|
||||||
EDA_SchComponentStruct* LibItemStruct;
|
SCH_COMPONENT* LibItemStruct;
|
||||||
int Failed = 0, newfmt = 0;
|
int Failed = 0, newfmt = 0;
|
||||||
char* ptcar;
|
char* ptcar;
|
||||||
|
|
||||||
LibItemStruct = new EDA_SchComponentStruct();
|
LibItemStruct = new SCH_COMPONENT();
|
||||||
LibItemStruct->m_Convert = 1;
|
LibItemStruct->m_Convert = 1;
|
||||||
|
|
||||||
if( Line[0] == '$' )
|
if( Line[0] == '$' )
|
||||||
|
@ -534,29 +534,29 @@ static int ReadPartDescr( wxWindow* frame, char* Line, FILE* f,
|
||||||
|
|
||||||
if( strcmp( Name2, NULL_STRING ) != 0 )
|
if( strcmp( Name2, NULL_STRING ) != 0 )
|
||||||
{
|
{
|
||||||
bool isDigit = false;
|
bool isDigit = false;
|
||||||
for( ii = 0; ii < (int) strlen( Name2 ); ii++ ){
|
for( ii = 0; ii < (int) strlen( Name2 ); ii++ ){
|
||||||
if( Name2[ii] == '~' )
|
if( Name2[ii] == '~' )
|
||||||
Name2[ii] = ' ';
|
Name2[ii] = ' ';
|
||||||
//get RefBase from this, too. store in Name1.
|
//get RefBase from this, too. store in Name1.
|
||||||
if(Name2[ii] >= '0' && Name2[ii] <= '9'){
|
if(Name2[ii] >= '0' && Name2[ii] <= '9'){
|
||||||
isDigit = true;
|
isDigit = true;
|
||||||
Name1[ii] = 0; //null-terminate.
|
Name1[ii] = 0; //null-terminate.
|
||||||
}
|
}
|
||||||
if(!isDigit){
|
if(!isDigit){
|
||||||
Name1[ii] = Name2[ii];
|
Name1[ii] = Name2[ii];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Name1[ii] = 0; //just in case
|
Name1[ii] = 0; //just in case
|
||||||
int jj;
|
int jj;
|
||||||
for(jj=0; jj<ii && Name1[jj] == ' '; jj++);
|
for(jj=0; jj<ii && Name1[jj] == ' '; jj++);
|
||||||
if(jj == ii){
|
if(jj == ii){
|
||||||
//blank string.
|
//blank string.
|
||||||
LibItemStruct->m_PrefixString = wxT("U");
|
LibItemStruct->m_PrefixString = wxT("U");
|
||||||
}else{
|
}else{
|
||||||
LibItemStruct->m_PrefixString = CONV_FROM_UTF8(&Name1[jj]);
|
LibItemStruct->m_PrefixString = CONV_FROM_UTF8(&Name1[jj]);
|
||||||
//printf("prefix: %s\n", CONV_TO_UTF8(LibItemStruct->m_PrefixString));
|
//printf("prefix: %s\n", CONV_TO_UTF8(LibItemStruct->m_PrefixString));
|
||||||
}
|
}
|
||||||
if( !newfmt )
|
if( !newfmt )
|
||||||
LibItemStruct->m_Field[REFERENCE].m_Text = CONV_FROM_UTF8( Name2 );
|
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
|
* "P " = position
|
||||||
* "U " = Num Unit, et Conversion
|
* "U " = Num Unit, et Conversion
|
||||||
* "Fn" = Champs ( n = 0.. = numero de champ )
|
* "Fn" = Champs ( n = 0.. = numero de champ )
|
||||||
* "Ar" = AlternateReference, in the case of multiple sheets
|
* "Ar" = AlternateReference, in the case of multiple sheets
|
||||||
* referring to one schematic file.
|
* referring to one schematic file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Lecture des champs */
|
/* Lecture des champs */
|
||||||
|
@ -583,7 +583,7 @@ static int ReadPartDescr( wxWindow* frame, char* Line, FILE* f,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
if( (Line[0] != 'F' )
|
if( (Line[0] != 'F' )
|
||||||
&& (Line[0] != 'P' )
|
&& (Line[0] != 'P' )
|
||||||
&& (Line[0] != 'A' )
|
&& (Line[0] != 'A' )
|
||||||
&& (Line[0] != 'U' ) )
|
&& (Line[0] != 'U' ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -599,32 +599,32 @@ static int ReadPartDescr( wxWindow* frame, char* Line, FILE* f,
|
||||||
sscanf( Line + 1, "%d %d",
|
sscanf( Line + 1, "%d %d",
|
||||||
&LibItemStruct->m_Pos.x, &LibItemStruct->m_Pos.y );
|
&LibItemStruct->m_Pos.x, &LibItemStruct->m_Pos.y );
|
||||||
}
|
}
|
||||||
if( Line[0] == 'A' && Line[1] == 'R' )
|
if( Line[0] == 'A' && Line[1] == 'R' )
|
||||||
{
|
{
|
||||||
/*format:
|
/*format:
|
||||||
AR Path="/9086AF6E/67452AA0" Ref="C99"
|
AR Path="/9086AF6E/67452AA0" Ref="C99"
|
||||||
where 9086AF6E is the unique timestamp of the containing sheet
|
where 9086AF6E is the unique timestamp of the containing sheet
|
||||||
and 67452AA0 is the timestamp of this component.
|
and 67452AA0 is the timestamp of this component.
|
||||||
C99 is the reference given this path.
|
C99 is the reference given this path.
|
||||||
*/
|
*/
|
||||||
int i=2;
|
int i=2;
|
||||||
while(i<256 && Line[i] != '"'){ i++; } i++;
|
while(i<256 && Line[i] != '"'){ i++; } i++;
|
||||||
//copy the path.
|
//copy the path.
|
||||||
int j = 0;
|
int j = 0;
|
||||||
while(i<256 && Line[i] != '"'){Name1[j] = Line[i]; i++; j++;} i++;
|
while(i<256 && Line[i] != '"'){Name1[j] = Line[i]; i++; j++;} i++;
|
||||||
Name1[j] = 0;
|
Name1[j] = 0;
|
||||||
wxString path = CONV_FROM_UTF8(Name1);
|
wxString path = CONV_FROM_UTF8(Name1);
|
||||||
//i should be one after the closing quote, match the next opening quote
|
//i should be one after the closing quote, match the next opening quote
|
||||||
while(i<256 && Line[i] != '"'){ i++; } i++;
|
while(i<256 && Line[i] != '"'){ i++; } i++;
|
||||||
j = 0;
|
j = 0;
|
||||||
while(i<256 && Line[i] != '"'){Name1[j] = Line[i]; i++; j++;} i++;
|
while(i<256 && Line[i] != '"'){Name1[j] = Line[i]; i++; j++;} i++;
|
||||||
Name1[j] = 0;
|
Name1[j] = 0;
|
||||||
wxString ref = CONV_FROM_UTF8(Name1);
|
wxString ref = CONV_FROM_UTF8(Name1);
|
||||||
|
|
||||||
LibItemStruct->m_Paths.Add(path);
|
LibItemStruct->m_Paths.Add(path);
|
||||||
LibItemStruct->m_References.Add(ref);
|
LibItemStruct->m_References.Add(ref);
|
||||||
LibItemStruct->m_Field[REFERENCE].m_Text = ref;
|
LibItemStruct->m_Field[REFERENCE].m_Text = ref;
|
||||||
}
|
}
|
||||||
if( Line[0] == 'F' )
|
if( Line[0] == 'F' )
|
||||||
{
|
{
|
||||||
char FieldUserName[1024];
|
char FieldUserName[1024];
|
||||||
|
@ -767,7 +767,7 @@ static int ReadPartDescr( wxWindow* frame, char* Line, FILE* f,
|
||||||
{
|
{
|
||||||
LibItemStruct->Pnext = Window->EEDrawList;
|
LibItemStruct->Pnext = Window->EEDrawList;
|
||||||
Window->EEDrawList = (EDA_BaseStruct*) LibItemStruct;
|
Window->EEDrawList = (EDA_BaseStruct*) LibItemStruct;
|
||||||
LibItemStruct->m_Parent = Window;
|
LibItemStruct->m_Parent = Window;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Failed; /* Fin lecture 1 composant */
|
return Failed; /* Fin lecture 1 composant */
|
||||||
|
@ -790,12 +790,12 @@ static int ReadSheetDescr( wxWindow* frame, char* Line, FILE* f, BASE_SCREEN* Wi
|
||||||
char* ptcar;
|
char* ptcar;
|
||||||
|
|
||||||
SheetStruct = new DrawSheetStruct();
|
SheetStruct = new DrawSheetStruct();
|
||||||
SheetStruct->m_TimeStamp = GetTimeStamp();
|
SheetStruct->m_TimeStamp = GetTimeStamp();
|
||||||
//sheets are added to the EEDrawList like other schematic components.
|
//sheets are added to the EEDrawList like other schematic components.
|
||||||
//however, in order to preserve the heirarchy (through m_Parent pointers),
|
//however, in order to preserve the heirarchy (through m_Parent pointers),
|
||||||
//a duplicate of the sheet is added to m_SubSheet array.
|
//a duplicate of the sheet is added to m_SubSheet array.
|
||||||
//must be a duplicate, references just work for a two-layer structure.
|
//must be a duplicate, references just work for a two-layer structure.
|
||||||
//this is accomplished through the Sync() function.
|
//this is accomplished through the Sync() function.
|
||||||
|
|
||||||
if( Line[0] == '$' ) /* Ligne doit etre "$Sheet" */
|
if( Line[0] == '$' ) /* Ligne doit etre "$Sheet" */
|
||||||
{
|
{
|
||||||
|
@ -826,12 +826,12 @@ static int ReadSheetDescr( wxWindow* frame, char* Line, FILE* f, BASE_SCREEN* Wi
|
||||||
LineCount++;
|
LineCount++;
|
||||||
if( fgets( Line, 256 - 1, f ) == NULL )
|
if( fgets( Line, 256 - 1, f ) == NULL )
|
||||||
return TRUE;
|
return TRUE;
|
||||||
if( Line[0] == 'U' ){
|
if( Line[0] == 'U' ){
|
||||||
sscanf( Line + 1, "%lX", &(SheetStruct->m_TimeStamp) );
|
sscanf( Line + 1, "%lX", &(SheetStruct->m_TimeStamp) );
|
||||||
if(SheetStruct->m_TimeStamp == 0) //zero is not unique!
|
if(SheetStruct->m_TimeStamp == 0) //zero is not unique!
|
||||||
SheetStruct->m_TimeStamp = GetTimeStamp();
|
SheetStruct->m_TimeStamp = GetTimeStamp();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if( Line[0] != 'F' )
|
if( Line[0] != 'F' )
|
||||||
break;
|
break;
|
||||||
sscanf( Line + 1, "%d", &fieldref );
|
sscanf( Line + 1, "%d", &fieldref );
|
||||||
|
@ -887,7 +887,7 @@ static int ReadSheetDescr( wxWindow* frame, char* Line, FILE* f, BASE_SCREEN* Wi
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SheetStruct->SetFileName(CONV_FROM_UTF8( Name1 ));
|
SheetStruct->SetFileName(CONV_FROM_UTF8( Name1 ));
|
||||||
//printf("in ReadSheetDescr : SheetStruct->m_FileName = %s \n", Name1);
|
//printf("in ReadSheetDescr : SheetStruct->m_FileName = %s \n", Name1);
|
||||||
SheetStruct->m_FileNameSize = size;
|
SheetStruct->m_FileNameSize = size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -949,12 +949,12 @@ static int ReadSheetDescr( wxWindow* frame, char* Line, FILE* f, BASE_SCREEN* Wi
|
||||||
LineCount );
|
LineCount );
|
||||||
Failed = TRUE;
|
Failed = TRUE;
|
||||||
}
|
}
|
||||||
if( !Failed )
|
if( !Failed )
|
||||||
{
|
{
|
||||||
SheetStruct->Pnext = Window->EEDrawList;
|
SheetStruct->Pnext = Window->EEDrawList;
|
||||||
Window->EEDrawList = (EDA_BaseStruct*)SheetStruct;
|
Window->EEDrawList = (EDA_BaseStruct*)SheetStruct;
|
||||||
SheetStruct->m_Parent = Window;
|
SheetStruct->m_Parent = Window;
|
||||||
}
|
}
|
||||||
return Failed; /* Fin lecture 1 composant */
|
return Failed; /* Fin lecture 1 composant */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
/* 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
|
* 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_BaseStruct* DrawList;
|
||||||
EDA_Rect BoundaryBox;
|
EDA_Rect BoundaryBox;
|
||||||
float sizeref = 0, sizecurr;
|
float sizeref = 0, sizecurr;
|
||||||
|
@ -54,7 +54,7 @@ EDA_SchComponentStruct* LocateSmallestComponent( SCH_SCREEN* Screen )
|
||||||
DrawList, NULL, Screen->GetZoom() ) ) == FALSE )
|
DrawList, NULL, Screen->GetZoom() ) ) == FALSE )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
DrawLibItem = (EDA_SchComponentStruct*) LastSnappedStruct;
|
DrawLibItem = (SCH_COMPONENT*) LastSnappedStruct;
|
||||||
DrawList = DrawLibItem->Pnext;
|
DrawList = DrawLibItem->Pnext;
|
||||||
if( LastDrawLibItem == NULL ) // First time a component is located
|
if( LastDrawLibItem == NULL ) // First time a component is located
|
||||||
{
|
{
|
||||||
|
@ -93,23 +93,23 @@ EDA_SchComponentStruct* LocateSmallestComponent( SCH_SCREEN* Screen )
|
||||||
* SEARCH_PINITEM
|
* SEARCH_PINITEM
|
||||||
* SHEETLABELITEM
|
* SHEETLABELITEM
|
||||||
* FIELDCMPITEM
|
* FIELDCMPITEM
|
||||||
*
|
*
|
||||||
* if EXCLUDE_WIRE_BUS_ENDPOINTS is set, in wire ou bus search and locate,
|
* if EXCLUDE_WIRE_BUS_ENDPOINTS is set, in wire ou bus search and locate,
|
||||||
* start and end points are not included in search
|
* start and end points are not included in search
|
||||||
* if WIRE_BUS_ENDPOINTS_ONLY is set, in wire ou bus search and locate,
|
* if WIRE_BUS_ENDPOINTS_ONLY is set, in wire ou bus search and locate,
|
||||||
* only start and end points are included in search
|
* only start and end points are included in search
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Return:
|
* Return:
|
||||||
* -Bloc search:
|
* -Bloc search:
|
||||||
* pointeur sur liste de pointeurs de structures si Plusieurs
|
* pointeur sur liste de pointeurs de structures si Plusieurs
|
||||||
* structures selectionnees.
|
* structures selectionnees.
|
||||||
* pointeur sur la structure si 1 seule
|
* pointeur sur la structure si 1 seule
|
||||||
*
|
*
|
||||||
* Positon serach:
|
* Positon serach:
|
||||||
* pointeur sur la structure.
|
* pointeur sur la structure.
|
||||||
* Si pas de structures selectionnees: retourne NULL
|
* Si pas de structures selectionnees: retourne NULL
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
/***********************************************************************/
|
/***********************************************************************/
|
||||||
EDA_BaseStruct* PickStruct( const wxPoint& refpos,
|
EDA_BaseStruct* PickStruct( const wxPoint& refpos,
|
||||||
|
@ -120,9 +120,9 @@ EDA_BaseStruct* PickStruct( const wxPoint& refpos,
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
bool Snapped;
|
bool Snapped;
|
||||||
EDA_BaseStruct* DrawList = screen->EEDrawList;
|
EDA_BaseStruct* DrawList = screen->EEDrawList;
|
||||||
if( screen==NULL || DrawList == NULL )
|
if( screen==NULL || DrawList == NULL )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if( ( Snapped = SnapPoint2( refpos, SearchMask,
|
if( ( Snapped = SnapPoint2( refpos, SearchMask,
|
||||||
DrawList, NULL, screen->GetZoom() ) ) != FALSE )
|
DrawList, NULL, screen->GetZoom() ) ) != FALSE )
|
||||||
|
@ -154,11 +154,11 @@ EDA_BaseStruct* PickStruct( EDA_Rect& block,
|
||||||
EXCHG( x, OrigX );
|
EXCHG( x, OrigX );
|
||||||
if( y < OrigY )
|
if( y < OrigY )
|
||||||
EXCHG( y, OrigY );
|
EXCHG( y, OrigY );
|
||||||
|
|
||||||
EDA_BaseStruct* DrawList = screen->EEDrawList;
|
EDA_BaseStruct* DrawList = screen->EEDrawList;
|
||||||
if( screen==NULL || DrawList == NULL )
|
if( screen==NULL || DrawList == NULL )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for( DrawStruct = DrawList; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext )
|
for( DrawStruct = DrawList; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext )
|
||||||
{
|
{
|
||||||
if( DrawStructInBox( OrigX, OrigY, x, y, DrawStruct ) )
|
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): */
|
/* Only one item was picked - convert to scalar form (no list): */
|
||||||
PickedItem = PickedList;
|
PickedItem = PickedList;
|
||||||
PickedList = (DrawPickedStruct*) PickedList->m_PickedStruct;
|
PickedList = (DrawPickedStruct*) PickedList->m_PickedStruct;
|
||||||
SAFE_DELETE( PickedItem ) ;
|
SAFE_DELETE( PickedItem ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( PickedList != NULL )
|
if( PickedList != NULL )
|
||||||
|
@ -225,7 +225,7 @@ bool SnapPoint2( const wxPoint& PosRef, int SearchMask,
|
||||||
#define STRUCT ( (DrawPolylineStruct*) DrawList )
|
#define STRUCT ( (DrawPolylineStruct*) DrawList )
|
||||||
if( !( SearchMask & (DRAWITEM | WIREITEM | BUSITEM) ) )
|
if( !( SearchMask & (DRAWITEM | WIREITEM | BUSITEM) ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Points = STRUCT->m_Points;
|
Points = STRUCT->m_Points;
|
||||||
NumOfPoints2 = STRUCT->m_NumOfPoints * 2;
|
NumOfPoints2 = STRUCT->m_NumOfPoints * 2;
|
||||||
for( i = 0; i < NumOfPoints2 - 2; i += 2 )
|
for( i = 0; i < NumOfPoints2 - 2; i += 2 )
|
||||||
|
@ -341,10 +341,10 @@ bool SnapPoint2( const wxPoint& PosRef, int SearchMask,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawTextStruct*) DrawList )
|
#define STRUCT ( (SCH_TEXT*) DrawList )
|
||||||
if( !( SearchMask & (TEXTITEM | LABELITEM) ) )
|
if( !( SearchMask & (TEXTITEM | LABELITEM) ) )
|
||||||
break;
|
break;
|
||||||
dx = STRUCT->m_Size.x * STRUCT->GetLength();
|
dx = STRUCT->m_Size.x * STRUCT->GetLength();
|
||||||
|
@ -379,10 +379,10 @@ bool SnapPoint2( const wxPoint& PosRef, int SearchMask,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawLabelStruct*) DrawList )
|
#define STRUCT ( (SCH_LABEL*) DrawList )
|
||||||
if( !(SearchMask & LABELITEM) )
|
if( !(SearchMask & LABELITEM) )
|
||||||
break;
|
break;
|
||||||
dx = STRUCT->m_Size.x * ( STRUCT->GetLength() + 1 ); /* longueur */
|
dx = STRUCT->m_Size.x * ( STRUCT->GetLength() + 1 ); /* longueur */
|
||||||
|
@ -416,14 +416,14 @@ bool SnapPoint2( const wxPoint& PosRef, int SearchMask,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
if( !( SearchMask & (LIBITEM | FIELDCMPITEM) ) )
|
if( !( SearchMask & (LIBITEM | FIELDCMPITEM) ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if( SearchMask & FIELDCMPITEM )
|
if( SearchMask & FIELDCMPITEM )
|
||||||
{
|
{
|
||||||
PartTextStruct* Field;
|
PartTextStruct* Field;
|
||||||
EDA_SchComponentStruct* DrawLibItem = (EDA_SchComponentStruct*) DrawList;
|
SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) DrawList;
|
||||||
for( i = REFERENCE; i < NUMBER_OF_FIELDS; i++ )
|
for( i = REFERENCE; i < NUMBER_OF_FIELDS; i++ )
|
||||||
{
|
{
|
||||||
Field = &DrawLibItem->m_Field[i];
|
Field = &DrawLibItem->m_Field[i];
|
||||||
|
@ -442,7 +442,7 @@ bool SnapPoint2( const wxPoint& PosRef, int SearchMask,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (EDA_SchComponentStruct*) DrawList )
|
#define STRUCT ( (SCH_COMPONENT*) DrawList )
|
||||||
EDA_Rect BoundaryBox = STRUCT->GetBoundaryBox();
|
EDA_Rect BoundaryBox = STRUCT->GetBoundaryBox();
|
||||||
if( BoundaryBox.Inside( x, y ) )
|
if( BoundaryBox.Inside( x, y ) )
|
||||||
{
|
{
|
||||||
|
@ -564,10 +564,10 @@ bool DrawStructInBox( int x1, int y1, int x2, int y2,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawTextStruct*) DrawStruct )
|
#define STRUCT ( (SCH_TEXT*) DrawStruct )
|
||||||
dx = STRUCT->m_Size.x * STRUCT->GetLength();
|
dx = STRUCT->m_Size.x * STRUCT->GetLength();
|
||||||
dy = STRUCT->m_Size.y;
|
dy = STRUCT->m_Size.y;
|
||||||
xt1 = xt2 = STRUCT->m_Pos.x;
|
xt1 = xt2 = STRUCT->m_Pos.x;
|
||||||
|
@ -596,10 +596,10 @@ bool DrawStructInBox( int x1, int y1, int x2, int y2,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawLabelStruct*) DrawStruct )
|
#define STRUCT ( (SCH_LABEL*) DrawStruct )
|
||||||
dx = STRUCT->m_Size.x * ( STRUCT->GetLength() + 1); /* longueur totale */
|
dx = STRUCT->m_Size.x * ( STRUCT->GetLength() + 1); /* longueur totale */
|
||||||
dy = STRUCT->m_Size.y / 2; /* Demi hauteur */
|
dy = STRUCT->m_Size.y / 2; /* Demi hauteur */
|
||||||
xt1 = xt2 = STRUCT->m_Pos.x;
|
xt1 = xt2 = STRUCT->m_Pos.x;
|
||||||
|
@ -628,10 +628,10 @@ bool DrawStructInBox( int x1, int y1, int x2, int y2,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
{
|
{
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (EDA_SchComponentStruct*) DrawStruct )
|
#define STRUCT ( (SCH_COMPONENT*) DrawStruct )
|
||||||
EDA_Rect BoundaryBox = STRUCT->GetBoundaryBox();
|
EDA_Rect BoundaryBox = STRUCT->GetBoundaryBox();
|
||||||
xt1 = BoundaryBox.GetX();
|
xt1 = BoundaryBox.GetX();
|
||||||
yt1 = BoundaryBox.GetY();
|
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
|
/* Routine detectant que le rectangle 1 (Box1) et le rectangle 2 (Box2) se
|
||||||
* recouvrent.
|
* recouvrent.
|
||||||
* Retourne TRUE ou FALSE.
|
* Retourne TRUE ou FALSE.
|
||||||
*
|
*
|
||||||
* On Considere ici qu'il y a recouvrement si l'un au moins des coins
|
* On Considere ici qu'il y a recouvrement si l'un au moins des coins
|
||||||
* d'un 'Box' est compris dans l'autre
|
* 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)
|
/* Routine detectant que le point pX,pY est dans le rectangle (Box)
|
||||||
* Retourne TRUE ou FALSE.
|
* Retourne TRUE ou FALSE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
if( BoxX1 > BoxX2 )
|
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,
|
LibDrawPin* LocatePinByNumber( const wxString & ePin_Number,
|
||||||
EDA_SchComponentStruct* eComponent )
|
SCH_COMPONENT* eComponent )
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
|
|
||||||
/** Find a PIN in a component
|
/** Find a PIN in a component
|
||||||
|
@ -1053,11 +1053,11 @@ LibDrawPin* LocatePinByNumber( const wxString & ePin_Number,
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
LibEDA_BaseStruct* DrawItem;
|
LibEDA_BaseStruct* DrawItem;
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
LibDrawPin* Pin;
|
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 )
|
if( Entry == NULL )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -1067,8 +1067,8 @@ LibDrawPin* LocatePinByNumber( const wxString & ePin_Number,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
Unit = eComponent->m_Multi;
|
Unit = eComponent->m_Multi;
|
||||||
Convert = eComponent->m_Convert;
|
Convert = eComponent->m_Convert;
|
||||||
|
|
||||||
DrawItem = Entry->m_Drawings;
|
DrawItem = Entry->m_Drawings;
|
||||||
for( ; DrawItem != NULL; DrawItem = DrawItem->Next() )
|
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) )
|
if( Convert && DrawItem->m_Convert && (DrawItem->m_Convert != Convert) )
|
||||||
continue;
|
continue;
|
||||||
wxString pNumber;
|
wxString pNumber;
|
||||||
Pin->ReturnPinStringNum( pNumber );
|
Pin->ReturnPinStringNum( pNumber );
|
||||||
if ( ePin_Number == 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,
|
LibEDA_BaseStruct* LocatePin( const wxPoint& RefPos,
|
||||||
EDA_LibComponentStruct* Entry,
|
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
|
/* 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,
|
LibDrawPin* LocateAnyPin( EDA_BaseStruct* DrawList, const wxPoint& RefPos,
|
||||||
EDA_SchComponentStruct** libpart )
|
SCH_COMPONENT** libpart )
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
{
|
{
|
||||||
EDA_BaseStruct* DrawStruct;
|
EDA_BaseStruct* DrawStruct;
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
EDA_SchComponentStruct* LibItem = NULL;
|
SCH_COMPONENT* LibItem = NULL;
|
||||||
LibDrawPin* Pin = NULL;
|
LibDrawPin* Pin = NULL;
|
||||||
|
|
||||||
for( DrawStruct = DrawList; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext )
|
for( DrawStruct = DrawList; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() != DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( DrawStruct->Type() != TYPE_SCH_COMPONENT )
|
||||||
continue;
|
continue;
|
||||||
LibItem = (EDA_SchComponentStruct*) DrawStruct;
|
LibItem = (SCH_COMPONENT*) DrawStruct;
|
||||||
Entry = FindLibPart( LibItem->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
|
Entry = FindLibPart( LibItem->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
|
||||||
if( Entry == NULL )
|
if( Entry == NULL )
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -24,10 +24,10 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet );
|
||||||
static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, bool use_netnames );
|
static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, bool use_netnames );
|
||||||
|
|
||||||
static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet );
|
static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet );
|
||||||
static void AddPinToComponentPinList( EDA_SchComponentStruct* Component,
|
static void AddPinToComponentPinList( SCH_COMPONENT* Component,
|
||||||
DrawSheetPath* sheet,
|
DrawSheetPath* sheet,
|
||||||
LibDrawPin* PinEntry );
|
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 int SortPinsByNum( ObjetNetListStruct** Pin1, ObjetNetListStruct** Pin2 );
|
||||||
static void EraseDuplicatePins( ObjetNetListStruct** TabPin, int NbrPin );
|
static void EraseDuplicatePins( ObjetNetListStruct** TabPin, int NbrPin );
|
||||||
|
|
||||||
|
@ -92,20 +92,20 @@ void WriteNetList( WinEDA_SchematicFrame* frame, const wxString& FileNameNL,
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
static EDA_SchComponentStruct* FindNextComponentAndCreatPinList(
|
static SCH_COMPONENT* FindNextComponentAndCreatPinList(
|
||||||
EDA_BaseStruct* DrawList, DrawSheetPath* sheet)
|
EDA_BaseStruct* DrawList, DrawSheetPath* sheet)
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
/* Find a "suitable" component from the DrawList
|
/* Find a "suitable" component from the DrawList
|
||||||
* build its pin list s_SortedComponentPinList.
|
* build its pin list s_SortedComponentPinList.
|
||||||
* The list is sorted by pin num
|
* The list is sorted by pin num
|
||||||
* A suitable component is a "new" real component (power symbols are not considered)
|
* A suitable component is a "new" real component (power symbols are not considered)
|
||||||
*
|
*
|
||||||
* alloc memory for s_SortedComponentPinList if s_SortedComponentPinList == NULL
|
* alloc memory for s_SortedComponentPinList if s_SortedComponentPinList == NULL
|
||||||
* Must be deallocated by the user
|
* Must be deallocated by the user
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
EDA_SchComponentStruct* Component = NULL;
|
SCH_COMPONENT* Component = NULL;
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
LibEDA_BaseStruct* DEntry;
|
LibEDA_BaseStruct* DEntry;
|
||||||
|
|
||||||
|
@ -113,23 +113,23 @@ static EDA_SchComponentStruct* FindNextComponentAndCreatPinList(
|
||||||
|
|
||||||
for( ; DrawList != NULL; DrawList = DrawList->Next() )
|
for( ; DrawList != NULL; DrawList = DrawList->Next() )
|
||||||
{
|
{
|
||||||
if( DrawList->Type() != DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( DrawList->Type() != TYPE_SCH_COMPONENT )
|
||||||
continue;
|
continue;
|
||||||
Component = (EDA_SchComponentStruct*) DrawList;
|
Component = (SCH_COMPONENT*) DrawList;
|
||||||
|
|
||||||
/* already tested ? : */
|
/* already tested ? : */
|
||||||
bool found = false;
|
bool found = false;
|
||||||
for(unsigned int i =0; i<Component->m_UsedOnSheets.GetCount(); i++){
|
for(unsigned int i =0; i<Component->m_UsedOnSheets.GetCount(); i++){
|
||||||
if( Component->m_UsedOnSheets.Item(i) == *sheet ){
|
if( Component->m_UsedOnSheets.Item(i) == *sheet ){
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( found ) continue;
|
if( found ) continue;
|
||||||
//if( Component->m_FlagControlMulti == 1 )
|
//if( Component->m_FlagControlMulti == 1 )
|
||||||
// continue; /* yes */
|
// continue; /* yes */
|
||||||
// removed because with multiple instances of one schematic
|
// removed because with multiple instances of one schematic
|
||||||
// (several sheets pointing to 1 screen), this will be erroneously be toggled.
|
// (several sheets pointing to 1 screen), this will be erroneously be toggled.
|
||||||
|
|
||||||
Entry = FindLibPart( Component->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
|
Entry = FindLibPart( Component->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
|
||||||
if( Entry == NULL )
|
if( Entry == NULL )
|
||||||
|
@ -137,7 +137,7 @@ static EDA_SchComponentStruct* FindNextComponentAndCreatPinList(
|
||||||
|
|
||||||
/* Power symbol and other component which have the reference starting by
|
/* Power symbol and other component which have the reference starting by
|
||||||
* "#" are not included in netlist (pseudo components) */
|
* "#" are not included in netlist (pseudo components) */
|
||||||
wxString str = Component->GetRef(sheet);
|
wxString str = Component->GetRef(sheet);
|
||||||
if( str[0] == '#' )
|
if( str[0] == '#' )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -164,8 +164,8 @@ static EDA_SchComponentStruct* FindNextComponentAndCreatPinList(
|
||||||
}
|
}
|
||||||
|
|
||||||
//Component->m_FlagControlMulti = 1;
|
//Component->m_FlagControlMulti = 1;
|
||||||
Component->m_UsedOnSheets.Add(*sheet);
|
Component->m_UsedOnSheets.Add(*sheet);
|
||||||
|
|
||||||
if( Entry->m_UnitCount > 1 )
|
if( Entry->m_UnitCount > 1 )
|
||||||
FindOthersUnits( Component, sheet);
|
FindOthersUnits( Component, sheet);
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ static wxString ReturnPinNetName( ObjetNetListStruct* Pin,
|
||||||
continue;
|
continue;
|
||||||
if( ( g_TabObjNet[jj].m_Type != NET_HIERLABEL)
|
if( ( g_TabObjNet[jj].m_Type != NET_HIERLABEL)
|
||||||
&& ( g_TabObjNet[jj].m_Type != NET_LABEL)
|
&& ( g_TabObjNet[jj].m_Type != NET_LABEL)
|
||||||
&& ( g_TabObjNet[jj].m_Type != NET_PINLABEL) )
|
&& ( g_TabObjNet[jj].m_Type != NET_PINLABEL) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
NetName = *g_TabObjNet[jj].m_Label;
|
NetName = *g_TabObjNet[jj].m_Label;
|
||||||
|
@ -221,9 +221,9 @@ static wxString ReturnPinNetName( ObjetNetListStruct* Pin,
|
||||||
if( !NetName.IsEmpty() )
|
if( !NetName.IsEmpty() )
|
||||||
{
|
{
|
||||||
if( g_TabObjNet[jj].m_Type != NET_PINLABEL ){
|
if( g_TabObjNet[jj].m_Type != NET_PINLABEL ){
|
||||||
NetName = g_TabObjNet[jj].m_SheetList.PathHumanReadable()
|
NetName = g_TabObjNet[jj].m_SheetList.PathHumanReadable()
|
||||||
+ NetName;
|
+ NetName;
|
||||||
}
|
}
|
||||||
//NetName << wxT("_") << g_TabObjNet[jj].m_SheetList.PathHumanReadable();
|
//NetName << wxT("_") << g_TabObjNet[jj].m_SheetList.PathHumanReadable();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -241,13 +241,13 @@ void Write_GENERIC_NetList( WinEDA_SchematicFrame* frame,
|
||||||
|
|
||||||
/* Create a generic netlist, and call an external netlister
|
/* Create a generic netlist, and call an external netlister
|
||||||
* to change the netlist syntax and create the file
|
* to change the netlist syntax and create the file
|
||||||
* -- does this still work?
|
* -- does this still work?
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
wxString Line, FootprintName;
|
wxString Line, FootprintName;
|
||||||
DrawSheetPath* sheet;
|
DrawSheetPath* sheet;
|
||||||
EDA_BaseStruct* DrawList;
|
EDA_BaseStruct* DrawList;
|
||||||
EDA_SchComponentStruct* Component;
|
SCH_COMPONENT* Component;
|
||||||
wxString netname;
|
wxString netname;
|
||||||
int ii;
|
int ii;
|
||||||
FILE* tmpfile;
|
FILE* tmpfile;
|
||||||
|
@ -267,14 +267,14 @@ void Write_GENERIC_NetList( WinEDA_SchematicFrame* frame,
|
||||||
|
|
||||||
/* Create netlist module section */
|
/* Create netlist module section */
|
||||||
fprintf( tmpfile, "$BeginComponentList\n" );
|
fprintf( tmpfile, "$BeginComponentList\n" );
|
||||||
EDA_SheetList SheetList( NULL );
|
EDA_SheetList SheetList( NULL );
|
||||||
|
|
||||||
for( sheet = SheetList.GetFirst(); sheet != NULL; sheet = SheetList.GetNext() )
|
for( sheet = SheetList.GetFirst(); sheet != NULL; sheet = SheetList.GetNext() )
|
||||||
{
|
{
|
||||||
for( DrawList = sheet->LastDrawList(); DrawList != NULL; DrawList = DrawList->Pnext )
|
for( DrawList = sheet->LastDrawList(); DrawList != NULL; DrawList = DrawList->Pnext )
|
||||||
{
|
{
|
||||||
DrawList = Component = FindNextComponentAndCreatPinList( DrawList, sheet );
|
DrawList = Component = FindNextComponentAndCreatPinList( DrawList, sheet );
|
||||||
|
|
||||||
if( Component == NULL )
|
if( Component == NULL )
|
||||||
break; // No component left
|
break; // No component left
|
||||||
|
|
||||||
|
@ -363,11 +363,11 @@ static void ClearUsedFlags( WinEDA_SchematicFrame* frame )
|
||||||
DrawList = screen->EEDrawList;
|
DrawList = screen->EEDrawList;
|
||||||
while( DrawList )
|
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_FlagControlMulti = 0;
|
||||||
Component->m_UsedOnSheets.Clear();
|
Component->m_UsedOnSheets.Clear();
|
||||||
}
|
}
|
||||||
DrawList = DrawList->Pnext;
|
DrawList = DrawList->Pnext;
|
||||||
}
|
}
|
||||||
|
@ -384,7 +384,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f,
|
||||||
* si use_netnames = TRUE
|
* si use_netnames = TRUE
|
||||||
* les nodes sont identifies par le netname
|
* les nodes sont identifies par le netname
|
||||||
* sinon les nodes sont identifies par le netnumber
|
* sinon les nodes sont identifies par le netnumber
|
||||||
*
|
*
|
||||||
* tous les textes graphiques commen<EFBFBD>ant par [.-+]pspice ou [.-+]gnucap
|
* tous les textes graphiques commen<EFBFBD>ant par [.-+]pspice ou [.-+]gnucap
|
||||||
* sont consid<EFBFBD>r<EFBFBD>s comme des commandes a placer dans la netliste
|
* sont consid<EFBFBD>r<EFBFBD>s comme des commandes a placer dans la netliste
|
||||||
* [.-]pspice ou gnucap sont en debut
|
* [.-]pspice ou gnucap sont en debut
|
||||||
|
@ -394,7 +394,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f,
|
||||||
char Line[1024];
|
char Line[1024];
|
||||||
DrawSheetPath* sheet;
|
DrawSheetPath* sheet;
|
||||||
EDA_BaseStruct* DrawList;
|
EDA_BaseStruct* DrawList;
|
||||||
EDA_SchComponentStruct* Component;
|
SCH_COMPONENT* Component;
|
||||||
int ii, nbitems;
|
int ii, nbitems;
|
||||||
wxString text;
|
wxString text;
|
||||||
wxArrayString SpiceCommandAtBeginFile, SpiceCommandAtEndFile;
|
wxArrayString SpiceCommandAtBeginFile, SpiceCommandAtEndFile;
|
||||||
|
@ -416,9 +416,9 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f,
|
||||||
for( DrawList = sheet->LastDrawList(); DrawList != NULL; DrawList = DrawList->Pnext )
|
for( DrawList = sheet->LastDrawList(); DrawList != NULL; DrawList = DrawList->Pnext )
|
||||||
{
|
{
|
||||||
wxChar ident;
|
wxChar ident;
|
||||||
if( DrawList->Type() != DRAW_TEXT_STRUCT_TYPE )
|
if( DrawList->Type() != TYPE_SCH_TEXT )
|
||||||
continue;
|
continue;
|
||||||
#define DRAWTEXT ( (DrawTextStruct*) DrawList )
|
#define DRAWTEXT ( (SCH_TEXT*) DrawList )
|
||||||
text = DRAWTEXT->m_Text; if( text.IsEmpty() )
|
text = DRAWTEXT->m_Text; if( text.IsEmpty() )
|
||||||
continue;
|
continue;
|
||||||
ident = text.GetChar( 0 );
|
ident = text.GetChar( 0 );
|
||||||
|
@ -536,9 +536,9 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
|
||||||
char Buf[256];
|
char Buf[256];
|
||||||
DrawSheetPath* sheet;
|
DrawSheetPath* sheet;
|
||||||
EDA_BaseStruct* DrawList;
|
EDA_BaseStruct* DrawList;
|
||||||
EDA_SchComponentStruct* Component;
|
SCH_COMPONENT* Component;
|
||||||
int ii;
|
int ii;
|
||||||
ListComponent* CmpList = NULL;
|
ListComponent* CmpList = NULL;
|
||||||
int CmpListCount = 0, CmpListSize = 1000;
|
int CmpListCount = 0, CmpListSize = 1000;
|
||||||
|
|
||||||
DateAndTime( Buf );
|
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 );
|
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*/
|
ClearUsedFlags( frame ); /* Reset the flags FlagControlMulti in all schematic files*/
|
||||||
|
|
||||||
EDA_SheetList SheetList( NULL );
|
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( Entry->m_FootprintList.GetCount() != 0 ) /* Put in list */
|
||||||
{
|
{
|
||||||
if( CmpList == NULL ){
|
if( CmpList == NULL ){
|
||||||
CmpList = (ListComponent*)
|
CmpList = (ListComponent*)
|
||||||
MyZMalloc( sizeof(ListComponent) * CmpListSize );
|
MyZMalloc( sizeof(ListComponent) * CmpListSize );
|
||||||
}
|
}
|
||||||
if( CmpListCount >= CmpListSize )
|
if( CmpListCount >= CmpListSize )
|
||||||
{
|
{
|
||||||
CmpListSize += 1000;
|
CmpListSize += 1000;
|
||||||
CmpList = (ListComponent*) realloc(
|
CmpList = (ListComponent*) realloc(
|
||||||
CmpList,
|
CmpList,
|
||||||
sizeof(ListComponent) * CmpListSize );
|
sizeof(ListComponent) * CmpListSize );
|
||||||
}
|
}
|
||||||
CmpList[CmpListCount].m_Comp = Component;
|
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++;
|
CmpListCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -593,7 +593,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
|
||||||
else
|
else
|
||||||
FootprintName = wxT( "$noname" );
|
FootprintName = wxT( "$noname" );
|
||||||
|
|
||||||
Line = Component->GetRef(sheet);
|
Line = Component->GetRef(sheet);
|
||||||
fprintf( f, " ( %s %s",
|
fprintf( f, " ( %s %s",
|
||||||
CONV_TO_UTF8(Component->GetPath(sheet)),
|
CONV_TO_UTF8(Component->GetPath(sheet)),
|
||||||
CONV_TO_UTF8( FootprintName ) );
|
CONV_TO_UTF8( FootprintName ) );
|
||||||
|
@ -642,13 +642,13 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
|
||||||
{
|
{
|
||||||
Component = CmpList[ii].m_Comp;
|
Component = CmpList[ii].m_Comp;
|
||||||
Entry = FindLibPart( Component->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
|
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( "_" ) );
|
//Line.Replace( wxT( " " ), wxT( "_" ) );
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
for(i=0; i<sizeof(CmpList[ii].m_Ref) && CmpList[ii].m_Ref[i]; i++){
|
for(i=0; i<sizeof(CmpList[ii].m_Ref) && CmpList[ii].m_Ref[i]; i++){
|
||||||
if(CmpList[ii].m_Ref[i] == ' ')
|
if(CmpList[ii].m_Ref[i] == ' ')
|
||||||
CmpList[ii].m_Ref[i] = '_';
|
CmpList[ii].m_Ref[i] = '_';
|
||||||
}
|
}
|
||||||
fprintf( f, "$component %s\n", CmpList[ii].m_Ref );
|
fprintf( f, "$component %s\n", CmpList[ii].m_Ref );
|
||||||
/* Write the footprint list */
|
/* Write the footprint list */
|
||||||
for( unsigned int jj = 0; jj < Entry->m_FootprintList.GetCount(); jj++ )
|
for( unsigned int jj = 0; jj < Entry->m_FootprintList.GetCount(); jj++ )
|
||||||
|
@ -675,8 +675,8 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************************/
|
/*************************************************************************************/
|
||||||
static void AddPinToComponentPinList( EDA_SchComponentStruct* Component,
|
static void AddPinToComponentPinList( SCH_COMPONENT* Component,
|
||||||
DrawSheetPath* sheetlist, LibDrawPin* Pin )
|
DrawSheetPath* sheetlist, LibDrawPin* Pin )
|
||||||
/*************************************************************************************/
|
/*************************************************************************************/
|
||||||
|
|
||||||
/* Add a new pin description in the pin list s_SortedComponentPinList
|
/* Add a new pin description in the pin list s_SortedComponentPinList
|
||||||
|
@ -693,8 +693,8 @@ static void AddPinToComponentPinList( EDA_SchComponentStruct* Component,
|
||||||
continue;
|
continue;
|
||||||
if( g_TabObjNet[ii].m_Link != Component )
|
if( g_TabObjNet[ii].m_Link != Component )
|
||||||
continue;
|
continue;
|
||||||
if( g_TabObjNet[ii].m_SheetList != *sheetlist )
|
if( g_TabObjNet[ii].m_SheetList != *sheetlist )
|
||||||
continue;
|
continue;
|
||||||
if( g_TabObjNet[ii].m_PinNum != Pin->m_PinNum )
|
if( g_TabObjNet[ii].m_PinNum != Pin->m_PinNum )
|
||||||
continue;
|
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,
|
/* 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_BaseStruct* DrawList;
|
||||||
EDA_SchComponentStruct* Component2;
|
SCH_COMPONENT* Component2;
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
LibEDA_BaseStruct* DEntry;
|
LibEDA_BaseStruct* DEntry;
|
||||||
DrawSheetPath* sheet;
|
DrawSheetPath* sheet;
|
||||||
wxString str;
|
wxString str;
|
||||||
|
|
||||||
EDA_SheetList SheetList( NULL );
|
EDA_SheetList SheetList( NULL );
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
bool found;
|
bool found;
|
||||||
for( sheet = SheetList.GetFirst(); sheet != NULL; sheet = SheetList.GetNext() )
|
for( sheet = SheetList.GetFirst(); sheet != NULL; sheet = SheetList.GetNext() )
|
||||||
{
|
{
|
||||||
DrawList = sheet->LastDrawList();
|
DrawList = sheet->LastDrawList();
|
||||||
|
@ -767,26 +767,26 @@ static void FindOthersUnits( EDA_SchComponentStruct* Component_in, DrawSheetPath
|
||||||
{
|
{
|
||||||
switch( DrawList->Type() )
|
switch( DrawList->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
Component2 = (EDA_SchComponentStruct*) DrawList;
|
Component2 = (SCH_COMPONENT*) DrawList;
|
||||||
|
|
||||||
found = false;
|
found = false;
|
||||||
for( i =0; i<Component2->m_UsedOnSheets.GetCount(); i++){
|
for( i =0; i<Component2->m_UsedOnSheets.GetCount(); i++){
|
||||||
if( Component2->m_UsedOnSheets.Item(i) == *Sheet_in ){
|
if( Component2->m_UsedOnSheets.Item(i) == *Sheet_in ){
|
||||||
found = true;
|
found = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( found ) break;
|
if( found ) break;
|
||||||
//if( Component2->m_FlagControlMulti == 1 ) //has it been used? (on this sheet?)
|
//if( Component2->m_FlagControlMulti == 1 ) //has it been used? (on this sheet?)
|
||||||
// break;
|
// break;
|
||||||
str = Component2->GetRef(sheet);
|
str = Component2->GetRef(sheet);
|
||||||
if( str.CmpNoCase( Component_in->GetRef(Sheet_in) ) != 0 )
|
if( str.CmpNoCase( Component_in->GetRef(Sheet_in) ) != 0 )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Entry = FindLibPart( Component2->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
|
Entry = FindLibPart( Component2->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
|
||||||
if( Entry == NULL )
|
if( Entry == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if( str[0] == '#' )
|
if( str[0] == '#' )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -808,8 +808,8 @@ static void FindOthersUnits( EDA_SchComponentStruct* Component_in, DrawSheetPath
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Component2->m_UsedOnSheets.Add(*Sheet_in);
|
Component2->m_UsedOnSheets.Add(*Sheet_in);
|
||||||
//Component2->m_FlagControlMulti = 1; //mark it as used..
|
//Component2->m_FlagControlMulti = 1; //mark it as used..
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -830,12 +830,12 @@ static int SortPinsByNum( ObjetNetListStruct** Pin1, ObjetNetListStruct** Pin2 )
|
||||||
* du tableau des pins s_SortedComponentPinList par qsort()
|
* du tableau des pins s_SortedComponentPinList par qsort()
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
ObjetNetListStruct* Obj1, * Obj2;
|
ObjetNetListStruct* Obj1, * Obj2;
|
||||||
int Num1, Num2;
|
int Num1, Num2;
|
||||||
char Line[5];
|
char Line[5];
|
||||||
|
|
||||||
Obj1 = *Pin1; Obj2 = *Pin2;
|
Obj1 = *Pin1; Obj2 = *Pin2;
|
||||||
Num1 = Obj1->m_PinNum; Num2 = Obj2->m_PinNum;
|
Num1 = Obj1->m_PinNum; Num2 = Obj2->m_PinNum;
|
||||||
Line[4] = 0; memcpy( Line, &Num1, 4 ); Num1 = atoi( Line );
|
Line[4] = 0; memcpy( Line, &Num1, 4 ); Num1 = atoi( Line );
|
||||||
memcpy( Line, &Num2, 4 ); Num2 = atoi( Line );
|
memcpy( Line, &Num2, 4 ); Num2 = atoi( Line );
|
||||||
return Num1 - Num2;
|
return Num1 - Num2;
|
||||||
|
@ -853,7 +853,7 @@ static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet )
|
||||||
int ii, jj;
|
int ii, jj;
|
||||||
int NetCode, LastNetCode = -1;
|
int NetCode, LastNetCode = -1;
|
||||||
int SameNetcodeCount = 0;
|
int SameNetcodeCount = 0;
|
||||||
EDA_SchComponentStruct* Cmp;
|
SCH_COMPONENT* Cmp;
|
||||||
wxString NetName, CmpRef;
|
wxString NetName, CmpRef;
|
||||||
wxString NetcodeName;
|
wxString NetcodeName;
|
||||||
char FirstItemInNet[1024];
|
char FirstItemInNet[1024];
|
||||||
|
@ -881,13 +881,13 @@ static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet )
|
||||||
if( !NetName.IsEmpty() )
|
if( !NetName.IsEmpty() )
|
||||||
{
|
{
|
||||||
NetcodeName += NetName;
|
NetcodeName += NetName;
|
||||||
if( g_TabObjNet[jj].m_Type != NET_PINLABEL ){
|
if( g_TabObjNet[jj].m_Type != NET_PINLABEL ){
|
||||||
// usual net name, add in the sheet path
|
// usual net name, add in the sheet path
|
||||||
NetcodeName = g_TabObjNet[jj].m_SheetList.PathHumanReadable()
|
NetcodeName = g_TabObjNet[jj].m_SheetList.PathHumanReadable()
|
||||||
+ NetcodeName;
|
+ NetcodeName;
|
||||||
//NetcodeName << wxT("_") <<
|
//NetcodeName << wxT("_") <<
|
||||||
// g_TabObjNet[jj].m_SheetList.PathHumanReadable();
|
// g_TabObjNet[jj].m_SheetList.PathHumanReadable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
NetcodeName += wxT( "\"" );
|
NetcodeName += wxT( "\"" );
|
||||||
LastNetCode = NetCode;
|
LastNetCode = NetCode;
|
||||||
|
@ -896,8 +896,8 @@ static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet )
|
||||||
if( ObjNet[ii].m_Type != NET_PIN )
|
if( ObjNet[ii].m_Type != NET_PIN )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Cmp = (EDA_SchComponentStruct*) ObjNet[ii].m_Link;
|
Cmp = (SCH_COMPONENT*) ObjNet[ii].m_Link;
|
||||||
CmpRef = Cmp->GetRef(&ObjNet[ii].m_SheetList); //is this correct?
|
CmpRef = Cmp->GetRef(&ObjNet[ii].m_SheetList); //is this correct?
|
||||||
if( CmpRef.StartsWith( wxT( "#" ) ) )
|
if( CmpRef.StartsWith( wxT( "#" ) ) )
|
||||||
continue; // Pseudo component (Like Power symbol)
|
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"
|
* ..APP "Cadstar RINF Output - Version 6.0.2.3"
|
||||||
* ..UNI INCH 1000.0 in
|
* ..UNI INCH 1000.0 in
|
||||||
* ..TYP FULL
|
* ..TYP FULL
|
||||||
*
|
*
|
||||||
* liste des composants:
|
* liste des composants:
|
||||||
* ..ADD_COM X1 "CNT D41612 (48PTS MC CONTOUR)"
|
* ..ADD_COM X1 "CNT D41612 (48PTS MC CONTOUR)"
|
||||||
* ..ADD_COM U2 "74HCT245D" "74HCT245D"
|
* ..ADD_COM U2 "74HCT245D" "74HCT245D"
|
||||||
*
|
*
|
||||||
* Connexions:
|
* Connexions:
|
||||||
* ..ADD_TER RR2 6 "$42"
|
* ..ADD_TER RR2 6 "$42"
|
||||||
* ..TER U1 100
|
* ..TER U1 100
|
||||||
* CA 6
|
* CA 6
|
||||||
*
|
*
|
||||||
* ..ADD_TER U2 6 "$59"
|
* ..ADD_TER U2 6 "$59"
|
||||||
* ..TER U7 39
|
* ..TER U7 39
|
||||||
* U6 17
|
* U6 17
|
||||||
* U1 122
|
* U1 122
|
||||||
*
|
*
|
||||||
* ..ADD_TER P2 1 "$9"
|
* ..ADD_TER P2 1 "$9"
|
||||||
* ..TER T3 1
|
* ..TER T3 1
|
||||||
* U1 14
|
* U1 14
|
||||||
|
@ -962,7 +962,7 @@ static void WriteNetListCADSTAR( WinEDA_SchematicFrame* frame, FILE* f )
|
||||||
char Line[1024];
|
char Line[1024];
|
||||||
DrawSheetPath* sheet;
|
DrawSheetPath* sheet;
|
||||||
EDA_BaseStruct* DrawList;
|
EDA_BaseStruct* DrawList;
|
||||||
EDA_SchComponentStruct* Component;
|
SCH_COMPONENT* Component;
|
||||||
wxString Title = g_Main_Title + wxT( " " ) + GetBuildVersion();
|
wxString Title = g_Main_Title + wxT( " " ) + GetBuildVersion();
|
||||||
|
|
||||||
fprintf( f, "%sHEA\n", CONV_TO_UTF8( StartLine ) );
|
fprintf( f, "%sHEA\n", CONV_TO_UTF8( StartLine ) );
|
||||||
|
@ -1031,7 +1031,7 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet )
|
||||||
wxString NetcodeName, InitNetDescLine;
|
wxString NetcodeName, InitNetDescLine;
|
||||||
int ii, jj, print_ter = 0;
|
int ii, jj, print_ter = 0;
|
||||||
int NetCode, LastNetCode = -1;
|
int NetCode, LastNetCode = -1;
|
||||||
EDA_SchComponentStruct* Cmp;
|
SCH_COMPONENT* Cmp;
|
||||||
wxString NetName;
|
wxString NetName;
|
||||||
|
|
||||||
for( ii = 0; ii < g_NbrObjNet; ii++ )
|
for( ii = 0; ii < g_NbrObjNet; ii++ )
|
||||||
|
@ -1060,11 +1060,11 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet )
|
||||||
{
|
{
|
||||||
NetcodeName += NetName;
|
NetcodeName += NetName;
|
||||||
if( g_TabObjNet[jj].m_Type != NET_PINLABEL ){
|
if( g_TabObjNet[jj].m_Type != NET_PINLABEL ){
|
||||||
NetcodeName = g_TabObjNet[jj].m_SheetList.PathHumanReadable()
|
NetcodeName = g_TabObjNet[jj].m_SheetList.PathHumanReadable()
|
||||||
+ NetcodeName;
|
+ NetcodeName;
|
||||||
//NetcodeName << wxT("_") <<
|
//NetcodeName << wxT("_") <<
|
||||||
// g_TabObjNet[jj].m_SheetList.PathHumanReadable();
|
// g_TabObjNet[jj].m_SheetList.PathHumanReadable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // this net has no name: create a default name $<net number>
|
else // this net has no name: create a default name $<net number>
|
||||||
NetcodeName << wxT( "$" ) << NetCode;
|
NetcodeName << wxT( "$" ) << NetCode;
|
||||||
|
@ -1080,8 +1080,8 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet )
|
||||||
if( ObjNet[ii].m_Flag != 0 )
|
if( ObjNet[ii].m_Flag != 0 )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Cmp = (EDA_SchComponentStruct*) ObjNet[ii].m_Link;
|
Cmp = (SCH_COMPONENT*) ObjNet[ii].m_Link;
|
||||||
wxString refstr = Cmp->GetRef(&(ObjNet[ii].m_SheetList));
|
wxString refstr = Cmp->GetRef(&(ObjNet[ii].m_SheetList));
|
||||||
if( refstr[0] == '#' )
|
if( refstr[0] == '#' )
|
||||||
continue; // Pseudo composant (symboles d'alims)
|
continue; // Pseudo composant (symboles d'alims)
|
||||||
|
|
||||||
|
@ -1127,11 +1127,11 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet )
|
||||||
break;
|
break;
|
||||||
if( ObjNet[jj].m_Type != NET_PIN )
|
if( ObjNet[jj].m_Type != NET_PIN )
|
||||||
continue;
|
continue;
|
||||||
EDA_SchComponentStruct* tstcmp =
|
SCH_COMPONENT* tstcmp =
|
||||||
(EDA_SchComponentStruct*) ObjNet[jj].m_Link;
|
(SCH_COMPONENT*) ObjNet[jj].m_Link;
|
||||||
wxString p = Cmp->GetPath( &( ObjNet[ii].m_SheetList ) );
|
wxString p = Cmp->GetPath( &( ObjNet[ii].m_SheetList ) );
|
||||||
wxString tstp = tstcmp->GetPath( &( ObjNet[jj].m_SheetList ) );
|
wxString tstp = tstcmp->GetPath( &( ObjNet[jj].m_SheetList ) );
|
||||||
if( p.Cmp(tstp) != 0 )
|
if( p.Cmp(tstp) != 0 )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( ObjNet[jj].m_PinNum == ObjNet[ii].m_PinNum )
|
if( ObjNet[jj].m_PinNum == ObjNet[ii].m_PinNum )
|
||||||
|
|
|
@ -44,7 +44,7 @@ static int s_PassNumber;
|
||||||
const char* ShowType( NetObjetType aType )
|
const char* ShowType( NetObjetType aType )
|
||||||
{
|
{
|
||||||
const char* ret;
|
const char* ret;
|
||||||
|
|
||||||
switch( aType )
|
switch( aType )
|
||||||
{
|
{
|
||||||
case NET_SEGMENT: ret = "segment"; break;
|
case NET_SEGMENT: ret = "segment"; break;
|
||||||
|
@ -52,10 +52,10 @@ const char* ShowType( NetObjetType aType )
|
||||||
case NET_JONCTION: ret = "junction"; break;
|
case NET_JONCTION: ret = "junction"; break;
|
||||||
case NET_LABEL: ret = "label"; break;
|
case NET_LABEL: ret = "label"; break;
|
||||||
case NET_HIERLABEL: ret = "hierlabel"; 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_BUSLABELMEMBER: ret = "buslblmember"; break;
|
||||||
case NET_HIERBUSLABELMEMBER: ret = "hierbuslblmember"; 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_SHEETBUSLABELMEMBER: ret = "sbuslblmember"; break;
|
||||||
case NET_SHEETLABEL: ret = "sheetlabel"; break;
|
case NET_SHEETLABEL: ret = "sheetlabel"; break;
|
||||||
case NET_PINLABEL: ret = "pinlabel"; break;
|
case NET_PINLABEL: ret = "pinlabel"; break;
|
||||||
|
@ -69,8 +69,8 @@ const char* ShowType( NetObjetType aType )
|
||||||
|
|
||||||
void ObjetNetListStruct::Show( std::ostream& out, int ndx )
|
void ObjetNetListStruct::Show( std::ostream& out, int ndx )
|
||||||
{
|
{
|
||||||
wxString path = m_SheetList.PathHumanReadable();
|
wxString path = m_SheetList.PathHumanReadable();
|
||||||
out << "<netItem ndx=\"" << ndx << '"' <<
|
out << "<netItem ndx=\"" << ndx << '"' <<
|
||||||
" type=\"" << ShowType(m_Type) << '"' <<
|
" type=\"" << ShowType(m_Type) << '"' <<
|
||||||
" netCode=\"" << GetNet() << '"' <<
|
" netCode=\"" << GetNet() << '"' <<
|
||||||
" sheet=\"" << CONV_TO_UTF8(path) << '"' <<
|
" sheet=\"" << CONV_TO_UTF8(path) << '"' <<
|
||||||
|
@ -80,12 +80,12 @@ void ObjetNetListStruct::Show( std::ostream& out, int ndx )
|
||||||
|
|
||||||
if( m_Label )
|
if( m_Label )
|
||||||
out << " <label>" << m_Label->mb_str() << "</label>\n";
|
out << " <label>" << m_Label->mb_str() << "</label>\n";
|
||||||
|
|
||||||
if( m_Comp )
|
if( m_Comp )
|
||||||
m_Comp->Show( 1, out );
|
m_Comp->Show( 1, out );
|
||||||
else
|
else
|
||||||
out << " m_Comp==NULL\n";
|
out << " m_Comp==NULL\n";
|
||||||
|
|
||||||
out << "</netItem>\n";
|
out << "</netItem>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,17 +124,17 @@ void FreeTabNetList( ObjetNetListStruct* TabNetItems, int NbrNetItems )
|
||||||
case NET_BUS:
|
case NET_BUS:
|
||||||
case NET_LABEL:
|
case NET_LABEL:
|
||||||
case NET_HIERLABEL:
|
case NET_HIERLABEL:
|
||||||
case NET_GLOBLABEL:
|
case NET_GLOBLABEL:
|
||||||
case NET_PINLABEL:
|
case NET_PINLABEL:
|
||||||
case NET_NOCONNECT:
|
case NET_NOCONNECT:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NET_HIERBUSLABELMEMBER:
|
case NET_HIERBUSLABELMEMBER:
|
||||||
case NET_GLOBBUSLABELMEMBER:
|
case NET_GLOBBUSLABELMEMBER:
|
||||||
case NET_SHEETBUSLABELMEMBER:
|
case NET_SHEETBUSLABELMEMBER:
|
||||||
case NET_BUSLABELMEMBER:
|
case NET_BUSLABELMEMBER:
|
||||||
SAFE_DELETE( TabNetItems[i].m_Label );
|
SAFE_DELETE( TabNetItems[i].m_Label );
|
||||||
//see the note in ConvertBustToMembers
|
//see the note in ConvertBustToMembers
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -154,19 +154,19 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
|
||||||
{
|
{
|
||||||
int NetNumber;
|
int NetNumber;
|
||||||
int i, istart, NetCode;
|
int i, istart, NetCode;
|
||||||
DrawSheetPath* sheet;
|
DrawSheetPath* sheet;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
wxBusyCursor Busy;
|
wxBusyCursor Busy;
|
||||||
|
|
||||||
NetNumber = 1;
|
NetNumber = 1;
|
||||||
s_PassNumber = 0;
|
s_PassNumber = 0;
|
||||||
|
|
||||||
MsgPanel->EraseMsgBox();
|
MsgPanel->EraseMsgBox();
|
||||||
Affiche_1_Parametre( this, 1, _( "List" ), wxEmptyString, LIGHTRED );
|
Affiche_1_Parametre( this, 1, _( "List" ), wxEmptyString, LIGHTRED );
|
||||||
|
|
||||||
/* Build the sheet (not screen) list (flattened)*/
|
/* Build the sheet (not screen) list (flattened)*/
|
||||||
EDA_SheetList SheetListList( NULL );
|
EDA_SheetList SheetListList( NULL );
|
||||||
i=0;
|
i=0;
|
||||||
/* 1ere passe : Comptage du nombre d'objet de Net */
|
/* 1ere passe : Comptage du nombre d'objet de Net */
|
||||||
g_NbrObjNet = 0;
|
g_NbrObjNet = 0;
|
||||||
g_TabObjNet = NULL; /* Init pour le 1er passage dans ListeObjetConnection */
|
g_TabObjNet = NULL; /* Init pour le 1er passage dans ListeObjetConnection */
|
||||||
|
@ -191,13 +191,13 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* 2eme passe : Remplissage des champs des structures des objets de Net */
|
/* 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++;
|
s_PassNumber++;
|
||||||
Affiche_1_Parametre( this, 1, _( "List" ), wxEmptyString, RED );
|
Affiche_1_Parametre( this, 1, _( "List" ), wxEmptyString, RED );
|
||||||
|
|
||||||
sheet = SheetListList.GetFirst();
|
sheet = SheetListList.GetFirst();
|
||||||
for( ObjetNetListStruct* tabObjNet = g_TabObjNet;
|
for( ObjetNetListStruct* tabObjNet = g_TabObjNet;
|
||||||
sheet != NULL; sheet = SheetListList.GetNext() )
|
sheet != NULL; sheet = SheetListList.GetNext() )
|
||||||
{
|
{
|
||||||
tabObjNet += ListeObjetConnection( this, sheet, tabObjNet );
|
tabObjNet += ListeObjetConnection( this, sheet, tabObjNet );
|
||||||
|
@ -217,12 +217,12 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
|
||||||
|
|
||||||
sheet = &(g_TabObjNet[0].m_SheetList);
|
sheet = &(g_TabObjNet[0].m_SheetList);
|
||||||
LastNetCode = LastBusNetCode = 1;
|
LastNetCode = LastBusNetCode = 1;
|
||||||
|
|
||||||
for( i = istart = 0; i<g_NbrObjNet; i++ )
|
for( i = istart = 0; i<g_NbrObjNet; i++ )
|
||||||
{
|
{
|
||||||
if( g_TabObjNet[i].m_SheetList != *sheet )
|
if( g_TabObjNet[i].m_SheetList != *sheet )
|
||||||
{
|
{
|
||||||
sheet = &(g_TabObjNet[i].m_SheetList);
|
sheet = &(g_TabObjNet[i].m_SheetList);
|
||||||
istart = i;
|
istart = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,7 +265,7 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
|
||||||
|
|
||||||
case NET_LABEL:
|
case NET_LABEL:
|
||||||
case NET_HIERLABEL:
|
case NET_HIERLABEL:
|
||||||
case NET_GLOBLABEL:
|
case NET_GLOBLABEL:
|
||||||
/* Controle des connexions type jonction ( Sans BUS ) */
|
/* Controle des connexions type jonction ( Sans BUS ) */
|
||||||
if( g_TabObjNet[i].GetNet() == 0 )
|
if( g_TabObjNet[i].GetNet() == 0 )
|
||||||
{
|
{
|
||||||
|
@ -291,7 +291,7 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
|
||||||
|
|
||||||
case NET_BUSLABELMEMBER:
|
case NET_BUSLABELMEMBER:
|
||||||
case NET_HIERBUSLABELMEMBER:
|
case NET_HIERBUSLABELMEMBER:
|
||||||
case NET_GLOBBUSLABELMEMBER:
|
case NET_GLOBBUSLABELMEMBER:
|
||||||
/* Controle des connexions semblables a des sur BUS */
|
/* Controle des connexions semblables a des sur BUS */
|
||||||
if( g_TabObjNet[i].GetNet() == 0 )
|
if( g_TabObjNet[i].GetNet() == 0 )
|
||||||
{
|
{
|
||||||
|
@ -303,11 +303,11 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined(NETLIST_DEBUG) && defined(DEBUG)
|
#if defined(NETLIST_DEBUG) && defined(DEBUG)
|
||||||
std::cout << "\n\nafter sheet local\n\n";
|
std::cout << "\n\nafter sheet local\n\n";
|
||||||
dumpNetTable();
|
dumpNetTable();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
Affiche_1_Parametre( this, -1, wxEmptyString, _( "Done" ), CYAN );
|
Affiche_1_Parametre( this, -1, wxEmptyString, _( "Done" ), CYAN );
|
||||||
|
@ -331,16 +331,16 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NET_LABEL:
|
case NET_LABEL:
|
||||||
case NET_GLOBLABEL:
|
case NET_GLOBLABEL:
|
||||||
case NET_PINLABEL:
|
case NET_PINLABEL:
|
||||||
case NET_BUSLABELMEMBER:
|
case NET_BUSLABELMEMBER:
|
||||||
case NET_GLOBBUSLABELMEMBER:
|
case NET_GLOBBUSLABELMEMBER:
|
||||||
LabelConnect( g_TabObjNet + i );
|
LabelConnect( g_TabObjNet + i );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NET_SHEETBUSLABELMEMBER:
|
case NET_SHEETBUSLABELMEMBER:
|
||||||
case NET_HIERLABEL:
|
case NET_HIERLABEL:
|
||||||
case NET_HIERBUSLABELMEMBER:
|
case NET_HIERBUSLABELMEMBER:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -348,8 +348,8 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
|
||||||
#if defined(NETLIST_DEBUG) && defined(DEBUG)
|
#if defined(NETLIST_DEBUG) && defined(DEBUG)
|
||||||
std::cout << "\n\nafter sheet global\n\n";
|
std::cout << "\n\nafter sheet global\n\n";
|
||||||
dumpNetTable();
|
dumpNetTable();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Affiche_1_Parametre( this, -1, wxEmptyString, _( "Done" ), CYAN );
|
Affiche_1_Parametre( this, -1, wxEmptyString, _( "Done" ), CYAN );
|
||||||
|
|
||||||
/* Connexion des hierarchies */
|
/* Connexion des hierarchies */
|
||||||
|
@ -361,16 +361,16 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
|
||||||
|| g_TabObjNet[i].m_Type == NET_SHEETBUSLABELMEMBER )
|
|| g_TabObjNet[i].m_Type == NET_SHEETBUSLABELMEMBER )
|
||||||
SheetLabelConnect( g_TabObjNet + i );
|
SheetLabelConnect( g_TabObjNet + i );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tri du Tableau des objets de Net par NetCode */
|
/* Tri du Tableau des objets de Net par NetCode */
|
||||||
qsort( g_TabObjNet, g_NbrObjNet, sizeof(ObjetNetListStruct), TriNetCode );
|
qsort( g_TabObjNet, g_NbrObjNet, sizeof(ObjetNetListStruct), TriNetCode );
|
||||||
|
|
||||||
|
|
||||||
#if defined(NETLIST_DEBUG) && defined(DEBUG)
|
#if defined(NETLIST_DEBUG) && defined(DEBUG)
|
||||||
std::cout << "after qsort()\n";
|
std::cout << "after qsort()\n";
|
||||||
dumpNetTable();
|
dumpNetTable();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Affiche_1_Parametre( this, -1, wxEmptyString, _( "Done" ), RED );
|
Affiche_1_Parametre( this, -1, wxEmptyString, _( "Done" ), RED );
|
||||||
|
|
||||||
/* Compression des numeros de NetCode a des valeurs consecutives */
|
/* Compression des numeros de NetCode a des valeurs consecutives */
|
||||||
|
@ -380,7 +380,7 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
|
||||||
{
|
{
|
||||||
if( g_TabObjNet[i].GetNet() != LastNetCode )
|
if( g_TabObjNet[i].GetNet() != LastNetCode )
|
||||||
{
|
{
|
||||||
NetCode++;
|
NetCode++;
|
||||||
LastNetCode = g_TabObjNet[i].GetNet();
|
LastNetCode = g_TabObjNet[i].GetNet();
|
||||||
}
|
}
|
||||||
g_TabObjNet[i].SetNet( NetCode );
|
g_TabObjNet[i].SetNet( NetCode );
|
||||||
|
@ -412,16 +412,16 @@ static void SheetLabelConnect( ObjetNetListStruct* SheetLabel )
|
||||||
* pour regroupement des NetCodes */
|
* pour regroupement des NetCodes */
|
||||||
for( i = 0, ObjetNet = g_TabObjNet; i < g_NbrObjNet; i++ )
|
for( i = 0, ObjetNet = g_TabObjNet; i < g_NbrObjNet; i++ )
|
||||||
{
|
{
|
||||||
if( ObjetNet[i].m_SheetList != SheetLabel->m_SheetListInclude )
|
if( ObjetNet[i].m_SheetList != SheetLabel->m_SheetListInclude )
|
||||||
continue; //use SheetInclude, not the sheet!!
|
continue; //use SheetInclude, not the sheet!!
|
||||||
|
|
||||||
if( (ObjetNet[i].m_Type != NET_HIERLABEL )
|
if( (ObjetNet[i].m_Type != NET_HIERLABEL )
|
||||||
&& (ObjetNet[i].m_Type != NET_HIERBUSLABELMEMBER ) )
|
&& (ObjetNet[i].m_Type != NET_HIERBUSLABELMEMBER ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( ObjetNet[i].GetNet() == SheetLabel->GetNet() )
|
if( ObjetNet[i].GetNet() == SheetLabel->GetNet() )
|
||||||
continue; //already connected.
|
continue; //already connected.
|
||||||
|
|
||||||
if( ObjetNet[i].m_Label->CmpNoCase( *SheetLabel->m_Label ) != 0 )
|
if( ObjetNet[i].m_Label->CmpNoCase( *SheetLabel->m_Label ) != 0 )
|
||||||
continue; //different names.
|
continue; //different names.
|
||||||
|
|
||||||
|
@ -441,7 +441,7 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh
|
||||||
|
|
||||||
/* Routine generant la liste des objets relatifs aux connection
|
/* Routine generant la liste des objets relatifs aux connection
|
||||||
* entree:
|
* entree:
|
||||||
* sheetlist: pointer to a sheetlist.
|
* sheetlist: pointer to a sheetlist.
|
||||||
* ObjNet:
|
* ObjNet:
|
||||||
* si NULL: la routine compte seulement le nombre des objets
|
* si NULL: la routine compte seulement le nombre des objets
|
||||||
* sinon: pointe le tableau a remplir
|
* sinon: pointe le tableau a remplir
|
||||||
|
@ -449,21 +449,21 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh
|
||||||
{
|
{
|
||||||
int ii, NbrItem = 0;
|
int ii, NbrItem = 0;
|
||||||
EDA_BaseStruct* DrawList;
|
EDA_BaseStruct* DrawList;
|
||||||
EDA_SchComponentStruct* DrawLibItem;
|
SCH_COMPONENT* DrawLibItem;
|
||||||
int TransMat[2][2], PartX, PartY, x2, y2;
|
int TransMat[2][2], PartX, PartY, x2, y2;
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
LibEDA_BaseStruct* DEntry;
|
LibEDA_BaseStruct* DEntry;
|
||||||
DrawSheetLabelStruct* SheetLabel;
|
DrawSheetLabelStruct* SheetLabel;
|
||||||
DrawSheetPath list;
|
DrawSheetPath list;
|
||||||
|
|
||||||
DrawList = sheetlist->LastScreen()->EEDrawList;
|
DrawList = sheetlist->LastScreen()->EEDrawList;
|
||||||
for( ; DrawList; DrawList = DrawList->Pnext )
|
for( ; DrawList; DrawList = DrawList->Pnext )
|
||||||
{
|
{
|
||||||
if( ObjNet ){
|
if( ObjNet ){
|
||||||
ObjNet[NbrItem].m_SheetList = *sheetlist;
|
ObjNet[NbrItem].m_SheetList = *sheetlist;
|
||||||
ObjNet[NbrItem].m_SheetListInclude = *sheetlist;
|
ObjNet[NbrItem].m_SheetListInclude = *sheetlist;
|
||||||
//used for DrawSheetLabels
|
//used for DrawSheetLabels
|
||||||
}
|
}
|
||||||
switch( DrawList->Type() )
|
switch( DrawList->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_SEGMENT_STRUCT_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_Comp = STRUCT;
|
||||||
ObjNet[NbrItem].m_Start = STRUCT->m_Start;
|
ObjNet[NbrItem].m_Start = STRUCT->m_Start;
|
||||||
ObjNet[NbrItem].m_End = STRUCT->m_End;
|
ObjNet[NbrItem].m_End = STRUCT->m_End;
|
||||||
|
|
||||||
if( STRUCT->m_Layer == LAYER_BUS )
|
if( STRUCT->m_Layer == LAYER_BUS )
|
||||||
{
|
{
|
||||||
ObjNet[NbrItem].m_Type = NET_BUS;
|
ObjNet[NbrItem].m_Type = NET_BUS;
|
||||||
|
@ -517,24 +517,24 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh
|
||||||
NbrItem++;
|
NbrItem++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawLabelStruct*) DrawList )
|
#define STRUCT ( (SCH_LABEL*) DrawList )
|
||||||
ii = IsBusLabel( STRUCT->m_Text );
|
ii = IsBusLabel( STRUCT->m_Text );
|
||||||
if( ObjNet )
|
if( ObjNet )
|
||||||
{
|
{
|
||||||
ObjNet[NbrItem].m_Comp = STRUCT;
|
ObjNet[NbrItem].m_Comp = STRUCT;
|
||||||
ObjNet[NbrItem].m_Type = NET_LABEL;
|
ObjNet[NbrItem].m_Type = NET_LABEL;
|
||||||
|
|
||||||
if( STRUCT->m_Layer == LAYER_GLOBLABEL )
|
if( STRUCT->m_Layer == LAYER_GLOBLABEL )
|
||||||
ObjNet[NbrItem].m_Type = NET_GLOBLABEL;
|
ObjNet[NbrItem].m_Type = NET_GLOBLABEL;
|
||||||
if( STRUCT->m_Layer == LAYER_HIERLABEL )
|
if( STRUCT->m_Layer == LAYER_HIERLABEL )
|
||||||
ObjNet[NbrItem].m_Type = NET_HIERLABEL;
|
ObjNet[NbrItem].m_Type = NET_HIERLABEL;
|
||||||
|
|
||||||
ObjNet[NbrItem].m_Label = &STRUCT->m_Text;
|
ObjNet[NbrItem].m_Label = &STRUCT->m_Text;
|
||||||
ObjNet[NbrItem].m_Start = STRUCT->m_Pos;
|
ObjNet[NbrItem].m_Start = STRUCT->m_Pos;
|
||||||
ObjNet[NbrItem].m_End = ObjNet[NbrItem].m_Start;
|
ObjNet[NbrItem].m_End = ObjNet[NbrItem].m_Start;
|
||||||
|
|
||||||
/* Si c'est un Bus, eclatement en Label */
|
/* Si c'est un Bus, eclatement en Label */
|
||||||
if( ii )
|
if( ii )
|
||||||
ConvertBusToMembers( ObjNet + NbrItem );
|
ConvertBusToMembers( ObjNet + NbrItem );
|
||||||
|
@ -542,25 +542,25 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh
|
||||||
NbrItem += ii + 1;
|
NbrItem += ii + 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawLabelStruct*) DrawList )
|
#define STRUCT ( (SCH_LABEL*) DrawList )
|
||||||
ii = IsBusLabel( STRUCT->m_Text );
|
ii = IsBusLabel( STRUCT->m_Text );
|
||||||
if( ObjNet )
|
if( ObjNet )
|
||||||
{
|
{
|
||||||
ObjNet[NbrItem].m_Comp = STRUCT;
|
ObjNet[NbrItem].m_Comp = STRUCT;
|
||||||
ObjNet[NbrItem].m_Type = NET_LABEL;
|
ObjNet[NbrItem].m_Type = NET_LABEL;
|
||||||
|
|
||||||
if( STRUCT->m_Layer == LAYER_GLOBLABEL ) //this is not the simplest way of doing it
|
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).
|
ObjNet[NbrItem].m_Type = NET_GLOBLABEL;// (look at the case statement above).
|
||||||
if( STRUCT->m_Layer == LAYER_HIERLABEL )
|
if( STRUCT->m_Layer == LAYER_HIERLABEL )
|
||||||
ObjNet[NbrItem].m_Type = NET_HIERLABEL;
|
ObjNet[NbrItem].m_Type = NET_HIERLABEL;
|
||||||
|
|
||||||
ObjNet[NbrItem].m_Label = &STRUCT->m_Text;
|
ObjNet[NbrItem].m_Label = &STRUCT->m_Text;
|
||||||
ObjNet[NbrItem].m_Start = STRUCT->m_Pos;
|
ObjNet[NbrItem].m_Start = STRUCT->m_Pos;
|
||||||
ObjNet[NbrItem].m_End = ObjNet[NbrItem].m_Start;
|
ObjNet[NbrItem].m_End = ObjNet[NbrItem].m_Start;
|
||||||
|
|
||||||
/* Si c'est un Bus, eclatement en Label */
|
/* Si c'est un Bus, eclatement en Label */
|
||||||
if( ii )
|
if( ii )
|
||||||
ConvertBusToMembers( ObjNet + NbrItem );
|
ConvertBusToMembers( ObjNet + NbrItem );
|
||||||
|
@ -568,48 +568,48 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh
|
||||||
NbrItem += ii + 1;
|
NbrItem += ii + 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
DrawLibItem = (EDA_SchComponentStruct*) DrawList;
|
DrawLibItem = (SCH_COMPONENT*) DrawList;
|
||||||
|
|
||||||
memcpy( TransMat, DrawLibItem->m_Transform, sizeof(TransMat) );
|
memcpy( TransMat, DrawLibItem->m_Transform, sizeof(TransMat) );
|
||||||
|
|
||||||
PartX = DrawLibItem->m_Pos.x;
|
PartX = DrawLibItem->m_Pos.x;
|
||||||
PartY = DrawLibItem->m_Pos.y;
|
PartY = DrawLibItem->m_Pos.y;
|
||||||
|
|
||||||
Entry = FindLibPart( DrawLibItem->m_ChipName, wxEmptyString, FIND_ROOT );
|
Entry = FindLibPart( DrawLibItem->m_ChipName, wxEmptyString, FIND_ROOT );
|
||||||
|
|
||||||
if( Entry == NULL )
|
if( Entry == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if( Entry->m_Drawings == NULL )
|
if( Entry->m_Drawings == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
DEntry = Entry->m_Drawings;
|
DEntry = Entry->m_Drawings;
|
||||||
|
|
||||||
for( ; DEntry; DEntry = DEntry->Next() )
|
for( ; DEntry; DEntry = DEntry->Next() )
|
||||||
{
|
{
|
||||||
LibDrawPin* Pin = (LibDrawPin*) DEntry;
|
LibDrawPin* Pin = (LibDrawPin*) DEntry;
|
||||||
if( DEntry->Type() != COMPONENT_PIN_DRAW_TYPE )
|
if( DEntry->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( DEntry->m_Unit
|
if( DEntry->m_Unit
|
||||||
&& (DEntry->m_Unit != DrawLibItem->m_Multi) )
|
&& (DEntry->m_Unit != DrawLibItem->m_Multi) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( DEntry->m_Convert
|
if( DEntry->m_Convert
|
||||||
&& (DEntry->m_Convert != DrawLibItem->m_Convert) )
|
&& (DEntry->m_Convert != DrawLibItem->m_Convert) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
x2 = PartX + TransMat[0][0] * Pin->m_Pos.x
|
x2 = PartX + TransMat[0][0] * Pin->m_Pos.x
|
||||||
+ TransMat[0][1] * Pin->m_Pos.y;
|
+ TransMat[0][1] * Pin->m_Pos.y;
|
||||||
|
|
||||||
y2 = PartY + TransMat[1][0] * Pin->m_Pos.x
|
y2 = PartY + TransMat[1][0] * Pin->m_Pos.x
|
||||||
+ TransMat[1][1] * Pin->m_Pos.y;
|
+ TransMat[1][1] * Pin->m_Pos.y;
|
||||||
|
|
||||||
if( ObjNet )
|
if( ObjNet )
|
||||||
{
|
{
|
||||||
ObjNet[NbrItem].m_Comp = DEntry;
|
ObjNet[NbrItem].m_Comp = DEntry;
|
||||||
ObjNet[NbrItem].m_SheetList = *sheetlist;
|
ObjNet[NbrItem].m_SheetList = *sheetlist;
|
||||||
ObjNet[NbrItem].m_Type = NET_PIN;
|
ObjNet[NbrItem].m_Type = NET_PIN;
|
||||||
ObjNet[NbrItem].m_Link = DrawLibItem;
|
ObjNet[NbrItem].m_Link = DrawLibItem;
|
||||||
ObjNet[NbrItem].m_ElectricalType = Pin->m_PinType;
|
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 )
|
if( ( (int) Pin->m_PinType == (int) PIN_POWER_IN )
|
||||||
&& ( Pin->m_Attributs & PINNOTDRAW ) )
|
&& ( Pin->m_Attributs & PINNOTDRAW ) )
|
||||||
{
|
{
|
||||||
/* Il y a un PIN_LABEL Associe */
|
/* Il y a un PIN_LABEL Associe */
|
||||||
if( ObjNet )
|
if( ObjNet )
|
||||||
{
|
{
|
||||||
ObjNet[NbrItem].m_Comp = NULL;
|
ObjNet[NbrItem].m_Comp = NULL;
|
||||||
ObjNet[NbrItem].m_SheetList = *sheetlist;
|
ObjNet[NbrItem].m_SheetList = *sheetlist;
|
||||||
ObjNet[NbrItem].m_Type = NET_PINLABEL;
|
ObjNet[NbrItem].m_Type = NET_PINLABEL;
|
||||||
ObjNet[NbrItem].m_Label = &Pin->m_PinName;
|
ObjNet[NbrItem].m_Label = &Pin->m_PinName;
|
||||||
ObjNet[NbrItem].m_Start.x = x2;
|
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_POLYLINE_STRUCT_TYPE:
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case DRAW_BUSENTRY_STRUCT_TYPE:
|
||||||
case DRAW_MARKER_STRUCT_TYPE:
|
case DRAW_MARKER_STRUCT_TYPE:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case DRAW_SHEET_STRUCT_TYPE:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (DrawSheetStruct*) DrawList )
|
#define STRUCT ( (DrawSheetStruct*) DrawList )
|
||||||
list = *sheetlist;
|
list = *sheetlist;
|
||||||
list.Push(STRUCT);
|
list.Push(STRUCT);
|
||||||
SheetLabel = STRUCT->m_Label;
|
SheetLabel = STRUCT->m_Label;
|
||||||
for( ; SheetLabel != NULL;
|
for( ; SheetLabel != NULL;
|
||||||
SheetLabel = (DrawSheetLabelStruct*) SheetLabel->Pnext )
|
SheetLabel = (DrawSheetLabelStruct*) SheetLabel->Pnext )
|
||||||
|
@ -661,7 +661,7 @@ static int ListeObjetConnection( WinEDA_SchematicFrame* frame, DrawSheetPath* sh
|
||||||
if( ObjNet )
|
if( ObjNet )
|
||||||
{
|
{
|
||||||
ObjNet[NbrItem].m_Comp = SheetLabel;
|
ObjNet[NbrItem].m_Comp = SheetLabel;
|
||||||
ObjNet[NbrItem].m_SheetList = *sheetlist;
|
ObjNet[NbrItem].m_SheetList = *sheetlist;
|
||||||
ObjNet[NbrItem].m_Link = DrawList;
|
ObjNet[NbrItem].m_Link = DrawList;
|
||||||
ObjNet[NbrItem].m_Type = NET_SHEETLABEL;
|
ObjNet[NbrItem].m_Type = NET_SHEETLABEL;
|
||||||
ObjNet[NbrItem].m_ElectricalType = SheetLabel->m_Shape;
|
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_SheetListInclude = list;
|
||||||
ObjNet[NbrItem].m_Start = SheetLabel->m_Pos;
|
ObjNet[NbrItem].m_Start = SheetLabel->m_Pos;
|
||||||
ObjNet[NbrItem].m_End = ObjNet[NbrItem].m_Start;
|
ObjNet[NbrItem].m_End = ObjNet[NbrItem].m_Start;
|
||||||
|
|
||||||
/* Si c'est un Bus, eclatement en Label */
|
/* Si c'est un Bus, eclatement en Label */
|
||||||
if( ii )
|
if( ii )
|
||||||
ConvertBusToMembers( ObjNet + NbrItem );
|
ConvertBusToMembers( ObjNet + NbrItem );
|
||||||
|
@ -721,10 +721,10 @@ static void ConnectBusLabels( ObjetNetListStruct* Label, int NbItems )
|
||||||
{
|
{
|
||||||
if( Label->GetNet() == 0 )
|
if( Label->GetNet() == 0 )
|
||||||
{
|
{
|
||||||
Label->SetNet( LastNetCode );
|
Label->SetNet( LastNetCode );
|
||||||
LastNetCode++;
|
LastNetCode++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for( LabelInTst = Label + 1; LabelInTst < Lim; LabelInTst++ )
|
for( LabelInTst = Label + 1; LabelInTst < Lim; LabelInTst++ )
|
||||||
{
|
{
|
||||||
if( (LabelInTst->m_Type == NET_SHEETBUSLABELMEMBER)
|
if( (LabelInTst->m_Type == NET_SHEETBUSLABELMEMBER)
|
||||||
|
@ -733,10 +733,10 @@ static void ConnectBusLabels( ObjetNetListStruct* Label, int NbItems )
|
||||||
{
|
{
|
||||||
if( LabelInTst->m_BusNetCode != Label->m_BusNetCode )
|
if( LabelInTst->m_BusNetCode != Label->m_BusNetCode )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( LabelInTst->m_Member != Label->m_Member )
|
if( LabelInTst->m_Member != Label->m_Member )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( LabelInTst->GetNet() == 0 )
|
if( LabelInTst->GetNet() == 0 )
|
||||||
LabelInTst->SetNet( Label->GetNet() );
|
LabelInTst->SetNet( Label->GetNet() );
|
||||||
else
|
else
|
||||||
|
@ -767,7 +767,7 @@ int IsBusLabel( const wxString& LabelDrawList )
|
||||||
ii = LabelDrawList.Find( '[' );
|
ii = LabelDrawList.Find( '[' );
|
||||||
if( ii < 0 )
|
if( ii < 0 )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
Num = (unsigned) ii;
|
Num = (unsigned) ii;
|
||||||
|
|
||||||
FirstNumWireBus = LastNumWireBus = 9;
|
FirstNumWireBus = LastNumWireBus = 9;
|
||||||
|
@ -781,7 +781,7 @@ int IsBusLabel( const wxString& LabelDrawList )
|
||||||
|
|
||||||
if( !BufLine.ToLong( &tmp ) )
|
if( !BufLine.ToLong( &tmp ) )
|
||||||
error = TRUE;
|
error = TRUE;
|
||||||
|
|
||||||
FirstNumWireBus = tmp;
|
FirstNumWireBus = tmp;
|
||||||
while( LabelDrawList[Num] == '.' && Num < LabelDrawList.Len() )
|
while( LabelDrawList[Num] == '.' && Num < LabelDrawList.Len() )
|
||||||
Num++;
|
Num++;
|
||||||
|
@ -835,8 +835,8 @@ static int ConvertBusToMembers( ObjetNetListStruct* BusLabel )
|
||||||
|
|
||||||
if( BusLabel->m_Type == NET_HIERLABEL )
|
if( BusLabel->m_Type == NET_HIERLABEL )
|
||||||
BusLabel->m_Type = NET_HIERBUSLABELMEMBER;
|
BusLabel->m_Type = NET_HIERBUSLABELMEMBER;
|
||||||
else if( BusLabel->m_Type == NET_GLOBLABEL )
|
else if( BusLabel->m_Type == NET_GLOBLABEL )
|
||||||
BusLabel->m_Type = NET_GLOBBUSLABELMEMBER;
|
BusLabel->m_Type = NET_GLOBBUSLABELMEMBER;
|
||||||
else if( BusLabel->m_Type == NET_SHEETLABEL )
|
else if( BusLabel->m_Type == NET_SHEETLABEL )
|
||||||
BusLabel->m_Type = NET_SHEETBUSLABELMEMBER;
|
BusLabel->m_Type = NET_SHEETBUSLABELMEMBER;
|
||||||
else
|
else
|
||||||
|
@ -844,7 +844,7 @@ static int ConvertBusToMembers( ObjetNetListStruct* BusLabel )
|
||||||
|
|
||||||
/* Convertion du BusLabel en la racine du Label + le numero du fil */
|
/* Convertion du BusLabel en la racine du Label + le numero du fil */
|
||||||
BufLine = BusLabel->m_Label->Left( RootBusNameLength );
|
BufLine = BusLabel->m_Label->Left( RootBusNameLength );
|
||||||
|
|
||||||
BusMember = FirstNumWireBus;
|
BusMember = FirstNumWireBus;
|
||||||
BufLine << BusMember;
|
BufLine << BusMember;
|
||||||
BusLabel->m_Label = new wxString( BufLine );
|
BusLabel->m_Label = new wxString( BufLine );
|
||||||
|
@ -855,9 +855,9 @@ static int ConvertBusToMembers( ObjetNetListStruct* BusLabel )
|
||||||
for( BusMember++; BusMember <= LastNumWireBus; BusMember++ )
|
for( BusMember++; BusMember <= LastNumWireBus; BusMember++ )
|
||||||
{
|
{
|
||||||
*(BusLabel + 1) = *BusLabel; //copy constructor.
|
*(BusLabel + 1) = *BusLabel; //copy constructor.
|
||||||
BusLabel++;
|
BusLabel++;
|
||||||
NumItem++;
|
NumItem++;
|
||||||
|
|
||||||
/* Convertion du BusLabel en la racine du Label + le numero du fil */
|
/* Convertion du BusLabel en la racine du Label + le numero du fil */
|
||||||
BufLine = BusLabel->m_Label->Left( RootBusNameLength );
|
BufLine = BusLabel->m_Label->Left( RootBusNameLength );
|
||||||
BufLine << BusMember;
|
BufLine << BusMember;
|
||||||
|
@ -887,7 +887,7 @@ static void PropageNetCode( int OldNetCode, int NewNetCode, int IsBus )
|
||||||
if( OldNetCode == NewNetCode )
|
if( OldNetCode == NewNetCode )
|
||||||
return;
|
return;
|
||||||
#if defined(NETLIST_DEBUG) && defined(DEBUG)
|
#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
|
#endif
|
||||||
|
|
||||||
if( IsBus == 0 ) /* Propagation du NetCode */
|
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
|
/* Routine qui verifie si l'element *Ref est connecte a
|
||||||
* d'autres elements de la liste des objets du schema, selon le mode Point
|
* d'autres elements de la liste des objets du schema, selon le mode Point
|
||||||
* a point ( Extremites superposees )
|
* a point ( Extremites superposees )
|
||||||
*
|
*
|
||||||
* si IsBus:
|
* si IsBus:
|
||||||
* la connexion ne met en jeu que des elements type bus
|
* la connexion ne met en jeu que des elements type bus
|
||||||
* ( BUS ou BUSLABEL ou JONCTION )
|
* ( BUS ou BUSLABEL ou JONCTION )
|
||||||
* sinon
|
* sinon
|
||||||
* la connexion ne met en jeu que des elements type non bus
|
* la connexion ne met en jeu que des elements type non bus
|
||||||
* ( autres que BUS ou BUSLABEL )
|
* ( autres que BUS ou BUSLABEL )
|
||||||
*
|
*
|
||||||
* L'objet Ref doit avoir un NetCode valide.
|
* L'objet Ref doit avoir un NetCode valide.
|
||||||
*
|
*
|
||||||
* La liste des objets est supposee classe par SheetPath Croissants,
|
* La liste des objets est supposee classe par SheetPath Croissants,
|
||||||
* et la recherche se fait a partir de l'element start, 1er element
|
* et la recherche se fait a partir de l'element start, 1er element
|
||||||
* de la feuille de schema
|
* de la feuille de schema
|
||||||
|
@ -944,23 +944,23 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start )
|
||||||
netCode = Ref->GetNet();
|
netCode = Ref->GetNet();
|
||||||
for( i = start; i < g_NbrObjNet; i++ )
|
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;
|
continue;
|
||||||
|
|
||||||
switch( netTable[i].m_Type )
|
switch( netTable[i].m_Type )
|
||||||
{
|
{
|
||||||
case NET_SEGMENT:
|
case NET_SEGMENT:
|
||||||
case NET_PIN:
|
case NET_PIN:
|
||||||
case NET_LABEL:
|
case NET_LABEL:
|
||||||
case NET_HIERLABEL:
|
case NET_HIERLABEL:
|
||||||
case NET_GLOBLABEL:
|
case NET_GLOBLABEL:
|
||||||
case NET_SHEETLABEL:
|
case NET_SHEETLABEL:
|
||||||
case NET_PINLABEL:
|
case NET_PINLABEL:
|
||||||
case NET_JONCTION:
|
case NET_JONCTION:
|
||||||
case NET_NOCONNECT:
|
case NET_NOCONNECT:
|
||||||
if( Ref->m_Start == netTable[i].m_Start
|
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_Start
|
||||||
|| Ref->m_End == netTable[i].m_End )
|
|| 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_BUSLABELMEMBER:
|
||||||
case NET_SHEETBUSLABELMEMBER:
|
case NET_SHEETBUSLABELMEMBER:
|
||||||
case NET_HIERBUSLABELMEMBER:
|
case NET_HIERBUSLABELMEMBER:
|
||||||
case NET_GLOBBUSLABELMEMBER:
|
case NET_GLOBBUSLABELMEMBER:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else /* Objets type BUS et BUSLABELS ( et JONCTIONS )*/
|
else /* Objets type BUS et BUSLABELS ( et JONCTIONS )*/
|
||||||
{
|
{
|
||||||
netCode = Ref->m_BusNetCode;
|
netCode = Ref->m_BusNetCode;
|
||||||
|
@ -995,7 +995,7 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start )
|
||||||
case NET_PIN:
|
case NET_PIN:
|
||||||
case NET_LABEL:
|
case NET_LABEL:
|
||||||
case NET_HIERLABEL:
|
case NET_HIERLABEL:
|
||||||
case NET_GLOBLABEL:
|
case NET_GLOBLABEL:
|
||||||
case NET_SHEETLABEL:
|
case NET_SHEETLABEL:
|
||||||
case NET_PINLABEL:
|
case NET_PINLABEL:
|
||||||
case NET_NOCONNECT:
|
case NET_NOCONNECT:
|
||||||
|
@ -1005,10 +1005,10 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start )
|
||||||
case NET_BUSLABELMEMBER:
|
case NET_BUSLABELMEMBER:
|
||||||
case NET_SHEETBUSLABELMEMBER:
|
case NET_SHEETBUSLABELMEMBER:
|
||||||
case NET_HIERBUSLABELMEMBER:
|
case NET_HIERBUSLABELMEMBER:
|
||||||
case NET_GLOBBUSLABELMEMBER:
|
case NET_GLOBBUSLABELMEMBER:
|
||||||
case NET_JONCTION:
|
case NET_JONCTION:
|
||||||
if( Ref->m_Start == netTable[i].m_Start
|
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_Start
|
||||||
|| Ref->m_End == netTable[i].m_End )
|
|| Ref->m_End == netTable[i].m_End )
|
||||||
{
|
{
|
||||||
|
@ -1098,33 +1098,33 @@ static void LabelConnect( ObjetNetListStruct* LabelRef )
|
||||||
{
|
{
|
||||||
if( netTable[i].GetNet() == LabelRef->GetNet() )
|
if( netTable[i].GetNet() == LabelRef->GetNet() )
|
||||||
continue;
|
continue;
|
||||||
if( netTable[i].m_SheetList != LabelRef->m_SheetList )
|
if( netTable[i].m_SheetList != LabelRef->m_SheetList )
|
||||||
{
|
{
|
||||||
if( (netTable[i].m_Type != NET_PINLABEL
|
if( (netTable[i].m_Type != NET_PINLABEL
|
||||||
&& netTable[i].m_Type != NET_GLOBLABEL
|
&& netTable[i].m_Type != NET_GLOBLABEL
|
||||||
&& netTable[i].m_Type != NET_GLOBBUSLABELMEMBER) )
|
&& 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;
|
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;
|
//regular labels are sheet-local;
|
||||||
//NET_HIERLABEL are used to connect sheets.
|
//NET_HIERLABEL are used to connect sheets.
|
||||||
//NET_LABEL is sheet-local (***)
|
//NET_LABEL is sheet-local (***)
|
||||||
//NET_GLOBLABEL is global.
|
//NET_GLOBLABEL is global.
|
||||||
if( netTable[i].m_Type == NET_LABEL
|
if( netTable[i].m_Type == NET_LABEL
|
||||||
|| netTable[i].m_Type == NET_GLOBLABEL
|
|| 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_BUSLABELMEMBER
|
||||||
|| netTable[i].m_Type == NET_GLOBBUSLABELMEMBER
|
|| netTable[i].m_Type == NET_GLOBBUSLABELMEMBER
|
||||||
|| netTable[i].m_Type == NET_HIERBUSLABELMEMBER
|
|| netTable[i].m_Type == NET_HIERBUSLABELMEMBER
|
||||||
|| netTable[i].m_Type == NET_PINLABEL )
|
|| netTable[i].m_Type == NET_PINLABEL )
|
||||||
{
|
{
|
||||||
if( netTable[i].m_Label->CmpNoCase( *LabelRef->m_Label ) != 0 )
|
if( netTable[i].m_Label->CmpNoCase( *LabelRef->m_Label ) != 0 )
|
||||||
continue;
|
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() )
|
if( netTable[i].GetNet() )
|
||||||
PropageNetCode( netTable[i].GetNet(), LabelRef->GetNet(), 0 );
|
PropageNetCode( netTable[i].GetNet(), LabelRef->GetNet(), 0 );
|
||||||
else
|
else
|
||||||
|
@ -1143,7 +1143,7 @@ static int TriNetCode( const void* o1, const void* o2 )
|
||||||
{
|
{
|
||||||
ObjetNetListStruct* Objet1 = (ObjetNetListStruct*) o1;
|
ObjetNetListStruct* Objet1 = (ObjetNetListStruct*) o1;
|
||||||
ObjetNetListStruct* Objet2 = (ObjetNetListStruct*) o2;
|
ObjetNetListStruct* Objet2 = (ObjetNetListStruct*) o2;
|
||||||
|
|
||||||
return Objet1->GetNet() - Objet2->GetNet();
|
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() */
|
* du tableau des elements connectes ( TabPinSort ) par qsort() */
|
||||||
|
|
||||||
{
|
{
|
||||||
ObjetNetListStruct* Objet1 = (ObjetNetListStruct*) o1;
|
ObjetNetListStruct* Objet1 = (ObjetNetListStruct*) o1;
|
||||||
ObjetNetListStruct* Objet2 = (ObjetNetListStruct*) o2;
|
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;
|
NetStart = NetEnd = ListObj;
|
||||||
NetItemRef = NetStart;
|
NetItemRef = NetStart;
|
||||||
Nb = 0;
|
Nb = 0;
|
||||||
StateFlag = UNCONNECT;
|
StateFlag = UNCONNECT;
|
||||||
|
|
||||||
Lim = ListObj + NbItems;
|
Lim = ListObj + NbItems;
|
||||||
|
@ -1191,7 +1191,7 @@ static void SetUnconnectedFlag( ObjetNetListStruct* ListObj, int NbItems )
|
||||||
|
|
||||||
if( (NetItemTst >= Lim)
|
if( (NetItemTst >= Lim)
|
||||||
|| (NetItemRef->GetNet() != NetItemTst->GetNet()) )
|
|| (NetItemRef->GetNet() != NetItemTst->GetNet()) )
|
||||||
{
|
{
|
||||||
/* Net analyse: mise a jour de m_FlagOfConnection */
|
/* Net analyse: mise a jour de m_FlagOfConnection */
|
||||||
NetEnd = NetItemTst;
|
NetEnd = NetItemTst;
|
||||||
|
|
||||||
|
@ -1220,14 +1220,14 @@ static void SetUnconnectedFlag( ObjetNetListStruct* ListObj, int NbItems )
|
||||||
case NET_SEGMENT:
|
case NET_SEGMENT:
|
||||||
case NET_LABEL:
|
case NET_LABEL:
|
||||||
case NET_HIERLABEL:
|
case NET_HIERLABEL:
|
||||||
case NET_GLOBLABEL:
|
case NET_GLOBLABEL:
|
||||||
case NET_SHEETLABEL:
|
case NET_SHEETLABEL:
|
||||||
case NET_PINLABEL:
|
case NET_PINLABEL:
|
||||||
case NET_BUS:
|
case NET_BUS:
|
||||||
case NET_BUSLABELMEMBER:
|
case NET_BUSLABELMEMBER:
|
||||||
case NET_SHEETBUSLABELMEMBER:
|
case NET_SHEETBUSLABELMEMBER:
|
||||||
case NET_HIERBUSLABELMEMBER:
|
case NET_HIERBUSLABELMEMBER:
|
||||||
case NET_GLOBBUSLABELMEMBER:
|
case NET_GLOBBUSLABELMEMBER:
|
||||||
case NET_JONCTION:
|
case NET_JONCTION:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ typedef enum {
|
||||||
* NET_TYPE_CUSTOM1+CUSTOMPANEL_COUNTMAX-1
|
* NET_TYPE_CUSTOM1+CUSTOMPANEL_COUNTMAX-1
|
||||||
* is the last id for user netlist format
|
* 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;
|
} TypeNetForm;
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,11 +39,11 @@ enum NetObjetType { /* Type des objets de Net */
|
||||||
NET_JONCTION,
|
NET_JONCTION,
|
||||||
NET_LABEL,
|
NET_LABEL,
|
||||||
NET_GLOBLABEL,
|
NET_GLOBLABEL,
|
||||||
NET_HIERLABEL, //on a screen to indicate connection to a higher-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_SHEETLABEL, //on a drawscreen element to indicate connection to a lower-level sheet.
|
||||||
NET_BUSLABELMEMBER,
|
NET_BUSLABELMEMBER,
|
||||||
NET_GLOBBUSLABELMEMBER,
|
NET_GLOBBUSLABELMEMBER,
|
||||||
NET_HIERBUSLABELMEMBER,
|
NET_HIERBUSLABELMEMBER,
|
||||||
NET_SHEETBUSLABELMEMBER,
|
NET_SHEETBUSLABELMEMBER,
|
||||||
NET_PINLABEL,
|
NET_PINLABEL,
|
||||||
NET_PIN,
|
NET_PIN,
|
||||||
|
@ -93,23 +93,23 @@ public:
|
||||||
/* Structures pour memo et liste des elements */
|
/* Structures pour memo et liste des elements */
|
||||||
typedef struct ListLabel
|
typedef struct ListLabel
|
||||||
{
|
{
|
||||||
int m_LabelType;
|
int m_LabelType;
|
||||||
void * m_Label;
|
void * m_Label;
|
||||||
char m_SheetPath[64];
|
char m_SheetPath[64];
|
||||||
} ListLabel;
|
} ListLabel;
|
||||||
typedef struct ListComponent
|
typedef struct ListComponent
|
||||||
{
|
{
|
||||||
EDA_SchComponentStruct * m_Comp;
|
SCH_COMPONENT * m_Comp;
|
||||||
char m_Ref[32];
|
char m_Ref[32];
|
||||||
//have to store it here since the object refrerences will be duplicated.
|
//have to store it here since the object refrerences will be duplicated.
|
||||||
DrawSheetPath m_SheetList; //composed of UIDs
|
DrawSheetPath m_SheetList; //composed of UIDs
|
||||||
} ListComponent;
|
} ListComponent;
|
||||||
|
|
||||||
/* Structure decrivant 1 composant de la schematique (pour *annotation* ) */
|
/* Structure decrivant 1 composant de la schematique (pour *annotation* ) */
|
||||||
struct CmpListStruct
|
struct CmpListStruct
|
||||||
{
|
{
|
||||||
public:
|
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 */
|
int m_NbParts; /* Nombre de parts par boitier */
|
||||||
bool m_PartsLocked; // For multi part components: True if the part cannot be changed
|
bool m_PartsLocked; // For multi part components: True if the part cannot be changed
|
||||||
int m_Unit; /* Numero de part */
|
int m_Unit; /* Numero de part */
|
||||||
|
@ -121,7 +121,7 @@ public:
|
||||||
int m_NumRef; /* Numero de reference */
|
int m_NumRef; /* Numero de reference */
|
||||||
int m_Flag; /* flag pour calculs internes */
|
int m_Flag; /* flag pour calculs internes */
|
||||||
wxPoint m_Pos; /* position components */
|
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.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -39,15 +39,15 @@ void WinEDA_SchematicFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
{
|
{
|
||||||
switch( DrawStruct->Type() )
|
switch( DrawStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
case DRAW_SHEETLABEL_STRUCT_TYPE:
|
case DRAW_SHEETLABEL_STRUCT_TYPE:
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case DRAW_SHEET_STRUCT_TYPE:
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case DRAW_BUSENTRY_STRUCT_TYPE:
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case DRAW_JUNCTION_STRUCT_TYPE:
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case DRAW_PART_TEXT_STRUCT_TYPE:
|
||||||
DrawStruct->Place( this, DC );
|
DrawStruct->Place( this, DC );
|
||||||
GetScreen()->SetCurItem( NULL );
|
GetScreen()->SetCurItem( NULL );
|
||||||
|
@ -354,16 +354,16 @@ void WinEDA_SchematicFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
InstallNextScreen( (DrawSheetStruct*) DrawStruct );
|
InstallNextScreen( (DrawSheetStruct*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
InstallCmpeditFrame( this, pos, (EDA_SchComponentStruct*) DrawStruct );
|
InstallCmpeditFrame( this, pos, (SCH_COMPONENT*) DrawStruct );
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
EditSchematicText( (DrawTextStruct*) DrawStruct, DC );
|
EditSchematicText( (SCH_TEXT*) DrawStruct, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case DRAW_PART_TEXT_STRUCT_TYPE:
|
||||||
|
|
|
@ -55,11 +55,11 @@ static void AddMenusForBus( wxMenu* PopMenu, EDA_DrawLineStruct* Bus,
|
||||||
WinEDA_SchematicFrame* frame );
|
WinEDA_SchematicFrame* frame );
|
||||||
static void AddMenusForHierchicalSheet( wxMenu* PopMenu, DrawSheetStruct* Sheet );
|
static void AddMenusForHierchicalSheet( wxMenu* PopMenu, DrawSheetStruct* Sheet );
|
||||||
static void AddMenusForPinSheet( wxMenu* PopMenu, DrawSheetLabelStruct* PinSheet );
|
static void AddMenusForPinSheet( wxMenu* PopMenu, DrawSheetLabelStruct* PinSheet );
|
||||||
static void AddMenusForText( wxMenu* PopMenu, DrawTextStruct* Text );
|
static void AddMenusForText( wxMenu* PopMenu, SCH_TEXT* Text );
|
||||||
static void AddMenusForLabel( wxMenu* PopMenu, DrawLabelStruct* Label );
|
static void AddMenusForLabel( wxMenu* PopMenu, SCH_LABEL* Label );
|
||||||
static void AddMenusForGLabel( wxMenu* PopMenu, DrawGlobalLabelStruct* GLabel );
|
static void AddMenusForGLabel( wxMenu* PopMenu, SCH_GLOBALLABEL* GLabel );
|
||||||
static void AddMenusForHLabel( wxMenu* PopMenu, DrawHierLabelStruct* GLabel );
|
static void AddMenusForHLabel( wxMenu* PopMenu, SCH_HIERLABEL* GLabel );
|
||||||
static void AddMenusForComponent( wxMenu* PopMenu, EDA_SchComponentStruct* Component );
|
static void AddMenusForComponent( wxMenu* PopMenu, SCH_COMPONENT* Component );
|
||||||
static void AddMenusForComponentField( wxMenu* PopMenu, PartTextStruct* Field );
|
static void AddMenusForComponentField( wxMenu* PopMenu, PartTextStruct* Field );
|
||||||
static void AddMenusForJunction( wxMenu* PopMenu, DrawJunctionStruct* Junction,
|
static void AddMenusForJunction( wxMenu* PopMenu, DrawJunctionStruct* Junction,
|
||||||
WinEDA_SchematicFrame* frame );
|
WinEDA_SchematicFrame* frame );
|
||||||
|
@ -90,20 +90,20 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos,
|
||||||
* Ce menu est ensuite compl<EFBFBD>t<EFBFBD> par la liste des commandes de ZOOM
|
* Ce menu est ensuite compl<EFBFBD>t<EFBFBD> par la liste des commandes de ZOOM
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
EDA_BaseStruct* DrawStruct = GetScreen()->GetCurItem();
|
EDA_BaseStruct* DrawStruct = GetScreen()->GetCurItem();
|
||||||
bool BlockActive = (GetScreen()->BlockLocate.m_Command != BLOCK_IDLE);
|
bool BlockActive = (GetScreen()->BlockLocate.m_Command != BLOCK_IDLE);
|
||||||
|
|
||||||
|
|
||||||
DrawPanel->m_CanStartBlock = -1; // Ne pas engager un debut de bloc sur validation menu
|
DrawPanel->m_CanStartBlock = -1; // Ne pas engager un debut de bloc sur validation menu
|
||||||
|
|
||||||
if( BlockActive )
|
if( BlockActive )
|
||||||
{
|
{
|
||||||
AddMenusForBlock( PopMenu, this );
|
AddMenusForBlock( PopMenu, this );
|
||||||
PopMenu->AppendSeparator();
|
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) )
|
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
||||||
{
|
{
|
||||||
DrawStruct = SchematicGeneralLocateAndDisplay( FALSE );
|
DrawStruct = SchematicGeneralLocateAndDisplay( FALSE );
|
||||||
|
@ -111,7 +111,7 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos,
|
||||||
{
|
{
|
||||||
DrawSheetLabelStruct* slabel;
|
DrawSheetLabelStruct* slabel;
|
||||||
slabel = LocateSheetLabel( (DrawSheetStruct*) DrawStruct,
|
slabel = LocateSheetLabel( (DrawSheetStruct*) DrawStruct,
|
||||||
GetScreen()->m_Curseur );
|
GetScreen()->m_Curseur );
|
||||||
if( slabel )
|
if( slabel )
|
||||||
DrawStruct = slabel;
|
DrawStruct = slabel;
|
||||||
}
|
}
|
||||||
|
@ -134,8 +134,8 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos,
|
||||||
{
|
{
|
||||||
if( DrawStruct && DrawStruct->m_Flags )
|
if( DrawStruct && DrawStruct->m_Flags )
|
||||||
{
|
{
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), cancel_xpm );
|
ADD_MENUITEM( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), cancel_xpm );
|
||||||
PopMenu->AppendSeparator();
|
PopMenu->AppendSeparator();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
GetScreen()->SetCurItem( DrawStruct );
|
GetScreen()->SetCurItem( DrawStruct );
|
||||||
|
|
||||||
int flags = DrawStruct->m_Flags;
|
int flags = DrawStruct->m_Flags;
|
||||||
bool is_new = (flags & IS_NEW) ? TRUE : FALSE;
|
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 );
|
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_DELETE, _( "delete Marker" ), delete_xpm );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
AddMenusForText( PopMenu, (DrawTextStruct*) DrawStruct );
|
AddMenusForText( PopMenu, (SCH_TEXT*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
AddMenusForLabel( PopMenu, (DrawLabelStruct*) DrawStruct );
|
AddMenusForLabel( PopMenu, (SCH_LABEL*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
AddMenusForGLabel( PopMenu, (DrawGlobalLabelStruct*) DrawStruct );
|
AddMenusForGLabel( PopMenu, (SCH_GLOBALLABEL*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
AddMenusForHLabel( PopMenu, (DrawHierLabelStruct*) DrawStruct );
|
AddMenusForHLabel( PopMenu, (SCH_HIERLABEL*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case DRAW_PART_TEXT_STRUCT_TYPE:
|
||||||
|
@ -205,17 +205,17 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Many fields are inside a component. If this is the case, add the component menu
|
// 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 )
|
if( Component )
|
||||||
{
|
{
|
||||||
PopMenu->AppendSeparator();
|
PopMenu->AppendSeparator();
|
||||||
AddMenusForComponent( PopMenu, (EDA_SchComponentStruct*) DrawStruct );
|
AddMenusForComponent( PopMenu, (SCH_COMPONENT*) DrawStruct );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
AddMenusForComponent( PopMenu, (EDA_SchComponentStruct*) DrawStruct );
|
AddMenusForComponent( PopMenu, (SCH_COMPONENT*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case DRAW_SEGMENT_STRUCT_TYPE:
|
||||||
|
@ -259,7 +259,7 @@ bool WinEDA_SchematicFrame::OnRightClick( const wxPoint& MousePos,
|
||||||
}
|
}
|
||||||
|
|
||||||
PopMenu->AppendSeparator();
|
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
|
/* Add menu commands for a component
|
||||||
|
@ -321,13 +321,13 @@ void AddMenusForComponent( wxMenu* PopMenu, EDA_SchComponentStruct* Component )
|
||||||
|
|
||||||
if( LibEntry && LibEntry->m_Options != ENTRY_POWER )
|
if( LibEntry && LibEntry->m_Options != ENTRY_POWER )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Value " ), s_Schematic_Hokeys_Descr, HK_EDIT_COMPONENT_VALUE );
|
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_VALUE_CMP, msg, edit_comp_value_xpm );
|
||||||
|
|
||||||
ADD_MENUITEM( editmenu, ID_POPUP_SCH_EDIT_REF_CMP, _( "Reference" ), edit_comp_ref_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 );
|
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 );
|
ADD_MENUITEM( editmenu, ID_POPUP_SCH_EDIT_FOOTPRINT_CMP, msg, edit_comp_footprint_xpm );
|
||||||
}
|
}
|
||||||
if( LibEntry && (LookForConvertPart( LibEntry ) >= 2) )
|
if( LibEntry && (LookForConvertPart( LibEntry ) >= 2) )
|
||||||
editmenu->Append( ID_POPUP_SCH_EDIT_CONVERT_CMP, _( "Convert" ) );
|
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
|
/* 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 );
|
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
|
/* 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
|
/* 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)
|
/* Add menu commands for a Text (a comment)
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
/* Variables locales : */
|
/* Variables locales : */
|
||||||
static void PlotSheetLabelStruct( DrawSheetLabelStruct* Struct );
|
static void PlotSheetLabelStruct( DrawSheetLabelStruct* Struct );
|
||||||
static void PlotTextField( EDA_SchComponentStruct* DrawLibItem,
|
static void PlotTextField( SCH_COMPONENT* DrawLibItem,
|
||||||
int FieldNumber, int IsMulti, int DrawMode );
|
int FieldNumber, int IsMulti, int DrawMode );
|
||||||
static void PlotPinSymbol( int posX, int posY, int len, int orient, int Shape );
|
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 */
|
/* 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 )
|
int FieldNumber, int IsMulti, int DrawMode )
|
||||||
/**************************************************************/
|
/**************************************************************/
|
||||||
|
|
||||||
|
@ -553,22 +553,22 @@ void PlotTextStruct( EDA_BaseStruct* Struct )
|
||||||
|
|
||||||
switch( Struct->Type() )
|
switch( Struct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
Text = ( (DrawTextStruct*) Struct )->m_Text;
|
Text = ( (SCH_TEXT*) Struct )->m_Text;
|
||||||
Size = ( (DrawTextStruct*) Struct )->m_Size;
|
Size = ( (SCH_TEXT*) Struct )->m_Size;
|
||||||
Orient = ( (DrawTextStruct*) Struct )->m_Orient;
|
Orient = ( (SCH_TEXT*) Struct )->m_Orient;
|
||||||
Shape = ( (DrawTextStruct*) Struct )->m_Shape;
|
Shape = ( (SCH_TEXT*) Struct )->m_Shape;
|
||||||
pX = ( (DrawTextStruct*) Struct )->m_Pos.x;
|
pX = ( (SCH_TEXT*) Struct )->m_Pos.x;
|
||||||
pY = ( (DrawTextStruct*) Struct )->m_Pos.y;
|
pY = ( (SCH_TEXT*) Struct )->m_Pos.y;
|
||||||
offset = TXTMARGE;
|
offset = TXTMARGE;
|
||||||
if( Struct->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE
|
if( Struct->Type() == TYPE_SCH_GLOBALLABEL
|
||||||
|| Struct->Type() == DRAW_HIER_LABEL_STRUCT_TYPE )
|
|| Struct->Type() == TYPE_SCH_HIERLABEL )
|
||||||
offset += Size.x; // We must draw the Glabel graphic symbol
|
offset += Size.x; // We must draw the Glabel graphic symbol
|
||||||
if( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt )
|
if( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt )
|
||||||
color = ReturnLayerColor( ( (DrawTextStruct*) Struct )->m_Layer );
|
color = ReturnLayerColor( ( (SCH_TEXT*) Struct )->m_Layer );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -580,31 +580,31 @@ void PlotTextStruct( EDA_BaseStruct* Struct )
|
||||||
|
|
||||||
SetCurrentLineWidth( -1 );
|
SetCurrentLineWidth( -1 );
|
||||||
|
|
||||||
if ( Struct->Type() == DRAW_GLOBAL_LABEL_STRUCT_TYPE )
|
if ( Struct->Type() == TYPE_SCH_GLOBALLABEL )
|
||||||
{
|
{
|
||||||
offset = ( (DrawGlobalLabelStruct*) Struct )->m_Width;
|
offset = ( (SCH_GLOBALLABEL*) Struct )->m_Width;
|
||||||
switch( Shape )
|
switch( Shape )
|
||||||
{
|
{
|
||||||
case NET_INPUT:
|
case NET_INPUT:
|
||||||
case NET_BIDI:
|
case NET_BIDI:
|
||||||
case NET_TRISTATE:
|
case NET_TRISTATE:
|
||||||
offset += Size.x/2;
|
offset += Size.x/2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NET_OUTPUT:
|
case NET_OUTPUT:
|
||||||
offset += TXTMARGE;
|
offset += TXTMARGE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
switch( Orient )
|
switch( Orient )
|
||||||
{
|
{
|
||||||
case 0: /* Orientation horiz normale */
|
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 ),
|
PlotGraphicText( g_PlotFormat, wxPoint( pX - offset, pY ),
|
||||||
color, Text, TEXT_ORIENT_HORIZ, Size,
|
color, Text, TEXT_ORIENT_HORIZ, Size,
|
||||||
GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER );
|
GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER );
|
||||||
|
@ -615,7 +615,7 @@ void PlotTextStruct( EDA_BaseStruct* Struct )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: /* Orientation vert UP */
|
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 ),
|
PlotGraphicText( g_PlotFormat, wxPoint( pX, pY + offset ),
|
||||||
color, Text, TEXT_ORIENT_VERT, Size,
|
color, Text, TEXT_ORIENT_VERT, Size,
|
||||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP );
|
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP );
|
||||||
|
@ -626,7 +626,7 @@ void PlotTextStruct( EDA_BaseStruct* Struct )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2: /* Horiz Orientation - Right justified */
|
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 ),
|
PlotGraphicText( g_PlotFormat, wxPoint( pX + offset, pY ),
|
||||||
color, Text, TEXT_ORIENT_HORIZ, Size,
|
color, Text, TEXT_ORIENT_HORIZ, Size,
|
||||||
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER );
|
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER );
|
||||||
|
@ -637,7 +637,7 @@ void PlotTextStruct( EDA_BaseStruct* Struct )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3: /* Orientation vert BOTTOM */
|
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 ),
|
PlotGraphicText( g_PlotFormat, wxPoint( pX, pY - offset ),
|
||||||
color, Text, TEXT_ORIENT_VERT, Size,
|
color, Text, TEXT_ORIENT_VERT, Size,
|
||||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM );
|
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 */
|
/* 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 );
|
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 );
|
PlotPoly( Poly[0], Poly + 1, NOFILL );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: plothpgl.cpp
|
// Name: plothpgl.cpp
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: jean-pierre Charras
|
// Author: jean-pierre Charras
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 04/02/2006 16:54:19
|
// Created: 04/02/2006 16:54:19
|
||||||
// RCS-ID:
|
// RCS-ID:
|
||||||
// Copyright: License GNU
|
// Copyright: License GNU
|
||||||
// Licence:
|
// Licence:
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 04/02/2006 16:54:19
|
// Generated by DialogBlocks (unregistered), 04/02/2006 16:54:19
|
||||||
|
@ -62,34 +62,34 @@ static double Scale_Y = 1;
|
||||||
int HPGL_SizeSelect;
|
int HPGL_SizeSelect;
|
||||||
|
|
||||||
enum PageFormatReq {
|
enum PageFormatReq {
|
||||||
PAGE_DEFAULT = 0,
|
PAGE_DEFAULT = 0,
|
||||||
PAGE_SIZE_A4,
|
PAGE_SIZE_A4,
|
||||||
PAGE_SIZE_A3,
|
PAGE_SIZE_A3,
|
||||||
PAGE_SIZE_A2,
|
PAGE_SIZE_A2,
|
||||||
PAGE_SIZE_A1,
|
PAGE_SIZE_A1,
|
||||||
PAGE_SIZE_A0,
|
PAGE_SIZE_A0,
|
||||||
PAGE_SIZE_A,
|
PAGE_SIZE_A,
|
||||||
PAGE_SIZE_B,
|
PAGE_SIZE_B,
|
||||||
PAGE_SIZE_C,
|
PAGE_SIZE_C,
|
||||||
PAGE_SIZE_D,
|
PAGE_SIZE_D,
|
||||||
PAGE_SIZE_E
|
PAGE_SIZE_E
|
||||||
};
|
};
|
||||||
|
|
||||||
static Ki_PageDescr * Plot_sheet_list[] =
|
static Ki_PageDescr * Plot_sheet_list[] =
|
||||||
{
|
{
|
||||||
NULL,
|
NULL,
|
||||||
&g_Sheet_A4,
|
&g_Sheet_A4,
|
||||||
&g_Sheet_A3,
|
&g_Sheet_A3,
|
||||||
&g_Sheet_A2,
|
&g_Sheet_A2,
|
||||||
&g_Sheet_A1,
|
&g_Sheet_A1,
|
||||||
&g_Sheet_A0,
|
&g_Sheet_A0,
|
||||||
&g_Sheet_A,
|
&g_Sheet_A,
|
||||||
&g_Sheet_B,
|
&g_Sheet_B,
|
||||||
&g_Sheet_C,
|
&g_Sheet_C,
|
||||||
&g_Sheet_D,
|
&g_Sheet_D,
|
||||||
&g_Sheet_E,
|
&g_Sheet_E,
|
||||||
&g_Sheet_GERBER,
|
&g_Sheet_GERBER,
|
||||||
&g_Sheet_user
|
&g_Sheet_user
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Routines Locales */
|
/* Routines Locales */
|
||||||
|
@ -101,9 +101,9 @@ static Ki_PageDescr * Plot_sheet_list[] =
|
||||||
void WinEDA_SchematicFrame::ToPlot_HPGL(wxCommandEvent& event)
|
void WinEDA_SchematicFrame::ToPlot_HPGL(wxCommandEvent& event)
|
||||||
/**************************************************************/
|
/**************************************************************/
|
||||||
{
|
{
|
||||||
WinEDA_PlotHPGLFrame * HPGL_frame = new WinEDA_PlotHPGLFrame(this);
|
WinEDA_PlotHPGLFrame * HPGL_frame = new WinEDA_PlotHPGLFrame(this);
|
||||||
HPGL_frame->ShowModal();
|
HPGL_frame->ShowModal();
|
||||||
HPGL_frame->Destroy();
|
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 )
|
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);
|
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()
|
void WinEDA_PlotHPGLFrame::CreateControls()
|
||||||
{
|
{
|
||||||
SetFont(*g_DialogFont);
|
SetFont(*g_DialogFont);
|
||||||
////@begin WinEDA_PlotHPGLFrame content construction
|
////@begin WinEDA_PlotHPGLFrame content construction
|
||||||
// Generated by DialogBlocks, 04/02/2006 16:54:19 (unregistered)
|
// Generated by DialogBlocks, 04/02/2006 16:54:19 (unregistered)
|
||||||
|
|
||||||
|
@ -303,7 +303,7 @@ void WinEDA_PlotHPGLFrame::CreateControls()
|
||||||
|
|
||||||
void WinEDA_PlotHPGLFrame::OnPlotHpglCurrentExecuteClick( wxCommandEvent& event )
|
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 )
|
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.
|
////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL in WinEDA_PlotHPGLFrame.
|
||||||
// Before editing this code, remove the block markers.
|
// Before editing this code, remove the block markers.
|
||||||
event.Skip();
|
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 )
|
void WinEDA_PlotHPGLFrame::OnPlotAcceptOffsetClick( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
AcceptPlotOffset(event);
|
AcceptPlotOffset(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -378,24 +378,24 @@ void WinEDA_PlotHPGLFrame::SetPageOffsetValue()
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
if ( HPGL_SizeSelect != PAGE_DEFAULT )
|
if ( HPGL_SizeSelect != PAGE_DEFAULT )
|
||||||
{
|
{
|
||||||
msg = ReturnStringFromValue(g_UnitMetric,
|
msg = ReturnStringFromValue(g_UnitMetric,
|
||||||
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x, EESCHEMA_INTERNAL_UNIT);
|
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x, EESCHEMA_INTERNAL_UNIT);
|
||||||
m_PlotOrgPosition_X->SetValue(msg);
|
m_PlotOrgPosition_X->SetValue(msg);
|
||||||
msg = ReturnStringFromValue(g_UnitMetric,
|
msg = ReturnStringFromValue(g_UnitMetric,
|
||||||
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y, EESCHEMA_INTERNAL_UNIT);
|
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y, EESCHEMA_INTERNAL_UNIT);
|
||||||
m_PlotOrgPosition_Y->SetValue(msg);
|
m_PlotOrgPosition_Y->SetValue(msg);
|
||||||
|
|
||||||
m_PlotOrgPosition_X->Enable(TRUE);
|
|
||||||
m_PlotOrgPosition_Y->Enable(TRUE);
|
|
||||||
|
|
||||||
}
|
m_PlotOrgPosition_X->Enable(TRUE);
|
||||||
else
|
m_PlotOrgPosition_Y->Enable(TRUE);
|
||||||
{
|
|
||||||
m_PlotOrgPosition_X->Enable(FALSE);
|
}
|
||||||
m_PlotOrgPosition_Y->Enable(FALSE);
|
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();
|
int ii = m_SizeOption->GetSelection();
|
||||||
|
|
||||||
if ( ii <= 0 ) HPGL_SizeSelect = 0;
|
if ( ii <= 0 ) HPGL_SizeSelect = 0;
|
||||||
else HPGL_SizeSelect = ii;
|
else HPGL_SizeSelect = ii;
|
||||||
|
|
||||||
if ( HPGL_SizeSelect != PAGE_DEFAULT)
|
if ( HPGL_SizeSelect != PAGE_DEFAULT)
|
||||||
{
|
{
|
||||||
wxString msg = m_PlotOrgPosition_X->GetValue();
|
wxString msg = m_PlotOrgPosition_X->GetValue();
|
||||||
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x =
|
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x =
|
||||||
ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT);
|
ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT);
|
||||||
msg = m_PlotOrgPosition_Y->GetValue();
|
msg = m_PlotOrgPosition_Y->GetValue();
|
||||||
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y =
|
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y =
|
||||||
ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT);
|
ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -423,9 +423,9 @@ int ii = m_SizeOption->GetSelection();
|
||||||
void WinEDA_PlotHPGLFrame::SetPenWidth(wxSpinEvent & event)
|
void WinEDA_PlotHPGLFrame::SetPenWidth(wxSpinEvent & event)
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
{
|
{
|
||||||
g_HPGL_Pen_Descr.m_Pen_Diam = m_ButtPenWidth->GetValue();
|
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 > 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;
|
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)
|
void WinEDA_PlotHPGLFrame::SetPenSpeed(wxSpinEvent& event)
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
{
|
{
|
||||||
g_HPGL_Pen_Descr.m_Pen_Speed = m_ButtPenSpeed->GetValue();
|
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 > 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;
|
if ( g_HPGL_Pen_Descr.m_Pen_Speed < 1 ) g_HPGL_Pen_Descr.m_Pen_Speed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************/
|
/*******************************************************/
|
||||||
void WinEDA_PlotHPGLFrame::SetPenNum(wxSpinEvent& event)
|
void WinEDA_PlotHPGLFrame::SetPenNum(wxSpinEvent& event)
|
||||||
/*******************************************************/
|
/*******************************************************/
|
||||||
{
|
{
|
||||||
g_HPGL_Pen_Descr.m_Pen_Num = m_ButtPenNum->GetValue();
|
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 > 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;
|
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;
|
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 )
|
if ( HPGL_SizeSelect )
|
||||||
{
|
{
|
||||||
wxString msg = m_PlotOrgPosition_X->GetValue();
|
wxString msg = m_PlotOrgPosition_X->GetValue();
|
||||||
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x =
|
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.x =
|
||||||
ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT);
|
ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT);
|
||||||
msg = m_PlotOrgPosition_Y->GetValue();
|
msg = m_PlotOrgPosition_Y->GetValue();
|
||||||
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y =
|
Plot_sheet_list[HPGL_SizeSelect]->m_Offset.y =
|
||||||
ReturnValueFromString(g_UnitMetric, msg, EESCHEMA_INTERNAL_UNIT);
|
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,
|
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
|
/* Fonction calculant les dims et offsets de trace de la feuille selectionnee
|
||||||
retourne:
|
retourne:
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
Ki_PageDescr * PlotSheet;
|
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;
|
SheetSize = PlotSheet->m_Size;
|
||||||
SheetOffset = PlotSheet->m_Offset;
|
SheetOffset = PlotSheet->m_Offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
|
@ -498,182 +498,182 @@ wxSize SheetSize;
|
||||||
wxPoint SheetOffset, PlotOffset;
|
wxPoint SheetOffset, PlotOffset;
|
||||||
int margin;
|
int margin;
|
||||||
|
|
||||||
g_PlotFormat = PLOT_FORMAT_HPGL;
|
g_PlotFormat = PLOT_FORMAT_HPGL;
|
||||||
|
|
||||||
/* Build the screen list */
|
/* Build the screen list */
|
||||||
EDA_ScreenList ScreenList;
|
EDA_ScreenList ScreenList;
|
||||||
|
|
||||||
if ( Select_PlotAll == TRUE ) screen = ScreenList.GetFirst();
|
if ( Select_PlotAll == TRUE ) screen = ScreenList.GetFirst();
|
||||||
else screen = m_Parent->GetScreen();
|
else screen = m_Parent->GetScreen();
|
||||||
for ( ; screen != NULL; screen = ScreenList.GetNext() )
|
for ( ; screen != NULL; screen = ScreenList.GetNext() )
|
||||||
{
|
{
|
||||||
ReturnSheetDims(screen, SheetSize, SheetOffset);
|
ReturnSheetDims(screen, SheetSize, SheetOffset);
|
||||||
/* Calcul des echelles de conversion */
|
/* Calcul des echelles de conversion */
|
||||||
g_PlotScaleX = Scale_X * SCALE_HPGL ;
|
g_PlotScaleX = Scale_X * SCALE_HPGL ;
|
||||||
g_PlotScaleY = Scale_Y * SCALE_HPGL ;
|
g_PlotScaleY = Scale_Y * SCALE_HPGL ;
|
||||||
|
|
||||||
margin = 400; // Margin in mils
|
margin = 400; // Margin in mils
|
||||||
PlotSheet = screen->m_CurrentSheetDesc;
|
PlotSheet = screen->m_CurrentSheetDesc;
|
||||||
g_PlotScaleX = g_PlotScaleX * (SheetSize.x - 2 * margin)/ PlotSheet->m_Size.x;
|
g_PlotScaleX = g_PlotScaleX * (SheetSize.x - 2 * margin)/ PlotSheet->m_Size.x;
|
||||||
g_PlotScaleY = g_PlotScaleY * (SheetSize.y - 2 * margin) / PlotSheet->m_Size.y;
|
g_PlotScaleY = g_PlotScaleY * (SheetSize.y - 2 * margin) / PlotSheet->m_Size.y;
|
||||||
|
|
||||||
/* calcul des offsets */
|
/* calcul des offsets */
|
||||||
PlotOffset.x = - (int)(SheetOffset.x * SCALE_HPGL);
|
PlotOffset.x = - (int)(SheetOffset.x * SCALE_HPGL);
|
||||||
PlotOffset.y = (int)( (SheetOffset.y + SheetSize.y) * SCALE_HPGL);
|
PlotOffset.y = (int)( (SheetOffset.y + SheetSize.y) * SCALE_HPGL);
|
||||||
PlotOffset.x -= (int)(margin * SCALE_HPGL);
|
PlotOffset.x -= (int)(margin * SCALE_HPGL);
|
||||||
PlotOffset.y += (int)(margin * SCALE_HPGL);
|
PlotOffset.y += (int)(margin * SCALE_HPGL);
|
||||||
|
|
||||||
wxSplitPath(screen->m_FileName.GetData(), (wxString*) NULL,
|
wxSplitPath(screen->m_FileName.GetData(), (wxString*) NULL,
|
||||||
&ShortFileName, (wxString*) NULL);
|
&ShortFileName, (wxString*) NULL);
|
||||||
wxString dirbuf = wxGetCwd() + STRING_DIR_SEP;
|
wxString dirbuf = wxGetCwd() + STRING_DIR_SEP;
|
||||||
if( ! ShortFileName.IsEmpty() )
|
if( ! ShortFileName.IsEmpty() )
|
||||||
PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".plt"));
|
PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".plt"));
|
||||||
else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".plt"));
|
else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".plt"));
|
||||||
|
|
||||||
setlocale(LC_NUMERIC, "C");
|
setlocale(LC_NUMERIC, "C");
|
||||||
InitPlotParametresHPGL(PlotOffset, g_PlotScaleX, g_PlotScaleY);
|
InitPlotParametresHPGL(PlotOffset, g_PlotScaleX, g_PlotScaleY);
|
||||||
Plot_1_Page_HPGL(PlotFileName,screen);
|
Plot_1_Page_HPGL(PlotFileName,screen);
|
||||||
setlocale(LC_NUMERIC, "");
|
setlocale(LC_NUMERIC, "");
|
||||||
screen = (BASE_SCREEN*)screen->Pnext;
|
screen = (BASE_SCREEN*)screen->Pnext;
|
||||||
if ( Select_PlotAll == FALSE ) break;
|
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,
|
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
|
/* 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_BaseStruct *DrawList;
|
||||||
EDA_SchComponentStruct *DrawLibItem;
|
SCH_COMPONENT *DrawLibItem;
|
||||||
int x1=0, y1=0, x2=0, y2=0, layer;
|
int x1=0, y1=0, x2=0, y2=0, layer;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
PlotOutput = wxFopen(FullFileName, wxT("wt"));
|
PlotOutput = wxFopen(FullFileName, wxT("wt"));
|
||||||
if (PlotOutput == 0)
|
if (PlotOutput == 0)
|
||||||
{
|
{
|
||||||
msg = _("Unable to create ") + FullFileName;
|
msg = _("Unable to create ") + FullFileName;
|
||||||
DisplayError(this, msg); return ;
|
DisplayError(this, msg); return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
msg = _("Plot ") + FullFileName + wxT("\n");
|
msg = _("Plot ") + FullFileName + wxT("\n");
|
||||||
m_MsgBox->AppendText(msg);
|
m_MsgBox->AppendText(msg);
|
||||||
|
|
||||||
/* Init : */
|
/* Init : */
|
||||||
PrintHeaderHPGL(PlotOutput, g_HPGL_Pen_Descr.m_Pen_Speed, g_HPGL_Pen_Descr.m_Pen_Num);
|
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;
|
DrawList = screen->EEDrawList;
|
||||||
while ( DrawList ) /* tracage */
|
while ( DrawList ) /* tracage */
|
||||||
{
|
{
|
||||||
Plume('U');
|
Plume('U');
|
||||||
layer = LAYER_NOTES;
|
layer = LAYER_NOTES;
|
||||||
switch( DrawList->Type() )
|
switch( DrawList->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE :
|
case DRAW_BUSENTRY_STRUCT_TYPE :
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawBusEntryStruct*)DrawList)
|
#define STRUCT ((DrawBusEntryStruct*)DrawList)
|
||||||
x1 = STRUCT->m_Pos.x; y1 = STRUCT->m_Pos.y;
|
x1 = STRUCT->m_Pos.x; y1 = STRUCT->m_Pos.y;
|
||||||
x2 = STRUCT->m_End().x; y2 = STRUCT->m_End().y;
|
x2 = STRUCT->m_End().x; y2 = STRUCT->m_End().y;
|
||||||
layer = STRUCT->m_Layer;
|
layer = STRUCT->m_Layer;
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE :
|
case DRAW_SEGMENT_STRUCT_TYPE :
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((EDA_DrawLineStruct*)DrawList)
|
#define STRUCT ((EDA_DrawLineStruct*)DrawList)
|
||||||
if ( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE)
|
if ( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE)
|
||||||
{
|
{
|
||||||
x1 = STRUCT->m_Start.x; y1 = STRUCT->m_Start.y;
|
x1 = STRUCT->m_Start.x; y1 = STRUCT->m_Start.y;
|
||||||
x2 = STRUCT->m_End.x; y2 = STRUCT->m_End.y;
|
x2 = STRUCT->m_End.x; y2 = STRUCT->m_End.y;
|
||||||
layer = STRUCT->m_Layer;
|
layer = STRUCT->m_Layer;
|
||||||
}
|
}
|
||||||
switch (layer)
|
switch (layer)
|
||||||
{
|
{
|
||||||
case LAYER_NOTES: /* Trace en pointilles */
|
case LAYER_NOTES: /* Trace en pointilles */
|
||||||
Move_Plume( wxPoint(x1,y1),'U');
|
Move_Plume( wxPoint(x1,y1),'U');
|
||||||
fprintf(PlotOutput,"LT 2;\n");
|
fprintf(PlotOutput,"LT 2;\n");
|
||||||
Move_Plume( wxPoint(x2,y2),'D');
|
Move_Plume( wxPoint(x2,y2),'D');
|
||||||
fprintf(PlotOutput,"LT;\n");
|
fprintf(PlotOutput,"LT;\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LAYER_BUS: /* Trait large */
|
case LAYER_BUS: /* Trait large */
|
||||||
{
|
{
|
||||||
int deltaX = 0, deltaY = 0; double angle;
|
int deltaX = 0, deltaY = 0; double angle;
|
||||||
if( (x2 - x1) == 0 ) deltaX = 8;
|
if( (x2 - x1) == 0 ) deltaX = 8;
|
||||||
else if( (y2 - y1) == 0 ) deltaY = 8;
|
else if( (y2 - y1) == 0 ) deltaY = 8;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
angle = atan2( (double)(x2-x1), (double)(y1-y2) );
|
angle = atan2( (double)(x2-x1), (double)(y1-y2) );
|
||||||
deltaX = (int)( 8 * sin(angle) );
|
deltaX = (int)( 8 * sin(angle) );
|
||||||
deltaY = (int)( 8 * cos(angle) );
|
deltaY = (int)( 8 * cos(angle) );
|
||||||
}
|
}
|
||||||
Move_Plume( wxPoint(x1 + deltaX, y1 - deltaY), 'U');
|
Move_Plume( wxPoint(x1 + deltaX, y1 - deltaY), 'U');
|
||||||
Move_Plume( wxPoint(x1 - deltaX,y1 + deltaY), 'D');
|
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(x2 + deltaX,y2 - deltaY), 'D');
|
Move_Plume( wxPoint(x2 + deltaX,y2 - deltaY), 'D');
|
||||||
Move_Plume( wxPoint(x1 + deltaX,y1 - deltaY), 'D');
|
Move_Plume( wxPoint(x1 + deltaX,y1 - deltaY), 'D');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Move_Plume( wxPoint(x1,y1), 'U');
|
Move_Plume( wxPoint(x1,y1), 'U');
|
||||||
Move_Plume( wxPoint(x2,y2), 'D');
|
Move_Plume( wxPoint(x2,y2), 'D');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE :
|
case DRAW_JUNCTION_STRUCT_TYPE :
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawJunctionStruct*)DrawList)
|
#define STRUCT ((DrawJunctionStruct*)DrawList)
|
||||||
x1 = STRUCT->m_Pos.x; y1 = STRUCT->m_Pos.y;
|
x1 = STRUCT->m_Pos.x; y1 = STRUCT->m_Pos.y;
|
||||||
PlotCercle( wxPoint(x1,y1), DRAWJUNCTION_SIZE * 2);
|
PlotCercle( wxPoint(x1,y1), DRAWJUNCTION_SIZE * 2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE :
|
case TYPE_SCH_TEXT :
|
||||||
case DRAW_LABEL_STRUCT_TYPE :
|
case TYPE_SCH_LABEL :
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE :
|
case TYPE_SCH_GLOBALLABEL :
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE :
|
case TYPE_SCH_HIERLABEL :
|
||||||
PlotTextStruct(DrawList);
|
PlotTextStruct(DrawList);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE :
|
case TYPE_SCH_COMPONENT :
|
||||||
DrawLibItem = (EDA_SchComponentStruct *) DrawList;
|
DrawLibItem = (SCH_COMPONENT *) DrawList;
|
||||||
PlotLibPart( DrawLibItem );
|
PlotLibPart( DrawLibItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_PICK_ITEM_STRUCT_TYPE : break;
|
case DRAW_PICK_ITEM_STRUCT_TYPE : break;
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE : break;
|
case DRAW_POLYLINE_STRUCT_TYPE : break;
|
||||||
case DRAW_SHEETLABEL_STRUCT_TYPE : break;
|
case DRAW_SHEETLABEL_STRUCT_TYPE : break;
|
||||||
case DRAW_MARKER_STRUCT_TYPE : break;
|
case DRAW_MARKER_STRUCT_TYPE : break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE :
|
case DRAW_SHEET_STRUCT_TYPE :
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawSheetStruct*)DrawList)
|
#define STRUCT ((DrawSheetStruct*)DrawList)
|
||||||
PlotSheetStruct(STRUCT);
|
PlotSheetStruct(STRUCT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case DRAW_NOCONNECT_STRUCT_TYPE:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawNoConnectStruct*)DrawList)
|
#define STRUCT ((DrawNoConnectStruct*)DrawList)
|
||||||
PlotNoConnectStruct(STRUCT);
|
PlotNoConnectStruct(STRUCT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Plume('U');
|
Plume('U');
|
||||||
DrawList = DrawList->Pnext;
|
DrawList = DrawList->Pnext;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* fin */
|
/* fin */
|
||||||
CloseFileHPGL(PlotOutput);
|
CloseFileHPGL(PlotOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -682,8 +682,8 @@ wxString msg;
|
||||||
|
|
||||||
void WinEDA_PlotHPGLFrame::OnRadioboxSelected( wxCommandEvent& event )
|
void WinEDA_PlotHPGLFrame::OnRadioboxSelected( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
HPGL_SizeSelect = m_SizeOption->GetSelection();
|
HPGL_SizeSelect = m_SizeOption->GetSelection();
|
||||||
SetPageOffsetValue();
|
SetPageOffsetValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -695,7 +695,7 @@ void WinEDA_PlotHPGLFrame::OnRadioboxSelected( wxCommandEvent& event )
|
||||||
|
|
||||||
void WinEDA_PlotHPGLFrame::OnPenWidthUpdatedUpdated( wxSpinEvent& 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 )
|
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 )
|
void WinEDA_PlotHPGLFrame::OnPenNumberUpdatedUpdated( wxSpinEvent& event )
|
||||||
{
|
{
|
||||||
SetPenNum(event);
|
SetPenNum(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: plotps.cpp
|
// Name: plotps.cpp
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: jean-pierre Charras
|
// Author: jean-pierre Charras
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 01/02/2006 08:37:24
|
// Created: 01/02/2006 08:37:24
|
||||||
// RCS-ID:
|
// RCS-ID:
|
||||||
// Copyright: GNU License
|
// Copyright: GNU License
|
||||||
// Licence:
|
// Licence:
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 01/02/2006 08:37:24
|
// 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 );
|
extern void Plume( int plume );
|
||||||
|
|
||||||
enum PageFormatReq {
|
enum PageFormatReq {
|
||||||
PAGE_SIZE_AUTO,
|
PAGE_SIZE_AUTO,
|
||||||
PAGE_SIZE_A4,
|
PAGE_SIZE_A4,
|
||||||
PAGE_SIZE_A
|
PAGE_SIZE_A
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,10 +76,10 @@ void WinEDA_SchematicFrame::ToPlot_PS(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
wxPoint pos;
|
wxPoint pos;
|
||||||
|
|
||||||
pos = GetPosition();
|
pos = GetPosition();
|
||||||
pos.x += 10; pos.y += 20;
|
pos.x += 10; pos.y += 20;
|
||||||
WinEDA_PlotPSFrame * Ps_frame = new WinEDA_PlotPSFrame(this);
|
WinEDA_PlotPSFrame * Ps_frame = new WinEDA_PlotPSFrame(this);
|
||||||
Ps_frame->ShowModal(); Ps_frame->Destroy();
|
Ps_frame->ShowModal(); Ps_frame->Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -153,9 +153,9 @@ bool WinEDA_PlotPSFrame::Create( wxWindow* parent, wxWindowID id, const wxString
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void WinEDA_PlotPSFrame::CreateControls()
|
void WinEDA_PlotPSFrame::CreateControls()
|
||||||
{
|
{
|
||||||
SetFont(*g_DialogFont);
|
SetFont(*g_DialogFont);
|
||||||
|
|
||||||
////@begin WinEDA_PlotPSFrame content construction
|
////@begin WinEDA_PlotPSFrame content construction
|
||||||
// Generated by DialogBlocks, 22/01/2007 11:32:43 (unregistered)
|
// 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) );
|
m_Plot_Sheet_Ref->SetValidator( wxGenericValidator(& Plot_Sheet_Ref) );
|
||||||
////@end WinEDA_PlotPSFrame content construction
|
////@end WinEDA_PlotPSFrame content construction
|
||||||
|
|
||||||
m_DefaultLineSizeCtrl = new WinEDA_ValueCtrl(this, _("Default Line Width"), g_PlotPSMinimunLineWidth,
|
m_DefaultLineSizeCtrl = new WinEDA_ValueCtrl(this, _("Default Line Width"), g_PlotPSMinimunLineWidth,
|
||||||
g_UnitMetric, m_DefaultLineSizeCtrlSizer, EESCHEMA_INTERNAL_UNIT );
|
g_UnitMetric, m_DefaultLineSizeCtrlSizer, EESCHEMA_INTERNAL_UNIT );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,9 +273,9 @@ void WinEDA_PlotPSFrame::OnPlotPsCurrentExecuteClick( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
int Select_PlotAll = FALSE;
|
int Select_PlotAll = FALSE;
|
||||||
|
|
||||||
InitOptVars();
|
InitOptVars();
|
||||||
CreatePSFile(Select_PlotAll, PS_SizeSelect);
|
CreatePSFile(Select_PlotAll, PS_SizeSelect);
|
||||||
m_MsgBox->AppendText( wxT("*****\n"));
|
m_MsgBox->AppendText( wxT("*****\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -287,9 +287,9 @@ void WinEDA_PlotPSFrame::OnPlotPsAllExecuteClick( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
int Select_PlotAll = TRUE;
|
int Select_PlotAll = TRUE;
|
||||||
|
|
||||||
InitOptVars();
|
InitOptVars();
|
||||||
CreatePSFile(Select_PlotAll, PS_SizeSelect);
|
CreatePSFile(Select_PlotAll, PS_SizeSelect);
|
||||||
m_MsgBox->AppendText( wxT("*****\n"));
|
m_MsgBox->AppendText( wxT("*****\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -299,7 +299,7 @@ int Select_PlotAll = TRUE;
|
||||||
|
|
||||||
void WinEDA_PlotPSFrame::OnCloseClick( wxCommandEvent& event )
|
void WinEDA_PlotPSFrame::OnCloseClick( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
InitOptVars();
|
InitOptVars();
|
||||||
Close(TRUE);
|
Close(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,14 +308,14 @@ void WinEDA_PlotPSFrame::OnCloseClick( wxCommandEvent& event )
|
||||||
void WinEDA_PlotPSFrame::InitOptVars()
|
void WinEDA_PlotPSFrame::InitOptVars()
|
||||||
/*****************************************/
|
/*****************************************/
|
||||||
{
|
{
|
||||||
Plot_Sheet_Ref = m_Plot_Sheet_Ref->GetValue();
|
Plot_Sheet_Ref = m_Plot_Sheet_Ref->GetValue();
|
||||||
g_PlotPSColorOpt = m_PlotPSColorOption->GetSelection();
|
g_PlotPSColorOpt = m_PlotPSColorOption->GetSelection();
|
||||||
PS_SizeSelect = m_SizeOption->GetSelection();
|
PS_SizeSelect = m_SizeOption->GetSelection();
|
||||||
g_PlotPSMinimunLineWidth = m_DefaultLineSizeCtrl->GetValue();
|
g_PlotPSMinimunLineWidth = m_DefaultLineSizeCtrl->GetValue();
|
||||||
if ( g_PlotPSMinimunLineWidth < 1 ) g_PlotPSMinimunLineWidth = 1;
|
if ( g_PlotPSMinimunLineWidth < 1 ) g_PlotPSMinimunLineWidth = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************/
|
/*************************************************************/
|
||||||
void WinEDA_PlotPSFrame::CreatePSFile(int AllPages, int pagesize)
|
void WinEDA_PlotPSFrame::CreatePSFile(int AllPages, int pagesize)
|
||||||
|
@ -327,193 +327,193 @@ Ki_PageDescr * PlotSheet, * RealSheet;
|
||||||
int BBox[4];
|
int BBox[4];
|
||||||
wxPoint plot_offset;
|
wxPoint plot_offset;
|
||||||
|
|
||||||
g_PlotFormat = PLOT_FORMAT_POST;
|
g_PlotFormat = PLOT_FORMAT_POST;
|
||||||
|
|
||||||
/* Build the screen list */
|
/* Build the screen list */
|
||||||
EDA_ScreenList ScreenList;
|
EDA_ScreenList ScreenList;
|
||||||
|
|
||||||
if ( AllPages == TRUE ) screen = ScreenList.GetFirst();
|
if ( AllPages == TRUE ) screen = ScreenList.GetFirst();
|
||||||
else screen = ActiveScreen;
|
else screen = ActiveScreen;
|
||||||
for ( ; screen != NULL; screen = ScreenList.GetNext() )
|
for ( ; screen != NULL; screen = ScreenList.GetNext() )
|
||||||
{
|
{
|
||||||
PlotSheet = screen->m_CurrentSheetDesc;
|
PlotSheet = screen->m_CurrentSheetDesc;
|
||||||
RealSheet = &g_Sheet_A4;
|
RealSheet = &g_Sheet_A4;
|
||||||
if ( pagesize == PAGE_SIZE_AUTO ) RealSheet = PlotSheet;
|
if ( pagesize == PAGE_SIZE_AUTO ) RealSheet = PlotSheet;
|
||||||
else if ( pagesize == PAGE_SIZE_A ) RealSheet = &g_Sheet_A;
|
else if ( pagesize == PAGE_SIZE_A ) RealSheet = &g_Sheet_A;
|
||||||
|
|
||||||
/* Calcul des limites de trace en 1/1000 pouce */
|
/* Calcul des limites de trace en 1/1000 pouce */
|
||||||
BBox[0] = BBox[1] = g_PlotMargin; // Plot margin in 1/1000 inch
|
BBox[0] = BBox[1] = g_PlotMargin; // Plot margin in 1/1000 inch
|
||||||
BBox[2] = RealSheet->m_Size.x - g_PlotMargin;
|
BBox[2] = RealSheet->m_Size.x - g_PlotMargin;
|
||||||
BBox[3] = RealSheet->m_Size.y - g_PlotMargin;
|
BBox[3] = RealSheet->m_Size.y - g_PlotMargin;
|
||||||
|
|
||||||
/* Calcul des echelles de conversion */
|
/* Calcul des echelles de conversion */
|
||||||
g_PlotScaleX = SCALE_PS *
|
g_PlotScaleX = SCALE_PS *
|
||||||
(float) (BBox[2] - BBox[0]) /
|
(float) (BBox[2] - BBox[0]) /
|
||||||
PlotSheet->m_Size.x;
|
PlotSheet->m_Size.x;
|
||||||
g_PlotScaleY = SCALE_PS *
|
g_PlotScaleY = SCALE_PS *
|
||||||
(float) (BBox[3] - BBox[1]) /
|
(float) (BBox[3] - BBox[1]) /
|
||||||
PlotSheet->m_Size.y;
|
PlotSheet->m_Size.y;
|
||||||
|
|
||||||
plot_offset.x = 0;
|
plot_offset.x = 0;
|
||||||
plot_offset.y = PlotSheet->m_Size.y;
|
plot_offset.y = PlotSheet->m_Size.y;
|
||||||
|
|
||||||
wxSplitPath(screen->m_FileName.GetData(), (wxString*) NULL,
|
wxSplitPath(screen->m_FileName.GetData(), (wxString*) NULL,
|
||||||
&ShortFileName, (wxString*) NULL);
|
&ShortFileName, (wxString*) NULL);
|
||||||
wxString dirbuf = wxGetCwd() + STRING_DIR_SEP;
|
wxString dirbuf = wxGetCwd() + STRING_DIR_SEP;
|
||||||
if( ! ShortFileName.IsEmpty() )
|
if( ! ShortFileName.IsEmpty() )
|
||||||
PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".ps"));
|
PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".ps"));
|
||||||
else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".ps"));
|
else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".ps"));
|
||||||
|
|
||||||
PlotOneSheetPS(PlotFileName,screen, RealSheet, BBox, plot_offset);
|
PlotOneSheetPS(PlotFileName,screen, RealSheet, BBox, plot_offset);
|
||||||
screen = (BASE_SCREEN*)screen->Pnext;
|
screen = (BASE_SCREEN*)screen->Pnext;
|
||||||
if (AllPages == FALSE ) break;
|
if (AllPages == FALSE ) break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************************/
|
/*****************************************************************************************/
|
||||||
void WinEDA_PlotPSFrame::PlotOneSheetPS(const wxString & FileName,
|
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
|
/* Trace en format PS. d'une feuille de dessin
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
wxString Line;
|
wxString Line;
|
||||||
EDA_BaseStruct *DrawList;
|
EDA_BaseStruct *DrawList;
|
||||||
EDA_SchComponentStruct *DrawLibItem;
|
SCH_COMPONENT *DrawLibItem;
|
||||||
int layer;
|
int layer;
|
||||||
wxPoint StartPos, EndPos;
|
wxPoint StartPos, EndPos;
|
||||||
|
|
||||||
PlotOutput = wxFopen(FileName, wxT("wt"));
|
PlotOutput = wxFopen(FileName, wxT("wt"));
|
||||||
if (PlotOutput == NULL)
|
if (PlotOutput == NULL)
|
||||||
{
|
{
|
||||||
Line = wxT("\n** ");
|
Line = wxT("\n** ");
|
||||||
Line += _("Unable to create ") + FileName + wxT(" **\n\n");
|
Line += _("Unable to create ") + FileName + wxT(" **\n\n");
|
||||||
m_MsgBox->AppendText(Line);
|
m_MsgBox->AppendText(Line);
|
||||||
wxBell();
|
wxBell();
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
setlocale(LC_NUMERIC, "C");
|
setlocale(LC_NUMERIC, "C");
|
||||||
Line.Printf(_("Plot: %s\n"), FileName.GetData()) ;
|
Line.Printf(_("Plot: %s\n"), FileName.GetData()) ;
|
||||||
m_MsgBox->AppendText(Line);
|
m_MsgBox->AppendText(Line);
|
||||||
|
|
||||||
InitPlotParametresPS(plot_offset, sheet, g_PlotScaleX, g_PlotScaleY);
|
InitPlotParametresPS(plot_offset, sheet, g_PlotScaleX, g_PlotScaleY);
|
||||||
SetDefaultLineWidthPS( g_PlotPSMinimunLineWidth);
|
SetDefaultLineWidthPS( g_PlotPSMinimunLineWidth);
|
||||||
|
|
||||||
/* Init : */
|
/* Init : */
|
||||||
PrintHeaderPS( PlotOutput, wxT("EESchema-PS"), FileName, 1, BBox, wxLANDSCAPE );
|
PrintHeaderPS( PlotOutput, wxT("EESchema-PS"), FileName, 1, BBox, wxLANDSCAPE );
|
||||||
InitPlotParametresPS(plot_offset, sheet, 1.0, 1.0);
|
InitPlotParametresPS(plot_offset, sheet, 1.0, 1.0);
|
||||||
|
|
||||||
if ( m_Plot_Sheet_Ref->GetValue() )
|
if ( m_Plot_Sheet_Ref->GetValue() )
|
||||||
{
|
{
|
||||||
if ( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt )
|
if ( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt )
|
||||||
SetColorMapPS ( BLACK );
|
SetColorMapPS ( BLACK );
|
||||||
PlotWorkSheet(PLOT_FORMAT_POST, screen);
|
PlotWorkSheet(PLOT_FORMAT_POST, screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawList = screen->EEDrawList;
|
DrawList = screen->EEDrawList;
|
||||||
while ( DrawList ) /* tracage */
|
while ( DrawList ) /* tracage */
|
||||||
{
|
{
|
||||||
Plume('U');
|
Plume('U');
|
||||||
layer = LAYER_NOTES;
|
layer = LAYER_NOTES;
|
||||||
switch( DrawList->Type() )
|
switch( DrawList->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE : /* Struct Raccord et Segment sont identiques */
|
case DRAW_BUSENTRY_STRUCT_TYPE : /* Struct Raccord et Segment sont identiques */
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawBusEntryStruct*)DrawList)
|
#define STRUCT ((DrawBusEntryStruct*)DrawList)
|
||||||
StartPos = STRUCT->m_Pos;
|
StartPos = STRUCT->m_Pos;
|
||||||
EndPos = STRUCT->m_End();
|
EndPos = STRUCT->m_End();
|
||||||
layer = STRUCT->m_Layer;
|
layer = STRUCT->m_Layer;
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE :
|
case DRAW_SEGMENT_STRUCT_TYPE :
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((EDA_DrawLineStruct*)DrawList)
|
#define STRUCT ((EDA_DrawLineStruct*)DrawList)
|
||||||
if ( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE)
|
if ( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE)
|
||||||
{
|
{
|
||||||
StartPos = STRUCT->m_Start;
|
StartPos = STRUCT->m_Start;
|
||||||
EndPos = STRUCT->m_End;
|
EndPos = STRUCT->m_End;
|
||||||
layer = STRUCT->m_Layer;
|
layer = STRUCT->m_Layer;
|
||||||
}
|
}
|
||||||
if ( g_PlotPSColorOpt )
|
if ( g_PlotPSColorOpt )
|
||||||
SetColorMapPS ( ReturnLayerColor(layer) );
|
SetColorMapPS ( ReturnLayerColor(layer) );
|
||||||
switch (layer)
|
switch (layer)
|
||||||
{
|
{
|
||||||
case LAYER_NOTES: /* Trace en pointilles */
|
case LAYER_NOTES: /* Trace en pointilles */
|
||||||
SetCurrentLineWidth(-1);
|
SetCurrentLineWidth(-1);
|
||||||
fprintf(PlotOutput,"[50 50] 0 setdash\n");
|
fprintf(PlotOutput,"[50 50] 0 setdash\n");
|
||||||
Move_Plume( StartPos, 'U');
|
Move_Plume( StartPos, 'U');
|
||||||
Move_Plume( EndPos, 'D');
|
Move_Plume( EndPos, 'D');
|
||||||
fprintf(PlotOutput,"[] 0 setdash\n");
|
fprintf(PlotOutput,"[] 0 setdash\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LAYER_BUS: /* Trait large */
|
case LAYER_BUS: /* Trait large */
|
||||||
{
|
{
|
||||||
fprintf(PlotOutput,"%d setlinewidth\n", g_PlotPSMinimunLineWidth * 3);
|
fprintf(PlotOutput,"%d setlinewidth\n", g_PlotPSMinimunLineWidth * 3);
|
||||||
Move_Plume( StartPos,'U');
|
Move_Plume( StartPos,'U');
|
||||||
Move_Plume( EndPos,'D');
|
Move_Plume( EndPos,'D');
|
||||||
fprintf(PlotOutput,"%d setlinewidth\n", g_PlotPSMinimunLineWidth);
|
fprintf(PlotOutput,"%d setlinewidth\n", g_PlotPSMinimunLineWidth);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
SetCurrentLineWidth(-1);
|
SetCurrentLineWidth(-1);
|
||||||
Move_Plume( StartPos,'U');
|
Move_Plume( StartPos,'U');
|
||||||
Move_Plume( EndPos,'D');
|
Move_Plume( EndPos,'D');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE :
|
case DRAW_JUNCTION_STRUCT_TYPE :
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawJunctionStruct*)DrawList)
|
#define STRUCT ((DrawJunctionStruct*)DrawList)
|
||||||
if ( g_PlotPSColorOpt )
|
if ( g_PlotPSColorOpt )
|
||||||
SetColorMapPS (ReturnLayerColor(STRUCT->m_Layer) );
|
SetColorMapPS (ReturnLayerColor(STRUCT->m_Layer) );
|
||||||
PlotCercle( STRUCT->m_Pos, DRAWJUNCTION_SIZE);
|
PlotCercle( STRUCT->m_Pos, DRAWJUNCTION_SIZE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE :
|
case TYPE_SCH_TEXT :
|
||||||
case DRAW_LABEL_STRUCT_TYPE :
|
case TYPE_SCH_LABEL :
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE :
|
case TYPE_SCH_GLOBALLABEL :
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE :
|
case TYPE_SCH_HIERLABEL :
|
||||||
PlotTextStruct(DrawList);
|
PlotTextStruct(DrawList);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE :
|
case TYPE_SCH_COMPONENT :
|
||||||
DrawLibItem = (EDA_SchComponentStruct *) DrawList;
|
DrawLibItem = (SCH_COMPONENT *) DrawList;
|
||||||
PlotLibPart( DrawLibItem );
|
PlotLibPart( DrawLibItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_PICK_ITEM_STRUCT_TYPE : break;
|
case DRAW_PICK_ITEM_STRUCT_TYPE : break;
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE : break;
|
case DRAW_POLYLINE_STRUCT_TYPE : break;
|
||||||
case DRAW_SHEETLABEL_STRUCT_TYPE: break;
|
case DRAW_SHEETLABEL_STRUCT_TYPE: break;
|
||||||
case DRAW_MARKER_STRUCT_TYPE : break;
|
case DRAW_MARKER_STRUCT_TYPE : break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE :
|
case DRAW_SHEET_STRUCT_TYPE :
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawSheetStruct*)DrawList)
|
#define STRUCT ((DrawSheetStruct*)DrawList)
|
||||||
PlotSheetStruct(STRUCT);
|
PlotSheetStruct(STRUCT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case DRAW_NOCONNECT_STRUCT_TYPE:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawNoConnectStruct*)DrawList)
|
#define STRUCT ((DrawNoConnectStruct*)DrawList)
|
||||||
if ( g_PlotPSColorOpt )
|
if ( g_PlotPSColorOpt )
|
||||||
SetColorMapPS (ReturnLayerColor(LAYER_NOCONNECT) );
|
SetColorMapPS (ReturnLayerColor(LAYER_NOCONNECT) );
|
||||||
PlotNoConnectStruct(STRUCT);
|
PlotNoConnectStruct(STRUCT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Plume('U');
|
Plume('U');
|
||||||
DrawList = DrawList->Pnext;
|
DrawList = DrawList->Pnext;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* fin */
|
/* fin */
|
||||||
CloseFilePS(PlotOutput);
|
CloseFilePS(PlotOutput);
|
||||||
setlocale(LC_NUMERIC, "");
|
setlocale(LC_NUMERIC, "");
|
||||||
|
|
||||||
m_MsgBox->AppendText( wxT("Ok\n"));
|
m_MsgBox->AppendText( wxT("Ok\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
void FreeLibraryEntry(LibCmpEntry * Entry);
|
void FreeLibraryEntry(LibCmpEntry * Entry);
|
||||||
|
|
||||||
LibEDA_BaseStruct * LocatePin(const wxPoint & RefPos,
|
LibEDA_BaseStruct * LocatePin(const wxPoint & RefPos,
|
||||||
EDA_LibComponentStruct * Entry,
|
EDA_LibComponentStruct * Entry,
|
||||||
int Unit, int Convert, EDA_SchComponentStruct * DrawItem = NULL);
|
int Unit, int Convert, SCH_COMPONENT * DrawItem = NULL);
|
||||||
/* Routine de localisation d'une PIN de la PartLib pointee par Entry */
|
/* Routine de localisation d'une PIN de la PartLib pointee par Entry */
|
||||||
|
|
||||||
const wxString& ReturnDefaultFieldName( int aFieldNdx );
|
const wxString& ReturnDefaultFieldName( int aFieldNdx );
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ const wxString& ReturnDefaultFieldName( int aFieldNdx );
|
||||||
/****************/
|
/****************/
|
||||||
void DisplayCmpDoc(wxString & Name);
|
void DisplayCmpDoc(wxString & Name);
|
||||||
bool DataBaseGetName(WinEDA_DrawFrame * frame,
|
bool DataBaseGetName(WinEDA_DrawFrame * frame,
|
||||||
wxString & Keys, wxString & BufName);
|
wxString & Keys, wxString & BufName);
|
||||||
|
|
||||||
/*********************/
|
/*********************/
|
||||||
/* DANGLING_ENDS.CPP */
|
/* DANGLING_ENDS.CPP */
|
||||||
|
@ -36,12 +36,12 @@ void IncrementLabelMember(wxString & name);
|
||||||
/* EDITPART.CPP */
|
/* EDITPART.CPP */
|
||||||
/****************/
|
/****************/
|
||||||
void InstallCmpeditFrame(WinEDA_SchematicFrame * parent, wxPoint & pos,
|
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: */
|
/* Functions common to all EELibs?.c modules: */
|
||||||
int LibraryEntryCompare(EDA_LibComponentStruct *LE1, EDA_LibComponentStruct *LE2);
|
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);
|
EDA_LibComponentStruct *FindLibPart(const wxChar *Name, const wxString & LibName, int Alias);
|
||||||
|
|
||||||
void DrawingLibInGhost(WinEDA_DrawPanel * panel, wxDC * DC, EDA_LibComponentStruct *LibEntry,
|
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 Multi, int convert,
|
||||||
int Color, bool DrawPinText);
|
int Color, bool DrawPinText);
|
||||||
|
|
||||||
void DrawLibEntry(WinEDA_DrawPanel * panel, wxDC * DC,
|
void DrawLibEntry(WinEDA_DrawPanel * panel, wxDC * DC,
|
||||||
EDA_LibComponentStruct *LibEntry, int posX, int posY,
|
EDA_LibComponentStruct *LibEntry, int posX, int posY,
|
||||||
int Multi, int convert,
|
int Multi, int convert,
|
||||||
int DrawMode, int Color = -1);
|
int DrawMode, int Color = -1);
|
||||||
|
|
||||||
void DrawLibraryDrawStruct(WinEDA_DrawPanel * panel, wxDC * DC,
|
void DrawLibraryDrawStruct(WinEDA_DrawPanel * panel, wxDC * DC,
|
||||||
EDA_LibComponentStruct *LibEntry, int PartX, int PartY,
|
EDA_LibComponentStruct *LibEntry, int PartX, int PartY,
|
||||||
LibEDA_BaseStruct *DrawItem, int Multi,
|
LibEDA_BaseStruct *DrawItem, int Multi,
|
||||||
int DrawMode, int Color = -1);
|
int DrawMode, int Color = -1);
|
||||||
|
|
||||||
bool MapAngles(int *Angle1, int *Angle2, int TransMat[2][2]);
|
bool MapAngles(int *Angle1, int *Angle2, int TransMat[2][2]);
|
||||||
|
|
||||||
|
|
||||||
/**************/
|
/**************/
|
||||||
/* EELIBS1.CPP */
|
/* EELIBS1.CPP */
|
||||||
/**************/
|
/**************/
|
||||||
EDA_LibComponentStruct * Read_Component_Definition(WinEDA_DrawFrame * frame, char * Line,
|
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. */
|
/* Routine to Read a DEF/ENDDEF part entry from given open file. */
|
||||||
|
|
||||||
LibraryStruct *FindLibrary(const wxString & Name);
|
LibraryStruct *FindLibrary(const wxString & Name);
|
||||||
int LoadDocLib(WinEDA_DrawFrame * frame, const wxString & FullDocLibName, const wxString & Libname);
|
int LoadDocLib(WinEDA_DrawFrame * frame, const wxString & FullDocLibName, const wxString & Libname);
|
||||||
PriorQue *LoadLibraryAux(WinEDA_DrawFrame * frame, LibraryStruct * library,
|
PriorQue *LoadLibraryAux(WinEDA_DrawFrame * frame, LibraryStruct * library,
|
||||||
FILE *f, int *NumOfParts);
|
FILE *f, int *NumOfParts);
|
||||||
LibraryStruct * LoadLibraryName(WinEDA_DrawFrame * frame,
|
LibraryStruct * LoadLibraryName(WinEDA_DrawFrame * frame,
|
||||||
const wxString & FullLibName, const wxString & LibName);
|
const wxString & FullLibName, const wxString & LibName);
|
||||||
void LoadLibraries(WinEDA_DrawFrame * frame);
|
void LoadLibraries(WinEDA_DrawFrame * frame);
|
||||||
void FreeCmpLibrary(wxWindow * frame, const wxString & LibName);
|
void FreeCmpLibrary(wxWindow * frame, const wxString & LibName);
|
||||||
const wxChar **GetLibNames();
|
const wxChar **GetLibNames();
|
||||||
|
|
||||||
void SnapLibItemPoint(int OrigX, int OrigY, int *ClosestX, int *ClosestY,
|
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,
|
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);
|
void DrawTextField(WinEDA_DrawPanel * panel, wxDC * DC, PartTextStruct * Field, int IsMulti, int DrawMode);
|
||||||
/* Routine de trace des textes type Field du composant.
|
/* Routine de trace des textes type Field du composant.
|
||||||
entree:
|
entree:
|
||||||
Field: champ
|
Field: champ
|
||||||
IsMulti: flag Non Null si il y a plusieurs parts par boitier.
|
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
|
n'est utile que pour le champ reference pour ajouter a celui ci
|
||||||
l'identification de la part ( A, B ... )
|
l'identification de la part ( A, B ... )
|
||||||
DrawMode: mode de trace */
|
DrawMode: mode de trace */
|
||||||
|
|
||||||
char * StrPurge(char * text);
|
char * StrPurge(char * text);
|
||||||
/* Supprime les caracteres Space en debut de la ligne text
|
/* Supprime les caracteres Space en debut de la ligne text
|
||||||
retourne un pointeur sur le 1er caractere non Space de text */
|
retourne un pointeur sur le 1er caractere non Space de text */
|
||||||
|
|
||||||
/************/
|
/************/
|
||||||
/* BLOCK.CPP */
|
/* BLOCK.CPP */
|
||||||
/************/
|
/************/
|
||||||
EDA_BaseStruct * DuplicateStruct(EDA_BaseStruct *DrawStruct);
|
EDA_BaseStruct * DuplicateStruct(EDA_BaseStruct *DrawStruct);
|
||||||
void MoveOneStruct(EDA_BaseStruct *DrawStructs, const wxPoint & move_vector);
|
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 PlaceStruct(BASE_SCREEN * screen, EDA_BaseStruct *DrawStruct);
|
||||||
bool MoveStruct(WinEDA_DrawPanel * panel, wxDC * DC, EDA_BaseStruct *DrawStruct);
|
bool MoveStruct(WinEDA_DrawPanel * panel, wxDC * DC, EDA_BaseStruct *DrawStruct);
|
||||||
void DeleteStruct(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,
|
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,
|
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 */
|
/* Recherche du plus petit (en surface) composant pointe par la souris */
|
||||||
|
|
||||||
EDA_BaseStruct * PickStruct(EDA_Rect & block,
|
EDA_BaseStruct * PickStruct(EDA_Rect & block,
|
||||||
BASE_SCREEN* screen, int SearchMask );
|
BASE_SCREEN* screen, int SearchMask );
|
||||||
EDA_BaseStruct * PickStruct(const wxPoint & refpos,
|
EDA_BaseStruct * PickStruct(const wxPoint & refpos,
|
||||||
BASE_SCREEN* screen, int SearchMask);
|
BASE_SCREEN* screen, int SearchMask);
|
||||||
/* 2 functions EDA_BaseStruct * PickStruct:
|
/* 2 functions EDA_BaseStruct * PickStruct:
|
||||||
Search in block, or Serach at location pos
|
Search in block, or Serach at location pos
|
||||||
|
|
||||||
SearchMask = (bitwise OR):
|
SearchMask = (bitwise OR):
|
||||||
LIBITEM
|
LIBITEM
|
||||||
WIREITEM
|
WIREITEM
|
||||||
BUSITEM
|
BUSITEM
|
||||||
RACCORDITEM
|
RACCORDITEM
|
||||||
JUNCTIONITEM
|
JUNCTIONITEM
|
||||||
DRAWITEM
|
DRAWITEM
|
||||||
TEXTITEM
|
TEXTITEM
|
||||||
LABELITEM
|
LABELITEM
|
||||||
SHEETITEM
|
SHEETITEM
|
||||||
MARKERITEM
|
MARKERITEM
|
||||||
NOCONNECTITEM
|
NOCONNECTITEM
|
||||||
SEARCH_PINITEM
|
SEARCH_PINITEM
|
||||||
SHEETLABELITEM
|
SHEETLABELITEM
|
||||||
FIELDCMPITEM
|
FIELDCMPITEM
|
||||||
|
|
||||||
if EXCLUDE_WIRE_BUS_ENDPOINTS is set, in wire ou bus search and locate,
|
if EXCLUDE_WIRE_BUS_ENDPOINTS is set, in wire ou bus search and locate,
|
||||||
start and end points are not included in search
|
start and end points are not included in search
|
||||||
if WIRE_BUS_ENDPOINTS_ONLY is set, in wire ou bus search and locate,
|
if WIRE_BUS_ENDPOINTS_ONLY is set, in wire ou bus search and locate,
|
||||||
only start and end points are included in search
|
only start and end points are included in search
|
||||||
|
|
||||||
|
|
||||||
Return:
|
Return:
|
||||||
-Bloc searc:
|
-Bloc searc:
|
||||||
pointeur sur liste de pointeurs de structures si Plusieurs
|
pointeur sur liste de pointeurs de structures si Plusieurs
|
||||||
structures selectionnees.
|
structures selectionnees.
|
||||||
pointeur sur la structure si 1 seule
|
pointeur sur la structure si 1 seule
|
||||||
|
|
||||||
Positon serach:
|
Positon serach:
|
||||||
pointeur sur la structure.
|
pointeur sur la structure.
|
||||||
Si pas de structures selectionnees: retourne NULL */
|
Si pas de structures selectionnees: retourne NULL */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LibEDA_BaseStruct * LocateDrawItem(SCH_SCREEN * Screen, const wxPoint & refpoint,
|
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);
|
DrawSheetLabelStruct * LocateSheetLabel(DrawSheetStruct *Sheet, const wxPoint & pos);
|
||||||
LibDrawPin * LocateAnyPin(EDA_BaseStruct *DrawList, const wxPoint & RefPos,
|
LibDrawPin * LocateAnyPin(EDA_BaseStruct *DrawList, const wxPoint & RefPos,
|
||||||
EDA_SchComponentStruct ** libpart = NULL );
|
SCH_COMPONENT ** libpart = NULL );
|
||||||
|
|
||||||
DrawSheetLabelStruct * LocateAnyPinSheet(const wxPoint & RefPos,
|
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);
|
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,
|
/* Calcul de la distance du point spot_cx,spot_cy a un segment de droite,
|
||||||
d'origine 0,0 et d'extremite dx, dy;
|
d'origine 0,0 et d'extremite dx, dy;
|
||||||
retourne:
|
retourne:
|
||||||
0 si distance > seuil
|
0 si distance > seuil
|
||||||
1 si distance <= seuil
|
1 si distance <= seuil
|
||||||
Variables utilisees ( sont ramenees au repere centre sur l'origine du segment)
|
Variables utilisees ( sont ramenees au repere centre sur l'origine du segment)
|
||||||
dx, dy = coord de l'extremite segment.
|
dx, dy = coord de l'extremite segment.
|
||||||
spot_cX,spot_cY = coord du curseur souris
|
spot_cX,spot_cY = coord du curseur souris
|
||||||
la recherche se fait selon 4 cas:
|
la recherche se fait selon 4 cas:
|
||||||
segment horizontal
|
segment horizontal
|
||||||
segment vertical
|
segment vertical
|
||||||
segment quelconque */
|
segment quelconque */
|
||||||
|
|
||||||
|
|
||||||
/***************/
|
/***************/
|
||||||
/* EEREDRAW.CPP */
|
/* EEREDRAW.CPP */
|
||||||
/***************/
|
/***************/
|
||||||
void DrawDanglingSymbol(WinEDA_DrawPanel * panel,wxDC * DC,
|
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,
|
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,
|
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 SetHighLightStruct(EDA_BaseStruct *HighLight);
|
||||||
void RedrawActiveWindow(WinEDA_DrawPanel * panel, wxDC * DC);
|
void RedrawActiveWindow(WinEDA_DrawPanel * panel, wxDC * DC);
|
||||||
void RedrawStructList(WinEDA_DrawPanel * panel, wxDC * DC, EDA_BaseStruct *Structs, int DrawMode,
|
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,
|
void RedrawOneStruct(WinEDA_DrawPanel * panel, wxDC * DC, EDA_BaseStruct *Struct, int DrawMode,
|
||||||
int Color = -1);
|
int Color = -1);
|
||||||
|
|
||||||
/**************/
|
/**************/
|
||||||
/* EELAYER.CPP */
|
/* EELAYER.CPP */
|
||||||
|
@ -236,53 +236,53 @@ bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose );
|
||||||
/**************/
|
/**************/
|
||||||
|
|
||||||
LibEDA_BaseStruct * CopyDrawEntryStruct( wxWindow * frame, LibEDA_BaseStruct * DrawItem);
|
LibEDA_BaseStruct * CopyDrawEntryStruct( wxWindow * frame, LibEDA_BaseStruct * DrawItem);
|
||||||
/* Routine de Duplication d'une structure DrawLibItem d'une partlib
|
/* Routine de Duplication d'une structure DrawLibItem d'une partlib
|
||||||
Parametres d'entree:
|
Parametres d'entree:
|
||||||
DrawEntry = pointeur sur la structure a dupliquer
|
DrawEntry = pointeur sur la structure a dupliquer
|
||||||
La structure nouvelle est creee, mais n'est pas inseree dans le
|
La structure nouvelle est creee, mais n'est pas inseree dans le
|
||||||
chainage
|
chainage
|
||||||
Retourne:
|
Retourne:
|
||||||
Pointeur sur la structure creee (ou NULL si impossible) */
|
Pointeur sur la structure creee (ou NULL si impossible) */
|
||||||
|
|
||||||
int WriteOneLibEntry(wxWindow * frame, FILE * ExportFile, EDA_LibComponentStruct * LibEntry);
|
int WriteOneLibEntry(wxWindow * frame, FILE * ExportFile, EDA_LibComponentStruct * LibEntry);
|
||||||
/* Routine d'ecriture du composant pointe par LibEntry
|
/* Routine d'ecriture du composant pointe par LibEntry
|
||||||
dans le fichier ExportFile( qui doit etre deja ouvert)
|
dans le fichier ExportFile( qui doit etre deja ouvert)
|
||||||
return: FALSE si Ok, TRUE si err write */
|
return: FALSE si Ok, TRUE si err write */
|
||||||
|
|
||||||
EDA_LibComponentStruct * CopyLibEntryStruct (wxWindow * frame, EDA_LibComponentStruct * OldEntry);
|
EDA_LibComponentStruct * CopyLibEntryStruct (wxWindow * frame, EDA_LibComponentStruct * OldEntry);
|
||||||
/* Routine de copie d'une partlib
|
/* Routine de copie d'une partlib
|
||||||
Parametres d'entree: pointeur sur la structure de depart
|
Parametres d'entree: pointeur sur la structure de depart
|
||||||
Parametres de sortie: pointeur sur la structure creee */
|
Parametres de sortie: pointeur sur la structure creee */
|
||||||
|
|
||||||
int WriteOneDocLibEntry(FILE * ExportFile, EDA_LibComponentStruct * LibEntry);
|
int WriteOneDocLibEntry(FILE * ExportFile, EDA_LibComponentStruct * LibEntry);
|
||||||
/* Routine d'ecriture de la doc du composant pointe par LibEntry
|
/* Routine d'ecriture de la doc du composant pointe par LibEntry
|
||||||
dans le fichier ExportFile( qui doit etre deja ouvert)
|
dans le fichier ExportFile( qui doit etre deja ouvert)
|
||||||
return: 0 si Ok
|
return: 0 si Ok
|
||||||
1 si err write */
|
1 si err write */
|
||||||
|
|
||||||
|
|
||||||
int SaveOneLibrary(wxWindow * frame, const wxString & FullFileName, LibraryStruct * Library);
|
int SaveOneLibrary(wxWindow * frame, const wxString & FullFileName, LibraryStruct * Library);
|
||||||
/* Sauvegarde en fichier la librairie pointee par Library, sous le nom
|
/* Sauvegarde en fichier la librairie pointee par Library, sous le nom
|
||||||
FullFileName.
|
FullFileName.
|
||||||
2 fichiers sont crees
|
2 fichiers sont crees
|
||||||
- La librarie
|
- La librarie
|
||||||
- le fichier de documentation
|
- le fichier de documentation
|
||||||
|
|
||||||
une sauvegarde .bak de l'ancien fichier librairie est cree
|
une sauvegarde .bak de l'ancien fichier librairie est cree
|
||||||
une sauvegarde .bck de l'ancien fichier documentation est cree
|
une sauvegarde .bck de l'ancien fichier documentation est cree
|
||||||
|
|
||||||
return:
|
return:
|
||||||
0 si OK
|
0 si OK
|
||||||
1 si erreur */
|
1 si erreur */
|
||||||
|
|
||||||
|
|
||||||
/***************/
|
/***************/
|
||||||
/* SYMBEDIT.CPP */
|
/* SYMBEDIT.CPP */
|
||||||
/***************/
|
/***************/
|
||||||
void SuppressDuplicateDrawItem(EDA_LibComponentStruct * LibEntry);
|
void SuppressDuplicateDrawItem(EDA_LibComponentStruct * LibEntry);
|
||||||
/* Routine de suppression des elements de trace dupliques, situation
|
/* Routine de suppression des elements de trace dupliques, situation
|
||||||
frequente lorsque l'on charge des symboles predessines plusieurs fois
|
frequente lorsque l'on charge des symboles predessines plusieurs fois
|
||||||
pour definir un composant */
|
pour definir un composant */
|
||||||
|
|
||||||
/***************/
|
/***************/
|
||||||
/* SYMBTEXT.CPP */
|
/* SYMBTEXT.CPP */
|
||||||
|
@ -300,9 +300,9 @@ int IsBusLabel(const wxString & LabelDrawList);
|
||||||
void ReAnnotatePowerSymbolsOnly();
|
void ReAnnotatePowerSymbolsOnly();
|
||||||
|
|
||||||
int CheckAnnotate(WinEDA_SchematicFrame * frame, bool OneSheetOnly);
|
int CheckAnnotate(WinEDA_SchematicFrame * frame, bool OneSheetOnly);
|
||||||
/* Retourne le nombre de composants non annotes ou erron<6F>s
|
/* Retourne le nombre de composants non annotes ou erron<6F>s
|
||||||
Si OneSheetOnly : recherche sur le schema courant
|
Si OneSheetOnly : recherche sur le schema courant
|
||||||
else: recherche sur toute la hierarchie */
|
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 PlotPoly( int nb, int * coord, int fill, int width = -1);
|
||||||
|
|
||||||
void PlotNoConnectStruct(DrawNoConnectStruct * Struct);
|
void PlotNoConnectStruct(DrawNoConnectStruct * Struct);
|
||||||
void PlotLibPart( EDA_SchComponentStruct *DrawLibItem );
|
void PlotLibPart( SCH_COMPONENT *DrawLibItem );
|
||||||
/* Genere le trace d'un composant */
|
/* Genere le trace d'un composant */
|
||||||
void PlotSheetStruct(DrawSheetStruct *Struct);
|
void PlotSheetStruct(DrawSheetStruct *Struct);
|
||||||
/* Routine de dessin du bloc type hierarchie */
|
/* Routine de dessin du bloc type hierarchie */
|
||||||
void PlotTextStruct(EDA_BaseStruct *Struct);
|
void PlotTextStruct(EDA_BaseStruct *Struct);
|
||||||
|
|
||||||
/***************/
|
/***************/
|
||||||
|
@ -327,7 +327,7 @@ void PlotTextStruct(EDA_BaseStruct *Struct);
|
||||||
void DeleteSubHierarchy(DrawSheetStruct * Sheet, bool confirm_deletion);
|
void DeleteSubHierarchy(DrawSheetStruct * Sheet, bool confirm_deletion);
|
||||||
bool ClearProjectDrawList(SCH_SCREEN * FirstWindow, bool confirm_deletion);
|
bool ClearProjectDrawList(SCH_SCREEN * FirstWindow, bool confirm_deletion);
|
||||||
/* free the draw list screen->EEDrawList and the subhierarchies
|
/* 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);
|
bool LocateAndDeleteItem(WinEDA_SchematicFrame * frame, wxDC * DC);
|
||||||
void EraseStruct(EDA_BaseStruct *DrawStruct, SCH_SCREEN * Window);
|
void EraseStruct(EDA_BaseStruct *DrawStruct, SCH_SCREEN * Window);
|
||||||
void DeleteAllMarkers(int type);
|
void DeleteAllMarkers(int type);
|
||||||
/* Effacement des marqueurs du type "type" */
|
/* Effacement des marqueurs du type "type" */
|
||||||
|
|
||||||
void DeleteOneLibraryDrawStruct(WinEDA_DrawPanel * panel,
|
void DeleteOneLibraryDrawStruct(WinEDA_DrawPanel * panel,
|
||||||
wxDC *DC, EDA_LibComponentStruct * LibEntry,
|
wxDC *DC, EDA_LibComponentStruct * LibEntry,
|
||||||
LibEDA_BaseStruct * DrawItem, int Affiche);
|
LibEDA_BaseStruct * DrawItem, int Affiche);
|
||||||
/* Routine d'effacement d'un "LibraryDrawStruct"
|
/* Routine d'effacement d'un "LibraryDrawStruct"
|
||||||
(d'un element de dessin d'un composant )
|
(d'un element de dessin d'un composant )
|
||||||
Parametres d'entree
|
Parametres d'entree
|
||||||
Pointeur sur le composant comportant la structure
|
Pointeur sur le composant comportant la structure
|
||||||
(Si NULL la structure a effacer est supposee non rattachee
|
(Si NULL la structure a effacer est supposee non rattachee
|
||||||
a un composant)
|
a un composant)
|
||||||
Pointeur sur la structure a effacer
|
Pointeur sur la structure a effacer
|
||||||
Affiche (si != 0 Efface le graphique correspondant de l'ecran) */
|
Affiche (si != 0 Efface le graphique correspondant de l'ecran) */
|
||||||
|
|
||||||
|
|
||||||
/**************/
|
/**************/
|
||||||
|
@ -357,12 +357,12 @@ void DeleteOneLibraryDrawStruct(WinEDA_DrawPanel * panel,
|
||||||
/**************/
|
/**************/
|
||||||
|
|
||||||
int LookForConvertPart( EDA_LibComponentStruct * LibEntry );
|
int LookForConvertPart( EDA_LibComponentStruct * LibEntry );
|
||||||
/* Retourne la plus grande valeur trouvee dans la liste des elements
|
/* Retourne la plus grande valeur trouvee dans la liste des elements
|
||||||
"drawings" du composant LibEntry, pour le membre .Convert
|
"drawings" du composant LibEntry, pour le membre .Convert
|
||||||
Si il n'y a pas de representation type "convert", la valeur
|
Si il n'y a pas de representation type "convert", la valeur
|
||||||
retournee est 0 ou 1
|
retournee est 0 ou 1
|
||||||
Si il y a une representation type "convert",
|
Si il y a une representation type "convert",
|
||||||
la valeur retournee est > 1 (typiquement 2) */
|
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,
|
int DisplayComponentsNamesInLib(WinEDA_DrawFrame * frame,
|
||||||
LibraryStruct *Library, wxString & Buffer, wxString & OldName);
|
LibraryStruct *Library, wxString & Buffer, wxString & OldName);
|
||||||
LibraryStruct * SelectLibraryFromList(WinEDA_DrawFrame * frame);
|
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,
|
int GetNameOfPartToLoad(WinEDA_DrawFrame * frame, LibraryStruct * Lib,
|
||||||
wxString & BufName);
|
wxString & BufName);
|
||||||
/* Routine de selection du nom d'un composant en librairie pour chargement,
|
/* Routine de selection du nom d'un composant en librairie pour chargement,
|
||||||
dans la librairie Library.
|
dans la librairie Library.
|
||||||
Si Library == NULL, il y aura demande de selection d'une librairie
|
Si Library == NULL, il y aura demande de selection d'une librairie
|
||||||
Retourne
|
Retourne
|
||||||
1 si composant selectionne
|
1 si composant selectionne
|
||||||
0 si commande annulee
|
0 si commande annulee
|
||||||
place le nom du composant a charger, selectionne a partir d'une liste dans
|
place le nom du composant a charger, selectionne a partir d'une liste dans
|
||||||
BufName */
|
BufName */
|
||||||
|
|
||||||
/**************/
|
/**************/
|
||||||
/* LIBARCH.CPP */
|
/* LIBARCH.CPP */
|
||||||
/**************/
|
/**************/
|
||||||
|
|
||||||
bool LibArchive(wxWindow * frame, const wxString & ArchFullFileName);
|
bool LibArchive(wxWindow * frame, const wxString & ArchFullFileName);
|
||||||
|
|
||||||
/***************/
|
/***************/
|
||||||
/* GENLISTE.CPP */
|
/* GENLISTE.CPP */
|
||||||
/***************/
|
/***************/
|
||||||
struct ListComponent;
|
struct ListComponent;
|
||||||
int GenListeCmp( ListComponent * List );
|
int GenListeCmp( ListComponent * List );
|
||||||
|
|
||||||
/**************/
|
/**************/
|
||||||
/* CLEANUP.CPP */
|
/* CLEANUP.CPP */
|
||||||
/**************/
|
/**************/
|
||||||
|
|
||||||
void SchematicCleanUp(SCH_SCREEN * screen, wxDC * DC);
|
void SchematicCleanUp(SCH_SCREEN * screen, wxDC * DC);
|
||||||
/* Routine de nettoyage:
|
/* Routine de nettoyage:
|
||||||
- regroupe les segments de fils (ou de bus) alignes en 1 seul segment
|
- regroupe les segments de fils (ou de bus) alignes en 1 seul segment
|
||||||
- Detecte les objets identiques superposes
|
- Detecte les objets identiques superposes
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void BreakSegmentOnJunction( SCH_SCREEN * Screen );
|
void BreakSegmentOnJunction( SCH_SCREEN * Screen );
|
||||||
/* Routine creant des debuts / fin de segment (BUS ou WIRES) sur les jonctions
|
/* Routine creant des debuts / fin de segment (BUS ou WIRES) sur les jonctions
|
||||||
et les raccords */
|
et les raccords */
|
||||||
DrawPickedStruct * BreakSegment(SCH_SCREEN * screen, wxPoint breakpoint,
|
DrawPickedStruct * BreakSegment(SCH_SCREEN * screen, wxPoint breakpoint,
|
||||||
bool PutInUndoList = FALSE);
|
bool PutInUndoList = FALSE);
|
||||||
/* Coupe un segment ( BUS, WIRE ) en 2 au point breakpoint,
|
/* Coupe un segment ( BUS, WIRE ) en 2 au point breakpoint,
|
||||||
- si ce point est sur le segment
|
- si ce point est sur le segment
|
||||||
- extremites non comprises */
|
- extremites non comprises */
|
||||||
|
|
||||||
/**************/
|
/**************/
|
||||||
/* EECLASS.CPP */
|
/* EECLASS.CPP */
|
||||||
/**************/
|
/**************/
|
||||||
|
|
||||||
void SetStructFather(EDA_BaseStruct * Struct, BASE_SCREEN * Screen);
|
void SetStructFather(EDA_BaseStruct * Struct, BASE_SCREEN * Screen);
|
||||||
|
|
||||||
/***************/
|
/***************/
|
||||||
/* LIBALIAS.CPP */
|
/* LIBALIAS.CPP */
|
||||||
/***************/
|
/***************/
|
||||||
|
|
||||||
bool BuildAliasData(LibraryStruct * Lib, EDA_LibComponentStruct * component);
|
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);
|
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 ) */
|
||||||
|
|
||||||
|
|
||||||
/***************/
|
/***************/
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*********************************************/
|
/*********************************************/
|
||||||
/* eesave.cpp Module to Save EESchema files */
|
/* eesave.cpp Module to Save EESchema files */
|
||||||
/*********************************************/
|
/*********************************************/
|
||||||
|
|
||||||
#include "fctsys.h"
|
#include "fctsys.h"
|
||||||
#include "gr_basic.h"
|
#include "gr_basic.h"
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
/* Fonctions externes */
|
/* Fonctions externes */
|
||||||
|
|
||||||
/* Fonctions Locales */
|
/* 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 int SaveSheetDescr( FILE *f, DrawSheetStruct * SheetStruct);
|
||||||
static void SaveLayers(FILE *f);
|
static void SaveLayers(FILE *f);
|
||||||
|
|
||||||
|
@ -33,510 +33,510 @@ static void SaveLayers(FILE *f);
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
bool WinEDA_SchematicFrame::SaveEEFile(SCH_SCREEN *screen, int FileSave)
|
bool WinEDA_SchematicFrame::SaveEEFile(SCH_SCREEN *screen, int FileSave)
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
wxString Name, BakName;
|
wxString Name, BakName;
|
||||||
const wxChar **LibNames;
|
const wxChar **LibNames;
|
||||||
const char * layer, *width;
|
const char * layer, *width;
|
||||||
int ii, shape;
|
int ii, shape;
|
||||||
bool Failed = FALSE;
|
bool Failed = FALSE;
|
||||||
EDA_BaseStruct *Phead;
|
EDA_BaseStruct *Phead;
|
||||||
Ki_PageDescr * PlotSheet;
|
Ki_PageDescr * PlotSheet;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
wxString dirbuf;
|
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 no name exists in the window yet - save as new. */
|
||||||
if( screen->m_FileName.IsEmpty() ) FileSave = FILE_SAVE_NEW;
|
if( screen->m_FileName.IsEmpty() ) FileSave = FILE_SAVE_NEW;
|
||||||
|
|
||||||
switch (FileSave)
|
switch (FileSave)
|
||||||
{
|
{
|
||||||
case FILE_SAVE_AS:
|
case FILE_SAVE_AS:
|
||||||
dirbuf = wxGetCwd() + STRING_DIR_SEP;
|
dirbuf = wxGetCwd() + STRING_DIR_SEP;
|
||||||
Name = MakeFileName(dirbuf, screen->m_FileName, g_SchExtBuffer);
|
Name = MakeFileName(dirbuf, screen->m_FileName, g_SchExtBuffer);
|
||||||
/* Rename the old file to a '.bak' one: */
|
/* Rename the old file to a '.bak' one: */
|
||||||
BakName = Name;
|
BakName = Name;
|
||||||
if ( wxFileExists(Name) )
|
if ( wxFileExists(Name) )
|
||||||
{
|
{
|
||||||
ChangeFileNameExt(BakName, wxT(".bak"));
|
ChangeFileNameExt(BakName, wxT(".bak"));
|
||||||
wxRemoveFile(BakName); /* delete Old .bak file */
|
wxRemoveFile(BakName); /* delete Old .bak file */
|
||||||
if( ! wxRenameFile(Name, BakName) ){
|
if( ! wxRenameFile(Name, BakName) ){
|
||||||
DisplayError(this, wxT("Warning: unable to rename old file"), 10);
|
DisplayError(this, wxT("Warning: unable to rename old file"), 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FILE_SAVE_NEW:
|
case FILE_SAVE_NEW:
|
||||||
{
|
{
|
||||||
wxString mask = wxT("*") + g_SchExtBuffer;
|
wxString mask = wxT("*") + g_SchExtBuffer;
|
||||||
Name = EDA_FileSelector(_("Schematic files:"),
|
Name = EDA_FileSelector(_("Schematic files:"),
|
||||||
wxEmptyString, /* Chemin par defaut */
|
wxEmptyString, /* Chemin par defaut */
|
||||||
screen->m_FileName, /* nom fichier par defaut, et resultat */
|
screen->m_FileName, /* nom fichier par defaut, et resultat */
|
||||||
g_SchExtBuffer, /* extension par defaut */
|
g_SchExtBuffer, /* extension par defaut */
|
||||||
mask, /* Masque d'affichage */
|
mask, /* Masque d'affichage */
|
||||||
this,
|
this,
|
||||||
wxFD_SAVE,
|
wxFD_SAVE,
|
||||||
FALSE
|
FALSE
|
||||||
);
|
);
|
||||||
if ( Name.IsEmpty() ) return FALSE;
|
if ( Name.IsEmpty() ) return FALSE;
|
||||||
|
|
||||||
screen->m_FileName = Name;
|
screen->m_FileName = Name;
|
||||||
dirbuf = wxGetCwd() + STRING_DIR_SEP;
|
dirbuf = wxGetCwd() + STRING_DIR_SEP;
|
||||||
Name = MakeFileName(dirbuf, Name, g_SchExtBuffer);
|
Name = MakeFileName(dirbuf, Name, g_SchExtBuffer);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((f = wxFopen(Name, wxT("wt"))) == NULL)
|
if ((f = wxFopen(Name, wxT("wt"))) == NULL)
|
||||||
{
|
{
|
||||||
msg = _("Failed to create file ") + Name;
|
msg = _("Failed to create file ") + Name;
|
||||||
DisplayError(this, msg);
|
DisplayError(this, msg);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
msg = _("Save file ") + Name;
|
msg = _("Save file ") + Name;
|
||||||
Affiche_Message(msg);
|
Affiche_Message(msg);
|
||||||
|
|
||||||
LibNames = GetLibNames();
|
LibNames = GetLibNames();
|
||||||
BakName.Empty(); // temporary buffer!
|
BakName.Empty(); // temporary buffer!
|
||||||
for (ii = 0; LibNames[ii] != NULL; ii++)
|
for (ii = 0; LibNames[ii] != NULL; ii++)
|
||||||
{
|
{
|
||||||
if (ii > 0) BakName += wxT(",");
|
if (ii > 0) BakName += wxT(",");
|
||||||
BakName += LibNames[ii];
|
BakName += LibNames[ii];
|
||||||
}
|
}
|
||||||
MyFree( LibNames);
|
MyFree( LibNames);
|
||||||
|
|
||||||
if (fprintf(f, "%s %s %d\n", EESCHEMA_FILE_STAMP,
|
if (fprintf(f, "%s %s %d\n", EESCHEMA_FILE_STAMP,
|
||||||
SCHEMATIC_HEAD_STRING, EESCHEMA_VERSION) == EOF ||
|
SCHEMATIC_HEAD_STRING, EESCHEMA_VERSION) == EOF ||
|
||||||
fprintf(f, "LIBS:%s\n", CONV_TO_UTF8(BakName)) == EOF)
|
fprintf(f, "LIBS:%s\n", CONV_TO_UTF8(BakName)) == EOF)
|
||||||
{
|
{
|
||||||
DisplayError(this, _("File write operation failed."));
|
DisplayError(this, _("File write operation failed."));
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
screen->ClrModify();
|
screen->ClrModify();
|
||||||
|
|
||||||
SaveLayers(f);
|
SaveLayers(f);
|
||||||
/* Sauvegarde des dimensions du schema, des textes du cartouche.. */
|
/* 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);
|
|
||||||
|
|
||||||
fprintf(f,"Sheet %d %d\n",screen->m_ScreenNumber, screen->m_NumberOfScreen);
|
PlotSheet = screen->m_CurrentSheetDesc;
|
||||||
fprintf(f,"Title \"%s\"\n",CONV_TO_UTF8(screen->m_Title));
|
fprintf(f,"$Descr %s %d %d\n",CONV_TO_UTF8(PlotSheet->m_Name),
|
||||||
fprintf(f,"Date \"%s\"\n",CONV_TO_UTF8(screen->m_Date));
|
PlotSheet->m_Size.x, PlotSheet->m_Size.y);
|
||||||
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));
|
|
||||||
|
|
||||||
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 */
|
fprintf(f,"$EndDescr\n");
|
||||||
Phead = screen->EEDrawList;
|
|
||||||
while (Phead)
|
|
||||||
{
|
|
||||||
switch(Phead->Type())
|
|
||||||
{
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE: /* Its a library item. */
|
|
||||||
SavePartDescr( f, (EDA_SchComponentStruct *) Phead);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE: /* Its a Sheet item. */
|
/* Sauvegarde des elements du dessin */
|
||||||
SaveSheetDescr( f, (DrawSheetStruct *) Phead);
|
Phead = screen->EEDrawList;
|
||||||
break;
|
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. */
|
case DRAW_SHEET_STRUCT_TYPE: /* Its a Sheet item. */
|
||||||
#undef STRUCT
|
SaveSheetDescr( f, (DrawSheetStruct *) Phead);
|
||||||
#define STRUCT ((EDA_DrawLineStruct *) Phead)
|
break;
|
||||||
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_BUSENTRY_STRUCT_TYPE: /* Its a Raccord item. */
|
case DRAW_SEGMENT_STRUCT_TYPE: /* Its a Segment item. */
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawBusEntryStruct *) Phead)
|
#define STRUCT ((EDA_DrawLineStruct *) Phead)
|
||||||
layer = "Wire"; width = "Line";
|
layer = "Notes"; width = "Line";
|
||||||
if (STRUCT->m_Layer == LAYER_BUS)
|
if (STRUCT->m_Layer == LAYER_WIRE) layer = "Wire";
|
||||||
{
|
if (STRUCT->m_Layer == LAYER_BUS) layer = "Bus";
|
||||||
layer = "Bus"; width = "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)
|
case DRAW_BUSENTRY_STRUCT_TYPE: /* Its a Raccord item. */
|
||||||
{
|
#undef STRUCT
|
||||||
Failed = TRUE; break;
|
#define STRUCT ((DrawBusEntryStruct *) Phead)
|
||||||
}
|
layer = "Wire"; width = "Line";
|
||||||
if( fprintf(f, "\t%-4d %-4d %-4d %-4d\n",
|
if (STRUCT->m_Layer == LAYER_BUS)
|
||||||
STRUCT->m_Pos.x,STRUCT->m_Pos.y,
|
{
|
||||||
STRUCT->m_End().x,STRUCT->m_End().y) == EOF)
|
layer = "Bus"; width = "Bus";
|
||||||
{
|
}
|
||||||
Failed = TRUE; break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE: /* Its a polyline item. */
|
if (fprintf(f, "Entry %s %s\n", layer, width) == EOF)
|
||||||
#undef STRUCT
|
{
|
||||||
#define STRUCT ((DrawPolylineStruct *) Phead)
|
Failed = TRUE; break;
|
||||||
layer = "Notes"; width = "Line";
|
}
|
||||||
if (STRUCT->m_Layer == LAYER_WIRE) layer = "Wire";
|
if( fprintf(f, "\t%-4d %-4d %-4d %-4d\n",
|
||||||
if (STRUCT->m_Layer == LAYER_BUS) layer = "Bus";
|
STRUCT->m_Pos.x,STRUCT->m_Pos.y,
|
||||||
if( STRUCT->m_Width != GR_NORM_WIDTH) width = "Bus";
|
STRUCT->m_End().x,STRUCT->m_End().y) == EOF)
|
||||||
if (fprintf(f, "Poly %s %s %d\n",
|
{
|
||||||
width, layer, STRUCT->m_NumOfPoints) == EOF)
|
Failed = TRUE; break;
|
||||||
{
|
}
|
||||||
Failed = TRUE; break;
|
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_JUNCTION_STRUCT_TYPE: /* Its a connection item. */
|
case DRAW_POLYLINE_STRUCT_TYPE: /* Its a polyline item. */
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawJunctionStruct *) Phead)
|
#define STRUCT ((DrawPolylineStruct *) Phead)
|
||||||
if (fprintf(f, "Connection ~ %-4d %-4d\n",
|
layer = "Notes"; width = "Line";
|
||||||
STRUCT->m_Pos.x, STRUCT->m_Pos.y) == EOF)
|
if (STRUCT->m_Layer == LAYER_WIRE) layer = "Wire";
|
||||||
{
|
if (STRUCT->m_Layer == LAYER_BUS) layer = "Bus";
|
||||||
Failed = TRUE;
|
if( STRUCT->m_Width != GR_NORM_WIDTH) width = "Bus";
|
||||||
}
|
if (fprintf(f, "Poly %s %s %d\n",
|
||||||
break;
|
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. */
|
case DRAW_JUNCTION_STRUCT_TYPE: /* Its a connection item. */
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawNoConnectStruct *) Phead)
|
#define STRUCT ((DrawJunctionStruct *) Phead)
|
||||||
if (fprintf(f, "NoConn ~ %-4d %-4d\n",
|
if (fprintf(f, "Connection ~ %-4d %-4d\n",
|
||||||
STRUCT->m_Pos.x, STRUCT->m_Pos.y) == EOF)
|
STRUCT->m_Pos.x, STRUCT->m_Pos.y) == EOF)
|
||||||
{
|
{
|
||||||
Failed = TRUE;
|
Failed = TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_TEXT_STRUCT_TYPE: /* Its a text item. */
|
case DRAW_NOCONNECT_STRUCT_TYPE: /* Its a NoConnection item. */
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawTextStruct *) Phead)
|
#define STRUCT ((DrawNoConnectStruct *) Phead)
|
||||||
if (fprintf(f, "Text Notes %-4d %-4d %-4d %-4d ~\n%s\n",
|
if (fprintf(f, "NoConn ~ %-4d %-4d\n",
|
||||||
STRUCT->m_Pos.x, STRUCT->m_Pos.y,
|
STRUCT->m_Pos.x, STRUCT->m_Pos.y) == EOF)
|
||||||
STRUCT->m_Orient, STRUCT->m_Size.x,
|
{
|
||||||
CONV_TO_UTF8(STRUCT->m_Text)) == EOF)
|
Failed = TRUE;
|
||||||
Failed = TRUE;
|
}
|
||||||
break;
|
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. */
|
case TYPE_SCH_LABEL: /* Its a label item. */
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawLabelStruct *) Phead)
|
#define STRUCT ((SCH_LABEL *) Phead)
|
||||||
shape = '~';
|
shape = '~';
|
||||||
if (fprintf(f, "Text Label %-4d %-4d %-4d %-4d %c\n%s\n",
|
if (fprintf(f, "Text Label %-4d %-4d %-4d %-4d %c\n%s\n",
|
||||||
STRUCT->m_Pos.x, STRUCT->m_Pos.y,
|
STRUCT->m_Pos.x, STRUCT->m_Pos.y,
|
||||||
STRUCT->m_Orient, STRUCT->m_Size.x, shape,
|
STRUCT->m_Orient, STRUCT->m_Size.x, shape,
|
||||||
CONV_TO_UTF8(STRUCT->m_Text)) == EOF)
|
CONV_TO_UTF8(STRUCT->m_Text)) == EOF)
|
||||||
Failed = TRUE;
|
Failed = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE: /* Its a Global label item. */
|
case TYPE_SCH_GLOBALLABEL: /* Its a Global label item. */
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawGlobalLabelStruct *) Phead)
|
#define STRUCT ((SCH_GLOBALLABEL *) Phead)
|
||||||
shape = STRUCT->m_Shape;
|
shape = STRUCT->m_Shape;
|
||||||
if (fprintf(f, "Text GLabel %-4d %-4d %-4d %-4d %s\n%s\n",
|
if (fprintf(f, "Text GLabel %-4d %-4d %-4d %-4d %s\n%s\n",
|
||||||
STRUCT->m_Pos.x, STRUCT->m_Pos.y,
|
STRUCT->m_Pos.x, STRUCT->m_Pos.y,
|
||||||
STRUCT->m_Orient, STRUCT->m_Size.x,
|
STRUCT->m_Orient, STRUCT->m_Size.x,
|
||||||
SheetLabelType[shape],
|
SheetLabelType[shape],
|
||||||
CONV_TO_UTF8(STRUCT->m_Text)) == EOF)
|
CONV_TO_UTF8(STRUCT->m_Text)) == EOF)
|
||||||
Failed = TRUE;
|
Failed = TRUE;
|
||||||
break;
|
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 DRAW_MARKER_STRUCT_TYPE: /* Its a marker item. */
|
case TYPE_SCH_HIERLABEL: /* Its a Hierarchical label item. */
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawMarkerStruct *) Phead)
|
#define STRUCT ((SCH_HIERLABEL *) Phead)
|
||||||
if( STRUCT->GetComment() ) msg = STRUCT->GetComment();
|
shape = STRUCT->m_Shape;
|
||||||
else msg.Empty();
|
if (fprintf(f, "Text HLabel %-4d %-4d %-4d %-4d %s\n%s\n",
|
||||||
if (fprintf(f, "Kmarq %c %-4d %-4d \"%s\" F=%X\n",
|
STRUCT->m_Pos.x, STRUCT->m_Pos.y,
|
||||||
(int) STRUCT->m_Type + 'A',
|
STRUCT->m_Orient, STRUCT->m_Size.x,
|
||||||
STRUCT->m_Pos.x, STRUCT->m_Pos.y,
|
SheetLabelType[shape],
|
||||||
CONV_TO_UTF8(msg), STRUCT->m_MarkFlags) == EOF)
|
CONV_TO_UTF8(STRUCT->m_Text)) == EOF)
|
||||||
{
|
Failed = TRUE;
|
||||||
Failed = TRUE;
|
break;
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DRAW_SHEETLABEL_STRUCT_TYPE :
|
case DRAW_MARKER_STRUCT_TYPE: /* Its a marker item. */
|
||||||
case DRAW_PICK_ITEM_STRUCT_TYPE :
|
#undef STRUCT
|
||||||
break;
|
#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:
|
case DRAW_SHEETLABEL_STRUCT_TYPE :
|
||||||
break;
|
case DRAW_PICK_ITEM_STRUCT_TYPE :
|
||||||
}
|
break;
|
||||||
|
|
||||||
if (Failed)
|
default:
|
||||||
{
|
break;
|
||||||
DisplayError(this, _("File write operation failed."));
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Phead = Phead->Pnext;
|
if (Failed)
|
||||||
}
|
{
|
||||||
if (fprintf(f, "$EndSCHEMATC\n") == EOF) Failed = TRUE;
|
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.
|
/* Routine utilisee dans la routine precedente.
|
||||||
Assure la sauvegarde de la structure LibItemStruct
|
Assure la sauvegarde de la structure LibItemStruct
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int ii, Failed = FALSE;
|
int ii, Failed = FALSE;
|
||||||
char Name1[256], Name2[256];
|
char Name1[256], Name2[256];
|
||||||
int hjustify, vjustify;
|
int hjustify, vjustify;
|
||||||
|
|
||||||
//this is redundant with the AR entries below, but it makes the
|
//this is redundant with the AR entries below, but it makes the
|
||||||
//files backwards-compatible.
|
//files backwards-compatible.
|
||||||
if(LibItemStruct->m_References.GetCount() > 0)
|
if(LibItemStruct->m_References.GetCount() > 0)
|
||||||
strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_References[0]), sizeof(Name1));
|
strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_References[0]), sizeof(Name1));
|
||||||
else{
|
else{
|
||||||
if(LibItemStruct->m_Field[REFERENCE].m_Text.IsEmpty())
|
if(LibItemStruct->m_Field[REFERENCE].m_Text.IsEmpty())
|
||||||
strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_PrefixString),sizeof(Name1));
|
strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_PrefixString),sizeof(Name1));
|
||||||
else
|
else
|
||||||
strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_Field[REFERENCE].m_Text),sizeof(Name1));
|
strncpy(Name1, CONV_TO_UTF8(LibItemStruct->m_Field[REFERENCE].m_Text),sizeof(Name1));
|
||||||
}
|
}
|
||||||
for (ii = 0; ii < (int)strlen(Name1); ii++){
|
for (ii = 0; ii < (int)strlen(Name1); ii++){
|
||||||
if (Name1[ii] <= ' ') Name1[ii] = '~';
|
if (Name1[ii] <= ' ') Name1[ii] = '~';
|
||||||
}
|
}
|
||||||
if ( ! LibItemStruct->m_ChipName.IsEmpty() )
|
if ( ! LibItemStruct->m_ChipName.IsEmpty() )
|
||||||
{
|
{
|
||||||
strncpy(Name2, CONV_TO_UTF8(LibItemStruct->m_ChipName),sizeof(Name2));
|
strncpy(Name2, CONV_TO_UTF8(LibItemStruct->m_ChipName),sizeof(Name2));
|
||||||
for (ii = 0; ii < (int)strlen(Name2); ii++)
|
for (ii = 0; ii < (int)strlen(Name2); ii++)
|
||||||
if (Name2[ii] <= ' ') 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)
|
if(fprintf (f, "L %s %s\n", Name2, Name1) == EOF)
|
||||||
{
|
{
|
||||||
Failed = TRUE;
|
Failed = TRUE;
|
||||||
return(Failed);
|
return(Failed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Generation de numero d'unit, convert et Time Stamp*/
|
/* Generation de numero d'unit, convert et Time Stamp*/
|
||||||
if(fprintf(f, "U %d %d %8.8lX\n",
|
if(fprintf(f, "U %d %d %8.8lX\n",
|
||||||
LibItemStruct->m_Multi,
|
LibItemStruct->m_Multi,
|
||||||
LibItemStruct->m_Convert,
|
LibItemStruct->m_Convert,
|
||||||
LibItemStruct->m_TimeStamp) == EOF)
|
LibItemStruct->m_TimeStamp) == EOF)
|
||||||
{
|
{
|
||||||
Failed = TRUE; return(Failed);
|
Failed = TRUE; return(Failed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sortie de la position */
|
/* Sortie de la position */
|
||||||
if(fprintf(f, "P %d %d\n",
|
if(fprintf(f, "P %d %d\n",
|
||||||
LibItemStruct->m_Pos.x, LibItemStruct->m_Pos.y) == EOF)
|
LibItemStruct->m_Pos.x, LibItemStruct->m_Pos.y) == EOF)
|
||||||
{
|
{
|
||||||
Failed = TRUE; return(Failed);
|
Failed = TRUE; return(Failed);
|
||||||
}
|
}
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
for(i=0; i< LibItemStruct->m_References.GetCount(); i++){
|
for(i=0; i< LibItemStruct->m_References.GetCount(); i++){
|
||||||
/*format:
|
/*format:
|
||||||
AR Path="/140/2" Ref="C99"
|
AR Path="/140/2" Ref="C99"
|
||||||
where 140 is the uid of the contianing sheet
|
where 140 is the uid of the contianing sheet
|
||||||
and 2 is the timestamp of this component.
|
and 2 is the timestamp of this component.
|
||||||
(timestamps are actually 8 hex chars)
|
(timestamps are actually 8 hex chars)
|
||||||
Ref is the conventional component reference for this 'path'
|
Ref is the conventional component reference for this 'path'
|
||||||
*/
|
*/
|
||||||
/*printf("AR Path=\"%s\" Ref=\"%s\" \n",
|
/*printf("AR Path=\"%s\" Ref=\"%s\" \n",
|
||||||
CONV_TO_UTF8( LibItemStruct->m_Paths[i]),
|
CONV_TO_UTF8( LibItemStruct->m_Paths[i]),
|
||||||
CONV_TO_UTF8( LibItemStruct->m_References[i] ) ); */
|
CONV_TO_UTF8( LibItemStruct->m_References[i] ) ); */
|
||||||
if( fprintf(f, "AR Path=\"%s\" Ref=\"%s\" \n",
|
if( fprintf(f, "AR Path=\"%s\" Ref=\"%s\" \n",
|
||||||
CONV_TO_UTF8( LibItemStruct->m_Paths[i]),
|
CONV_TO_UTF8( LibItemStruct->m_Paths[i]),
|
||||||
CONV_TO_UTF8( LibItemStruct->m_References[i] ) ) == EOF )
|
CONV_TO_UTF8( LibItemStruct->m_References[i] ) ) == EOF )
|
||||||
{
|
{
|
||||||
Failed = TRUE; break;
|
Failed = TRUE; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
|
for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
|
||||||
{
|
{
|
||||||
PartTextStruct * field = & LibItemStruct->m_Field[ii];
|
PartTextStruct * field = & LibItemStruct->m_Field[ii];
|
||||||
if( field->m_Text.IsEmpty() ) continue;
|
if( field->m_Text.IsEmpty() ) continue;
|
||||||
hjustify = 'C';
|
hjustify = 'C';
|
||||||
if ( field->m_HJustify == GR_TEXT_HJUSTIFY_LEFT)
|
if ( field->m_HJustify == GR_TEXT_HJUSTIFY_LEFT)
|
||||||
hjustify = 'L';
|
hjustify = 'L';
|
||||||
else if ( field->m_HJustify == GR_TEXT_HJUSTIFY_RIGHT)
|
else if ( field->m_HJustify == GR_TEXT_HJUSTIFY_RIGHT)
|
||||||
hjustify = 'R';
|
hjustify = 'R';
|
||||||
vjustify = 'C';
|
vjustify = 'C';
|
||||||
if ( field->m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM)
|
if ( field->m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM)
|
||||||
vjustify = 'B';
|
vjustify = 'B';
|
||||||
else if ( field->m_VJustify == GR_TEXT_VJUSTIFY_TOP)
|
else if ( field->m_VJustify == GR_TEXT_VJUSTIFY_TOP)
|
||||||
vjustify = 'T';
|
vjustify = 'T';
|
||||||
if( fprintf(f,"F %d \"%s\" %c %-3d %-3d %-3d %4.4X %c %c", ii,
|
if( fprintf(f,"F %d \"%s\" %c %-3d %-3d %-3d %4.4X %c %c", ii,
|
||||||
CONV_TO_UTF8(field->m_Text),
|
CONV_TO_UTF8(field->m_Text),
|
||||||
field->m_Orient == TEXT_ORIENT_HORIZ ? 'H' : 'V',
|
field->m_Orient == TEXT_ORIENT_HORIZ ? 'H' : 'V',
|
||||||
field->m_Pos.x, field->m_Pos.y,
|
field->m_Pos.x, field->m_Pos.y,
|
||||||
field->m_Size.x,
|
field->m_Size.x,
|
||||||
field->m_Attributs,
|
field->m_Attributs,
|
||||||
hjustify, vjustify) == EOF)
|
hjustify, vjustify) == EOF)
|
||||||
{
|
{
|
||||||
Failed = TRUE; break;
|
Failed = TRUE; break;
|
||||||
}
|
}
|
||||||
// Save field name, if necessary
|
// Save field name, if necessary
|
||||||
if ( ii >= FIELD1 && ! field->m_Name.IsEmpty() )
|
if ( ii >= FIELD1 && ! field->m_Name.IsEmpty() )
|
||||||
{
|
{
|
||||||
wxString fieldname = ReturnDefaultFieldName(ii);
|
wxString fieldname = ReturnDefaultFieldName(ii);
|
||||||
if ( fieldname != field->m_Name )
|
if ( fieldname != field->m_Name )
|
||||||
if( fprintf(f," \"%s\"", CONV_TO_UTF8(field->m_Name) ) == EOF)
|
if( fprintf(f," \"%s\"", CONV_TO_UTF8(field->m_Name) ) == EOF)
|
||||||
{
|
{
|
||||||
Failed = TRUE; break;
|
Failed = TRUE; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( fprintf(f,"\n") == EOF)
|
if( fprintf(f,"\n") == EOF)
|
||||||
{
|
{
|
||||||
Failed = TRUE; break;
|
Failed = TRUE; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Failed) return(Failed);
|
if (Failed) return(Failed);
|
||||||
|
|
||||||
/* Generation du num unit, position, box ( ancienne norme )*/
|
/* Generation du num unit, position, box ( ancienne norme )*/
|
||||||
if(fprintf(f, "\t%-4d %-4d %-4d\n",
|
if(fprintf(f, "\t%-4d %-4d %-4d\n",
|
||||||
LibItemStruct->m_Multi,
|
LibItemStruct->m_Multi,
|
||||||
LibItemStruct->m_Pos.x, LibItemStruct->m_Pos.y) == EOF)
|
LibItemStruct->m_Pos.x, LibItemStruct->m_Pos.y) == EOF)
|
||||||
{
|
{
|
||||||
Failed = TRUE; return(Failed);
|
Failed = TRUE; return(Failed);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( fprintf(f, "\t%-4d %-4d %-4d %-4d\n",
|
if( fprintf(f, "\t%-4d %-4d %-4d %-4d\n",
|
||||||
LibItemStruct->m_Transform[0][0],
|
LibItemStruct->m_Transform[0][0],
|
||||||
LibItemStruct->m_Transform[0][1],
|
LibItemStruct->m_Transform[0][1],
|
||||||
LibItemStruct->m_Transform[1][0],
|
LibItemStruct->m_Transform[1][0],
|
||||||
LibItemStruct->m_Transform[1][1]) == EOF)
|
LibItemStruct->m_Transform[1][1]) == EOF)
|
||||||
{
|
{
|
||||||
Failed = TRUE; return(Failed);
|
Failed = TRUE; return(Failed);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(f, "$EndComp\n");
|
fprintf(f, "$EndComp\n");
|
||||||
return(Failed);
|
return(Failed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
static int SaveSheetDescr( FILE *f, DrawSheetStruct * SheetStruct)
|
static int SaveSheetDescr( FILE *f, DrawSheetStruct * SheetStruct)
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
/* Routine utilisee dans la routine precedente.
|
/* Routine utilisee dans la routine precedente.
|
||||||
Assure la sauvegarde de la structure LibItemStruct
|
Assure la sauvegarde de la structure LibItemStruct
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int ii;
|
int ii;
|
||||||
int Failed = FALSE;
|
int Failed = FALSE;
|
||||||
DrawSheetLabelStruct * SheetLabel;
|
DrawSheetLabelStruct * SheetLabel;
|
||||||
|
|
||||||
fprintf(f, "$Sheet\n");
|
fprintf(f, "$Sheet\n");
|
||||||
|
|
||||||
if (fprintf(f, "S %-4d %-4d %-4d %-4d\n",
|
if (fprintf(f, "S %-4d %-4d %-4d %-4d\n",
|
||||||
SheetStruct->m_Pos.x,SheetStruct->m_Pos.y,
|
SheetStruct->m_Pos.x,SheetStruct->m_Pos.y,
|
||||||
SheetStruct->m_Size.x,SheetStruct->m_Size.y) == EOF){
|
SheetStruct->m_Size.x,SheetStruct->m_Size.y) == EOF){
|
||||||
Failed = TRUE; return(Failed);
|
Failed = TRUE; return(Failed);
|
||||||
}
|
}
|
||||||
|
|
||||||
//save the unique timestamp, like other shematic parts.
|
//save the unique timestamp, like other shematic parts.
|
||||||
if( fprintf(f, "U %8.8lX\n", SheetStruct->m_TimeStamp) == EOF ){
|
if( fprintf(f, "U %8.8lX\n", SheetStruct->m_TimeStamp) == EOF ){
|
||||||
Failed = TRUE; return(Failed);
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ! SheetStruct->GetFileName().IsEmpty())
|
/* Generation de la liste des 2 textes (sheetname et filename) */
|
||||||
{
|
if ( ! SheetStruct->m_SheetName.IsEmpty())
|
||||||
if(fprintf(f,"F1 \"%s\" %d\n",
|
{
|
||||||
CONV_TO_UTF8(SheetStruct->GetFileName()),
|
if(fprintf(f,"F0 \"%s\" %d\n", CONV_TO_UTF8(SheetStruct->m_SheetName),
|
||||||
SheetStruct->m_FileNameSize) == EOF)
|
SheetStruct->m_SheetNameSize) == EOF)
|
||||||
{
|
{
|
||||||
Failed = TRUE; return(Failed);
|
Failed = TRUE; return(Failed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Generation de la liste des labels (entrees) de la sous feuille */
|
if( ! SheetStruct->GetFileName().IsEmpty())
|
||||||
ii = 2;
|
{
|
||||||
SheetLabel = SheetStruct->m_Label;
|
if(fprintf(f,"F1 \"%s\" %d\n",
|
||||||
while( SheetLabel != NULL )
|
CONV_TO_UTF8(SheetStruct->GetFileName()),
|
||||||
{
|
SheetStruct->m_FileNameSize) == EOF)
|
||||||
int type = 'U', side = 'L';
|
{
|
||||||
|
Failed = TRUE; return(Failed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if( SheetLabel->m_Text.IsEmpty() ) continue;
|
/* Generation de la liste des labels (entrees) de la sous feuille */
|
||||||
if( SheetLabel->m_Edge ) side = 'R';
|
ii = 2;
|
||||||
|
SheetLabel = SheetStruct->m_Label;
|
||||||
|
while( SheetLabel != NULL )
|
||||||
|
{
|
||||||
|
int type = 'U', side = 'L';
|
||||||
|
|
||||||
switch(SheetLabel->m_Shape)
|
if( SheetLabel->m_Text.IsEmpty() ) continue;
|
||||||
{
|
if( SheetLabel->m_Edge ) side = 'R';
|
||||||
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(fprintf(f,"F%d \"%s\" %c %c %-3d %-3d %-3d\n", ii,
|
switch(SheetLabel->m_Shape)
|
||||||
CONV_TO_UTF8(SheetLabel->m_Text), type, side,
|
{
|
||||||
SheetLabel->m_Pos.x, SheetLabel->m_Pos.y,
|
case NET_INPUT: type = 'I'; break;
|
||||||
SheetLabel->m_Size.x) == EOF)
|
case NET_OUTPUT: type = 'O'; break;
|
||||||
{
|
case NET_BIDI: type = 'B'; break;
|
||||||
Failed = TRUE; break;
|
case NET_TRISTATE: type = 'T'; break;
|
||||||
}
|
case NET_UNSPECIFIED: type = 'U'; break;
|
||||||
ii++;
|
}
|
||||||
SheetLabel = (DrawSheetLabelStruct*)SheetLabel->Pnext;
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf(f, "$EndSheet\n");
|
if(fprintf(f,"F%d \"%s\" %c %c %-3d %-3d %-3d\n", ii,
|
||||||
return(Failed);
|
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
|
theses infos are not used in eeschema
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
fprintf(f,"EELAYER %2d %2d\n", g_LayerDescr.NumberOfLayers,g_LayerDescr.CurrentLayer);
|
fprintf(f,"EELAYER %2d %2d\n", g_LayerDescr.NumberOfLayers,g_LayerDescr.CurrentLayer);
|
||||||
fprintf(f,"EELAYER END\n");
|
fprintf(f,"EELAYER END\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -273,36 +273,36 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_EDIT_TEXT:
|
case ID_POPUP_SCH_EDIT_TEXT:
|
||||||
EditSchematicText( (DrawTextStruct*) GetScreen()->GetCurItem(), &dc );
|
EditSchematicText( (SCH_TEXT*) GetScreen()->GetCurItem(), &dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_ROTATE_TEXT:
|
case ID_POPUP_SCH_ROTATE_TEXT:
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
ChangeTextOrient( (DrawTextStruct*) GetScreen()->GetCurItem(), &dc );
|
ChangeTextOrient( (SCH_TEXT*) GetScreen()->GetCurItem(), &dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_LABEL:
|
case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_LABEL:
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
ConvertTextType( (DrawTextStruct*) GetScreen()->GetCurItem(),
|
ConvertTextType( (SCH_TEXT*) GetScreen()->GetCurItem(),
|
||||||
&dc, DRAW_LABEL_STRUCT_TYPE );
|
&dc, TYPE_SCH_LABEL );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_GLABEL:
|
case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_GLABEL:
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
ConvertTextType( (DrawTextStruct*) GetScreen()->GetCurItem(),
|
ConvertTextType( (SCH_TEXT*) GetScreen()->GetCurItem(),
|
||||||
&dc, DRAW_GLOBAL_LABEL_STRUCT_TYPE );
|
&dc, TYPE_SCH_GLOBALLABEL );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_HLABEL:
|
case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_HLABEL:
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
ConvertTextType( (DrawTextStruct*) GetScreen()->GetCurItem(),
|
ConvertTextType( (SCH_TEXT*) GetScreen()->GetCurItem(),
|
||||||
&dc, DRAW_HIER_LABEL_STRUCT_TYPE );
|
&dc, TYPE_SCH_HIERLABEL );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_COMMENT:
|
case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_COMMENT:
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
ConvertTextType( (DrawTextStruct*) GetScreen()->GetCurItem(),
|
ConvertTextType( (SCH_TEXT*) GetScreen()->GetCurItem(),
|
||||||
&dc, DRAW_TEXT_STRUCT_TYPE );
|
&dc, TYPE_SCH_TEXT );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_SET_SHAPE_TEXT:
|
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
|
// Ensure the struct is a component (could be a struct of a
|
||||||
// component, like Field, text..)
|
// 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()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
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
|
// Ensure the struct is a component (could be a struct of a
|
||||||
// component, like Field, text..)
|
// 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()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
GetScreen() ) );
|
||||||
if( GetScreen()->GetCurItem() == NULL )
|
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
|
// Ensure the struct is a component (could be a struct of a
|
||||||
// component, like Field, text..)
|
// 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()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
GetScreen() ) );
|
||||||
if( GetScreen()->GetCurItem() == NULL )
|
if( GetScreen()->GetCurItem() == NULL )
|
||||||
break;
|
break;
|
||||||
InstallCmpeditFrame( this, pos,
|
InstallCmpeditFrame( this, pos,
|
||||||
(EDA_SchComponentStruct*) GetScreen()->GetCurItem() );
|
(SCH_COMPONENT*) GetScreen()->GetCurItem() );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_MIROR_X_CMP:
|
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
|
// Ensure the struct is a component (could be a struct of a
|
||||||
// component, like Field, text..)
|
// 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()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
GetScreen() ) );
|
||||||
if( GetScreen()->GetCurItem() == NULL )
|
if( GetScreen()->GetCurItem() == NULL )
|
||||||
|
@ -480,7 +480,7 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
SaveCopyInUndoList( GetScreen()->GetCurItem(), IS_CHANGED );
|
SaveCopyInUndoList( GetScreen()->GetCurItem(), IS_CHANGED );
|
||||||
|
|
||||||
CmpRotationMiroir(
|
CmpRotationMiroir(
|
||||||
(EDA_SchComponentStruct*) GetScreen()->GetCurItem(),
|
(SCH_COMPONENT*) GetScreen()->GetCurItem(),
|
||||||
&dc, option );
|
&dc, option );
|
||||||
break;
|
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
|
// Ensure the struct is a component (could be a struct of a
|
||||||
// component, like Field, text..)
|
// 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()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
GetScreen() ) );
|
||||||
if( GetScreen()->GetCurItem() == NULL )
|
if( GetScreen()->GetCurItem() == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
EditComponentValue(
|
EditComponentValue(
|
||||||
(EDA_SchComponentStruct*) GetScreen()->GetCurItem(), &dc );
|
(SCH_COMPONENT*) GetScreen()->GetCurItem(), &dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_EDIT_REF_CMP:
|
case ID_POPUP_SCH_EDIT_REF_CMP:
|
||||||
|
|
||||||
// Ensure the struct is a component (could be a struct of a
|
// Ensure the struct is a component (could be a struct of a
|
||||||
// component, like Field, text..)
|
// 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()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
GetScreen() ) );
|
||||||
if( GetScreen()->GetCurItem() == NULL )
|
if( GetScreen()->GetCurItem() == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
EditComponentReference(
|
EditComponentReference(
|
||||||
(EDA_SchComponentStruct*) GetScreen()->GetCurItem(), &dc );
|
(SCH_COMPONENT*) GetScreen()->GetCurItem(), &dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_EDIT_FOOTPRINT_CMP:
|
case ID_POPUP_SCH_EDIT_FOOTPRINT_CMP:
|
||||||
|
|
||||||
// Ensure the struct is a component (could be a struct of a
|
// Ensure the struct is a component (could be a struct of a
|
||||||
// component, like Field, text..)
|
// 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()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
GetScreen() ) );
|
||||||
if( GetScreen()->GetCurItem() == NULL )
|
if( GetScreen()->GetCurItem() == NULL )
|
||||||
break;
|
break;
|
||||||
EditComponentFootprint(
|
EditComponentFootprint(
|
||||||
(EDA_SchComponentStruct*) GetScreen()->GetCurItem(), &dc );
|
(SCH_COMPONENT*) GetScreen()->GetCurItem(), &dc );
|
||||||
break;
|
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
|
// Ensure the struct is a component (could be a struct of a
|
||||||
// component, like Field, text..)
|
// 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()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
GetScreen() ) );
|
||||||
if( GetScreen()->GetCurItem() == NULL )
|
if( GetScreen()->GetCurItem() == NULL )
|
||||||
break;
|
break;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
ConvertPart(
|
ConvertPart(
|
||||||
(EDA_SchComponentStruct*) GetScreen()->GetCurItem(),
|
(SCH_COMPONENT*) GetScreen()->GetCurItem(),
|
||||||
&dc );
|
&dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_COPY_COMPONENT_CMP:
|
case ID_POPUP_SCH_COPY_COMPONENT_CMP:
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
{
|
{
|
||||||
EDA_SchComponentStruct* olditem, * newitem;
|
SCH_COMPONENT* olditem, * newitem;
|
||||||
if( GetScreen()->GetCurItem()->Type() != DRAW_LIB_ITEM_STRUCT_TYPE )
|
if( GetScreen()->GetCurItem()->Type() != TYPE_SCH_COMPONENT )
|
||||||
GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
GetScreen()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
GetScreen() ) );
|
||||||
olditem = (EDA_SchComponentStruct*) GetScreen()->GetCurItem();
|
olditem = (SCH_COMPONENT*) GetScreen()->GetCurItem();
|
||||||
if( olditem == NULL )
|
if( olditem == NULL )
|
||||||
break;
|
break;
|
||||||
newitem = olditem->GenCopy();
|
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
|
// Ensure the struct is a component (could be a struct of a
|
||||||
// component, like Field, text..)
|
// 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()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
GetScreen() ) );
|
||||||
if( GetScreen()->GetCurItem() == NULL )
|
if( GetScreen()->GetCurItem() == NULL )
|
||||||
break;
|
break;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
SelPartUnit(
|
SelPartUnit(
|
||||||
(EDA_SchComponentStruct*) GetScreen()->GetCurItem(),
|
(SCH_COMPONENT*) GetScreen()->GetCurItem(),
|
||||||
id + 1 - ID_POPUP_SCH_SELECT_UNIT1,
|
id + 1 - ID_POPUP_SCH_SELECT_UNIT1,
|
||||||
&dc );
|
&dc );
|
||||||
break;
|
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
|
// Ensure the struct is a component (could be a piece of a
|
||||||
// component, like Field, text..)
|
// 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()->SetCurItem( LocateSmallestComponent( (SCH_SCREEN*)
|
||||||
GetScreen() ) );
|
GetScreen() ) );
|
||||||
if( GetScreen()->GetCurItem() == NULL )
|
if( GetScreen()->GetCurItem() == NULL )
|
||||||
|
@ -621,7 +621,7 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
EDA_LibComponentStruct* LibEntry;
|
EDA_LibComponentStruct* LibEntry;
|
||||||
LibEntry = FindLibPart(
|
LibEntry = FindLibPart(
|
||||||
( (EDA_SchComponentStruct*) GetScreen()->GetCurItem() )->m_ChipName,
|
( (SCH_COMPONENT*) GetScreen()->GetCurItem() )->m_ChipName,
|
||||||
wxEmptyString,
|
wxEmptyString,
|
||||||
FIND_ALIAS );
|
FIND_ALIAS );
|
||||||
if( LibEntry && LibEntry->m_DocFile != wxEmptyString )
|
if( LibEntry && LibEntry->m_DocFile != wxEmptyString )
|
||||||
|
@ -755,15 +755,15 @@ void WinEDA_SchematicFrame::Process_Move_Item( EDA_BaseStruct* DrawStruct,
|
||||||
StartMoveBusEntry( (DrawBusEntryStruct*) DrawStruct, DC );
|
StartMoveBusEntry( (DrawBusEntryStruct*) DrawStruct, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
StartMoveTexte( (DrawTextStruct*) DrawStruct, DC );
|
StartMoveTexte( (SCH_TEXT*) DrawStruct, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
StartMovePart( (EDA_SchComponentStruct*) DrawStruct, DC );
|
StartMovePart( (SCH_COMPONENT*) DrawStruct, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case DRAW_SEGMENT_STRUCT_TYPE:
|
||||||
|
|
|
@ -90,22 +90,22 @@ void SwapData( EDA_BaseStruct* Item )
|
||||||
EXCHG( SOURCE->m_Pos, DEST->m_Pos );
|
EXCHG( SOURCE->m_Pos, DEST->m_Pos );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_LABEL:
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_GLOBALLABEL:
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case TYPE_SCH_HIERLABEL:
|
||||||
case DRAW_TEXT_STRUCT_TYPE:
|
case TYPE_SCH_TEXT:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (DrawTextStruct*) Item )
|
#define SOURCE ( (SCH_TEXT*) Item )
|
||||||
#define DEST ( (DrawTextStruct*) image )
|
#define DEST ( (SCH_TEXT*) image )
|
||||||
DEST->SwapData( SOURCE );
|
DEST->SwapData( SOURCE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LIB_ITEM_STRUCT_TYPE:
|
case TYPE_SCH_COMPONENT:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (EDA_SchComponentStruct*) Item )
|
#define SOURCE ( (SCH_COMPONENT*) Item )
|
||||||
#define DEST ( (EDA_SchComponentStruct*) image )
|
#define DEST ( (SCH_COMPONENT*) image )
|
||||||
DEST->SwapData( SOURCE );
|
DEST->SwapData( SOURCE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ public:
|
||||||
|
|
||||||
/* Cross probing with pcbnew */
|
/* Cross probing with pcbnew */
|
||||||
void SendMessageToPCBNEW( EDA_BaseStruct* objectToSync,
|
void SendMessageToPCBNEW( EDA_BaseStruct* objectToSync,
|
||||||
EDA_SchComponentStruct* LibItem );
|
SCH_COMPONENT* LibItem );
|
||||||
|
|
||||||
/* netlist generation */
|
/* netlist generation */
|
||||||
void* BuildNetListBase();
|
void* BuildNetListBase();
|
||||||
|
@ -144,10 +144,10 @@ private:
|
||||||
|
|
||||||
// Text ,label, glabel
|
// Text ,label, glabel
|
||||||
EDA_BaseStruct* CreateNewText( wxDC* DC, int type );
|
EDA_BaseStruct* CreateNewText( wxDC* DC, int type );
|
||||||
void EditSchematicText( DrawTextStruct* TextStruct, wxDC* DC );
|
void EditSchematicText( SCH_TEXT* TextStruct, wxDC* DC );
|
||||||
void ChangeTextOrient( DrawTextStruct* TextStruct, wxDC* DC );
|
void ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC );
|
||||||
void StartMoveTexte( DrawTextStruct* TextStruct, wxDC* DC );
|
void StartMoveTexte( SCH_TEXT* TextStruct, wxDC* DC );
|
||||||
void ConvertTextType( DrawTextStruct* Text, wxDC* DC, int newtype );
|
void ConvertTextType( SCH_TEXT* Text, wxDC* DC, int newtype );
|
||||||
|
|
||||||
// Wire, Bus
|
// Wire, Bus
|
||||||
void BeginSegment( wxDC* DC, int type );
|
void BeginSegment( wxDC* DC, int type );
|
||||||
|
@ -168,10 +168,10 @@ private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool EditSheet( DrawSheetStruct* Sheet, wxDC* DC );
|
bool EditSheet( DrawSheetStruct* Sheet, wxDC* DC );
|
||||||
/** Function UpdateSheetNumberAndDate
|
/** Function UpdateSheetNumberAndDate
|
||||||
* Set a sheet number, the sheet count for sheets in the whole schematic
|
* Set a sheet number, the sheet count for sheets in the whole schematic
|
||||||
* and update the date in all screens
|
* and update the date in all screens
|
||||||
*/
|
*/
|
||||||
void UpdateSheetNumberAndDate();
|
void UpdateSheetNumberAndDate();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -188,25 +188,25 @@ public:
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// Component
|
// Component
|
||||||
EDA_SchComponentStruct* Load_Component( wxDC* DC,
|
SCH_COMPONENT* Load_Component( wxDC* DC,
|
||||||
const wxString& libname,
|
const wxString& libname,
|
||||||
wxArrayString& List,
|
wxArrayString& List,
|
||||||
bool UseLibBrowser );
|
bool UseLibBrowser );
|
||||||
void StartMovePart( EDA_SchComponentStruct* DrawLibItem, wxDC* DC );
|
void StartMovePart( SCH_COMPONENT* DrawLibItem, wxDC* DC );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void CmpRotationMiroir( EDA_SchComponentStruct* DrawComponent,
|
void CmpRotationMiroir( SCH_COMPONENT* DrawComponent,
|
||||||
wxDC* DC, int type_rotate );
|
wxDC* DC, int type_rotate );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void SelPartUnit( EDA_SchComponentStruct* DrawComponent,
|
void SelPartUnit( SCH_COMPONENT* DrawComponent,
|
||||||
int unit, wxDC* DC );
|
int unit, wxDC* DC );
|
||||||
void ConvertPart( EDA_SchComponentStruct* DrawComponent, wxDC* DC );
|
void ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC );
|
||||||
void SetInitCmp( EDA_SchComponentStruct* DrawComponent, wxDC* DC );
|
void SetInitCmp( SCH_COMPONENT* DrawComponent, wxDC* DC );
|
||||||
void EditComponentReference( EDA_SchComponentStruct* DrawLibItem,
|
void EditComponentReference( SCH_COMPONENT* DrawLibItem,
|
||||||
wxDC* DC );
|
wxDC* DC );
|
||||||
void EditComponentValue( EDA_SchComponentStruct* DrawLibItem, wxDC* DC );
|
void EditComponentValue( SCH_COMPONENT* DrawLibItem, wxDC* DC );
|
||||||
void EditComponentFootprint( EDA_SchComponentStruct* DrawLibItem,
|
void EditComponentFootprint( SCH_COMPONENT* DrawLibItem,
|
||||||
wxDC* DC );
|
wxDC* DC );
|
||||||
void StartMoveCmpField( PartTextStruct* Field, wxDC* DC );
|
void StartMoveCmpField( PartTextStruct* Field, wxDC* DC );
|
||||||
void EditCmpFieldText( PartTextStruct* Field, wxDC* DC );
|
void EditCmpFieldText( PartTextStruct* Field, wxDC* DC );
|
||||||
|
|
|
@ -153,7 +153,7 @@ static void ExitPinSheet( WinEDA_DrawPanel* Panel, wxDC* DC )
|
||||||
if( SheetLabel->m_Flags & IS_NEW )
|
if( SheetLabel->m_Flags & IS_NEW )
|
||||||
{ /* Nouveau Placement en cours, on l'efface */
|
{ /* Nouveau Placement en cours, on l'efface */
|
||||||
RedrawOneStruct( Panel, DC, SheetLabel, g_XorMode );
|
RedrawOneStruct( Panel, DC, SheetLabel, g_XorMode );
|
||||||
SAFE_DELETE( SheetLabel );
|
SAFE_DELETE( SheetLabel );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -359,16 +359,16 @@ DrawSheetLabelStruct* WinEDA_SchematicFrame::Import_PinSheet( DrawSheetStruct* S
|
||||||
{
|
{
|
||||||
EDA_BaseStruct* DrawStruct;
|
EDA_BaseStruct* DrawStruct;
|
||||||
DrawSheetLabelStruct* NewSheetLabel, * SheetLabel = NULL;
|
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;
|
DrawStruct = Sheet->m_AssociatedScreen->EEDrawList;
|
||||||
HLabel = NULL;
|
HLabel = NULL;
|
||||||
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext )
|
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() != DRAW_HIER_LABEL_STRUCT_TYPE )
|
if( DrawStruct->Type() != TYPE_SCH_HIERLABEL )
|
||||||
continue;
|
continue;
|
||||||
HLabel = (DrawHierLabelStruct*) DrawStruct;
|
HLabel = (SCH_HIERLABEL*) DrawStruct;
|
||||||
|
|
||||||
/* Ici un G-Label a ete trouve: y a t-il un SheetLabel correspondant */
|
/* Ici un G-Label a ete trouve: y a t-il un SheetLabel correspondant */
|
||||||
SheetLabel = Sheet->m_Label;
|
SheetLabel = Sheet->m_Label;
|
||||||
|
|
|
@ -47,11 +47,11 @@ enum KICAD_T {
|
||||||
// Draw Items in schematic
|
// Draw Items in schematic
|
||||||
DRAW_POLYLINE_STRUCT_TYPE,
|
DRAW_POLYLINE_STRUCT_TYPE,
|
||||||
DRAW_JUNCTION_STRUCT_TYPE,
|
DRAW_JUNCTION_STRUCT_TYPE,
|
||||||
DRAW_TEXT_STRUCT_TYPE,
|
TYPE_SCH_TEXT,
|
||||||
DRAW_LABEL_STRUCT_TYPE,
|
TYPE_SCH_LABEL,
|
||||||
DRAW_GLOBAL_LABEL_STRUCT_TYPE,
|
TYPE_SCH_GLOBALLABEL,
|
||||||
DRAW_HIER_LABEL_STRUCT_TYPE,
|
TYPE_SCH_HIERLABEL,
|
||||||
DRAW_LIB_ITEM_STRUCT_TYPE,
|
TYPE_SCH_COMPONENT,
|
||||||
DRAW_PICK_ITEM_STRUCT_TYPE,
|
DRAW_PICK_ITEM_STRUCT_TYPE,
|
||||||
DRAW_SEGMENT_STRUCT_TYPE,
|
DRAW_SEGMENT_STRUCT_TYPE,
|
||||||
DRAW_BUSENTRY_STRUCT_TYPE,
|
DRAW_BUSENTRY_STRUCT_TYPE,
|
||||||
|
@ -194,13 +194,13 @@ public:
|
||||||
operator wxRect() const { return wxRect( m_Pos, m_Size ); }
|
operator wxRect() const { return wxRect( m_Pos, m_Size ); }
|
||||||
|
|
||||||
EDA_Rect& Inflate( wxCoord dx, wxCoord dy );
|
EDA_Rect& Inflate( wxCoord dx, wxCoord dy );
|
||||||
|
|
||||||
/** Function Merge
|
/** Function Merge
|
||||||
* Modify Position and Size of this in order to contain the given rect
|
* Modify Position and Size of this in order to contain the given rect
|
||||||
* mainly used to calculate bounding boxes
|
* mainly used to calculate bounding boxes
|
||||||
* @param aRect = given rect to merge with this
|
* @param aRect = given rect to merge with this
|
||||||
*/
|
*/
|
||||||
void Merge( const EDA_Rect & aRect );
|
void Merge( const EDA_Rect & aRect );
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -357,6 +357,10 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual EDA_Rect GetBoundingBox()
|
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
|
// return a zero-sized box per default. derived classes should override this
|
||||||
EDA_Rect ret( wxPoint( 0, 0 ), wxSize( 0, 0 ) );
|
EDA_Rect ret( wxPoint( 0, 0 ), wxSize( 0, 0 ) );
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -668,18 +672,44 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**************************/
|
/**
|
||||||
/* class DrawPickedStruct */
|
* 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
|
||||||
/* Class to hold structures picked by pick events (like block selection)
|
* found in EESCHEMA or other programs that use class SCHEMATIC and its contents.
|
||||||
* This class has only one useful member: .m_PickedStruct, used as a link.
|
* The corresponding class in PCBNEW is BOARD_ITEM.
|
||||||
* 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 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:
|
public:
|
||||||
EDA_BaseStruct* m_PickedStruct;
|
EDA_BaseStruct* m_PickedStruct;
|
||||||
|
@ -691,6 +721,22 @@ public:
|
||||||
void DeleteWrapperList();
|
void DeleteWrapperList();
|
||||||
|
|
||||||
DrawPickedStruct* Next() { return (DrawPickedStruct*) Pnext; }
|
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 */
|
#endif /* BASE_STRUCT_H */
|
||||||
|
|
|
@ -71,13 +71,13 @@ class EDA_LibComponentStruct;
|
||||||
class LibEDA_BaseStruct;
|
class LibEDA_BaseStruct;
|
||||||
class EDA_BaseStruct;
|
class EDA_BaseStruct;
|
||||||
class DrawBusEntryStruct;
|
class DrawBusEntryStruct;
|
||||||
class DrawGlobalLabelStruct;
|
class SCH_GLOBALLABEL;
|
||||||
class DrawTextStruct;
|
class SCH_TEXT;
|
||||||
class EDA_DrawLineStruct;
|
class EDA_DrawLineStruct;
|
||||||
class DrawSheetStruct;
|
class DrawSheetStruct;
|
||||||
class DrawSheetPath;
|
class DrawSheetPath;
|
||||||
class DrawSheetLabelStruct;
|
class DrawSheetLabelStruct;
|
||||||
class EDA_SchComponentStruct;
|
class SCH_COMPONENT;
|
||||||
class LibDrawField;
|
class LibDrawField;
|
||||||
class PartTextStruct;
|
class PartTextStruct;
|
||||||
class LibDrawPin;
|
class LibDrawPin;
|
||||||
|
@ -158,7 +158,7 @@ public:
|
||||||
WinEDA_BasicFrame( wxWindow* father, int idtype, WinEDA_App* parent,
|
WinEDA_BasicFrame( wxWindow* father, int idtype, WinEDA_App* parent,
|
||||||
const wxString& title,
|
const wxString& title,
|
||||||
const wxPoint& pos, const wxSize& size,
|
const wxPoint& pos, const wxSize& size,
|
||||||
long style = KICAD_DEFAULT_DRAWFRAME_STYLE);
|
long style = KICAD_DEFAULT_DRAWFRAME_STYLE);
|
||||||
#ifdef KICAD_PYTHON
|
#ifdef KICAD_PYTHON
|
||||||
WinEDA_BasicFrame( const WinEDA_BasicFrame& ) { } // Should throw!!
|
WinEDA_BasicFrame( const WinEDA_BasicFrame& ) { } // Should throw!!
|
||||||
WinEDA_BasicFrame() { } // Should throw!!
|
WinEDA_BasicFrame() { } // Should throw!!
|
||||||
|
@ -230,12 +230,12 @@ public:
|
||||||
WinEDA_DrawFrame( wxWindow* father, int idtype, WinEDA_App* parent,
|
WinEDA_DrawFrame( wxWindow* father, int idtype, WinEDA_App* parent,
|
||||||
const wxString& title,
|
const wxString& title,
|
||||||
const wxPoint& pos, const wxSize& size,
|
const wxPoint& pos, const wxSize& size,
|
||||||
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
|
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
|
||||||
|
|
||||||
~WinEDA_DrawFrame();
|
~WinEDA_DrawFrame();
|
||||||
|
|
||||||
virtual BASE_SCREEN* GetScreen() { return m_CurrentScreen; }
|
virtual BASE_SCREEN* GetScreen() { return m_CurrentScreen; }
|
||||||
virtual wxString GetScreenDesc();
|
virtual wxString GetScreenDesc();
|
||||||
|
|
||||||
void OnMenuOpen( wxMenuEvent& event );
|
void OnMenuOpen( wxMenuEvent& event );
|
||||||
void OnMouseEvent( wxMouseEvent& event );
|
void OnMouseEvent( wxMouseEvent& event );
|
||||||
|
@ -279,7 +279,7 @@ public:
|
||||||
virtual int BestZoom() = 0;
|
virtual int BestZoom() = 0;
|
||||||
|
|
||||||
/* Return the current zoom level */
|
/* Return the current zoom level */
|
||||||
int GetZoom(void);
|
int GetZoom(void);
|
||||||
|
|
||||||
void ToPrinter( wxCommandEvent& event );
|
void ToPrinter( wxCommandEvent& event );
|
||||||
void SVG_Print( wxCommandEvent& event );
|
void SVG_Print( wxCommandEvent& event );
|
||||||
|
@ -353,7 +353,7 @@ public:
|
||||||
WinEDA_LibeditFrame( wxWindow* father, WinEDA_App* parent,
|
WinEDA_LibeditFrame( wxWindow* father, WinEDA_App* parent,
|
||||||
const wxString& title,
|
const wxString& title,
|
||||||
const wxPoint& pos, const wxSize& size,
|
const wxPoint& pos, const wxSize& size,
|
||||||
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
|
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
|
||||||
|
|
||||||
~WinEDA_LibeditFrame();
|
~WinEDA_LibeditFrame();
|
||||||
|
|
||||||
|
@ -422,7 +422,7 @@ private:
|
||||||
void RotateSymbolText( wxDC* DC );
|
void RotateSymbolText( wxDC* DC );
|
||||||
void DeleteDrawPoly( wxDC* DC );
|
void DeleteDrawPoly( wxDC* DC );
|
||||||
LibDrawField* LocateField( EDA_LibComponentStruct* LibEntry );
|
LibDrawField* LocateField( EDA_LibComponentStruct* LibEntry );
|
||||||
LibEDA_BaseStruct* LocateItemUsingCursor();
|
LibEDA_BaseStruct* LocateItemUsingCursor();
|
||||||
void RotateField( wxDC* DC, LibDrawField* Field );
|
void RotateField( wxDC* DC, LibDrawField* Field );
|
||||||
void PlaceField( wxDC* DC, LibDrawField* Field );
|
void PlaceField( wxDC* DC, LibDrawField* Field );
|
||||||
void EditField( wxDC* DC, LibDrawField* Field );
|
void EditField( wxDC* DC, LibDrawField* Field );
|
||||||
|
@ -540,10 +540,10 @@ struct MsgItem
|
||||||
class WinEDA_MsgPanel : public wxPanel
|
class WinEDA_MsgPanel : public wxPanel
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
std::vector<MsgItem> m_Items;
|
std::vector<MsgItem> m_Items;
|
||||||
|
|
||||||
void showItem( wxDC& dc, const MsgItem& aItem );
|
void showItem( wxDC& dc, const MsgItem& aItem );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
WinEDA_DrawFrame* m_Parent;
|
WinEDA_DrawFrame* m_Parent;
|
||||||
int m_BgColor; // couleur de fond
|
int m_BgColor; // couleur de fond
|
||||||
|
|
|
@ -934,7 +934,7 @@ typedef boost::ptr_vector<WINDOW> WINDOWS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class KEEPOUT
|
* Class KEEPOUT
|
||||||
* is used for <keepout_descriptor> and <plane_descriptor>.
|
* is used for <keepout_descriptor> and <plane_descriptor>.
|
||||||
*/
|
*/
|
||||||
class KEEPOUT : public ELEM
|
class KEEPOUT : public ELEM
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue