Schematic object improvements and other minor fixes.
This commit is contained in:
parent
f64b3a5188
commit
adb4ad1a7b
|
@ -4,6 +4,26 @@ KiCad ChangeLog 2010
|
||||||
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.
|
||||||
|
|
||||||
|
2010-dec-10 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
|
||||||
|
================================================================================
|
||||||
|
++All
|
||||||
|
* Make a whole bunch of object methods const in order to make HitTest() const.
|
||||||
|
* Lots of coding policy fixes.
|
||||||
|
++common
|
||||||
|
* Add Inside override to EDA_Rect to test if another EDA_Rect is inside.
|
||||||
|
* Add additional parameter to EDA_TextStruct GetTextBox method to support
|
||||||
|
Y axis inversion and non-default thickness.
|
||||||
|
* Add accuracy parameter to EDA_TextStruct TextHitTest method.
|
||||||
|
++EESchema
|
||||||
|
* Refactor schematic object hit testing to provide coherent object interface.
|
||||||
|
* Remove redundant GetBoundaryBox from schematic component object.
|
||||||
|
* Remove redundant layer member from schematic text object.
|
||||||
|
* Create hit test override to check for rectangle intersection and
|
||||||
|
containment.
|
||||||
|
* Simplify schematic block selection hit testing.
|
||||||
|
* Make schematic and component library object enum naming consistent.
|
||||||
|
|
||||||
|
|
||||||
2010-dec-08 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
|
2010-dec-08 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
|
||||||
================================================================================
|
================================================================================
|
||||||
++All
|
++All
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include "fctsys.h"
|
#include "fctsys.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "base_struct.h"
|
#include "base_struct.h"
|
||||||
#include "sch_item_struct.h"
|
|
||||||
#include "class_base_screen.h"
|
#include "class_base_screen.h"
|
||||||
#include "id.h"
|
#include "id.h"
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/****************************************/
|
/****************************************/
|
||||||
/* Basic classes for Kicad: */
|
/* Basic classes for Kicad: */
|
||||||
/* EDA_ITEM */
|
/* EDA_ITEM */
|
||||||
/* EDA_TextStruct */
|
/* EDA_TextStruct */
|
||||||
/****************************************/
|
/****************************************/
|
||||||
|
|
||||||
#include "fctsys.h"
|
#include "fctsys.h"
|
||||||
|
@ -143,7 +143,7 @@ std::ostream& operator<<( std::ostream& out, const wxPoint& pt )
|
||||||
* 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_ITEM::Show( int nestLevel, std::ostream& os )
|
void EDA_ITEM::Show( int nestLevel, std::ostream& os ) const
|
||||||
{
|
{
|
||||||
// XML output:
|
// XML output:
|
||||||
wxString s = GetClass();
|
wxString s = GetClass();
|
||||||
|
@ -211,67 +211,64 @@ int EDA_TextStruct::LenSize( const wxString& aLine ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
EDA_Rect EDA_TextStruct::GetTextBox( int aLine, int aThickness, bool aInvertY ) const
|
||||||
* Function GetTextBox
|
|
||||||
* useful in multiline texts to calculate the full text or a line area (for zones filling, locate functions....)
|
|
||||||
* @return the rect containing the line of text (i.e. the position and the size of one line)
|
|
||||||
* this rectangle is calculated for 0 orient text. if orient is not 0 the rect must be rotated to match the physical area
|
|
||||||
* @param aLine : the line of text to consider.
|
|
||||||
* for single line text, aLine is unused
|
|
||||||
* If aLine == -1, the full area (considering all lines) is returned
|
|
||||||
*/
|
|
||||||
EDA_Rect EDA_TextStruct::GetTextBox( int aLine )
|
|
||||||
{
|
{
|
||||||
EDA_Rect rect;
|
EDA_Rect rect;
|
||||||
wxPoint pos;
|
wxPoint pos;
|
||||||
wxArrayString* list = NULL;
|
wxArrayString* list = NULL;
|
||||||
|
wxString text = m_Text;
|
||||||
wxString* text = &m_Text;
|
int thickness = ( aThickness < 0 ) ? m_Thickness : aThickness;
|
||||||
|
|
||||||
if( m_MultilineAllowed )
|
if( m_MultilineAllowed )
|
||||||
{
|
{
|
||||||
list = wxStringSplit( m_Text, '\n' );
|
list = wxStringSplit( m_Text, '\n' );
|
||||||
|
|
||||||
if ( list->GetCount() ) // GetCount() == 0 for void strings
|
if ( list->GetCount() ) // GetCount() == 0 for void strings
|
||||||
{
|
{
|
||||||
if( aLine >= 0 && (aLine < (int)list->GetCount()) )
|
if( aLine >= 0 && (aLine < (int)list->GetCount()) )
|
||||||
text = &list->Item( aLine );
|
text = list->Item( aLine );
|
||||||
else
|
else
|
||||||
text = &list->Item( 0 );
|
text = list->Item( 0 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// calculate the H and V size
|
// calculate the H and V size
|
||||||
int dx = LenSize( *text );
|
int dx = LenSize( text );
|
||||||
int dy = GetInterline();
|
int dy = GetInterline();
|
||||||
|
|
||||||
/* Creates bounding box (rectangle) for an horizontal text */
|
/* Creates bounding box (rectangle) for an horizontal text */
|
||||||
wxSize textsize = wxSize( dx, dy );
|
wxSize textsize = wxSize( dx, dy );
|
||||||
rect.SetOrigin( m_Pos );
|
|
||||||
|
if( aInvertY )
|
||||||
|
rect.SetOrigin( m_Pos.x, -m_Pos.y );
|
||||||
|
else
|
||||||
|
rect.SetOrigin( m_Pos );
|
||||||
|
|
||||||
// extra dy interval for letters like j and y and ]
|
// extra dy interval for letters like j and y and ]
|
||||||
int extra_dy = dy - m_Size.y;
|
int extra_dy = dy - m_Size.y;
|
||||||
rect.Move(wxPoint(0, -extra_dy/2 ) ); // move origin by the half extra interval
|
rect.Move( wxPoint( 0, -extra_dy / 2 ) ); // move origin by the half extra interval
|
||||||
|
|
||||||
// for multiline texts and aLine < 0, merge all rectangles
|
// for multiline texts and aLine < 0, merge all rectangles
|
||||||
if( m_MultilineAllowed && list && aLine < 0 )
|
if( m_MultilineAllowed && list && aLine < 0 )
|
||||||
{
|
{
|
||||||
for( unsigned ii = 1; ii < list->GetCount(); ii++ )
|
for( unsigned ii = 1; ii < list->GetCount(); ii++ )
|
||||||
{
|
{
|
||||||
text = &list->Item( ii );
|
text = list->Item( ii );
|
||||||
dx = LenSize( *text );
|
dx = LenSize( text );
|
||||||
textsize.x = MAX( textsize.x, dx );
|
textsize.x = MAX( textsize.x, dx );
|
||||||
textsize.y += dy;
|
textsize.y += dy;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete list;
|
delete list;
|
||||||
|
|
||||||
rect.SetSize( textsize );
|
rect.SetSize( textsize );
|
||||||
rect.Inflate( m_Thickness/2 ); // ensure a small margin
|
rect.Inflate( thickness / 2 ); // ensure a small margin
|
||||||
|
|
||||||
/* Now, calculate the rect origin, according to text justification
|
/* Now, calculate the rect origin, according to text justification
|
||||||
* At this point the rectangle origin is the text origin (m_Pos).
|
* At this point the rectangle origin is the text origin (m_Pos).
|
||||||
* This is true only for left and top text justified texts (using top to bottom Y axis orientation).
|
* This is true only for left and top text justified texts (using top to bottom Y axis
|
||||||
* and must be recalculated for others justifications
|
* orientation). and must be recalculated for others justifications
|
||||||
* also, note the V justification is relative to the first line
|
* also, note the V justification is relative to the first line
|
||||||
*/
|
*/
|
||||||
switch( m_HJustify )
|
switch( m_HJustify )
|
||||||
|
@ -288,7 +285,8 @@ EDA_Rect EDA_TextStruct::GetTextBox( int aLine )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
dy = m_Size.y + m_Thickness;
|
dy = m_Size.y + thickness;
|
||||||
|
|
||||||
switch( m_VJustify )
|
switch( m_VJustify )
|
||||||
{
|
{
|
||||||
case GR_TEXT_VJUSTIFY_TOP:
|
case GR_TEXT_VJUSTIFY_TOP:
|
||||||
|
@ -304,46 +302,36 @@ EDA_Rect EDA_TextStruct::GetTextBox( int aLine )
|
||||||
}
|
}
|
||||||
|
|
||||||
rect.Normalize(); // Make h and v sizes always >= 0
|
rect.Normalize(); // Make h and v sizes always >= 0
|
||||||
|
|
||||||
return rect;
|
return rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************/
|
bool EDA_TextStruct::TextHitTest( const wxPoint& aPoint, int aAccuracy ) const
|
||||||
bool EDA_TextStruct::TextHitTest( const wxPoint& posref )
|
|
||||||
/*************************************************/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function TextHitTest (overlayed)
|
|
||||||
* tests if the given point is inside this object.
|
|
||||||
* @param posref point to test
|
|
||||||
* @return bool - true if a hit, else false
|
|
||||||
*/
|
|
||||||
{
|
{
|
||||||
EDA_Rect rect = GetTextBox( -1 ); // Get the full text area.
|
EDA_Rect rect = GetTextBox( -1 ); // Get the full text area.
|
||||||
|
wxPoint location = aPoint;
|
||||||
|
|
||||||
/* Is the ref point inside the text area ? */
|
rect.Inflate( aAccuracy );
|
||||||
wxPoint location = posref;
|
|
||||||
RotatePoint( &location, m_Pos, -m_Orient );
|
RotatePoint( &location, m_Pos, -m_Orient );
|
||||||
|
|
||||||
return rect.Inside ( location);
|
return rect.Inside( location );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
bool EDA_TextStruct::TextHitTest( const EDA_Rect& aRect, bool aContains, int aAccuracy ) const
|
||||||
* Function TextHitTest (overlayed)
|
|
||||||
* tests if the given EDA_Rect intersect this object.
|
|
||||||
* @param refArea the given EDA_Rect to test
|
|
||||||
* @return bool - true if a hit, else false
|
|
||||||
*/
|
|
||||||
/*********************************************************/
|
|
||||||
bool EDA_TextStruct::TextHitTest( EDA_Rect& refArea )
|
|
||||||
/*********************************************************/
|
|
||||||
{
|
{
|
||||||
if( refArea.Inside( m_Pos ) )
|
EDA_Rect rect = aRect;
|
||||||
return true;
|
|
||||||
return false;
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
if( aContains )
|
||||||
|
return rect.Inside( GetTextBox( -1 ) );
|
||||||
|
|
||||||
|
return rect.Intersects( GetTextBox( -1 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
void EDA_TextStruct::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
|
void EDA_TextStruct::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
|
||||||
const wxPoint& aOffset, EDA_Colors aColor,
|
const wxPoint& aOffset, EDA_Colors aColor,
|
||||||
|
@ -523,13 +511,11 @@ void EDA_Rect::Move( const wxPoint& aMoveVector )
|
||||||
m_Pos += aMoveVector;
|
m_Pos += aMoveVector;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************/
|
|
||||||
bool EDA_Rect::Inside( const wxPoint& point )
|
|
||||||
/*******************************************/
|
|
||||||
|
|
||||||
/* Return TRUE if point is in Rect
|
/* Return TRUE if point is in Rect
|
||||||
* Accept rect size < 0
|
* Accept rect size < 0
|
||||||
*/
|
*/
|
||||||
|
bool EDA_Rect::Inside( const wxPoint& point ) const
|
||||||
{
|
{
|
||||||
int rel_posx = point.x - m_Pos.x;
|
int rel_posx = point.x - m_Pos.x;
|
||||||
int rel_posy = point.y - m_Pos.y;
|
int rel_posy = point.y - m_Pos.y;
|
||||||
|
@ -547,10 +533,16 @@ bool EDA_Rect::Inside( const wxPoint& point )
|
||||||
rel_posy += size.y;
|
rel_posy += size.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (rel_posx >= 0) && (rel_posy >= 0)
|
return (rel_posx >= 0) && (rel_posy >= 0) && ( rel_posy <= size.y) && ( rel_posx <= size.x);
|
||||||
&& ( rel_posy <= size.y)
|
}
|
||||||
&& ( rel_posx <= size.x)
|
|
||||||
;
|
|
||||||
|
bool EDA_Rect::Inside( const EDA_Rect& aRect ) const
|
||||||
|
{
|
||||||
|
wxRect rect = aRect;
|
||||||
|
wxRect me = wxRect();
|
||||||
|
|
||||||
|
return me.Contains( rect );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -710,4 +702,3 @@ void EDA_Rect::Merge( const wxPoint& aPoint )
|
||||||
end.y = MAX( end.y, aPoint.y );
|
end.y = MAX( end.y, aPoint.y );
|
||||||
SetEnd( end );
|
SetEnd( end );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ bool MARKER_BASE::HitTestMarker( const wxPoint& refPos )
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect MARKER_BASE::GetBoundingBoxMarker()
|
EDA_Rect MARKER_BASE::GetBoundingBoxMarker() const
|
||||||
{
|
{
|
||||||
wxSize realsize = m_ShapeBoundingBox.GetSize();
|
wxSize realsize = m_ShapeBoundingBox.GetSize();
|
||||||
wxPoint realposition = m_ShapeBoundingBox.GetPosition();
|
wxPoint realposition = m_ShapeBoundingBox.GetPosition();
|
||||||
|
@ -139,7 +139,7 @@ EDA_Rect MARKER_BASE::GetBoundingBoxMarker()
|
||||||
realposition.x *= m_ScalingFactor;
|
realposition.x *= m_ScalingFactor;
|
||||||
realposition.y *= m_ScalingFactor;
|
realposition.y *= m_ScalingFactor;
|
||||||
realposition += m_Pos;
|
realposition += m_Pos;
|
||||||
return EDA_Rect( m_Pos,realsize );
|
return EDA_Rect( m_Pos, realsize );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
|
@ -73,7 +73,7 @@ void ReAnnotatePowerSymbolsOnly( void )
|
||||||
|
|
||||||
for( ; DrawList != NULL; DrawList = DrawList->Next() )
|
for( ; DrawList != NULL; DrawList = DrawList->Next() )
|
||||||
{
|
{
|
||||||
if( DrawList->Type() != TYPE_SCH_COMPONENT )
|
if( DrawList->Type() != SCH_COMPONENT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) DrawList;
|
SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) DrawList;
|
||||||
|
@ -226,7 +226,7 @@ void SCH_EDIT_FRAME::DeleteAnnotation( bool aCurrentSheetOnly, bool aRedraw )
|
||||||
|
|
||||||
for( ; strct; strct = strct->Next() )
|
for( ; strct; strct = strct->Next() )
|
||||||
{
|
{
|
||||||
if( strct->Type() == TYPE_SCH_COMPONENT )
|
if( strct->Type() == SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
if( aCurrentSheetOnly )
|
if( aCurrentSheetOnly )
|
||||||
( (SCH_COMPONENT*) strct )->ClearAnnotation( m_CurrentSheet );
|
( (SCH_COMPONENT*) strct )->ClearAnnotation( m_CurrentSheet );
|
||||||
|
@ -368,7 +368,7 @@ int AddComponentsInSheetToList( std::vector <OBJ_CMP_TO_LIST>& aComponentsList,
|
||||||
|
|
||||||
for( ; DrawList != NULL; DrawList = DrawList->Next() )
|
for( ; DrawList != NULL; DrawList = DrawList->Next() )
|
||||||
{
|
{
|
||||||
if( DrawList->Type() == TYPE_SCH_COMPONENT )
|
if( DrawList->Type() == SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
DrawLibItem = (SCH_COMPONENT*) DrawList;
|
DrawLibItem = (SCH_COMPONENT*) DrawList;
|
||||||
Entry = CMP_LIBRARY::FindLibraryComponent( DrawLibItem->m_ChipName );
|
Entry = CMP_LIBRARY::FindLibraryComponent( DrawLibItem->m_ChipName );
|
||||||
|
@ -981,7 +981,7 @@ static bool SortItemByTimeStamp( const SCH_ITEM* item1, const SCH_ITEM* item2 )
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if( ii == 0 && ( item1->Type() != item2->Type() ) )
|
if( ii == 0 && ( item1->Type() != item2->Type() ) )
|
||||||
if( item1->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( item1->Type() == SCH_SHEET_T )
|
||||||
ii = -1;
|
ii = -1;
|
||||||
|
|
||||||
return ii < 0;
|
return ii < 0;
|
||||||
|
@ -1014,8 +1014,8 @@ int ReplaceDuplicatedTimeStamps()
|
||||||
|
|
||||||
while( item )
|
while( item )
|
||||||
{
|
{
|
||||||
if( ( item->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( ( item->Type() == SCH_SHEET_T )
|
||||||
|| ( item->Type() == TYPE_SCH_COMPONENT ) )
|
|| ( item->Type() == SCH_COMPONENT_T ) )
|
||||||
itemlist.push_back( item );
|
itemlist.push_back( item );
|
||||||
|
|
||||||
item = item->Next();
|
item = item->Next();
|
||||||
|
@ -1036,7 +1036,7 @@ int ReplaceDuplicatedTimeStamps()
|
||||||
|
|
||||||
// for a component, update its Time stamp and its paths
|
// for a component, update its Time stamp and its paths
|
||||||
// (m_PathsAndReferences field)
|
// (m_PathsAndReferences field)
|
||||||
if( item->Type() == TYPE_SCH_COMPONENT )
|
if( item->Type() == SCH_COMPONENT_T )
|
||||||
( (SCH_COMPONENT*) item )->SetTimeStamp( GetTimeStamp() );
|
( (SCH_COMPONENT*) item )->SetTimeStamp( GetTimeStamp() );
|
||||||
|
|
||||||
// for a sheet, update only its time stamp (annotation of its
|
// for a sheet, update only its time stamp (annotation of its
|
||||||
|
|
|
@ -49,7 +49,7 @@ bool SCH_EDIT_FRAME::FillFootprintFieldForAllInstancesofComponent( const wxStrin
|
||||||
DrawList = (SCH_ITEM*) sheet->LastDrawList();
|
DrawList = (SCH_ITEM*) sheet->LastDrawList();
|
||||||
for( ; (DrawList != NULL); DrawList = DrawList->Next() )
|
for( ; (DrawList != NULL); DrawList = DrawList->Next() )
|
||||||
{
|
{
|
||||||
if( DrawList->Type() != TYPE_SCH_COMPONENT )
|
if( DrawList->Type() != SCH_COMPONENT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Cmp = (SCH_COMPONENT*) DrawList;
|
Cmp = (SCH_COMPONENT*) DrawList;
|
||||||
|
|
|
@ -30,7 +30,7 @@ void MoveItemsInList( PICKED_ITEMS_LIST& aItemsList, const wxPoint aM
|
||||||
void RotateListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& Center );
|
void RotateListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& Center );
|
||||||
void Mirror_X_ListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint );
|
void Mirror_X_ListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint );
|
||||||
void MirrorListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& Center );
|
void MirrorListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& Center );
|
||||||
void DeleteItemsInList( WinEDA_DrawPanel* panel, PICKED_ITEMS_LIST& aItemsList );
|
void DeleteItemsInList( WinEDA_DrawPanel* panel, PICKED_ITEMS_LIST& aItemsList );
|
||||||
void DuplicateItemsInList( SCH_SCREEN* screen,
|
void DuplicateItemsInList( SCH_SCREEN* screen,
|
||||||
PICKED_ITEMS_LIST& aItemsList,
|
PICKED_ITEMS_LIST& aItemsList,
|
||||||
const wxPoint aMoveVector );
|
const wxPoint aMoveVector );
|
||||||
|
@ -233,7 +233,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BLOCK_DRAG: /* Drag */
|
case BLOCK_DRAG: /* Drag */
|
||||||
BreakSegmentOnJunction( (SCH_SCREEN*) GetScreen() );
|
BreakSegmentOnJunction( GetScreen() );
|
||||||
|
|
||||||
case BLOCK_ROTATE:
|
case BLOCK_ROTATE:
|
||||||
case BLOCK_MIRROR_X:
|
case BLOCK_MIRROR_X:
|
||||||
|
@ -371,7 +371,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC )
|
||||||
if( block->GetCount() )
|
if( block->GetCount() )
|
||||||
{
|
{
|
||||||
blockCmdFinished = false;
|
blockCmdFinished = false;
|
||||||
CollectStructsToDrag( (SCH_SCREEN*) GetScreen() );
|
CollectStructsToDrag( GetScreen() );
|
||||||
if( DrawPanel->ManageCurseur )
|
if( DrawPanel->ManageCurseur )
|
||||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||||
block->m_State = STATE_BLOCK_MOVE;
|
block->m_State = STATE_BLOCK_MOVE;
|
||||||
|
@ -571,7 +571,7 @@ void SCH_EDIT_FRAME::PasteListOfItems( wxDC* DC )
|
||||||
picklist.PushItem( picker );
|
picklist.PushItem( picker );
|
||||||
|
|
||||||
// Clear annotation and init new time stamp for the new components:
|
// Clear annotation and init new time stamp for the new components:
|
||||||
if( Struct->Type() == TYPE_SCH_COMPONENT )
|
if( Struct->Type() == SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
( (SCH_COMPONENT*) Struct )->m_TimeStamp = GetTimeStamp();
|
( (SCH_COMPONENT*) Struct )->m_TimeStamp = GetTimeStamp();
|
||||||
( (SCH_COMPONENT*) Struct )->ClearAnnotation( NULL );
|
( (SCH_COMPONENT*) Struct )->ClearAnnotation( NULL );
|
||||||
|
@ -625,7 +625,7 @@ static void CollectStructsToDrag( SCH_SCREEN* screen )
|
||||||
for( unsigned ii = 0; ii < pickedlist->GetCount(); ii++ )
|
for( unsigned ii = 0; ii < pickedlist->GetCount(); ii++ )
|
||||||
{
|
{
|
||||||
Struct = (SCH_ITEM*)(SCH_ITEM*) pickedlist->GetPickedItem( ii );
|
Struct = (SCH_ITEM*)(SCH_ITEM*) pickedlist->GetPickedItem( ii );
|
||||||
if( Struct->Type() == DRAW_SEGMENT_STRUCT_TYPE )
|
if( Struct->Type() == SCH_LINE_T )
|
||||||
{
|
{
|
||||||
SegmStruct = (SCH_LINE*) Struct;
|
SegmStruct = (SCH_LINE*) Struct;
|
||||||
if( !screen->m_BlockLocate.Inside( SegmStruct->m_Start ) )
|
if( !screen->m_BlockLocate.Inside( SegmStruct->m_Start ) )
|
||||||
|
@ -646,9 +646,9 @@ static void CollectStructsToDrag( SCH_SCREEN* screen )
|
||||||
for( unsigned ii = 0; ii < pickedlist->GetCount(); ii++ )
|
for( unsigned ii = 0; ii < pickedlist->GetCount(); ii++ )
|
||||||
{
|
{
|
||||||
Struct = (SCH_ITEM*)(SCH_ITEM*) pickedlist->GetPickedItem( ii );
|
Struct = (SCH_ITEM*)(SCH_ITEM*) pickedlist->GetPickedItem( ii );
|
||||||
if( ( Struct->Type() == TYPE_SCH_LABEL )
|
if( ( Struct->Type() == SCH_LABEL_T )
|
||||||
|| ( Struct->Type() == TYPE_SCH_GLOBALLABEL )
|
|| ( Struct->Type() == SCH_GLOBAL_LABEL_T )
|
||||||
|| ( Struct->Type() == TYPE_SCH_HIERLABEL ) )
|
|| ( Struct->Type() == SCH_HIERARCHICAL_LABEL_T ) )
|
||||||
{
|
{
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_TEXT*) Struct )
|
#define STRUCT ( (SCH_TEXT*) Struct )
|
||||||
|
@ -658,7 +658,7 @@ static void CollectStructsToDrag( SCH_SCREEN* screen )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Struct->Type() == TYPE_SCH_COMPONENT )
|
if( Struct->Type() == SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
// Add all pins of the selected component to list
|
// Add all pins of the selected component to list
|
||||||
LIB_PIN* pin;
|
LIB_PIN* pin;
|
||||||
|
@ -678,7 +678,7 @@ static void CollectStructsToDrag( SCH_SCREEN* screen )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Struct->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( Struct->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* sheet = (SCH_SHEET*) Struct;
|
SCH_SHEET* sheet = (SCH_SHEET*) Struct;
|
||||||
|
|
||||||
|
@ -689,7 +689,7 @@ static void CollectStructsToDrag( SCH_SCREEN* screen )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Struct->Type() == DRAW_BUSENTRY_STRUCT_TYPE )
|
if( Struct->Type() == SCH_BUS_ENTRY_T )
|
||||||
{
|
{
|
||||||
SCH_BUS_ENTRY* item = (SCH_BUS_ENTRY*) Struct;
|
SCH_BUS_ENTRY* item = (SCH_BUS_ENTRY*) Struct;
|
||||||
AddPickedItem( screen, item->m_Pos );
|
AddPickedItem( screen, item->m_Pos );
|
||||||
|
@ -718,7 +718,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
|
||||||
|
|
||||||
switch( Struct->Type() )
|
switch( Struct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_LINE*) Struct )
|
#define STRUCT ( (SCH_LINE*) Struct )
|
||||||
if( STRUCT->m_Start == position )
|
if( STRUCT->m_Start == position )
|
||||||
|
@ -750,12 +750,12 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
|
||||||
case TYPE_NOT_INIT:
|
case TYPE_NOT_INIT:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
if( Struct->m_Flags & SELECTED )
|
if( Struct->m_Flags & SELECTED )
|
||||||
break;
|
break;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_JUNCTION*) Struct )
|
#define STRUCT ( (SCH_JUNCTION*) Struct )
|
||||||
if( Struct->m_Flags & SELECTED )
|
if( Struct->m_Flags & SELECTED )
|
||||||
|
@ -765,7 +765,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
|
||||||
pickedlist->PushItem( picker );
|
pickedlist->PushItem( picker );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_LINE*) Struct )
|
#define STRUCT ( (SCH_LINE*) Struct )
|
||||||
if( Struct->m_Flags & SELECTED )
|
if( Struct->m_Flags & SELECTED )
|
||||||
|
@ -790,13 +790,13 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_LABEL*) Struct )
|
#define STRUCT ( (SCH_LABEL*) Struct )
|
||||||
if( Struct->m_Flags & SELECTED )
|
if( Struct->m_Flags & SELECTED )
|
||||||
|
@ -807,8 +807,8 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
|
||||||
pickedlist->PushItem( picker );
|
pickedlist->PushItem( picker );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_LABEL*) Struct )
|
#define STRUCT ( (SCH_LABEL*) Struct )
|
||||||
if( Struct->m_Flags & SELECTED )
|
if( Struct->m_Flags & SELECTED )
|
||||||
|
@ -819,12 +819,12 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
|
||||||
pickedlist->PushItem( picker );
|
pickedlist->PushItem( picker );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_MARKER*) Struct )
|
#define STRUCT ( (SCH_MARKER*) Struct )
|
||||||
if( Struct->m_Flags & SELECTED )
|
if( Struct->m_Flags & SELECTED )
|
||||||
|
@ -835,7 +835,7 @@ static void AddPickedItem( SCH_SCREEN* screen, wxPoint position )
|
||||||
pickedlist->PushItem( picker );
|
pickedlist->PushItem( picker );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_NO_CONNECT*) Struct )
|
#define STRUCT ( (SCH_NO_CONNECT*) Struct )
|
||||||
if( Struct->m_Flags & SELECTED )
|
if( Struct->m_Flags & SELECTED )
|
||||||
|
@ -890,11 +890,12 @@ static LIB_PIN* GetNextPinPosition( SCH_COMPONENT* aDrawLibItem,
|
||||||
|
|
||||||
for( ; Pin != NULL; Pin = Entry->GetNextPin( Pin ) )
|
for( ; Pin != NULL; Pin = Entry->GetNextPin( Pin ) )
|
||||||
{
|
{
|
||||||
wxASSERT( Pin->Type() == COMPONENT_PIN_DRAW_TYPE );
|
wxASSERT( Pin->Type() == LIB_PIN_T );
|
||||||
|
|
||||||
/* Skip items not used for this part */
|
/* Skip items not used for this part */
|
||||||
if( Multi && Pin->GetUnit() && ( Pin->GetUnit() != Multi ) )
|
if( Multi && Pin->GetUnit() && ( Pin->GetUnit() != Multi ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( convert && Pin->GetConvert() && ( Pin->GetConvert() != convert ) )
|
if( convert && Pin->GetConvert() && ( Pin->GetConvert() != convert ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ void BuildComponentsListFromSchematic( std::vector <OBJ_CMP_TO_LIST>& aList )
|
||||||
{
|
{
|
||||||
for( EDA_ITEM* schItem = path->LastDrawList(); schItem; schItem = schItem->Next() )
|
for( EDA_ITEM* schItem = path->LastDrawList(); schItem; schItem = schItem->Next() )
|
||||||
{
|
{
|
||||||
if( schItem->Type() != TYPE_SCH_COMPONENT )
|
if( schItem->Type() != SCH_COMPONENT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
SCH_COMPONENT* comp = (SCH_COMPONENT*) schItem;
|
SCH_COMPONENT* comp = (SCH_COMPONENT*) schItem;
|
||||||
|
@ -87,21 +87,21 @@ void GenListeGLabels( std::vector <LABEL_OBJECT>& aList )
|
||||||
{
|
{
|
||||||
switch( schItem->Type() )
|
switch( schItem->Type() )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
lable.m_LabelType = schItem->Type();
|
lable.m_LabelType = schItem->Type();
|
||||||
lable.m_SheetPath = *path;
|
lable.m_SheetPath = *path;
|
||||||
lable.m_Label = schItem;
|
lable.m_Label = schItem;
|
||||||
aList.push_back( lable );
|
aList.push_back( lable );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
{
|
{
|
||||||
SCH_SHEET* sheet = (SCH_SHEET*) schItem;
|
SCH_SHEET* sheet = (SCH_SHEET*) schItem;
|
||||||
|
|
||||||
BOOST_FOREACH( SCH_SHEET_PIN sheetLabel, sheet->GetSheetPins() )
|
BOOST_FOREACH( SCH_SHEET_PIN sheetLabel, sheet->GetSheetPins() )
|
||||||
{
|
{
|
||||||
lable.m_LabelType = DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE;
|
lable.m_LabelType = SCH_SHEET_LABEL_T;
|
||||||
lable.m_SheetPath = *path;
|
lable.m_SheetPath = *path;
|
||||||
lable.m_Label = &sheetLabel;
|
lable.m_Label = &sheetLabel;
|
||||||
aList.push_back( lable );
|
aList.push_back( lable );
|
||||||
|
@ -187,12 +187,12 @@ bool SortLabelsByValue( const LABEL_OBJECT& obj1, const LABEL_OBJECT& obj2 )
|
||||||
int ii;
|
int ii;
|
||||||
wxString* Text1, * Text2;
|
wxString* Text1, * Text2;
|
||||||
|
|
||||||
if( obj1.m_LabelType == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE )
|
if( obj1.m_LabelType == SCH_SHEET_LABEL_T )
|
||||||
Text1 = &( (SCH_SHEET_PIN*)(obj1.m_Label) )->m_Text;
|
Text1 = &( (SCH_SHEET_PIN*)(obj1.m_Label) )->m_Text;
|
||||||
else
|
else
|
||||||
Text1 = &( (SCH_TEXT*)(obj1.m_Label) )->m_Text;
|
Text1 = &( (SCH_TEXT*)(obj1.m_Label) )->m_Text;
|
||||||
|
|
||||||
if( obj2.m_LabelType == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE )
|
if( obj2.m_LabelType == SCH_SHEET_LABEL_T )
|
||||||
Text2 = &( (SCH_SHEET_PIN*)(obj2.m_Label) )->m_Text;
|
Text2 = &( (SCH_SHEET_PIN*)(obj2.m_Label) )->m_Text;
|
||||||
else
|
else
|
||||||
Text2 = &( (SCH_TEXT*)(obj2.m_Label) )->m_Text;
|
Text2 = &( (SCH_TEXT*)(obj2.m_Label) )->m_Text;
|
||||||
|
@ -221,12 +221,12 @@ bool SortLabelsBySheet( const LABEL_OBJECT& obj1, const LABEL_OBJECT& obj2 )
|
||||||
|
|
||||||
if( ii == 0 )
|
if( ii == 0 )
|
||||||
{
|
{
|
||||||
if( obj1.m_LabelType == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE )
|
if( obj1.m_LabelType == SCH_SHEET_LABEL_T )
|
||||||
Text1 = ( (SCH_SHEET_PIN*) obj1.m_Label )->m_Text;
|
Text1 = ( (SCH_SHEET_PIN*) obj1.m_Label )->m_Text;
|
||||||
else
|
else
|
||||||
Text1 = ( (SCH_TEXT*) obj1.m_Label )->m_Text;
|
Text1 = ( (SCH_TEXT*) obj1.m_Label )->m_Text;
|
||||||
|
|
||||||
if( obj2.m_LabelType == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE )
|
if( obj2.m_LabelType == SCH_SHEET_LABEL_T )
|
||||||
Text2 = ( (SCH_SHEET_PIN*) obj2.m_Label )->m_Text;
|
Text2 = ( (SCH_SHEET_PIN*) obj2.m_Label )->m_Text;
|
||||||
else
|
else
|
||||||
Text2 = ( (SCH_TEXT*) obj2.m_Label )->m_Text;
|
Text2 = ( (SCH_TEXT*) obj2.m_Label )->m_Text;
|
||||||
|
@ -282,11 +282,11 @@ int PrintListeGLabel( FILE* f, std::vector <LABEL_OBJECT>& aList )
|
||||||
{
|
{
|
||||||
switch( aList[ii].m_LabelType )
|
switch( aList[ii].m_LabelType )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
DrawTextItem = (SCH_LABEL*)(aList[ii].m_Label);
|
DrawTextItem = (SCH_LABEL*)(aList[ii].m_Label);
|
||||||
|
|
||||||
if( aList[ii].m_LabelType == TYPE_SCH_HIERLABEL )
|
if( aList[ii].m_LabelType == SCH_HIERARCHICAL_LABEL_T )
|
||||||
labeltype = wxT( "Hierarchical" );
|
labeltype = wxT( "Hierarchical" );
|
||||||
else
|
else
|
||||||
labeltype = wxT( "Global " );
|
labeltype = wxT( "Global " );
|
||||||
|
@ -302,7 +302,7 @@ int PrintListeGLabel( FILE* f, std::vector <LABEL_OBJECT>& aList )
|
||||||
fputs( CONV_TO_UTF8( msg ), f );
|
fputs( CONV_TO_UTF8( msg ), f );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
{
|
{
|
||||||
DrawSheetLabel = (SCH_SHEET_PIN*) aList[ii].m_Label;
|
DrawSheetLabel = (SCH_SHEET_PIN*) aList[ii].m_Label;
|
||||||
int jj = DrawSheetLabel->m_Shape;
|
int jj = DrawSheetLabel->m_Shape;
|
||||||
|
|
|
@ -46,8 +46,8 @@ static void RestoreOldWires( SCH_SCREEN* screen )
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
screen->RemoveFromDrawList( item );
|
screen->RemoveFromDrawList( item );
|
||||||
delete item;
|
delete item;
|
||||||
break;
|
break;
|
||||||
|
@ -133,8 +133,8 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type )
|
||||||
{
|
{
|
||||||
switch( GetScreen()->GetCurItem()->Type() )
|
switch( GetScreen()->GetCurItem()->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -147,8 +147,8 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type )
|
||||||
if( !newsegment ) /* first point : Create first wire or bus */
|
if( !newsegment ) /* first point : Create first wire or bus */
|
||||||
{
|
{
|
||||||
s_ConnexionStartPoint = cursorpos;
|
s_ConnexionStartPoint = cursorpos;
|
||||||
s_OldWiresList = ( (SCH_SCREEN*) GetScreen() )->ExtractWires( TRUE );
|
s_OldWiresList = GetScreen()->ExtractWires( TRUE );
|
||||||
( (SCH_SCREEN*) GetScreen() )->SchematicCleanUp( NULL );
|
GetScreen()->SchematicCleanUp( NULL );
|
||||||
|
|
||||||
switch( type )
|
switch( type )
|
||||||
{
|
{
|
||||||
|
@ -320,7 +320,7 @@ void SCH_EDIT_FRAME::EndSegment( wxDC* DC )
|
||||||
alt_end_point = lastsegment->m_Start;
|
alt_end_point = lastsegment->m_Start;
|
||||||
}
|
}
|
||||||
|
|
||||||
( (SCH_SCREEN*) GetScreen() )->SchematicCleanUp( NULL );
|
GetScreen()->SchematicCleanUp( NULL );
|
||||||
|
|
||||||
/* clear flags and find last segment entered, for repeat function */
|
/* clear flags and find last segment entered, for repeat function */
|
||||||
segment = (SCH_LINE*) GetScreen()->GetDrawItems();
|
segment = (SCH_LINE*) GetScreen()->GetDrawItems();
|
||||||
|
@ -360,8 +360,8 @@ void SCH_EDIT_FRAME::EndSegment( wxDC* DC )
|
||||||
{
|
{
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
DrawPanel->PostDirtyRect( item->GetBoundingBox() );
|
DrawPanel->PostDirtyRect( item->GetBoundingBox() );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -474,7 +474,7 @@ void SCH_EDIT_FRAME::DeleteCurrentSegment( wxDC* DC )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Cancel trace in progress */
|
/* Cancel trace in progress */
|
||||||
if( GetScreen()->GetCurItem()->Type() == DRAW_POLYLINE_STRUCT_TYPE )
|
if( GetScreen()->GetCurItem()->Type() == SCH_POLYLINE_T )
|
||||||
{
|
{
|
||||||
Show_Polyline_in_Ghost( DrawPanel, DC, FALSE );
|
Show_Polyline_in_Ghost( DrawPanel, DC, FALSE );
|
||||||
}
|
}
|
||||||
|
@ -483,7 +483,7 @@ void SCH_EDIT_FRAME::DeleteCurrentSegment( wxDC* DC )
|
||||||
DrawSegment( DrawPanel, DC, FALSE );
|
DrawSegment( DrawPanel, DC, FALSE );
|
||||||
}
|
}
|
||||||
|
|
||||||
EraseStruct( (SCH_ITEM*) GetScreen()->GetCurItem(), (SCH_SCREEN*) GetScreen() );
|
EraseStruct( (SCH_ITEM*) GetScreen()->GetCurItem(), GetScreen() );
|
||||||
DrawPanel->ManageCurseur = NULL;
|
DrawPanel->ManageCurseur = NULL;
|
||||||
GetScreen()->SetCurItem( NULL );
|
GetScreen()->SetCurItem( NULL );
|
||||||
}
|
}
|
||||||
|
@ -578,7 +578,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
||||||
|
|
||||||
switch( g_ItemToRepeat->Type() )
|
switch( g_ItemToRepeat->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_JUNCTION*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_JUNCTION*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
|
@ -586,7 +586,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
||||||
new_pos = STRUCT->m_Pos;
|
new_pos = STRUCT->m_Pos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_NO_CONNECT*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_NO_CONNECT*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
|
@ -594,7 +594,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
||||||
new_pos = STRUCT->m_Pos;
|
new_pos = STRUCT->m_Pos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_TEXT*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_TEXT*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
|
@ -604,7 +604,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_LABEL*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_LABEL*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
|
@ -614,7 +614,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_HIERLABEL*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_HIERLABEL*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
|
@ -623,7 +623,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
||||||
IncrementLabelMember( STRUCT->m_Text );
|
IncrementLabelMember( STRUCT->m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_GLOBALLABEL*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_GLOBALLABEL*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
|
@ -632,7 +632,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
||||||
IncrementLabelMember( STRUCT->m_Text );
|
IncrementLabelMember( STRUCT->m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_LINE*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_LINE*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
|
@ -641,7 +641,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
||||||
STRUCT->m_End += g_RepeatStep;
|
STRUCT->m_End += g_RepeatStep;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_BUS_ENTRY*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_BUS_ENTRY*) g_ItemToRepeat )
|
||||||
g_ItemToRepeat = STRUCT->GenCopy();
|
g_ItemToRepeat = STRUCT->GenCopy();
|
||||||
|
@ -649,7 +649,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
||||||
new_pos = STRUCT->m_Pos;
|
new_pos = STRUCT->m_Pos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT: // In repeat command the new component is put
|
case SCH_COMPONENT_T: // In repeat command the new component is put
|
||||||
// in move mode
|
// in move mode
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_COMPONENT*) g_ItemToRepeat )
|
#define STRUCT ( (SCH_COMPONENT*) g_ItemToRepeat )
|
||||||
|
@ -787,7 +787,7 @@ 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() != TYPE_SCH_TEXT)
|
if( item && (item->Type() != SCH_TEXT_T)
|
||||||
&& ( ( (SCH_GLOBALLABEL*) item )->m_Pos.x == pos.x )
|
&& ( ( (SCH_GLOBALLABEL*) item )->m_Pos.x == pos.x )
|
||||||
&& ( ( (SCH_GLOBALLABEL*) item )->m_Pos.y == pos.y ) )
|
&& ( ( (SCH_GLOBALLABEL*) item )->m_Pos.y == pos.y ) )
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -111,7 +111,7 @@ void SCH_EDIT_FRAME::SetBusEntryShape( wxDC* DC, SCH_BUS_ENTRY* BusEntry, int en
|
||||||
if( BusEntry == NULL )
|
if( BusEntry == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( BusEntry->Type() != DRAW_BUSENTRY_STRUCT_TYPE )
|
if( BusEntry->Type() != SCH_BUS_ENTRY_T )
|
||||||
{
|
{
|
||||||
DisplayError( this, wxT( "SetBusEntryType: Bad StructType" ) );
|
DisplayError( this, wxT( "SetBusEntryType: Bad StructType" ) );
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -313,10 +313,10 @@ void LIB_COMPONENT::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDc, const wxPoint& aO
|
||||||
if( aConvert && drawItem.m_Convert && ( drawItem.m_Convert != aConvert ) )
|
if( aConvert && drawItem.m_Convert && ( drawItem.m_Convert != aConvert ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( drawItem.Type() == COMPONENT_FIELD_DRAW_TYPE )
|
if( drawItem.Type() == LIB_FIELD_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( drawItem.Type() == COMPONENT_FIELD_DRAW_TYPE )
|
if( drawItem.Type() == LIB_FIELD_T )
|
||||||
{
|
{
|
||||||
drawItem.Draw( aPanel, aDc, aOffset, aColor, aDrawMode, (void*) NULL, aTransform );
|
drawItem.Draw( aPanel, aDc, aOffset, aColor, aDrawMode, (void*) NULL, aTransform );
|
||||||
}
|
}
|
||||||
|
@ -343,15 +343,15 @@ void LIB_COMPONENT::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDc, const wxPoint& aO
|
||||||
if( aConvert && drawItem.m_Convert && ( drawItem.m_Convert != aConvert ) )
|
if( aConvert && drawItem.m_Convert && ( drawItem.m_Convert != aConvert ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( !aDrawFields && drawItem.Type() == COMPONENT_FIELD_DRAW_TYPE )
|
if( !aDrawFields && drawItem.Type() == LIB_FIELD_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( drawItem.Type() == COMPONENT_PIN_DRAW_TYPE )
|
if( drawItem.Type() == LIB_PIN_T )
|
||||||
{
|
{
|
||||||
drawItem.Draw( aPanel, aDc, aOffset, aColor, aDrawMode, (void*) aShowPinText,
|
drawItem.Draw( aPanel, aDc, aOffset, aColor, aDrawMode, (void*) aShowPinText,
|
||||||
aTransform );
|
aTransform );
|
||||||
}
|
}
|
||||||
else if( drawItem.Type() == COMPONENT_FIELD_DRAW_TYPE )
|
else if( drawItem.Type() == LIB_FIELD_T )
|
||||||
{
|
{
|
||||||
drawItem.Draw( aPanel, aDc, aOffset, aColor, aDrawMode, (void*) NULL, aTransform );
|
drawItem.Draw( aPanel, aDc, aOffset, aColor, aDrawMode, (void*) NULL, aTransform );
|
||||||
}
|
}
|
||||||
|
@ -380,7 +380,7 @@ void LIB_COMPONENT::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDc, const wxPoint& aO
|
||||||
/* Enable this to draw the bounding box around the component to validate
|
/* Enable this to draw the bounding box around the component to validate
|
||||||
* the bounding box calculations. */
|
* the bounding box calculations. */
|
||||||
#if 0
|
#if 0
|
||||||
EDA_Rect bBox = GetBoundaryBox( aMulti, aConvert );
|
EDA_Rect bBox = GetBoundingBox( aMulti, aConvert );
|
||||||
GRRect( &aPanel->m_ClipBox, aDc, bBox.GetOrigin().x, bBox.GetOrigin().y,
|
GRRect( &aPanel->m_ClipBox, aDc, bBox.GetOrigin().x, bBox.GetOrigin().y,
|
||||||
bBox.GetEnd().x, bBox.GetEnd().y, 0, LIGHTMAGENTA );
|
bBox.GetEnd().x, bBox.GetEnd().y, 0, LIGHTMAGENTA );
|
||||||
#endif
|
#endif
|
||||||
|
@ -413,7 +413,7 @@ void LIB_COMPONENT::RemoveDrawItem( LIB_DRAW_ITEM* aItem, WinEDA_DrawPanel* aPan
|
||||||
|
|
||||||
// none of the MANDATOR_FIELDS may be removed in RAM, but they may be
|
// none of the MANDATOR_FIELDS may be removed in RAM, but they may be
|
||||||
// omitted when saving to disk.
|
// omitted when saving to disk.
|
||||||
if( aItem->Type() == COMPONENT_FIELD_DRAW_TYPE )
|
if( aItem->Type() == LIB_FIELD_T )
|
||||||
{
|
{
|
||||||
LIB_FIELD* field = (LIB_FIELD*) aItem;
|
LIB_FIELD* field = (LIB_FIELD*) aItem;
|
||||||
|
|
||||||
|
@ -498,7 +498,7 @@ void LIB_COMPONENT::GetPins( LIB_PIN_LIST& aList, int aUnit, int aConvert )
|
||||||
*/
|
*/
|
||||||
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
if( item.Type() != COMPONENT_PIN_DRAW_TYPE ) // we search pins only
|
if( item.Type() != LIB_PIN_T ) // we search pins only
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Unit filtering:
|
// Unit filtering:
|
||||||
|
@ -523,7 +523,7 @@ LIB_PIN* LIB_COMPONENT::GetPin( const wxString& aNumber, int aUnit, int aConvert
|
||||||
|
|
||||||
for( size_t i = 0; i < pinList.size(); i++ )
|
for( size_t i = 0; i < pinList.size(); i++ )
|
||||||
{
|
{
|
||||||
wxASSERT( pinList[i]->Type() == COMPONENT_PIN_DRAW_TYPE );
|
wxASSERT( pinList[i]->Type() == LIB_PIN_T );
|
||||||
|
|
||||||
pinList[i]->ReturnPinStringNum( pNumber );
|
pinList[i]->ReturnPinStringNum( pNumber );
|
||||||
|
|
||||||
|
@ -661,7 +661,7 @@ bool LIB_COMPONENT::Save( FILE* aFile )
|
||||||
|
|
||||||
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
if( item.Type() == COMPONENT_FIELD_DRAW_TYPE )
|
if( item.Type() == LIB_FIELD_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( !item.Save( aFile ) )
|
if( !item.Save( aFile ) )
|
||||||
|
@ -970,11 +970,11 @@ bool LIB_COMPONENT::LoadFootprints( FILE* aFile, char* aLine,
|
||||||
* Invisible fields are not take in account
|
* Invisible fields are not take in account
|
||||||
**/
|
**/
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
EDA_Rect LIB_COMPONENT::GetBoundaryBox( int aUnit, int aConvert )
|
EDA_Rect LIB_COMPONENT::GetBoundingBox( int aUnit, int aConvert ) const
|
||||||
{
|
{
|
||||||
EDA_Rect bBox( wxPoint( 0, 0 ), wxSize( 0, 0 ) );
|
EDA_Rect bBox( wxPoint( 0, 0 ), wxSize( 0, 0 ) );
|
||||||
|
|
||||||
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
BOOST_FOREACH( const LIB_DRAW_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
if( ( item.m_Unit > 0 ) && ( ( m_unitCount > 1 ) && ( aUnit > 0 )
|
if( ( item.m_Unit > 0 ) && ( ( m_unitCount > 1 ) && ( aUnit > 0 )
|
||||||
&& ( aUnit != item.m_Unit ) ) )
|
&& ( aUnit != item.m_Unit ) ) )
|
||||||
|
@ -983,7 +983,7 @@ EDA_Rect LIB_COMPONENT::GetBoundaryBox( int aUnit, int aConvert )
|
||||||
if( item.m_Convert > 0 && ( ( aConvert > 0 ) && ( aConvert != item.m_Convert ) ) )
|
if( item.m_Convert > 0 && ( ( aConvert > 0 ) && ( aConvert != item.m_Convert ) ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ( ( item.Type() == COMPONENT_FIELD_DRAW_TYPE ) && !( ( LIB_FIELD& ) item ).IsVisible() )
|
if ( ( item.Type() == LIB_FIELD_T ) && !( ( LIB_FIELD& ) item ).IsVisible() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
bBox.Merge( item.GetBoundingBox() );
|
bBox.Merge( item.GetBoundingBox() );
|
||||||
|
@ -999,7 +999,7 @@ void LIB_COMPONENT::deleteAllFields()
|
||||||
|
|
||||||
for( it = drawings.begin(); it!=drawings.end(); /* deleting */ )
|
for( it = drawings.begin(); it!=drawings.end(); /* deleting */ )
|
||||||
{
|
{
|
||||||
if( it->Type() != COMPONENT_FIELD_DRAW_TYPE )
|
if( it->Type() != LIB_FIELD_T )
|
||||||
{
|
{
|
||||||
++it;
|
++it;
|
||||||
continue;
|
continue;
|
||||||
|
@ -1051,7 +1051,7 @@ void LIB_COMPONENT::GetFields( LIB_FIELD_LIST& aList )
|
||||||
// Now grab all the rest of fields.
|
// Now grab all the rest of fields.
|
||||||
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
if( item.Type() != COMPONENT_FIELD_DRAW_TYPE )
|
if( item.Type() != LIB_FIELD_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
field = ( LIB_FIELD* ) &item;
|
field = ( LIB_FIELD* ) &item;
|
||||||
|
@ -1067,7 +1067,7 @@ LIB_FIELD* LIB_COMPONENT::GetField( int aId )
|
||||||
{
|
{
|
||||||
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
if( item.Type() != COMPONENT_FIELD_DRAW_TYPE )
|
if( item.Type() != LIB_FIELD_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
LIB_FIELD* field = ( LIB_FIELD* ) &item;
|
LIB_FIELD* field = ( LIB_FIELD* ) &item;
|
||||||
|
@ -1084,7 +1084,7 @@ LIB_FIELD* LIB_COMPONENT::FindField( const wxString& aFieldName )
|
||||||
{
|
{
|
||||||
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
if( item.Type() != COMPONENT_FIELD_DRAW_TYPE )
|
if( item.Type() != LIB_FIELD_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
LIB_FIELD* field = ( LIB_FIELD* ) &item;
|
LIB_FIELD* field = ( LIB_FIELD* ) &item;
|
||||||
|
@ -1205,7 +1205,7 @@ int LIB_COMPONENT::SelectItems( EDA_Rect& aRect, int aUnit, int aConvert, bool a
|
||||||
if( ( item.m_Unit && item.m_Unit != aUnit )
|
if( ( item.m_Unit && item.m_Unit != aUnit )
|
||||||
|| ( item.m_Convert && item.m_Convert != aConvert ) )
|
|| ( item.m_Convert && item.m_Convert != aConvert ) )
|
||||||
{
|
{
|
||||||
if( item.Type() != COMPONENT_PIN_DRAW_TYPE )
|
if( item.Type() != LIB_PIN_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Specific rules for pins.
|
// Specific rules for pins.
|
||||||
|
@ -1258,7 +1258,7 @@ void LIB_COMPONENT::DeleteSelectedItems()
|
||||||
// because they are not really graphic items
|
// because they are not really graphic items
|
||||||
while( item != drawings.end() )
|
while( item != drawings.end() )
|
||||||
{
|
{
|
||||||
if( item->Type() == COMPONENT_FIELD_DRAW_TYPE )
|
if( item->Type() == LIB_FIELD_T )
|
||||||
{
|
{
|
||||||
#if 0 // Set to 1 to allows fields deletion on block delete or other global command
|
#if 0 // Set to 1 to allows fields deletion on block delete or other global command
|
||||||
LIB_FIELD& field = ( LIB_FIELD& ) *item;
|
LIB_FIELD& field = ( LIB_FIELD& ) *item;
|
||||||
|
@ -1289,7 +1289,7 @@ void LIB_COMPONENT::CopySelectedItems( const wxPoint& aOffset )
|
||||||
LIB_DRAW_ITEM& item = drawings[ii];
|
LIB_DRAW_ITEM& item = drawings[ii];
|
||||||
// We *do not* copy fields because they are unique for the whole component
|
// We *do not* copy fields because they are unique for the whole component
|
||||||
// so skip them (do not duplicate) if they are flagged selected.
|
// so skip them (do not duplicate) if they are flagged selected.
|
||||||
if( item.Type() == COMPONENT_FIELD_DRAW_TYPE )
|
if( item.Type() == LIB_FIELD_T )
|
||||||
item.m_Selected = 0;
|
item.m_Selected = 0;
|
||||||
|
|
||||||
if( item.m_Selected == 0 )
|
if( item.m_Selected == 0 )
|
||||||
|
@ -1455,7 +1455,7 @@ void LIB_COMPONENT::SetConversion( bool aSetConvert )
|
||||||
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
/* Only pins are duplicated. */
|
/* Only pins are duplicated. */
|
||||||
if( item.Type() != COMPONENT_PIN_DRAW_TYPE )
|
if( item.Type() != LIB_PIN_T )
|
||||||
continue;
|
continue;
|
||||||
if( item.m_Convert == 1 )
|
if( item.m_Convert == 1 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -233,7 +233,7 @@ public:
|
||||||
|
|
||||||
wxArrayString& GetFootPrints() { return m_FootprintList; }
|
wxArrayString& GetFootPrints() { return m_FootprintList; }
|
||||||
|
|
||||||
EDA_Rect GetBoundaryBox( int aUnit, int aConvert );
|
EDA_Rect GetBoundingBox( int aUnit, int aConvert ) const;
|
||||||
|
|
||||||
bool SaveDateAndTime( FILE* aFile );
|
bool SaveDateAndTime( FILE* aFile );
|
||||||
bool LoadDateAndTime( char* aLine );
|
bool LoadDateAndTime( char* aLine );
|
||||||
|
@ -385,7 +385,7 @@ public:
|
||||||
*/
|
*/
|
||||||
LIB_PIN* GetNextPin( LIB_PIN* aItem = NULL )
|
LIB_PIN* GetNextPin( LIB_PIN* aItem = NULL )
|
||||||
{
|
{
|
||||||
return (LIB_PIN*) GetNextDrawItem( (LIB_DRAW_ITEM*) aItem, COMPONENT_PIN_DRAW_TYPE );
|
return (LIB_PIN*) GetNextDrawItem( (LIB_DRAW_ITEM*) aItem, LIB_PIN_T );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -34,30 +34,30 @@ void BreakSegmentOnJunction( SCH_SCREEN* Screen )
|
||||||
{
|
{
|
||||||
switch( DrawList->Type() )
|
switch( DrawList->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_JUNCTION*) DrawList )
|
#define STRUCT ( (SCH_JUNCTION*) DrawList )
|
||||||
BreakSegment( Screen, STRUCT->m_Pos );
|
BreakSegment( Screen, STRUCT->m_Pos );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_BUS_ENTRY*) DrawList )
|
#define STRUCT ( (SCH_BUS_ENTRY*) DrawList )
|
||||||
BreakSegment( Screen, STRUCT->m_Pos );
|
BreakSegment( Screen, STRUCT->m_Pos );
|
||||||
BreakSegment( Screen, STRUCT->m_End() );
|
BreakSegment( Screen, STRUCT->m_End() );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -79,7 +79,7 @@ void BreakSegment( SCH_SCREEN* aScreen, wxPoint aBreakpoint )
|
||||||
|
|
||||||
for( SCH_ITEM* DrawList = aScreen->GetDrawItems(); DrawList; DrawList = DrawList->Next() )
|
for( SCH_ITEM* DrawList = aScreen->GetDrawItems(); DrawList; DrawList = DrawList->Next() )
|
||||||
{
|
{
|
||||||
if( DrawList->Type() != DRAW_SEGMENT_STRUCT_TYPE )
|
if( DrawList->Type() != SCH_LINE_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
segment = (SCH_LINE*) DrawList;
|
segment = (SCH_LINE*) DrawList;
|
||||||
|
|
|
@ -59,13 +59,13 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( bool IncludePin )
|
||||||
/* Cross probing to pcbnew if a pin or a component is found */
|
/* Cross probing to pcbnew if a pin or a component is found */
|
||||||
switch( DrawStruct->Type() )
|
switch( DrawStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case SCH_FIELD_T:
|
||||||
case COMPONENT_FIELD_DRAW_TYPE:
|
case LIB_FIELD_T:
|
||||||
LibItem = (SCH_COMPONENT*) DrawStruct->GetParent();
|
LibItem = (SCH_COMPONENT*) DrawStruct->GetParent();
|
||||||
SendMessageToPCBNEW( DrawStruct, LibItem );
|
SendMessageToPCBNEW( DrawStruct, LibItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
Pin = LocateAnyPin( GetScreen()->GetDrawItems(), GetScreen()->m_Curseur, &LibItem );
|
Pin = LocateAnyPin( GetScreen()->GetDrawItems(), GetScreen()->m_Curseur, &LibItem );
|
||||||
if( Pin )
|
if( Pin )
|
||||||
break; // Priority is probing a pin first
|
break; // Priority is probing a pin first
|
||||||
|
@ -77,7 +77,7 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( bool IncludePin )
|
||||||
Pin = LocateAnyPin( GetScreen()->GetDrawItems(), GetScreen()->m_Curseur, &LibItem );
|
Pin = LocateAnyPin( GetScreen()->GetDrawItems(), GetScreen()->m_Curseur, &LibItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_PIN_DRAW_TYPE:
|
case LIB_PIN_T:
|
||||||
Pin = (LIB_PIN*) DrawStruct;
|
Pin = (LIB_PIN*) DrawStruct;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -87,6 +87,7 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( bool IncludePin )
|
||||||
/* Force display pin information (the previous display could be a
|
/* Force display pin information (the previous display could be a
|
||||||
* component info) */
|
* component info) */
|
||||||
Pin->DisplayInfo( this );
|
Pin->DisplayInfo( this );
|
||||||
|
|
||||||
if( LibItem )
|
if( LibItem )
|
||||||
AppendMsgPanel( LibItem->GetRef( GetSheet() ),
|
AppendMsgPanel( LibItem->GetRef( GetSheet() ),
|
||||||
LibItem->GetField( VALUE )->m_Text, DARKCYAN );
|
LibItem->GetField( VALUE )->m_Text, DARKCYAN );
|
||||||
|
@ -127,6 +128,7 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( const wxPoint& refpo
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), MARKERITEM );
|
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), MARKERITEM );
|
||||||
|
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
DrawStruct->DisplayInfo( this );
|
DrawStruct->DisplayInfo( this );
|
||||||
|
@ -134,6 +136,7 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( const wxPoint& refpo
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), NOCONNECTITEM );
|
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), NOCONNECTITEM );
|
||||||
|
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
ClearMsgPanel();
|
ClearMsgPanel();
|
||||||
|
@ -141,23 +144,24 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( const wxPoint& refpo
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), JUNCTIONITEM );
|
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), JUNCTIONITEM );
|
||||||
|
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
ClearMsgPanel();
|
ClearMsgPanel();
|
||||||
return DrawStruct;
|
return DrawStruct;
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawStruct = (SCH_ITEM*) PickStruct( refpoint,
|
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(),
|
||||||
GetScreen(), WIREITEM | BUSITEM |
|
WIREITEM | BUSITEM | RACCORDITEM );
|
||||||
RACCORDITEM );
|
|
||||||
if( DrawStruct ) // We have found a wire: Search for a connected pin at
|
if( DrawStruct ) // We have found a wire: Search for a connected pin at the same location
|
||||||
// the same location
|
|
||||||
{
|
{
|
||||||
Pin = LocateAnyPin( (SCH_ITEM*) m_CurrentSheet->LastDrawList(),
|
Pin = LocateAnyPin( (SCH_ITEM*) m_CurrentSheet->LastDrawList(), refpoint, &LibItem );
|
||||||
refpoint, &LibItem );
|
|
||||||
if( Pin )
|
if( Pin )
|
||||||
{
|
{
|
||||||
Pin->DisplayInfo( this );
|
Pin->DisplayInfo( this );
|
||||||
|
|
||||||
if( LibItem )
|
if( LibItem )
|
||||||
AppendMsgPanel( LibItem->GetRef( GetSheet() ),
|
AppendMsgPanel( LibItem->GetRef( GetSheet() ),
|
||||||
LibItem->GetField( VALUE )->m_Text, DARKCYAN );
|
LibItem->GetField( VALUE )->m_Text, DARKCYAN );
|
||||||
|
@ -169,6 +173,7 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( const wxPoint& refpo
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), FIELDCMPITEM );
|
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), FIELDCMPITEM );
|
||||||
|
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
SCH_FIELD* Field = (SCH_FIELD*) DrawStruct;
|
SCH_FIELD* Field = (SCH_FIELD*) DrawStruct;
|
||||||
|
@ -179,6 +184,7 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( const wxPoint& refpo
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), LABELITEM | TEXTITEM );
|
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), LABELITEM | TEXTITEM );
|
||||||
|
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
ClearMsgPanel();
|
ClearMsgPanel();
|
||||||
|
@ -186,11 +192,12 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( const wxPoint& refpo
|
||||||
}
|
}
|
||||||
|
|
||||||
/* search for a pin */
|
/* search for a pin */
|
||||||
Pin = LocateAnyPin( (SCH_ITEM*) m_CurrentSheet->LastDrawList(), refpoint,
|
Pin = LocateAnyPin( (SCH_ITEM*) m_CurrentSheet->LastDrawList(), refpoint, &LibItem );
|
||||||
&LibItem );
|
|
||||||
if( Pin )
|
if( Pin )
|
||||||
{
|
{
|
||||||
Pin->DisplayInfo( this );
|
Pin->DisplayInfo( this );
|
||||||
|
|
||||||
if( LibItem )
|
if( LibItem )
|
||||||
AppendMsgPanel( LibItem->GetRef( GetSheet() ),
|
AppendMsgPanel( LibItem->GetRef( GetSheet() ),
|
||||||
LibItem->GetField( VALUE )->m_Text, DARKCYAN );
|
LibItem->GetField( VALUE )->m_Text, DARKCYAN );
|
||||||
|
@ -199,15 +206,17 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( const wxPoint& refpo
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), LIBITEM );
|
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), LIBITEM );
|
||||||
|
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*) GetScreen() );
|
DrawStruct = LocateSmallestComponent( GetScreen() );
|
||||||
LibItem = (SCH_COMPONENT*) DrawStruct;
|
LibItem = (SCH_COMPONENT*) DrawStruct;
|
||||||
LibItem->DisplayInfo( this );
|
LibItem->DisplayInfo( this );
|
||||||
return DrawStruct;
|
return DrawStruct;
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), SHEETITEM );
|
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), SHEETITEM );
|
||||||
|
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
( (SCH_SHEET*) DrawStruct )->DisplayInfo( this );
|
( (SCH_SHEET*) DrawStruct )->DisplayInfo( this );
|
||||||
|
@ -215,6 +224,7 @@ SCH_ITEM* SCH_EDIT_FRAME::SchematicGeneralLocateAndDisplay( const wxPoint& refpo
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), SEARCHALL );
|
DrawStruct = (SCH_ITEM*) PickStruct( refpoint, GetScreen(), SEARCHALL );
|
||||||
|
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
return DrawStruct;
|
return DrawStruct;
|
||||||
|
|
|
@ -46,6 +46,7 @@ void RemoteCommand( const char* cmdline )
|
||||||
|
|
||||||
idcmd = strtok( line, " \n\r" );
|
idcmd = strtok( line, " \n\r" );
|
||||||
text = strtok( NULL, "\"\n\r" );
|
text = strtok( NULL, "\"\n\r" );
|
||||||
|
|
||||||
if( (idcmd == NULL) || (text == NULL) )
|
if( (idcmd == NULL) || (text == NULL) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -56,6 +57,7 @@ void RemoteCommand( const char* cmdline )
|
||||||
|
|
||||||
/* look for a complement */
|
/* look for a complement */
|
||||||
idcmd = strtok( NULL, " \n\r" );
|
idcmd = strtok( NULL, " \n\r" );
|
||||||
|
|
||||||
if( idcmd == NULL ) // component only
|
if( idcmd == NULL ) // component only
|
||||||
{
|
{
|
||||||
frame->FindComponentAndItem( part_ref, true, 0, wxEmptyString, false );
|
frame->FindComponentAndItem( part_ref, true, 0, wxEmptyString, false );
|
||||||
|
@ -63,6 +65,7 @@ void RemoteCommand( const char* cmdline )
|
||||||
}
|
}
|
||||||
|
|
||||||
text = strtok( NULL, "\"\n\r" );
|
text = strtok( NULL, "\"\n\r" );
|
||||||
|
|
||||||
if( text == NULL )
|
if( text == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -103,8 +106,8 @@ void SCH_EDIT_FRAME::SendMessageToPCBNEW( EDA_ITEM* objectToSync, SCH_COMPONENT*
|
||||||
/* Cross probing to pcbnew if a pin or a component is found */
|
/* Cross probing to pcbnew if a pin or a component is found */
|
||||||
switch( objectToSync->Type() )
|
switch( objectToSync->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case SCH_FIELD_T:
|
||||||
case COMPONENT_FIELD_DRAW_TYPE:
|
case LIB_FIELD_T:
|
||||||
{
|
{
|
||||||
if( LibItem == NULL )
|
if( LibItem == NULL )
|
||||||
break;
|
break;
|
||||||
|
@ -114,13 +117,13 @@ void SCH_EDIT_FRAME::SendMessageToPCBNEW( EDA_ITEM* objectToSync, SCH_COMPONENT*
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
LibItem = (SCH_COMPONENT*) objectToSync;
|
LibItem = (SCH_COMPONENT*) objectToSync;
|
||||||
sprintf( Line, "$PART: %s", CONV_TO_UTF8( LibItem->GetField( REFERENCE )->m_Text ) );
|
sprintf( Line, "$PART: %s", CONV_TO_UTF8( LibItem->GetField( REFERENCE )->m_Text ) );
|
||||||
SendCommand( MSG_TO_PCB, Line );
|
SendCommand( MSG_TO_PCB, Line );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_PIN_DRAW_TYPE:
|
case LIB_PIN_T:
|
||||||
if( LibItem == NULL )
|
if( LibItem == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ static int CountConnectedItems( SCH_EDIT_FRAME* frame, SCH_ITEM* ListStruct, wxP
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
||||||
if( TstJunction && ( Struct->Type() == DRAW_JUNCTION_STRUCT_TYPE ) )
|
if( TstJunction && ( Struct->Type() == SCH_JUNCTION_T ) )
|
||||||
{
|
{
|
||||||
#define JUNCTION ( (SCH_JUNCTION*) Struct )
|
#define JUNCTION ( (SCH_JUNCTION*) Struct )
|
||||||
if( JUNCTION->m_Pos == pos )
|
if( JUNCTION->m_Pos == pos )
|
||||||
|
@ -52,11 +52,11 @@ static int CountConnectedItems( SCH_EDIT_FRAME* frame, SCH_ITEM* ListStruct, wxP
|
||||||
#undef JUNCTION
|
#undef JUNCTION
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Struct->Type() != DRAW_SEGMENT_STRUCT_TYPE )
|
if( Struct->Type() != SCH_LINE_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
#define SEGM ( (SCH_LINE*) Struct )
|
#define SEGM ( (SCH_LINE*) Struct )
|
||||||
if( SEGM->IsOneEndPointAt( pos ) )
|
if( SEGM->IsEndPoint( pos ) )
|
||||||
count++;
|
count++;
|
||||||
#undef SEGM
|
#undef SEGM
|
||||||
}
|
}
|
||||||
|
@ -81,20 +81,20 @@ static bool MarkConnected( SCH_EDIT_FRAME* frame, SCH_ITEM* ListStruct, SCH_LINE
|
||||||
{
|
{
|
||||||
if( Struct->m_Flags )
|
if( Struct->m_Flags )
|
||||||
continue;
|
continue;
|
||||||
if( Struct->Type() == DRAW_JUNCTION_STRUCT_TYPE )
|
if( Struct->Type() == SCH_JUNCTION_T )
|
||||||
{
|
{
|
||||||
#define JUNCTION ( (SCH_JUNCTION*) Struct )
|
#define JUNCTION ( (SCH_JUNCTION*) Struct )
|
||||||
if( segment->IsOneEndPointAt( JUNCTION->m_Pos ) )
|
if( segment->IsEndPoint( JUNCTION->m_Pos ) )
|
||||||
Struct->m_Flags |= CANDIDATE;
|
Struct->m_Flags |= CANDIDATE;
|
||||||
continue;
|
continue;
|
||||||
#undef JUNCTION
|
#undef JUNCTION
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Struct->Type() != DRAW_SEGMENT_STRUCT_TYPE )
|
if( Struct->Type() != SCH_LINE_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
#define SEGM ( (SCH_LINE*) Struct )
|
#define SEGM ( (SCH_LINE*) Struct )
|
||||||
if( segment->IsOneEndPointAt( SEGM->m_Start ) )
|
if( segment->IsEndPoint( SEGM->m_Start ) )
|
||||||
{
|
{
|
||||||
if( !frame->LocatePinEnd( ListStruct, SEGM->m_Start ) )
|
if( !frame->LocatePinEnd( ListStruct, SEGM->m_Start ) )
|
||||||
{
|
{
|
||||||
|
@ -102,7 +102,7 @@ static bool MarkConnected( SCH_EDIT_FRAME* frame, SCH_ITEM* ListStruct, SCH_LINE
|
||||||
MarkConnected( frame, ListStruct, SEGM );
|
MarkConnected( frame, ListStruct, SEGM );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( segment->IsOneEndPointAt( SEGM->m_End ) )
|
if( segment->IsEndPoint( SEGM->m_End ) )
|
||||||
{
|
{
|
||||||
if( !frame->LocatePinEnd( ListStruct, SEGM->m_End ) )
|
if( !frame->LocatePinEnd( ListStruct, SEGM->m_End ) )
|
||||||
{
|
{
|
||||||
|
@ -131,13 +131,13 @@ void SCH_EDIT_FRAME::DeleteConnection( bool DeleteFullConnection )
|
||||||
for( DelStruct = GetScreen()->GetDrawItems(); DelStruct != NULL; DelStruct = DelStruct->Next() )
|
for( DelStruct = GetScreen()->GetDrawItems(); DelStruct != NULL; DelStruct = DelStruct->Next() )
|
||||||
DelStruct->m_Flags = 0;
|
DelStruct->m_Flags = 0;
|
||||||
|
|
||||||
BreakSegmentOnJunction( (SCH_SCREEN*) GetScreen() );
|
BreakSegmentOnJunction( GetScreen() );
|
||||||
|
|
||||||
/* Locate all the wires, bus or junction under the mouse cursor, and put
|
/* Locate all the wires, bus or junction under the mouse cursor, and put
|
||||||
* them in a list of items to delete
|
* them in a list of items to delete
|
||||||
*/
|
*/
|
||||||
ITEM_PICKER picker(NULL, UR_DELETED);
|
ITEM_PICKER picker(NULL, UR_DELETED);
|
||||||
SCH_SCREEN* screen = (SCH_SCREEN*) GetScreen();
|
SCH_SCREEN* screen = GetScreen();
|
||||||
// Save the list entry point of this screen
|
// Save the list entry point of this screen
|
||||||
SCH_ITEM* savedItems = screen->GetDrawItems();
|
SCH_ITEM* savedItems = screen->GetDrawItems();
|
||||||
DelStruct = GetScreen()->GetDrawItems();
|
DelStruct = GetScreen()->GetDrawItems();
|
||||||
|
@ -171,7 +171,7 @@ void SCH_EDIT_FRAME::DeleteConnection( bool DeleteFullConnection )
|
||||||
|
|
||||||
#define SEGM ( (SCH_LINE*) DelStruct )
|
#define SEGM ( (SCH_LINE*) DelStruct )
|
||||||
|
|
||||||
if( DelStruct->Type() != DRAW_SEGMENT_STRUCT_TYPE )
|
if( DelStruct->Type() != SCH_LINE_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
MarkConnected( this, GetScreen()->GetDrawItems(), SEGM );
|
MarkConnected( this, GetScreen()->GetDrawItems(), SEGM );
|
||||||
|
@ -190,7 +190,7 @@ void SCH_EDIT_FRAME::DeleteConnection( bool DeleteFullConnection )
|
||||||
if( !(DelStruct->m_Flags & CANDIDATE) )
|
if( !(DelStruct->m_Flags & CANDIDATE) )
|
||||||
continue; // Already seen
|
continue; // Already seen
|
||||||
|
|
||||||
if( DelStruct->Type() != DRAW_SEGMENT_STRUCT_TYPE )
|
if( DelStruct->Type() != SCH_LINE_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
DelStruct->m_Flags |= SKIP_STRUCT;
|
DelStruct->m_Flags |= SKIP_STRUCT;
|
||||||
|
@ -207,11 +207,11 @@ void SCH_EDIT_FRAME::DeleteConnection( bool DeleteFullConnection )
|
||||||
if( ( removed_struct->m_Flags & STRUCT_DELETED ) == 0 )
|
if( ( removed_struct->m_Flags & STRUCT_DELETED ) == 0 )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( removed_struct->Type() != DRAW_SEGMENT_STRUCT_TYPE )
|
if( removed_struct->Type() != SCH_LINE_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
#define WIRE ( (SCH_LINE*) removed_struct )
|
#define WIRE ( (SCH_LINE*) removed_struct )
|
||||||
if( WIRE->IsOneEndPointAt( SEGM->m_Start ) )
|
if( WIRE->IsEndPoint( SEGM->m_Start ) )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,9 +228,9 @@ void SCH_EDIT_FRAME::DeleteConnection( bool DeleteFullConnection )
|
||||||
{
|
{
|
||||||
if( ( removed_struct->m_Flags & STRUCT_DELETED ) == 0 )
|
if( ( removed_struct->m_Flags & STRUCT_DELETED ) == 0 )
|
||||||
continue;
|
continue;
|
||||||
if( removed_struct->Type() != DRAW_SEGMENT_STRUCT_TYPE )
|
if( removed_struct->Type() != SCH_LINE_T )
|
||||||
continue;
|
continue;
|
||||||
if( WIRE->IsOneEndPointAt( SEGM->m_End ) )
|
if( WIRE->IsEndPoint( SEGM->m_End ) )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,7 +265,7 @@ void SCH_EDIT_FRAME::DeleteConnection( bool DeleteFullConnection )
|
||||||
if( !(DelStruct->m_Flags & CANDIDATE) )
|
if( !(DelStruct->m_Flags & CANDIDATE) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( DelStruct->Type() == DRAW_JUNCTION_STRUCT_TYPE )
|
if( DelStruct->Type() == SCH_JUNCTION_T )
|
||||||
{
|
{
|
||||||
#define JUNCTION ( (SCH_JUNCTION*) DelStruct )
|
#define JUNCTION ( (SCH_JUNCTION*) DelStruct )
|
||||||
count = CountConnectedItems( this, GetScreen()->GetDrawItems(),
|
count = CountConnectedItems( this, GetScreen()->GetDrawItems(),
|
||||||
|
@ -291,7 +291,7 @@ void SCH_EDIT_FRAME::DeleteConnection( bool DeleteFullConnection )
|
||||||
if( DelStruct->m_Flags & STRUCT_DELETED )
|
if( DelStruct->m_Flags & STRUCT_DELETED )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( DelStruct->Type() != TYPE_SCH_LABEL )
|
if( DelStruct->Type() != SCH_LABEL_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
GetScreen()->m_Curseur = ( (SCH_TEXT*) DelStruct )->m_Pos;
|
GetScreen()->m_Curseur = ( (SCH_TEXT*) DelStruct )->m_Pos;
|
||||||
|
@ -383,7 +383,7 @@ bool LocateAndDeleteItem( SCH_EDIT_FRAME* frame, wxDC* DC )
|
||||||
* Screen = pointer on the screen of belonging
|
* Screen = pointer on the screen of belonging
|
||||||
*
|
*
|
||||||
* Note:
|
* Note:
|
||||||
* DRAW_SHEET_STRUCT_TYPE structures for the screen and structures
|
* SCH_SHEET_T structures for the screen and structures
|
||||||
* Corresponding keys are not.
|
* Corresponding keys are not.
|
||||||
* They must be treated separately
|
* They must be treated separately
|
||||||
*/
|
*/
|
||||||
|
@ -399,7 +399,7 @@ void EraseStruct( SCH_ITEM* DrawStruct, SCH_SCREEN* Screen )
|
||||||
|
|
||||||
Screen->SetModify();
|
Screen->SetModify();
|
||||||
|
|
||||||
if( DrawStruct->Type() == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE )
|
if( DrawStruct->Type() == SCH_SHEET_LABEL_T )
|
||||||
{
|
{
|
||||||
// This structure is attached to a sheet, get the parent sheet object.
|
// This structure is attached to a sheet, get the parent sheet object.
|
||||||
SCH_SHEET_PIN* sheetLabel = (SCH_SHEET_PIN*) DrawStruct;
|
SCH_SHEET_PIN* sheetLabel = (SCH_SHEET_PIN*) DrawStruct;
|
||||||
|
@ -448,7 +448,7 @@ void DeleteAllMarkers( int type )
|
||||||
{
|
{
|
||||||
NextStruct = DrawStruct->Next();
|
NextStruct = DrawStruct->Next();
|
||||||
|
|
||||||
if( DrawStruct->Type() != TYPE_SCH_MARKER )
|
if( DrawStruct->Type() != SCH_MARKER_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Marker = (SCH_MARKER*) DrawStruct;
|
Marker = (SCH_MARKER*) DrawStruct;
|
||||||
|
|
|
@ -30,7 +30,7 @@ void DeleteSubHierarchy( SCH_SHEET* FirstSheet, bool confirm_deletion )
|
||||||
if( FirstSheet == NULL )
|
if( FirstSheet == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( FirstSheet->Type() != DRAW_SHEET_STRUCT_TYPE )
|
if( FirstSheet->Type() != SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
DisplayError( NULL, wxT( "DeleteSubHierarchy error(): NOT a Sheet" ) );
|
DisplayError( NULL, wxT( "DeleteSubHierarchy error(): NOT a Sheet" ) );
|
||||||
return;
|
return;
|
||||||
|
@ -58,7 +58,7 @@ void DeleteSubHierarchy( SCH_SHEET* FirstSheet, bool confirm_deletion )
|
||||||
DrawStruct = EEDrawList;
|
DrawStruct = EEDrawList;
|
||||||
EEDrawList = EEDrawList->Next();
|
EEDrawList = EEDrawList->Next();
|
||||||
|
|
||||||
if( DrawStruct->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( DrawStruct->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
DeleteSubHierarchy( (SCH_SHEET*) DrawStruct, confirm_deletion );
|
DeleteSubHierarchy( (SCH_SHEET*) DrawStruct, confirm_deletion );
|
||||||
}
|
}
|
||||||
|
|
|
@ -628,7 +628,7 @@ int DIALOG_BUILD_BOM::PrintComponentsListByRef(
|
||||||
if( item == NULL )
|
if( item == NULL )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( item->Type() != TYPE_SCH_COMPONENT )
|
if( item->Type() != SCH_COMPONENT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
SCH_COMPONENT* comp = (SCH_COMPONENT*) item;
|
SCH_COMPONENT* comp = (SCH_COMPONENT*) item;
|
||||||
|
@ -882,7 +882,7 @@ int DIALOG_BUILD_BOM::PrintComponentsListByVal(
|
||||||
if( schItem == NULL )
|
if( schItem == NULL )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( schItem->Type() != TYPE_SCH_COMPONENT )
|
if( schItem->Type() != SCH_COMPONENT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
DrawLibItem = (SCH_COMPONENT*) schItem;
|
DrawLibItem = (SCH_COMPONENT*) schItem;
|
||||||
|
|
|
@ -32,7 +32,8 @@ void InstallCmpeditFrame( SCH_EDIT_FRAME* parent, wxPoint& pos, SCH_COMPONENT* a
|
||||||
return;
|
return;
|
||||||
|
|
||||||
parent->DrawPanel->m_IgnoreMouseEvents = TRUE;
|
parent->DrawPanel->m_IgnoreMouseEvents = TRUE;
|
||||||
if( aComponent->Type() != TYPE_SCH_COMPONENT )
|
|
||||||
|
if( aComponent->Type() != SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
DisplayError( parent,
|
DisplayError( parent,
|
||||||
wxT( "InstallCmpeditFrame() error: This item is not a component" ) );
|
wxT( "InstallCmpeditFrame() error: This item is not a component" ) );
|
||||||
|
|
|
@ -72,15 +72,15 @@ void DialogLabelEditor::InitDialog()
|
||||||
|
|
||||||
switch( m_CurrentText->Type() )
|
switch( m_CurrentText->Type() )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
SetTitle( _( "Global Label Properties" ) );
|
SetTitle( _( "Global Label Properties" ) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
SetTitle( _( "Hierarchal Label Properties" ) );
|
SetTitle( _( "Hierarchal Label Properties" ) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
SetTitle( _( "Label Properties" ) );
|
SetTitle( _( "Label Properties" ) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -150,8 +150,8 @@ void DialogLabelEditor::InitDialog()
|
||||||
m_Parent->m_InternalUnits );
|
m_Parent->m_InternalUnits );
|
||||||
m_TextSize->SetValue( msg );
|
m_TextSize->SetValue( msg );
|
||||||
|
|
||||||
if( m_CurrentText->Type() != TYPE_SCH_GLOBALLABEL
|
if( m_CurrentText->Type() != SCH_GLOBAL_LABEL_T
|
||||||
&& m_CurrentText->Type() != TYPE_SCH_HIERLABEL )
|
&& m_CurrentText->Type() != SCH_HIERARCHICAL_LABEL_T )
|
||||||
{
|
{
|
||||||
m_TextShape->Show( false );
|
m_TextShape->Show( false );
|
||||||
}
|
}
|
||||||
|
|
|
@ -319,7 +319,7 @@ void DIALOG_ERC::DisplayERC_MarkersList()
|
||||||
SCH_ITEM* DrawStruct = Sheet->LastDrawList();
|
SCH_ITEM* DrawStruct = Sheet->LastDrawList();
|
||||||
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() != TYPE_SCH_MARKER )
|
if( DrawStruct->Type() != SCH_MARKER_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
SCH_MARKER* Marker = (SCH_MARKER*) DrawStruct;
|
SCH_MARKER* Marker = (SCH_MARKER*) DrawStruct;
|
||||||
|
|
|
@ -48,10 +48,10 @@ void SCH_EDIT_FRAME::StartMoveTexte( SCH_TEXT* TextStruct, wxDC* DC )
|
||||||
|
|
||||||
switch( TextStruct->Type() )
|
switch( TextStruct->Type() )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
ItemInitialPosition = TextStruct->m_Pos;
|
ItemInitialPosition = TextStruct->m_Pos;
|
||||||
OldSize = TextStruct->m_Size;
|
OldSize = TextStruct->m_Size;
|
||||||
OldOrient = TextStruct->GetSchematicTextOrientation();
|
OldOrient = TextStruct->GetSchematicTextOrientation();
|
||||||
|
@ -95,10 +95,10 @@ void SCH_EDIT_FRAME::ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC )
|
||||||
|
|
||||||
switch( TextStruct->Type() )
|
switch( TextStruct->Type() )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
orient = TextStruct->GetSchematicTextOrientation() + 1;
|
orient = TextStruct->GetSchematicTextOrientation() + 1;
|
||||||
orient &= 3;
|
orient &= 3;
|
||||||
TextStruct->SetSchematicTextOrientation( orient );
|
TextStruct->SetSchematicTextOrientation( orient );
|
||||||
|
@ -195,10 +195,10 @@ static void ShowWhileMoving( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
||||||
/* redraw the text */
|
/* redraw the text */
|
||||||
switch( TextStruct->Type() )
|
switch( TextStruct->Type() )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
( (SCH_TEXT*) TextStruct )->m_Pos = panel->GetScreen()->m_Curseur;
|
( (SCH_TEXT*) TextStruct )->m_Pos = panel->GetScreen()->m_Curseur;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -238,10 +238,10 @@ static void ExitMoveTexte( WinEDA_DrawPanel* Panel, wxDC* DC )
|
||||||
{
|
{
|
||||||
switch( Struct->Type() )
|
switch( Struct->Type() )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
{
|
{
|
||||||
SCH_TEXT* Text = (SCH_TEXT*) Struct;
|
SCH_TEXT* Text = (SCH_TEXT*) Struct;
|
||||||
Text->m_Pos = ItemInitialPosition;
|
Text->m_Pos = ItemInitialPosition;
|
||||||
|
@ -273,19 +273,19 @@ void SCH_EDIT_FRAME::ConvertTextType( SCH_TEXT* Text, wxDC* DC, int newtype )
|
||||||
|
|
||||||
switch( newtype )
|
switch( newtype )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
newtext = new SCH_LABEL( Text->m_Pos, Text->m_Text );
|
newtext = new SCH_LABEL( Text->m_Pos, Text->m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
newtext = new SCH_GLOBALLABEL( Text->m_Pos, Text->m_Text );
|
newtext = new SCH_GLOBALLABEL( Text->m_Pos, Text->m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
newtext = new SCH_HIERLABEL( Text->m_Pos, Text->m_Text );
|
newtext = new SCH_HIERLABEL( Text->m_Pos, Text->m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
newtext = new SCH_TEXT( Text->m_Pos, Text->m_Text );
|
newtext = new SCH_TEXT( Text->m_Pos, Text->m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -182,7 +182,7 @@ void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
||||||
|
|
||||||
switch( aItem->Type() )
|
switch( aItem->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
{
|
{
|
||||||
SCH_POLYLINE* Struct = (SCH_POLYLINE*) aItem;
|
SCH_POLYLINE* Struct = (SCH_POLYLINE*) aItem;
|
||||||
GRMoveTo( Struct->m_PolyPoints[0].x + aOffset.x,
|
GRMoveTo( Struct->m_PolyPoints[0].x + aOffset.x,
|
||||||
|
@ -198,7 +198,7 @@ void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
{
|
{
|
||||||
SCH_LINE* Struct;
|
SCH_LINE* Struct;
|
||||||
Struct = (SCH_LINE*) aItem;
|
Struct = (SCH_LINE*) aItem;
|
||||||
|
@ -224,7 +224,7 @@ void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
{
|
{
|
||||||
SCH_BUS_ENTRY* Struct = (SCH_BUS_ENTRY*) aItem;
|
SCH_BUS_ENTRY* Struct = (SCH_BUS_ENTRY*) aItem;
|
||||||
wxPoint start = Struct->m_Pos + aOffset;
|
wxPoint start = Struct->m_Pos + aOffset;
|
||||||
|
@ -234,7 +234,7 @@ void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
{
|
{
|
||||||
SCH_JUNCTION* Struct;
|
SCH_JUNCTION* Struct;
|
||||||
Struct = (SCH_JUNCTION*) aItem;
|
Struct = (SCH_JUNCTION*) aItem;
|
||||||
|
@ -242,7 +242,7 @@ void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
{
|
{
|
||||||
SCH_TEXT* Struct;
|
SCH_TEXT* Struct;
|
||||||
Struct = (SCH_TEXT*) aItem;
|
Struct = (SCH_TEXT*) aItem;
|
||||||
|
@ -250,9 +250,9 @@ void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
{
|
{
|
||||||
SCH_LABEL* Struct;
|
SCH_LABEL* Struct;
|
||||||
Struct = (SCH_LABEL*) aItem;
|
Struct = (SCH_LABEL*) aItem;
|
||||||
|
@ -260,7 +260,7 @@ void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
{
|
{
|
||||||
SCH_NO_CONNECT* Struct;
|
SCH_NO_CONNECT* Struct;
|
||||||
Struct = (SCH_NO_CONNECT*) aItem;
|
Struct = (SCH_NO_CONNECT*) aItem;
|
||||||
|
@ -268,7 +268,7 @@ void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
{
|
{
|
||||||
SCH_COMPONENT* Component = (SCH_COMPONENT*) aItem;
|
SCH_COMPONENT* Component = (SCH_COMPONENT*) aItem;
|
||||||
|
|
||||||
|
@ -279,7 +279,7 @@ void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
{
|
{
|
||||||
SCH_SHEET* Struct = (SCH_SHEET*) aItem;
|
SCH_SHEET* Struct = (SCH_SHEET*) aItem;
|
||||||
GRRect( &aPanel->m_ClipBox,
|
GRRect( &aPanel->m_ClipBox,
|
||||||
|
@ -293,8 +293,8 @@ void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -174,13 +174,13 @@ int TestDuplicateSheetNames( bool aCreateMarker )
|
||||||
ref_item = ref_item->Next() )
|
ref_item = ref_item->Next() )
|
||||||
{
|
{
|
||||||
// search for a sheet;
|
// search for a sheet;
|
||||||
if( ref_item->Type() != DRAW_SHEET_STRUCT_TYPE )
|
if( ref_item->Type() != SCH_SHEET_T )
|
||||||
continue;
|
continue;
|
||||||
for( SCH_ITEM* item_to_test = ref_item->Next();
|
for( SCH_ITEM* item_to_test = ref_item->Next();
|
||||||
item_to_test != NULL;
|
item_to_test != NULL;
|
||||||
item_to_test = item_to_test->Next() )
|
item_to_test = item_to_test->Next() )
|
||||||
{
|
{
|
||||||
if( item_to_test->Type() != DRAW_SHEET_STRUCT_TYPE )
|
if( item_to_test->Type() != SCH_SHEET_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// We have found a second sheet: compare names
|
// We have found a second sheet: compare names
|
||||||
|
@ -532,7 +532,7 @@ bool WriteDiagnosticERC( const wxString& FullFileName )
|
||||||
DrawStruct = Sheet->LastDrawList();
|
DrawStruct = Sheet->LastDrawList();
|
||||||
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() != TYPE_SCH_MARKER )
|
if( DrawStruct->Type() != SCH_MARKER_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Marker = (SCH_MARKER*) DrawStruct;
|
Marker = (SCH_MARKER*) DrawStruct;
|
||||||
|
|
|
@ -31,7 +31,7 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event )
|
||||||
|
|
||||||
switch( curr_item->Type() )
|
switch( curr_item->Type() )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
{
|
{
|
||||||
SCH_COMPONENT* newitem;
|
SCH_COMPONENT* newitem;
|
||||||
newitem = ((SCH_COMPONENT*) curr_item)->GenCopy();
|
newitem = ((SCH_COMPONENT*) curr_item)->GenCopy();
|
||||||
|
@ -46,10 +46,10 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
{
|
{
|
||||||
SCH_TEXT* newitem = ((SCH_TEXT*) curr_item)->GenCopy();
|
SCH_TEXT* newitem = ((SCH_TEXT*) curr_item)->GenCopy();
|
||||||
newitem->m_Flags = IS_NEW;
|
newitem->m_Flags = IS_NEW;
|
||||||
|
|
|
@ -30,7 +30,7 @@ bool SCH_EDIT_FRAME::SaveEEFile( SCH_SCREEN* screen, int FileSave )
|
||||||
FILE* f;
|
FILE* f;
|
||||||
|
|
||||||
if( screen == NULL )
|
if( screen == NULL )
|
||||||
screen = (SCH_SCREEN*) GetScreen();
|
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() )
|
if( screen->m_FileName.IsEmpty() )
|
||||||
|
@ -169,10 +169,12 @@ bool SCH_EDIT_FRAME::LoadOneEEProject( const wxString& FileName, bool IsNew )
|
||||||
{
|
{
|
||||||
SAFE_DELETE( g_RootSheet );
|
SAFE_DELETE( g_RootSheet );
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateScreens();
|
CreateScreens();
|
||||||
screen = (SCH_SCREEN*) GetScreen();
|
screen = GetScreen();
|
||||||
|
|
||||||
wxFileName fn = FullFileName;
|
wxFileName fn = FullFileName;
|
||||||
|
|
||||||
if( fn.IsRelative() )
|
if( fn.IsRelative() )
|
||||||
{
|
{
|
||||||
fn.MakeAbsolute();
|
fn.MakeAbsolute();
|
||||||
|
|
|
@ -46,12 +46,12 @@ void SCH_EDIT_FRAME::OnFindDrcMarker( wxFindDialogEvent& event )
|
||||||
if( event.GetFlags() & FR_CURRENT_SHEET_ONLY )
|
if( event.GetFlags() & FR_CURRENT_SHEET_ONLY )
|
||||||
{
|
{
|
||||||
sheetFoundIn = m_CurrentSheet;
|
sheetFoundIn = m_CurrentSheet;
|
||||||
lastMarker = (SCH_MARKER*) m_CurrentSheet->FindNextItem( TYPE_SCH_MARKER,
|
lastMarker = (SCH_MARKER*) m_CurrentSheet->FindNextItem( SCH_MARKER_T,
|
||||||
lastMarker, wrap );
|
lastMarker, wrap );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lastMarker = (SCH_MARKER*) schematic.FindNextItem( TYPE_SCH_MARKER, &sheetFoundIn,
|
lastMarker = (SCH_MARKER*) schematic.FindNextItem( SCH_MARKER_T, &sheetFoundIn,
|
||||||
lastMarker, wrap );
|
lastMarker, wrap );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ SCH_ITEM* SCH_EDIT_FRAME::FindComponentAndItem( const wxString& component_refere
|
||||||
for( ; ( DrawList != NULL ) && ( NotFound == true );
|
for( ; ( DrawList != NULL ) && ( NotFound == true );
|
||||||
DrawList = DrawList->Next() )
|
DrawList = DrawList->Next() )
|
||||||
{
|
{
|
||||||
if( DrawList->Type() == TYPE_SCH_COMPONENT )
|
if( DrawList->Type() == SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
SCH_COMPONENT* pSch;
|
SCH_COMPONENT* pSch;
|
||||||
pSch = (SCH_COMPONENT*) DrawList;
|
pSch = (SCH_COMPONENT*) DrawList;
|
||||||
|
|
|
@ -411,7 +411,7 @@ void SCH_EDIT_FRAME::StartMovePart( SCH_COMPONENT* Component, wxDC* DC )
|
||||||
if( Component == NULL )
|
if( Component == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( Component->Type() != TYPE_SCH_COMPONENT )
|
if( Component->Type() != SCH_COMPONENT_T )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( Component->m_Flags == 0 )
|
if( Component->m_Flags == 0 )
|
||||||
|
|
|
@ -201,7 +201,7 @@ void WinEDA_HierFrame::BuildSheetsTree( SCH_SHEET_PATH* list,
|
||||||
SCH_ITEM* schitem = list->LastDrawList();
|
SCH_ITEM* schitem = list->LastDrawList();
|
||||||
while( schitem && m_nbsheets < NB_MAX_SHEET )
|
while( schitem && m_nbsheets < NB_MAX_SHEET )
|
||||||
{
|
{
|
||||||
if( schitem->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( schitem->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* sheet = (SCH_SHEET*) schitem;
|
SCH_SHEET* sheet = (SCH_SHEET*) schitem;
|
||||||
m_nbsheets++;
|
m_nbsheets++;
|
||||||
|
|
|
@ -507,7 +507,7 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
}
|
}
|
||||||
if( DrawStruct && DrawStruct->IsNew() && ( m_ID_current_state == ID_BUS_BUTT ) )
|
if( DrawStruct && DrawStruct->IsNew() && ( m_ID_current_state == ID_BUS_BUTT ) )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() == DRAW_SEGMENT_STRUCT_TYPE )
|
if( DrawStruct->Type() == SCH_LINE_T )
|
||||||
{
|
{
|
||||||
SCH_LINE* segment = (SCH_LINE*) DrawStruct;
|
SCH_LINE* segment = (SCH_LINE*) DrawStruct;
|
||||||
if( segment->GetLayer() != LAYER_BUS )
|
if( segment->GetLayer() != LAYER_BUS )
|
||||||
|
@ -530,7 +530,7 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
}
|
}
|
||||||
if( DrawStruct && DrawStruct->IsNew() && ( m_ID_current_state == ID_WIRE_BUTT ) )
|
if( DrawStruct && DrawStruct->IsNew() && ( m_ID_current_state == ID_WIRE_BUTT ) )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() == DRAW_SEGMENT_STRUCT_TYPE )
|
if( DrawStruct->Type() == SCH_LINE_T )
|
||||||
{
|
{
|
||||||
SCH_LINE* segment = (SCH_LINE*) DrawStruct;
|
SCH_LINE* segment = (SCH_LINE*) DrawStruct;
|
||||||
if( segment->GetLayer() != LAYER_WIRE )
|
if( segment->GetLayer() != LAYER_WIRE )
|
||||||
|
@ -564,7 +564,7 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if( DrawStruct->Type() == TYPE_SCH_COMPONENT )
|
if( DrawStruct->Type() == SCH_COMPONENT_T )
|
||||||
DrawStruct = LocateSmallestComponent( GetScreen() );
|
DrawStruct = LocateSmallestComponent( GetScreen() );
|
||||||
|
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
|
@ -585,21 +585,21 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
|
|
||||||
switch( DrawStruct->Type() )
|
switch( DrawStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_SHEET_STRUCT_TYPE: //TODO allow sheet rotate on hotkey
|
case SCH_SHEET_T: //TODO allow sheet rotate on hotkey
|
||||||
//wxPostEvent( this, eventRotateSheet );
|
//wxPostEvent( this, eventRotateSheet );
|
||||||
break;
|
break;
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
wxPostEvent( this, eventRotateComponent );
|
wxPostEvent( this, eventRotateComponent );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
wxPostEvent( this, eventRotateText );
|
wxPostEvent( this, eventRotateText );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case SCH_FIELD_T:
|
||||||
wxPostEvent( this, eventRotateField );
|
wxPostEvent( this, eventRotateField );
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -616,7 +616,7 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
DrawStruct = LocateSmallestComponent( (SCH_SCREEN*) GetScreen() );
|
DrawStruct = LocateSmallestComponent( GetScreen() );
|
||||||
if( DrawStruct )
|
if( DrawStruct )
|
||||||
{
|
{
|
||||||
if( DrawStruct->m_Flags == 0 )
|
if( DrawStruct->m_Flags == 0 )
|
||||||
|
@ -675,11 +675,11 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
|
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
break;
|
break;
|
||||||
if( DrawStruct->Type() == TYPE_SCH_COMPONENT )
|
if( DrawStruct->Type() == SCH_COMPONENT_T )
|
||||||
DrawStruct = LocateSmallestComponent( GetScreen() );
|
DrawStruct = LocateSmallestComponent( GetScreen() );
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
break;
|
break;
|
||||||
if( DrawStruct->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( DrawStruct->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
// If it's a sheet, then check if a pinsheet is under the cursor
|
// If it's a sheet, then check if a pinsheet is under the cursor
|
||||||
SCH_SHEET_PIN* slabel = LocateSheetLabel( (SCH_SHEET*) DrawStruct,
|
SCH_SHEET_PIN* slabel = LocateSheetLabel( (SCH_SHEET*) DrawStruct,
|
||||||
|
@ -687,7 +687,7 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
if( slabel )
|
if( slabel )
|
||||||
DrawStruct = slabel;
|
DrawStruct = slabel;
|
||||||
}
|
}
|
||||||
if( DrawStruct->Type() == DRAW_JUNCTION_STRUCT_TYPE )
|
if( DrawStruct->Type() == SCH_JUNCTION_T )
|
||||||
{
|
{
|
||||||
// If it's a junction, pick the underlying wire instead
|
// If it's a junction, pick the underlying wire instead
|
||||||
DrawStruct = PickStruct( GetScreen()->m_Curseur, GetScreen(), WIREITEM );
|
DrawStruct = PickStruct( GetScreen()->m_Curseur, GetScreen(), WIREITEM );
|
||||||
|
@ -723,30 +723,30 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
{
|
{
|
||||||
// select the correct event for moving an schematic object
|
// select the correct event for moving an schematic object
|
||||||
// and add it to the event queue
|
// and add it to the event queue
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
wxPostEvent( this, eventMoveOrDragComponent );
|
wxPostEvent( this, eventMoveOrDragComponent );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
wxPostEvent( this, eventMoveOrDragComponent );
|
wxPostEvent( this, eventMoveOrDragComponent );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case SCH_FIELD_T:
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
if( HK_Descr->m_Idcommand != HK_DRAG )
|
if( HK_Descr->m_Idcommand != HK_DRAG )
|
||||||
wxPostEvent( this, eventMoveItem );
|
wxPostEvent( this, eventMoveItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
if( HK_Descr->m_Idcommand != HK_DRAG )
|
if( HK_Descr->m_Idcommand != HK_DRAG )
|
||||||
wxPostEvent( this, eventMovePinsheet );
|
wxPostEvent( this, eventMovePinsheet );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
if( ( (SCH_ITEM*) DrawStruct )->GetLayer() == LAYER_WIRE )
|
if( ( (SCH_ITEM*) DrawStruct )->GetLayer() == LAYER_WIRE )
|
||||||
wxPostEvent( this, eventDragWire );
|
wxPostEvent( this, eventDragWire );
|
||||||
break;
|
break;
|
||||||
|
@ -768,7 +768,7 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
LIBITEM | TEXTITEM | LABELITEM | SHEETITEM );
|
LIBITEM | TEXTITEM | LABELITEM | SHEETITEM );
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
break;
|
break;
|
||||||
if( DrawStruct->Type() == TYPE_SCH_COMPONENT )
|
if( DrawStruct->Type() == SCH_COMPONENT_T )
|
||||||
DrawStruct = LocateSmallestComponent( GetScreen() );
|
DrawStruct = LocateSmallestComponent( GetScreen() );
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
break;
|
break;
|
||||||
|
@ -781,19 +781,19 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
|
|
||||||
switch( DrawStruct->Type() )
|
switch( DrawStruct->Type() )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
InstallCmpeditFrame( this, MousePos, (SCH_COMPONENT*) DrawStruct );
|
InstallCmpeditFrame( this, MousePos, (SCH_COMPONENT*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
GetScreen()->SetCurItem( (SCH_ITEM*) DrawStruct );
|
GetScreen()->SetCurItem( (SCH_ITEM*) DrawStruct );
|
||||||
wxPostEvent( this, eventEditPinsheet );
|
wxPostEvent( this, eventEditPinsheet );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
EditSchematicText( (SCH_TEXT*) DrawStruct );
|
EditSchematicText( (SCH_TEXT*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -917,7 +917,7 @@ void LIB_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
|
|
||||||
case HK_REPEAT_LAST:
|
case HK_REPEAT_LAST:
|
||||||
if( m_lastDrawItem && (m_lastDrawItem->m_Flags == 0)
|
if( m_lastDrawItem && (m_lastDrawItem->m_Flags == 0)
|
||||||
&& ( m_lastDrawItem->Type() == COMPONENT_PIN_DRAW_TYPE ) )
|
&& ( m_lastDrawItem->Type() == LIB_PIN_T ) )
|
||||||
RepeatPinItem( DC, (LIB_PIN*) m_lastDrawItem );
|
RepeatPinItem( DC, (LIB_PIN*) m_lastDrawItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -928,21 +928,21 @@ void LIB_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
{
|
{
|
||||||
switch( m_drawItem->Type() )
|
switch( m_drawItem->Type() )
|
||||||
{
|
{
|
||||||
case COMPONENT_PIN_DRAW_TYPE:
|
case LIB_PIN_T:
|
||||||
cmd.SetId( ID_LIBEDIT_EDIT_PIN );
|
cmd.SetId( ID_LIBEDIT_EDIT_PIN );
|
||||||
GetEventHandler()->ProcessEvent( cmd );
|
GetEventHandler()->ProcessEvent( cmd );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_ARC_DRAW_TYPE:
|
case LIB_ARC_T:
|
||||||
case COMPONENT_CIRCLE_DRAW_TYPE:
|
case LIB_CIRCLE_T:
|
||||||
case COMPONENT_RECT_DRAW_TYPE:
|
case LIB_RECTANGLE_T:
|
||||||
case COMPONENT_POLYLINE_DRAW_TYPE:
|
case LIB_POLYLINE_T:
|
||||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
case LIB_TEXT_T:
|
||||||
cmd.SetId( ID_POPUP_LIBEDIT_BODY_EDIT_ITEM );
|
cmd.SetId( ID_POPUP_LIBEDIT_BODY_EDIT_ITEM );
|
||||||
GetEventHandler()->ProcessEvent( cmd );
|
GetEventHandler()->ProcessEvent( cmd );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_FIELD_DRAW_TYPE:
|
case LIB_FIELD_T:
|
||||||
cmd.SetId( ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM );
|
cmd.SetId( ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM );
|
||||||
GetEventHandler()->ProcessEvent( cmd );
|
GetEventHandler()->ProcessEvent( cmd );
|
||||||
break;
|
break;
|
||||||
|
@ -960,17 +960,17 @@ void LIB_EDIT_FRAME::OnHotKey( wxDC* DC, int hotkey, EDA_ITEM* DrawStruct )
|
||||||
{
|
{
|
||||||
switch( m_drawItem->Type() )
|
switch( m_drawItem->Type() )
|
||||||
{
|
{
|
||||||
case COMPONENT_PIN_DRAW_TYPE:
|
case LIB_PIN_T:
|
||||||
cmd.SetId( ID_LIBEDIT_ROTATE_PIN );
|
cmd.SetId( ID_LIBEDIT_ROTATE_PIN );
|
||||||
GetEventHandler()->ProcessEvent( cmd );
|
GetEventHandler()->ProcessEvent( cmd );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
case LIB_TEXT_T:
|
||||||
cmd.SetId( ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT );
|
cmd.SetId( ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT );
|
||||||
GetEventHandler()->ProcessEvent( cmd );
|
GetEventHandler()->ProcessEvent( cmd );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_FIELD_DRAW_TYPE:
|
case LIB_FIELD_T:
|
||||||
cmd.SetId( ID_POPUP_LIBEDIT_FIELD_ROTATE_ITEM );
|
cmd.SetId( ID_POPUP_LIBEDIT_FIELD_ROTATE_ITEM );
|
||||||
GetEventHandler()->ProcessEvent( cmd );
|
GetEventHandler()->ProcessEvent( cmd );
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -53,7 +53,7 @@ static wxPoint calcCenter( const wxPoint& A, const wxPoint& B, const wxPoint& C
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LIB_ARC::LIB_ARC( LIB_COMPONENT* aParent ) : LIB_DRAW_ITEM( COMPONENT_ARC_DRAW_TYPE, aParent )
|
LIB_ARC::LIB_ARC( LIB_COMPONENT* aParent ) : LIB_DRAW_ITEM( LIB_ARC_T, aParent )
|
||||||
{
|
{
|
||||||
m_Radius = 0;
|
m_Radius = 0;
|
||||||
m_t1 = 0;
|
m_t1 = 0;
|
||||||
|
@ -246,7 +246,7 @@ LIB_DRAW_ITEM* LIB_ARC::DoGenCopy()
|
||||||
|
|
||||||
int LIB_ARC::DoCompare( const LIB_DRAW_ITEM& aOther ) const
|
int LIB_ARC::DoCompare( const LIB_DRAW_ITEM& aOther ) const
|
||||||
{
|
{
|
||||||
wxASSERT( aOther.Type() == COMPONENT_ARC_DRAW_TYPE );
|
wxASSERT( aOther.Type() == LIB_ARC_T );
|
||||||
|
|
||||||
const LIB_ARC* tmp = ( LIB_ARC* ) &aOther;
|
const LIB_ARC* tmp = ( LIB_ARC* ) &aOther;
|
||||||
|
|
||||||
|
@ -427,7 +427,7 @@ void LIB_ARC::drawGraphic( WinEDA_DrawPanel* aPanel, wxDC* aDC, const wxPoint& a
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect LIB_ARC::GetBoundingBox()
|
EDA_Rect LIB_ARC::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
int minX, minY, maxX, maxY, angleStart, angleEnd;
|
int minX, minY, maxX, maxY, angleStart, angleEnd;
|
||||||
EDA_Rect rect;
|
EDA_Rect rect;
|
||||||
|
|
|
@ -96,7 +96,7 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform );
|
virtual bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform );
|
||||||
|
|
||||||
virtual EDA_Rect GetBoundingBox();
|
virtual EDA_Rect GetBoundingBox() const;
|
||||||
virtual void DisplayInfo( WinEDA_DrawFrame* frame );
|
virtual void DisplayInfo( WinEDA_DrawFrame* frame );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
|
|
||||||
LIB_BEZIER::LIB_BEZIER( LIB_COMPONENT* aParent ) :
|
LIB_BEZIER::LIB_BEZIER( LIB_COMPONENT* aParent ) :
|
||||||
LIB_DRAW_ITEM( COMPONENT_BEZIER_DRAW_TYPE, aParent )
|
LIB_DRAW_ITEM( LIB_BEZIER_T, aParent )
|
||||||
{
|
{
|
||||||
m_Fill = NO_FILL;
|
m_Fill = NO_FILL;
|
||||||
m_Width = 0;
|
m_Width = 0;
|
||||||
|
@ -129,7 +129,7 @@ LIB_DRAW_ITEM* LIB_BEZIER::DoGenCopy()
|
||||||
|
|
||||||
int LIB_BEZIER::DoCompare( const LIB_DRAW_ITEM& aOther ) const
|
int LIB_BEZIER::DoCompare( const LIB_DRAW_ITEM& aOther ) const
|
||||||
{
|
{
|
||||||
wxASSERT( aOther.Type() == COMPONENT_BEZIER_DRAW_TYPE );
|
wxASSERT( aOther.Type() == LIB_BEZIER_T );
|
||||||
|
|
||||||
const LIB_BEZIER* tmp = ( LIB_BEZIER* ) &aOther;
|
const LIB_BEZIER* tmp = ( LIB_BEZIER* ) &aOther;
|
||||||
|
|
||||||
|
@ -340,7 +340,7 @@ bool LIB_BEZIER::HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTra
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* @return the boundary box for this, in library coordinates
|
* @return the boundary box for this, in library coordinates
|
||||||
*/
|
*/
|
||||||
EDA_Rect LIB_BEZIER::GetBoundingBox()
|
EDA_Rect LIB_BEZIER::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
EDA_Rect rect;
|
EDA_Rect rect;
|
||||||
int xmin, xmax, ymin, ymax;
|
int xmin, xmax, ymin, ymax;
|
||||||
|
|
|
@ -67,7 +67,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* @return the boundary box for this, in library coordinates
|
* @return the boundary box for this, in library coordinates
|
||||||
*/
|
*/
|
||||||
virtual EDA_Rect GetBoundingBox();
|
virtual EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
|
|
||||||
LIB_CIRCLE::LIB_CIRCLE( LIB_COMPONENT* aParent ) :
|
LIB_CIRCLE::LIB_CIRCLE( LIB_COMPONENT* aParent ) :
|
||||||
LIB_DRAW_ITEM( COMPONENT_CIRCLE_DRAW_TYPE, aParent )
|
LIB_DRAW_ITEM( LIB_CIRCLE_T, aParent )
|
||||||
{
|
{
|
||||||
m_Radius = 0;
|
m_Radius = 0;
|
||||||
m_Fill = NO_FILL;
|
m_Fill = NO_FILL;
|
||||||
|
@ -124,7 +124,7 @@ LIB_DRAW_ITEM* LIB_CIRCLE::DoGenCopy()
|
||||||
|
|
||||||
int LIB_CIRCLE::DoCompare( const LIB_DRAW_ITEM& aOther ) const
|
int LIB_CIRCLE::DoCompare( const LIB_DRAW_ITEM& aOther ) const
|
||||||
{
|
{
|
||||||
wxASSERT( aOther.Type() == COMPONENT_CIRCLE_DRAW_TYPE );
|
wxASSERT( aOther.Type() == LIB_CIRCLE_T );
|
||||||
|
|
||||||
const LIB_CIRCLE* tmp = ( LIB_CIRCLE* ) &aOther;
|
const LIB_CIRCLE* tmp = ( LIB_CIRCLE* ) &aOther;
|
||||||
|
|
||||||
|
@ -239,7 +239,7 @@ void LIB_CIRCLE::drawGraphic( WinEDA_DrawPanel* aPanel, wxDC* aDC, const wxPoint
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect LIB_CIRCLE::GetBoundingBox()
|
EDA_Rect LIB_CIRCLE::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
EDA_Rect rect;
|
EDA_Rect rect;
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual int GetPenSize( );
|
virtual int GetPenSize( );
|
||||||
|
|
||||||
virtual EDA_Rect GetBoundingBox();
|
virtual EDA_Rect GetBoundingBox() const;
|
||||||
virtual void DisplayInfo( WinEDA_DrawFrame* aFrame );
|
virtual void DisplayInfo( WinEDA_DrawFrame* aFrame );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -227,10 +227,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* @return the boundary box for this, in library coordinates
|
* @return the boundary box for this, in library coordinates
|
||||||
*/
|
*/
|
||||||
virtual EDA_Rect GetBoundingBox()
|
virtual EDA_Rect GetBoundingBox() const { return EDA_ITEM::GetBoundingBox(); }
|
||||||
{
|
|
||||||
return EDA_ITEM::GetBoundingBox();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays basic info (type, part and convert) about item
|
* Displays basic info (type, part and convert) about item
|
||||||
|
|
|
@ -41,13 +41,13 @@
|
||||||
* others = free fields
|
* others = free fields
|
||||||
*/
|
*/
|
||||||
LIB_FIELD::LIB_FIELD(LIB_COMPONENT * aParent, int idfield ) :
|
LIB_FIELD::LIB_FIELD(LIB_COMPONENT * aParent, int idfield ) :
|
||||||
LIB_DRAW_ITEM( COMPONENT_FIELD_DRAW_TYPE, aParent )
|
LIB_DRAW_ITEM( LIB_FIELD_T, aParent )
|
||||||
{
|
{
|
||||||
Init( idfield );
|
Init( idfield );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LIB_FIELD::LIB_FIELD( int idfield ) : LIB_DRAW_ITEM( COMPONENT_FIELD_DRAW_TYPE, NULL )
|
LIB_FIELD::LIB_FIELD( int idfield ) : LIB_DRAW_ITEM( LIB_FIELD_T, NULL )
|
||||||
{
|
{
|
||||||
Init( idfield );
|
Init( idfield );
|
||||||
}
|
}
|
||||||
|
@ -444,7 +444,7 @@ void LIB_FIELD::Copy( LIB_FIELD* Target ) const
|
||||||
|
|
||||||
int LIB_FIELD::DoCompare( const LIB_DRAW_ITEM& other ) const
|
int LIB_FIELD::DoCompare( const LIB_DRAW_ITEM& other ) const
|
||||||
{
|
{
|
||||||
wxASSERT( other.Type() == COMPONENT_FIELD_DRAW_TYPE );
|
wxASSERT( other.Type() == LIB_FIELD_T );
|
||||||
|
|
||||||
const LIB_FIELD* tmp = ( LIB_FIELD* ) &other;
|
const LIB_FIELD* tmp = ( LIB_FIELD* ) &other;
|
||||||
|
|
||||||
|
@ -529,7 +529,7 @@ wxString LIB_FIELD::GetFullText( int unit )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect LIB_FIELD::GetBoundingBox()
|
EDA_Rect LIB_FIELD::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
EDA_Rect rect = GetTextBox();
|
EDA_Rect rect = GetTextBox();
|
||||||
rect.m_Pos.y *= -1;
|
rect.m_Pos.y *= -1;
|
||||||
|
|
|
@ -119,7 +119,7 @@ public:
|
||||||
* Return the bounding rectangle of the field text.
|
* Return the bounding rectangle of the field text.
|
||||||
* @return Bounding rectangle.
|
* @return Bounding rectangle.
|
||||||
*/
|
*/
|
||||||
virtual EDA_Rect GetBoundingBox();
|
virtual EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays info (type, part convert filed name and value)
|
* Displays info (type, part convert filed name and value)
|
||||||
|
|
|
@ -160,7 +160,7 @@ extern void PlotPinSymbol( PLOTTER* plotter, const wxPoint& pos,
|
||||||
|
|
||||||
|
|
||||||
LIB_PIN::LIB_PIN( LIB_COMPONENT * aParent ) :
|
LIB_PIN::LIB_PIN( LIB_COMPONENT * aParent ) :
|
||||||
LIB_DRAW_ITEM( COMPONENT_PIN_DRAW_TYPE, aParent )
|
LIB_DRAW_ITEM( LIB_PIN_T, aParent )
|
||||||
{
|
{
|
||||||
m_length = 300; /* default Pin len */
|
m_length = 300; /* default Pin len */
|
||||||
m_orientation = PIN_RIGHT; /* Pin orient: Up, Down, Left, Right */
|
m_orientation = PIN_RIGHT; /* Pin orient: Up, Down, Left, Right */
|
||||||
|
@ -1640,7 +1640,7 @@ LIB_DRAW_ITEM* LIB_PIN::DoGenCopy()
|
||||||
|
|
||||||
int LIB_PIN::DoCompare( const LIB_DRAW_ITEM& other ) const
|
int LIB_PIN::DoCompare( const LIB_DRAW_ITEM& other ) const
|
||||||
{
|
{
|
||||||
wxASSERT( other.Type() == COMPONENT_PIN_DRAW_TYPE );
|
wxASSERT( other.Type() == LIB_PIN_T );
|
||||||
|
|
||||||
const LIB_PIN* tmp = ( LIB_PIN* ) &other;
|
const LIB_PIN* tmp = ( LIB_PIN* ) &other;
|
||||||
|
|
||||||
|
@ -1771,7 +1771,7 @@ void LIB_PIN::DisplayInfo( WinEDA_DrawFrame* frame )
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* @return the boundary box for this, in schematic coordinates
|
* @return the boundary box for this, in schematic coordinates
|
||||||
*/
|
*/
|
||||||
EDA_Rect LIB_PIN::GetBoundingBox()
|
EDA_Rect LIB_PIN::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
wxPoint pt = m_position;
|
wxPoint pt = m_position;
|
||||||
|
|
||||||
|
|
|
@ -153,7 +153,9 @@ public:
|
||||||
virtual bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform );
|
virtual bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform );
|
||||||
|
|
||||||
virtual void DisplayInfo( WinEDA_DrawFrame* frame );
|
virtual void DisplayInfo( WinEDA_DrawFrame* frame );
|
||||||
virtual EDA_Rect GetBoundingBox();
|
|
||||||
|
virtual EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
wxPoint ReturnPinEndPoint() const;
|
wxPoint ReturnPinEndPoint() const;
|
||||||
|
|
||||||
int ReturnPinDrawOrient( const TRANSFORM& aTransform );
|
int ReturnPinDrawOrient( const TRANSFORM& aTransform );
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
|
|
||||||
LIB_POLYLINE::LIB_POLYLINE( LIB_COMPONENT* aParent ) :
|
LIB_POLYLINE::LIB_POLYLINE( LIB_COMPONENT* aParent ) :
|
||||||
LIB_DRAW_ITEM( COMPONENT_POLYLINE_DRAW_TYPE, aParent )
|
LIB_DRAW_ITEM( LIB_POLYLINE_T, aParent )
|
||||||
{
|
{
|
||||||
m_Fill = NO_FILL;
|
m_Fill = NO_FILL;
|
||||||
m_Width = 0;
|
m_Width = 0;
|
||||||
|
@ -132,7 +132,7 @@ LIB_DRAW_ITEM* LIB_POLYLINE::DoGenCopy()
|
||||||
|
|
||||||
int LIB_POLYLINE::DoCompare( const LIB_DRAW_ITEM& aOther ) const
|
int LIB_POLYLINE::DoCompare( const LIB_DRAW_ITEM& aOther ) const
|
||||||
{
|
{
|
||||||
wxASSERT( aOther.Type() == COMPONENT_POLYLINE_DRAW_TYPE );
|
wxASSERT( aOther.Type() == LIB_POLYLINE_T );
|
||||||
|
|
||||||
const LIB_POLYLINE* tmp = ( LIB_POLYLINE* ) &aOther;
|
const LIB_POLYLINE* tmp = ( LIB_POLYLINE* ) &aOther;
|
||||||
|
|
||||||
|
@ -358,7 +358,7 @@ bool LIB_POLYLINE::HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aT
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* @return the boundary box for this, in library coordinates
|
* @return the boundary box for this, in library coordinates
|
||||||
*/
|
*/
|
||||||
EDA_Rect LIB_POLYLINE::GetBoundingBox()
|
EDA_Rect LIB_POLYLINE::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
EDA_Rect rect;
|
EDA_Rect rect;
|
||||||
int xmin, xmax, ymin, ymax;
|
int xmin, xmax, ymin, ymax;
|
||||||
|
|
|
@ -81,7 +81,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* @return the boundary box for this, in library coordinates
|
* @return the boundary box for this, in library coordinates
|
||||||
*/
|
*/
|
||||||
virtual EDA_Rect GetBoundingBox();
|
virtual EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
|
|
||||||
LIB_RECTANGLE::LIB_RECTANGLE( LIB_COMPONENT* aParent ) :
|
LIB_RECTANGLE::LIB_RECTANGLE( LIB_COMPONENT* aParent ) :
|
||||||
LIB_DRAW_ITEM( COMPONENT_RECT_DRAW_TYPE, aParent )
|
LIB_DRAW_ITEM( LIB_RECTANGLE_T, aParent )
|
||||||
{
|
{
|
||||||
m_Width = 0;
|
m_Width = 0;
|
||||||
m_Fill = NO_FILL;
|
m_Fill = NO_FILL;
|
||||||
|
@ -90,7 +90,7 @@ LIB_DRAW_ITEM* LIB_RECTANGLE::DoGenCopy()
|
||||||
|
|
||||||
int LIB_RECTANGLE::DoCompare( const LIB_DRAW_ITEM& aOther ) const
|
int LIB_RECTANGLE::DoCompare( const LIB_DRAW_ITEM& aOther ) const
|
||||||
{
|
{
|
||||||
wxASSERT( aOther.Type() == COMPONENT_RECT_DRAW_TYPE );
|
wxASSERT( aOther.Type() == LIB_RECTANGLE_T );
|
||||||
|
|
||||||
const LIB_RECTANGLE* tmp = ( LIB_RECTANGLE* ) &aOther;
|
const LIB_RECTANGLE* tmp = ( LIB_RECTANGLE* ) &aOther;
|
||||||
|
|
||||||
|
@ -229,7 +229,7 @@ void LIB_RECTANGLE::DisplayInfo( WinEDA_DrawFrame* aFrame )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect LIB_RECTANGLE::GetBoundingBox()
|
EDA_Rect LIB_RECTANGLE::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
EDA_Rect rect;
|
EDA_Rect rect;
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,8 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual int GetPenSize( );
|
virtual int GetPenSize( );
|
||||||
|
|
||||||
virtual EDA_Rect GetBoundingBox();
|
virtual EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
virtual void DisplayInfo( WinEDA_DrawFrame* aFrame );
|
virtual void DisplayInfo( WinEDA_DrawFrame* aFrame );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
|
|
||||||
LIB_TEXT::LIB_TEXT(LIB_COMPONENT * aParent) :
|
LIB_TEXT::LIB_TEXT(LIB_COMPONENT * aParent) :
|
||||||
LIB_DRAW_ITEM( COMPONENT_GRAPHIC_TEXT_DRAW_TYPE, aParent ),
|
LIB_DRAW_ITEM( LIB_TEXT_T, aParent ),
|
||||||
EDA_TextStruct()
|
EDA_TextStruct()
|
||||||
{
|
{
|
||||||
m_Size = wxSize( 50, 50 );
|
m_Size = wxSize( 50, 50 );
|
||||||
|
@ -198,7 +198,7 @@ LIB_DRAW_ITEM* LIB_TEXT::DoGenCopy()
|
||||||
|
|
||||||
int LIB_TEXT::DoCompare( const LIB_DRAW_ITEM& other ) const
|
int LIB_TEXT::DoCompare( const LIB_DRAW_ITEM& other ) const
|
||||||
{
|
{
|
||||||
wxASSERT( other.Type() == COMPONENT_GRAPHIC_TEXT_DRAW_TYPE );
|
wxASSERT( other.Type() == LIB_TEXT_T );
|
||||||
|
|
||||||
const LIB_TEXT* tmp = ( LIB_TEXT* ) &other;
|
const LIB_TEXT* tmp = ( LIB_TEXT* ) &other;
|
||||||
|
|
||||||
|
@ -378,15 +378,12 @@ void LIB_TEXT::DisplayInfo( WinEDA_DrawFrame* frame )
|
||||||
/**
|
/**
|
||||||
* @return the boundary box for this, in schematic coordinates
|
* @return the boundary box for this, in schematic coordinates
|
||||||
*/
|
*/
|
||||||
EDA_Rect LIB_TEXT::GetBoundingBox()
|
EDA_Rect LIB_TEXT::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
/* remenber Y coordinates in lib are bottom to top, so we must
|
/* Y coordinates for LIB_ITEMS are bottom to top, so we must invert the Y position when
|
||||||
* negate the Y position befire calling GetTextBox() that works using top to bottom
|
* calling GetTextBox() that works using top to bottom Y axis orientation.
|
||||||
* Y axis orientation
|
|
||||||
*/
|
*/
|
||||||
NEGATE(m_Pos.y );
|
EDA_Rect rect = GetTextBox( -1, -1, true );
|
||||||
EDA_Rect rect = GetTextBox();
|
|
||||||
NEGATE(m_Pos.y ); // restore Y cooordinate for the graphic text
|
|
||||||
|
|
||||||
wxPoint orig = rect.GetOrigin();
|
wxPoint orig = rect.GetOrigin();
|
||||||
wxPoint end = rect.GetEnd();
|
wxPoint end = rect.GetEnd();
|
||||||
|
|
|
@ -98,7 +98,7 @@ public:
|
||||||
|
|
||||||
virtual void DisplayInfo( WinEDA_DrawFrame* aFrame );
|
virtual void DisplayInfo( WinEDA_DrawFrame* aFrame );
|
||||||
|
|
||||||
virtual EDA_Rect GetBoundingBox();
|
virtual EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
void Rotate();
|
void Rotate();
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ bool LibArchive( wxWindow* frame, const wxString& ArchFullFileName )
|
||||||
{
|
{
|
||||||
for( SCH_ITEM* SchItem = screen->GetDrawItems(); SchItem; SchItem = SchItem->Next() )
|
for( SCH_ITEM* SchItem = screen->GetDrawItems(); SchItem; SchItem = SchItem->Next() )
|
||||||
{
|
{
|
||||||
if( SchItem->Type() != TYPE_SCH_COMPONENT )
|
if( SchItem->Type() != SCH_COMPONENT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
SCH_COMPONENT* component = (SCH_COMPONENT*) SchItem;
|
SCH_COMPONENT* component = (SCH_COMPONENT*) SchItem;
|
||||||
|
|
|
@ -31,7 +31,7 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
{
|
{
|
||||||
switch( DrawEntry->Type() )
|
switch( DrawEntry->Type() )
|
||||||
{
|
{
|
||||||
case COMPONENT_PIN_DRAW_TYPE:
|
case LIB_PIN_T:
|
||||||
PlacePin( DC );
|
PlacePin( DC );
|
||||||
DrawEntry = NULL;
|
DrawEntry = NULL;
|
||||||
break;
|
break;
|
||||||
|
@ -113,7 +113,7 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
|
|
||||||
SaveCopyInUndoList( m_component );
|
SaveCopyInUndoList( m_component );
|
||||||
|
|
||||||
if( DrawEntry->Type() == COMPONENT_PIN_DRAW_TYPE )
|
if( DrawEntry->Type() == LIB_PIN_T )
|
||||||
DeletePin( DC, m_component, (LIB_PIN*) DrawEntry );
|
DeletePin( DC, m_component, (LIB_PIN*) DrawEntry );
|
||||||
else
|
else
|
||||||
m_component->RemoveDrawItem( DrawEntry, DrawPanel, DC );
|
m_component->RemoveDrawItem( DrawEntry, DrawPanel, DC );
|
||||||
|
@ -175,7 +175,7 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
|
|
||||||
switch( m_drawItem->Type() )
|
switch( m_drawItem->Type() )
|
||||||
{
|
{
|
||||||
case COMPONENT_PIN_DRAW_TYPE:
|
case LIB_PIN_T:
|
||||||
if( m_drawItem->m_Flags == 0 )
|
if( m_drawItem->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
|
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
|
||||||
|
@ -184,17 +184,16 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_ARC_DRAW_TYPE:
|
case LIB_ARC_T:
|
||||||
case COMPONENT_CIRCLE_DRAW_TYPE:
|
case LIB_CIRCLE_T:
|
||||||
case COMPONENT_RECT_DRAW_TYPE:
|
case LIB_RECTANGLE_T:
|
||||||
if( m_drawItem->m_Flags == 0 )
|
if( m_drawItem->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
EditGraphicSymbol( DC, m_drawItem );
|
EditGraphicSymbol( DC, m_drawItem );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_LINE_DRAW_TYPE:
|
case LIB_POLYLINE_T:
|
||||||
case COMPONENT_POLYLINE_DRAW_TYPE:
|
|
||||||
if( m_drawItem->m_Flags == 0 )
|
if( m_drawItem->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
EditGraphicSymbol( DC, m_drawItem );
|
EditGraphicSymbol( DC, m_drawItem );
|
||||||
|
@ -205,14 +204,14 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
case LIB_TEXT_T:
|
||||||
if( m_drawItem->m_Flags == 0 )
|
if( m_drawItem->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
EditSymbolText( DC, m_drawItem );
|
EditSymbolText( DC, m_drawItem );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_FIELD_DRAW_TYPE:
|
case LIB_FIELD_T:
|
||||||
if( m_drawItem->m_Flags == 0 )
|
if( m_drawItem->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
EditField( DC, (LIB_FIELD*) m_drawItem );
|
EditField( DC, (LIB_FIELD*) m_drawItem );
|
||||||
|
|
|
@ -74,189 +74,146 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu )
|
||||||
|
|
||||||
switch( DrawEntry->Type() )
|
switch( DrawEntry->Type() )
|
||||||
{
|
{
|
||||||
case COMPONENT_PIN_DRAW_TYPE:
|
case LIB_PIN_T:
|
||||||
AddMenusForPin( PopMenu, (LIB_PIN*) DrawEntry, this );
|
AddMenusForPin( PopMenu, (LIB_PIN*) DrawEntry, this );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_ARC_DRAW_TYPE:
|
case LIB_ARC_T:
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Move Arc" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Move Arc" ), s_Libedit_Hokeys_Descr,
|
||||||
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_arc_xpm );
|
||||||
msg, move_arc_xpm );
|
msg = AddHotkeyName( _( "Drag Arc Size" ), s_Libedit_Hokeys_Descr, HK_DRAG );
|
||||||
msg = AddHotkeyName( _( "Drag Arc Size" ), s_Libedit_Hokeys_Descr,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM, msg, move_arc_xpm );
|
||||||
HK_DRAG );
|
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM,
|
|
||||||
msg, move_arc_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
msg = AddHotkeyName( _( "Edit Arc Options" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Edit Arc Options" ), s_Libedit_Hokeys_Descr, HK_EDIT );
|
||||||
HK_EDIT );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, options_arc_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
|
|
||||||
msg, options_arc_xpm );
|
|
||||||
|
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Delete Arc" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Delete Arc" ), s_Libedit_Hokeys_Descr, HK_DELETE );
|
||||||
HK_DELETE );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_arc_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
|
||||||
msg, delete_arc_xpm );
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_CIRCLE_DRAW_TYPE:
|
case LIB_CIRCLE_T:
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Move Circle" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Move Circle" ), s_Libedit_Hokeys_Descr,
|
||||||
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_circle_xpm );
|
||||||
msg, move_circle_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Drag Circle Outline" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Drag Circle Outline" ), s_Libedit_Hokeys_Descr, HK_DRAG );
|
||||||
HK_DRAG );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM, msg, move_rectangle_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM,
|
|
||||||
msg, move_rectangle_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
msg = AddHotkeyName( _( "Edit Circle Options" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Edit Circle Options" ), s_Libedit_Hokeys_Descr, HK_EDIT );
|
||||||
HK_EDIT );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, options_circle_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
|
|
||||||
msg, options_circle_xpm );
|
|
||||||
|
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Delete Circle" ),
|
msg = AddHotkeyName( _( "Delete Circle" ), s_Libedit_Hokeys_Descr, HK_DELETE );
|
||||||
s_Libedit_Hokeys_Descr, HK_DELETE );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_circle_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
|
||||||
msg, delete_circle_xpm );
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_RECT_DRAW_TYPE:
|
case LIB_RECTANGLE_T:
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Move Rectangle" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Move Rectangle" ), s_Libedit_Hokeys_Descr,
|
||||||
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_rectangle_xpm );
|
||||||
msg, move_rectangle_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
msg = AddHotkeyName( _( "Edit Rectangle Options" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Edit Rectangle Options" ), s_Libedit_Hokeys_Descr, HK_EDIT );
|
||||||
HK_EDIT );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, options_rectangle_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
|
|
||||||
msg, options_rectangle_xpm );
|
|
||||||
|
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Drag Rectangle Edge" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Drag Rectangle Edge" ), s_Libedit_Hokeys_Descr, HK_DRAG );
|
||||||
HK_DRAG );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM, msg, move_rectangle_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM,
|
|
||||||
msg, move_rectangle_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Delete Rectangle" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Delete Rectangle" ), s_Libedit_Hokeys_Descr, HK_DELETE );
|
||||||
HK_DELETE );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_rectangle_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
|
||||||
msg, delete_rectangle_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
case LIB_TEXT_T:
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Move Text" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Move Text" ), s_Libedit_Hokeys_Descr,
|
||||||
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_text_xpm );
|
||||||
msg, move_text_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
msg = AddHotkeyName( _( "Edit Text" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Edit Text" ), s_Libedit_Hokeys_Descr, HK_EDIT );
|
||||||
HK_EDIT );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, edit_text_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
|
|
||||||
msg, edit_text_xpm );
|
|
||||||
|
|
||||||
msg = AddHotkeyName( _( "Rotate Text" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Rotate Text" ), s_Libedit_Hokeys_Descr, HK_ROTATE );
|
||||||
HK_ROTATE );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT, msg, edit_text_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT,
|
|
||||||
msg, edit_text_xpm );
|
|
||||||
|
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Delete Text" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Delete Text" ), s_Libedit_Hokeys_Descr, HK_DELETE );
|
||||||
HK_DELETE );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_text_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
|
||||||
msg, delete_text_xpm );
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_POLYLINE_DRAW_TYPE:
|
case LIB_POLYLINE_T:
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Move Line" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Move Line" ), s_Libedit_Hokeys_Descr,
|
||||||
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_line_xpm );
|
||||||
msg, move_line_xpm );
|
msg = AddHotkeyName( _( "Drag Edge Point" ), s_Libedit_Hokeys_Descr, HK_DRAG );
|
||||||
msg = AddHotkeyName( _( "Drag Edge Point" ), s_Libedit_Hokeys_Descr,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM, msg, move_line_xpm );
|
||||||
HK_DRAG );
|
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM,
|
|
||||||
msg, move_line_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( DrawEntry->m_Flags & IS_NEW )
|
if( DrawEntry->m_Flags & IS_NEW )
|
||||||
{
|
{
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_END_CREATE_ITEM,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_END_CREATE_ITEM, _( "Line End" ), apply_xpm );
|
||||||
_( "Line End" ), apply_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
msg = AddHotkeyName( _( "Edit Line Options" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Edit Line Options" ), s_Libedit_Hokeys_Descr, HK_EDIT );
|
||||||
HK_EDIT );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, options_segment_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
|
|
||||||
msg, options_segment_xpm );
|
|
||||||
|
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Delete Line " ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Delete Line " ), s_Libedit_Hokeys_Descr, HK_DELETE );
|
||||||
HK_DELETE );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_segment_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
|
||||||
msg, delete_segment_xpm );
|
|
||||||
}
|
}
|
||||||
else if( (DrawEntry->m_Flags & IS_NEW) )
|
else if( (DrawEntry->m_Flags & IS_NEW) )
|
||||||
{
|
{
|
||||||
if( ( (LIB_POLYLINE*) DrawEntry )->GetCornerCount() > 2 )
|
if( ( (LIB_POLYLINE*) DrawEntry )->GetCornerCount() > 2 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Delete Segment" ),
|
msg = AddHotkeyName( _( "Delete Segment" ), s_Libedit_Hokeys_Descr, HK_DELETE );
|
||||||
s_Libedit_Hokeys_Descr, HK_DELETE );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_CURRENT_POLY_SEGMENT,
|
||||||
ADD_MENUITEM( PopMenu,
|
|
||||||
ID_POPUP_LIBEDIT_DELETE_CURRENT_POLY_SEGMENT,
|
|
||||||
msg, delete_segment_xpm );
|
msg, delete_segment_xpm );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_FIELD_DRAW_TYPE:
|
case LIB_FIELD_T:
|
||||||
if( DrawEntry->m_Flags == 0 )
|
if( DrawEntry->m_Flags == 0 )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Move Field" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Move Field" ), s_Libedit_Hokeys_Descr,
|
||||||
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_field_xpm );
|
||||||
msg, move_field_xpm );
|
|
||||||
}
|
}
|
||||||
msg = AddHotkeyName( _( "Field Rotate" ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Field Rotate" ), s_Libedit_Hokeys_Descr, HK_ROTATE );
|
||||||
HK_ROTATE );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_FIELD_ROTATE_ITEM, msg, rotate_field_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_FIELD_ROTATE_ITEM,
|
msg = AddHotkeyName( _( "Field Edit" ), s_Libedit_Hokeys_Descr, HK_EDIT );
|
||||||
msg, rotate_field_xpm );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM, msg, edit_text_xpm );
|
||||||
msg = AddHotkeyName( _( "Field Edit" ), s_Libedit_Hokeys_Descr,
|
|
||||||
HK_EDIT );
|
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM,
|
|
||||||
msg, edit_text_xpm );
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
@ -284,23 +241,21 @@ void AddMenusForPin( wxMenu* PopMenu, LIB_PIN* Pin, LIB_EDIT_FRAME* frame )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Move Pin " ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Move Pin " ), s_Libedit_Hokeys_Descr,
|
||||||
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
HK_LIBEDIT_MOVE_GRAPHIC_ITEM );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_xpm );
|
||||||
msg, move_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
msg = AddHotkeyName( _( "Edit Pin " ), s_Libedit_Hokeys_Descr, HK_EDIT);
|
msg = AddHotkeyName( _( "Edit Pin " ), s_Libedit_Hokeys_Descr, HK_EDIT);
|
||||||
ADD_MENUITEM( PopMenu, ID_LIBEDIT_EDIT_PIN, msg, edit_xpm );
|
ADD_MENUITEM( PopMenu, ID_LIBEDIT_EDIT_PIN, msg, edit_xpm );
|
||||||
|
|
||||||
msg = AddHotkeyName( _( "Rotate Pin " ), s_Libedit_Hokeys_Descr, HK_ROTATE );
|
msg = AddHotkeyName( _( "Rotate Pin " ), s_Libedit_Hokeys_Descr, HK_ROTATE );
|
||||||
ADD_MENUITEM( PopMenu, ID_LIBEDIT_ROTATE_PIN, msg, rotate_pin_xpm );
|
ADD_MENUITEM( PopMenu, ID_LIBEDIT_ROTATE_PIN, msg, rotate_pin_xpm );
|
||||||
|
|
||||||
if( not_in_move )
|
if( not_in_move )
|
||||||
{
|
{
|
||||||
msg = AddHotkeyName( _( "Delete Pin " ), s_Libedit_Hokeys_Descr,
|
msg = AddHotkeyName( _( "Delete Pin " ), s_Libedit_Hokeys_Descr, HK_DELETE );
|
||||||
HK_DELETE );
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_pin_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
|
||||||
msg, delete_pin_xpm );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxMenu* global_pin_change = new wxMenu;
|
wxMenu* global_pin_change = new wxMenu;
|
||||||
ADD_MENUITEM_WITH_SUBMENU( PopMenu, global_pin_change,
|
ADD_MENUITEM_WITH_SUBMENU( PopMenu, global_pin_change,
|
||||||
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_ITEM,
|
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_ITEM,
|
||||||
|
@ -324,8 +279,7 @@ void AddMenusForPin( wxMenu* PopMenu, LIB_PIN* Pin, LIB_EDIT_FRAME* frame )
|
||||||
|
|
||||||
void AddMenusForBlock( wxMenu* PopMenu, LIB_EDIT_FRAME* frame )
|
void AddMenusForBlock( wxMenu* PopMenu, LIB_EDIT_FRAME* frame )
|
||||||
{
|
{
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING,
|
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, _( "Cancel Block" ), cancel_xpm );
|
||||||
_( "Cancel Block" ), cancel_xpm );
|
|
||||||
|
|
||||||
if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE )
|
if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE )
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_ZOOM_BLOCK,
|
ADD_MENUITEM( PopMenu, ID_POPUP_ZOOM_BLOCK,
|
||||||
|
@ -334,18 +288,13 @@ void AddMenusForBlock( wxMenu* PopMenu, LIB_EDIT_FRAME* frame )
|
||||||
|
|
||||||
PopMenu->AppendSeparator();
|
PopMenu->AppendSeparator();
|
||||||
|
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_PLACE_BLOCK, _( "Place Block" ),
|
ADD_MENUITEM( PopMenu, ID_POPUP_PLACE_BLOCK, _( "Place Block" ), apply_xpm );
|
||||||
apply_xpm );
|
|
||||||
|
|
||||||
if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE )
|
if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE )
|
||||||
{
|
{
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_SELECT_ITEMS_BLOCK,
|
ADD_MENUITEM( PopMenu, ID_POPUP_SELECT_ITEMS_BLOCK, _( "Select Items" ), green_xpm );
|
||||||
_( "Select Items" ), green_xpm );
|
ADD_MENUITEM( PopMenu, ID_POPUP_COPY_BLOCK, _( "Copy Block" ), copyblock_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_COPY_BLOCK,
|
ADD_MENUITEM( PopMenu, ID_POPUP_MIRROR_Y_BLOCK, _( "Mirror Block ||" ), mirror_H_xpm );
|
||||||
_( "Copy Block" ), copyblock_xpm );
|
ADD_MENUITEM( PopMenu, ID_POPUP_DELETE_BLOCK, _( "Delete Block" ), delete_xpm );
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_MIRROR_Y_BLOCK,
|
|
||||||
_( "Mirror Block ||" ), mirror_H_xpm );
|
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_DELETE_BLOCK,
|
|
||||||
_( "Delete Block" ), delete_xpm );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,8 +47,8 @@ void LIB_EDIT_FRAME::OnPlotCurrentComponent( wxCommandEvent& event )
|
||||||
fn.SetExt( file_ext );
|
fn.SetExt( file_ext );
|
||||||
|
|
||||||
FullFileName = EDA_FileSelector( _( "Filename:" ), wxGetCwd(),
|
FullFileName = EDA_FileSelector( _( "Filename:" ), wxGetCwd(),
|
||||||
fn.GetFullName(), file_ext, mask, this,
|
fn.GetFullName(), file_ext, mask, this,
|
||||||
wxFD_SAVE, TRUE );
|
wxFD_SAVE, TRUE );
|
||||||
|
|
||||||
if( FullFileName.IsEmpty() )
|
if( FullFileName.IsEmpty() )
|
||||||
return;
|
return;
|
||||||
|
@ -67,8 +67,8 @@ void LIB_EDIT_FRAME::OnPlotCurrentComponent( wxCommandEvent& event )
|
||||||
wxFileName fn( cmp->GetName() );
|
wxFileName fn( cmp->GetName() );
|
||||||
fn.SetExt( file_ext );
|
fn.SetExt( file_ext );
|
||||||
FullFileName = EDA_FileSelector( _( "Filename:" ), wxGetCwd(),
|
FullFileName = EDA_FileSelector( _( "Filename:" ), wxGetCwd(),
|
||||||
fn.GetFullName(), file_ext, mask, this,
|
fn.GetFullName(), file_ext, mask, this,
|
||||||
wxFD_SAVE, TRUE );
|
wxFD_SAVE, TRUE );
|
||||||
|
|
||||||
if( FullFileName.IsEmpty() )
|
if( FullFileName.IsEmpty() )
|
||||||
return;
|
return;
|
||||||
|
@ -77,8 +77,8 @@ void LIB_EDIT_FRAME::OnPlotCurrentComponent( wxCommandEvent& event )
|
||||||
* the margin is 10% the size of the component size
|
* the margin is 10% the size of the component size
|
||||||
*/
|
*/
|
||||||
wxSize pagesize = GetScreen()->ReturnPageSize( );
|
wxSize pagesize = GetScreen()->ReturnPageSize( );
|
||||||
wxSize componentSize =
|
wxSize componentSize = m_component->GetBoundingBox( m_unit, m_convert ).m_Size;
|
||||||
m_component->GetBoundaryBox(m_unit, m_convert).m_Size;
|
|
||||||
// Add a small margin to the plot bounding box
|
// Add a small margin to the plot bounding box
|
||||||
componentSize.x = (int)(componentSize.x * 1.2);
|
componentSize.x = (int)(componentSize.x * 1.2);
|
||||||
componentSize.y = (int)(componentSize.y * 1.2);
|
componentSize.y = (int)(componentSize.y * 1.2);
|
||||||
|
|
|
@ -344,7 +344,7 @@ int LIB_EDIT_FRAME::BestZoom()
|
||||||
|
|
||||||
if( m_component )
|
if( m_component )
|
||||||
{
|
{
|
||||||
BoundaryBox = m_component->GetBoundaryBox( m_unit, m_convert );
|
BoundaryBox = m_component->GetBoundingBox( m_unit, m_convert );
|
||||||
dx = BoundaryBox.GetWidth();
|
dx = BoundaryBox.GetWidth();
|
||||||
dy = BoundaryBox.GetHeight();
|
dy = BoundaryBox.GetHeight();
|
||||||
GetScreen()->m_Curseur = BoundaryBox.Centre();
|
GetScreen()->m_Curseur = BoundaryBox.Centre();
|
||||||
|
@ -729,15 +729,14 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
|
|
||||||
switch( m_drawItem->Type() )
|
switch( m_drawItem->Type() )
|
||||||
{
|
{
|
||||||
case COMPONENT_ARC_DRAW_TYPE:
|
case LIB_ARC_T:
|
||||||
case COMPONENT_CIRCLE_DRAW_TYPE:
|
case LIB_CIRCLE_T:
|
||||||
case COMPONENT_RECT_DRAW_TYPE:
|
case LIB_RECTANGLE_T:
|
||||||
case COMPONENT_POLYLINE_DRAW_TYPE:
|
case LIB_POLYLINE_T:
|
||||||
case COMPONENT_LINE_DRAW_TYPE:
|
|
||||||
EditGraphicSymbol( &dc, m_drawItem );
|
EditGraphicSymbol( &dc, m_drawItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
case LIB_TEXT_T:
|
||||||
EditSymbolText( &dc, m_drawItem );
|
EditSymbolText( &dc, m_drawItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -782,7 +781,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
DrawPanel->CursorOff( &dc );
|
DrawPanel->CursorOff( &dc );
|
||||||
SaveCopyInUndoList( m_component );
|
SaveCopyInUndoList( m_component );
|
||||||
if( m_drawItem->Type() == COMPONENT_PIN_DRAW_TYPE )
|
if( m_drawItem->Type() == LIB_PIN_T )
|
||||||
{
|
{
|
||||||
DeletePin( &dc, m_component, (LIB_PIN*) m_drawItem );
|
DeletePin( &dc, m_component, (LIB_PIN*) m_drawItem );
|
||||||
}
|
}
|
||||||
|
@ -803,7 +802,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
if( m_drawItem == NULL )
|
if( m_drawItem == NULL )
|
||||||
break;
|
break;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
if( m_drawItem->Type() == COMPONENT_PIN_DRAW_TYPE )
|
if( m_drawItem->Type() == LIB_PIN_T )
|
||||||
StartMovePin( &dc );
|
StartMovePin( &dc );
|
||||||
else
|
else
|
||||||
StartMoveDrawSymbol( &dc );
|
StartMoveDrawSymbol( &dc );
|
||||||
|
@ -815,10 +814,10 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
if( m_drawItem->Type() == COMPONENT_RECT_DRAW_TYPE
|
if( m_drawItem->Type() == LIB_RECTANGLE_T
|
||||||
|| m_drawItem->Type() == COMPONENT_CIRCLE_DRAW_TYPE
|
|| m_drawItem->Type() == LIB_CIRCLE_T
|
||||||
|| m_drawItem->Type() == COMPONENT_POLYLINE_DRAW_TYPE
|
|| m_drawItem->Type() == LIB_POLYLINE_T
|
||||||
|| m_drawItem->Type() == COMPONENT_ARC_DRAW_TYPE
|
|| m_drawItem->Type() == LIB_ARC_T
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
StartModifyDrawSymbol( &dc );
|
StartModifyDrawSymbol( &dc );
|
||||||
|
@ -827,7 +826,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT:
|
case ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT:
|
||||||
if( m_drawItem == NULL && m_drawItem->Type() != COMPONENT_GRAPHIC_TEXT_DRAW_TYPE )
|
if( m_drawItem == NULL && m_drawItem->Type() != LIB_TEXT_T )
|
||||||
break;
|
break;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
if( !m_drawItem->InEditMode() )
|
if( !m_drawItem->InEditMode() )
|
||||||
|
@ -842,7 +841,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
|
|
||||||
case ID_POPUP_LIBEDIT_FIELD_ROTATE_ITEM:
|
case ID_POPUP_LIBEDIT_FIELD_ROTATE_ITEM:
|
||||||
{
|
{
|
||||||
if( m_drawItem == NULL || ( m_drawItem->Type() != COMPONENT_FIELD_DRAW_TYPE ) )
|
if( m_drawItem == NULL || ( m_drawItem->Type() != LIB_FIELD_T ) )
|
||||||
break;
|
break;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
|
|
||||||
|
@ -861,7 +860,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
if( m_drawItem == NULL )
|
if( m_drawItem == NULL )
|
||||||
break;
|
break;
|
||||||
DrawPanel->CursorOff( &dc );
|
DrawPanel->CursorOff( &dc );
|
||||||
if( m_drawItem->Type() == COMPONENT_FIELD_DRAW_TYPE )
|
if( m_drawItem->Type() == LIB_FIELD_T )
|
||||||
{
|
{
|
||||||
EditField( &dc, (LIB_FIELD*) m_drawItem );
|
EditField( &dc, (LIB_FIELD*) m_drawItem );
|
||||||
}
|
}
|
||||||
|
@ -873,7 +872,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
case ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNAMESIZE_ITEM:
|
case ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNAMESIZE_ITEM:
|
||||||
case ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNUMSIZE_ITEM:
|
case ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNUMSIZE_ITEM:
|
||||||
if( (m_drawItem == NULL )
|
if( (m_drawItem == NULL )
|
||||||
|| (m_drawItem->Type() != COMPONENT_PIN_DRAW_TYPE) )
|
|| (m_drawItem->Type() != LIB_PIN_T) )
|
||||||
break;
|
break;
|
||||||
SaveCopyInUndoList( m_component );
|
SaveCopyInUndoList( m_component );
|
||||||
GlobalSetPins( &dc, (LIB_PIN*) m_drawItem, id );
|
GlobalSetPins( &dc, (LIB_PIN*) m_drawItem, id );
|
||||||
|
@ -986,8 +985,10 @@ void LIB_EDIT_FRAME::RestoreComponent()
|
||||||
{
|
{
|
||||||
if( m_tempCopyComponent == NULL )
|
if( m_tempCopyComponent == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( m_component )
|
if( m_component )
|
||||||
delete m_component;
|
delete m_component;
|
||||||
|
|
||||||
m_component = m_tempCopyComponent;
|
m_component = m_tempCopyComponent;
|
||||||
m_tempCopyComponent = NULL;
|
m_tempCopyComponent = NULL;
|
||||||
}
|
}
|
||||||
|
@ -1013,14 +1014,13 @@ void LIB_EDIT_FRAME::SVG_Print_Component( const wxString& FullFileName )
|
||||||
|
|
||||||
void LIB_EDIT_FRAME::EditSymbolText( wxDC* DC, LIB_DRAW_ITEM* DrawItem )
|
void LIB_EDIT_FRAME::EditSymbolText( wxDC* DC, LIB_DRAW_ITEM* DrawItem )
|
||||||
{
|
{
|
||||||
if ( ( DrawItem == NULL ) || ( DrawItem->Type() != COMPONENT_GRAPHIC_TEXT_DRAW_TYPE ) )
|
if ( ( DrawItem == NULL ) || ( DrawItem->Type() != LIB_TEXT_T ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Deleting old text. */
|
/* Deleting old text. */
|
||||||
if( DC && !DrawItem->InEditMode() )
|
if( DC && !DrawItem->InEditMode() )
|
||||||
DrawItem->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, NULL, DefaultTransform );
|
DrawItem->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, NULL, DefaultTransform );
|
||||||
|
|
||||||
|
|
||||||
DIALOG_LIB_EDIT_TEXT* frame = new DIALOG_LIB_EDIT_TEXT( this, (LIB_TEXT*) DrawItem );
|
DIALOG_LIB_EDIT_TEXT* frame = new DIALOG_LIB_EDIT_TEXT( this, (LIB_TEXT*) DrawItem );
|
||||||
frame->ShowModal();
|
frame->ShowModal();
|
||||||
frame->Destroy();
|
frame->Destroy();
|
||||||
|
|
|
@ -19,8 +19,6 @@
|
||||||
#include "template_fieldnames.h"
|
#include "template_fieldnames.h"
|
||||||
|
|
||||||
|
|
||||||
static bool IsItemInBox(EDA_Rect& aBox, SCH_ITEM* DrawStruct );
|
|
||||||
|
|
||||||
static SCH_ITEM* LastSnappedStruct = NULL;
|
static SCH_ITEM* LastSnappedStruct = NULL;
|
||||||
static bool SnapPoint2( const wxPoint& aPosRef, int SearchMask,
|
static bool SnapPoint2( const wxPoint& aPosRef, int SearchMask,
|
||||||
SCH_ITEM* DrawList, double aScaleFactor );
|
SCH_ITEM* DrawList, double aScaleFactor );
|
||||||
|
@ -56,12 +54,12 @@ SCH_COMPONENT* LocateSmallestComponent( SCH_SCREEN* Screen )
|
||||||
if( lastcomponent == NULL ) // First time a component is located
|
if( lastcomponent == NULL ) // First time a component is located
|
||||||
{
|
{
|
||||||
lastcomponent = component;
|
lastcomponent = component;
|
||||||
BoundaryBox = lastcomponent->GetBoundaryBox();
|
BoundaryBox = lastcomponent->GetBoundingBox();
|
||||||
sizeref = ABS( (float) BoundaryBox.GetWidth() * BoundaryBox.GetHeight() );
|
sizeref = ABS( (float) BoundaryBox.GetWidth() * BoundaryBox.GetHeight() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BoundaryBox = component->GetBoundaryBox();
|
BoundaryBox = component->GetBoundingBox();
|
||||||
sizecurr = ABS( (float) BoundaryBox.GetWidth() * BoundaryBox.GetHeight() );
|
sizecurr = ABS( (float) BoundaryBox.GetWidth() * BoundaryBox.GetHeight() );
|
||||||
|
|
||||||
if( sizeref > sizecurr ) // a smallest component is found
|
if( sizeref > sizecurr ) // a smallest component is found
|
||||||
|
@ -134,19 +132,18 @@ int PickItemsInBlock( BLOCK_SELECTOR& aBlock, SCH_SCREEN* aScreen )
|
||||||
EDA_Rect area;
|
EDA_Rect area;
|
||||||
area.SetOrigin( aBlock.GetOrigin());
|
area.SetOrigin( aBlock.GetOrigin());
|
||||||
area.SetSize( aBlock.GetSize() );
|
area.SetSize( aBlock.GetSize() );
|
||||||
|
|
||||||
area.Normalize();
|
area.Normalize();
|
||||||
|
|
||||||
ITEM_PICKER picker;
|
ITEM_PICKER picker;
|
||||||
SCH_ITEM* DrawStruct = aScreen->GetDrawItems();
|
SCH_ITEM* item = aScreen->GetDrawItems();
|
||||||
|
|
||||||
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
for( ; item != NULL; item = item->Next() )
|
||||||
{
|
{
|
||||||
if( IsItemInBox( area, DrawStruct ) )
|
if( item->HitTest( area ) )
|
||||||
{
|
{
|
||||||
/* Put this structure in the picked list: */
|
/* Put this structure in the picked list: */
|
||||||
picker.m_PickedItem = DrawStruct;
|
picker.m_PickedItem = item;
|
||||||
picker.m_PickedItemType = DrawStruct->Type();
|
picker.m_PickedItemType = item->Type();
|
||||||
aBlock.PushItem( picker );
|
aBlock.PushItem( picker );
|
||||||
itemcount++;
|
itemcount++;
|
||||||
}
|
}
|
||||||
|
@ -172,7 +169,7 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
|
|
||||||
switch( DrawList->Type() )
|
switch( DrawList->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_POLYLINE*) DrawList )
|
#define STRUCT ( (SCH_POLYLINE*) DrawList )
|
||||||
if( !( SearchMask & (DRAWITEM | WIREITEM | BUSITEM) ) )
|
if( !( SearchMask & (DRAWITEM | WIREITEM | BUSITEM) ) )
|
||||||
|
@ -190,7 +187,7 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_LINE*) DrawList )
|
#define STRUCT ( (SCH_LINE*) DrawList )
|
||||||
if( !( SearchMask & (DRAWITEM | WIREITEM | BUSITEM) ) )
|
if( !( SearchMask & (DRAWITEM | WIREITEM | BUSITEM) ) )
|
||||||
|
@ -198,26 +195,15 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
|
|
||||||
if( TestSegmentHit( aPosRef, STRUCT->m_Start, STRUCT->m_End, 0 ) )
|
if( TestSegmentHit( aPosRef, STRUCT->m_Start, STRUCT->m_End, 0 ) )
|
||||||
{
|
{
|
||||||
if( ( ( SearchMask & DRAWITEM )
|
if( ( ( SearchMask & DRAWITEM ) && ( STRUCT->GetLayer() == LAYER_NOTES ) )
|
||||||
&& ( STRUCT->GetLayer() == LAYER_NOTES ) )
|
|| ( ( SearchMask & WIREITEM ) && ( STRUCT->GetLayer() == LAYER_WIRE ) )
|
||||||
|| ( ( SearchMask & WIREITEM )
|
|| ( ( SearchMask & BUSITEM ) && ( STRUCT->GetLayer() == LAYER_BUS ) ) )
|
||||||
&& ( STRUCT->GetLayer() == LAYER_WIRE ) )
|
|
||||||
|| ( ( SearchMask & BUSITEM )
|
|
||||||
&& ( STRUCT->GetLayer() == LAYER_BUS ) )
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
if( SearchMask & EXCLUDE_WIRE_BUS_ENDPOINTS )
|
if( SearchMask & EXCLUDE_WIRE_BUS_ENDPOINTS && STRUCT->IsEndPoint( aPosRef ) )
|
||||||
{
|
break;
|
||||||
if( aPosRef == STRUCT->m_Start
|
|
||||||
|| aPosRef == STRUCT->m_End )
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( SearchMask & WIRE_BUS_ENDPOINTS_ONLY )
|
if( SearchMask & WIRE_BUS_ENDPOINTS_ONLY && !STRUCT->IsEndPoint( aPosRef ) )
|
||||||
{
|
break;
|
||||||
if( !STRUCT->IsOneEndPointAt( aPosRef ) )
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
LastSnappedStruct = DrawList;
|
LastSnappedStruct = DrawList;
|
||||||
return true;
|
return true;
|
||||||
|
@ -226,21 +212,20 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_BUS_ENTRY*) DrawList )
|
#define STRUCT ( (SCH_BUS_ENTRY*) DrawList )
|
||||||
if( !( SearchMask & (RACCORDITEM) ) )
|
if( !( SearchMask & (RACCORDITEM) ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if( TestSegmentHit( aPosRef, STRUCT->m_Pos, STRUCT->m_End(),
|
if( TestSegmentHit( aPosRef, STRUCT->m_Pos, STRUCT->m_End(), hitminDist ) )
|
||||||
hitminDist ) )
|
|
||||||
{
|
{
|
||||||
LastSnappedStruct = DrawList;
|
LastSnappedStruct = DrawList;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_JUNCTION*) DrawList )
|
#define STRUCT ( (SCH_JUNCTION*) DrawList )
|
||||||
if( !(SearchMask & JUNCTIONITEM) )
|
if( !(SearchMask & JUNCTIONITEM) )
|
||||||
|
@ -252,7 +237,7 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_NO_CONNECT*) DrawList )
|
#define STRUCT ( (SCH_NO_CONNECT*) DrawList )
|
||||||
if( !(SearchMask & NOCONNECTITEM) )
|
if( !(SearchMask & NOCONNECTITEM) )
|
||||||
|
@ -264,7 +249,7 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
{
|
{
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_MARKER*) DrawList )
|
#define STRUCT ( (SCH_MARKER*) DrawList )
|
||||||
|
@ -278,7 +263,7 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_TEXT*) DrawList )
|
#define STRUCT ( (SCH_TEXT*) DrawList )
|
||||||
if( !( SearchMask & TEXTITEM) )
|
if( !( SearchMask & TEXTITEM) )
|
||||||
|
@ -291,9 +276,9 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_TEXT*) DrawList ) // SCH_TEXT is the base
|
#define STRUCT ( (SCH_TEXT*) DrawList ) // SCH_TEXT is the base
|
||||||
// class of these labels
|
// class of these labels
|
||||||
|
@ -306,7 +291,7 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
if( !( SearchMask & (LIBITEM | FIELDCMPITEM) ) )
|
if( !( SearchMask & (LIBITEM | FIELDCMPITEM) ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -323,7 +308,8 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
if( field->IsVoid() )
|
if( field->IsVoid() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
EDA_Rect BoundaryBox = field->GetBoundaryBox();
|
EDA_Rect BoundaryBox = field->GetBoundingBox();
|
||||||
|
|
||||||
if( BoundaryBox.Inside( aPosRef ) )
|
if( BoundaryBox.Inside( aPosRef ) )
|
||||||
{
|
{
|
||||||
LastSnappedStruct = field;
|
LastSnappedStruct = field;
|
||||||
|
@ -335,7 +321,8 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
{
|
{
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_COMPONENT*) DrawList )
|
#define STRUCT ( (SCH_COMPONENT*) DrawList )
|
||||||
EDA_Rect BoundaryBox = STRUCT->GetBoundaryBox();
|
EDA_Rect BoundaryBox = STRUCT->GetBoundingBox();
|
||||||
|
|
||||||
if( BoundaryBox.Inside( aPosRef ) )
|
if( BoundaryBox.Inside( aPosRef ) )
|
||||||
{
|
{
|
||||||
LastSnappedStruct = DrawList;
|
LastSnappedStruct = DrawList;
|
||||||
|
@ -344,7 +331,7 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_SHEET*) DrawList )
|
#define STRUCT ( (SCH_SHEET*) DrawList )
|
||||||
if( !(SearchMask & SHEETITEM) )
|
if( !(SearchMask & SHEETITEM) )
|
||||||
|
@ -372,92 +359,6 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, dou
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* Routine to test if an object has non empty intersection with the box *
|
|
||||||
* defined by x1/y1 and x2/y2 (x1 < x2, y1 < y2), and return true if so. This *
|
|
||||||
* routine is used to pick all points in a given box. *
|
|
||||||
*****************************************************************************/
|
|
||||||
bool IsItemInBox( EDA_Rect& aBox, SCH_ITEM* DrawStruct )
|
|
||||||
{
|
|
||||||
EDA_Rect BoundaryBox;
|
|
||||||
|
|
||||||
switch( DrawStruct->Type() )
|
|
||||||
{
|
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
|
||||||
#undef STRUCT
|
|
||||||
#define STRUCT ( (SCH_POLYLINE*) DrawStruct )
|
|
||||||
for( unsigned i = 0; i < STRUCT->GetCornerCount(); i++ )
|
|
||||||
{
|
|
||||||
if( aBox.Inside(STRUCT->m_PolyPoints[i]) )
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
|
||||||
#undef STRUCT
|
|
||||||
#define STRUCT ( (SCH_LINE*) DrawStruct )
|
|
||||||
if( aBox.Inside(STRUCT->m_Start) )
|
|
||||||
return true;
|
|
||||||
if( aBox.Inside(STRUCT->m_End) )
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
|
||||||
#undef STRUCT
|
|
||||||
#define STRUCT ( (SCH_BUS_ENTRY*) DrawStruct )
|
|
||||||
if( aBox.Inside(STRUCT->m_Pos) )
|
|
||||||
return true;
|
|
||||||
if( aBox.Inside(STRUCT->m_End() ) )
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
|
||||||
#undef STRUCT
|
|
||||||
#define STRUCT ( (SCH_JUNCTION*) DrawStruct )
|
|
||||||
if( aBox.Inside(STRUCT->m_Pos) )
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
|
||||||
case TYPE_SCH_LABEL:
|
|
||||||
case TYPE_SCH_TEXT:
|
|
||||||
case TYPE_SCH_HIERLABEL:
|
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
|
||||||
case TYPE_SCH_MARKER:
|
|
||||||
BoundaryBox = DrawStruct->GetBoundingBox();
|
|
||||||
if( aBox.Intersects( BoundaryBox ) )
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
|
||||||
// Use a more restrictive area than GetBoundingBox()
|
|
||||||
// Area is restricted to the body area, excludint fields outside this area
|
|
||||||
BoundaryBox = ((SCH_COMPONENT*)DrawStruct)->GetBoundaryBox();
|
|
||||||
if( aBox.Intersects( BoundaryBox ) )
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
wxString msg;
|
|
||||||
|
|
||||||
msg.Printf( wxT( "IsItemInBox() Err: unexpected StructType %d (" ),
|
|
||||||
DrawStruct->Type() );
|
|
||||||
msg << DrawStruct->GetClass() << wxT( ")" );
|
|
||||||
wxMessageBox( msg );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
SCH_SHEET_PIN* LocateSheetLabel( SCH_SHEET* Sheet, const wxPoint& pos )
|
SCH_SHEET_PIN* LocateSheetLabel( SCH_SHEET* Sheet, const wxPoint& pos )
|
||||||
{
|
{
|
||||||
return Sheet->GetLabel( pos );
|
return Sheet->GetLabel( pos );
|
||||||
|
@ -473,7 +374,7 @@ LIB_PIN* LocateAnyPin( SCH_ITEM* DrawList, const wxPoint& RefPos, SCH_COMPONENT*
|
||||||
|
|
||||||
for( DrawStruct = DrawList; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
for( DrawStruct = DrawList; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() != TYPE_SCH_COMPONENT )
|
if( DrawStruct->Type() != SCH_COMPONENT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
schItem = (SCH_COMPONENT*) DrawStruct;
|
schItem = (SCH_COMPONENT*) DrawStruct;
|
||||||
|
@ -490,7 +391,7 @@ LIB_PIN* LocateAnyPin( SCH_ITEM* DrawList, const wxPoint& RefPos, SCH_COMPONENT*
|
||||||
wxPoint libPos = RefPos - schItem->m_Pos;
|
wxPoint libPos = RefPos - schItem->m_Pos;
|
||||||
Pin = (LIB_PIN*) Entry->LocateDrawItem( schItem->m_Multi,
|
Pin = (LIB_PIN*) Entry->LocateDrawItem( schItem->m_Multi,
|
||||||
schItem->m_Convert,
|
schItem->m_Convert,
|
||||||
COMPONENT_PIN_DRAW_TYPE,
|
LIB_PIN_T,
|
||||||
libPos, schItem->m_Transform );
|
libPos, schItem->m_Transform );
|
||||||
if( Pin )
|
if( Pin )
|
||||||
break;
|
break;
|
||||||
|
@ -510,7 +411,7 @@ SCH_SHEET_PIN* LocateAnyPinSheet( const wxPoint& RefPos, SCH_ITEM* DrawList )
|
||||||
|
|
||||||
for( DrawStruct = DrawList; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
for( DrawStruct = DrawList; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() != DRAW_SHEET_STRUCT_TYPE )
|
if( DrawStruct->Type() != SCH_SHEET_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
PinSheet = LocateSheetLabel( (SCH_SHEET*) DrawStruct, RefPos );
|
PinSheet = LocateSheetLabel( (SCH_SHEET*) DrawStruct, RefPos );
|
||||||
|
|
|
@ -494,7 +494,7 @@ SCH_COMPONENT* EXPORT_HELP::findNextComponent( EDA_ITEM* aItem, SCH_SHEET_PATH*
|
||||||
// continue searching from the middle of a linked list (the draw list)
|
// continue searching from the middle of a linked list (the draw list)
|
||||||
for( ; aItem; aItem = aItem->Next() )
|
for( ; aItem; aItem = aItem->Next() )
|
||||||
{
|
{
|
||||||
if( aItem->Type() != TYPE_SCH_COMPONENT )
|
if( aItem->Type() != SCH_COMPONENT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// found next component
|
// found next component
|
||||||
|
@ -544,7 +544,7 @@ SCH_COMPONENT* EXPORT_HELP::findNextComponentAndCreatPinList( EDA_ITEM* aI
|
||||||
// continue searching from the middle of a linked list (the draw list)
|
// continue searching from the middle of a linked list (the draw list)
|
||||||
for( ; aItem; aItem = aItem->Next() )
|
for( ; aItem; aItem = aItem->Next() )
|
||||||
{
|
{
|
||||||
if( aItem->Type() != TYPE_SCH_COMPONENT )
|
if( aItem->Type() != SCH_COMPONENT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// found next component
|
// found next component
|
||||||
|
@ -591,7 +591,7 @@ SCH_COMPONENT* EXPORT_HELP::findNextComponentAndCreatPinList( EDA_ITEM* aI
|
||||||
{
|
{
|
||||||
LIB_PIN* pin = pins[i];
|
LIB_PIN* pin = pins[i];
|
||||||
|
|
||||||
wxASSERT( pin->Type() == COMPONENT_PIN_DRAW_TYPE );
|
wxASSERT( pin->Type() == LIB_PIN_T );
|
||||||
|
|
||||||
addPinToComponentPinList( comp, aSheetPath, pin );
|
addPinToComponentPinList( comp, aSheetPath, pin );
|
||||||
}
|
}
|
||||||
|
@ -1203,7 +1203,7 @@ bool EXPORT_HELP::WriteNetListPspice( SCH_EDIT_FRAME* frame, FILE* f, bool use_n
|
||||||
for( EDA_ITEM* item = sheet->LastDrawList(); item; item = item->Next() )
|
for( EDA_ITEM* item = sheet->LastDrawList(); item; item = item->Next() )
|
||||||
{
|
{
|
||||||
wxChar ident;
|
wxChar ident;
|
||||||
if( item->Type() != TYPE_SCH_TEXT )
|
if( item->Type() != SCH_TEXT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
SCH_TEXT* drawText = (SCH_TEXT*) item;
|
SCH_TEXT* drawText = (SCH_TEXT*) item;
|
||||||
|
@ -1570,7 +1570,7 @@ void EXPORT_HELP::findAllInstancesOfComponent( SCH_COMPONENT* aComponent,
|
||||||
{
|
{
|
||||||
for( EDA_ITEM* item = sheet->LastDrawList(); item; item = item->Next() )
|
for( EDA_ITEM* item = sheet->LastDrawList(); item; item = item->Next() )
|
||||||
{
|
{
|
||||||
if( item->Type() != TYPE_SCH_COMPONENT )
|
if( item->Type() != SCH_COMPONENT_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
SCH_COMPONENT* comp2 = (SCH_COMPONENT*) item;
|
SCH_COMPONENT* comp2 = (SCH_COMPONENT*) item;
|
||||||
|
@ -1583,7 +1583,7 @@ void EXPORT_HELP::findAllInstancesOfComponent( SCH_COMPONENT* aComponent,
|
||||||
|
|
||||||
for( LIB_PIN* pin = aEntry->GetNextPin(); pin; pin = aEntry->GetNextPin( pin ) )
|
for( LIB_PIN* pin = aEntry->GetNextPin(); pin; pin = aEntry->GetNextPin( pin ) )
|
||||||
{
|
{
|
||||||
wxASSERT( pin->Type() == COMPONENT_PIN_DRAW_TYPE );
|
wxASSERT( pin->Type() == LIB_PIN_T );
|
||||||
|
|
||||||
if( pin->GetUnit() && pin->GetUnit() != unit2 )
|
if( pin->GetUnit() && pin->GetUnit() != unit2 )
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -514,7 +514,7 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
{
|
{
|
||||||
switch( DrawList->Type() )
|
switch( DrawList->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_LINE*) DrawList )
|
#define STRUCT ( (SCH_LINE*) DrawList )
|
||||||
if( (STRUCT->GetLayer() != LAYER_BUS)
|
if( (STRUCT->GetLayer() != LAYER_BUS)
|
||||||
|
@ -539,7 +539,7 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
aNetItemBuffer.push_back( new_item );
|
aNetItemBuffer.push_back( new_item );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_JUNCTION*) DrawList )
|
#define STRUCT ( (SCH_JUNCTION*) DrawList )
|
||||||
new_item = new NETLIST_OBJECT();
|
new_item = new NETLIST_OBJECT();
|
||||||
|
@ -553,7 +553,7 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
aNetItemBuffer.push_back( new_item );
|
aNetItemBuffer.push_back( new_item );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_NO_CONNECT*) DrawList )
|
#define STRUCT ( (SCH_NO_CONNECT*) DrawList )
|
||||||
new_item = new NETLIST_OBJECT();
|
new_item = new NETLIST_OBJECT();
|
||||||
|
@ -567,7 +567,7 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
aNetItemBuffer.push_back( new_item );
|
aNetItemBuffer.push_back( new_item );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_LABEL*) DrawList )
|
#define STRUCT ( (SCH_LABEL*) DrawList )
|
||||||
ii = IsBusLabel( STRUCT->m_Text );
|
ii = IsBusLabel( STRUCT->m_Text );
|
||||||
|
@ -578,9 +578,9 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
new_item->m_Comp = STRUCT;
|
new_item->m_Comp = STRUCT;
|
||||||
new_item->m_Type = NET_LABEL;
|
new_item->m_Type = NET_LABEL;
|
||||||
|
|
||||||
if( STRUCT->m_Layer == LAYER_GLOBLABEL )
|
if( STRUCT->GetLayer() == LAYER_GLOBLABEL )
|
||||||
new_item->m_Type = NET_GLOBLABEL;
|
new_item->m_Type = NET_GLOBLABEL;
|
||||||
if( STRUCT->m_Layer == LAYER_HIERLABEL )
|
if( STRUCT->GetLayer() == LAYER_HIERLABEL )
|
||||||
new_item->m_Type = NET_HIERLABEL;
|
new_item->m_Type = NET_HIERLABEL;
|
||||||
|
|
||||||
new_item->m_Label = STRUCT->m_Text;
|
new_item->m_Label = STRUCT->m_Text;
|
||||||
|
@ -594,8 +594,8 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_LABEL*) DrawList )
|
#define STRUCT ( (SCH_LABEL*) DrawList )
|
||||||
ii = IsBusLabel( STRUCT->m_Text );
|
ii = IsBusLabel( STRUCT->m_Text );
|
||||||
|
@ -607,9 +607,9 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
|
|
||||||
// this is not the simplest way of doing it
|
// this is not the simplest way of doing it
|
||||||
// (look at the case statement above).
|
// (look at the case statement above).
|
||||||
if( STRUCT->m_Layer == LAYER_GLOBLABEL )
|
if( STRUCT->GetLayer() == LAYER_GLOBLABEL )
|
||||||
new_item->m_Type = NET_GLOBLABEL;
|
new_item->m_Type = NET_GLOBLABEL;
|
||||||
if( STRUCT->m_Layer == LAYER_HIERLABEL )
|
if( STRUCT->GetLayer() == LAYER_HIERLABEL )
|
||||||
new_item->m_Type = NET_HIERLABEL;
|
new_item->m_Type = NET_HIERLABEL;
|
||||||
|
|
||||||
new_item->m_Label = STRUCT->m_Text;
|
new_item->m_Label = STRUCT->m_Text;
|
||||||
|
@ -623,7 +623,7 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
DrawLibItem = (SCH_COMPONENT*) DrawList;
|
DrawLibItem = (SCH_COMPONENT*) DrawList;
|
||||||
|
|
||||||
Entry = CMP_LIBRARY::FindLibraryComponent( DrawLibItem->m_ChipName );
|
Entry = CMP_LIBRARY::FindLibraryComponent( DrawLibItem->m_ChipName );
|
||||||
|
@ -632,7 +632,7 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
|
|
||||||
for( LIB_PIN* pin = Entry->GetNextPin(); pin; pin = Entry->GetNextPin( pin ) )
|
for( LIB_PIN* pin = Entry->GetNextPin(); pin; pin = Entry->GetNextPin( pin ) )
|
||||||
{
|
{
|
||||||
wxASSERT( pin->Type() == COMPONENT_PIN_DRAW_TYPE );
|
wxASSERT( pin->Type() == LIB_PIN_T );
|
||||||
|
|
||||||
if( pin->GetUnit() &&
|
if( pin->GetUnit() &&
|
||||||
( pin->GetUnit() != DrawLibItem->GetUnitSelection( sheetlist ) ) )
|
( pin->GetUnit() != DrawLibItem->GetUnitSelection( sheetlist ) ) )
|
||||||
|
@ -674,13 +674,13 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
{
|
{
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_SHEET*) DrawList )
|
#define STRUCT ( (SCH_SHEET*) DrawList )
|
||||||
|
@ -710,7 +710,7 @@ static void AddConnectedObjects( SCH_SHEET_PATH* sheetlist,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
|
@ -39,29 +39,28 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
{
|
{
|
||||||
switch( DrawStruct->Type() )
|
switch( DrawStruct->Type() )
|
||||||
{
|
{
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case SCH_FIELD_T:
|
||||||
DrawStruct->Place( this, DC );
|
DrawStruct->Place( this, DC );
|
||||||
GetScreen()->SetCurItem( NULL );
|
GetScreen()->SetCurItem( NULL );
|
||||||
TestDanglingEnds( GetScreen()->GetDrawItems(), NULL );
|
TestDanglingEnds( GetScreen()->GetDrawItems(), NULL );
|
||||||
DrawPanel->Refresh( TRUE );
|
DrawPanel->Refresh( TRUE );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case SCREEN_STRUCT_TYPE:
|
case SCH_SCREEN_T:
|
||||||
DisplayError( this,
|
DisplayError( this, wxT( "OnLeftClick err: unexpected type for Place" ) );
|
||||||
wxT( "OnLeftClick err: unexpected type for Place" ) );
|
|
||||||
DrawStruct->m_Flags = 0;
|
DrawStruct->m_Flags = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE: // May already be drawing segment.
|
case SCH_LINE_T: // May already be drawing segment.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -93,7 +92,7 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
if( DrawStruct && DrawStruct->m_Flags )
|
if( DrawStruct && DrawStruct->m_Flags )
|
||||||
break;
|
break;
|
||||||
DrawStruct = SchematicGeneralLocateAndDisplay();
|
DrawStruct = SchematicGeneralLocateAndDisplay();
|
||||||
if( DrawStruct && ( DrawStruct->Type() == DRAW_SHEET_STRUCT_TYPE ) )
|
if( DrawStruct && ( DrawStruct->Type() == SCH_SHEET_T ) )
|
||||||
{
|
{
|
||||||
InstallNextScreen( (SCH_SHEET*) DrawStruct );
|
InstallNextScreen( (SCH_SHEET*) DrawStruct );
|
||||||
}
|
}
|
||||||
|
@ -120,9 +119,7 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
case ID_JUNCTION_BUTT:
|
case ID_JUNCTION_BUTT:
|
||||||
if( ( DrawStruct == NULL ) || ( DrawStruct->m_Flags == 0 ) )
|
if( ( DrawStruct == NULL ) || ( DrawStruct->m_Flags == 0 ) )
|
||||||
{
|
{
|
||||||
g_ItemToRepeat = CreateNewJunctionStruct( DC,
|
g_ItemToRepeat = CreateNewJunctionStruct( DC, GetScreen()->m_Curseur, TRUE );
|
||||||
GetScreen()->m_Curseur,
|
|
||||||
TRUE );
|
|
||||||
GetScreen()->SetCurItem( g_ItemToRepeat );
|
GetScreen()->SetCurItem( g_ItemToRepeat );
|
||||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||||
}
|
}
|
||||||
|
@ -139,10 +136,9 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
case ID_BUSTOBUS_ENTRY_BUTT:
|
case ID_BUSTOBUS_ENTRY_BUTT:
|
||||||
if( ( DrawStruct == NULL ) || ( DrawStruct->m_Flags == 0 ) )
|
if( ( DrawStruct == NULL ) || ( DrawStruct->m_Flags == 0 ) )
|
||||||
{
|
{
|
||||||
DrawStruct =
|
DrawStruct = CreateBusEntry( DC,
|
||||||
CreateBusEntry( DC,
|
(m_ID_current_state == ID_WIRETOBUS_ENTRY_BUTT) ?
|
||||||
(m_ID_current_state == ID_WIRETOBUS_ENTRY_BUTT) ?
|
WIRE_TO_BUS : BUS_TO_BUS );
|
||||||
WIRE_TO_BUS : BUS_TO_BUS );
|
|
||||||
GetScreen()->SetCurItem( DrawStruct );
|
GetScreen()->SetCurItem( DrawStruct );
|
||||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||||
}
|
}
|
||||||
|
@ -249,18 +245,15 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
if( DrawStruct == NULL )
|
if( DrawStruct == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if( (DrawStruct->Type() == DRAW_SHEET_STRUCT_TYPE)
|
if( (DrawStruct->Type() == SCH_SHEET_T)
|
||||||
&& (DrawStruct->m_Flags == 0) )
|
&& (DrawStruct->m_Flags == 0) )
|
||||||
{
|
{
|
||||||
if( m_ID_current_state == ID_IMPORT_HLABEL_BUTT )
|
if( m_ID_current_state == ID_IMPORT_HLABEL_BUTT )
|
||||||
GetScreen()->SetCurItem(
|
GetScreen()->SetCurItem( Import_PinSheet( (SCH_SHEET*) DrawStruct, DC ) );
|
||||||
Import_PinSheet( (SCH_SHEET*) DrawStruct, DC ) );
|
|
||||||
else
|
else
|
||||||
GetScreen()->SetCurItem(
|
GetScreen()->SetCurItem( Create_PinSheet( (SCH_SHEET*) DrawStruct, DC ) );
|
||||||
Create_PinSheet( (SCH_SHEET*) DrawStruct, DC ) );
|
|
||||||
}
|
}
|
||||||
else if( (DrawStruct->Type() == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE)
|
else if( (DrawStruct->Type() == SCH_SHEET_LABEL_T) && (DrawStruct->m_Flags != 0) )
|
||||||
&& (DrawStruct->m_Flags != 0) )
|
|
||||||
{
|
{
|
||||||
DrawStruct->Place( this, DC );
|
DrawStruct->Place( this, DC );
|
||||||
TestDanglingEnds( GetScreen()->GetDrawItems(), NULL );
|
TestDanglingEnds( GetScreen()->GetDrawItems(), NULL );
|
||||||
|
@ -271,8 +264,7 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
case ID_COMPONENT_BUTT:
|
case ID_COMPONENT_BUTT:
|
||||||
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
||||||
{
|
{
|
||||||
GetScreen()->SetCurItem( Load_Component( DC, wxEmptyString,
|
GetScreen()->SetCurItem( Load_Component( DC, wxEmptyString, s_CmpNameList, TRUE ) );
|
||||||
s_CmpNameList, TRUE ) );
|
|
||||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -287,8 +279,7 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
case ID_PLACE_POWER_BUTT:
|
case ID_PLACE_POWER_BUTT:
|
||||||
if( ( DrawStruct == NULL ) || ( DrawStruct->m_Flags == 0 ) )
|
if( ( DrawStruct == NULL ) || ( DrawStruct->m_Flags == 0 ) )
|
||||||
{
|
{
|
||||||
GetScreen()->SetCurItem(
|
GetScreen()->SetCurItem( Load_Component( DC, wxT( "power" ), s_PowerNameList, FALSE ) );
|
||||||
Load_Component( DC, wxT( "power" ), s_PowerNameList, FALSE ) );
|
|
||||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -340,28 +331,28 @@ void SCH_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
|
|
||||||
switch( DrawStruct->Type() )
|
switch( DrawStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
InstallNextScreen( (SCH_SHEET*) DrawStruct );
|
InstallNextScreen( (SCH_SHEET*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
InstallCmpeditFrame( this, pos, (SCH_COMPONENT*) DrawStruct );
|
InstallCmpeditFrame( this, pos, (SCH_COMPONENT*) DrawStruct );
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
EditSchematicText( (SCH_TEXT*) DrawStruct );
|
EditSchematicText( (SCH_TEXT*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case SCH_FIELD_T:
|
||||||
EditCmpFieldText( (SCH_FIELD*) DrawStruct, DC );
|
EditCmpFieldText( (SCH_FIELD*) DrawStruct, DC );
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
( (SCH_MARKER*) DrawStruct )->DisplayMarkerInfo( this );
|
( (SCH_MARKER*) DrawStruct )->DisplayMarkerInfo( this );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu )
|
||||||
{
|
{
|
||||||
DrawStruct = SchematicGeneralLocateAndDisplay( false );
|
DrawStruct = SchematicGeneralLocateAndDisplay( false );
|
||||||
|
|
||||||
if( DrawStruct && (DrawStruct->Type() == DRAW_SHEET_STRUCT_TYPE) )
|
if( DrawStruct && (DrawStruct->Type() == SCH_SHEET_T) )
|
||||||
{
|
{
|
||||||
SCH_SHEET_PIN* slabel;
|
SCH_SHEET_PIN* slabel;
|
||||||
slabel = LocateSheetLabel( (SCH_SHEET*) DrawStruct, GetScreen()->m_Curseur );
|
slabel = LocateSheetLabel( (SCH_SHEET*) DrawStruct, GetScreen()->m_Curseur );
|
||||||
|
@ -113,16 +113,16 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu )
|
||||||
|
|
||||||
switch( DrawStruct->Type() )
|
switch( DrawStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
|
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_DELETE, _( "Delete Noconn" ), delete_xpm );
|
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_DELETE, _( "Delete Noconn" ), delete_xpm );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
AddMenusForJunction( PopMenu, (SCH_JUNCTION*) DrawStruct, this );
|
AddMenusForJunction( PopMenu, (SCH_JUNCTION*) DrawStruct, this );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
if( !flags )
|
if( !flags )
|
||||||
{
|
{
|
||||||
wxString msg = AddHotkeyName( _( "Move Bus Entry" ), s_Schematic_Hokeys_Descr,
|
wxString msg = AddHotkeyName( _( "Move Bus Entry" ), s_Schematic_Hokeys_Descr,
|
||||||
|
@ -137,36 +137,36 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu )
|
||||||
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_DELETE, _( "Delete Bus Entry" ), delete_bus_xpm );
|
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_DELETE, _( "Delete Bus Entry" ), delete_bus_xpm );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
AddMenusForMarkers( PopMenu, (SCH_MARKER*) DrawStruct, this );
|
AddMenusForMarkers( PopMenu, (SCH_MARKER*) DrawStruct, this );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
AddMenusForText( PopMenu, (SCH_TEXT*) DrawStruct );
|
AddMenusForText( PopMenu, (SCH_TEXT*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
AddMenusForLabel( PopMenu, (SCH_LABEL*) DrawStruct );
|
AddMenusForLabel( PopMenu, (SCH_LABEL*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
AddMenusForGLabel( PopMenu, (SCH_GLOBALLABEL*) DrawStruct );
|
AddMenusForGLabel( PopMenu, (SCH_GLOBALLABEL*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
AddMenusForHLabel( PopMenu, (SCH_HIERLABEL*) DrawStruct );
|
AddMenusForHLabel( PopMenu, (SCH_HIERLABEL*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case SCH_FIELD_T:
|
||||||
{
|
{
|
||||||
AddMenusForComponentField( PopMenu, (SCH_FIELD*) DrawStruct );
|
AddMenusForComponentField( PopMenu, (SCH_FIELD*) DrawStruct );
|
||||||
|
|
||||||
if( flags )
|
if( flags )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Many fields are inside a component. If this is the case, add the
|
// Many fields are inside a component. If this is the case, add the
|
||||||
// component menu
|
// component menu
|
||||||
SCH_COMPONENT* Component =
|
SCH_COMPONENT* Component = LocateSmallestComponent( GetScreen() );
|
||||||
LocateSmallestComponent( (SCH_SCREEN*) GetScreen() );
|
|
||||||
|
|
||||||
if( Component )
|
if( Component )
|
||||||
{
|
{
|
||||||
|
@ -176,11 +176,11 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu )
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
AddMenusForComponent( PopMenu, (SCH_COMPONENT*) DrawStruct );
|
AddMenusForComponent( PopMenu, (SCH_COMPONENT*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
|
|
||||||
// if( !flags ) PopMenu->Append(ID_POPUP_SCH_MOVE_ITEM_REQUEST, "Move");
|
// if( !flags ) PopMenu->Append(ID_POPUP_SCH_MOVE_ITEM_REQUEST, "Move");
|
||||||
switch( DrawStruct->GetLayer() )
|
switch( DrawStruct->GetLayer() )
|
||||||
|
@ -202,11 +202,11 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu )
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
AddMenusForHierchicalSheet( PopMenu, (SCH_SHEET*) DrawStruct );
|
AddMenusForHierchicalSheet( PopMenu, (SCH_SHEET*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
AddMenusForPinSheet( PopMenu, (SCH_SHEET_PIN*) DrawStruct );
|
AddMenusForPinSheet( PopMenu, (SCH_SHEET_PIN*) DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -243,7 +243,7 @@ void AddMenusForComponentField( wxMenu* PopMenu, SCH_FIELD* Field )
|
||||||
|
|
||||||
void AddMenusForComponent( wxMenu* PopMenu, SCH_COMPONENT* Component )
|
void AddMenusForComponent( wxMenu* PopMenu, SCH_COMPONENT* Component )
|
||||||
{
|
{
|
||||||
if( Component->Type() != TYPE_SCH_COMPONENT )
|
if( Component->Type() != SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
wxASSERT( 0 );
|
wxASSERT( 0 );
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -92,11 +92,11 @@ void DeleteItemsInList( WinEDA_DrawPanel* panel, PICKED_ITEMS_LIST& aItemsList )
|
||||||
itemWrapper.m_PickedItem = item;
|
itemWrapper.m_PickedItem = item;
|
||||||
itemWrapper.m_UndoRedoStatus = UR_DELETED;
|
itemWrapper.m_UndoRedoStatus = UR_DELETED;
|
||||||
|
|
||||||
if( item->Type() == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE )
|
if( item->Type() == SCH_SHEET_LABEL_T )
|
||||||
{
|
{
|
||||||
/* this item is depending on a sheet, and is not in global list */
|
/* this item is depending on a sheet, and is not in global list */
|
||||||
wxMessageBox( wxT("DeleteItemsInList() err: unexpected \
|
wxMessageBox( wxT("DeleteItemsInList() err: unexpected \
|
||||||
DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE" ) );
|
SCH_SHEET_LABEL_T" ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -124,7 +124,7 @@ void DeleteStruct( WinEDA_DrawPanel* panel, wxDC* DC, SCH_ITEM* DrawStruct )
|
||||||
if( !DrawStruct )
|
if( !DrawStruct )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( DrawStruct->Type() == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE )
|
if( DrawStruct->Type() == SCH_SHEET_LABEL_T )
|
||||||
{
|
{
|
||||||
/* This structure is attached to a node, and is not accessible by
|
/* This structure is attached to a node, and is not accessible by
|
||||||
* the global list directly. */
|
* the global list directly. */
|
||||||
|
@ -168,21 +168,21 @@ void DuplicateItemsInList( SCH_SCREEN* screen, PICKED_ITEMS_LIST& aItemsList,
|
||||||
{
|
{
|
||||||
switch( newitem->Type() )
|
switch( newitem->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
{
|
{
|
||||||
SCH_SHEET* sheet = (SCH_SHEET*) newitem;
|
SCH_SHEET* sheet = (SCH_SHEET*) newitem;
|
||||||
sheet->m_TimeStamp = GetTimeStamp();
|
sheet->m_TimeStamp = GetTimeStamp();
|
||||||
|
@ -190,7 +190,7 @@ void DuplicateItemsInList( SCH_SCREEN* screen, PICKED_ITEMS_LIST& aItemsList,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
( (SCH_COMPONENT*) newitem )->m_TimeStamp = GetTimeStamp();
|
( (SCH_COMPONENT*) newitem )->m_TimeStamp = GetTimeStamp();
|
||||||
( (SCH_COMPONENT*) newitem )->ClearAnnotation( NULL );
|
( (SCH_COMPONENT*) newitem )->ClearAnnotation( NULL );
|
||||||
break;
|
break;
|
||||||
|
@ -228,51 +228,51 @@ SCH_ITEM* DuplicateStruct( SCH_ITEM* aDrawStruct, bool aClone )
|
||||||
|
|
||||||
switch( aDrawStruct->Type() )
|
switch( aDrawStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
NewDrawStruct = ( (SCH_POLYLINE*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_POLYLINE*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
NewDrawStruct = ( (SCH_LINE*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_LINE*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
NewDrawStruct = ( (SCH_BUS_ENTRY*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_BUS_ENTRY*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
NewDrawStruct = ( (SCH_JUNCTION*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_JUNCTION*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
NewDrawStruct = ( (SCH_MARKER*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_MARKER*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
NewDrawStruct = ( (SCH_NO_CONNECT*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_NO_CONNECT*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
NewDrawStruct = ( (SCH_TEXT*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_TEXT*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
NewDrawStruct = ( (SCH_LABEL*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_LABEL*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
NewDrawStruct = ( (SCH_HIERLABEL*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_HIERLABEL*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
NewDrawStruct = ( (SCH_GLOBALLABEL*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_GLOBALLABEL*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
NewDrawStruct = ( (SCH_COMPONENT*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_COMPONENT*) aDrawStruct )->GenCopy();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
NewDrawStruct = ( (SCH_SHEET*) aDrawStruct )->GenCopy();
|
NewDrawStruct = ( (SCH_SHEET*) aDrawStruct )->GenCopy();
|
||||||
if( aClone )
|
if( aClone )
|
||||||
{
|
{
|
||||||
|
|
|
@ -43,7 +43,7 @@ void LIB_EDIT_FRAME::OnRotatePin( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
|
|
||||||
// Check, if the item is a pin, else return
|
// Check, if the item is a pin, else return
|
||||||
if( m_drawItem == NULL || m_drawItem->Type() != COMPONENT_PIN_DRAW_TYPE )
|
if( m_drawItem == NULL || m_drawItem->Type() != LIB_PIN_T )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// save flags to restore them after rotating
|
// save flags to restore them after rotating
|
||||||
|
@ -77,7 +77,7 @@ void LIB_EDIT_FRAME::OnRotatePin( wxCommandEvent& event )
|
||||||
|
|
||||||
void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event )
|
void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( m_drawItem == NULL || m_drawItem->Type() != COMPONENT_PIN_DRAW_TYPE )
|
if( m_drawItem == NULL || m_drawItem->Type() != LIB_PIN_T )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int item_flags = m_drawItem->m_Flags; // save flags to restore them after editing
|
int item_flags = m_drawItem->m_Flags; // save flags to restore them after editing
|
||||||
|
@ -186,7 +186,7 @@ static void AbortPinMove( WinEDA_DrawPanel* Panel, wxDC* DC )
|
||||||
|
|
||||||
LIB_PIN* CurrentPin = (LIB_PIN*) parent->GetDrawItem();
|
LIB_PIN* CurrentPin = (LIB_PIN*) parent->GetDrawItem();
|
||||||
|
|
||||||
if( CurrentPin == NULL || CurrentPin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
if( CurrentPin == NULL || CurrentPin->Type() != LIB_PIN_T )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( CurrentPin->m_Flags & IS_NEW )
|
if( CurrentPin->m_Flags & IS_NEW )
|
||||||
|
@ -215,7 +215,7 @@ void LIB_EDIT_FRAME::PlacePin( wxDC* DC )
|
||||||
bool status;
|
bool status;
|
||||||
|
|
||||||
// Some tests
|
// Some tests
|
||||||
if( (CurrentPin == NULL) || (CurrentPin->Type() != COMPONENT_PIN_DRAW_TYPE) )
|
if( (CurrentPin == NULL) || (CurrentPin->Type() != LIB_PIN_T) )
|
||||||
{
|
{
|
||||||
wxMessageBox( wxT("LIB_EDIT_FRAME::PlacePin() error") );
|
wxMessageBox( wxT("LIB_EDIT_FRAME::PlacePin() error") );
|
||||||
return;
|
return;
|
||||||
|
@ -346,7 +346,7 @@ static void DrawMovePin( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
||||||
|
|
||||||
LIB_PIN* CurrentPin = (LIB_PIN*) parent->GetDrawItem();
|
LIB_PIN* CurrentPin = (LIB_PIN*) parent->GetDrawItem();
|
||||||
|
|
||||||
if( CurrentPin == NULL || CurrentPin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
if( CurrentPin == NULL || CurrentPin->Type() != LIB_PIN_T )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxPoint pinpos = CurrentPin->GetPosition();
|
wxPoint pinpos = CurrentPin->GetPosition();
|
||||||
|
@ -543,7 +543,7 @@ void LIB_EDIT_FRAME::GlobalSetPins( wxDC* DC, LIB_PIN* MasterPin, int id )
|
||||||
if( ( m_component == NULL ) || ( MasterPin == NULL ) )
|
if( ( m_component == NULL ) || ( MasterPin == NULL ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( MasterPin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
if( MasterPin->Type() != LIB_PIN_T )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
OnModify( );
|
OnModify( );
|
||||||
|
@ -588,7 +588,7 @@ void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin )
|
||||||
LIB_PIN* Pin;
|
LIB_PIN* Pin;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
if( m_component == NULL || SourcePin == NULL || SourcePin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
if( m_component == NULL || SourcePin == NULL || SourcePin->Type() != LIB_PIN_T )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Pin = (LIB_PIN*) SourcePin->GenCopy();
|
Pin = (LIB_PIN*) SourcePin->GenCopy();
|
||||||
|
|
|
@ -108,7 +108,7 @@ static void PlotTextField( PLOTTER* plotter, SCH_COMPONENT* DrawLibItem,
|
||||||
* so the more easily way is to use no justifications ( Centered text )
|
* so the more easily way is to use no justifications ( Centered text )
|
||||||
* and use GetBoundaryBox to know the text coordinate considered as centered
|
* and use GetBoundaryBox to know the text coordinate considered as centered
|
||||||
*/
|
*/
|
||||||
EDA_Rect BoundaryBox = field->GetBoundaryBox();
|
EDA_Rect BoundaryBox = field->GetBoundingBox();
|
||||||
GRTextHorizJustifyType hjustify = GR_TEXT_HJUSTIFY_CENTER;
|
GRTextHorizJustifyType hjustify = GR_TEXT_HJUSTIFY_CENTER;
|
||||||
GRTextVertJustifyType vjustify = GR_TEXT_VJUSTIFY_CENTER;
|
GRTextVertJustifyType vjustify = GR_TEXT_VJUSTIFY_CENTER;
|
||||||
wxPoint textpos = BoundaryBox.Centre();
|
wxPoint textpos = BoundaryBox.Centre();
|
||||||
|
@ -246,11 +246,11 @@ static void PlotTextStruct( PLOTTER* plotter, SCH_TEXT* aSchText )
|
||||||
|
|
||||||
switch( aSchText->Type() )
|
switch( aSchText->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -258,7 +258,7 @@ static void PlotTextStruct( PLOTTER* plotter, SCH_TEXT* aSchText )
|
||||||
}
|
}
|
||||||
|
|
||||||
EDA_Colors color = UNSPECIFIED_COLOR;
|
EDA_Colors color = UNSPECIFIED_COLOR;
|
||||||
color = ReturnLayerColor( aSchText->m_Layer );
|
color = ReturnLayerColor( aSchText->GetLayer() );
|
||||||
wxPoint textpos = aSchText->m_Pos + aSchText->GetSchematicTextOffset();
|
wxPoint textpos = aSchText->m_Pos + aSchText->GetSchematicTextOffset();
|
||||||
int thickness = aSchText->GetPenSize();
|
int thickness = aSchText->GetPenSize();
|
||||||
|
|
||||||
|
@ -387,9 +387,9 @@ void PlotDrawlist( PLOTTER* plotter, SCH_ITEM* aDrawlist )
|
||||||
plotter->set_current_line_width( aDrawlist->GetPenSize() );
|
plotter->set_current_line_width( aDrawlist->GetPenSize() );
|
||||||
switch( aDrawlist->Type() )
|
switch( aDrawlist->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
if( aDrawlist->Type() == DRAW_BUSENTRY_STRUCT_TYPE )
|
if( aDrawlist->Type() == SCH_BUS_ENTRY_T )
|
||||||
{
|
{
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_BUS_ENTRY*) aDrawlist )
|
#define STRUCT ( (SCH_BUS_ENTRY*) aDrawlist )
|
||||||
|
@ -417,39 +417,39 @@ void PlotDrawlist( PLOTTER* plotter, SCH_ITEM* aDrawlist )
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ( (SCH_JUNCTION*) aDrawlist )
|
#define STRUCT ( (SCH_JUNCTION*) aDrawlist )
|
||||||
plotter->set_color( ReturnLayerColor( STRUCT->GetLayer() ) );
|
plotter->set_color( ReturnLayerColor( STRUCT->GetLayer() ) );
|
||||||
plotter->circle( STRUCT->m_Pos, STRUCT->m_Size.x, FILLED_SHAPE );
|
plotter->circle( STRUCT->m_Pos, STRUCT->m_Size.x, FILLED_SHAPE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
PlotTextStruct( plotter, (SCH_TEXT*) aDrawlist );
|
PlotTextStruct( plotter, (SCH_TEXT*) aDrawlist );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
DrawLibItem = (SCH_COMPONENT*) aDrawlist;
|
DrawLibItem = (SCH_COMPONENT*) aDrawlist;
|
||||||
PlotLibPart( plotter, DrawLibItem );
|
PlotLibPart( plotter, DrawLibItem );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
PlotSheetStruct( plotter, (SCH_SHEET*) aDrawlist );
|
PlotSheetStruct( plotter, (SCH_SHEET*) aDrawlist );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
plotter->set_color( ReturnLayerColor( LAYER_NOCONNECT ) );
|
plotter->set_color( ReturnLayerColor( LAYER_NOCONNECT ) );
|
||||||
PlotNoConnectStruct( plotter, (SCH_NO_CONNECT*) aDrawlist );
|
PlotNoConnectStruct( plotter, (SCH_NO_CONNECT*) aDrawlist );
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -64,7 +64,7 @@ void CreateDummyCmp()
|
||||||
|
|
||||||
|
|
||||||
SCH_COMPONENT::SCH_COMPONENT( const wxPoint& aPos, SCH_ITEM* aParent ) :
|
SCH_COMPONENT::SCH_COMPONENT( const wxPoint& aPos, SCH_ITEM* aParent ) :
|
||||||
SCH_ITEM( aParent, TYPE_SCH_COMPONENT )
|
SCH_ITEM( aParent, SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
Init( aPos );
|
Init( aPos );
|
||||||
}
|
}
|
||||||
|
@ -73,7 +73,7 @@ SCH_COMPONENT::SCH_COMPONENT( const wxPoint& aPos, SCH_ITEM* aParent ) :
|
||||||
SCH_COMPONENT::SCH_COMPONENT( LIB_COMPONENT& libComponent,
|
SCH_COMPONENT::SCH_COMPONENT( LIB_COMPONENT& libComponent,
|
||||||
SCH_SHEET_PATH* sheet, int unit, int convert,
|
SCH_SHEET_PATH* sheet, int unit, int convert,
|
||||||
const wxPoint& pos, bool setNewItemFlag ) :
|
const wxPoint& pos, bool setNewItemFlag ) :
|
||||||
SCH_ITEM( NULL, TYPE_SCH_COMPONENT )
|
SCH_ITEM( NULL, SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
Init( pos );
|
Init( pos );
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ SCH_COMPONENT::SCH_COMPONENT( LIB_COMPONENT& libComponent,
|
||||||
|
|
||||||
|
|
||||||
SCH_COMPONENT::SCH_COMPONENT( const SCH_COMPONENT& aTemplate ) :
|
SCH_COMPONENT::SCH_COMPONENT( const SCH_COMPONENT& aTemplate ) :
|
||||||
SCH_ITEM( NULL, TYPE_SCH_COMPONENT )
|
SCH_ITEM( NULL, SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
/* assignment of all fields, including field vector elements, and linked
|
/* assignment of all fields, including field vector elements, and linked
|
||||||
* list pointers */
|
* list pointers */
|
||||||
|
@ -237,18 +237,18 @@ void SCH_COMPONENT::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
/* Draw the component boundary box */
|
/* Draw the component boundary box */
|
||||||
{
|
{
|
||||||
EDA_Rect BoundaryBox;
|
EDA_Rect BoundaryBox;
|
||||||
BoundaryBox = GetBoundaryBox();
|
BoundaryBox = GetBoundingBox();
|
||||||
GRRect( &panel->m_ClipBox, DC, BoundaryBox, BROWN );
|
GRRect( &panel->m_ClipBox, DC, BoundaryBox, BROWN );
|
||||||
#if 1
|
#if 1
|
||||||
if( GetField( REFERENCE )->IsVisible() )
|
if( GetField( REFERENCE )->IsVisible() )
|
||||||
{
|
{
|
||||||
BoundaryBox = GetField( REFERENCE )->GetBoundaryBox();
|
BoundaryBox = GetField( REFERENCE )->GetBoundingBox();
|
||||||
GRRect( &panel->m_ClipBox, DC, BoundaryBox, BROWN );
|
GRRect( &panel->m_ClipBox, DC, BoundaryBox, BROWN );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( GetField( VALUE )->IsVisible() )
|
if( GetField( VALUE )->IsVisible() )
|
||||||
{
|
{
|
||||||
BoundaryBox = GetField( VALUE )->GetBoundaryBox();
|
BoundaryBox = GetField( VALUE )->GetBoundingBox();
|
||||||
GRRect( &panel->m_ClipBox, DC, BoundaryBox, BROWN );
|
GRRect( &panel->m_ClipBox, DC, BoundaryBox, BROWN );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -549,60 +549,6 @@ LIB_PIN* SCH_COMPONENT::GetPin( const wxString& number )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function GetBoundaryBox
|
|
||||||
* returns the orthogonal, bounding box of this object for display purposes.
|
|
||||||
* This box should be an enclosing perimeter for graphic items and pins.
|
|
||||||
* this include only fields defined in library
|
|
||||||
* use GetBoundingBox() to include fields in schematic
|
|
||||||
*/
|
|
||||||
EDA_Rect SCH_COMPONENT::GetBoundaryBox() const
|
|
||||||
{
|
|
||||||
LIB_COMPONENT* Entry = CMP_LIBRARY::FindLibraryComponent( m_ChipName );
|
|
||||||
EDA_Rect BoundaryBox;
|
|
||||||
int x0, xm, y0, ym;
|
|
||||||
|
|
||||||
/* Get the basic Boundary box */
|
|
||||||
if( Entry )
|
|
||||||
{
|
|
||||||
BoundaryBox = Entry->GetBoundaryBox( m_Multi, m_Convert );
|
|
||||||
x0 = BoundaryBox.GetX();
|
|
||||||
xm = BoundaryBox.GetRight();
|
|
||||||
|
|
||||||
// We must reverse Y values, because matrix orientation
|
|
||||||
// suppose Y axis normal for the library items coordinates,
|
|
||||||
// m_Transform reverse Y values, but BoundaryBox is already reversed!
|
|
||||||
y0 = -BoundaryBox.GetY();
|
|
||||||
ym = -BoundaryBox.GetBottom();
|
|
||||||
}
|
|
||||||
else /* if lib Entry not found, give a reasonable size */
|
|
||||||
{
|
|
||||||
x0 = y0 = -50;
|
|
||||||
xm = ym = 50;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Compute the real Boundary box (rotated, mirrored ...)*/
|
|
||||||
int x1 = m_Transform.x1 * x0 + m_Transform.y1 * y0;
|
|
||||||
int y1 = m_Transform.x2 * x0 + m_Transform.y2 * y0;
|
|
||||||
int x2 = m_Transform.x1 * xm + m_Transform.y1 * ym;
|
|
||||||
int y2 = m_Transform.x2 * xm + m_Transform.y2 * ym;
|
|
||||||
|
|
||||||
// H and W must be > 0:
|
|
||||||
if( x2 < x1 )
|
|
||||||
EXCHG( x2, x1 );
|
|
||||||
if( y2 < y1 )
|
|
||||||
EXCHG( y2, y1 );
|
|
||||||
|
|
||||||
BoundaryBox.SetX( x1 );
|
|
||||||
BoundaryBox.SetY( y1 );
|
|
||||||
BoundaryBox.SetWidth( x2 - x1 );
|
|
||||||
BoundaryBox.SetHeight( y2 - y1 );
|
|
||||||
|
|
||||||
BoundaryBox.Offset( m_Pos );
|
|
||||||
return BoundaryBox;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Used in undo / redo command:
|
/* Used in undo / redo command:
|
||||||
* swap data between this and copyitem
|
* swap data between this and copyitem
|
||||||
*/
|
*/
|
||||||
|
@ -1416,31 +1362,61 @@ bool SCH_COMPONENT::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundaryBox
|
||||||
* returns the orthogonal, bounding box of this object for display purposes.
|
* returns the orthogonal, bounding box of this object for display purposes.
|
||||||
* This box should be an enclosing perimeter for visible components of this
|
* This box should be an enclosing perimeter for graphic items and pins.
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* this include only fields defined in library
|
||||||
* It is OK to overestimate the size by a few counts.
|
* use GetBoundingBox() to include fields in schematic
|
||||||
*/
|
*/
|
||||||
EDA_Rect SCH_COMPONENT::GetBoundingBox()
|
EDA_Rect SCH_COMPONENT::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
const int PADDING = 40;
|
LIB_COMPONENT* Entry = CMP_LIBRARY::FindLibraryComponent( m_ChipName );
|
||||||
|
EDA_Rect bBox;
|
||||||
|
int x0, xm, y0, ym;
|
||||||
|
|
||||||
// This gives a reasonable approximation (but some things are missing so...)
|
if( Entry == NULL )
|
||||||
EDA_Rect bbox = GetBoundaryBox();
|
return EDA_Rect( wxPoint( 0, 0 ), wxSize( 0, 0 ) );
|
||||||
|
|
||||||
|
/* Get the basic Boundary box */
|
||||||
|
bBox = Entry->GetBoundingBox( m_Multi, m_Convert );
|
||||||
|
x0 = bBox.GetX();
|
||||||
|
xm = bBox.GetRight();
|
||||||
|
|
||||||
|
// We must reverse Y values, because matrix orientation
|
||||||
|
// suppose Y axis normal for the library items coordinates,
|
||||||
|
// m_Transform reverse Y values, but bBox is already reversed!
|
||||||
|
y0 = -bBox.GetY();
|
||||||
|
ym = -bBox.GetBottom();
|
||||||
|
|
||||||
|
/* Compute the real Boundary box (rotated, mirrored ...)*/
|
||||||
|
int x1 = m_Transform.x1 * x0 + m_Transform.y1 * y0;
|
||||||
|
int y1 = m_Transform.x2 * x0 + m_Transform.y2 * y0;
|
||||||
|
int x2 = m_Transform.x1 * xm + m_Transform.y1 * ym;
|
||||||
|
int y2 = m_Transform.x2 * xm + m_Transform.y2 * ym;
|
||||||
|
|
||||||
|
// H and W must be > 0:
|
||||||
|
if( x2 < x1 )
|
||||||
|
EXCHG( x2, x1 );
|
||||||
|
if( y2 < y1 )
|
||||||
|
EXCHG( y2, y1 );
|
||||||
|
|
||||||
|
bBox.SetX( x1 );
|
||||||
|
bBox.SetY( y1 );
|
||||||
|
bBox.SetWidth( x2 - x1 );
|
||||||
|
bBox.SetHeight( y2 - y1 );
|
||||||
|
|
||||||
|
bBox.Offset( m_Pos );
|
||||||
|
|
||||||
// Include BoundingBoxes of fields
|
// Include BoundingBoxes of fields
|
||||||
for( int ii = 0; ii < GetFieldCount(); ii++ )
|
for( int ii = 0; ii < GetFieldCount(); ii++ )
|
||||||
{
|
{
|
||||||
if( !GetField( ii )->IsVisible() )
|
if( !GetField( ii )->IsVisible() )
|
||||||
continue;
|
continue;
|
||||||
bbox.Merge( GetField( ii )->GetBoundaryBox() );
|
|
||||||
|
bBox.Merge( GetField( ii )->GetBoundingBox() );
|
||||||
}
|
}
|
||||||
|
|
||||||
// ... add padding
|
return bBox;
|
||||||
bbox.Inflate( PADDING );
|
|
||||||
|
|
||||||
return bbox;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1546,7 +1522,8 @@ void SCH_COMPONENT::Rotate( wxPoint rotationPoint )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool SCH_COMPONENT::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint * aFindLocation )
|
bool SCH_COMPONENT::Matches( wxFindReplaceData& aSearchData, void* aAuxData,
|
||||||
|
wxPoint* aFindLocation )
|
||||||
{
|
{
|
||||||
// Search reference.
|
// Search reference.
|
||||||
// reference is a special field because a part identifier is added
|
// reference is a special field because a part identifier is added
|
||||||
|
@ -1622,7 +1599,7 @@ void SCH_COMPONENT::GetEndPoints( std::vector <DANGLING_END_ITEM>& aItemList )
|
||||||
|
|
||||||
for( LIB_PIN* Pin = Entry->GetNextPin(); Pin != NULL; Pin = Entry->GetNextPin( Pin ) )
|
for( LIB_PIN* Pin = Entry->GetNextPin(); Pin != NULL; Pin = Entry->GetNextPin( Pin ) )
|
||||||
{
|
{
|
||||||
wxASSERT( Pin->Type() == COMPONENT_PIN_DRAW_TYPE );
|
wxASSERT( Pin->Type() == LIB_PIN_T );
|
||||||
|
|
||||||
if( Pin->GetUnit() && m_Multi && ( m_Multi != Pin->GetUnit() ) )
|
if( Pin->GetUnit() && m_Multi && ( m_Multi != Pin->GetUnit() ) )
|
||||||
continue;
|
continue;
|
||||||
|
@ -1639,7 +1616,7 @@ void SCH_COMPONENT::GetEndPoints( std::vector <DANGLING_END_ITEM>& aItemList )
|
||||||
|
|
||||||
wxPoint SCH_COMPONENT::GetPinPhysicalPosition( LIB_PIN* Pin )
|
wxPoint SCH_COMPONENT::GetPinPhysicalPosition( LIB_PIN* Pin )
|
||||||
{
|
{
|
||||||
wxCHECK_MSG( Pin != NULL && Pin->Type() == COMPONENT_PIN_DRAW_TYPE, wxPoint( 0, 0 ),
|
wxCHECK_MSG( Pin != NULL && Pin->Type() == LIB_PIN_T, wxPoint( 0, 0 ),
|
||||||
wxT( "Cannot get physical position of pin." ) );
|
wxT( "Cannot get physical position of pin." ) );
|
||||||
|
|
||||||
return m_Transform.TransformCoordinate( Pin->GetPosition() ) + m_Pos;
|
return m_Transform.TransformCoordinate( Pin->GetPosition() ) + m_Pos;
|
||||||
|
@ -1672,7 +1649,7 @@ void SCH_COMPONENT::GetConnectionPoints( vector< wxPoint >& aPoints ) const
|
||||||
|
|
||||||
for( pin = component->GetNextPin(); pin != NULL; pin = component->GetNextPin( pin ) )
|
for( pin = component->GetNextPin(); pin != NULL; pin = component->GetNextPin( pin ) )
|
||||||
{
|
{
|
||||||
wxCHECK_RET( pin->Type() == COMPONENT_PIN_DRAW_TYPE,
|
wxCHECK_RET( pin->Type() == LIB_PIN_T,
|
||||||
wxT( "GetNextPin() did not return a pin object. Bad programmer!" ) );
|
wxT( "GetNextPin() did not return a pin object. Bad programmer!" ) );
|
||||||
|
|
||||||
// Skip items not used for this part.
|
// Skip items not used for this part.
|
||||||
|
@ -1685,3 +1662,26 @@ void SCH_COMPONENT::GetConnectionPoints( vector< wxPoint >& aPoints ) const
|
||||||
aPoints.push_back( m_Transform.TransformCoordinate( pin->GetPosition() ) + m_Pos );
|
aPoints.push_back( m_Transform.TransformCoordinate( pin->GetPosition() ) + m_Pos );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_COMPONENT::DoHitTest( const wxPoint& aPoint, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
EDA_Rect rect = GetBoundingBox();
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
return rect.Inside( aPoint );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_COMPONENT::DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
EDA_Rect rect = aRect;
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
if( aContained )
|
||||||
|
return rect.Inside( GetBoundingBox() );
|
||||||
|
|
||||||
|
return rect.Intersects( GetBoundingBox() );
|
||||||
|
}
|
||||||
|
|
|
@ -159,13 +159,12 @@ public:
|
||||||
* set to NULL.
|
* set to NULL.
|
||||||
* @return SCH_COMPONENT* - a copy of me.
|
* @return SCH_COMPONENT* - a copy of me.
|
||||||
*/
|
*/
|
||||||
SCH_COMPONENT* GenCopy()
|
SCH_COMPONENT* GenCopy() const
|
||||||
{
|
{
|
||||||
return new SCH_COMPONENT( *this );
|
return new SCH_COMPONENT( *this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetOrientation( int aOrientation );
|
||||||
void SetOrientation( int aOrientation );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetOrientation
|
* Function GetOrientation
|
||||||
|
@ -217,7 +216,7 @@ public:
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
//-----<Fields>-----------------------------------------------------------
|
//-----<Fields>-----------------------------------------------------------
|
||||||
|
|
||||||
|
@ -274,16 +273,15 @@ public:
|
||||||
*/
|
*/
|
||||||
LIB_PIN* GetPin( const wxString& number );
|
LIB_PIN* GetPin( const wxString& number );
|
||||||
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel,
|
virtual void Draw( WinEDA_DrawPanel* panel,
|
||||||
wxDC* DC,
|
wxDC* DC,
|
||||||
const wxPoint& offset,
|
const wxPoint& offset,
|
||||||
int draw_mode,
|
int draw_mode,
|
||||||
int Color = -1 )
|
int Color = -1 )
|
||||||
{
|
{
|
||||||
Draw( panel, DC, offset, draw_mode, Color, true );
|
Draw( panel, DC, offset, draw_mode, Color, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Draw( WinEDA_DrawPanel* panel,
|
void Draw( WinEDA_DrawPanel* panel,
|
||||||
wxDC* DC,
|
wxDC* DC,
|
||||||
const wxPoint& offset,
|
const wxPoint& offset,
|
||||||
|
@ -326,14 +324,6 @@ public:
|
||||||
// Set the unit selection, for the given sheet path.
|
// Set the unit selection, for the given sheet path.
|
||||||
void SetUnitSelection( SCH_SHEET_PATH* aSheet, int aUnitSelection );
|
void SetUnitSelection( SCH_SHEET_PATH* aSheet, int aUnitSelection );
|
||||||
|
|
||||||
/**
|
|
||||||
* Function GetPenSize
|
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
|
||||||
* for a component, has no meaning, but it is necessary to satisfy the
|
|
||||||
* SCH_ITEM class requirements.
|
|
||||||
*/
|
|
||||||
virtual int GetPenSize() { return 0; }
|
|
||||||
|
|
||||||
// Geometric transforms (used in block operations):
|
// Geometric transforms (used in block operations):
|
||||||
|
|
||||||
/** virtual function Move
|
/** virtual function Move
|
||||||
|
@ -377,7 +367,7 @@ public:
|
||||||
|
|
||||||
virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const;
|
virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const;
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Show
|
* Function Show
|
||||||
|
@ -389,6 +379,10 @@ public:
|
||||||
void Show( int nestLevel, std::ostream& os );
|
void Show( int nestLevel, std::ostream& os );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool DoHitTest( const wxPoint& aPoint, int aAccuracy ) const;
|
||||||
|
virtual bool DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
SCH_FIELD::SCH_FIELD( const wxPoint& aPos, int aFieldId,
|
SCH_FIELD::SCH_FIELD( const wxPoint& aPos, int aFieldId,
|
||||||
SCH_COMPONENT* aParent, wxString aName ) :
|
SCH_COMPONENT* aParent, wxString aName ) :
|
||||||
SCH_ITEM( aParent, DRAW_PART_TEXT_STRUCT_TYPE ),
|
SCH_ITEM( aParent, SCH_FIELD_T ),
|
||||||
EDA_TextStruct()
|
EDA_TextStruct()
|
||||||
{
|
{
|
||||||
m_Pos = aPos;
|
m_Pos = aPos;
|
||||||
|
@ -53,7 +53,7 @@ SCH_FIELD::~SCH_FIELD()
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
int SCH_FIELD::GetPenSize()
|
int SCH_FIELD::GetPenSize() const
|
||||||
{
|
{
|
||||||
int pensize = m_Thickness;
|
int pensize = m_Thickness;
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ void SCH_FIELD::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
* so the more easily way is to use no justifications ( Centered text )
|
* so the more easily way is to use no justifications ( Centered text )
|
||||||
* and use GetBoundaryBox to know the text coordinate considered as centered
|
* and use GetBoundaryBox to know the text coordinate considered as centered
|
||||||
*/
|
*/
|
||||||
EDA_Rect BoundaryBox = GetBoundaryBox();
|
EDA_Rect BoundaryBox = GetBoundingBox();
|
||||||
GRTextHorizJustifyType hjustify = GR_TEXT_HJUSTIFY_CENTER;
|
GRTextHorizJustifyType hjustify = GR_TEXT_HJUSTIFY_CENTER;
|
||||||
GRTextVertJustifyType vjustify = GR_TEXT_VJUSTIFY_CENTER;
|
GRTextVertJustifyType vjustify = GR_TEXT_VJUSTIFY_CENTER;
|
||||||
textpos = BoundaryBox.Centre();
|
textpos = BoundaryBox.Centre();
|
||||||
|
@ -226,11 +226,10 @@ void SCH_FIELD::SwapData( SCH_FIELD* copyitem )
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundaryBox
|
* Function GetBoundaryBox
|
||||||
* @return an EDA_Rect contains the real (user coordinates) boundary box for
|
* @return an EDA_Rect contains the real (user coordinates) boundary box for a text field.
|
||||||
* a text field,
|
|
||||||
* according to the component position, rotation, mirror ...
|
* according to the component position, rotation, mirror ...
|
||||||
*/
|
*/
|
||||||
EDA_Rect SCH_FIELD::GetBoundaryBox() const
|
EDA_Rect SCH_FIELD::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
EDA_Rect BoundaryBox;
|
EDA_Rect BoundaryBox;
|
||||||
int hjustify, vjustify;
|
int hjustify, vjustify;
|
||||||
|
@ -251,8 +250,7 @@ EDA_Rect SCH_FIELD::GetBoundaryBox() const
|
||||||
|
|
||||||
pos2 = pos + parentComponent->m_Transform.TransformCoordinate( pos1 );
|
pos2 = pos + parentComponent->m_Transform.TransformCoordinate( pos1 );
|
||||||
|
|
||||||
/* Calculate the text orientation, according to the component
|
// Calculate the text orientation, according to the component orientation/mirror.
|
||||||
* orientation/mirror */
|
|
||||||
if( parentComponent->m_Transform.y1 )
|
if( parentComponent->m_Transform.y1 )
|
||||||
{
|
{
|
||||||
if( orient == TEXT_ORIENT_HORIZ )
|
if( orient == TEXT_ORIENT_HORIZ )
|
||||||
|
@ -261,14 +259,15 @@ EDA_Rect SCH_FIELD::GetBoundaryBox() const
|
||||||
orient = TEXT_ORIENT_HORIZ;
|
orient = TEXT_ORIENT_HORIZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Calculate the text justification, according to the component
|
// Calculate the text justification, according to the component orientation/mirror.
|
||||||
* orientation/mirror */
|
|
||||||
if( parentComponent->m_Transform.y1 )
|
if( parentComponent->m_Transform.y1 )
|
||||||
{
|
{
|
||||||
/* is it mirrored (for text justify)*/
|
/* is it mirrored (for text justify)*/
|
||||||
EXCHG( hjustify, vjustify );
|
EXCHG( hjustify, vjustify );
|
||||||
|
|
||||||
if( parentComponent->m_Transform.x2 < 0 )
|
if( parentComponent->m_Transform.x2 < 0 )
|
||||||
NEGATE( vjustify );
|
NEGATE( vjustify );
|
||||||
|
|
||||||
if( parentComponent->m_Transform.y1 > 0 )
|
if( parentComponent->m_Transform.y1 > 0 )
|
||||||
NEGATE( hjustify );
|
NEGATE( hjustify );
|
||||||
}
|
}
|
||||||
|
@ -276,6 +275,7 @@ EDA_Rect SCH_FIELD::GetBoundaryBox() const
|
||||||
{
|
{
|
||||||
if( parentComponent->m_Transform.x1 < 0 )
|
if( parentComponent->m_Transform.x1 < 0 )
|
||||||
NEGATE( hjustify );
|
NEGATE( hjustify );
|
||||||
|
|
||||||
if( parentComponent->m_Transform.y2 > 0 )
|
if( parentComponent->m_Transform.y2 > 0 )
|
||||||
NEGATE( vjustify );
|
NEGATE( vjustify );
|
||||||
}
|
}
|
||||||
|
@ -334,6 +334,7 @@ bool SCH_FIELD::Save( FILE* aFile ) const
|
||||||
hjustify = 'R';
|
hjustify = 'R';
|
||||||
|
|
||||||
char vjustify = 'C';
|
char vjustify = 'C';
|
||||||
|
|
||||||
if( m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM )
|
if( m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM )
|
||||||
vjustify = 'B';
|
vjustify = 'B';
|
||||||
else if( m_VJustify == GR_TEXT_VJUSTIFY_TOP )
|
else if( m_VJustify == GR_TEXT_VJUSTIFY_TOP )
|
||||||
|
@ -391,9 +392,11 @@ void SCH_FIELD::Place( SCH_EDIT_FRAME* frame, wxDC* DC )
|
||||||
|
|
||||||
fieldNdx = m_FieldId;
|
fieldNdx = m_FieldId;
|
||||||
m_AddExtraText = 0;
|
m_AddExtraText = 0;
|
||||||
|
|
||||||
if( fieldNdx == REFERENCE )
|
if( fieldNdx == REFERENCE )
|
||||||
{
|
{
|
||||||
Entry = CMP_LIBRARY::FindLibraryComponent( component->m_ChipName );
|
Entry = CMP_LIBRARY::FindLibraryComponent( component->m_ChipName );
|
||||||
|
|
||||||
if( Entry != NULL )
|
if( Entry != NULL )
|
||||||
{
|
{
|
||||||
if( Entry->GetPartCount() > 1 )
|
if( Entry->GetPartCount() > 1 )
|
||||||
|
@ -412,6 +415,7 @@ void SCH_FIELD::Place( SCH_EDIT_FRAME* frame, wxDC* DC )
|
||||||
bool SCH_FIELD::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint * aFindLocation )
|
bool SCH_FIELD::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint * aFindLocation )
|
||||||
{
|
{
|
||||||
bool match;
|
bool match;
|
||||||
|
|
||||||
if( aAuxData && m_FieldId == REFERENCE )
|
if( aAuxData && m_FieldId == REFERENCE )
|
||||||
{
|
{
|
||||||
// reference is a special field because:
|
// reference is a special field because:
|
||||||
|
@ -421,6 +425,7 @@ bool SCH_FIELD::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint
|
||||||
SCH_COMPONENT* pSch = (SCH_COMPONENT*) m_Parent;
|
SCH_COMPONENT* pSch = (SCH_COMPONENT*) m_Parent;
|
||||||
SCH_SHEET_PATH* sheet = (SCH_SHEET_PATH*) aAuxData;
|
SCH_SHEET_PATH* sheet = (SCH_SHEET_PATH*) aAuxData;
|
||||||
wxString fulltext = pSch->GetRef( sheet );
|
wxString fulltext = pSch->GetRef( sheet );
|
||||||
|
|
||||||
if( m_AddExtraText )
|
if( m_AddExtraText )
|
||||||
{
|
{
|
||||||
/* For more than one part per package, we must add the part selection
|
/* For more than one part per package, we must add the part selection
|
||||||
|
@ -428,18 +433,22 @@ bool SCH_FIELD::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint
|
||||||
int part_id = pSch->GetUnitSelection( sheet );
|
int part_id = pSch->GetUnitSelection( sheet );
|
||||||
fulltext << LIB_COMPONENT::ReturnSubReference( part_id );
|
fulltext << LIB_COMPONENT::ReturnSubReference( part_id );
|
||||||
}
|
}
|
||||||
|
|
||||||
match = SCH_ITEM::Matches( fulltext, aSearchData );
|
match = SCH_ITEM::Matches( fulltext, aSearchData );
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
match = SCH_ITEM::Matches( m_Text, aSearchData );
|
match = SCH_ITEM::Matches( m_Text, aSearchData );
|
||||||
|
|
||||||
if( match )
|
if( match )
|
||||||
{
|
{
|
||||||
EDA_Rect BoundaryBox = GetBoundaryBox();
|
EDA_Rect BoundaryBox = GetBoundingBox();
|
||||||
|
|
||||||
if( aFindLocation )
|
if( aFindLocation )
|
||||||
*aFindLocation = GetBoundaryBox().Centre();
|
*aFindLocation = GetBoundingBox().Centre();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -448,3 +457,34 @@ void SCH_FIELD::Rotate( wxPoint rotationPoint )
|
||||||
{
|
{
|
||||||
RotatePoint( &m_Pos, rotationPoint, 900 );
|
RotatePoint( &m_Pos, rotationPoint, 900 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_FIELD::DoHitTest( const wxPoint& aPoint, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
// Do not hit test hidden fields.
|
||||||
|
if( !IsVisible() )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
EDA_Rect rect = GetBoundingBox();
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
return rect.Inside( aPoint );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_FIELD::DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
// Do not hit test hidden fields.
|
||||||
|
if( !IsVisible() )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
EDA_Rect rect = aRect;
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
if( aContained )
|
||||||
|
return rect.Inside( GetBoundingBox() );
|
||||||
|
|
||||||
|
return rect.Intersects( GetBoundingBox() );
|
||||||
|
}
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
|
|
||||||
#include "sch_item_struct.h"
|
#include "sch_item_struct.h"
|
||||||
|
|
||||||
#include "general.h"
|
#include "general.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,7 +35,6 @@ class SCH_FIELD : public SCH_ITEM, public EDA_TextStruct
|
||||||
public:
|
public:
|
||||||
int m_FieldId; ///< Field index, @see enum NumFieldType
|
int m_FieldId; ///< Field index, @see enum NumFieldType
|
||||||
|
|
||||||
|
|
||||||
wxString m_Name;
|
wxString m_Name;
|
||||||
|
|
||||||
bool m_AddExtraText; /**< for REFERENCE, add extra info
|
bool m_AddExtraText; /**< for REFERENCE, add extra info
|
||||||
|
@ -53,16 +51,15 @@ public:
|
||||||
return wxT( "SCH_FIELD" );
|
return wxT( "SCH_FIELD" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Place( SCH_EDIT_FRAME* frame, wxDC* DC );
|
||||||
|
|
||||||
void Place( SCH_EDIT_FRAME* frame, wxDC* DC );
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
EDA_Rect GetBoundaryBox() const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function IsVoid
|
* Function IsVoid
|
||||||
* returns true if the field is either empty or holds "~".
|
* returns true if the field is either empty or holds "~".
|
||||||
*/
|
*/
|
||||||
bool IsVoid()
|
bool IsVoid() const
|
||||||
{
|
{
|
||||||
size_t len = m_Text.Len();
|
size_t len = m_Text.Len();
|
||||||
|
|
||||||
|
@ -84,13 +81,13 @@ public:
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
int GetPenSize();
|
int GetPenSize() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function IsVisible
|
* Function IsVisible
|
||||||
* @return true is this field is visible, false if flagged invisible
|
* @return true is this field is visible, false if flagged invisible
|
||||||
*/
|
*/
|
||||||
bool IsVisible()
|
bool IsVisible() const
|
||||||
{
|
{
|
||||||
return (m_Attributs & TEXT_NO_VISIBLE) == 0 ? true : false;
|
return (m_Attributs & TEXT_NO_VISIBLE) == 0 ? true : false;
|
||||||
}
|
}
|
||||||
|
@ -99,11 +96,11 @@ public:
|
||||||
/**
|
/**
|
||||||
* Function Draw
|
* Function Draw
|
||||||
*/
|
*/
|
||||||
void Draw( WinEDA_DrawPanel* panel,
|
void Draw( WinEDA_DrawPanel* aPanel,
|
||||||
wxDC* DC,
|
wxDC* aDC,
|
||||||
const wxPoint& offset,
|
const wxPoint& aOffset,
|
||||||
int draw_mode,
|
int aDrawMode,
|
||||||
int Color = -1 );
|
int aColor = -1 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
@ -136,7 +133,6 @@ public:
|
||||||
* master class */
|
* master class */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** virtual function Mirror_Y
|
/** virtual function Mirror_Y
|
||||||
* mirror item relative to an Y axis
|
* mirror item relative to an Y axis
|
||||||
* @param aYaxis_position = the y axis position
|
* @param aYaxis_position = the y axis position
|
||||||
|
@ -149,7 +145,6 @@ public:
|
||||||
* master class */
|
* master class */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compare schematic field text against search string.
|
* Compare schematic field text against search string.
|
||||||
*
|
*
|
||||||
|
@ -163,6 +158,10 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual bool Matches( wxFindReplaceData& aSearchData,
|
virtual bool Matches( wxFindReplaceData& aSearchData,
|
||||||
void* aAuxData, wxPoint * aFindLocation );
|
void* aAuxData, wxPoint * aFindLocation );
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool DoHitTest( const wxPoint& aPoint, int aAccuracy ) const;
|
||||||
|
virtual bool DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
/***********************/
|
/***********************/
|
||||||
|
|
||||||
SCH_BUS_ENTRY::SCH_BUS_ENTRY( const wxPoint& pos, int shape, int id ) :
|
SCH_BUS_ENTRY::SCH_BUS_ENTRY( const wxPoint& pos, int shape, int id ) :
|
||||||
SCH_ITEM( NULL, DRAW_BUSENTRY_STRUCT_TYPE )
|
SCH_ITEM( NULL, SCH_BUS_ENTRY_T )
|
||||||
{
|
{
|
||||||
m_Pos = pos;
|
m_Pos = pos;
|
||||||
m_Size.x = 100;
|
m_Size.x = 100;
|
||||||
|
@ -138,7 +138,7 @@ bool SCH_BUS_ENTRY::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect SCH_BUS_ENTRY::GetBoundingBox()
|
EDA_Rect SCH_BUS_ENTRY::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
EDA_Rect box;
|
EDA_Rect box;
|
||||||
|
|
||||||
|
@ -157,7 +157,7 @@ EDA_Rect SCH_BUS_ENTRY::GetBoundingBox()
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
int SCH_BUS_ENTRY::GetPenSize()
|
int SCH_BUS_ENTRY::GetPenSize() const
|
||||||
{
|
{
|
||||||
int pensize = ( m_Width == 0 ) ? g_DrawDefaultLineThickness : m_Width;
|
int pensize = ( m_Width == 0 ) ? g_DrawDefaultLineThickness : m_Width;
|
||||||
|
|
||||||
|
@ -246,11 +246,30 @@ void SCH_BUS_ENTRY::GetConnectionPoints( vector< wxPoint >& aPoints ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_BUS_ENTRY::DoHitTest( const wxPoint& aPoint, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
return TestSegmentHit( aPoint, m_Pos, m_End(), aAccuracy );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_BUS_ENTRY::DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
EDA_Rect rect = aRect;
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
if( aContained )
|
||||||
|
return rect.Inside( GetBoundingBox() );
|
||||||
|
|
||||||
|
return rect.Intersects( GetBoundingBox() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************/
|
/**********************/
|
||||||
/* class SCH_JUNCTION */
|
/* class SCH_JUNCTION */
|
||||||
/**********************/
|
/**********************/
|
||||||
|
|
||||||
SCH_JUNCTION::SCH_JUNCTION( const wxPoint& pos ) : SCH_ITEM( NULL, DRAW_JUNCTION_STRUCT_TYPE )
|
SCH_JUNCTION::SCH_JUNCTION( const wxPoint& pos ) : SCH_ITEM( NULL, SCH_JUNCTION_T )
|
||||||
{
|
{
|
||||||
#define DRAWJUNCTION_DIAMETER 32 /* Diameter of junction symbol between wires */
|
#define DRAWJUNCTION_DIAMETER 32 /* Diameter of junction symbol between wires */
|
||||||
m_Pos = pos;
|
m_Pos = pos;
|
||||||
|
@ -311,7 +330,7 @@ bool SCH_JUNCTION::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect SCH_JUNCTION::GetBoundingBox()
|
EDA_Rect SCH_JUNCTION::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
EDA_Rect rect;
|
EDA_Rect rect;
|
||||||
|
|
||||||
|
@ -322,31 +341,6 @@ EDA_Rect SCH_JUNCTION::GetBoundingBox()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool SCH_JUNCTION::HitTest( const wxPoint& aPosRef )
|
|
||||||
{
|
|
||||||
wxPoint dist = aPosRef - m_Pos;
|
|
||||||
|
|
||||||
return sqrt( ( (double) ( dist.x * dist.x ) ) +
|
|
||||||
( (double) ( dist.y * dist.y ) ) ) < ( m_Size.x / 2 );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function GetPenSize
|
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
|
||||||
* has no meaning for SCH_JUNCTION
|
|
||||||
*/
|
|
||||||
int SCH_JUNCTION::GetPenSize()
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Routine to redraw connection struct. *
|
* Routine to redraw connection struct. *
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
@ -370,7 +364,7 @@ void SCH_JUNCTION::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
void SCH_JUNCTION::Mirror_X( int aXaxis_position )
|
void SCH_JUNCTION::Mirror_X( int aXaxis_position )
|
||||||
{
|
{
|
||||||
m_Pos.y -= aXaxis_position;
|
m_Pos.y -= aXaxis_position;
|
||||||
NEGATE( m_Pos.y );
|
NEGATE( m_Pos.y );
|
||||||
m_Pos.y += aXaxis_position;
|
m_Pos.y += aXaxis_position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -378,7 +372,7 @@ void SCH_JUNCTION::Mirror_X( int aXaxis_position )
|
||||||
void SCH_JUNCTION::Mirror_Y( int aYaxis_position )
|
void SCH_JUNCTION::Mirror_Y( int aYaxis_position )
|
||||||
{
|
{
|
||||||
m_Pos.x -= aYaxis_position;
|
m_Pos.x -= aYaxis_position;
|
||||||
NEGATE( m_Pos.x );
|
NEGATE( m_Pos.x );
|
||||||
m_Pos.x += aYaxis_position;
|
m_Pos.x += aYaxis_position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -424,16 +418,37 @@ void SCH_JUNCTION::Show( int nestLevel, std::ostream& os )
|
||||||
|
|
||||||
NestedSpace( nestLevel, os ) << '<' << s.Lower().mb_str() << m_Pos << "/>\n";
|
NestedSpace( nestLevel, os ) << '<' << s.Lower().mb_str() << m_Pos << "/>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_JUNCTION::DoHitTest( const wxPoint& aPoint, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
EDA_Rect rect = GetBoundingBox();
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
return rect.Inside( aPoint );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_JUNCTION::DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
EDA_Rect rect = aRect;
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
if( aContained )
|
||||||
|
return rect.Inside( GetBoundingBox() );
|
||||||
|
|
||||||
|
return rect.Intersects( GetBoundingBox() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/************************/
|
/************************/
|
||||||
/* class SCH_NO_CONNECT */
|
/* class SCH_NO_CONNECT */
|
||||||
/************************/
|
/************************/
|
||||||
|
|
||||||
SCH_NO_CONNECT::SCH_NO_CONNECT( const wxPoint& pos ) : SCH_ITEM( NULL, DRAW_NOCONNECT_STRUCT_TYPE )
|
SCH_NO_CONNECT::SCH_NO_CONNECT( const wxPoint& pos ) : SCH_ITEM( NULL, SCH_NO_CONNECT_T )
|
||||||
{
|
{
|
||||||
#define DRAWNOCONNECT_SIZE 48 /* No symbol connection range. */
|
#define DRAWNOCONNECT_SIZE 48 /* No symbol connection range. */
|
||||||
m_Pos = pos;
|
m_Pos = pos;
|
||||||
|
@ -453,7 +468,7 @@ SCH_NO_CONNECT* SCH_NO_CONNECT::GenCopy()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect SCH_NO_CONNECT::GetBoundingBox()
|
EDA_Rect SCH_NO_CONNECT::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
int delta = ( GetPenSize() + m_Size.x ) / 2;
|
int delta = ( GetPenSize() + m_Size.x ) / 2;
|
||||||
EDA_Rect box;
|
EDA_Rect box;
|
||||||
|
@ -465,24 +480,6 @@ EDA_Rect SCH_NO_CONNECT::GetBoundingBox()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool SCH_NO_CONNECT::HitTest( const wxPoint& aPosRef )
|
|
||||||
{
|
|
||||||
int width = g_DrawDefaultLineThickness;
|
|
||||||
int delta = ( m_Size.x + width ) / 2;
|
|
||||||
|
|
||||||
wxPoint dist = aPosRef - m_Pos;
|
|
||||||
|
|
||||||
if( ( ABS( dist.x ) <= delta ) && ( ABS( dist.y ) <= delta ) )
|
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
* writes the data structures for this object out to a FILE in "*.sch" format.
|
* writes the data structures for this object out to a FILE in "*.sch" format.
|
||||||
|
@ -526,7 +523,7 @@ bool SCH_NO_CONNECT::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
int SCH_NO_CONNECT::GetPenSize()
|
int SCH_NO_CONNECT::GetPenSize() const
|
||||||
{
|
{
|
||||||
return g_DrawDefaultLineThickness;
|
return g_DrawDefaultLineThickness;
|
||||||
}
|
}
|
||||||
|
@ -596,12 +593,38 @@ void SCH_NO_CONNECT::GetConnectionPoints( vector< wxPoint >& aPoints ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_NO_CONNECT::DoHitTest( const wxPoint& aPoint, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
int delta = ( ( m_Size.x + g_DrawDefaultLineThickness ) / 2 ) + aAccuracy;
|
||||||
|
|
||||||
|
wxPoint dist = aPoint - m_Pos;
|
||||||
|
|
||||||
|
if( ( ABS( dist.x ) <= delta ) && ( ABS( dist.y ) <= delta ) )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_NO_CONNECT::DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
EDA_Rect rect = aRect;
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
if( aContained )
|
||||||
|
return rect.Inside( GetBoundingBox() );
|
||||||
|
|
||||||
|
return rect.Intersects( GetBoundingBox() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************/
|
/******************/
|
||||||
/* Class SCH_LINE */
|
/* Class SCH_LINE */
|
||||||
/******************/
|
/******************/
|
||||||
|
|
||||||
SCH_LINE::SCH_LINE( const wxPoint& pos, int layer ) :
|
SCH_LINE::SCH_LINE( const wxPoint& pos, int layer ) :
|
||||||
SCH_ITEM( NULL, DRAW_SEGMENT_STRUCT_TYPE )
|
SCH_ITEM( NULL, SCH_LINE_T )
|
||||||
{
|
{
|
||||||
m_Start = pos;
|
m_Start = pos;
|
||||||
m_End = pos;
|
m_End = pos;
|
||||||
|
@ -635,13 +658,19 @@ SCH_LINE* SCH_LINE::GenCopy()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool SCH_LINE::IsOneEndPointAt( const wxPoint& pos )
|
void SCH_LINE::Move( const wxPoint& aOffset )
|
||||||
{
|
{
|
||||||
if( ( pos.x == m_Start.x ) && ( pos.y == m_Start.y ) )
|
if( (m_Flags & STARTPOINT) == 0 && aOffset != wxPoint( 0, 0 ) )
|
||||||
return TRUE;
|
{
|
||||||
if( ( pos.x == m_End.x ) && ( pos.y == m_End.y ) )
|
m_Start += aOffset;
|
||||||
return TRUE;
|
SetModified();
|
||||||
return FALSE;
|
}
|
||||||
|
|
||||||
|
if( (m_Flags & ENDPOINT) == 0 && aOffset != wxPoint( 0, 0 ) )
|
||||||
|
{
|
||||||
|
m_End += aOffset;
|
||||||
|
SetModified();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -654,7 +683,7 @@ bool SCH_LINE::IsOneEndPointAt( const wxPoint& pos )
|
||||||
* 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 SCH_LINE::Show( int nestLevel, std::ostream& os )
|
void SCH_LINE::Show( int nestLevel, std::ostream& os ) const
|
||||||
{
|
{
|
||||||
NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str()
|
NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str()
|
||||||
<< " layer=\"" << m_Layer << '"'
|
<< " layer=\"" << m_Layer << '"'
|
||||||
|
@ -671,7 +700,7 @@ void SCH_LINE::Show( int nestLevel, std::ostream& os )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect SCH_LINE::GetBoundingBox()
|
EDA_Rect SCH_LINE::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
int width = 25;
|
int width = 25;
|
||||||
|
|
||||||
|
@ -703,12 +732,15 @@ bool SCH_LINE::Save( FILE* aFile ) const
|
||||||
|
|
||||||
if( GetLayer() == LAYER_WIRE )
|
if( GetLayer() == LAYER_WIRE )
|
||||||
layer = "Wire";
|
layer = "Wire";
|
||||||
|
|
||||||
if( GetLayer() == LAYER_BUS )
|
if( GetLayer() == LAYER_BUS )
|
||||||
layer = "Bus";
|
layer = "Bus";
|
||||||
|
|
||||||
if( fprintf( aFile, "Wire %s %s\n", layer, width ) == EOF )
|
if( fprintf( aFile, "Wire %s %s\n", layer, width ) == EOF )
|
||||||
{
|
{
|
||||||
success = false;
|
success = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( fprintf( aFile, "\t%-4d %-4d %-4d %-4d\n", m_Start.x, m_Start.y,
|
if( fprintf( aFile, "\t%-4d %-4d %-4d %-4d\n", m_Start.x, m_Start.y,
|
||||||
m_End.x, m_End.y ) == EOF )
|
m_End.x, m_End.y ) == EOF )
|
||||||
{
|
{
|
||||||
|
@ -740,6 +772,7 @@ bool SCH_LINE::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
|
|
||||||
if( Name1[0] == 'W' )
|
if( Name1[0] == 'W' )
|
||||||
m_Layer = LAYER_WIRE;
|
m_Layer = LAYER_WIRE;
|
||||||
|
|
||||||
if( Name1[0] == 'B' )
|
if( Name1[0] == 'B' )
|
||||||
m_Layer = LAYER_BUS;
|
m_Layer = LAYER_BUS;
|
||||||
|
|
||||||
|
@ -760,7 +793,7 @@ bool SCH_LINE::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
int SCH_LINE::GetPenSize()
|
int SCH_LINE::GetPenSize() const
|
||||||
{
|
{
|
||||||
int pensize = ( m_Width == 0 ) ? g_DrawDefaultLineThickness : m_Width;
|
int pensize = ( m_Width == 0 ) ? g_DrawDefaultLineThickness : m_Width;
|
||||||
|
|
||||||
|
@ -835,7 +868,7 @@ void SCH_LINE::Rotate( wxPoint rotationPoint )
|
||||||
|
|
||||||
bool SCH_LINE::MergeOverlap( SCH_LINE* aLine )
|
bool SCH_LINE::MergeOverlap( SCH_LINE* aLine )
|
||||||
{
|
{
|
||||||
wxCHECK_MSG( aLine != NULL && aLine->Type() == DRAW_SEGMENT_STRUCT_TYPE, false,
|
wxCHECK_MSG( aLine != NULL && aLine->Type() == SCH_LINE_T, false,
|
||||||
wxT( "Cannot test line segment for overlap." ) );
|
wxT( "Cannot test line segment for overlap." ) );
|
||||||
|
|
||||||
if( this == aLine || GetLayer() != aLine->GetLayer() )
|
if( this == aLine || GetLayer() != aLine->GetLayer() )
|
||||||
|
@ -974,11 +1007,30 @@ void SCH_LINE::GetConnectionPoints( vector< wxPoint >& aPoints ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_LINE::DoHitTest( const wxPoint& aPoint, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
return TestSegmentHit( aPoint, m_Start, m_End, aAccuracy );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_LINE::DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
EDA_Rect rect = aRect;
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
if( aContained )
|
||||||
|
return rect.Inside( GetBoundingBox() );
|
||||||
|
|
||||||
|
return rect.Intersects( GetBoundingBox() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************/
|
/**********************/
|
||||||
/* Class SCH_POLYLINE */
|
/* Class SCH_POLYLINE */
|
||||||
/**********************/
|
/**********************/
|
||||||
|
|
||||||
SCH_POLYLINE::SCH_POLYLINE( int layer ) : SCH_ITEM( NULL, DRAW_POLYLINE_STRUCT_TYPE )
|
SCH_POLYLINE::SCH_POLYLINE( int layer ) : SCH_ITEM( NULL, SCH_POLYLINE_T )
|
||||||
{
|
{
|
||||||
m_Width = 0;
|
m_Width = 0;
|
||||||
|
|
||||||
|
@ -1093,7 +1145,7 @@ bool SCH_POLYLINE::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
int SCH_POLYLINE::GetPenSize()
|
int SCH_POLYLINE::GetPenSize() const
|
||||||
{
|
{
|
||||||
int pensize = ( m_Width == 0 ) ? g_DrawDefaultLineThickness : m_Width;
|
int pensize = ( m_Width == 0 ) ? g_DrawDefaultLineThickness : m_Width;
|
||||||
|
|
||||||
|
@ -1101,18 +1153,18 @@ int SCH_POLYLINE::GetPenSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SCH_POLYLINE::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
void SCH_POLYLINE::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, const wxPoint& aOffset,
|
||||||
const wxPoint& offset, int DrawMode, int Color )
|
int aDrawMode, int aColor )
|
||||||
{
|
{
|
||||||
int color;
|
int color;
|
||||||
int width = GetPenSize();
|
int width = GetPenSize();
|
||||||
|
|
||||||
if( Color >= 0 )
|
if( aColor >= 0 )
|
||||||
color = Color;
|
color = aColor;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = ReturnLayerColor( m_Layer );
|
||||||
|
|
||||||
GRSetDrawMode( DC, DrawMode );
|
GRSetDrawMode( aDC, aDrawMode );
|
||||||
|
|
||||||
if( m_Layer == LAYER_BUS )
|
if( m_Layer == LAYER_BUS )
|
||||||
{
|
{
|
||||||
|
@ -1124,14 +1176,14 @@ void SCH_POLYLINE::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
if( m_Layer == LAYER_NOTES )
|
if( m_Layer == LAYER_NOTES )
|
||||||
{
|
{
|
||||||
for( unsigned i = 1; i < GetCornerCount(); i++ )
|
for( unsigned i = 1; i < GetCornerCount(); i++ )
|
||||||
GRDashedLineTo( &panel->m_ClipBox, DC, m_PolyPoints[i].x + offset.x,
|
GRDashedLineTo( &aPanel->m_ClipBox, aDC, m_PolyPoints[i].x + aOffset.x,
|
||||||
m_PolyPoints[i].y + offset.y, width, color );
|
m_PolyPoints[i].y + aOffset.y, width, color );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for( unsigned i = 1; i < GetCornerCount(); i++ )
|
for( unsigned i = 1; i < GetCornerCount(); i++ )
|
||||||
GRLineTo( &panel->m_ClipBox, DC, m_PolyPoints[i].x + offset.x,
|
GRLineTo( &aPanel->m_ClipBox, aDC, m_PolyPoints[i].x + aOffset.x,
|
||||||
m_PolyPoints[i].y + offset.y, width, color );
|
m_PolyPoints[i].y + aOffset.y, width, color );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1165,3 +1217,28 @@ void SCH_POLYLINE::Rotate( wxPoint rotationPoint )
|
||||||
RotatePoint( &m_PolyPoints[ii], rotationPoint, 900 );
|
RotatePoint( &m_PolyPoints[ii], rotationPoint, 900 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_POLYLINE::DoHitTest( const wxPoint& aPoint, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
for( size_t i = 0; i < m_PolyPoints.size() - 1; i++ )
|
||||||
|
{
|
||||||
|
if( TestSegmentHit( aPoint, m_PolyPoints[i], m_PolyPoints[i + 1], aAccuracy ) )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_POLYLINE::DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
EDA_Rect rect = aRect;
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
if( aContained )
|
||||||
|
return rect.Inside( GetBoundingBox() );
|
||||||
|
|
||||||
|
return rect.Intersects( GetBoundingBox() );
|
||||||
|
}
|
||||||
|
|
|
@ -43,15 +43,14 @@ public:
|
||||||
return wxT( "SCH_LINE" );
|
return wxT( "SCH_LINE" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsEndPoint( const wxPoint& aPoint ) const
|
||||||
bool IsOneEndPointAt( const wxPoint& pos );
|
|
||||||
SCH_LINE* GenCopy();
|
|
||||||
|
|
||||||
bool IsNull()
|
|
||||||
{
|
{
|
||||||
return m_Start == m_End;
|
return aPoint == m_Start || aPoint == m_End;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SCH_LINE* GenCopy();
|
||||||
|
|
||||||
|
bool IsNull() const { return m_Start == m_End; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
|
@ -60,19 +59,18 @@ public:
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset,
|
virtual void Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, const wxPoint& aOffset,
|
||||||
int draw_mode, int Color = -1 );
|
int aDrawMode, int aColor = -1 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
* writes the data structures for this object out to a FILE in "*.sch"
|
* writes the data structures for this object out to a FILE in "*.sch" format.
|
||||||
* format.
|
|
||||||
* @param aFile The FILE to write to.
|
* @param aFile The FILE to write to.
|
||||||
* @return bool - true if success writing else false.
|
* @return bool - true if success writing else false.
|
||||||
*/
|
*/
|
||||||
bool Save( FILE* aFile ) const;
|
bool Save( FILE* aFile ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load schematic line from \a aLine in a .sch file.
|
* Load schematic line from \a aLine in a .sch file.
|
||||||
|
@ -88,7 +86,7 @@ public:
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
virtual int GetPenSize();
|
virtual int GetPenSize() const;
|
||||||
|
|
||||||
// Geometric transforms (used in block operations):
|
// Geometric transforms (used in block operations):
|
||||||
|
|
||||||
|
@ -96,14 +94,7 @@ public:
|
||||||
* move item to a new position.
|
* move item to a new position.
|
||||||
* @param aMoveVector = the displacement vector
|
* @param aMoveVector = the displacement vector
|
||||||
*/
|
*/
|
||||||
virtual void Move( const wxPoint& aMoveVector )
|
virtual void Move( const wxPoint& aMoveVector );
|
||||||
{
|
|
||||||
if( (m_Flags & STARTPOINT) == 0 )
|
|
||||||
m_Start += aMoveVector;
|
|
||||||
if( (m_Flags & ENDPOINT) == 0 )
|
|
||||||
m_End += aMoveVector;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** virtual function Mirror_Y
|
/** virtual function Mirror_Y
|
||||||
* mirror item relative to an Y axis
|
* mirror item relative to an Y axis
|
||||||
|
@ -136,9 +127,12 @@ public:
|
||||||
virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const;
|
virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const;
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
void Show( int nestLevel, std::ostream& os );
|
void Show( int nestLevel, std::ostream& os ) const;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool DoHitTest( const wxPoint& aPoint, int aAccuracy ) const;
|
||||||
|
virtual bool DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -151,23 +145,22 @@ public:
|
||||||
public:
|
public:
|
||||||
SCH_NO_CONNECT( const wxPoint& pos = wxPoint( 0, 0 ) );
|
SCH_NO_CONNECT( const wxPoint& pos = wxPoint( 0, 0 ) );
|
||||||
~SCH_NO_CONNECT() { }
|
~SCH_NO_CONNECT() { }
|
||||||
|
|
||||||
virtual wxString GetClass() const
|
virtual wxString GetClass() const
|
||||||
{
|
{
|
||||||
return wxT( "SCH_NO_CONNECT" );
|
return wxT( "SCH_NO_CONNECT" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SCH_NO_CONNECT* GenCopy();
|
SCH_NO_CONNECT* GenCopy();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
virtual int GetPenSize();
|
virtual int GetPenSize() const;
|
||||||
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
virtual void Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, const wxPoint& affset,
|
||||||
const wxPoint& offset, int draw_mode,
|
int aDrawMode, int aColor = -1 );
|
||||||
int Color = -1 );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
@ -176,7 +169,7 @@ public:
|
||||||
* @param aFile The FILE to write to.
|
* @param aFile The FILE to write to.
|
||||||
* @return bool - true if success writing else false.
|
* @return bool - true if success writing else false.
|
||||||
*/
|
*/
|
||||||
bool Save( FILE* aFile ) const;
|
bool Save( FILE* aFile ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load schematic no connect entry from \a aLine in a .sch file.
|
* Load schematic no connect entry from \a aLine in a .sch file.
|
||||||
|
@ -188,13 +181,6 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg );
|
virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg );
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool HitTest( const wxPoint& aPosRef );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* returns the orthogonal, bounding box of this object for display
|
* returns the orthogonal, bounding box of this object for display
|
||||||
|
@ -203,7 +189,7 @@ public:
|
||||||
* schematic coordinate system. It is OK to overestimate the size
|
* schematic coordinate system. It is OK to overestimate the size
|
||||||
* by a few counts.
|
* by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
// Geometric transforms (used in block operations):
|
// Geometric transforms (used in block operations):
|
||||||
|
|
||||||
|
@ -216,7 +202,6 @@ public:
|
||||||
m_Pos += aMoveVector;
|
m_Pos += aMoveVector;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** virtual function Mirror_Y
|
/** virtual function Mirror_Y
|
||||||
* mirror item relative to an Y axis
|
* mirror item relative to an Y axis
|
||||||
* @param aYaxis_position = the y axis position
|
* @param aYaxis_position = the y axis position
|
||||||
|
@ -228,6 +213,10 @@ public:
|
||||||
virtual bool IsSelectStateChanged( const wxRect& aRect );
|
virtual bool IsSelectStateChanged( const wxRect& aRect );
|
||||||
|
|
||||||
virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const;
|
virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool DoHitTest( const wxPoint& aPoint, int aAccuracy ) const;
|
||||||
|
virtual bool DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -254,10 +243,11 @@ public:
|
||||||
|
|
||||||
|
|
||||||
SCH_BUS_ENTRY* GenCopy();
|
SCH_BUS_ENTRY* GenCopy();
|
||||||
wxPoint m_End() const;
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
wxPoint m_End() const;
|
||||||
const wxPoint& offset, int draw_mode,
|
|
||||||
int Color = -1 );
|
virtual void Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, const wxPoint& aOffset,
|
||||||
|
int aDrawMode, int aColor = -1 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
@ -266,7 +256,7 @@ public:
|
||||||
* @param aFile The FILE to write to.
|
* @param aFile The FILE to write to.
|
||||||
* @return bool - true if success writing else false.
|
* @return bool - true if success writing else false.
|
||||||
*/
|
*/
|
||||||
bool Save( FILE* aFile ) const;
|
bool Save( FILE* aFile ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load schematic bus entry from \a aLine in a .sch file.
|
* Load schematic bus entry from \a aLine in a .sch file.
|
||||||
|
@ -286,13 +276,13 @@ public:
|
||||||
* schematic coordinate system. It is OK to overestimate the size
|
* schematic coordinate system. It is OK to overestimate the size
|
||||||
* by a few counts.
|
* by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
virtual int GetPenSize();
|
virtual int GetPenSize() const;
|
||||||
|
|
||||||
// Geometric transforms (used in block operations):
|
// Geometric transforms (used in block operations):
|
||||||
|
|
||||||
|
@ -319,6 +309,10 @@ public:
|
||||||
virtual bool IsSelectStateChanged( const wxRect& aRect );
|
virtual bool IsSelectStateChanged( const wxRect& aRect );
|
||||||
|
|
||||||
virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const;
|
virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool DoHitTest( const wxPoint& aPoint, int aAccuracy ) const;
|
||||||
|
virtual bool DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
class SCH_POLYLINE : public SCH_ITEM
|
class SCH_POLYLINE : public SCH_ITEM
|
||||||
|
@ -338,9 +332,9 @@ public:
|
||||||
|
|
||||||
|
|
||||||
SCH_POLYLINE* GenCopy();
|
SCH_POLYLINE* GenCopy();
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
|
||||||
const wxPoint& offset, int draw_mode,
|
virtual void Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, const wxPoint& aOffset,
|
||||||
int Color = -1 );
|
int aDrawMode, int aColor = -1 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
@ -349,7 +343,7 @@ public:
|
||||||
* @param aFile The FILE to write to.
|
* @param aFile The FILE to write to.
|
||||||
* @return bool - true if success writing else false.
|
* @return bool - true if success writing else false.
|
||||||
*/
|
*/
|
||||||
bool Save( FILE* aFile ) const;
|
bool Save( FILE* aFile ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load schematic poly line entry from \a aLine in a .sch file.
|
* Load schematic poly line entry from \a aLine in a .sch file.
|
||||||
|
@ -365,7 +359,7 @@ public:
|
||||||
* Function AddPoint
|
* Function AddPoint
|
||||||
* add a corner to m_PolyPoints
|
* add a corner to m_PolyPoints
|
||||||
*/
|
*/
|
||||||
void AddPoint( const wxPoint& point )
|
void AddPoint( const wxPoint& point )
|
||||||
{
|
{
|
||||||
m_PolyPoints.push_back( point );
|
m_PolyPoints.push_back( point );
|
||||||
}
|
}
|
||||||
|
@ -382,7 +376,7 @@ public:
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
virtual int GetPenSize();
|
virtual int GetPenSize() const;
|
||||||
|
|
||||||
// Geometric transforms (used in block operations):
|
// Geometric transforms (used in block operations):
|
||||||
|
|
||||||
|
@ -404,6 +398,10 @@ public:
|
||||||
virtual void Mirror_Y( int aYaxis_position );
|
virtual void Mirror_Y( int aYaxis_position );
|
||||||
virtual void Mirror_X( int aXaxis_position );
|
virtual void Mirror_X( int aXaxis_position );
|
||||||
virtual void Rotate( wxPoint rotationPoint );
|
virtual void Rotate( wxPoint rotationPoint );
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool DoHitTest( const wxPoint& aPoint, int aAccuracy ) const;
|
||||||
|
virtual bool DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -422,14 +420,6 @@ public:
|
||||||
return wxT( "SCH_JUNCTION" );
|
return wxT( "SCH_JUNCTION" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool HitTest( const wxPoint& aPosRef );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* returns the orthogonal, bounding box of this object for display
|
* returns the orthogonal, bounding box of this object for display
|
||||||
|
@ -438,18 +428,12 @@ public:
|
||||||
* schematic coordinate system. It is OK to overestimate the size
|
* schematic coordinate system. It is OK to overestimate the size
|
||||||
* by a few counts.
|
* by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
SCH_JUNCTION* GenCopy();
|
SCH_JUNCTION* GenCopy();
|
||||||
|
|
||||||
/**
|
virtual void Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, const wxPoint& aOffset,
|
||||||
* Function GetPenSize
|
int aDrawMode, int aColor = -1 );
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
|
||||||
*/
|
|
||||||
virtual int GetPenSize();
|
|
||||||
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
|
||||||
const wxPoint& offset, int draw_mode, int Color = -1 );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
@ -458,7 +442,7 @@ public:
|
||||||
* @param aFile The FILE to write to.
|
* @param aFile The FILE to write to.
|
||||||
* @return bool - true if success writing else false.
|
* @return bool - true if success writing else false.
|
||||||
*/
|
*/
|
||||||
bool Save( FILE* aFile ) const;
|
bool Save( FILE* aFile ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load schematic junction entry from \a aLine in a .sch file.
|
* Load schematic junction entry from \a aLine in a .sch file.
|
||||||
|
@ -500,6 +484,10 @@ public:
|
||||||
void Show( int nestLevel, std::ostream& os );
|
void Show( int nestLevel, std::ostream& os );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool DoHitTest( const wxPoint& aPoint, int aAccuracy ) const;
|
||||||
|
virtual bool DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -32,13 +32,13 @@ const wxChar* NameMarqueurType[] =
|
||||||
/* class SCH_MARKER */
|
/* class SCH_MARKER */
|
||||||
/**************************/
|
/**************************/
|
||||||
|
|
||||||
SCH_MARKER::SCH_MARKER() : SCH_ITEM( NULL, TYPE_SCH_MARKER ), MARKER_BASE()
|
SCH_MARKER::SCH_MARKER() : SCH_ITEM( NULL, SCH_MARKER_T ), MARKER_BASE()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SCH_MARKER::SCH_MARKER( const wxPoint& pos, const wxString& text ) :
|
SCH_MARKER::SCH_MARKER( const wxPoint& pos, const wxString& text ) :
|
||||||
SCH_ITEM( NULL, TYPE_SCH_MARKER ),
|
SCH_ITEM( NULL, SCH_MARKER_T ),
|
||||||
MARKER_BASE( 0, pos, text, pos )
|
MARKER_BASE( 0, pos, text, pos )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,7 @@ bool SCH_MARKER::Matches( wxFindReplaceData& aSearchData, wxPoint * aFindLocatio
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect SCH_MARKER::GetBoundingBox()
|
EDA_Rect SCH_MARKER::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
return GetBoundingBoxMarker();
|
return GetBoundingBoxMarker();
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,19 +31,18 @@ public:
|
||||||
SCH_MARKER();
|
SCH_MARKER();
|
||||||
SCH_MARKER( const wxPoint& aPos, const wxString& aText );
|
SCH_MARKER( const wxPoint& aPos, const wxString& aText );
|
||||||
~SCH_MARKER();
|
~SCH_MARKER();
|
||||||
|
|
||||||
virtual wxString GetClass() const
|
virtual wxString GetClass() const
|
||||||
{
|
{
|
||||||
return wxT( "SCH_MARKER" );
|
return wxT( "SCH_MARKER" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SCH_MARKER* GenCopy();
|
||||||
SCH_MARKER* GenCopy();
|
|
||||||
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
|
virtual void Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
|
||||||
const wxPoint& aOffset, int aDraw_mode,
|
const wxPoint& aOffset, int aDraw_mode,
|
||||||
int aColor = -1 );
|
int aColor = -1 );
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
* writes the data structures for this object out to a FILE in "*.sch"
|
* writes the data structures for this object out to a FILE in "*.sch"
|
||||||
|
@ -53,14 +52,6 @@ public:
|
||||||
*/
|
*/
|
||||||
bool Save( FILE* aFile ) const;
|
bool Save( FILE* aFile ) const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Function GetPenSize
|
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
|
||||||
* for a marker, has no meaning, but it is necessary to satisfy the
|
|
||||||
* SCH_ITEM class requirements
|
|
||||||
*/
|
|
||||||
virtual int GetPenSize() { return 0; };
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function HitTest
|
* Function HitTest
|
||||||
* @return true if the point aPosRef is within item area
|
* @return true if the point aPosRef is within item area
|
||||||
|
@ -71,7 +62,6 @@ public:
|
||||||
return HitTestMarker( aPosRef );
|
return HitTestMarker( aPosRef );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* returns the orthogonal, bounding box of this object for display purposes.
|
* returns the orthogonal, bounding box of this object for display purposes.
|
||||||
|
@ -79,8 +69,7 @@ public:
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
virtual EDA_Rect GetBoundingBox();
|
virtual EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
|
|
||||||
// Geometric transforms (used in block operations):
|
// Geometric transforms (used in block operations):
|
||||||
|
|
||||||
|
|
|
@ -23,22 +23,22 @@ void SetaParent( SCH_ITEM* Struct, SCH_SCREEN* Screen )
|
||||||
{
|
{
|
||||||
switch( Struct->Type() )
|
switch( Struct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
Struct->SetParent( Screen );
|
Struct->SetParent( Screen );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -194,15 +194,15 @@ SCH_ITEM* SCH_SCREEN::ExtractWires( bool CreateCopy )
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
RemoveFromDrawList( item );
|
RemoveFromDrawList( item );
|
||||||
item->SetNext( List );
|
item->SetNext( List );
|
||||||
List = item;
|
List = item;
|
||||||
|
|
||||||
if( CreateCopy )
|
if( CreateCopy )
|
||||||
{
|
{
|
||||||
if( item->Type() == DRAW_JUNCTION_STRUCT_TYPE )
|
if( item->Type() == SCH_JUNCTION_T )
|
||||||
new_item = ( (SCH_JUNCTION*) item )->GenCopy();
|
new_item = ( (SCH_JUNCTION*) item )->GenCopy();
|
||||||
else
|
else
|
||||||
new_item = ( (SCH_LINE*) item )->GenCopy();
|
new_item = ( (SCH_LINE*) item )->GenCopy();
|
||||||
|
@ -234,13 +234,13 @@ bool SCH_SCREEN::SchematicCleanUp( wxDC* DC )
|
||||||
|
|
||||||
for( ; DrawList != NULL; DrawList = DrawList->Next() )
|
for( ; DrawList != NULL; DrawList = DrawList->Next() )
|
||||||
{
|
{
|
||||||
if( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE )
|
if( DrawList->Type() == SCH_LINE_T )
|
||||||
{
|
{
|
||||||
TstDrawList = DrawList->Next();
|
TstDrawList = DrawList->Next();
|
||||||
|
|
||||||
while( TstDrawList )
|
while( TstDrawList )
|
||||||
{
|
{
|
||||||
if( TstDrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE )
|
if( TstDrawList->Type() == SCH_LINE_T )
|
||||||
{
|
{
|
||||||
SCH_LINE* line = (SCH_LINE*) DrawList;
|
SCH_LINE* line = (SCH_LINE*) DrawList;
|
||||||
|
|
||||||
|
@ -438,13 +438,13 @@ void SCH_SCREENS::AddScreenToList( SCH_SCREEN* aScreen )
|
||||||
|
|
||||||
void SCH_SCREENS::BuildScreenList( EDA_ITEM* aItem )
|
void SCH_SCREENS::BuildScreenList( EDA_ITEM* aItem )
|
||||||
{
|
{
|
||||||
if( aItem && aItem->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( aItem && aItem->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* ds = (SCH_SHEET*) aItem;
|
SCH_SHEET* ds = (SCH_SHEET*) aItem;
|
||||||
aItem = ds->m_AssociatedScreen;
|
aItem = ds->m_AssociatedScreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( aItem && aItem->Type() == SCREEN_STRUCT_TYPE )
|
if( aItem && aItem->Type() == SCH_SCREEN_T )
|
||||||
{
|
{
|
||||||
SCH_SCREEN* screen = (SCH_SCREEN*) aItem;
|
SCH_SCREEN* screen = (SCH_SCREEN*) aItem;
|
||||||
AddScreenToList( screen );
|
AddScreenToList( screen );
|
||||||
|
@ -452,7 +452,7 @@ void SCH_SCREENS::BuildScreenList( EDA_ITEM* aItem )
|
||||||
|
|
||||||
while( strct )
|
while( strct )
|
||||||
{
|
{
|
||||||
if( strct->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( strct->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
BuildScreenList( strct );
|
BuildScreenList( strct );
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
#include "sch_component.h"
|
#include "sch_component.h"
|
||||||
|
|
||||||
|
|
||||||
SCH_SHEET::SCH_SHEET( const wxPoint& pos ) : SCH_ITEM( NULL, DRAW_SHEET_STRUCT_TYPE )
|
SCH_SHEET::SCH_SHEET( const wxPoint& pos ) : SCH_ITEM( NULL, SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_SHEET;
|
m_Layer = LAYER_SHEET;
|
||||||
m_Pos = pos;
|
m_Pos = pos;
|
||||||
|
@ -280,6 +280,7 @@ SCH_SHEET* SCH_SHEET::GenCopy()
|
||||||
|
|
||||||
/* don't copy screen data - just reference it. */
|
/* don't copy screen data - just reference it. */
|
||||||
newitem->m_AssociatedScreen = m_AssociatedScreen;
|
newitem->m_AssociatedScreen = m_AssociatedScreen;
|
||||||
|
|
||||||
if( m_AssociatedScreen )
|
if( m_AssociatedScreen )
|
||||||
m_AssociatedScreen->m_RefCount++;
|
m_AssociatedScreen->m_RefCount++;
|
||||||
|
|
||||||
|
@ -316,7 +317,7 @@ void SCH_SHEET::SwapData( SCH_SHEET* copyitem )
|
||||||
void SCH_SHEET::AddLabel( SCH_SHEET_PIN* aLabel )
|
void SCH_SHEET::AddLabel( SCH_SHEET_PIN* aLabel )
|
||||||
{
|
{
|
||||||
wxASSERT( aLabel != NULL );
|
wxASSERT( aLabel != NULL );
|
||||||
wxASSERT( aLabel->Type() == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE );
|
wxASSERT( aLabel->Type() == SCH_SHEET_LABEL_T );
|
||||||
|
|
||||||
m_labels.push_back( aLabel );
|
m_labels.push_back( aLabel );
|
||||||
renumberLabels();
|
renumberLabels();
|
||||||
|
@ -326,7 +327,7 @@ void SCH_SHEET::AddLabel( SCH_SHEET_PIN* aLabel )
|
||||||
void SCH_SHEET::RemoveLabel( SCH_SHEET_PIN* aLabel )
|
void SCH_SHEET::RemoveLabel( SCH_SHEET_PIN* aLabel )
|
||||||
{
|
{
|
||||||
wxASSERT( aLabel != NULL );
|
wxASSERT( aLabel != NULL );
|
||||||
wxASSERT( aLabel->Type() == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE );
|
wxASSERT( aLabel->Type() == SCH_SHEET_LABEL_T );
|
||||||
|
|
||||||
SCH_SHEET_PIN_LIST::iterator i;
|
SCH_SHEET_PIN_LIST::iterator i;
|
||||||
|
|
||||||
|
@ -356,6 +357,7 @@ bool SCH_SHEET::HasLabel( const wxString& aName )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool SCH_SHEET::IsVerticalOrientation()
|
bool SCH_SHEET::IsVerticalOrientation()
|
||||||
{
|
{
|
||||||
BOOST_FOREACH( SCH_SHEET_PIN label, m_labels )
|
BOOST_FOREACH( SCH_SHEET_PIN label, m_labels )
|
||||||
|
@ -377,7 +379,7 @@ bool SCH_SHEET::HasUndefinedLabels()
|
||||||
|
|
||||||
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() != TYPE_SCH_HIERLABEL )
|
if( DrawStruct->Type() != SCH_HIERARCHICAL_LABEL_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
HLabel = (SCH_HIERLABEL*) DrawStruct;
|
HLabel = (SCH_HIERLABEL*) DrawStruct;
|
||||||
|
@ -454,7 +456,7 @@ void SCH_SHEET::CleanupSheet()
|
||||||
|
|
||||||
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() != TYPE_SCH_HIERLABEL )
|
if( DrawStruct->Type() != SCH_HIERARCHICAL_LABEL_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
HLabel = (SCH_HIERLABEL*) DrawStruct;
|
HLabel = (SCH_HIERLABEL*) DrawStruct;
|
||||||
|
@ -489,7 +491,7 @@ SCH_SHEET_PIN* SCH_SHEET::GetLabel( const wxPoint& aPosition )
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
int SCH_SHEET::GetPenSize()
|
int SCH_SHEET::GetPenSize() const
|
||||||
{
|
{
|
||||||
return g_DrawDefaultLineThickness;
|
return g_DrawDefaultLineThickness;
|
||||||
}
|
}
|
||||||
|
@ -561,6 +563,7 @@ void SCH_SHEET::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
|
||||||
color = aColor;
|
color = aColor;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = ReturnLayerColor( m_Layer );
|
||||||
|
|
||||||
GRSetDrawMode( aDC, aDrawMode );
|
GRSetDrawMode( aDC, aDrawMode );
|
||||||
|
|
||||||
GRRect( &aPanel->m_ClipBox, aDC, pos.x, pos.y,
|
GRRect( &aPanel->m_ClipBox, aDC, pos.x, pos.y,
|
||||||
|
@ -592,6 +595,7 @@ void SCH_SHEET::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
|
||||||
txtcolor = aColor;
|
txtcolor = aColor;
|
||||||
else
|
else
|
||||||
txtcolor = ReturnLayerColor( LAYER_SHEETFILENAME );
|
txtcolor = ReturnLayerColor( LAYER_SHEETFILENAME );
|
||||||
|
|
||||||
Text = wxT( "File: " ) + m_FileName;
|
Text = wxT( "File: " ) + m_FileName;
|
||||||
DrawGraphicText( aPanel, aDC, pos_filename,
|
DrawGraphicText( aPanel, aDC, pos_filename,
|
||||||
(EDA_Colors) txtcolor, Text, name_orientation,
|
(EDA_Colors) txtcolor, Text, name_orientation,
|
||||||
|
@ -613,7 +617,7 @@ void SCH_SHEET::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC,
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* @return an EDA_Rect giving the bounding box of the sheet
|
* @return an EDA_Rect giving the bounding box of the sheet
|
||||||
*/
|
*/
|
||||||
EDA_Rect SCH_SHEET::GetBoundingBox()
|
EDA_Rect SCH_SHEET::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
int dx, dy;
|
int dx, dy;
|
||||||
|
|
||||||
|
@ -633,19 +637,6 @@ EDA_Rect SCH_SHEET::GetBoundingBox()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool SCH_SHEET::HitTest( const wxPoint& aPosRef )
|
|
||||||
{
|
|
||||||
EDA_Rect rect = GetBoundingBox();
|
|
||||||
|
|
||||||
return rect.Inside( aPosRef );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function ComponentCount
|
* Function ComponentCount
|
||||||
* count our own components, without the power components.
|
* count our own components, without the power components.
|
||||||
|
@ -661,14 +652,15 @@ int SCH_SHEET::ComponentCount()
|
||||||
|
|
||||||
for( bs = m_AssociatedScreen->GetDrawItems(); bs != NULL; bs = bs->Next() )
|
for( bs = m_AssociatedScreen->GetDrawItems(); bs != NULL; bs = bs->Next() )
|
||||||
{
|
{
|
||||||
if( bs->Type() == TYPE_SCH_COMPONENT )
|
if( bs->Type() == SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
SCH_COMPONENT* Cmp = (SCH_COMPONENT*) bs;
|
SCH_COMPONENT* Cmp = (SCH_COMPONENT*) bs;
|
||||||
|
|
||||||
if( Cmp->GetField( VALUE )->m_Text.GetChar( 0 ) != '#' )
|
if( Cmp->GetField( VALUE )->m_Text.GetChar( 0 ) != '#' )
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
if( bs->Type() == DRAW_SHEET_STRUCT_TYPE )
|
|
||||||
|
if( bs->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* sheet = (SCH_SHEET*) bs;
|
SCH_SHEET* sheet = (SCH_SHEET*) bs;
|
||||||
n += sheet->ComponentCount();
|
n += sheet->ComponentCount();
|
||||||
|
@ -695,7 +687,7 @@ bool SCH_SHEET::SearchHierarchy( wxString aFilename, SCH_SCREEN** aScreen )
|
||||||
|
|
||||||
while( strct )
|
while( strct )
|
||||||
{
|
{
|
||||||
if( strct->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( strct->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* ss = (SCH_SHEET*) strct;
|
SCH_SHEET* ss = (SCH_SHEET*) strct;
|
||||||
if( ss->m_AssociatedScreen
|
if( ss->m_AssociatedScreen
|
||||||
|
@ -740,7 +732,7 @@ bool SCH_SHEET::LocatePathOfScreen( SCH_SCREEN* aScreen, SCH_SHEET_PATH* aList )
|
||||||
|
|
||||||
while( strct )
|
while( strct )
|
||||||
{
|
{
|
||||||
if( strct->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( strct->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* ss = (SCH_SHEET*) strct;
|
SCH_SHEET* ss = (SCH_SHEET*) strct;
|
||||||
|
|
||||||
|
@ -774,6 +766,7 @@ bool SCH_SHEET::Load( SCH_EDIT_FRAME* aFrame )
|
||||||
{
|
{
|
||||||
SCH_SCREEN* screen = NULL;
|
SCH_SCREEN* screen = NULL;
|
||||||
g_RootSheet->SearchHierarchy( m_FileName, &screen );
|
g_RootSheet->SearchHierarchy( m_FileName, &screen );
|
||||||
|
|
||||||
if( screen )
|
if( screen )
|
||||||
{
|
{
|
||||||
m_AssociatedScreen = screen;
|
m_AssociatedScreen = screen;
|
||||||
|
@ -793,7 +786,7 @@ bool SCH_SHEET::Load( SCH_EDIT_FRAME* aFrame )
|
||||||
|
|
||||||
while( bs )
|
while( bs )
|
||||||
{
|
{
|
||||||
if( bs->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( bs->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* sheetstruct = (SCH_SHEET*) bs;
|
SCH_SHEET* sheetstruct = (SCH_SHEET*) bs;
|
||||||
|
|
||||||
|
@ -827,7 +820,7 @@ int SCH_SHEET::CountSheets()
|
||||||
|
|
||||||
for( ; strct; strct = strct->Next() )
|
for( ; strct; strct = strct->Next() )
|
||||||
{
|
{
|
||||||
if( strct->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( strct->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* subsheet = (SCH_SHEET*) strct;
|
SCH_SHEET* subsheet = (SCH_SHEET*) strct;
|
||||||
count += subsheet->CountSheets();
|
count += subsheet->CountSheets();
|
||||||
|
@ -864,7 +857,6 @@ bool SCH_SHEET::ChangeFileName( SCH_EDIT_FRAME* aFrame, const wxString& aFileNam
|
||||||
wxString msg;
|
wxString msg;
|
||||||
bool LoadFromFile = false;
|
bool LoadFromFile = false;
|
||||||
|
|
||||||
|
|
||||||
// do we reload the data from the existing hierarchy
|
// do we reload the data from the existing hierarchy
|
||||||
if( g_RootSheet->SearchHierarchy( aFileName, &Screen_to_use ) )
|
if( g_RootSheet->SearchHierarchy( aFileName, &Screen_to_use ) )
|
||||||
{
|
{
|
||||||
|
@ -875,18 +867,17 @@ data in this sheet will be replaced)?" ),
|
||||||
GetChars( aFileName ) );
|
GetChars( aFileName ) );
|
||||||
if( !IsOK( NULL, msg ) )
|
if( !IsOK( NULL, msg ) )
|
||||||
{
|
{
|
||||||
DisplayInfoMessage( (wxWindow*) NULL,
|
DisplayInfoMessage( (wxWindow*) NULL, _( "Sheet Filename Renaming Aborted" ) );
|
||||||
_( "Sheet Filename Renaming Aborted" ) );
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( wxFileExists( aFileName ) ) // do we reload the data from
|
else if( wxFileExists( aFileName ) ) // do we reload the data from an existing file
|
||||||
// an existing file
|
|
||||||
{
|
{
|
||||||
msg.Printf( _( "A file named %s exists, load it (otherwise keep \
|
msg.Printf( _( "A file named %s exists, load it (otherwise keep \
|
||||||
current sheet data if possible)?" ),
|
current sheet data if possible)?" ),
|
||||||
GetChars( aFileName ) );
|
GetChars( aFileName ) );
|
||||||
|
|
||||||
if( IsOK( NULL, msg ) )
|
if( IsOK( NULL, msg ) )
|
||||||
{
|
{
|
||||||
LoadFromFile = true;
|
LoadFromFile = true;
|
||||||
|
@ -895,9 +886,11 @@ current sheet data if possible)?" ),
|
||||||
if( m_AssociatedScreen )
|
if( m_AssociatedScreen )
|
||||||
{
|
{
|
||||||
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -923,7 +916,6 @@ otherwise delete current sheet data)" );
|
||||||
m_AssociatedScreen = NULL; //will be created later
|
m_AssociatedScreen = NULL; //will be created later
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SetFileName( aFileName );
|
SetFileName( aFileName );
|
||||||
|
|
||||||
// if we use new data (from file or from internal hierarchy), delete the
|
// if we use new data (from file or from internal hierarchy), delete the
|
||||||
|
@ -931,8 +923,10 @@ otherwise delete current sheet data)" );
|
||||||
if( m_AssociatedScreen && (LoadFromFile || Screen_to_use) )
|
if( m_AssociatedScreen && (LoadFromFile || Screen_to_use) )
|
||||||
{
|
{
|
||||||
m_AssociatedScreen->m_RefCount--;
|
m_AssociatedScreen->m_RefCount--;
|
||||||
|
|
||||||
if( m_AssociatedScreen->m_RefCount == 0 )
|
if( m_AssociatedScreen->m_RefCount == 0 )
|
||||||
SAFE_DELETE( m_AssociatedScreen );
|
SAFE_DELETE( m_AssociatedScreen );
|
||||||
|
|
||||||
m_AssociatedScreen = NULL; // so that we reload..
|
m_AssociatedScreen = NULL; // so that we reload..
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -944,13 +938,13 @@ otherwise delete current sheet data)" );
|
||||||
m_AssociatedScreen->m_RefCount++;
|
m_AssociatedScreen->m_RefCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//just make a new screen if needed.
|
//just make a new screen if needed.
|
||||||
if( !m_AssociatedScreen )
|
if( !m_AssociatedScreen )
|
||||||
{
|
{
|
||||||
m_AssociatedScreen = new SCH_SCREEN();
|
m_AssociatedScreen = new SCH_SCREEN();
|
||||||
m_AssociatedScreen->m_RefCount++; // be careful with these
|
m_AssociatedScreen->m_RefCount++; // be careful with these
|
||||||
}
|
}
|
||||||
|
|
||||||
m_AssociatedScreen->m_FileName = aFileName;
|
m_AssociatedScreen->m_FileName = aFileName;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -995,6 +989,7 @@ void SCH_SHEET::Mirror_X( int aXaxis_position )
|
||||||
NEGATE( m_Pos.y );
|
NEGATE( m_Pos.y );
|
||||||
m_Pos.y += aXaxis_position;
|
m_Pos.y += aXaxis_position;
|
||||||
m_Pos.y -= m_Size.y;
|
m_Pos.y -= m_Size.y;
|
||||||
|
|
||||||
BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_labels )
|
BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_labels )
|
||||||
{
|
{
|
||||||
sheetPin.Mirror_X( aXaxis_position );
|
sheetPin.Mirror_X( aXaxis_position );
|
||||||
|
@ -1012,7 +1007,6 @@ void SCH_SHEET::Mirror_Y( int aYaxis_position )
|
||||||
m_Pos.x -= aYaxis_position;
|
m_Pos.x -= aYaxis_position;
|
||||||
NEGATE( m_Pos.x );
|
NEGATE( m_Pos.x );
|
||||||
m_Pos.x += aYaxis_position;
|
m_Pos.x += aYaxis_position;
|
||||||
|
|
||||||
m_Pos.x -= m_Size.x;
|
m_Pos.x -= m_Size.x;
|
||||||
|
|
||||||
BOOST_FOREACH( SCH_SHEET_PIN& label, m_labels )
|
BOOST_FOREACH( SCH_SHEET_PIN& label, m_labels )
|
||||||
|
@ -1050,6 +1044,7 @@ bool SCH_SHEET::Matches( wxFindReplaceData& aSearchData,
|
||||||
{
|
{
|
||||||
if( aFindLocation )
|
if( aFindLocation )
|
||||||
*aFindLocation = GetFileNamePosition();
|
*aFindLocation = GetFileNamePosition();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1057,6 +1052,7 @@ bool SCH_SHEET::Matches( wxFindReplaceData& aSearchData,
|
||||||
{
|
{
|
||||||
if( aFindLocation )
|
if( aFindLocation )
|
||||||
*aFindLocation = GetSheetNamePosition();
|
*aFindLocation = GetSheetNamePosition();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1084,7 +1080,7 @@ void SCH_SHEET::GetEndPoints( std::vector <DANGLING_END_ITEM>& aItemList )
|
||||||
{
|
{
|
||||||
SCH_SHEET_PIN &pinsheet = GetSheetPins()[ii];
|
SCH_SHEET_PIN &pinsheet = GetSheetPins()[ii];
|
||||||
|
|
||||||
wxCHECK2_MSG( pinsheet.Type() == DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE, continue,
|
wxCHECK2_MSG( pinsheet.Type() == SCH_SHEET_LABEL_T, continue,
|
||||||
wxT( "Invalid item in schematic sheet pin list. Bad programmer!" ) );
|
wxT( "Invalid item in schematic sheet pin list. Bad programmer!" ) );
|
||||||
|
|
||||||
pinsheet.GetEndPoints( aItemList );
|
pinsheet.GetEndPoints( aItemList );
|
||||||
|
@ -1140,6 +1136,29 @@ void SCH_SHEET::GetConnectionPoints( vector< wxPoint >& aPoints ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_SHEET::DoHitTest( const wxPoint& aPoint, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
EDA_Rect rect = GetBoundingBox();
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
return rect.Inside( aPoint );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_SHEET::DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
EDA_Rect rect = aRect;
|
||||||
|
|
||||||
|
rect.Inflate( aAccuracy );
|
||||||
|
|
||||||
|
if( aContained )
|
||||||
|
return rect.Inside( GetBoundingBox() );
|
||||||
|
|
||||||
|
return rect.Intersects( GetBoundingBox() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
|
|
||||||
void SCH_SHEET::Show( int nestLevel, std::ostream& os )
|
void SCH_SHEET::Show( int nestLevel, std::ostream& os )
|
||||||
|
|
|
@ -146,7 +146,7 @@ public:
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
virtual int GetPenSize();
|
virtual int GetPenSize() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function CreateGraphicShape
|
* Function CreateGraphicShape
|
||||||
|
@ -235,12 +235,12 @@ public:
|
||||||
public:
|
public:
|
||||||
SCH_SHEET( const wxPoint& pos = wxPoint( 0, 0 ) );
|
SCH_SHEET( const wxPoint& pos = wxPoint( 0, 0 ) );
|
||||||
~SCH_SHEET();
|
~SCH_SHEET();
|
||||||
|
|
||||||
virtual wxString GetClass() const
|
virtual wxString GetClass() const
|
||||||
{
|
{
|
||||||
return wxT( "SCH_SHEET" );
|
return wxT( "SCH_SHEET" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
* writes the data structures for this object out to a FILE in "*.sch"
|
* writes the data structures for this object out to a FILE in "*.sch"
|
||||||
|
@ -248,7 +248,7 @@ public:
|
||||||
* @param aFile The FILE to write to.
|
* @param aFile The FILE to write to.
|
||||||
* @return bool - true if success writing else false.
|
* @return bool - true if success writing else false.
|
||||||
*/
|
*/
|
||||||
bool Save( FILE* aFile ) const;
|
bool Save( FILE* aFile ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load schematic sheet from \a aLine in a .sch file.
|
* Load schematic sheet from \a aLine in a .sch file.
|
||||||
|
@ -259,14 +259,16 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg );
|
virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg );
|
||||||
|
|
||||||
void Place( SCH_EDIT_FRAME* frame, wxDC* DC );
|
void Place( SCH_EDIT_FRAME* frame, wxDC* DC );
|
||||||
SCH_SHEET* GenCopy();
|
|
||||||
void DisplayInfo( WinEDA_DrawFrame* frame );
|
SCH_SHEET* GenCopy();
|
||||||
|
|
||||||
|
void DisplayInfo( WinEDA_DrawFrame* frame );
|
||||||
|
|
||||||
/* there is no member for orientation in sch_sheet, to preserve file
|
/* there is no member for orientation in sch_sheet, to preserve file
|
||||||
* format, we detect orientation based on pin edges
|
* format, we detect orientation based on pin edges
|
||||||
*/
|
*/
|
||||||
bool IsVerticalOrientation();
|
bool IsVerticalOrientation();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add aLabel to this sheet.
|
* Add aLabel to this sheet.
|
||||||
|
@ -277,7 +279,7 @@ public:
|
||||||
*
|
*
|
||||||
* @param aLabel - The label to add to the sheet.
|
* @param aLabel - The label to add to the sheet.
|
||||||
*/
|
*/
|
||||||
void AddLabel( SCH_SHEET_PIN* aLabel );
|
void AddLabel( SCH_SHEET_PIN* aLabel );
|
||||||
|
|
||||||
SCH_SHEET_PIN_LIST& GetSheetPins() { return m_labels; }
|
SCH_SHEET_PIN_LIST& GetSheetPins() { return m_labels; }
|
||||||
|
|
||||||
|
@ -291,7 +293,7 @@ public:
|
||||||
*
|
*
|
||||||
* @param aSheetLabel - The sheet label to remove from the list.
|
* @param aSheetLabel - The sheet label to remove from the list.
|
||||||
*/
|
*/
|
||||||
void RemoveLabel( SCH_SHEET_PIN* aSheetLabel );
|
void RemoveLabel( SCH_SHEET_PIN* aSheetLabel );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete sheet label which do not have a corresponding hierarchical label.
|
* Delete sheet label which do not have a corresponding hierarchical label.
|
||||||
|
@ -299,7 +301,7 @@ public:
|
||||||
* Note: Make sure you save a copy of the sheet in the undo list before calling
|
* Note: Make sure you save a copy of the sheet in the undo list before calling
|
||||||
* CleanupSheet() otherwise any unrefernced sheet labels will be lost.
|
* CleanupSheet() otherwise any unrefernced sheet labels will be lost.
|
||||||
*/
|
*/
|
||||||
void CleanupSheet();
|
void CleanupSheet();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the label found at aPosition in this sheet.
|
* Return the label found at aPosition in this sheet.
|
||||||
|
@ -317,7 +319,7 @@ public:
|
||||||
*
|
*
|
||||||
* @return - True if label found, otherwise false.
|
* @return - True if label found, otherwise false.
|
||||||
*/
|
*/
|
||||||
bool HasLabel( const wxString& aName );
|
bool HasLabel( const wxString& aName );
|
||||||
|
|
||||||
bool HasLabels() { return !m_labels.empty(); }
|
bool HasLabels() { return !m_labels.empty(); }
|
||||||
|
|
||||||
|
@ -326,13 +328,13 @@ public:
|
||||||
*
|
*
|
||||||
* @return True if there are any undefined labels.
|
* @return True if there are any undefined labels.
|
||||||
*/
|
*/
|
||||||
bool HasUndefinedLabels();
|
bool HasUndefinedLabels();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
virtual int GetPenSize();
|
virtual int GetPenSize() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Draw
|
* Function Draw
|
||||||
|
@ -344,33 +346,26 @@ public:
|
||||||
* @param aColor = color used to draw sheet. Usually -1 to use the normal
|
* @param aColor = color used to draw sheet. Usually -1 to use the normal
|
||||||
* color for sheet items
|
* color for sheet items
|
||||||
*/
|
*/
|
||||||
void Draw( WinEDA_DrawPanel* aPanel,
|
void Draw( WinEDA_DrawPanel* aPanel,
|
||||||
wxDC* aDC,
|
wxDC* aDC,
|
||||||
const wxPoint& aOffset,
|
const wxPoint& aOffset,
|
||||||
int aDrawMode,
|
int aDrawMode,
|
||||||
int aColor = -1 );
|
int aColor = -1 );
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool HitTest( const wxPoint& aPosRef );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* @return an EDA_Rect giving the bounding box of the sheet
|
* @return an EDA_Rect giving the bounding box of the sheet
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
void SwapData( SCH_SHEET* copyitem );
|
void SwapData( SCH_SHEET* copyitem );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function ComponentCount
|
* Function ComponentCount
|
||||||
* count our own components, without the power components.
|
* count our own components, without the power components.
|
||||||
* @return the component count.
|
* @return the component count.
|
||||||
*/
|
*/
|
||||||
int ComponentCount();
|
int ComponentCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Load.
|
* Function Load.
|
||||||
|
@ -379,21 +374,19 @@ public:
|
||||||
* m_AssociatedScreen point on the screen, and its m_RefCount is
|
* m_AssociatedScreen point on the screen, and its m_RefCount is
|
||||||
* incremented
|
* incremented
|
||||||
* else creates a new associated screen and load the data file.
|
* else creates a new associated screen and load the data file.
|
||||||
* @param aFrame = a SCH_EDIT_FRAME pointer to the maim schematic
|
* @param aFrame = a SCH_EDIT_FRAME pointer to the maim schematic frame
|
||||||
* frame
|
|
||||||
* @return true if OK
|
* @return true if OK
|
||||||
*/
|
*/
|
||||||
bool Load( SCH_EDIT_FRAME* aFrame );
|
bool Load( SCH_EDIT_FRAME* aFrame );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function SearchHierarchy
|
* Function SearchHierarchy
|
||||||
* search the existing hierarchy for an instance of screen "FileName".
|
* search the existing hierarchy for an instance of screen "FileName".
|
||||||
* @param aFilename = the filename to find
|
* @param aFilename = the filename to find
|
||||||
* @param aFilename = a location to return a pointer to the screen (if
|
* @param aFilename = a location to return a pointer to the screen (if found)
|
||||||
* found)
|
|
||||||
* @return bool if found, and a pointer to the screen
|
* @return bool if found, and a pointer to the screen
|
||||||
*/
|
*/
|
||||||
bool SearchHierarchy( wxString aFilename, SCH_SCREEN** aScreen );
|
bool SearchHierarchy( wxString aFilename, SCH_SCREEN** aScreen );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function LocatePathOfScreen
|
* Function LocatePathOfScreen
|
||||||
|
@ -406,8 +399,7 @@ public:
|
||||||
* @param aList = the SCH_SHEET_PATH* that must be used
|
* @param aList = the SCH_SHEET_PATH* that must be used
|
||||||
* @return true if found
|
* @return true if found
|
||||||
*/
|
*/
|
||||||
bool LocatePathOfScreen( SCH_SCREEN* aScreen,
|
bool LocatePathOfScreen( SCH_SCREEN* aScreen, SCH_SHEET_PATH* aList );
|
||||||
SCH_SHEET_PATH* aList );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function CountSheets
|
* Function CountSheets
|
||||||
|
@ -415,7 +407,7 @@ public:
|
||||||
* this number includes the full subsheets count
|
* this number includes the full subsheets count
|
||||||
* @return the full count of sheets+subsheets contained by "this"
|
* @return the full count of sheets+subsheets contained by "this"
|
||||||
*/
|
*/
|
||||||
int CountSheets();
|
int CountSheets();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetFileName
|
* Function GetFileName
|
||||||
|
@ -430,7 +422,6 @@ public:
|
||||||
m_FileName = aFilename;
|
m_FileName = aFilename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function ChangeFileName
|
* Function ChangeFileName
|
||||||
* Set a new filename and manage data and associated screen
|
* Set a new filename and manage data and associated screen
|
||||||
|
@ -464,7 +455,6 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** virtual function Mirror_Y
|
/** virtual function Mirror_Y
|
||||||
* mirror item relative to an Y axis
|
* mirror item relative to an Y axis
|
||||||
* @param aYaxis_position = the y axis position
|
* @param aYaxis_position = the y axis position
|
||||||
|
@ -491,7 +481,7 @@ public:
|
||||||
*
|
*
|
||||||
* @param aSize - The new size for this sheet.
|
* @param aSize - The new size for this sheet.
|
||||||
*/
|
*/
|
||||||
void Resize( const wxSize& aSize );
|
void Resize( const wxSize& aSize );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetSheetNamePosition
|
* Function GetSheetNamePosition
|
||||||
|
@ -532,6 +522,10 @@ protected:
|
||||||
* label is added or removed.
|
* label is added or removed.
|
||||||
*/
|
*/
|
||||||
void renumberLabels();
|
void renumberLabels();
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool DoHitTest( const wxPoint& aPoint, int aAccuracy ) const;
|
||||||
|
virtual bool DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* CLASS_DRAWSHEET_H */
|
#endif /* CLASS_DRAWSHEET_H */
|
||||||
|
|
|
@ -57,7 +57,7 @@ bool SCH_SHEET_PATH::BuildSheetPathInfoFromSheetPathValue( const wxString& aPath
|
||||||
SCH_ITEM* schitem = LastDrawList();
|
SCH_ITEM* schitem = LastDrawList();
|
||||||
while( schitem && GetSheetsCount() < NB_MAX_SHEET )
|
while( schitem && GetSheetsCount() < NB_MAX_SHEET )
|
||||||
{
|
{
|
||||||
if( schitem->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( schitem->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* sheet = (SCH_SHEET*) schitem;
|
SCH_SHEET* sheet = (SCH_SHEET*) schitem;
|
||||||
Push( sheet );
|
Push( sheet );
|
||||||
|
@ -259,7 +259,7 @@ void SCH_SHEET_PATH::UpdateAllScreenReferences()
|
||||||
|
|
||||||
while( t )
|
while( t )
|
||||||
{
|
{
|
||||||
if( t->Type() == TYPE_SCH_COMPONENT )
|
if( t->Type() == SCH_COMPONENT_T )
|
||||||
{
|
{
|
||||||
SCH_COMPONENT* component = (SCH_COMPONENT*) t;
|
SCH_COMPONENT* component = (SCH_COMPONENT*) t;
|
||||||
component->GetField( REFERENCE )->m_Text = component->GetRef( this );
|
component->GetField( REFERENCE )->m_Text = component->GetRef( this );
|
||||||
|
@ -536,7 +536,7 @@ void SCH_SHEET_LIST::BuildSheetList( SCH_SHEET* aSheet )
|
||||||
|
|
||||||
while( strct )
|
while( strct )
|
||||||
{
|
{
|
||||||
if( strct->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( strct->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* sheet = (SCH_SHEET*) strct;
|
SCH_SHEET* sheet = (SCH_SHEET*) strct;
|
||||||
BuildSheetList( sheet );
|
BuildSheetList( sheet );
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SCH_SHEET_PIN::SCH_SHEET_PIN( SCH_SHEET* parent, const wxPoint& pos, const wxString& text ) :
|
SCH_SHEET_PIN::SCH_SHEET_PIN( SCH_SHEET* parent, const wxPoint& pos, const wxString& text ) :
|
||||||
SCH_HIERLABEL( pos, text, DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE )
|
SCH_HIERLABEL( pos, text, SCH_SHEET_LABEL_T )
|
||||||
{
|
{
|
||||||
SetParent( parent );
|
SetParent( parent );
|
||||||
wxASSERT( parent );
|
wxASSERT( parent );
|
||||||
|
@ -103,7 +103,7 @@ bool SCH_SHEET_PIN::operator==( const SCH_SHEET_PIN* aPin ) const
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
int SCH_SHEET_PIN::GetPenSize()
|
int SCH_SHEET_PIN::GetPenSize() const
|
||||||
{
|
{
|
||||||
return g_DrawDefaultLineThickness;
|
return g_DrawDefaultLineThickness;
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,17 +87,6 @@ SCH_TEXT::SCH_TEXT( const wxPoint& pos, const wxString& text, KICAD_T aType ) :
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool SCH_TEXT::HitTest( const wxPoint& aPosRef )
|
|
||||||
{
|
|
||||||
return TextHitTest( aPosRef );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
SCH_TEXT* SCH_TEXT::GenCopy()
|
SCH_TEXT* SCH_TEXT::GenCopy()
|
||||||
{
|
{
|
||||||
SCH_TEXT* newitem;
|
SCH_TEXT* newitem;
|
||||||
|
@ -105,19 +94,19 @@ SCH_TEXT* SCH_TEXT::GenCopy()
|
||||||
switch( Type() )
|
switch( Type() )
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
newitem = new SCH_TEXT( m_Pos, m_Text );
|
newitem = new SCH_TEXT( m_Pos, m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
newitem = new SCH_GLOBALLABEL( m_Pos, m_Text );
|
newitem = new SCH_GLOBALLABEL( m_Pos, m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
newitem = new SCH_HIERLABEL( m_Pos, m_Text );
|
newitem = new SCH_HIERLABEL( m_Pos, m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
newitem = new SCH_LABEL( m_Pos, m_Text );
|
newitem = new SCH_LABEL( m_Pos, m_Text );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -403,7 +392,7 @@ void SCH_TEXT::Place( SCH_EDIT_FRAME* frame, wxDC* DC )
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
int SCH_TEXT::GetPenSize()
|
int SCH_TEXT::GetPenSize() const
|
||||||
{
|
{
|
||||||
int pensize = m_Thickness;
|
int pensize = m_Thickness;
|
||||||
|
|
||||||
|
@ -443,6 +432,7 @@ void SCH_TEXT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& aOffset,
|
||||||
EXCHG( linewidth, m_Thickness ); // Set the minimum width
|
EXCHG( linewidth, m_Thickness ); // Set the minimum width
|
||||||
EDA_TextStruct::Draw( panel, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED_COLOR );
|
EDA_TextStruct::Draw( panel, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED_COLOR );
|
||||||
EXCHG( linewidth, m_Thickness ); // set initial value
|
EXCHG( linewidth, m_Thickness ); // set initial value
|
||||||
|
|
||||||
if( m_IsDangling )
|
if( m_IsDangling )
|
||||||
DrawDanglingSymbol( panel, DC, m_Pos + aOffset, color );
|
DrawDanglingSymbol( panel, DC, m_Pos + aOffset, color );
|
||||||
|
|
||||||
|
@ -475,6 +465,7 @@ bool SCH_TEXT::Save( FILE* aFile ) const
|
||||||
for( ; ; )
|
for( ; ; )
|
||||||
{
|
{
|
||||||
int i = text.find( '\n' );
|
int i = text.find( '\n' );
|
||||||
|
|
||||||
if( i == wxNOT_FOUND )
|
if( i == wxNOT_FOUND )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -545,6 +536,7 @@ bool SCH_TEXT::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
|
|
||||||
if( i == wxNOT_FOUND )
|
if( i == wxNOT_FOUND )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
val.erase( i, 2 );
|
val.erase( i, 2 );
|
||||||
val.insert( i, wxT( "\n" ) );
|
val.insert( i, wxT( "\n" ) );
|
||||||
}
|
}
|
||||||
|
@ -570,7 +562,7 @@ bool SCH_TEXT::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
void SCH_TEXT::GetEndPoints( std::vector <DANGLING_END_ITEM>& aItemList )
|
void SCH_TEXT::GetEndPoints( std::vector <DANGLING_END_ITEM>& aItemList )
|
||||||
{
|
{
|
||||||
// Normal text labels cannot be tested for dangling ends.
|
// Normal text labels cannot be tested for dangling ends.
|
||||||
if( Type() == TYPE_SCH_TEXT )
|
if( Type() == SCH_TEXT_T )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DANGLING_END_ITEM item( LABEL_END, this );
|
DANGLING_END_ITEM item( LABEL_END, this );
|
||||||
|
@ -582,7 +574,7 @@ void SCH_TEXT::GetEndPoints( std::vector <DANGLING_END_ITEM>& aItemList )
|
||||||
bool SCH_TEXT::IsDanglingStateChanged( std::vector< DANGLING_END_ITEM >& aItemList )
|
bool SCH_TEXT::IsDanglingStateChanged( std::vector< DANGLING_END_ITEM >& aItemList )
|
||||||
{
|
{
|
||||||
// Normal text labels cannot be tested for dangling ends.
|
// Normal text labels cannot be tested for dangling ends.
|
||||||
if( Type() == TYPE_SCH_TEXT )
|
if( Type() == SCH_TEXT_T )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
bool previousState = m_IsDangling;
|
bool previousState = m_IsDangling;
|
||||||
|
@ -647,23 +639,22 @@ bool SCH_TEXT::IsSelectStateChanged( const wxRect& aRect )
|
||||||
void SCH_TEXT::GetConnectionPoints( vector< wxPoint >& aPoints ) const
|
void SCH_TEXT::GetConnectionPoints( vector< wxPoint >& aPoints ) const
|
||||||
{
|
{
|
||||||
// Normal text labels do not have connection points. All others do.
|
// Normal text labels do not have connection points. All others do.
|
||||||
if( Type() == TYPE_SCH_TEXT )
|
if( Type() == SCH_TEXT_T )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
aPoints.push_back( m_Pos );
|
aPoints.push_back( m_Pos );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect SCH_TEXT::GetBoundingBox()
|
EDA_Rect SCH_TEXT::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
// We must pass the effective text thickness to GetTextBox
|
// We must pass the effective text thickness to GetTextBox
|
||||||
// when calculating the bounding box
|
// when calculating the bounding box
|
||||||
int linewidth = ( m_Thickness == 0 ) ? g_DrawDefaultLineThickness : m_Thickness;
|
int linewidth = ( m_Thickness == 0 ) ? g_DrawDefaultLineThickness : m_Thickness;
|
||||||
|
|
||||||
linewidth = Clamp_Text_PenSize( linewidth, m_Size, m_Bold );
|
linewidth = Clamp_Text_PenSize( linewidth, m_Size, m_Bold );
|
||||||
EXCHG( linewidth, m_Thickness ); // Set the real width
|
|
||||||
EDA_Rect rect = GetTextBox( -1 );
|
EDA_Rect rect = GetTextBox( -1, linewidth );
|
||||||
EXCHG( linewidth, m_Thickness ); // set initial value
|
|
||||||
|
|
||||||
if( m_Orient ) // Rotate rect
|
if( m_Orient ) // Rotate rect
|
||||||
{
|
{
|
||||||
|
@ -680,6 +671,18 @@ EDA_Rect SCH_TEXT::GetBoundingBox()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_TEXT::DoHitTest( const wxPoint& aPoint, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
return TextHitTest( aPoint, aAccuracy );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_TEXT::DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
return TextHitTest( aRect, aContained, aAccuracy );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
|
|
||||||
void SCH_TEXT::Show( int nestLevel, std::ostream& os )
|
void SCH_TEXT::Show( int nestLevel, std::ostream& os )
|
||||||
|
@ -733,7 +736,7 @@ void SCH_LABEL::SetSchematicTextOrientation( int aSchematicOrientation )
|
||||||
|
|
||||||
|
|
||||||
SCH_LABEL::SCH_LABEL( const wxPoint& pos, const wxString& text ) :
|
SCH_LABEL::SCH_LABEL( const wxPoint& pos, const wxString& text ) :
|
||||||
SCH_TEXT( pos, text, TYPE_SCH_LABEL )
|
SCH_TEXT( pos, text, SCH_LABEL_T )
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_LOCLABEL;
|
m_Layer = LAYER_LOCLABEL;
|
||||||
m_Shape = NET_INPUT;
|
m_Shape = NET_INPUT;
|
||||||
|
@ -867,7 +870,7 @@ void SCH_LABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect SCH_LABEL::GetBoundingBox()
|
EDA_Rect SCH_LABEL::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
int x, y, dx, dy, length, height;
|
int x, y, dx, dy, length, height;
|
||||||
|
|
||||||
|
@ -916,7 +919,7 @@ EDA_Rect SCH_LABEL::GetBoundingBox()
|
||||||
|
|
||||||
|
|
||||||
SCH_GLOBALLABEL::SCH_GLOBALLABEL( const wxPoint& pos, const wxString& text ) :
|
SCH_GLOBALLABEL::SCH_GLOBALLABEL( const wxPoint& pos, const wxString& text ) :
|
||||||
SCH_TEXT( pos, text, TYPE_SCH_GLOBALLABEL )
|
SCH_TEXT( pos, text, SCH_GLOBAL_LABEL_T )
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_GLOBLABEL;
|
m_Layer = LAYER_GLOBLABEL;
|
||||||
m_Shape = NET_BIDI;
|
m_Shape = NET_BIDI;
|
||||||
|
@ -1014,19 +1017,6 @@ bool SCH_GLOBALLABEL::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool SCH_GLOBALLABEL::HitTest( const wxPoint& aPosRef )
|
|
||||||
{
|
|
||||||
EDA_Rect rect = GetBoundingBox();
|
|
||||||
|
|
||||||
return rect.Inside( aPosRef );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Mirror_Y (virtual)
|
* Function Mirror_Y (virtual)
|
||||||
* mirror item relative to an Y axis
|
* mirror item relative to an Y axis
|
||||||
|
@ -1317,7 +1307,7 @@ void SCH_GLOBALLABEL::CreateGraphicShape( std::vector <wxPoint>& aCorner_list,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect SCH_GLOBALLABEL::GetBoundingBox()
|
EDA_Rect SCH_GLOBALLABEL::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
int x, y, dx, dy, length, height;
|
int x, y, dx, dy, length, height;
|
||||||
|
|
||||||
|
@ -1467,19 +1457,6 @@ bool SCH_HIERLABEL::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool SCH_HIERLABEL::HitTest( const wxPoint& aPosRef )
|
|
||||||
{
|
|
||||||
EDA_Rect rect = GetBoundingBox();
|
|
||||||
|
|
||||||
return rect.Inside( aPosRef );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function SetTextOrientAndJustifyParmeters
|
* Function SetTextOrientAndJustifyParmeters
|
||||||
* Set m_SchematicOrientation, and initialize
|
* Set m_SchematicOrientation, and initialize
|
||||||
|
@ -1598,7 +1575,7 @@ void SCH_HIERLABEL::CreateGraphicShape( std::vector <wxPoint>& aCorner_list,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EDA_Rect SCH_HIERLABEL::GetBoundingBox()
|
EDA_Rect SCH_HIERLABEL::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
int x, y, dx, dy, length, height;
|
int x, y, dx, dy, length, height;
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,6 @@ extern const char* SheetLabelType[]; /* names of types of labels */
|
||||||
class SCH_TEXT : public SCH_ITEM, public EDA_TextStruct
|
class SCH_TEXT : public SCH_ITEM, public EDA_TextStruct
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
int m_Layer;
|
|
||||||
int m_Shape;
|
int m_Shape;
|
||||||
bool m_IsDangling; // true if not connected (used to draw the "not
|
bool m_IsDangling; // true if not connected (used to draw the "not
|
||||||
// connected" symbol
|
// connected" symbol
|
||||||
|
@ -56,7 +55,7 @@ protected:
|
||||||
public:
|
public:
|
||||||
SCH_TEXT( const wxPoint& pos = wxPoint( 0, 0 ),
|
SCH_TEXT( const wxPoint& pos = wxPoint( 0, 0 ),
|
||||||
const wxString& text = wxEmptyString,
|
const wxString& text = wxEmptyString,
|
||||||
KICAD_T aType = TYPE_SCH_TEXT );
|
KICAD_T aType = SCH_TEXT_T );
|
||||||
~SCH_TEXT() { }
|
~SCH_TEXT() { }
|
||||||
|
|
||||||
virtual wxString GetClass() const
|
virtual wxString GetClass() const
|
||||||
|
@ -78,9 +77,9 @@ public:
|
||||||
* position of 0
|
* position of 0
|
||||||
* 3 = bottom . This can be seen as the mirrored position of up
|
* 3 = bottom . This can be seen as the mirrored position of up
|
||||||
*/
|
*/
|
||||||
virtual void SetSchematicTextOrientation( int aSchematicOrientation );
|
virtual void SetSchematicTextOrientation( int aSchematicOrientation );
|
||||||
|
|
||||||
int GetSchematicTextOrientation() { return m_SchematicOrientation; }
|
int GetSchematicTextOrientation() { return m_SchematicOrientation; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetSchematicTextOffset (virtual)
|
* Function GetSchematicTextOffset (virtual)
|
||||||
|
@ -92,12 +91,13 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual wxPoint GetSchematicTextOffset();
|
virtual wxPoint GetSchematicTextOffset();
|
||||||
|
|
||||||
SCH_TEXT* GenCopy();
|
SCH_TEXT* GenCopy();
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel,
|
|
||||||
wxDC* DC,
|
virtual void Draw( WinEDA_DrawPanel* panel,
|
||||||
const wxPoint& offset,
|
wxDC* DC,
|
||||||
int draw_mode,
|
const wxPoint& offset,
|
||||||
int Color = -1 );
|
int draw_mode,
|
||||||
|
int Color = -1 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function CreateGraphicShape
|
* Function CreateGraphicShape
|
||||||
|
@ -107,21 +107,14 @@ public:
|
||||||
* for texts and labels: do nothing
|
* for texts and labels: do nothing
|
||||||
* Mainly for derived classes (SCH_SHEET_PIN and Hierarchical labels)
|
* Mainly for derived classes (SCH_SHEET_PIN and Hierarchical labels)
|
||||||
*/
|
*/
|
||||||
virtual void CreateGraphicShape( std::vector <wxPoint>& aCorner_list,
|
virtual void CreateGraphicShape( std::vector <wxPoint>& aCorner_list, const wxPoint& Pos )
|
||||||
const wxPoint& Pos )
|
|
||||||
{
|
{
|
||||||
aCorner_list.clear();
|
aCorner_list.clear();
|
||||||
}
|
}
|
||||||
void SwapData( SCH_TEXT* copyitem );
|
|
||||||
|
|
||||||
void Place( SCH_EDIT_FRAME* frame, wxDC* DC );
|
void SwapData( SCH_TEXT* copyitem );
|
||||||
|
|
||||||
/**
|
void Place( SCH_EDIT_FRAME* frame, wxDC* DC );
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool HitTest( const wxPoint& aPosRef );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
|
@ -130,7 +123,7 @@ public:
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
@ -139,7 +132,7 @@ public:
|
||||||
* @param aFile The FILE to write to.
|
* @param aFile The FILE to write to.
|
||||||
* @return bool - true if success writing else false.
|
* @return bool - true if success writing else false.
|
||||||
*/
|
*/
|
||||||
bool Save( FILE* aFile ) const;
|
bool Save( FILE* aFile ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load schematic text entry from \a aLine in a .sch file.
|
* Load schematic text entry from \a aLine in a .sch file.
|
||||||
|
@ -155,7 +148,7 @@ public:
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
int GetPenSize();
|
int GetPenSize() const;
|
||||||
|
|
||||||
// Geometric transforms (used in block operations):
|
// Geometric transforms (used in block operations):
|
||||||
|
|
||||||
|
@ -200,17 +193,20 @@ public:
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
void Show( int nestLevel, std::ostream& os );
|
void Show( int nestLevel, std::ostream& os );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool DoHitTest( const wxPoint& aPoint, int aAccuracy ) const;
|
||||||
|
virtual bool DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class SCH_LABEL : public SCH_TEXT
|
class SCH_LABEL : public SCH_TEXT
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SCH_LABEL( const wxPoint& pos = wxPoint( 0, 0 ),
|
SCH_LABEL( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString );
|
||||||
const wxString& text = wxEmptyString );
|
|
||||||
~SCH_LABEL() { }
|
~SCH_LABEL() { }
|
||||||
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel,
|
virtual void Draw( WinEDA_DrawPanel* panel,
|
||||||
wxDC* DC,
|
wxDC* DC,
|
||||||
const wxPoint& offset,
|
const wxPoint& offset,
|
||||||
|
@ -257,7 +253,7 @@ public:
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
@ -283,9 +279,9 @@ public:
|
||||||
class SCH_GLOBALLABEL : public SCH_TEXT
|
class SCH_GLOBALLABEL : public SCH_TEXT
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SCH_GLOBALLABEL( const wxPoint& pos = wxPoint( 0, 0 ),
|
SCH_GLOBALLABEL( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString );
|
||||||
const wxString& text = wxEmptyString );
|
|
||||||
~SCH_GLOBALLABEL() { }
|
~SCH_GLOBALLABEL() { }
|
||||||
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel,
|
virtual void Draw( WinEDA_DrawPanel* panel,
|
||||||
wxDC* DC,
|
wxDC* DC,
|
||||||
const wxPoint& offset,
|
const wxPoint& offset,
|
||||||
|
@ -342,13 +338,6 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg );
|
virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg );
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool HitTest( const wxPoint& aPosRef );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* returns the orthogonal, bounding box of this object for display purposes.
|
* returns the orthogonal, bounding box of this object for display purposes.
|
||||||
|
@ -356,7 +345,7 @@ public:
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function CreateGraphicShape (virual)
|
* Function CreateGraphicShape (virual)
|
||||||
|
@ -381,7 +370,9 @@ class SCH_HIERLABEL : public SCH_TEXT
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SCH_HIERLABEL( const wxPoint& pos = wxPoint( 0, 0 ),
|
SCH_HIERLABEL( const wxPoint& pos = wxPoint( 0, 0 ),
|
||||||
const wxString& text = wxEmptyString, KICAD_T aType = TYPE_SCH_HIERLABEL );
|
const wxString& text = wxEmptyString,
|
||||||
|
KICAD_T aType = SCH_HIERARCHICAL_LABEL_T );
|
||||||
|
|
||||||
~SCH_HIERLABEL() { }
|
~SCH_HIERLABEL() { }
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel,
|
virtual void Draw( WinEDA_DrawPanel* panel,
|
||||||
wxDC* DC,
|
wxDC* DC,
|
||||||
|
@ -448,13 +439,6 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg );
|
virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg );
|
||||||
|
|
||||||
/**
|
|
||||||
* Function HitTest
|
|
||||||
* @return true if the point aPosRef is within item area
|
|
||||||
* @param aPosRef = a wxPoint to test
|
|
||||||
*/
|
|
||||||
bool HitTest( const wxPoint& aPosRef );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* returns the orthogonal, bounding box of this object for display purposes.
|
* returns the orthogonal, bounding box of this object for display purposes.
|
||||||
|
@ -462,7 +446,7 @@ public:
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/** virtual function Mirror_Y
|
/** virtual function Mirror_Y
|
||||||
* mirror item relative to an Y axis
|
* mirror item relative to an Y axis
|
||||||
|
|
|
@ -277,22 +277,22 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
|
|
||||||
case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_LABEL:
|
case ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_LABEL:
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
ConvertTextType( (SCH_TEXT*) screen->GetCurItem(), &dc, TYPE_SCH_LABEL );
|
ConvertTextType( (SCH_TEXT*) screen->GetCurItem(), &dc, SCH_LABEL_T );
|
||||||
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( (SCH_TEXT*) screen->GetCurItem(), &dc, TYPE_SCH_GLOBALLABEL );
|
ConvertTextType( (SCH_TEXT*) screen->GetCurItem(), &dc, SCH_GLOBAL_LABEL_T );
|
||||||
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( (SCH_TEXT*) screen->GetCurItem(), &dc, TYPE_SCH_HIERLABEL );
|
ConvertTextType( (SCH_TEXT*) screen->GetCurItem(), &dc, SCH_HIERARCHICAL_LABEL_T );
|
||||||
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( (SCH_TEXT*) screen->GetCurItem(), &dc, TYPE_SCH_TEXT );
|
ConvertTextType( (SCH_TEXT*) screen->GetCurItem(), &dc, SCH_TEXT_T );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_SET_SHAPE_TEXT:
|
case ID_POPUP_SCH_SET_SHAPE_TEXT:
|
||||||
|
@ -338,7 +338,7 @@ void SCH_EDIT_FRAME::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( screen->GetCurItem()->Type() != TYPE_SCH_COMPONENT )
|
if( screen->GetCurItem()->Type() != SCH_COMPONENT_T )
|
||||||
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
||||||
|
|
||||||
case ID_POPUP_SCH_DELETE:
|
case ID_POPUP_SCH_DELETE:
|
||||||
|
@ -378,12 +378,12 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_IMPORT_GLABEL:
|
case ID_POPUP_IMPORT_GLABEL:
|
||||||
if( screen->GetCurItem() && screen->GetCurItem()->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( screen->GetCurItem() && screen->GetCurItem()->Type() == SCH_SHEET_T )
|
||||||
GetScreen()->SetCurItem( Import_PinSheet( (SCH_SHEET*) screen->GetCurItem(), &dc ) );
|
GetScreen()->SetCurItem( Import_PinSheet( (SCH_SHEET*) screen->GetCurItem(), &dc ) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_CLEANUP_SHEET:
|
case ID_POPUP_SCH_CLEANUP_SHEET:
|
||||||
if( screen->GetCurItem() && screen->GetCurItem()->Type() == DRAW_SHEET_STRUCT_TYPE )
|
if( screen->GetCurItem() && screen->GetCurItem()->Type() == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
SCH_SHEET* sheet = (SCH_SHEET*) screen->GetCurItem();
|
SCH_SHEET* sheet = (SCH_SHEET*) screen->GetCurItem();
|
||||||
|
|
||||||
|
@ -420,11 +420,11 @@ void SCH_EDIT_FRAME::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..) or a hierachical sheet
|
// component, like Field, text..) or a hierachical sheet
|
||||||
// or a label
|
// or a label
|
||||||
if( (screen->GetCurItem()->Type() != TYPE_SCH_COMPONENT)
|
if( (screen->GetCurItem()->Type() != SCH_COMPONENT_T)
|
||||||
&& (screen->GetCurItem()->Type() != TYPE_SCH_LABEL)
|
&& (screen->GetCurItem()->Type() != SCH_LABEL_T)
|
||||||
&& (screen->GetCurItem()->Type() != TYPE_SCH_GLOBALLABEL)
|
&& (screen->GetCurItem()->Type() != SCH_GLOBAL_LABEL_T)
|
||||||
&& (screen->GetCurItem()->Type() != TYPE_SCH_HIERLABEL)
|
&& (screen->GetCurItem()->Type() != SCH_HIERARCHICAL_LABEL_T)
|
||||||
&& (screen->GetCurItem()->Type() != DRAW_SHEET_STRUCT_TYPE) )
|
&& (screen->GetCurItem()->Type() != SCH_SHEET_T) )
|
||||||
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
||||||
|
|
||||||
if( screen->GetCurItem() == NULL )
|
if( screen->GetCurItem() == NULL )
|
||||||
|
@ -487,7 +487,7 @@ void SCH_EDIT_FRAME::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( screen->GetCurItem()->Type() != TYPE_SCH_COMPONENT )
|
if( screen->GetCurItem()->Type() != SCH_COMPONENT_T )
|
||||||
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
||||||
|
|
||||||
if( screen->GetCurItem() == NULL )
|
if( screen->GetCurItem() == NULL )
|
||||||
|
@ -504,7 +504,7 @@ void SCH_EDIT_FRAME::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( screen->GetCurItem()->Type() != TYPE_SCH_COMPONENT )
|
if( screen->GetCurItem()->Type() != SCH_COMPONENT_T )
|
||||||
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
||||||
|
|
||||||
if( screen->GetCurItem() == NULL )
|
if( screen->GetCurItem() == NULL )
|
||||||
|
@ -548,7 +548,7 @@ void SCH_EDIT_FRAME::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( screen->GetCurItem()->Type() != TYPE_SCH_COMPONENT )
|
if( screen->GetCurItem()->Type() != SCH_COMPONENT_T )
|
||||||
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
||||||
|
|
||||||
if( screen->GetCurItem() == NULL )
|
if( screen->GetCurItem() == NULL )
|
||||||
|
@ -561,7 +561,7 @@ void SCH_EDIT_FRAME::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( screen->GetCurItem()->Type() != TYPE_SCH_COMPONENT )
|
if( screen->GetCurItem()->Type() != SCH_COMPONENT_T )
|
||||||
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
||||||
|
|
||||||
if( screen->GetCurItem() == NULL )
|
if( screen->GetCurItem() == NULL )
|
||||||
|
@ -574,7 +574,7 @@ void SCH_EDIT_FRAME::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( screen->GetCurItem()->Type() != TYPE_SCH_COMPONENT )
|
if( screen->GetCurItem()->Type() != SCH_COMPONENT_T )
|
||||||
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
||||||
|
|
||||||
if( screen->GetCurItem() == NULL )
|
if( screen->GetCurItem() == NULL )
|
||||||
|
@ -588,7 +588,7 @@ void SCH_EDIT_FRAME::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( screen->GetCurItem()->Type() != TYPE_SCH_COMPONENT )
|
if( screen->GetCurItem()->Type() != SCH_COMPONENT_T )
|
||||||
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
||||||
|
|
||||||
if( screen->GetCurItem() == NULL )
|
if( screen->GetCurItem() == NULL )
|
||||||
|
@ -627,7 +627,7 @@ void SCH_EDIT_FRAME::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( screen->GetCurItem()->Type() != TYPE_SCH_COMPONENT )
|
if( screen->GetCurItem()->Type() != SCH_COMPONENT_T )
|
||||||
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
||||||
|
|
||||||
if( screen->GetCurItem() == NULL )
|
if( screen->GetCurItem() == NULL )
|
||||||
|
@ -642,7 +642,7 @@ void SCH_EDIT_FRAME::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( screen->GetCurItem()->Type() != TYPE_SCH_COMPONENT )
|
if( screen->GetCurItem()->Type() != SCH_COMPONENT_T )
|
||||||
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
screen->SetCurItem( LocateSmallestComponent( screen ) );
|
||||||
|
|
||||||
if( screen->GetCurItem() == NULL )
|
if( screen->GetCurItem() == NULL )
|
||||||
|
@ -664,7 +664,7 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
EDA_ITEM* DrawStruct = screen->GetCurItem();
|
EDA_ITEM* DrawStruct = screen->GetCurItem();
|
||||||
|
|
||||||
if( DrawStruct && (DrawStruct->Type() == DRAW_SHEET_STRUCT_TYPE) )
|
if( DrawStruct && (DrawStruct->Type() == SCH_SHEET_T) )
|
||||||
{
|
{
|
||||||
InstallNextScreen( (SCH_SHEET*) DrawStruct );
|
InstallNextScreen( (SCH_SHEET*) DrawStruct );
|
||||||
}
|
}
|
||||||
|
@ -744,7 +744,7 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SCH_GETINFO_MARKER:
|
case ID_POPUP_SCH_GETINFO_MARKER:
|
||||||
if( screen->GetCurItem() && screen->GetCurItem()->Type() == TYPE_SCH_MARKER )
|
if( screen->GetCurItem() && screen->GetCurItem()->Type() == SCH_MARKER_T )
|
||||||
( (SCH_MARKER*) screen->GetCurItem() )->DisplayMarkerInfo( this );
|
( (SCH_MARKER*) screen->GetCurItem() )->DisplayMarkerInfo( this );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -772,40 +772,40 @@ void SCH_EDIT_FRAME::Process_Move_Item( SCH_ITEM* DrawStruct, wxDC* DC )
|
||||||
|
|
||||||
switch( DrawStruct->Type() )
|
switch( DrawStruct->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
StartMoveBusEntry( (SCH_BUS_ENTRY*) DrawStruct, DC );
|
StartMoveBusEntry( (SCH_BUS_ENTRY*) DrawStruct, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
StartMoveTexte( (SCH_TEXT*) DrawStruct, DC );
|
StartMoveTexte( (SCH_TEXT*) DrawStruct, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
StartMovePart( (SCH_COMPONENT*) DrawStruct, DC );
|
StartMovePart( (SCH_COMPONENT*) DrawStruct, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
StartMoveSheet( (SCH_SHEET*) DrawStruct, DC );
|
StartMoveSheet( (SCH_SHEET*) DrawStruct, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case SCH_FIELD_T:
|
||||||
StartMoveCmpField( (SCH_FIELD*) DrawStruct, DC );
|
StartMoveCmpField( (SCH_FIELD*) DrawStruct, DC );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
default:
|
default:
|
||||||
wxString msg;
|
wxString msg;
|
||||||
msg.Printf( wxT( "SCH_EDIT_FRAME::Move_Item Error: Bad DrawType %d" ),
|
msg.Printf( wxT( "SCH_EDIT_FRAME::Move_Item Error: Bad DrawType %d" ),
|
||||||
|
|
|
@ -88,14 +88,14 @@ void SwapData( EDA_ITEM* aItem, EDA_ITEM* aImage )
|
||||||
|
|
||||||
switch( aItem->Type() )
|
switch( aItem->Type() )
|
||||||
{
|
{
|
||||||
case DRAW_POLYLINE_STRUCT_TYPE:
|
case SCH_POLYLINE_T:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (SCH_POLYLINE*) aItem )
|
#define SOURCE ( (SCH_POLYLINE*) aItem )
|
||||||
#define DEST ( (SCH_POLYLINE*) aImage )
|
#define DEST ( (SCH_POLYLINE*) aImage )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_JUNCTION_STRUCT_TYPE:
|
case SCH_JUNCTION_T:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (SCH_JUNCTION*) aItem )
|
#define SOURCE ( (SCH_JUNCTION*) aItem )
|
||||||
|
@ -103,10 +103,10 @@ void SwapData( EDA_ITEM* aItem, EDA_ITEM* aImage )
|
||||||
EXCHG( SOURCE->m_Pos, DEST->m_Pos );
|
EXCHG( SOURCE->m_Pos, DEST->m_Pos );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_LABEL:
|
case SCH_LABEL_T:
|
||||||
case TYPE_SCH_GLOBALLABEL:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case TYPE_SCH_HIERLABEL:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
case TYPE_SCH_TEXT:
|
case SCH_TEXT_T:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (SCH_TEXT*) aItem )
|
#define SOURCE ( (SCH_TEXT*) aItem )
|
||||||
|
@ -114,7 +114,7 @@ void SwapData( EDA_ITEM* aItem, EDA_ITEM* aImage )
|
||||||
DEST->SwapData( SOURCE );
|
DEST->SwapData( SOURCE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_COMPONENT:
|
case SCH_COMPONENT_T:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (SCH_COMPONENT*) aItem )
|
#define SOURCE ( (SCH_COMPONENT*) aItem )
|
||||||
|
@ -122,7 +122,7 @@ void SwapData( EDA_ITEM* aItem, EDA_ITEM* aImage )
|
||||||
DEST->SwapData( SOURCE );
|
DEST->SwapData( SOURCE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SEGMENT_STRUCT_TYPE:
|
case SCH_LINE_T:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (SCH_LINE*) aItem )
|
#define SOURCE ( (SCH_LINE*) aItem )
|
||||||
|
@ -131,7 +131,7 @@ void SwapData( EDA_ITEM* aItem, EDA_ITEM* aImage )
|
||||||
EXCHG( SOURCE->m_End, DEST->m_End );
|
EXCHG( SOURCE->m_End, DEST->m_End );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_BUSENTRY_STRUCT_TYPE:
|
case SCH_BUS_ENTRY_T:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (SCH_BUS_ENTRY*) aItem )
|
#define SOURCE ( (SCH_BUS_ENTRY*) aItem )
|
||||||
|
@ -140,7 +140,7 @@ void SwapData( EDA_ITEM* aItem, EDA_ITEM* aImage )
|
||||||
EXCHG( SOURCE->m_Size, DEST->m_Size );
|
EXCHG( SOURCE->m_Size, DEST->m_Size );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_T:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (SCH_SHEET*) aItem )
|
#define SOURCE ( (SCH_SHEET*) aItem )
|
||||||
|
@ -148,7 +148,7 @@ void SwapData( EDA_ITEM* aItem, EDA_ITEM* aImage )
|
||||||
DEST->SwapData( SOURCE );
|
DEST->SwapData( SOURCE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPE_SCH_MARKER:
|
case SCH_MARKER_T:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (SCH_MARKER*) aItem )
|
#define SOURCE ( (SCH_MARKER*) aItem )
|
||||||
|
@ -156,7 +156,7 @@ void SwapData( EDA_ITEM* aItem, EDA_ITEM* aImage )
|
||||||
EXCHG( SOURCE->m_Pos, DEST->m_Pos );
|
EXCHG( SOURCE->m_Pos, DEST->m_Pos );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
|
case SCH_SHEET_LABEL_T:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (SCH_SHEET_PIN*) aItem )
|
#define SOURCE ( (SCH_SHEET_PIN*) aItem )
|
||||||
|
@ -164,7 +164,7 @@ void SwapData( EDA_ITEM* aItem, EDA_ITEM* aImage )
|
||||||
DEST->SwapData( SOURCE );
|
DEST->SwapData( SOURCE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_NOCONNECT_STRUCT_TYPE:
|
case SCH_NO_CONNECT_T:
|
||||||
#undef SOURCE
|
#undef SOURCE
|
||||||
#undef DEST
|
#undef DEST
|
||||||
#define SOURCE ( (SCH_NO_CONNECT*) aItem )
|
#define SOURCE ( (SCH_NO_CONNECT*) aItem )
|
||||||
|
@ -172,7 +172,7 @@ void SwapData( EDA_ITEM* aItem, EDA_ITEM* aImage )
|
||||||
EXCHG( SOURCE->m_Pos, DEST->m_Pos );
|
EXCHG( SOURCE->m_Pos, DEST->m_Pos );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_PART_TEXT_STRUCT_TYPE:
|
case SCH_FIELD_T:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// not directly used in schematic:
|
// not directly used in schematic:
|
||||||
|
|
|
@ -244,7 +244,7 @@ void SCH_EDIT_FRAME::ReSizeSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
||||||
if( aSheet == NULL || aSheet->m_Flags & IS_NEW )
|
if( aSheet == NULL || aSheet->m_Flags & IS_NEW )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( aSheet->Type() != DRAW_SHEET_STRUCT_TYPE )
|
if( aSheet->Type() != SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
DisplayError( this, wxT( "SCH_EDIT_FRAME::ReSizeSheet: Bad SructType" ) );
|
DisplayError( this, wxT( "SCH_EDIT_FRAME::ReSizeSheet: Bad SructType" ) );
|
||||||
return;
|
return;
|
||||||
|
@ -280,7 +280,7 @@ void SCH_EDIT_FRAME::ReSizeSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
||||||
|
|
||||||
void SCH_EDIT_FRAME::StartMoveSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
void SCH_EDIT_FRAME::StartMoveSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
||||||
{
|
{
|
||||||
if( ( aSheet == NULL ) || ( aSheet->Type() != DRAW_SHEET_STRUCT_TYPE ) )
|
if( ( aSheet == NULL ) || ( aSheet->Type() != SCH_SHEET_T ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DrawPanel->CursorOff( aDC );
|
DrawPanel->CursorOff( aDC );
|
||||||
|
|
|
@ -65,7 +65,7 @@ void SCH_SHEET_PIN::Place( SCH_EDIT_FRAME* frame, wxDC* DC )
|
||||||
{
|
{
|
||||||
SCH_SHEET* Sheet = (SCH_SHEET*) GetParent();
|
SCH_SHEET* Sheet = (SCH_SHEET*) GetParent();
|
||||||
|
|
||||||
wxASSERT( Sheet != NULL && Sheet->Type() == DRAW_SHEET_STRUCT_TYPE );
|
wxASSERT( Sheet != NULL && Sheet->Type() == SCH_SHEET_T );
|
||||||
SAFE_DELETE( g_ItemToUndoCopy );
|
SAFE_DELETE( g_ItemToUndoCopy );
|
||||||
|
|
||||||
int flags = m_Flags;
|
int flags = m_Flags;
|
||||||
|
@ -213,7 +213,7 @@ SCH_SHEET_PIN* SCH_EDIT_FRAME::Import_PinSheet( SCH_SHEET* Sheet, wxDC* DC )
|
||||||
|
|
||||||
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
for( ; DrawStruct != NULL; DrawStruct = DrawStruct->Next() )
|
||||||
{
|
{
|
||||||
if( DrawStruct->Type() != TYPE_SCH_HIERLABEL )
|
if( DrawStruct->Type() != SCH_HIERARCHICAL_LABEL_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
HLabel = (SCH_HIERLABEL*) DrawStruct;
|
HLabel = (SCH_HIERLABEL*) DrawStruct;
|
||||||
|
@ -260,7 +260,7 @@ void SCH_EDIT_FRAME::DeleteSheetLabel( bool aRedraw, SCH_SHEET_PIN* aSheetLabelT
|
||||||
SCH_SHEET* parent = (SCH_SHEET*) aSheetLabelToDel->GetParent();
|
SCH_SHEET* parent = (SCH_SHEET*) aSheetLabelToDel->GetParent();
|
||||||
|
|
||||||
wxASSERT( parent );
|
wxASSERT( parent );
|
||||||
wxASSERT( parent->Type() == DRAW_SHEET_STRUCT_TYPE );
|
wxASSERT( parent->Type() == SCH_SHEET_T );
|
||||||
|
|
||||||
#if 0 && defined(DEBUG)
|
#if 0 && defined(DEBUG)
|
||||||
std::cout << "\n\nbefore deleting:\n" << std::flush;
|
std::cout << "\n\nbefore deleting:\n" << std::flush;
|
||||||
|
|
|
@ -90,7 +90,7 @@ void LIB_EDIT_FRAME::LoadOneSymbol( void )
|
||||||
|
|
||||||
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawList )
|
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawList )
|
||||||
{
|
{
|
||||||
if( item.Type() == COMPONENT_FIELD_DRAW_TYPE )
|
if( item.Type() == LIB_FIELD_T )
|
||||||
continue;
|
continue;
|
||||||
if( item.GetUnit() )
|
if( item.GetUnit() )
|
||||||
item.SetUnit( m_unit );
|
item.SetUnit( m_unit );
|
||||||
|
@ -200,11 +200,13 @@ void LIB_EDIT_FRAME::SaveOneSymbol()
|
||||||
|
|
||||||
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawList )
|
BOOST_FOREACH( LIB_DRAW_ITEM& item, drawList )
|
||||||
{
|
{
|
||||||
if( item.Type() == COMPONENT_FIELD_DRAW_TYPE )
|
if( item.Type() == LIB_FIELD_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Don't save unused parts or alternate body styles. */
|
/* Don't save unused parts or alternate body styles. */
|
||||||
if( m_unit && item.GetUnit() && ( item.GetUnit() != m_unit ) )
|
if( m_unit && item.GetUnit() && ( item.GetUnit() != m_unit ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( m_convert && item.GetConvert() && ( item.GetConvert() != m_convert ) )
|
if( m_convert && item.GetConvert() && ( item.GetConvert() != m_convert ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -212,8 +214,7 @@ void LIB_EDIT_FRAME::SaveOneSymbol()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !file.Write( wxT( "ENDDRAW\n" ) )
|
if( !file.Write( wxT( "ENDDRAW\n" ) ) || !file.Write( wxT( "ENDDEF\n" ) ) )
|
||||||
|| !file.Write( wxT( "ENDDEF\n" ) ) )
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -347,10 +347,11 @@ int LIB_VIEW_FRAME::BestZoom()
|
||||||
{
|
{
|
||||||
if( m_clientSize == wxSize( -1, -1 ) )
|
if( m_clientSize == wxSize( -1, -1 ) )
|
||||||
m_clientSize = DrawPanel->GetClientSize();
|
m_clientSize = DrawPanel->GetClientSize();
|
||||||
|
|
||||||
size = m_clientSize;
|
size = m_clientSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
EDA_Rect BoundaryBox = component->GetBoundaryBox( m_unit, m_convert );
|
EDA_Rect BoundaryBox = component->GetBoundingBox( m_unit, m_convert );
|
||||||
|
|
||||||
// Reserve a 25 mils margin around component bounding box.
|
// Reserve a 25 mils margin around component bounding box.
|
||||||
size -= wxSize( 25, 25 );
|
size -= wxSize( 25, 25 );
|
||||||
|
|
|
@ -113,7 +113,7 @@ GERBER_DRAW_ITEM* GERBER_DRAW_ITEM::Copy() const
|
||||||
* @return const wxPoint& - The position in A,B axis.
|
* @return const wxPoint& - The position in A,B axis.
|
||||||
* Because draw axis is top to bottom, the final y coordinates is negated
|
* Because draw axis is top to bottom, the final y coordinates is negated
|
||||||
*/
|
*/
|
||||||
wxPoint GERBER_DRAW_ITEM::GetABPosition( const wxPoint& aXYPosition )
|
wxPoint GERBER_DRAW_ITEM::GetABPosition( const wxPoint& aXYPosition ) const
|
||||||
{
|
{
|
||||||
/* Note: RS274Xrevd_e is obscure about the order of transforms:
|
/* Note: RS274Xrevd_e is obscure about the order of transforms:
|
||||||
* For instance: Rotation must be made after or before mirroring ?
|
* For instance: Rotation must be made after or before mirroring ?
|
||||||
|
@ -255,7 +255,7 @@ D_CODE* GERBER_DRAW_ITEM::GetDcodeDescr()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect GERBER_DRAW_ITEM::GetBoundingBox()
|
EDA_Rect GERBER_DRAW_ITEM::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
// return a rectangle which is (pos,dim) in nature. therefore the +1
|
// return a rectangle which is (pos,dim) in nature. therefore the +1
|
||||||
EDA_Rect bbox( m_Start, wxSize( 1, 1 ) );
|
EDA_Rect bbox( m_Start, wxSize( 1, 1 ) );
|
||||||
|
|
|
@ -168,7 +168,7 @@ public:
|
||||||
* @param aXYPosition = position in X,Y gerber axis
|
* @param aXYPosition = position in X,Y gerber axis
|
||||||
* @return const wxPoint - The given position in plotter A,B axis.
|
* @return const wxPoint - The given position in plotter A,B axis.
|
||||||
*/
|
*/
|
||||||
wxPoint GetABPosition(const wxPoint& aXYPosition );
|
wxPoint GetABPosition( const wxPoint& aXYPosition ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetXYPosition
|
* Function GetXYPosition
|
||||||
|
@ -178,7 +178,7 @@ public:
|
||||||
* @param aABPosition = position in A,B plotter axis
|
* @param aABPosition = position in A,B plotter axis
|
||||||
* @return const wxPoint - The given position in X,Y axis.
|
* @return const wxPoint - The given position in X,Y axis.
|
||||||
*/
|
*/
|
||||||
wxPoint GetXYPosition(const wxPoint& aABPosition );
|
wxPoint GetXYPosition( const wxPoint& aABPosition );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetDcodeDescr
|
* Function GetDcodeDescr
|
||||||
|
@ -187,7 +187,7 @@ public:
|
||||||
*/
|
*/
|
||||||
D_CODE* GetDcodeDescr();
|
D_CODE* GetDcodeDescr();
|
||||||
|
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/* Display on screen: */
|
/* Display on screen: */
|
||||||
void Draw( WinEDA_DrawPanel* aPanel,
|
void Draw( WinEDA_DrawPanel* aPanel,
|
||||||
|
|
|
@ -44,23 +44,23 @@ enum KICAD_T {
|
||||||
TYPE_BOARD_ITEM_LIST, // a list of board items
|
TYPE_BOARD_ITEM_LIST, // a list of board items
|
||||||
|
|
||||||
// Draw Items in schematic
|
// Draw Items in schematic
|
||||||
DRAW_POLYLINE_STRUCT_TYPE,
|
SCH_POLYLINE_T,
|
||||||
DRAW_JUNCTION_STRUCT_TYPE,
|
SCH_JUNCTION_T,
|
||||||
TYPE_SCH_TEXT,
|
SCH_TEXT_T,
|
||||||
TYPE_SCH_LABEL,
|
SCH_LABEL_T,
|
||||||
TYPE_SCH_GLOBALLABEL,
|
SCH_GLOBAL_LABEL_T,
|
||||||
TYPE_SCH_HIERLABEL,
|
SCH_HIERARCHICAL_LABEL_T,
|
||||||
TYPE_SCH_COMPONENT,
|
SCH_COMPONENT_T,
|
||||||
DRAW_SEGMENT_STRUCT_TYPE,
|
SCH_LINE_T,
|
||||||
DRAW_BUSENTRY_STRUCT_TYPE,
|
SCH_BUS_ENTRY_T,
|
||||||
DRAW_SHEET_STRUCT_TYPE,
|
SCH_SHEET_T,
|
||||||
DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE,
|
SCH_SHEET_LABEL_T,
|
||||||
TYPE_SCH_MARKER,
|
SCH_MARKER_T,
|
||||||
DRAW_NOCONNECT_STRUCT_TYPE,
|
SCH_NO_CONNECT_T,
|
||||||
DRAW_PART_TEXT_STRUCT_TYPE,
|
SCH_FIELD_T,
|
||||||
|
|
||||||
// General
|
// General
|
||||||
SCREEN_STRUCT_TYPE,
|
SCH_SCREEN_T,
|
||||||
BLOCK_LOCATE_STRUCT_TYPE,
|
BLOCK_LOCATE_STRUCT_TYPE,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -73,20 +73,19 @@ enum KICAD_T {
|
||||||
*/
|
*/
|
||||||
LIB_COMPONENT_T,
|
LIB_COMPONENT_T,
|
||||||
LIB_ALIAS_T,
|
LIB_ALIAS_T,
|
||||||
COMPONENT_ARC_DRAW_TYPE,
|
LIB_ARC_T,
|
||||||
COMPONENT_CIRCLE_DRAW_TYPE,
|
LIB_CIRCLE_T,
|
||||||
COMPONENT_GRAPHIC_TEXT_DRAW_TYPE,
|
LIB_TEXT_T,
|
||||||
COMPONENT_RECT_DRAW_TYPE,
|
LIB_RECTANGLE_T,
|
||||||
COMPONENT_POLYLINE_DRAW_TYPE,
|
LIB_POLYLINE_T,
|
||||||
COMPONENT_LINE_DRAW_TYPE,
|
LIB_BEZIER_T,
|
||||||
COMPONENT_BEZIER_DRAW_TYPE,
|
LIB_PIN_T,
|
||||||
COMPONENT_PIN_DRAW_TYPE,
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fields are not saved inside the "DRAW/ENDDRAW". Add new draw item
|
* Fields are not saved inside the "DRAW/ENDDRAW". Add new draw item
|
||||||
* types before this line.
|
* types before this line.
|
||||||
*/
|
*/
|
||||||
COMPONENT_FIELD_DRAW_TYPE,
|
LIB_FIELD_T,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For Gerbview: items type:
|
* For Gerbview: items type:
|
||||||
|
@ -175,14 +174,15 @@ public:
|
||||||
void Move( const wxPoint& aMoveVector );
|
void Move( const wxPoint& aMoveVector );
|
||||||
|
|
||||||
void Normalize(); // Ensure the height and width are >= 0
|
void Normalize(); // Ensure the height and width are >= 0
|
||||||
bool Inside( const wxPoint& point ); // Return TRUE if point is in Rect
|
bool Inside( const wxPoint& point ) const; // Return TRUE if point is in Rect
|
||||||
|
|
||||||
bool Inside( int x, int y ) { return Inside( wxPoint( x, y ) ); }
|
bool Inside( int x, int y ) const { return Inside( wxPoint( x, y ) ); }
|
||||||
wxSize GetSize() { return m_Size; }
|
bool Inside( const EDA_Rect& aRect ) const;
|
||||||
|
wxSize GetSize() const { return m_Size; }
|
||||||
int GetX() const { return m_Pos.x; }
|
int GetX() const { return m_Pos.x; }
|
||||||
int GetY() const { return m_Pos.y; }
|
int GetY() const { return m_Pos.y; }
|
||||||
wxPoint GetOrigin() { return m_Pos; }
|
wxPoint GetOrigin() const { return m_Pos; }
|
||||||
wxPoint GetPosition() { return m_Pos; }
|
wxPoint GetPosition() const { return m_Pos; }
|
||||||
wxPoint GetEnd() const { return wxPoint( GetRight(), GetBottom() ); }
|
wxPoint GetEnd() const { return wxPoint( GetRight(), GetBottom() ); }
|
||||||
int GetWidth() const { return m_Size.x; }
|
int GetWidth() const { return m_Size.x; }
|
||||||
int GetHeight() const { return m_Size.y; }
|
int GetHeight() const { return m_Size.y; }
|
||||||
|
@ -427,12 +427,11 @@ public:
|
||||||
* system.
|
* system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
virtual EDA_Rect GetBoundingBox()
|
virtual EDA_Rect GetBoundingBox() const
|
||||||
{
|
{
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
printf( "Missing GetBoundingBox()\n" );
|
printf( "Missing GetBoundingBox()\n" );
|
||||||
Show( 0, std::cout ); // tell me which classes still need
|
Show( 0, std::cout ); // tell me which classes still need GetBoundingBox support
|
||||||
// GetBoundingBox support
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// return a zero-sized box per default. derived classes should override
|
// return a zero-sized box per default. derived classes should override
|
||||||
|
@ -502,7 +501,7 @@ public:
|
||||||
* 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.
|
||||||
*/
|
*/
|
||||||
virtual void Show( int nestLevel, std::ostream& os );
|
virtual void Show( int nestLevel, std::ostream& os ) const;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -589,7 +588,7 @@ public:
|
||||||
EDA_TextStruct( const wxString& text = wxEmptyString );
|
EDA_TextStruct( const wxString& text = wxEmptyString );
|
||||||
virtual ~EDA_TextStruct();
|
virtual ~EDA_TextStruct();
|
||||||
|
|
||||||
int GetLength() const { return m_Text.Length(); };
|
int GetLength() const { return m_Text.Length(); };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Draw
|
* Function Draw
|
||||||
|
@ -634,20 +633,23 @@ public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function TextHitTest
|
* Function TextHitTest
|
||||||
* tests if the given wxPoint is within the bounds of this object.
|
* Test if \a aPoint is within the bounds of this object.
|
||||||
* @param ref_pos A wxPoint to test
|
* @param aPoint- A wxPoint to test
|
||||||
|
* @param aAccuracy - Amount to inflate the bounding box.
|
||||||
* @return bool - true if a hit, else false
|
* @return bool - true if a hit, else false
|
||||||
*/
|
*/
|
||||||
bool TextHitTest( const wxPoint& ref_pos );
|
bool TextHitTest( const wxPoint& aPoint, int aAccuracy = 0 ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function TextHitTest (overloaded)
|
* Function TextHitTest (overloaded)
|
||||||
* tests if the given EDA_Rect intersect this object.
|
* Tests if object bounding box is contained within or intersects \a aRect.
|
||||||
* For now, the anchor must be inside this rect.
|
*
|
||||||
* @param refArea : the given EDA_Rect
|
* @param aRect - Rect to test against.
|
||||||
|
* @param aContains - Test for containment instead of intersection if true.
|
||||||
|
* @param aAccuracy - Amount to inflate the bounding box.
|
||||||
* @return bool - true if a hit, else false
|
* @return bool - true if a hit, else false
|
||||||
*/
|
*/
|
||||||
bool TextHitTest( EDA_Rect& refArea );
|
bool TextHitTest( const EDA_Rect& aRect, bool aContains = false, int aAccuracy = 0 ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function LenSize
|
* Function LenSize
|
||||||
|
@ -655,7 +657,7 @@ public:
|
||||||
* @param aLine : the line of text to consider.
|
* @param aLine : the line of text to consider.
|
||||||
* For single line text, this parameter is always m_Text
|
* For single line text, this parameter is always m_Text
|
||||||
*/
|
*/
|
||||||
int LenSize( const wxString& aLine ) const;
|
int LenSize( const wxString& aLine ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetTextBox
|
* Function GetTextBox
|
||||||
|
@ -668,15 +670,17 @@ public:
|
||||||
* @param aLine : the line of text to consider.
|
* @param aLine : the line of text to consider.
|
||||||
* for single line text, aLine is unused
|
* for single line text, aLine is unused
|
||||||
* If aLine == -1, the full area (considering all lines) is returned
|
* If aLine == -1, the full area (considering all lines) is returned
|
||||||
|
* @param aThickness - Overrides the current thickness when greater than 0.
|
||||||
|
* @param aInvertY - Invert the Y axis when calculating bounding box.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetTextBox( int aLine = -1 );
|
EDA_Rect GetTextBox( int aLine = -1, int aThickness = -1, bool aInvertY = false ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetInterline
|
* Function GetInterline
|
||||||
* return the distance between 2 text lines
|
* return the distance between 2 text lines
|
||||||
* has meaning only for multiline texts
|
* has meaning only for multiline texts
|
||||||
*/
|
*/
|
||||||
int GetInterline()
|
int GetInterline() const
|
||||||
{
|
{
|
||||||
return (( m_Size.y * 14 ) / 10) + m_Thickness;
|
return (( m_Size.y * 14 ) / 10) + m_Thickness;
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,7 +146,7 @@ public:
|
||||||
bool m_IsPrinting;
|
bool m_IsPrinting;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
BASE_SCREEN( KICAD_T aType = SCREEN_STRUCT_TYPE );
|
BASE_SCREEN( KICAD_T aType = TYPE_SCREEN );
|
||||||
~BASE_SCREEN();
|
~BASE_SCREEN();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -187,7 +187,7 @@ public:
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBoxMarker();
|
EDA_Rect GetBoundingBoxMarker() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ public:
|
||||||
int m_RefCount; ///< Number of sheets referencing this screen.
|
int m_RefCount; ///< Number of sheets referencing this screen.
|
||||||
///< Delete when it goes to zero.
|
///< Delete when it goes to zero.
|
||||||
|
|
||||||
SCH_SCREEN( KICAD_T aType = SCREEN_STRUCT_TYPE );
|
SCH_SCREEN( KICAD_T aType = SCH_SCREEN_T );
|
||||||
~SCH_SCREEN();
|
~SCH_SCREEN();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -83,26 +83,26 @@ public:
|
||||||
* sets the layer this item is on.
|
* sets the layer this item is on.
|
||||||
* @param aLayer The layer number.
|
* @param aLayer The layer number.
|
||||||
*/
|
*/
|
||||||
void SetLayer( int aLayer ) { m_Layer = aLayer; }
|
void SetLayer( int aLayer ) { m_Layer = aLayer; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetPenSize virtual pure
|
* Function GetPenSize virtual pure
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
*/
|
*/
|
||||||
virtual int GetPenSize( ) = 0;
|
virtual int GetPenSize() const { return 0; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Draw
|
* Function Draw
|
||||||
*/
|
*/
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel,
|
virtual void Draw( WinEDA_DrawPanel* aPanel,
|
||||||
wxDC* DC,
|
wxDC* aDC,
|
||||||
const wxPoint& offset,
|
const wxPoint& aOffset,
|
||||||
int draw_mode,
|
int aDrawMode,
|
||||||
int Color = -1 ) = 0;
|
int aColor = -1 ) = 0;
|
||||||
|
|
||||||
|
|
||||||
/* Place function */
|
/* Place function */
|
||||||
virtual void Place( SCH_EDIT_FRAME* frame, wxDC* DC );
|
virtual void Place( SCH_EDIT_FRAME* aFrame, wxDC* aDC );
|
||||||
|
|
||||||
// Geometric transforms (used in block operations):
|
// Geometric transforms (used in block operations):
|
||||||
/** virtual function Move
|
/** virtual function Move
|
||||||
|
@ -127,7 +127,7 @@ public:
|
||||||
* @param aFile The FILE to write to.
|
* @param aFile The FILE to write to.
|
||||||
* @return bool - true if success writing else false.
|
* @return bool - true if success writing else false.
|
||||||
*/
|
*/
|
||||||
virtual bool Save( FILE* aFile ) const = 0;
|
virtual bool Save( FILE* aFile ) const = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load schematic item from \a aLine in a .sch file.
|
* Load schematic item from \a aLine in a .sch file.
|
||||||
|
@ -222,6 +222,46 @@ public:
|
||||||
* Do not use the vector erase method on the connection list.
|
* Do not use the vector erase method on the connection list.
|
||||||
*/
|
*/
|
||||||
void ClearConnections() { m_connections.release(); }
|
void ClearConnections() { m_connections.release(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function HitTest().
|
||||||
|
* Test if \a aPoint is contained within the bounding box or on an item.
|
||||||
|
*
|
||||||
|
* @param aPoint - Point to test.
|
||||||
|
* @param aAccuracy - Increase the item bounding box by this amount.
|
||||||
|
* @return True if \aPoint is within the item.
|
||||||
|
*/
|
||||||
|
bool HitTest( const wxPoint& aPoint, int aAccuracy = 0 ) const
|
||||||
|
{
|
||||||
|
return DoHitTest( aPoint, aAccuracy );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function HitTest().
|
||||||
|
* Test if \a aRect intersects or is contained within the bounding box of an item.
|
||||||
|
*
|
||||||
|
* @param aRect - Rectangle to test.
|
||||||
|
* @param aContained - Set to true to test for containment instead of an intersection.
|
||||||
|
* @param aAccuracy - Increase the item bounding box by this amount.
|
||||||
|
* @return True if \aRect contains or intersects the item bounding box.
|
||||||
|
*/
|
||||||
|
bool HitTest( const EDA_Rect& aRect, bool aContained = false, int aAccuracy = 0 ) const
|
||||||
|
{
|
||||||
|
return DoHitTest( aRect, aContained, aAccuracy );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @note - The DoXXX() functions below are used to enforce the interface while retaining
|
||||||
|
* the ability of change the implementation behavior of derived classes. See
|
||||||
|
* Herb Sutters explanation of virtuality as to why you might want to do this at:
|
||||||
|
* http://www.gotw.ca/publications/mill18.htm.
|
||||||
|
*/
|
||||||
|
private:
|
||||||
|
virtual bool DoHitTest( const wxPoint& aPoint, int aAccuracy ) const { return false; }
|
||||||
|
virtual bool DoHitTest( const EDA_Rect& aRect, bool aContained, int aAccuracy ) const
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* SCH_ITEM_STRUCT_H */
|
#endif /* SCH_ITEM_STRUCT_H */
|
||||||
|
|
|
@ -62,7 +62,7 @@ void EDGE_MODULE::Copy( EDGE_MODULE* source )
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
EDA_Rect EDGE_MODULE::GetBoundingBox()
|
EDA_Rect EDGE_MODULE::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
EDA_Rect bbox;
|
EDA_Rect bbox;
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ public:
|
||||||
* object, and the units should be in the pcb or schematic coordinate system.
|
* object, and the units should be in the pcb or schematic coordinate system.
|
||||||
* It is OK to overestimate the size by a few counts.
|
* It is OK to overestimate the size by a few counts.
|
||||||
*/
|
*/
|
||||||
virtual EDA_Rect GetBoundingBox();
|
virtual EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function HitTest
|
* Function HitTest
|
||||||
|
|
|
@ -714,6 +714,31 @@ void MODULE::Set_Rectangle_Encadrement()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EDA_Rect MODULE::GetFootPrintRect() const
|
||||||
|
{
|
||||||
|
EDA_Rect area;
|
||||||
|
|
||||||
|
area.m_Pos = m_Pos;
|
||||||
|
area.SetEnd( m_Pos );
|
||||||
|
area.Inflate( 500 ); // Give a min size
|
||||||
|
|
||||||
|
for( EDGE_MODULE* edge = (EDGE_MODULE*) m_Drawings.GetFirst(); edge; edge = edge->Next() )
|
||||||
|
{
|
||||||
|
if( edge->Type() != TYPE_EDGE_MODULE ) // Shoud not occur
|
||||||
|
continue;
|
||||||
|
|
||||||
|
area.Merge( edge->GetBoundingBox() );
|
||||||
|
}
|
||||||
|
|
||||||
|
for( D_PAD* pad = m_Pads; pad; pad = pad->Next() )
|
||||||
|
{
|
||||||
|
area.Merge( pad->GetBoundingBox() );
|
||||||
|
}
|
||||||
|
|
||||||
|
return area;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Equivalent to Module::Set_Rectangle_Encadrement() but in board coordinates:
|
/* Equivalent to Module::Set_Rectangle_Encadrement() but in board coordinates:
|
||||||
* Updates the module bounding box on the board
|
* Updates the module bounding box on the board
|
||||||
* The rectangle is the rectangle with outlines and pads, but not the fields
|
* The rectangle is the rectangle with outlines and pads, but not the fields
|
||||||
|
@ -721,29 +746,9 @@ void MODULE::Set_Rectangle_Encadrement()
|
||||||
*/
|
*/
|
||||||
void MODULE::SetRectangleExinscrit()
|
void MODULE::SetRectangleExinscrit()
|
||||||
{
|
{
|
||||||
m_RealBoundaryBox.m_Pos = m_Pos;
|
m_RealBoundaryBox = GetFootPrintRect();
|
||||||
m_RealBoundaryBox.SetEnd( m_Pos );
|
|
||||||
m_RealBoundaryBox.Inflate( 500 ); // Give a min size
|
|
||||||
|
|
||||||
for( EDGE_MODULE* edge = (EDGE_MODULE*) m_Drawings.GetFirst();
|
m_Surface = ABS( (double) m_RealBoundaryBox.GetWidth() * m_RealBoundaryBox.GetHeight() );
|
||||||
edge; edge = edge->Next() )
|
|
||||||
{
|
|
||||||
if( edge->Type() != TYPE_EDGE_MODULE ) // Shoud not occur
|
|
||||||
continue;
|
|
||||||
|
|
||||||
EDA_Rect rect = edge->GetBoundingBox();
|
|
||||||
m_RealBoundaryBox.Merge( rect );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
for( D_PAD* pad = m_Pads; pad; pad = pad->Next() )
|
|
||||||
{
|
|
||||||
EDA_Rect rect = pad->GetBoundingBox();
|
|
||||||
m_RealBoundaryBox.Merge( rect );
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Surface = ABS( (double) m_RealBoundaryBox.GetWidth()
|
|
||||||
* m_RealBoundaryBox.GetHeight() );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -752,11 +757,9 @@ void MODULE::SetRectangleExinscrit()
|
||||||
* returns the full bounding box of this Footprint, including fields
|
* returns the full bounding box of this Footprint, including fields
|
||||||
* Mainly used to redraw the screen area occupied by the footprint
|
* Mainly used to redraw the screen area occupied by the footprint
|
||||||
*/
|
*/
|
||||||
EDA_Rect MODULE::GetBoundingBox()
|
EDA_Rect MODULE::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
// Calculate area without text fields:
|
EDA_Rect area = GetFootPrintRect();;
|
||||||
SetRectangleExinscrit();
|
|
||||||
EDA_Rect area = m_RealBoundaryBox;
|
|
||||||
|
|
||||||
// Calculate extended area including text field:
|
// Calculate extended area including text field:
|
||||||
EDA_Rect text_area;
|
EDA_Rect text_area;
|
||||||
|
@ -766,11 +769,11 @@ EDA_Rect MODULE::GetBoundingBox()
|
||||||
text_area = m_Value->GetBoundingBox();
|
text_area = m_Value->GetBoundingBox();
|
||||||
area.Merge( text_area );
|
area.Merge( text_area );
|
||||||
|
|
||||||
for( EDGE_MODULE* edge = (EDGE_MODULE*) m_Drawings.GetFirst(); edge;
|
for( EDGE_MODULE* edge = (EDGE_MODULE*) m_Drawings.GetFirst(); edge; edge = edge->Next() )
|
||||||
edge = edge->Next() )
|
|
||||||
{
|
{
|
||||||
if( edge->Type() != TYPE_TEXTE_MODULE )
|
if( edge->Type() != TYPE_TEXTE_MODULE )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
text_area = ( (TEXTE_MODULE*) edge )->GetBoundingBox();
|
text_area = ( (TEXTE_MODULE*) edge )->GetBoundingBox();
|
||||||
area.Merge( text_area );
|
area.Merge( text_area );
|
||||||
}
|
}
|
||||||
|
@ -797,11 +800,11 @@ void MODULE::DisplayInfo( WinEDA_DrawFrame* frame )
|
||||||
BOARD* board = GetBoard();
|
BOARD* board = GetBoard();
|
||||||
|
|
||||||
frame->EraseMsgBox();
|
frame->EraseMsgBox();
|
||||||
|
|
||||||
if( frame->m_Ident != PCB_FRAME )
|
if( frame->m_Ident != PCB_FRAME )
|
||||||
flag = TRUE;
|
flag = TRUE;
|
||||||
|
|
||||||
frame->AppendMsgPanel( m_Reference->m_Text, m_Value->m_Text,
|
frame->AppendMsgPanel( m_Reference->m_Text, m_Value->m_Text, DARKCYAN );
|
||||||
DARKCYAN );
|
|
||||||
|
|
||||||
if( flag ) // Display last date the component was edited( useful in Module Editor)
|
if( flag ) // Display last date the component was edited( useful in Module Editor)
|
||||||
{
|
{
|
||||||
|
|
|
@ -123,12 +123,18 @@ public:
|
||||||
*/
|
*/
|
||||||
void SetRectangleExinscrit();
|
void SetRectangleExinscrit();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetFootPrintRect()
|
||||||
|
* Returns the area of the module footprint excluding any text.
|
||||||
|
*/
|
||||||
|
EDA_Rect GetFootPrintRect() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* returns the bounding box of this Footprint
|
* returns the bounding box of this Footprint
|
||||||
* Mainly used to redraw the screen area occupied by the footprint
|
* Mainly used to redraw the screen area occupied by the footprint
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetPosition
|
* Function GetPosition
|
||||||
|
|
|
@ -55,32 +55,41 @@ D_PAD::~D_PAD()
|
||||||
|
|
||||||
/* Calculate the radius of the circle containing the pad.
|
/* Calculate the radius of the circle containing the pad.
|
||||||
*/
|
*/
|
||||||
void D_PAD::ComputeShapeMaxRadius()
|
int D_PAD::GetMaxRadius() const
|
||||||
{
|
{
|
||||||
|
int x, y, radius;
|
||||||
|
|
||||||
switch( m_PadShape & 0x7F )
|
switch( m_PadShape & 0x7F )
|
||||||
{
|
{
|
||||||
case PAD_CIRCLE:
|
case PAD_CIRCLE:
|
||||||
m_ShapeMaxRadius = m_Size.x / 2;
|
radius = m_Size.x / 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PAD_OVAL:
|
case PAD_OVAL:
|
||||||
m_ShapeMaxRadius = MAX( m_Size.x, m_Size.y ) / 2;
|
radius = MAX( m_Size.x, m_Size.y ) / 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PAD_RECT:
|
case PAD_RECT:
|
||||||
m_ShapeMaxRadius = 1 + (int) ( sqrt( (double) m_Size.y * m_Size.y
|
radius = 1 + (int) ( sqrt( (double) m_Size.y * m_Size.y
|
||||||
+ (double) m_Size.x * m_Size.x ) / 2 );
|
+ (double) m_Size.x * m_Size.x ) / 2 );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PAD_TRAPEZOID:
|
case PAD_TRAPEZOID:
|
||||||
{ wxSize fullsize = m_Size;
|
x = m_Size.x + ABS( m_DeltaSize.y ); // Remember: m_DeltaSize.y is the m_Size.x change
|
||||||
fullsize.x += ABS(m_DeltaSize.y); // Remember: m_DeltaSize.y is the m_Size.x change
|
y = m_Size.y + ABS( m_DeltaSize.x ); // Remember: m_DeltaSize.x is the m_Size.y change
|
||||||
fullsize.y += ABS(m_DeltaSize.x); // Remember: m_DeltaSize.x is the m_Size.y change
|
radius = 1 + (int) ( sqrt( (double) y * y + (double) x * x ) / 2 );
|
||||||
m_ShapeMaxRadius = 1 + (int) ( sqrt( (double) m_Size.y * m_Size.y
|
|
||||||
+ (double) m_Size.x * m_Size.x ) / 2 );
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Calculate the radius of the circle containing the pad.
|
||||||
|
*/
|
||||||
|
void D_PAD::ComputeShapeMaxRadius()
|
||||||
|
{
|
||||||
|
m_ShapeMaxRadius = GetMaxRadius();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -89,14 +98,13 @@ void D_PAD::ComputeShapeMaxRadius()
|
||||||
* returns the bounding box of this pad
|
* returns the bounding box of this pad
|
||||||
* Mainly used to redraw the screen area occupied by the pad
|
* Mainly used to redraw the screen area occupied by the pad
|
||||||
*/
|
*/
|
||||||
EDA_Rect D_PAD::GetBoundingBox()
|
EDA_Rect D_PAD::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
// Calculate area:
|
|
||||||
ComputeShapeMaxRadius(); // calculate the radius of the area, considered as a
|
|
||||||
// circle
|
|
||||||
EDA_Rect area;
|
EDA_Rect area;
|
||||||
|
int radius = GetMaxRadius(); // Calculate the radius of the area, considered as a circle
|
||||||
|
|
||||||
area.SetOrigin( m_Pos );
|
area.SetOrigin( m_Pos );
|
||||||
area.Inflate( m_ShapeMaxRadius, m_ShapeMaxRadius );
|
area.Inflate( radius );
|
||||||
|
|
||||||
return area;
|
return area;
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,6 +271,9 @@ public:
|
||||||
wxString ReturnStringPadName(); // Return pad name as string in a wxString
|
wxString ReturnStringPadName(); // Return pad name as string in a wxString
|
||||||
void ReturnStringPadName( wxString& text ); // Return pad name as string in a buffer
|
void ReturnStringPadName( wxString& text ); // Return pad name as string in a buffer
|
||||||
void ComputeShapeMaxRadius(); // compute radius
|
void ComputeShapeMaxRadius(); // compute radius
|
||||||
|
|
||||||
|
int GetMaxRadius() const;
|
||||||
|
|
||||||
const wxPoint ReturnShapePos();
|
const wxPoint ReturnShapePos();
|
||||||
|
|
||||||
|
|
||||||
|
@ -321,13 +324,12 @@ public:
|
||||||
return wxT( "PAD" );
|
return wxT( "PAD" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* returns the bounding box of this pad
|
* returns the bounding box of this pad
|
||||||
* Mainly used to redraw the screen area occupied by the pad
|
* Mainly used to redraw the screen area occupied by the pad
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Compare
|
* Function Compare
|
||||||
|
|
|
@ -194,7 +194,7 @@ void TEXTE_MODULE::Copy( TEXTE_MODULE* source )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TEXTE_MODULE:: GetLength()
|
int TEXTE_MODULE:: GetLength() const
|
||||||
{
|
{
|
||||||
return m_Text.Len();
|
return m_Text.Len();
|
||||||
}
|
}
|
||||||
|
@ -250,7 +250,7 @@ void TEXTE_MODULE:: SetLocalCoord()
|
||||||
* @return an EDA_Rect which gives the position and size of the text area
|
* @return an EDA_Rect which gives the position and size of the text area
|
||||||
* (for the footprint orientation)
|
* (for the footprint orientation)
|
||||||
*/
|
*/
|
||||||
EDA_Rect TEXTE_MODULE::GetTextRect( void )
|
EDA_Rect TEXTE_MODULE::GetTextRect( void ) const
|
||||||
{
|
{
|
||||||
EDA_Rect area;
|
EDA_Rect area;
|
||||||
|
|
||||||
|
@ -303,7 +303,7 @@ bool TEXTE_MODULE::HitTest( const wxPoint& refPos )
|
||||||
* returns the bounding box of this Text (according to text and footprint
|
* returns the bounding box of this Text (according to text and footprint
|
||||||
* orientation)
|
* orientation)
|
||||||
*/
|
*/
|
||||||
EDA_Rect TEXTE_MODULE::GetBoundingBox()
|
EDA_Rect TEXTE_MODULE::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
// Calculate area without text fields:
|
// Calculate area without text fields:
|
||||||
EDA_Rect text_area;
|
EDA_Rect text_area;
|
||||||
|
@ -438,18 +438,19 @@ void TEXTE_MODULE::DrawUmbilical( WinEDA_DrawPanel* aPanel,
|
||||||
|
|
||||||
/* Return text rotation for drawings and plotting
|
/* Return text rotation for drawings and plotting
|
||||||
*/
|
*/
|
||||||
int TEXTE_MODULE::GetDrawRotation()
|
int TEXTE_MODULE::GetDrawRotation() const
|
||||||
{
|
{
|
||||||
int rotation;
|
int rotation;
|
||||||
MODULE* Module = (MODULE*) m_Parent;
|
MODULE* Module = (MODULE*) m_Parent;
|
||||||
|
|
||||||
rotation = m_Orient;
|
rotation = m_Orient;
|
||||||
|
|
||||||
if( Module )
|
if( Module )
|
||||||
rotation += Module->m_Orient;
|
rotation += Module->m_Orient;
|
||||||
|
|
||||||
NORMALIZE_ANGLE_POS( rotation );
|
NORMALIZE_ANGLE_POS( rotation );
|
||||||
|
|
||||||
// For angle = 0 .. 180 deg
|
// For angle = 0 .. 180 deg
|
||||||
while( rotation > 900 )
|
while( rotation > 900 )
|
||||||
rotation -= 1800;
|
rotation -= 1800;
|
||||||
|
|
||||||
|
|
|
@ -47,23 +47,24 @@ public: TEXTE_MODULE( MODULE* parent, int text_type = TEXT_is_DIVERS );
|
||||||
|
|
||||||
/* Gestion du texte */
|
/* Gestion du texte */
|
||||||
void SetWidth( int new_width );
|
void SetWidth( int new_width );
|
||||||
int GetLength(); /* text length */
|
|
||||||
int GetDrawRotation(); // Return text rotation for drawings and
|
int GetLength() const; /* text length */
|
||||||
// plotting
|
|
||||||
|
int GetDrawRotation() const; // Return text rotation for drawings and plotting
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetTextRect
|
* Function GetTextRect
|
||||||
* @return an EDA_Rect which gives the position and size of the text area
|
* @return an EDA_Rect which gives the position and size of the text area
|
||||||
* (for the 0 orient text and footprint)
|
* (for the 0 orient text and footprint)
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetTextRect( void );
|
EDA_Rect GetTextRect( void ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetBoundingBox
|
* Function GetBoundingBox
|
||||||
* returns the bounding box of this Text (according to text and footprint
|
* returns the bounding box of this Text (according to text and footprint
|
||||||
* orientation)
|
* orientation)
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
void SetDrawCoord(); // Set absolute coordinates.
|
void SetDrawCoord(); // Set absolute coordinates.
|
||||||
|
|
||||||
|
|
|
@ -212,7 +212,7 @@ int TRACK::IsPointOnEnds( const wxPoint& point, int min_dist )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EDA_Rect TRACK::GetBoundingBox()
|
EDA_Rect TRACK::GetBoundingBox() const
|
||||||
{
|
{
|
||||||
// end of track is round, this is its radius, rounded up
|
// end of track is round, this is its radius, rounded up
|
||||||
int radius = ( m_Width + 1 ) / 2;
|
int radius = ( m_Width + 1 ) / 2;
|
||||||
|
|
|
@ -97,9 +97,7 @@ public:
|
||||||
return m_Start; // it had to be start or end.
|
return m_Start; // it had to be start or end.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EDA_Rect GetBoundingBox() const;
|
||||||
EDA_Rect GetBoundingBox();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
|
|
@ -641,18 +641,19 @@ void ZONE_CONTAINER::DrawFilledArea( WinEDA_DrawPanel* panel,
|
||||||
{
|
{
|
||||||
wxPoint start = m_FillSegmList[ic].m_Start + offset;
|
wxPoint start = m_FillSegmList[ic].m_Start + offset;
|
||||||
wxPoint end = m_FillSegmList[ic].m_End + offset;
|
wxPoint end = m_FillSegmList[ic].m_End + offset;
|
||||||
|
|
||||||
if( !DisplayOpt.DisplayPcbTrackFill || GetState( FORCE_SKETCH ) )
|
if( !DisplayOpt.DisplayPcbTrackFill || GetState( FORCE_SKETCH ) )
|
||||||
GRCSegm( &panel->m_ClipBox, DC, start.x, start.y, end.x, end.y, m_ZoneMinThickness, color );
|
GRCSegm( &panel->m_ClipBox, DC, start.x, start.y, end.x, end.y,
|
||||||
|
m_ZoneMinThickness, color );
|
||||||
else
|
else
|
||||||
GRFillCSegm( &panel->m_ClipBox, DC, start.x, start.y, end.x, end.y, m_ZoneMinThickness, color );
|
GRFillCSegm( &panel->m_ClipBox, DC, start.x, start.y, end.x, end.y,
|
||||||
|
m_ZoneMinThickness, color );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/****************************************/
|
EDA_Rect ZONE_CONTAINER::GetBoundingBox() const
|
||||||
EDA_Rect ZONE_CONTAINER::GetBoundingBox()
|
|
||||||
/****************************************/
|
|
||||||
{
|
{
|
||||||
const int PRELOAD = 0x7FFFFFFF; // Biggest integer (32 bits)
|
const int PRELOAD = 0x7FFFFFFF; // Biggest integer (32 bits)
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ public:
|
||||||
/* Function GetBoundingBox
|
/* Function GetBoundingBox
|
||||||
* @return an EDA_Rect that is the bounding box of the zone outline
|
* @return an EDA_Rect that is the bounding box of the zone outline
|
||||||
*/
|
*/
|
||||||
EDA_Rect GetBoundingBox();
|
EDA_Rect GetBoundingBox() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Test_For_Copper_Island_And_Remove__Insulated_Islands
|
* Function Test_For_Copper_Island_And_Remove__Insulated_Islands
|
||||||
|
@ -324,7 +324,7 @@ public:
|
||||||
/** Acces to m_Poly parameters
|
/** Acces to m_Poly parameters
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int GetNumCorners( void )
|
int GetNumCorners( void ) const
|
||||||
{
|
{
|
||||||
return m_Poly->GetNumCorners();
|
return m_Poly->GetNumCorners();
|
||||||
}
|
}
|
||||||
|
@ -336,7 +336,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wxPoint GetCornerPosition( int aCornerIndex )
|
wxPoint GetCornerPosition( int aCornerIndex ) const
|
||||||
{
|
{
|
||||||
return wxPoint( m_Poly->GetX( aCornerIndex ), m_Poly->GetY( aCornerIndex ) );
|
return wxPoint( m_Poly->GetX( aCornerIndex ), m_Poly->GetY( aCornerIndex ) );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue