EESchema block code cleaning and other minor fixes.
* Move update block pick list code to SCH_SCREEN object. * Remove redundant drawing function RedrawOneStruct(). * Change context menu text "Noconn" to "No Connect". * Change context menu text "GLabel" to "Global Label".
This commit is contained in:
parent
cfeb55a288
commit
a3a73ef5dd
|
@ -74,7 +74,7 @@ void SCH_ITEM::Place( SCH_EDIT_FRAME* frame, wxDC* DC )
|
|||
if( DC )
|
||||
{
|
||||
frame->DrawPanel->CursorOff( DC ); // Erase schematic cursor
|
||||
RedrawOneStruct( frame->DrawPanel, DC, this, GR_DEFAULT_DRAWMODE );
|
||||
Draw( frame->DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
frame->DrawPanel->CursorOn( DC ); // Display schematic cursor
|
||||
}
|
||||
}
|
||||
|
|
|
@ -240,7 +240,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
|||
case BLOCK_MIRROR_Y:
|
||||
case BLOCK_MOVE: /* Move */
|
||||
case BLOCK_COPY: /* Copy */
|
||||
PickItemsInBlock( GetScreen()->m_BlockLocate, GetScreen() );
|
||||
GetScreen()->UpdatePickList();
|
||||
// fall through
|
||||
case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/
|
||||
if( block->GetCount() )
|
||||
|
@ -261,7 +261,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
|||
break;
|
||||
|
||||
case BLOCK_DELETE: /* Delete */
|
||||
PickItemsInBlock( GetScreen()->m_BlockLocate, GetScreen() );
|
||||
GetScreen()->UpdatePickList();
|
||||
DrawAndSizingBlockOutlines( DrawPanel, DC, false );
|
||||
|
||||
if( block->GetCount() )
|
||||
|
@ -276,7 +276,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
|||
break;
|
||||
|
||||
case BLOCK_SAVE: /* Save */
|
||||
PickItemsInBlock( GetScreen()->m_BlockLocate, GetScreen() );
|
||||
GetScreen()->UpdatePickList();
|
||||
DrawAndSizingBlockOutlines( DrawPanel, DC, false );
|
||||
|
||||
if( block->GetCount() )
|
||||
|
@ -374,7 +374,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC )
|
|||
|
||||
BreakSegmentOnJunction( GetScreen() );
|
||||
|
||||
PickItemsInBlock( GetScreen()->m_BlockLocate, GetScreen() );
|
||||
GetScreen()->UpdatePickList();
|
||||
|
||||
if( block->GetCount() )
|
||||
{
|
||||
|
|
|
@ -91,7 +91,7 @@ static void DrawSegment( WinEDA_DrawPanel* aPanel, wxDC* aDC, bool aErase )
|
|||
while( segment )
|
||||
{
|
||||
if( !segment->IsNull() ) // Redraw if segment length != 0
|
||||
RedrawOneStruct( aPanel, aDC, segment, g_XorMode, color );
|
||||
segment->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, color );
|
||||
|
||||
segment = segment->Next();
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ static void DrawSegment( WinEDA_DrawPanel* aPanel, wxDC* aDC, bool aErase )
|
|||
while( segment )
|
||||
{
|
||||
if( !segment->IsNull() ) // Redraw if segment length != 0
|
||||
RedrawOneStruct( aPanel, aDC, segment, g_XorMode, color );
|
||||
segment->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, color );
|
||||
|
||||
segment = segment->Next();
|
||||
}
|
||||
|
@ -216,7 +216,7 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type )
|
|||
oldsegment->SetNext( GetScreen()->GetDrawItems() );
|
||||
GetScreen()->SetDrawItems( oldsegment );
|
||||
DrawPanel->CursorOff( DC ); // Erase schematic cursor
|
||||
RedrawOneStruct( DrawPanel, DC, oldsegment, GR_DEFAULT_DRAWMODE );
|
||||
oldsegment->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
DrawPanel->CursorOn( DC ); // Display schematic cursor
|
||||
|
||||
/* Create a new segment, and chain it after the current new segment */
|
||||
|
@ -456,10 +456,10 @@ static void Show_Polyline_in_Ghost( WinEDA_DrawPanel* panel, wxDC* DC, bool eras
|
|||
}
|
||||
|
||||
if( erase )
|
||||
RedrawOneStruct( panel, DC, NewPoly, g_XorMode, color );
|
||||
NewPoly->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode, color );
|
||||
|
||||
NewPoly->m_PolyPoints[idx] = endpos;
|
||||
RedrawOneStruct( panel, DC, NewPoly, g_XorMode, color );
|
||||
NewPoly->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode, color );
|
||||
}
|
||||
|
||||
|
||||
|
@ -505,7 +505,7 @@ SCH_JUNCTION* SCH_EDIT_FRAME::CreateNewJunctionStruct( wxDC* DC,
|
|||
g_ItemToRepeat = NewJunction;
|
||||
|
||||
DrawPanel->CursorOff( DC ); // Erase schematic cursor
|
||||
RedrawOneStruct( DrawPanel, DC, NewJunction, GR_DEFAULT_DRAWMODE );
|
||||
NewJunction->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
DrawPanel->CursorOn( DC ); // Display schematic cursor
|
||||
|
||||
NewJunction->SetNext( GetScreen()->GetDrawItems() );
|
||||
|
@ -528,7 +528,7 @@ SCH_NO_CONNECT* SCH_EDIT_FRAME::CreateNewNoConnectStruct( wxDC* DC )
|
|||
g_ItemToRepeat = NewNoConnect;
|
||||
|
||||
DrawPanel->CursorOff( DC ); // Erase schematic cursor
|
||||
RedrawOneStruct( DrawPanel, DC, NewNoConnect, GR_DEFAULT_DRAWMODE );
|
||||
NewNoConnect->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
DrawPanel->CursorOn( DC ); // Display schematic cursor
|
||||
|
||||
NewNoConnect->SetNext( GetScreen()->GetDrawItems() );
|
||||
|
@ -585,7 +585,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
|||
g_ItemToRepeat->m_Flags = IS_NEW;
|
||||
( (SCH_COMPONENT*) g_ItemToRepeat )->m_TimeStamp = GetTimeStamp();
|
||||
g_ItemToRepeat->Move( pos );
|
||||
RedrawOneStruct( DrawPanel, DC, g_ItemToRepeat, g_XorMode );
|
||||
g_ItemToRepeat->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
StartMovePart( (SCH_COMPONENT*) g_ItemToRepeat, DC );
|
||||
return;
|
||||
}
|
||||
|
@ -605,7 +605,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
|
|||
g_ItemToRepeat->SetNext( GetScreen()->GetDrawItems() );
|
||||
GetScreen()->SetDrawItems( g_ItemToRepeat );
|
||||
TestDanglingEnds( GetScreen()->GetDrawItems(), NULL );
|
||||
RedrawOneStruct( DrawPanel, DC, g_ItemToRepeat, GR_DEFAULT_DRAWMODE );
|
||||
g_ItemToRepeat->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
SaveCopyInUndoList( g_ItemToRepeat, UR_NEW );
|
||||
g_ItemToRepeat->m_Flags = 0;
|
||||
}
|
||||
|
|
|
@ -27,7 +27,8 @@ static void ExitBusEntry( WinEDA_DrawPanel* Panel, wxDC* DC )
|
|||
|
||||
if( BusEntry )
|
||||
{
|
||||
RedrawOneStruct( Panel, DC, BusEntry, g_XorMode );
|
||||
BusEntry->Draw( Panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
if( BusEntry->m_Flags & IS_NEW )
|
||||
{
|
||||
delete BusEntry;
|
||||
|
@ -36,7 +37,7 @@ static void ExitBusEntry( WinEDA_DrawPanel* Panel, wxDC* DC )
|
|||
else
|
||||
{
|
||||
BusEntry->m_Pos = ItemInitialPosition;
|
||||
RedrawOneStruct( Panel, DC, BusEntry, GR_DEFAULT_DRAWMODE );
|
||||
BusEntry->Draw( Panel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
BusEntry->m_Flags = 0;
|
||||
}
|
||||
}
|
||||
|
@ -58,11 +59,11 @@ static void ShowWhileMoving( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
|||
|
||||
/* Erase the last segment position. */
|
||||
if( erase )
|
||||
RedrawOneStruct( panel, DC, BusEntry, g_XorMode );
|
||||
BusEntry->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
/* Redraw at the new position. */
|
||||
BusEntry->m_Pos = screen->m_Curseur;
|
||||
RedrawOneStruct( panel, DC, BusEntry, g_XorMode );
|
||||
BusEntry->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
}
|
||||
|
||||
|
||||
|
@ -121,7 +122,7 @@ void SCH_EDIT_FRAME::SetBusEntryShape( wxDC* DC, SCH_BUS_ENTRY* BusEntry, int en
|
|||
if( BusEntry->m_Flags == 0 )
|
||||
SaveCopyInUndoList( BusEntry, UR_CHANGED );
|
||||
|
||||
RedrawOneStruct( DrawPanel, DC, BusEntry, g_XorMode );
|
||||
BusEntry->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
switch( entry_shape )
|
||||
{
|
||||
|
@ -137,7 +138,7 @@ void SCH_EDIT_FRAME::SetBusEntryShape( wxDC* DC, SCH_BUS_ENTRY* BusEntry, int en
|
|||
}
|
||||
|
||||
TestDanglingEnds( GetScreen()->GetDrawItems(), NULL );
|
||||
RedrawOneStruct( DrawPanel, DC, BusEntry, g_XorMode );
|
||||
BusEntry->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
OnModify( );
|
||||
}
|
||||
|
||||
|
|
|
@ -44,8 +44,8 @@ void SCH_EDIT_FRAME::TestDanglingEnds( SCH_ITEM* aDrawList, wxDC* aDC )
|
|||
{
|
||||
if( item->IsDanglingStateChanged( endPoints ) && aDC != NULL )
|
||||
{
|
||||
RedrawOneStruct( DrawPanel, aDC, item, g_XorMode );
|
||||
RedrawOneStruct( DrawPanel, aDC, item, GR_DEFAULT_DRAWMODE );
|
||||
item->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
item->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -823,7 +823,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp( wxCommandEvent& event )
|
|||
|
||||
INSTALL_DC( dc, m_Parent->DrawPanel );
|
||||
|
||||
RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, g_XorMode );
|
||||
m_Cmp->Draw( m_Parent->DrawPanel, &dc, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
// Initialize field values to default values found in library:
|
||||
LIB_FIELD& refField = entry->GetReferenceField();
|
||||
|
@ -838,6 +838,6 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp( wxCommandEvent& event )
|
|||
|
||||
m_Parent->OnModify( );
|
||||
|
||||
RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, GR_DEFAULT_DRAWMODE );
|
||||
m_Cmp->Draw( m_Parent->DrawPanel, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
EndModal( 1 );
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ void SCH_EDIT_FRAME::ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC )
|
|||
|
||||
/* Erase old text */
|
||||
DrawPanel->CursorOff( DC );
|
||||
RedrawOneStruct( DrawPanel, DC, TextStruct, g_XorMode );
|
||||
TextStruct->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
int orient;
|
||||
|
||||
|
@ -109,7 +109,7 @@ void SCH_EDIT_FRAME::ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC )
|
|||
}
|
||||
|
||||
OnModify( );
|
||||
RedrawOneStruct( DrawPanel, DC, TextStruct, g_XorMode );
|
||||
TextStruct->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
DrawPanel->CursorOn( DC );
|
||||
}
|
||||
|
||||
|
@ -153,7 +153,7 @@ SCH_TEXT* SCH_EDIT_FRAME::CreateNewText( wxDC* DC, int type )
|
|||
NewText->m_Size.x = NewText->m_Size.y = g_DefaultTextLabelSize;
|
||||
NewText->m_Flags = IS_NEW | IS_MOVED;
|
||||
|
||||
RedrawOneStruct( DrawPanel, DC, NewText, g_XorMode );
|
||||
NewText->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
EditSchematicText( NewText );
|
||||
|
||||
if( NewText->m_Text.IsEmpty() )
|
||||
|
@ -171,7 +171,7 @@ SCH_TEXT* SCH_EDIT_FRAME::CreateNewText( wxDC* DC, int type )
|
|||
lastGlobalLabelShape = NewText->m_Shape;
|
||||
}
|
||||
|
||||
RedrawOneStruct( DrawPanel, DC, NewText, GR_DEFAULT_DRAWMODE );
|
||||
NewText->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
DrawPanel->ManageCurseur = ShowWhileMoving;
|
||||
DrawPanel->ForceCloseManageCurseur = ExitMoveTexte;
|
||||
|
||||
|
@ -190,7 +190,7 @@ static void ShowWhileMoving( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
|||
|
||||
/* "Undraw" the current text at its old position*/
|
||||
if( erase )
|
||||
RedrawOneStruct( panel, DC, TextStruct, g_XorMode );
|
||||
TextStruct->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
/* redraw the text */
|
||||
switch( TextStruct->Type() )
|
||||
|
@ -206,7 +206,7 @@ static void ShowWhileMoving( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
|||
break;
|
||||
}
|
||||
|
||||
RedrawOneStruct( panel, DC, TextStruct, g_XorMode );
|
||||
TextStruct->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
}
|
||||
|
||||
|
||||
|
@ -227,7 +227,7 @@ static void ExitMoveTexte( WinEDA_DrawPanel* Panel, wxDC* DC )
|
|||
|
||||
/* "Undraw" the text, and delete it if new (i.e. it was being just
|
||||
* created)*/
|
||||
RedrawOneStruct( Panel, DC, Struct, g_XorMode );
|
||||
Struct->Draw( Panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
if( Struct->m_Flags & IS_NEW )
|
||||
{
|
||||
|
@ -254,7 +254,7 @@ static void ExitMoveTexte( WinEDA_DrawPanel* Panel, wxDC* DC )
|
|||
break;
|
||||
}
|
||||
|
||||
RedrawOneStruct( Panel, DC, Struct, GR_DEFAULT_DRAWMODE );
|
||||
Struct->Draw( Panel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
Struct->m_Flags = 0;
|
||||
}
|
||||
}
|
||||
|
@ -367,6 +367,6 @@ void SCH_EDIT_FRAME::ConvertTextType( SCH_TEXT* Text, wxDC* DC, int newtype )
|
|||
StartMoveTexte( newtext, DC );
|
||||
}
|
||||
|
||||
RedrawOneStruct( DrawPanel, DC, newtext, GR_DEFAULT_DRAWMODE );
|
||||
newtext->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
DrawPanel->CursorOn( DC ); // redraw schematic cursor
|
||||
}
|
||||
|
|
|
@ -145,14 +145,3 @@ void RedrawStructList( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
Structlist = Structlist->Next();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Routine to redraw on schematic object. */
|
||||
void RedrawOneStruct( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||
SCH_ITEM* Struct, int DrawMode, int Color )
|
||||
{
|
||||
if( Struct == NULL )
|
||||
return;
|
||||
|
||||
Struct->Draw( panel, DC, wxPoint( 0, 0 ), DrawMode, Color );
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event )
|
|||
|
||||
/* Redraw the original part, because StartMovePart() erased
|
||||
* it from screen */
|
||||
RedrawOneStruct( DrawPanel, &dc, curr_item, GR_DEFAULT_DRAWMODE );
|
||||
curr_item->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -55,7 +55,7 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event )
|
|||
newitem->m_Flags = IS_NEW;
|
||||
StartMoveTexte( newitem, &dc );
|
||||
/* Redraw the original part in XOR mode */
|
||||
RedrawOneStruct( DrawPanel, &dc, curr_item, g_XorMode );
|
||||
curr_item->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), g_XorMode );
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -118,46 +118,6 @@ SCH_ITEM* PickStruct( const wxPoint& refpos, SCH_SCREEN* screen, int SearchMask
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function PickStruct
|
||||
* Search items in a block
|
||||
* @return items count
|
||||
* @param aBlock a BLOCK_SELECTOR that gives the search area boundary
|
||||
* @param aScreen - The screen to pick items from.
|
||||
* list of items is stored in aBlock
|
||||
*/
|
||||
int PickItemsInBlock( BLOCK_SELECTOR& aBlock, SCH_SCREEN* aScreen )
|
||||
{
|
||||
int itemcount = 0;
|
||||
|
||||
if( aScreen == NULL )
|
||||
return itemcount;
|
||||
|
||||
EDA_Rect area;
|
||||
area.SetOrigin( aBlock.GetOrigin());
|
||||
area.SetSize( aBlock.GetSize() );
|
||||
area.Normalize();
|
||||
|
||||
ITEM_PICKER picker;
|
||||
SCH_ITEM* item = aScreen->GetDrawItems();
|
||||
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
{
|
||||
// an item is picked if its bounding box intersects the reference area
|
||||
if( item->HitTest( area ) )
|
||||
{
|
||||
/* Put this structure in the picked list: */
|
||||
picker.m_PickedItem = item;
|
||||
picker.m_PickedItemType = item->Type();
|
||||
aBlock.PushItem( picker );
|
||||
itemcount++;
|
||||
}
|
||||
}
|
||||
|
||||
return itemcount;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Routine to search all objects for the closest point to a given point, in *
|
||||
* drawing space, and snap it to that points if closer than SnapDistance. *
|
||||
|
|
|
@ -118,7 +118,7 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu )
|
|||
{
|
||||
case SCH_NO_CONNECT_T:
|
||||
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_DELETE, _( "Delete Noconn" ), delete_xpm );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_DELETE, _( "Delete No Connect" ), delete_xpm );
|
||||
break;
|
||||
|
||||
case SCH_JUNCTION_T:
|
||||
|
@ -477,7 +477,7 @@ void AddMenusForText( wxMenu* PopMenu, SCH_TEXT* Text )
|
|||
ADD_MENUITEM( menu_change_type, ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_HLABEL,
|
||||
_( "Change to Hierarchical Label" ), label2glabel_xpm );
|
||||
ADD_MENUITEM( menu_change_type, ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_GLABEL,
|
||||
_( "Change to Glabel" ), label2glabel_xpm );
|
||||
_( "Change to Global Label" ), label2glabel_xpm );
|
||||
ADD_MENUITEM_WITH_SUBMENU( PopMenu, menu_change_type, ID_POPUP_SCH_CHANGE_TYPE_TEXT,
|
||||
_( "Change Type" ), gl_change_xpm );
|
||||
}
|
||||
|
|
|
@ -84,9 +84,6 @@ SCH_ITEM* DuplicateStruct( SCH_ITEM* DrawStruct, bool aClone = false );
|
|||
|
||||
SCH_COMPONENT* LocateSmallestComponent( SCH_SCREEN* Screen );
|
||||
|
||||
/* Find the item within block selection. */
|
||||
int PickItemsInBlock( BLOCK_SELECTOR& aBlock, SCH_SCREEN* screen );
|
||||
|
||||
/* function PickStruct:
|
||||
* Search at location pos
|
||||
*
|
||||
|
@ -119,7 +116,6 @@ int PickItemsInBlock( BLOCK_SELECTOR& aBlock, SCH_SCREEN* screen );
|
|||
*/
|
||||
SCH_ITEM* PickStruct( const wxPoint& refpos, SCH_SCREEN* screen, int SearchMask );
|
||||
|
||||
|
||||
SCH_SHEET_PIN* LocateSheetLabel( SCH_SHEET* Sheet, const wxPoint& pos );
|
||||
LIB_PIN* LocateAnyPin( SCH_ITEM* DrawList,
|
||||
const wxPoint& RefPos,
|
||||
|
@ -138,11 +134,6 @@ void RedrawStructList( WinEDA_DrawPanel* panel,
|
|||
SCH_ITEM* Structs,
|
||||
int DrawMode,
|
||||
int Color = -1 );
|
||||
void RedrawOneStruct( WinEDA_DrawPanel* panel,
|
||||
wxDC* DC,
|
||||
SCH_ITEM* Struct,
|
||||
int DrawMode,
|
||||
int Color = -1 );
|
||||
|
||||
/**************/
|
||||
/* EELAYER.CPP */
|
||||
|
|
|
@ -524,6 +524,29 @@ void SCH_SCREEN::addConnectedItemsToBlock( const wxPoint& position )
|
|||
}
|
||||
|
||||
|
||||
int SCH_SCREEN::UpdatePickList()
|
||||
{
|
||||
ITEM_PICKER picker;
|
||||
EDA_Rect area;
|
||||
area.SetOrigin( m_BlockLocate.GetOrigin());
|
||||
area.SetSize( m_BlockLocate.GetSize() );
|
||||
area.Normalize();
|
||||
|
||||
for( SCH_ITEM* item = GetDrawItems(); item != NULL; item = item->Next() )
|
||||
{
|
||||
// An item is picked if its bounding box intersects the reference area.
|
||||
if( item->HitTest( area ) )
|
||||
{
|
||||
picker.m_PickedItem = item;
|
||||
picker.m_PickedItemType = item->Type();
|
||||
m_BlockLocate.PushItem( picker );
|
||||
}
|
||||
}
|
||||
|
||||
return m_BlockLocate.GetCount();
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************/
|
||||
/* Class SCH_SCREENS to handle the list of screens in a hierarchy */
|
||||
/******************************************************************/
|
||||
|
|
|
@ -42,7 +42,7 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
|||
return false;
|
||||
|
||||
/* Get the new texts */
|
||||
RedrawOneStruct( DrawPanel, aDC, aSheet, g_XorMode );
|
||||
aSheet->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
DrawPanel->m_IgnoreMouseEvents = true;
|
||||
|
||||
|
@ -137,7 +137,7 @@ structures and cannot be undone.\nOk to continue renaming?" );
|
|||
DrawPanel->MouseToCursorSchema();
|
||||
DrawPanel->m_IgnoreMouseEvents = false;
|
||||
|
||||
RedrawOneStruct( DrawPanel, aDC, aSheet, GR_DEFAULT_DRAWMODE );
|
||||
aSheet->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
|
||||
return edit;
|
||||
}
|
||||
|
@ -153,7 +153,7 @@ static void MoveOrResizeSheet( WinEDA_DrawPanel* aPanel, wxDC* aDC, bool aErase
|
|||
SCH_SHEET* sheet = (SCH_SHEET*) screen->GetCurItem();
|
||||
|
||||
if( aErase )
|
||||
RedrawOneStruct( aPanel, aDC, sheet, g_XorMode );
|
||||
sheet->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
if( sheet->m_Flags & IS_RESIZED )
|
||||
{
|
||||
|
@ -167,7 +167,7 @@ static void MoveOrResizeSheet( WinEDA_DrawPanel* aPanel, wxDC* aDC, bool aErase
|
|||
sheet->Move( moveVector );
|
||||
}
|
||||
|
||||
RedrawOneStruct( aPanel, aDC, sheet, g_XorMode );
|
||||
sheet->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
}
|
||||
|
||||
|
||||
|
@ -182,7 +182,7 @@ static void ExitSheet( WinEDA_DrawPanel* aPanel, wxDC* aDC )
|
|||
|
||||
if( sheet->m_Flags & IS_NEW )
|
||||
{
|
||||
RedrawOneStruct( aPanel, aDC, sheet, g_XorMode );
|
||||
sheet->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
SAFE_DELETE( sheet );
|
||||
}
|
||||
else if( (sheet->m_Flags & (IS_RESIZED|IS_MOVED)) )
|
||||
|
@ -190,7 +190,7 @@ static void ExitSheet( WinEDA_DrawPanel* aPanel, wxDC* aDC )
|
|||
wxPoint curspos = screen->m_Curseur;
|
||||
aPanel->GetScreen()->m_Curseur = s_OldPos;
|
||||
MoveOrResizeSheet( aPanel, aDC, true );
|
||||
RedrawOneStruct( aPanel, aDC, sheet, GR_DEFAULT_DRAWMODE );
|
||||
sheet->Draw( aPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
sheet->m_Flags = 0;
|
||||
screen->m_Curseur = curspos;
|
||||
}
|
||||
|
|
|
@ -41,17 +41,17 @@ static void ExitPinSheet( WinEDA_DrawPanel* Panel, wxDC* DC )
|
|||
|
||||
if( SheetLabel->m_Flags & IS_NEW )
|
||||
{
|
||||
RedrawOneStruct( Panel, DC, SheetLabel, g_XorMode );
|
||||
SheetLabel->Draw( Panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
SAFE_DELETE( SheetLabel );
|
||||
}
|
||||
else
|
||||
{
|
||||
RedrawOneStruct( Panel, DC, SheetLabel, g_XorMode );
|
||||
SheetLabel->Draw( Panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
SheetLabel->m_Pos = s_InitialPosition;
|
||||
|
||||
// Restore edge position:
|
||||
SheetLabel->SetEdge( s_InitialEdge );
|
||||
RedrawOneStruct( Panel, DC, SheetLabel, GR_DEFAULT_DRAWMODE );
|
||||
SheetLabel->Draw( Panel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
SheetLabel->m_Flags = 0;
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ void SCH_SHEET_PIN::Place( SCH_EDIT_FRAME* frame, wxDC* DC )
|
|||
|
||||
ConstraintOnEdge( frame->GetScreen()->m_Curseur );
|
||||
|
||||
RedrawOneStruct( frame->DrawPanel, DC, Sheet, GR_DEFAULT_DRAWMODE );
|
||||
Sheet->Draw( frame->DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
frame->DrawPanel->ManageCurseur = NULL;
|
||||
frame->DrawPanel->ForceCloseManageCurseur = NULL;
|
||||
}
|
||||
|
@ -115,11 +115,11 @@ static void Move_PinSheet( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
|||
return;
|
||||
|
||||
if( erase )
|
||||
RedrawOneStruct( panel, DC, SheetLabel, g_XorMode );
|
||||
SheetLabel->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
SheetLabel->ConstraintOnEdge( panel->GetScreen()->m_Curseur );
|
||||
|
||||
RedrawOneStruct( panel, DC, SheetLabel, g_XorMode );
|
||||
SheetLabel->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
}
|
||||
|
||||
|
||||
|
@ -129,7 +129,7 @@ int SCH_EDIT_FRAME::Edit_PinSheet( SCH_SHEET_PIN* aLabel, wxDC* aDC )
|
|||
return wxID_CANCEL;
|
||||
|
||||
if( aDC )
|
||||
RedrawOneStruct( DrawPanel, aDC, aLabel, g_XorMode );
|
||||
aLabel->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
DIALOG_SCH_EDIT_SHEET_PIN dlg( this );
|
||||
|
||||
|
@ -158,7 +158,7 @@ int SCH_EDIT_FRAME::Edit_PinSheet( SCH_SHEET_PIN* aLabel, wxDC* aDC )
|
|||
aLabel->m_Shape = dlg.GetConnectionType();
|
||||
|
||||
if( aDC )
|
||||
RedrawOneStruct( DrawPanel, aDC, aLabel, GR_DEFAULT_DRAWMODE );
|
||||
aLabel->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
|
||||
return wxID_OK;
|
||||
}
|
||||
|
|
|
@ -153,6 +153,13 @@ public:
|
|||
*/
|
||||
void SelectBlockItems();
|
||||
|
||||
/**
|
||||
* Function UpdatePickList
|
||||
* adds all the items in the screen within the block selection rectangle to the pick list.
|
||||
* @return The number of items in the pick list.
|
||||
*/
|
||||
int UpdatePickList();
|
||||
|
||||
virtual void AddItem( SCH_ITEM* aItem ) { BASE_SCREEN::AddItem( (EDA_ITEM*) aItem ); }
|
||||
virtual void InsertItem( EDA_ITEMS::iterator aIter, SCH_ITEM* aItem )
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue