More encapsulation work and other minor improvements.
* EDA_RECT and EDA_ITEM completely encapsulated. * Removed unnecessary EDA_ITEM member m_Selected and replaced functionality with SELECTED flag bit.
This commit is contained in:
parent
98fa228302
commit
6c28cdc62c
|
@ -70,7 +70,6 @@ EDA_ITEM::EDA_ITEM( const EDA_ITEM& base )
|
||||||
m_Flags = base.m_Flags;
|
m_Flags = base.m_Flags;
|
||||||
SetTimeStamp( base.m_TimeStamp );
|
SetTimeStamp( base.m_TimeStamp );
|
||||||
m_Status = base.m_Status;
|
m_Status = base.m_Status;
|
||||||
m_Selected = base.m_Selected;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -86,9 +85,7 @@ void EDA_ITEM::InitVars()
|
||||||
m_Flags = 0; // flags for editions and other
|
m_Flags = 0; // flags for editions and other
|
||||||
SetTimeStamp( 0 ); // Time stamp used for logical links
|
SetTimeStamp( 0 ); // Time stamp used for logical links
|
||||||
m_Status = 0;
|
m_Status = 0;
|
||||||
m_Selected = 0; // Used by block commands, and selective editing
|
|
||||||
m_forceVisible = false; // true to override the visibility setting of the item.
|
m_forceVisible = false; // true to override the visibility setting of the item.
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,28 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
|
||||||
|
* Copyright (C) 2011 Wayne Stambaugh <stambaughw@verizon.net>
|
||||||
|
* Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file block_commande.cpp
|
* @file block_commande.cpp
|
||||||
* @brief Common routines for managing on block commands.
|
* @brief Common routines for managing on block commands.
|
||||||
|
@ -181,7 +206,7 @@ bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* DC, int key, const wxPoint& startpo
|
||||||
if( ( Block->m_Command != BLOCK_IDLE ) || ( Block->m_State != STATE_NO_BLOCK ) )
|
if( ( Block->m_Command != BLOCK_IDLE ) || ( Block->m_State != STATE_NO_BLOCK ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Block->m_Flags = 0;
|
Block->ClearFlags();
|
||||||
Block->m_Command = (CmdBlockType) ReturnBlockCommand( key );
|
Block->m_Command = (CmdBlockType) ReturnBlockCommand( key );
|
||||||
|
|
||||||
if( Block->m_Command == 0 )
|
if( Block->m_Command == 0 )
|
||||||
|
@ -298,7 +323,7 @@ void AbortBlockCurrentCommand( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
screen->m_BlockLocate.ClearItemsList();
|
screen->m_BlockLocate.ClearItemsList();
|
||||||
}
|
}
|
||||||
|
|
||||||
screen->m_BlockLocate.m_Flags = 0;
|
screen->m_BlockLocate.ClearFlags();
|
||||||
screen->m_BlockLocate.m_State = STATE_NO_BLOCK;
|
screen->m_BlockLocate.m_State = STATE_NO_BLOCK;
|
||||||
screen->m_BlockLocate.m_Command = BLOCK_ABORT;
|
screen->m_BlockLocate.m_Command = BLOCK_ABORT;
|
||||||
Panel->GetParent()->HandleBlockEnd( DC );
|
Panel->GetParent()->HandleBlockEnd( DC );
|
||||||
|
|
|
@ -421,15 +421,15 @@ void EDA_DRAW_PANEL::SetClipBox( wxDC& aDC, const wxRect* aRect )
|
||||||
clipBox.Inflate( CLIP_BOX_PADDING );
|
clipBox.Inflate( CLIP_BOX_PADDING );
|
||||||
|
|
||||||
// Convert from device units to drawing units.
|
// Convert from device units to drawing units.
|
||||||
m_ClipBox.m_Pos = wxPoint( aDC.DeviceToLogicalX( clipBox.x ),
|
m_ClipBox.SetOrigin( wxPoint( aDC.DeviceToLogicalX( clipBox.x ),
|
||||||
aDC.DeviceToLogicalY( clipBox.y ) );
|
aDC.DeviceToLogicalY( clipBox.y ) ) );
|
||||||
m_ClipBox.m_Size = wxSize( aDC.DeviceToLogicalXRel( clipBox.width ),
|
m_ClipBox.SetSize( wxSize( aDC.DeviceToLogicalXRel( clipBox.width ),
|
||||||
aDC.DeviceToLogicalYRel( clipBox.height ) );
|
aDC.DeviceToLogicalYRel( clipBox.height ) ) );
|
||||||
|
|
||||||
wxLogTrace( KICAD_TRACE_COORDS,
|
wxLogTrace( KICAD_TRACE_COORDS,
|
||||||
wxT( "Device clip box=(%d, %d, %d, %d), Logical clip box=(%d, %d, %d, %d)" ),
|
wxT( "Device clip box=(%d, %d, %d, %d), Logical clip box=(%d, %d, %d, %d)" ),
|
||||||
clipBox.x, clipBox.y, clipBox.width, clipBox.height,
|
clipBox.x, clipBox.y, clipBox.width, clipBox.height,
|
||||||
m_ClipBox.m_Pos.x, m_ClipBox.m_Pos.y, m_ClipBox.m_Size.x, m_ClipBox.m_Size.y );
|
m_ClipBox.GetX(), m_ClipBox.GetY(), m_ClipBox.GetWidth(), m_ClipBox.GetHeight() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -573,7 +573,7 @@ void EDA_DRAW_PANEL::DrawGrid( wxDC* aDC )
|
||||||
screenGridSize.x = aDC->LogicalToDeviceXRel( wxRound( gridSize.x ) );
|
screenGridSize.x = aDC->LogicalToDeviceXRel( wxRound( gridSize.x ) );
|
||||||
screenGridSize.y = aDC->LogicalToDeviceYRel( wxRound( gridSize.y ) );
|
screenGridSize.y = aDC->LogicalToDeviceYRel( wxRound( gridSize.y ) );
|
||||||
|
|
||||||
org = m_ClipBox.m_Pos;
|
org = m_ClipBox.GetPosition();
|
||||||
|
|
||||||
if( screenGridSize.x < MIN_GRID_SIZE || screenGridSize.y < MIN_GRID_SIZE )
|
if( screenGridSize.x < MIN_GRID_SIZE || screenGridSize.y < MIN_GRID_SIZE )
|
||||||
{
|
{
|
||||||
|
@ -667,7 +667,7 @@ void EDA_DRAW_PANEL::DrawGrid( wxDC* aDC )
|
||||||
for( double x = (double) org.x; x <= right; x += gridSize.x )
|
for( double x = (double) org.x; x <= right; x += gridSize.x )
|
||||||
{
|
{
|
||||||
aDC->Blit( scaleDC.LogicalToDeviceX( wxRound( x ) ),
|
aDC->Blit( scaleDC.LogicalToDeviceX( wxRound( x ) ),
|
||||||
scaleDC.LogicalToDeviceY( m_ClipBox.m_Pos.y ),
|
scaleDC.LogicalToDeviceY( m_ClipBox.GetY() ),
|
||||||
1, tmpBM.GetHeight(), &tmpDC, 0, 0, wxCOPY, true );
|
1, tmpBM.GetHeight(), &tmpDC, 0, 0, wxCOPY, true );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -309,7 +309,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
||||||
|
|
||||||
if( ! nextcmd )
|
if( ! nextcmd )
|
||||||
{
|
{
|
||||||
block->m_Flags = 0;
|
block->ClearFlags();
|
||||||
block->m_State = STATE_NO_BLOCK;
|
block->m_State = STATE_NO_BLOCK;
|
||||||
block->m_Command = BLOCK_IDLE;
|
block->m_Command = BLOCK_IDLE;
|
||||||
GetScreen()->SetCurItem( NULL );
|
GetScreen()->SetCurItem( NULL );
|
||||||
|
|
|
@ -201,7 +201,7 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
||||||
if( GetScreen()->m_BlockLocate.m_Command != BLOCK_SELECT_ITEMS_ONLY && m_component )
|
if( GetScreen()->m_BlockLocate.m_Command != BLOCK_SELECT_ITEMS_ONLY && m_component )
|
||||||
m_component->ClearSelectedItems();
|
m_component->ClearSelectedItems();
|
||||||
|
|
||||||
GetScreen()->m_BlockLocate.m_Flags = 0;
|
GetScreen()->m_BlockLocate.ClearFlags();
|
||||||
GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK;
|
GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK;
|
||||||
GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE;
|
GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE;
|
||||||
GetScreen()->SetCurItem( NULL );
|
GetScreen()->SetCurItem( NULL );
|
||||||
|
@ -298,7 +298,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC )
|
||||||
|
|
||||||
OnModify();
|
OnModify();
|
||||||
|
|
||||||
GetScreen()->m_BlockLocate.m_Flags = 0;
|
GetScreen()->m_BlockLocate.ClearFlags();
|
||||||
GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK;
|
GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK;
|
||||||
GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE;
|
GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE;
|
||||||
GetScreen()->SetCurItem( NULL );
|
GetScreen()->SetCurItem( NULL );
|
||||||
|
|
|
@ -48,7 +48,7 @@ SCH_BUS_ENTRY* SCH_EDIT_FRAME::CreateBusEntry( wxDC* DC, int entry_type )
|
||||||
// Create and place a new bus entry at cursor position
|
// Create and place a new bus entry at cursor position
|
||||||
SCH_BUS_ENTRY* BusEntry = new SCH_BUS_ENTRY( GetScreen()->GetCrossHairPosition(), s_LastShape,
|
SCH_BUS_ENTRY* BusEntry = new SCH_BUS_ENTRY( GetScreen()->GetCrossHairPosition(), s_LastShape,
|
||||||
entry_type );
|
entry_type );
|
||||||
BusEntry->m_Flags = IS_NEW;
|
BusEntry->SetFlags( IS_NEW );
|
||||||
BusEntry->Place( this, DC );
|
BusEntry->Place( this, DC );
|
||||||
OnModify();
|
OnModify();
|
||||||
return BusEntry;
|
return BusEntry;
|
||||||
|
@ -69,7 +69,7 @@ void SCH_EDIT_FRAME::SetBusEntryShape( wxDC* DC, SCH_BUS_ENTRY* BusEntry, int en
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Put old item in undo list if it is not currently in edit */
|
/* Put old item in undo list if it is not currently in edit */
|
||||||
if( BusEntry->m_Flags == 0 )
|
if( BusEntry->GetFlags() == 0 )
|
||||||
SaveCopyInUndoList( BusEntry, UR_CHANGED );
|
SaveCopyInUndoList( BusEntry, UR_CHANGED );
|
||||||
|
|
||||||
s_LastShape = entry_shape == '/' ? '/' : '\\';
|
s_LastShape = entry_shape == '/' ? '/' : '\\';
|
||||||
|
|
|
@ -293,7 +293,7 @@ void LIB_COMPONENT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDc, const wxPoint& aOff
|
||||||
if( drawItem.m_Fill != FILLED_WITH_BG_BODYCOLOR )
|
if( drawItem.m_Fill != FILLED_WITH_BG_BODYCOLOR )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( aOnlySelected && drawItem.m_Selected == 0 )
|
if( aOnlySelected && !drawItem.IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Do not draw an item while moving (the cursor handler does that)
|
// Do not draw an item while moving (the cursor handler does that)
|
||||||
|
@ -323,7 +323,7 @@ void LIB_COMPONENT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDc, const wxPoint& aOff
|
||||||
|
|
||||||
BOOST_FOREACH( LIB_ITEM& drawItem, drawings )
|
BOOST_FOREACH( LIB_ITEM& drawItem, drawings )
|
||||||
{
|
{
|
||||||
if( aOnlySelected && drawItem.m_Selected == 0 )
|
if( aOnlySelected && !drawItem.IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Do not draw an item while moving (the cursor handler does that)
|
// Do not draw an item while moving (the cursor handler does that)
|
||||||
|
@ -1199,7 +1199,6 @@ void LIB_COMPONENT::ClearStatus()
|
||||||
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
item.m_Flags = 0;
|
item.m_Flags = 0;
|
||||||
item.m_Selected = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1210,7 +1209,7 @@ int LIB_COMPONENT::SelectItems( EDA_RECT& aRect, int aUnit, int aConvert, bool a
|
||||||
|
|
||||||
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
item.m_Selected = 0;
|
item.ClearFlags( SELECTED );
|
||||||
|
|
||||||
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 ) )
|
||||||
|
@ -1226,7 +1225,7 @@ int LIB_COMPONENT::SelectItems( EDA_RECT& aRect, int aUnit, int aConvert, bool a
|
||||||
|
|
||||||
if( item.Inside( aRect ) )
|
if( item.Inside( aRect ) )
|
||||||
{
|
{
|
||||||
item.m_Selected = IS_SELECTED;
|
item.SetFlags( SELECTED );
|
||||||
itemCount++;
|
itemCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1239,11 +1238,11 @@ void LIB_COMPONENT::MoveSelectedItems( const wxPoint& aOffset )
|
||||||
{
|
{
|
||||||
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
if( item.m_Selected == 0 )
|
if( !item.IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
item.SetOffset( aOffset );
|
item.SetOffset( aOffset );
|
||||||
item.m_Flags = item.m_Selected = 0;
|
item.m_Flags = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawings.sort();
|
drawings.sort();
|
||||||
|
@ -1253,7 +1252,9 @@ void LIB_COMPONENT::MoveSelectedItems( const wxPoint& aOffset )
|
||||||
void LIB_COMPONENT::ClearSelectedItems()
|
void LIB_COMPONENT::ClearSelectedItems()
|
||||||
{
|
{
|
||||||
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
||||||
item.m_Flags = item.m_Selected = 0;
|
{
|
||||||
|
item.m_Flags = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1272,13 +1273,14 @@ void LIB_COMPONENT::DeleteSelectedItems()
|
||||||
{
|
{
|
||||||
#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;
|
||||||
|
|
||||||
if( (field.GetId() == REFERENCE) || (field.m_FieldId == VALUE) ||
|
if( (field.GetId() == REFERENCE) || (field.m_FieldId == VALUE) ||
|
||||||
(field.m_Attributs & TEXT_NO_VISIBLE) )
|
(field.m_Attributs & TEXT_NO_VISIBLE) )
|
||||||
#endif
|
#endif
|
||||||
item->m_Selected = 0;
|
item->ClearFlags( SELECTED );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( item->m_Selected == 0 )
|
if( !item->IsSelected() )
|
||||||
item++;
|
item++;
|
||||||
else
|
else
|
||||||
item = drawings.erase( item );
|
item = drawings.erase( item );
|
||||||
|
@ -1298,17 +1300,18 @@ void LIB_COMPONENT::CopySelectedItems( const wxPoint& aOffset )
|
||||||
for( unsigned ii = 0; ii < icnt; ii++ )
|
for( unsigned ii = 0; ii < icnt; ii++ )
|
||||||
{
|
{
|
||||||
LIB_ITEM& item = drawings[ii];
|
LIB_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() == LIB_FIELD_T )
|
if( item.Type() == LIB_FIELD_T )
|
||||||
item.m_Selected = 0;
|
item.ClearFlags( SELECTED );
|
||||||
|
|
||||||
if( item.m_Selected == 0 )
|
if( !item.IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
item.m_Selected = 0;
|
item.ClearFlags( SELECTED );
|
||||||
LIB_ITEM* newItem = (LIB_ITEM*) item.Clone();
|
LIB_ITEM* newItem = (LIB_ITEM*) item.Clone();
|
||||||
newItem->m_Selected = IS_SELECTED;
|
newItem->SetFlags( SELECTED );
|
||||||
drawings.push_back( newItem );
|
drawings.push_back( newItem );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1322,11 +1325,11 @@ void LIB_COMPONENT::MirrorSelectedItemsH( const wxPoint& aCenter )
|
||||||
{
|
{
|
||||||
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
if( item.m_Selected == 0 )
|
if( !item.IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
item.MirrorHorizontal( aCenter );
|
item.MirrorHorizontal( aCenter );
|
||||||
item.m_Flags = item.m_Selected = 0;
|
item.m_Flags = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawings.sort();
|
drawings.sort();
|
||||||
|
@ -1336,11 +1339,11 @@ void LIB_COMPONENT::MirrorSelectedItemsV( const wxPoint& aCenter )
|
||||||
{
|
{
|
||||||
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
if( item.m_Selected == 0 )
|
if( !item.IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
item.MirrorVertical( aCenter );
|
item.MirrorVertical( aCenter );
|
||||||
item.m_Flags = item.m_Selected = 0;
|
item.m_Flags = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawings.sort();
|
drawings.sort();
|
||||||
|
@ -1350,11 +1353,11 @@ void LIB_COMPONENT::RotateSelectedItems( const wxPoint& aCenter )
|
||||||
{
|
{
|
||||||
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
BOOST_FOREACH( LIB_ITEM& item, drawings )
|
||||||
{
|
{
|
||||||
if( item.m_Selected == 0 )
|
if( !item.IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
item.Rotate( aCenter );
|
item.Rotate( aCenter );
|
||||||
item.m_Flags = item.m_Selected = 0;
|
item.m_Flags = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawings.sort();
|
drawings.sort();
|
||||||
|
|
|
@ -225,7 +225,7 @@ void DialogLabelEditor::TextPropertiesAccept( wxCommandEvent& aEvent )
|
||||||
int value;
|
int value;
|
||||||
|
|
||||||
/* save old text in undo list if not already in edit */
|
/* save old text in undo list if not already in edit */
|
||||||
if( m_CurrentText->m_Flags == 0 )
|
if( m_CurrentText->GetFlags() == 0 )
|
||||||
m_Parent->SaveCopyInUndoList( m_CurrentText, UR_CHANGED );
|
m_Parent->SaveCopyInUndoList( m_CurrentText, UR_CHANGED );
|
||||||
|
|
||||||
m_Parent->DrawPanel->RefreshDrawingRect( m_CurrentText->GetBoundingBox() );
|
m_Parent->DrawPanel->RefreshDrawingRect( m_CurrentText->GetBoundingBox() );
|
||||||
|
@ -234,7 +234,7 @@ void DialogLabelEditor::TextPropertiesAccept( wxCommandEvent& aEvent )
|
||||||
|
|
||||||
if( !text.IsEmpty() )
|
if( !text.IsEmpty() )
|
||||||
m_CurrentText->m_Text = text;
|
m_CurrentText->m_Text = text;
|
||||||
else if( (m_CurrentText->m_Flags & IS_NEW) == 0 )
|
else if( !m_CurrentText->IsNew() )
|
||||||
DisplayError( this, _( "Empty Text!" ) );
|
DisplayError( this, _( "Empty Text!" ) );
|
||||||
|
|
||||||
m_CurrentText->SetOrientation( m_TextOrient->GetSelection() );
|
m_CurrentText->SetOrientation( m_TextOrient->GetSelection() );
|
||||||
|
@ -266,7 +266,7 @@ void DialogLabelEditor::TextPropertiesAccept( wxCommandEvent& aEvent )
|
||||||
m_Parent->OnModify();
|
m_Parent->OnModify();
|
||||||
|
|
||||||
/* Make the text size as new default size if it is a new text */
|
/* Make the text size as new default size if it is a new text */
|
||||||
if( (m_CurrentText->m_Flags & IS_NEW) != 0 )
|
if( m_CurrentText->IsNew() )
|
||||||
g_DefaultTextLabelSize = m_CurrentText->m_Size.x;
|
g_DefaultTextLabelSize = m_CurrentText->m_Size.x;
|
||||||
|
|
||||||
m_Parent->DrawPanel->RefreshDrawingRect( m_CurrentText->GetBoundingBox() );
|
m_Parent->DrawPanel->RefreshDrawingRect( m_CurrentText->GetBoundingBox() );
|
||||||
|
|
|
@ -90,7 +90,7 @@ static void moveBitmap( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosit
|
||||||
aPanel->SetMouseCapture( NULL, NULL ); // Avoid loop in redraw panel
|
aPanel->SetMouseCapture( NULL, NULL ); // Avoid loop in redraw panel
|
||||||
|
|
||||||
int flgs = image->GetFlags();
|
int flgs = image->GetFlags();
|
||||||
image->m_Flags = 0;
|
image->ClearFlags();
|
||||||
aPanel->RefreshDrawingRect( dirty );
|
aPanel->RefreshDrawingRect( dirty );
|
||||||
image->SetFlags( flgs );
|
image->SetFlags( flgs );
|
||||||
aPanel->SetMouseCapture( moveBitmap, abortMoveBitmap );
|
aPanel->SetMouseCapture( moveBitmap, abortMoveBitmap );
|
||||||
|
|
|
@ -18,7 +18,7 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
SCH_ITEM * curr_item = GetScreen()->GetCurItem();
|
SCH_ITEM * curr_item = GetScreen()->GetCurItem();
|
||||||
|
|
||||||
if( !curr_item || curr_item->m_Flags )
|
if( !curr_item || curr_item->GetFlags() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
INSTALL_UNBUFFERED_DC( dc, DrawPanel );
|
INSTALL_UNBUFFERED_DC( dc, DrawPanel );
|
||||||
|
@ -31,11 +31,10 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event )
|
||||||
newitem = new SCH_COMPONENT( *( (SCH_COMPONENT*) curr_item ) );
|
newitem = new SCH_COMPONENT( *( (SCH_COMPONENT*) curr_item ) );
|
||||||
newitem->SetTimeStamp( GetNewTimeStamp() );
|
newitem->SetTimeStamp( GetNewTimeStamp() );
|
||||||
newitem->ClearAnnotation( NULL );
|
newitem->ClearAnnotation( NULL );
|
||||||
newitem->m_Flags = IS_NEW;
|
newitem->SetFlags( IS_NEW );
|
||||||
MoveItem( (SCH_ITEM*) newitem, &dc );
|
MoveItem( (SCH_ITEM*) newitem, &dc );
|
||||||
|
|
||||||
/* Redraw the original part, because StartMovePart() erased
|
// Redraw the original part, because StartMovePart() erased it from screen.
|
||||||
* it from screen */
|
|
||||||
curr_item->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
curr_item->Draw( DrawPanel, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -33,9 +33,6 @@ class TRANSFORM;
|
||||||
|
|
||||||
#define HIGHLIGHT_COLOR WHITE
|
#define HIGHLIGHT_COLOR WHITE
|
||||||
|
|
||||||
/* Used for EDA_ITEM, .m_Select member */
|
|
||||||
#define IS_SELECTED 1
|
|
||||||
|
|
||||||
#define TEXT_NO_VISIBLE 1
|
#define TEXT_NO_VISIBLE 1
|
||||||
|
|
||||||
//#define GR_DEFAULT_DRAWMODE GR_COPY
|
//#define GR_DEFAULT_DRAWMODE GR_COPY
|
||||||
|
|
|
@ -369,8 +369,9 @@ void SCH_EDIT_FRAME::ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int flags = DrawComponent->m_Flags;
|
int flags = DrawComponent->GetFlags();
|
||||||
if( DrawComponent->m_Flags )
|
|
||||||
|
if( DrawComponent->GetFlags() )
|
||||||
DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor );
|
DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor );
|
||||||
else
|
else
|
||||||
DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode );
|
DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||||
|
@ -390,7 +391,7 @@ void SCH_EDIT_FRAME::ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC )
|
||||||
DrawComponent->SetFlags( flags ); // Restore m_Flag (modified by SetConvert())
|
DrawComponent->SetFlags( flags ); // Restore m_Flag (modified by SetConvert())
|
||||||
|
|
||||||
/* Redraw the component in the new position. */
|
/* Redraw the component in the new position. */
|
||||||
if( DrawComponent->m_Flags & IS_MOVED )
|
if( DrawComponent->IsMoving() )
|
||||||
DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor );
|
DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor );
|
||||||
else
|
else
|
||||||
DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
DrawComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||||
|
|
|
@ -387,7 +387,7 @@ void LIB_ARC::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOf
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
if( ( m_Selected & IS_SELECTED ) )
|
if( IsSelected() )
|
||||||
color = g_ItemSelectetColor;
|
color = g_ItemSelectetColor;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -316,7 +316,7 @@ void LIB_BEZIER::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
if( m_Selected & IS_SELECTED )
|
if( IsSelected() )
|
||||||
color = g_ItemSelectetColor;
|
color = g_ItemSelectetColor;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -228,7 +228,7 @@ void LIB_CIRCLE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
if( ( m_Selected & IS_SELECTED ) )
|
if( IsSelected() )
|
||||||
color = g_ItemSelectetColor;
|
color = g_ItemSelectetColor;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -292,7 +292,7 @@ void LIB_FIELD::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& a
|
||||||
{
|
{
|
||||||
color = g_InvisibleItemColor;
|
color = g_InvisibleItemColor;
|
||||||
}
|
}
|
||||||
else if( ( m_Selected & IS_SELECTED ) && ( aColor < 0 ) )
|
else if( IsSelected() && ( aColor < 0 ) )
|
||||||
{
|
{
|
||||||
color = g_ItemSelectetColor;
|
color = g_ItemSelectetColor;
|
||||||
}
|
}
|
||||||
|
|
|
@ -882,7 +882,7 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel,
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
if( (m_Selected & IS_SELECTED) )
|
if( IsSelected() )
|
||||||
color = g_ItemSelectetColor;
|
color = g_ItemSelectetColor;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1104,7 +1104,7 @@ void LIB_PIN::DrawPinTexts( EDA_DRAW_PANEL* panel,
|
||||||
GRSetDrawMode( DC, DrawMode );
|
GRSetDrawMode( DC, DrawMode );
|
||||||
|
|
||||||
/* Get the num and name colors */
|
/* Get the num and name colors */
|
||||||
if( (Color < 0) && (m_Selected & IS_SELECTED) )
|
if( (Color < 0) && IsSelected() )
|
||||||
Color = g_ItemSelectetColor;
|
Color = g_ItemSelectetColor;
|
||||||
|
|
||||||
NameColor = (EDA_Colors) ( Color == -1 ? ReturnLayerColor( LAYER_PINNAM ) : Color );
|
NameColor = (EDA_Colors) ( Color == -1 ? ReturnLayerColor( LAYER_PINNAM ) : Color );
|
||||||
|
|
|
@ -282,7 +282,7 @@ void LIB_POLYLINE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
if( m_Selected & IS_SELECTED )
|
if( IsSelected() )
|
||||||
color = g_ItemSelectetColor;
|
color = g_ItemSelectetColor;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -214,7 +214,7 @@ void LIB_RECTANGLE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
if( m_Selected & IS_SELECTED )
|
if( IsSelected() )
|
||||||
color = g_ItemSelectetColor;
|
color = g_ItemSelectetColor;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -350,7 +350,7 @@ void LIB_TEXT::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aO
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
if( ( m_Selected & IS_SELECTED ) )
|
if( IsSelected() )
|
||||||
color = g_ItemSelectetColor;
|
color = g_ItemSelectetColor;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -22,7 +22,7 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition )
|
||||||
if( m_component == NULL ) // No component loaded !
|
if( m_component == NULL ) // No component loaded !
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( item == NULL || item->m_Flags == 0 )
|
if( item == NULL || item->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
item = LocateItemUsingCursor( aPosition );
|
item = LocateItemUsingCursor( aPosition );
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition )
|
||||||
switch( GetToolId() )
|
switch( GetToolId() )
|
||||||
{
|
{
|
||||||
case ID_NO_TOOL_SELECTED:
|
case ID_NO_TOOL_SELECTED:
|
||||||
if( item && item->m_Flags ) // moved object
|
if( item && item->GetFlags() ) // moved object
|
||||||
{
|
{
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
|
@ -56,7 +56,7 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_LIBEDIT_PIN_BUTT:
|
case ID_LIBEDIT_PIN_BUTT:
|
||||||
if( m_drawItem == NULL || m_drawItem->m_Flags == 0 )
|
if( m_drawItem == NULL || m_drawItem->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
CreatePin( DC );
|
CreatePin( DC );
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ void LIB_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition )
|
||||||
case ID_LIBEDIT_BODY_CIRCLE_BUTT:
|
case ID_LIBEDIT_BODY_CIRCLE_BUTT:
|
||||||
case ID_LIBEDIT_BODY_RECT_BUTT:
|
case ID_LIBEDIT_BODY_RECT_BUTT:
|
||||||
case ID_LIBEDIT_BODY_TEXT_BUTT:
|
case ID_LIBEDIT_BODY_TEXT_BUTT:
|
||||||
if( m_drawItem == NULL || m_drawItem->m_Flags == 0 )
|
if( m_drawItem == NULL || m_drawItem->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
m_drawItem = CreateGraphicItem( m_component, DC );
|
m_drawItem = CreateGraphicItem( m_component, DC );
|
||||||
}
|
}
|
||||||
|
@ -118,7 +118,7 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& aPosition )
|
||||||
if( m_component == NULL )
|
if( m_component == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( ( m_drawItem == NULL ) || ( m_drawItem->m_Flags == 0 ) )
|
if( ( m_drawItem == NULL ) || ( m_drawItem->GetFlags() == 0 ) )
|
||||||
{ // We can locate an item
|
{ // We can locate an item
|
||||||
m_drawItem = LocateItemUsingCursor( aPosition );
|
m_drawItem = LocateItemUsingCursor( aPosition );
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& aPosition )
|
||||||
switch( m_drawItem->Type() )
|
switch( m_drawItem->Type() )
|
||||||
{
|
{
|
||||||
case LIB_PIN_T:
|
case LIB_PIN_T:
|
||||||
if( m_drawItem->m_Flags == 0 )
|
if( m_drawItem->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
|
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
|
||||||
cmd.SetId( ID_LIBEDIT_EDIT_PIN );
|
cmd.SetId( ID_LIBEDIT_EDIT_PIN );
|
||||||
|
@ -151,14 +151,14 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& aPosition )
|
||||||
case LIB_ARC_T:
|
case LIB_ARC_T:
|
||||||
case LIB_CIRCLE_T:
|
case LIB_CIRCLE_T:
|
||||||
case LIB_RECTANGLE_T:
|
case LIB_RECTANGLE_T:
|
||||||
if( m_drawItem->m_Flags == 0 )
|
if( m_drawItem->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
EditGraphicSymbol( DC, m_drawItem );
|
EditGraphicSymbol( DC, m_drawItem );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LIB_POLYLINE_T:
|
case LIB_POLYLINE_T:
|
||||||
if( m_drawItem->m_Flags == 0 )
|
if( m_drawItem->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
EditGraphicSymbol( DC, m_drawItem );
|
EditGraphicSymbol( DC, m_drawItem );
|
||||||
}
|
}
|
||||||
|
@ -169,14 +169,14 @@ void LIB_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& aPosition )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LIB_TEXT_T:
|
case LIB_TEXT_T:
|
||||||
if( m_drawItem->m_Flags == 0 )
|
if( m_drawItem->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
EditSymbolText( DC, m_drawItem );
|
EditSymbolText( DC, m_drawItem );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LIB_FIELD_T:
|
case LIB_FIELD_T:
|
||||||
if( m_drawItem->m_Flags == 0 )
|
if( m_drawItem->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
EditField( DC, (LIB_FIELD*) m_drawItem );
|
EditField( DC, (LIB_FIELD*) m_drawItem );
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,8 +234,8 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu )
|
||||||
|
|
||||||
void AddMenusForPin( wxMenu* PopMenu, LIB_PIN* Pin, LIB_EDIT_FRAME* frame )
|
void AddMenusForPin( wxMenu* PopMenu, LIB_PIN* Pin, LIB_EDIT_FRAME* frame )
|
||||||
{
|
{
|
||||||
bool selected = (Pin->m_Selected & IS_SELECTED) != 0;
|
bool selected = Pin->IsSelected();
|
||||||
bool not_in_move = (Pin->GetFlags() == 0);
|
bool not_in_move = !Pin->IsMoving();
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
if( not_in_move )
|
if( not_in_move )
|
||||||
|
|
|
@ -72,7 +72,7 @@ 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 = m_component->GetBoundingBox( m_unit, m_convert ).m_Size;
|
wxSize componentSize = m_component->GetBoundingBox( m_unit, m_convert ).GetSize();
|
||||||
|
|
||||||
// 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);
|
||||||
|
|
|
@ -248,7 +248,7 @@ SCH_ITEM* DuplicateStruct( SCH_ITEM* aDrawStruct, bool aClone )
|
||||||
if( aClone )
|
if( aClone )
|
||||||
NewDrawStruct->SetTimeStamp( aDrawStruct->GetTimeStamp() );
|
NewDrawStruct->SetTimeStamp( aDrawStruct->GetTimeStamp() );
|
||||||
|
|
||||||
NewDrawStruct->m_Image = aDrawStruct;
|
NewDrawStruct->SetImage( aDrawStruct );
|
||||||
|
|
||||||
return NewDrawStruct;
|
return NewDrawStruct;
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event )
|
||||||
if( m_drawItem == NULL || m_drawItem->Type() != LIB_PIN_T )
|
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->GetFlags(); // save flags to restore them after editing
|
||||||
LIB_PIN* pin = (LIB_PIN*) m_drawItem;
|
LIB_PIN* pin = (LIB_PIN*) m_drawItem;
|
||||||
|
|
||||||
DIALOG_LIB_EDIT_PIN dlg( this, pin );
|
DIALOG_LIB_EDIT_PIN dlg( this, pin );
|
||||||
|
@ -115,7 +115,7 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( pin->IsNew() )
|
if( pin->IsNew() )
|
||||||
{
|
{
|
||||||
pin->m_Flags |= IS_CANCELLED;
|
pin->SetFlags( IS_CANCELLED );
|
||||||
DrawPanel->EndMouseCapture();
|
DrawPanel->EndMouseCapture();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -158,7 +158,8 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event )
|
||||||
pin->EnableEditMode( false, m_editPinsPerPartOrConvert );
|
pin->EnableEditMode( false, m_editPinsPerPartOrConvert );
|
||||||
|
|
||||||
// Restore pin flags, that can be changed by the dialog editor
|
// Restore pin flags, that can be changed by the dialog editor
|
||||||
pin->m_Flags = item_flags;
|
pin->ClearFlags();
|
||||||
|
pin->SetFlags( item_flags );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -214,7 +215,7 @@ void LIB_EDIT_FRAME::PlacePin( wxDC* DC )
|
||||||
// Test for an other pin in same new position:
|
// Test for an other pin in same new position:
|
||||||
for( Pin = m_component->GetNextPin(); Pin != NULL; Pin = m_component->GetNextPin( Pin ) )
|
for( Pin = m_component->GetNextPin(); Pin != NULL; Pin = m_component->GetNextPin( Pin ) )
|
||||||
{
|
{
|
||||||
if( Pin == CurrentPin || newpos != Pin->GetPosition() || Pin->m_Flags )
|
if( Pin == CurrentPin || newpos != Pin->GetPosition() || Pin->GetFlags() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( ask_for_pin && SynchronizePins() )
|
if( ask_for_pin && SynchronizePins() )
|
||||||
|
@ -260,11 +261,11 @@ another pin. Continue?" ) );
|
||||||
/* Put linked pins in new position, and clear flags */
|
/* Put linked pins in new position, and clear flags */
|
||||||
for( Pin = m_component->GetNextPin(); Pin != NULL; Pin = m_component->GetNextPin( Pin ) )
|
for( Pin = m_component->GetNextPin(); Pin != NULL; Pin = m_component->GetNextPin( Pin ) )
|
||||||
{
|
{
|
||||||
if( Pin->m_Flags == 0 )
|
if( Pin->GetFlags() == 0 )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Pin->SetPosition( CurrentPin->GetPosition() );
|
Pin->SetPosition( CurrentPin->GetPosition() );
|
||||||
Pin->m_Flags = 0;
|
Pin->ClearFlags();
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawPanel->CrossHairOff( DC );
|
DrawPanel->CrossHairOff( DC );
|
||||||
|
@ -296,7 +297,7 @@ void LIB_EDIT_FRAME::StartMovePin( wxDC* DC )
|
||||||
|
|
||||||
for( ; Pin != NULL; Pin = m_component->GetNextPin( Pin ) )
|
for( ; Pin != NULL; Pin = m_component->GetNextPin( Pin ) )
|
||||||
{
|
{
|
||||||
Pin->m_Flags = 0;
|
Pin->ClearFlags();
|
||||||
|
|
||||||
if( Pin == CurrentPin )
|
if( Pin == CurrentPin )
|
||||||
continue;
|
continue;
|
||||||
|
@ -304,10 +305,10 @@ void LIB_EDIT_FRAME::StartMovePin( wxDC* DC )
|
||||||
if( ( Pin->GetPosition() == CurrentPin->GetPosition() )
|
if( ( Pin->GetPosition() == CurrentPin->GetPosition() )
|
||||||
&& ( Pin->GetOrientation() == CurrentPin->GetOrientation() )
|
&& ( Pin->GetOrientation() == CurrentPin->GetOrientation() )
|
||||||
&& SynchronizePins() )
|
&& SynchronizePins() )
|
||||||
Pin->m_Flags |= IS_LINKED | IS_MOVED;
|
Pin->SetFlags( IS_LINKED | IS_MOVED );
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrentPin->m_Flags |= IS_LINKED | IS_MOVED;
|
CurrentPin->SetFlags( IS_LINKED | IS_MOVED );
|
||||||
PinPreviousPos = OldPos = CurrentPin->GetPosition();
|
PinPreviousPos = OldPos = CurrentPin->GetPosition();
|
||||||
|
|
||||||
startPos.x = OldPos.x;
|
startPos.x = OldPos.x;
|
||||||
|
@ -378,13 +379,13 @@ void LIB_EDIT_FRAME::CreatePin( wxDC* DC )
|
||||||
|
|
||||||
m_drawItem = pin;
|
m_drawItem = pin;
|
||||||
|
|
||||||
pin->m_Flags = IS_NEW;
|
pin->SetFlags( IS_NEW );
|
||||||
pin->SetUnit( m_unit );
|
pin->SetUnit( m_unit );
|
||||||
pin->SetConvert( m_convert );
|
pin->SetConvert( m_convert );
|
||||||
|
|
||||||
/* Flag pins to consider */
|
/* Flag pins to consider */
|
||||||
if( SynchronizePins() )
|
if( SynchronizePins() )
|
||||||
pin->m_Flags |= IS_LINKED;
|
pin->SetFlags( IS_LINKED );
|
||||||
|
|
||||||
pin->SetPosition( GetScreen()->GetCrossHairPosition( true ) );
|
pin->SetPosition( GetScreen()->GetCrossHairPosition( true ) );
|
||||||
pin->SetLength( LastPinLength );
|
pin->SetLength( LastPinLength );
|
||||||
|
@ -404,7 +405,7 @@ void LIB_EDIT_FRAME::CreatePin( wxDC* DC )
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
DrawPanel->m_IgnoreMouseEvents = false;
|
DrawPanel->m_IgnoreMouseEvents = false;
|
||||||
|
|
||||||
if( pin->m_Flags & IS_CANCELLED )
|
if( pin->GetFlags() & IS_CANCELLED )
|
||||||
{
|
{
|
||||||
deleteItem( DC );
|
deleteItem( DC );
|
||||||
}
|
}
|
||||||
|
@ -480,7 +481,7 @@ void LIB_EDIT_FRAME::GlobalSetPins( wxDC* DC, LIB_PIN* MasterPin, int id )
|
||||||
|
|
||||||
{
|
{
|
||||||
LIB_PIN* Pin;
|
LIB_PIN* Pin;
|
||||||
bool selected = ( MasterPin->m_Selected & IS_SELECTED ) != 0;
|
bool selected = MasterPin->IsSelected();
|
||||||
bool showPinText = true;
|
bool showPinText = true;
|
||||||
|
|
||||||
if( ( m_component == NULL ) || ( MasterPin == NULL ) )
|
if( ( m_component == NULL ) || ( MasterPin == NULL ) )
|
||||||
|
@ -499,7 +500,7 @@ void LIB_EDIT_FRAME::GlobalSetPins( wxDC* DC, LIB_PIN* MasterPin, int id )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Is it the "selected mode" ?
|
// Is it the "selected mode" ?
|
||||||
if( selected && ( Pin->m_Selected & IS_SELECTED ) == 0 )
|
if( selected && !Pin->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Pin->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &showPinText, DefaultTransform );
|
Pin->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &showPinText, DefaultTransform );
|
||||||
|
@ -535,7 +536,8 @@ void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Pin = (LIB_PIN*) SourcePin->Clone();
|
Pin = (LIB_PIN*) SourcePin->Clone();
|
||||||
Pin->m_Flags = IS_NEW;
|
Pin->ClearFlags();
|
||||||
|
Pin->SetFlags( IS_NEW );
|
||||||
Pin->SetPosition( Pin->GetPosition() + wxPoint( g_RepeatStep.x, -g_RepeatStep.y ) );
|
Pin->SetPosition( Pin->GetPosition() + wxPoint( g_RepeatStep.x, -g_RepeatStep.y ) );
|
||||||
wxString nextName = Pin->GetName();
|
wxString nextName = Pin->GetName();
|
||||||
IncrementLabelMember( nextName );
|
IncrementLabelMember( nextName );
|
||||||
|
@ -548,7 +550,7 @@ void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin )
|
||||||
m_drawItem = Pin;
|
m_drawItem = Pin;
|
||||||
|
|
||||||
if( SynchronizePins() )
|
if( SynchronizePins() )
|
||||||
Pin->m_Flags |= IS_LINKED;
|
Pin->SetFlags( IS_LINKED );
|
||||||
|
|
||||||
wxPoint savepos = GetScreen()->GetCrossHairPosition();
|
wxPoint savepos = GetScreen()->GetCrossHairPosition();
|
||||||
DrawPanel->CrossHairOff( DC );
|
DrawPanel->CrossHairOff( DC );
|
||||||
|
|
|
@ -313,7 +313,7 @@ void SCH_COMPONENT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset
|
||||||
|
|
||||||
SCH_FIELD* field = GetField( REFERENCE );
|
SCH_FIELD* field = GetField( REFERENCE );
|
||||||
|
|
||||||
if( field->IsVisible() && !( field->m_Flags & IS_MOVED ) )
|
if( field->IsVisible() && !field->IsMoving() )
|
||||||
{
|
{
|
||||||
field->Draw( panel, DC, offset, DrawMode );
|
field->Draw( panel, DC, offset, DrawMode );
|
||||||
}
|
}
|
||||||
|
@ -322,7 +322,7 @@ void SCH_COMPONENT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset
|
||||||
{
|
{
|
||||||
field = GetField( ii );
|
field = GetField( ii );
|
||||||
|
|
||||||
if( field->m_Flags & IS_MOVED )
|
if( field->IsMoving() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
field->Draw( panel, DC, offset, DrawMode );
|
field->Draw( panel, DC, offset, DrawMode );
|
||||||
|
|
|
@ -649,7 +649,7 @@ void SCH_SHEET::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
/* Draw text : SheetLabel */
|
/* Draw text : SheetLabel */
|
||||||
BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_pins )
|
BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_pins )
|
||||||
{
|
{
|
||||||
if( !( sheetPin.m_Flags & IS_MOVED ) )
|
if( !sheetPin.IsMoving() )
|
||||||
sheetPin.Draw( aPanel, aDC, aOffset, aDrawMode, aColor );
|
sheetPin.Draw( aPanel, aDC, aOffset, aDrawMode, aColor );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -676,7 +676,7 @@ EDA_RECT SCH_SHEET::GetBoundingBox() const
|
||||||
end += m_pos;
|
end += m_pos;
|
||||||
|
|
||||||
// Move upper and lower limits to include texts:
|
// Move upper and lower limits to include texts:
|
||||||
box.m_Pos.y -= wxRound( m_sheetNameSize * 1.3 ) + 8;
|
box.SetY( box.GetY() - ( wxRound( m_sheetNameSize * 1.3 ) + 8 ) );
|
||||||
end.y += wxRound( m_fileNameSize * 1.3 ) + 8;
|
end.y += wxRound( m_fileNameSize * 1.3 ) + 8;
|
||||||
|
|
||||||
box.SetEnd( end );
|
box.SetEnd( end );
|
||||||
|
|
|
@ -54,7 +54,7 @@ void LIB_EDIT_FRAME::LoadOneSymbol()
|
||||||
CMP_LIBRARY* Lib;
|
CMP_LIBRARY* Lib;
|
||||||
|
|
||||||
/* Exit if no library entry is selected or a command is in progress. */
|
/* Exit if no library entry is selected or a command is in progress. */
|
||||||
if( m_component == NULL || ( m_drawItem && m_drawItem->m_Flags ) )
|
if( m_component == NULL || ( m_drawItem && m_drawItem->GetFlags() ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DrawPanel->m_IgnoreMouseEvents = true;
|
DrawPanel->m_IgnoreMouseEvents = true;
|
||||||
|
@ -115,8 +115,7 @@ void LIB_EDIT_FRAME::LoadOneSymbol()
|
||||||
if( item.GetConvert() )
|
if( item.GetConvert() )
|
||||||
item.SetConvert( m_convert );
|
item.SetConvert( m_convert );
|
||||||
|
|
||||||
item.m_Flags = IS_NEW;
|
item.SetFlags( IS_NEW | SELECTED );
|
||||||
item.m_Selected = IS_SELECTED;
|
|
||||||
|
|
||||||
LIB_ITEM* newItem = (LIB_ITEM*) item.Clone();
|
LIB_ITEM* newItem = (LIB_ITEM*) item.Clone();
|
||||||
newItem->SetParent( m_component );
|
newItem->SetParent( m_component );
|
||||||
|
|
|
@ -26,11 +26,11 @@ void GERBVIEW_FRAME::OnLeftClick( wxDC* DC, const wxPoint& aPosition )
|
||||||
|
|
||||||
if( GetToolId() == ID_NO_TOOL_SELECTED )
|
if( GetToolId() == ID_NO_TOOL_SELECTED )
|
||||||
{
|
{
|
||||||
if( DrawStruct && DrawStruct->m_Flags )
|
if( DrawStruct && DrawStruct->GetFlags() )
|
||||||
{
|
{
|
||||||
msg.Printf( wxT( "GERBVIEW_FRAME::OnLeftClick err: Struct %d, m_Flags = %X" ),
|
msg.Printf( wxT( "GERBVIEW_FRAME::OnLeftClick err: Struct %d, m_Flags = %X" ),
|
||||||
(unsigned) DrawStruct->Type(),
|
(unsigned) DrawStruct->Type(),
|
||||||
(unsigned) DrawStruct->m_Flags );
|
(unsigned) DrawStruct->GetFlags() );
|
||||||
wxFAIL_MSG( msg );
|
wxFAIL_MSG( msg );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -23,7 +23,7 @@ bool GERBVIEW_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu )
|
||||||
DrawPanel->m_CanStartBlock = -1;
|
DrawPanel->m_CanStartBlock = -1;
|
||||||
|
|
||||||
// Simple location of elements where possible.
|
// Simple location of elements where possible.
|
||||||
if( ( DrawStruct == NULL ) || ( DrawStruct->m_Flags == 0 ) )
|
if( ( DrawStruct == NULL ) || ( DrawStruct->GetFlags() == 0 ) )
|
||||||
{
|
{
|
||||||
DrawStruct = Locate( aPosition, CURSEUR_OFF_GRILLE );
|
DrawStruct = Locate( aPosition, CURSEUR_OFF_GRILLE );
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ bool GERBVIEW_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu )
|
||||||
// If command in progress, end command.
|
// If command in progress, end command.
|
||||||
if( GetToolId() != ID_NO_TOOL_SELECTED )
|
if( GetToolId() != ID_NO_TOOL_SELECTED )
|
||||||
{
|
{
|
||||||
if( DrawStruct && DrawStruct->m_Flags )
|
if( DrawStruct && DrawStruct->GetFlags() )
|
||||||
AddMenuItem( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND,
|
AddMenuItem( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND,
|
||||||
_( "Cancel" ), KiBitmap( cancel_xpm ) );
|
_( "Cancel" ), KiBitmap( cancel_xpm ) );
|
||||||
else
|
else
|
||||||
|
@ -42,7 +42,7 @@ bool GERBVIEW_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( (DrawStruct && DrawStruct->m_Flags) || BlockActive )
|
if( (DrawStruct && DrawStruct->GetFlags()) || BlockActive )
|
||||||
{
|
{
|
||||||
if( BlockActive )
|
if( BlockActive )
|
||||||
{
|
{
|
||||||
|
|
|
@ -185,7 +185,7 @@ public:
|
||||||
*/
|
*/
|
||||||
class EDA_RECT
|
class EDA_RECT
|
||||||
{
|
{
|
||||||
public:
|
private:
|
||||||
wxPoint m_Pos; // Rectangle Origin
|
wxPoint m_Pos; // Rectangle Origin
|
||||||
wxSize m_Size; // Rectangle Size
|
wxSize m_Size; // Rectangle Size
|
||||||
|
|
||||||
|
@ -344,7 +344,7 @@ public:
|
||||||
#define BEGIN_ONPAD (1 << 22) ///< Pcbnew: flag set for track segment starting on a pad
|
#define BEGIN_ONPAD (1 << 22) ///< Pcbnew: flag set for track segment starting on a pad
|
||||||
#define END_ONPAD (1 << 23) ///< Pcbnew: flag set for track segment ending on a pad
|
#define END_ONPAD (1 << 23) ///< Pcbnew: flag set for track segment ending on a pad
|
||||||
#define BUSY (1 << 24) ///< Pcbnew: flag indicating that the structure has
|
#define BUSY (1 << 24) ///< Pcbnew: flag indicating that the structure has
|
||||||
// already been edited, in some functions
|
///< already been edited, in some functions
|
||||||
#define EDA_ITEM_ALL_FLAGS -1
|
#define EDA_ITEM_ALL_FLAGS -1
|
||||||
|
|
||||||
|
|
||||||
|
@ -377,14 +377,12 @@ protected:
|
||||||
/// Set to true to override the visibility setting of the item.
|
/// Set to true to override the visibility setting of the item.
|
||||||
bool m_forceVisible;
|
bool m_forceVisible;
|
||||||
|
|
||||||
public:
|
/// Flag bits for editing and other uses.
|
||||||
int m_Flags; // flags for editing and other uses.
|
int m_Flags;
|
||||||
|
|
||||||
int m_Selected; /* Used by block commands, and selective editing */
|
// Link to an copy of the item use to save the item's state for undo/redo feature.
|
||||||
|
EDA_ITEM* m_Image;
|
||||||
|
|
||||||
// member used in undo/redo function
|
|
||||||
EDA_ITEM* m_Image; // Link to an image copy to save a copy of
|
|
||||||
// old parameters values
|
|
||||||
private:
|
private:
|
||||||
void InitVars();
|
void InitVars();
|
||||||
|
|
||||||
|
@ -462,6 +460,8 @@ public:
|
||||||
void ClearFlags( int aMask = EDA_ITEM_ALL_FLAGS ) { m_Flags &= ~aMask; }
|
void ClearFlags( int aMask = EDA_ITEM_ALL_FLAGS ) { m_Flags &= ~aMask; }
|
||||||
int GetFlags() const { return m_Flags; }
|
int GetFlags() const { return m_Flags; }
|
||||||
|
|
||||||
|
void SetImage( EDA_ITEM* aItem ) { m_Image = aItem; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function SetForceVisible
|
* Function SetForceVisible
|
||||||
* is used to set and cleag force visible flag used to force the item to be drawn
|
* is used to set and cleag force visible flag used to force the item to be drawn
|
||||||
|
|
|
@ -405,11 +405,11 @@ void PCB_EDIT_FRAME::DrawInfoPlace( wxDC* DC )
|
||||||
|
|
||||||
for( ii = 0; ii < Board.m_Nrows; ii++ )
|
for( ii = 0; ii < Board.m_Nrows; ii++ )
|
||||||
{
|
{
|
||||||
oy = bbbox.m_Pos.y + ( ii * Board.m_GridRouting );
|
oy = bbbox.GetY() + ( ii * Board.m_GridRouting );
|
||||||
|
|
||||||
for( jj = 0; jj < Board.m_Ncols; jj++ )
|
for( jj = 0; jj < Board.m_Ncols; jj++ )
|
||||||
{
|
{
|
||||||
ox = bbbox.m_Pos.x + (jj * Board.m_GridRouting);
|
ox = bbbox.GetX() + (jj * Board.m_GridRouting);
|
||||||
color = BLACK;
|
color = BLACK;
|
||||||
|
|
||||||
top_state = GetCell( ii, jj, TOP );
|
top_state = GetCell( ii, jj, TOP );
|
||||||
|
@ -455,8 +455,8 @@ int PCB_EDIT_FRAME::GenPlaceBoard()
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The boundary box must have its start point on placing grid: */
|
/* The boundary box must have its start point on placing grid: */
|
||||||
bbbox.m_Pos.x -= bbbox.m_Pos.x % Board.m_GridRouting;
|
bbbox.SetX( bbbox.GetX() - ( bbbox.GetX() % Board.m_GridRouting ) );
|
||||||
bbbox.m_Pos.y -= bbbox.m_Pos.y % Board.m_GridRouting;
|
bbbox.SetY( bbbox.GetY() - ( bbbox.GetY() % Board.m_GridRouting ) );
|
||||||
|
|
||||||
/* The boundary box must have its end point on placing grid: */
|
/* The boundary box must have its end point on placing grid: */
|
||||||
wxPoint end = bbbox.GetEnd();
|
wxPoint end = bbbox.GetEnd();
|
||||||
|
@ -566,31 +566,31 @@ void PCB_EDIT_FRAME::GenModuleOnBoard( MODULE* Module )
|
||||||
int layerMask;
|
int layerMask;
|
||||||
D_PAD* Pad;
|
D_PAD* Pad;
|
||||||
|
|
||||||
ox = Module->m_BoundaryBox.m_Pos.x - marge;
|
ox = Module->m_BoundaryBox.GetX() - marge;
|
||||||
fx = Module->m_BoundaryBox.GetRight() + marge;
|
fx = Module->m_BoundaryBox.GetRight() + marge;
|
||||||
oy = Module->m_BoundaryBox.m_Pos.y - marge;
|
oy = Module->m_BoundaryBox.GetY() - marge;
|
||||||
fy = Module->m_BoundaryBox.GetBottom() + marge;
|
fy = Module->m_BoundaryBox.GetBottom() + marge;
|
||||||
|
|
||||||
if( ox < bbbox.m_Pos.x )
|
if( ox < bbbox.GetX() )
|
||||||
ox = bbbox.m_Pos.x;
|
ox = bbbox.GetX();
|
||||||
|
|
||||||
if( ox > bbbox.GetRight() )
|
if( ox > bbbox.GetRight() )
|
||||||
ox = bbbox.GetRight();
|
ox = bbbox.GetRight();
|
||||||
|
|
||||||
if( fx < bbbox.m_Pos.x )
|
if( fx < bbbox.GetX() )
|
||||||
fx = bbbox.m_Pos.x;
|
fx = bbbox.GetX();
|
||||||
|
|
||||||
if( fx > bbbox.GetRight() )
|
if( fx > bbbox.GetRight() )
|
||||||
fx = bbbox.GetRight();
|
fx = bbbox.GetRight();
|
||||||
|
|
||||||
if( oy < bbbox.m_Pos.y )
|
if( oy < bbbox.GetY() )
|
||||||
oy = bbbox.m_Pos.y;
|
oy = bbbox.GetY();
|
||||||
|
|
||||||
if( oy > bbbox.GetBottom() )
|
if( oy > bbbox.GetBottom() )
|
||||||
oy = bbbox.GetBottom();
|
oy = bbbox.GetBottom();
|
||||||
|
|
||||||
if( fy < bbbox.m_Pos.y )
|
if( fy < bbbox.GetY() )
|
||||||
fy = bbbox.m_Pos.y;
|
fy = bbbox.GetY();
|
||||||
|
|
||||||
if( fy > bbbox.GetBottom() )
|
if( fy > bbbox.GetBottom() )
|
||||||
fy = bbbox.GetBottom();
|
fy = bbbox.GetBottom();
|
||||||
|
@ -636,17 +636,17 @@ int PCB_EDIT_FRAME::GetOptimalModulePlacement( MODULE* aModule, wxDC* aDC )
|
||||||
|
|
||||||
aModule->DisplayInfo( this );
|
aModule->DisplayInfo( this );
|
||||||
|
|
||||||
LastPosOK.x = bbbox.m_Pos.x;
|
LastPosOK.x = bbbox.GetX();
|
||||||
LastPosOK.y = bbbox.m_Pos.y;
|
LastPosOK.y = bbbox.GetY();
|
||||||
|
|
||||||
cx = aModule->m_Pos.x; cy = aModule->m_Pos.y;
|
cx = aModule->m_Pos.x; cy = aModule->m_Pos.y;
|
||||||
ox = aModule->m_BoundaryBox.m_Pos.x - cx;
|
ox = aModule->m_BoundaryBox.GetX() - cx;
|
||||||
fx = aModule->m_BoundaryBox.m_Size.x + ox;
|
fx = aModule->m_BoundaryBox.GetWidth() + ox;
|
||||||
oy = aModule->m_BoundaryBox.m_Pos.y - cy;
|
oy = aModule->m_BoundaryBox.GetY() - cy;
|
||||||
fy = aModule->m_BoundaryBox.m_Size.y + oy;
|
fy = aModule->m_BoundaryBox.GetHeight() + oy;
|
||||||
|
|
||||||
CurrPosition.x = bbbox.m_Pos.x - ox;
|
CurrPosition.x = bbbox.GetX() - ox;
|
||||||
CurrPosition.y = bbbox.m_Pos.y - oy;
|
CurrPosition.y = bbbox.GetY() - oy;
|
||||||
|
|
||||||
/* Module placement on grid. */
|
/* Module placement on grid. */
|
||||||
CurrPosition.x -= CurrPosition.x % Board.m_GridRouting;
|
CurrPosition.x -= CurrPosition.x % Board.m_GridRouting;
|
||||||
|
@ -699,13 +699,13 @@ int PCB_EDIT_FRAME::GetOptimalModulePlacement( MODULE* aModule, wxDC* aDC )
|
||||||
}
|
}
|
||||||
|
|
||||||
cx = aModule->m_Pos.x; cy = aModule->m_Pos.y;
|
cx = aModule->m_Pos.x; cy = aModule->m_Pos.y;
|
||||||
aModule->m_BoundaryBox.m_Pos.x = ox + CurrPosition.x;
|
aModule->m_BoundaryBox.SetX( ox + CurrPosition.x );
|
||||||
aModule->m_BoundaryBox.m_Pos.y = oy + CurrPosition.y;
|
aModule->m_BoundaryBox.SetY( oy + CurrPosition.y );
|
||||||
|
|
||||||
DrawModuleOutlines( DrawPanel, aDC, aModule );
|
DrawModuleOutlines( DrawPanel, aDC, aModule );
|
||||||
|
|
||||||
g_Offset_Module.x = cx - CurrPosition.x;
|
g_Offset_Module.x = cx - CurrPosition.x;
|
||||||
CurrPosition.y = bbbox.m_Pos.y - oy;
|
CurrPosition.y = bbbox.GetY() - oy;
|
||||||
|
|
||||||
/* Placement on grid. */
|
/* Placement on grid. */
|
||||||
CurrPosition.y -= CurrPosition.y % Board.m_GridRouting;
|
CurrPosition.y -= CurrPosition.y % Board.m_GridRouting;
|
||||||
|
@ -722,8 +722,8 @@ int PCB_EDIT_FRAME::GetOptimalModulePlacement( MODULE* aModule, wxDC* aDC )
|
||||||
Compute_Ratsnest_PlaceModule( aDC );
|
Compute_Ratsnest_PlaceModule( aDC );
|
||||||
|
|
||||||
showRat = 0;
|
showRat = 0;
|
||||||
aModule->m_BoundaryBox.m_Pos.x = ox + CurrPosition.x;
|
aModule->m_BoundaryBox.SetX( ox + CurrPosition.x );
|
||||||
aModule->m_BoundaryBox.m_Pos.y = oy + CurrPosition.y;
|
aModule->m_BoundaryBox.SetY( oy + CurrPosition.y );
|
||||||
|
|
||||||
g_Offset_Module.y = cy - CurrPosition.y;
|
g_Offset_Module.y = cy - CurrPosition.y;
|
||||||
DrawModuleOutlines( DrawPanel, aDC, aModule );
|
DrawModuleOutlines( DrawPanel, aDC, aModule );
|
||||||
|
@ -763,8 +763,8 @@ int PCB_EDIT_FRAME::GetOptimalModulePlacement( MODULE* aModule, wxDC* aDC )
|
||||||
Compute_Ratsnest_PlaceModule( aDC );
|
Compute_Ratsnest_PlaceModule( aDC );
|
||||||
|
|
||||||
/* Regeneration of the modified variable. */
|
/* Regeneration of the modified variable. */
|
||||||
aModule->m_BoundaryBox.m_Pos.x = ox + cx;
|
aModule->m_BoundaryBox.SetX( ox + cx );
|
||||||
aModule->m_BoundaryBox.m_Pos.y = oy + cy;
|
aModule->m_BoundaryBox.SetY( oy + cy );
|
||||||
CurrPosition = LastPosOK;
|
CurrPosition = LastPosOK;
|
||||||
|
|
||||||
GetBoard()->m_Status_Pcb &= ~( RATSNEST_ITEM_LOCAL_OK | LISTE_PAD_OK );
|
GetBoard()->m_Status_Pcb &= ~( RATSNEST_ITEM_LOCAL_OK | LISTE_PAD_OK );
|
||||||
|
@ -786,10 +786,10 @@ int TstRectangle( BOARD* Pcb, int ux0, int uy0, int ux1, int uy1, int side )
|
||||||
int row_min, row_max, col_min, col_max;
|
int row_min, row_max, col_min, col_max;
|
||||||
unsigned int data;
|
unsigned int data;
|
||||||
|
|
||||||
ux0 -= Pcb->GetBoundingBox().m_Pos.x;
|
ux0 -= Pcb->GetBoundingBox().GetX();
|
||||||
uy0 -= Pcb->GetBoundingBox().m_Pos.y;
|
uy0 -= Pcb->GetBoundingBox().GetY();
|
||||||
ux1 -= Pcb->GetBoundingBox().m_Pos.x;
|
ux1 -= Pcb->GetBoundingBox().GetX();
|
||||||
uy1 -= Pcb->GetBoundingBox().m_Pos.y;
|
uy1 -= Pcb->GetBoundingBox().GetY();
|
||||||
|
|
||||||
row_max = uy1 / Board.m_GridRouting;
|
row_max = uy1 / Board.m_GridRouting;
|
||||||
col_max = ux1 / Board.m_GridRouting;
|
col_max = ux1 / Board.m_GridRouting;
|
||||||
|
@ -843,10 +843,10 @@ unsigned int CalculateKeepOutArea( BOARD* Pcb, int ux0, int uy0, int ux1, int uy
|
||||||
int row_min, row_max, col_min, col_max;
|
int row_min, row_max, col_min, col_max;
|
||||||
unsigned int keepOut;
|
unsigned int keepOut;
|
||||||
|
|
||||||
ux0 -= Pcb->GetBoundingBox().m_Pos.x;
|
ux0 -= Pcb->GetBoundingBox().GetX();
|
||||||
uy0 -= Pcb->GetBoundingBox().m_Pos.y;
|
uy0 -= Pcb->GetBoundingBox().GetY();
|
||||||
ux1 -= Pcb->GetBoundingBox().m_Pos.x;
|
ux1 -= Pcb->GetBoundingBox().GetX();
|
||||||
uy1 -= Pcb->GetBoundingBox().m_Pos.y;
|
uy1 -= Pcb->GetBoundingBox().GetY();
|
||||||
|
|
||||||
row_max = uy1 / Board.m_GridRouting;
|
row_max = uy1 / Board.m_GridRouting;
|
||||||
col_max = ux1 / Board.m_GridRouting;
|
col_max = ux1 / Board.m_GridRouting;
|
||||||
|
@ -902,9 +902,9 @@ int TstModuleOnBoard( BOARD* Pcb, MODULE* Module, bool TstOtherSide )
|
||||||
side = BOTTOM; otherside = TOP;
|
side = BOTTOM; otherside = TOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
ox = Module->m_BoundaryBox.m_Pos.x;
|
ox = Module->m_BoundaryBox.GetX();
|
||||||
fx = Module->m_BoundaryBox.GetRight();
|
fx = Module->m_BoundaryBox.GetRight();
|
||||||
oy = Module->m_BoundaryBox.m_Pos.y;
|
oy = Module->m_BoundaryBox.GetY();
|
||||||
fy = Module->m_BoundaryBox.GetBottom();
|
fy = Module->m_BoundaryBox.GetBottom();
|
||||||
|
|
||||||
error = TstRectangle( Pcb, ox, oy, fx, fy, side );
|
error = TstRectangle( Pcb, ox, oy, fx, fy, side );
|
||||||
|
@ -1017,10 +1017,10 @@ static void CreateKeepOutRectangle( BOARD* Pcb,
|
||||||
if( trace == 0 )
|
if( trace == 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ux0 -= Pcb->GetBoundingBox().m_Pos.x;
|
ux0 -= Pcb->GetBoundingBox().GetX();
|
||||||
uy0 -= Pcb->GetBoundingBox().m_Pos.y;
|
uy0 -= Pcb->GetBoundingBox().GetY();
|
||||||
ux1 -= Pcb->GetBoundingBox().m_Pos.x;
|
ux1 -= Pcb->GetBoundingBox().GetX();
|
||||||
uy1 -= Pcb->GetBoundingBox().m_Pos.y;
|
uy1 -= Pcb->GetBoundingBox().GetY();
|
||||||
|
|
||||||
ux0 -= marge; ux1 += marge;
|
ux0 -= marge; ux1 += marge;
|
||||||
uy0 -= marge; uy1 += marge;
|
uy0 -= marge; uy1 += marge;
|
||||||
|
|
|
@ -610,7 +610,7 @@ void PCB_EDIT_FRAME::Block_Delete()
|
||||||
case PCB_MODULE_T:
|
case PCB_MODULE_T:
|
||||||
{
|
{
|
||||||
MODULE* module = (MODULE*) item;
|
MODULE* module = (MODULE*) item;
|
||||||
module->m_Flags = 0;
|
module->ClearFlags();
|
||||||
module->UnLink();
|
module->UnLink();
|
||||||
m_Pcb->m_Status_Pcb = 0;
|
m_Pcb->m_Status_Pcb = 0;
|
||||||
}
|
}
|
||||||
|
@ -675,7 +675,7 @@ void PCB_EDIT_FRAME::Block_Rotate()
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
case PCB_MODULE_T:
|
case PCB_MODULE_T:
|
||||||
( (MODULE*) item )->m_Flags = 0;
|
( (MODULE*) item )->ClearFlags();
|
||||||
m_Pcb->m_Status_Pcb = 0;
|
m_Pcb->m_Status_Pcb = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -736,7 +736,7 @@ void PCB_EDIT_FRAME::Block_Flip()
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
case PCB_MODULE_T:
|
case PCB_MODULE_T:
|
||||||
item->m_Flags = 0;
|
item->ClearFlags();
|
||||||
m_Pcb->m_Status_Pcb = 0;
|
m_Pcb->m_Status_Pcb = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -791,7 +791,7 @@ void PCB_EDIT_FRAME::Block_Move()
|
||||||
{
|
{
|
||||||
case PCB_MODULE_T:
|
case PCB_MODULE_T:
|
||||||
m_Pcb->m_Status_Pcb = 0;
|
m_Pcb->m_Status_Pcb = 0;
|
||||||
item->m_Flags = 0;
|
item->ClearFlags();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Move track segments */
|
/* Move track segments */
|
||||||
|
@ -851,7 +851,7 @@ void PCB_EDIT_FRAME::Block_Duplicate()
|
||||||
MODULE* module = (MODULE*) item;
|
MODULE* module = (MODULE*) item;
|
||||||
MODULE* new_module;
|
MODULE* new_module;
|
||||||
m_Pcb->m_Status_Pcb = 0;
|
m_Pcb->m_Status_Pcb = 0;
|
||||||
module->m_Flags = 0;
|
module->ClearFlags();
|
||||||
newitem = new_module = new MODULE( m_Pcb );
|
newitem = new_module = new MODULE( m_Pcb );
|
||||||
new_module->Copy( module );
|
new_module->Copy( module );
|
||||||
new_module->SetTimeStamp( GetNewTimeStamp() );
|
new_module->SetTimeStamp( GetNewTimeStamp() );
|
||||||
|
|
|
@ -55,7 +55,6 @@
|
||||||
|
|
||||||
|
|
||||||
#define BLOCK_COLOR BROWN
|
#define BLOCK_COLOR BROWN
|
||||||
#define IS_SELECTED 1
|
|
||||||
|
|
||||||
|
|
||||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||||
|
@ -285,7 +284,7 @@ void FOOTPRINT_EDIT_FRAME::HandleBlockPlace( wxDC* DC )
|
||||||
|
|
||||||
OnModify();
|
OnModify();
|
||||||
|
|
||||||
GetScreen()->m_BlockLocate.m_Flags = 0;
|
GetScreen()->m_BlockLocate.ClearFlags();
|
||||||
GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK;
|
GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK;
|
||||||
GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE;
|
GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE;
|
||||||
SetCurItem( NULL );
|
SetCurItem( NULL );
|
||||||
|
@ -322,7 +321,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
|
||||||
|
|
||||||
for( ; item != NULL; item = item->Next() )
|
for( ; item != NULL; item = item->Next() )
|
||||||
{
|
{
|
||||||
if( item->m_Selected == 0 )
|
if( !item->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
|
@ -341,7 +340,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
|
||||||
|
|
||||||
for( ; pad != NULL; pad = pad->Next() )
|
for( ; pad != NULL; pad = pad->Next() )
|
||||||
{
|
{
|
||||||
if( pad->m_Selected == 0 )
|
if( !pad->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pad->Draw( aPanel, aDC, g_XorMode, move_offset );
|
pad->Draw( aPanel, aDC, g_XorMode, move_offset );
|
||||||
|
@ -361,7 +360,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
|
||||||
|
|
||||||
for( ; item != NULL; item = item->Next() )
|
for( ; item != NULL; item = item->Next() )
|
||||||
{
|
{
|
||||||
if( item->m_Selected == 0 )
|
if( !item->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
|
@ -380,7 +379,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
|
||||||
|
|
||||||
for( ; pad != NULL; pad = pad->Next() )
|
for( ; pad != NULL; pad = pad->Next() )
|
||||||
{
|
{
|
||||||
if( pad->m_Selected == 0 )
|
if( !pad->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pad->Draw( aPanel, aDC, g_XorMode, move_offset );
|
pad->Draw( aPanel, aDC, g_XorMode, move_offset );
|
||||||
|
@ -398,22 +397,22 @@ void CopyMarkedItems( MODULE* module, wxPoint offset )
|
||||||
|
|
||||||
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
|
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
|
||||||
{
|
{
|
||||||
if( pad->m_Selected == 0 )
|
if( !pad->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pad->m_Selected = 0;
|
pad->ClearFlags( SELECTED );
|
||||||
D_PAD* NewPad = new D_PAD( module );
|
D_PAD* NewPad = new D_PAD( module );
|
||||||
NewPad->Copy( pad );
|
NewPad->Copy( pad );
|
||||||
NewPad->m_Selected = IS_SELECTED;
|
NewPad->SetFlags( SELECTED );
|
||||||
module->m_Pads.PushFront( NewPad );
|
module->m_Pads.PushFront( NewPad );
|
||||||
}
|
}
|
||||||
|
|
||||||
for( BOARD_ITEM* item = module->m_Drawings; item; item = item->Next() )
|
for( BOARD_ITEM* item = module->m_Drawings; item; item = item->Next() )
|
||||||
{
|
{
|
||||||
if( item->m_Selected == 0 )
|
if( !item->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
item->m_Selected = 0;
|
item->ClearFlags( SELECTED );
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
|
@ -421,7 +420,7 @@ void CopyMarkedItems( MODULE* module, wxPoint offset )
|
||||||
TEXTE_MODULE * textm;
|
TEXTE_MODULE * textm;
|
||||||
textm = new TEXTE_MODULE( module );
|
textm = new TEXTE_MODULE( module );
|
||||||
textm->Copy( (TEXTE_MODULE*) item );
|
textm->Copy( (TEXTE_MODULE*) item );
|
||||||
textm->m_Selected = IS_SELECTED;
|
textm->SetFlags( SELECTED );
|
||||||
module->m_Drawings.PushFront( textm );
|
module->m_Drawings.PushFront( textm );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -429,7 +428,7 @@ void CopyMarkedItems( MODULE* module, wxPoint offset )
|
||||||
EDGE_MODULE * edge;
|
EDGE_MODULE * edge;
|
||||||
edge = new EDGE_MODULE( module );
|
edge = new EDGE_MODULE( module );
|
||||||
edge->Copy( (EDGE_MODULE*) item );
|
edge->Copy( (EDGE_MODULE*) item );
|
||||||
edge->m_Selected = IS_SELECTED;
|
edge->SetFlags( SELECTED );
|
||||||
module->m_Drawings.PushFront( edge );
|
module->m_Drawings.PushFront( edge );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -456,7 +455,7 @@ void MoveMarkedItems( MODULE* module, wxPoint offset )
|
||||||
|
|
||||||
for( ; pad != NULL; pad = pad->Next() )
|
for( ; pad != NULL; pad = pad->Next() )
|
||||||
{
|
{
|
||||||
if( pad->m_Selected == 0 )
|
if( !pad->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pad->SetPosition( pad->GetPosition() + offset );
|
pad->SetPosition( pad->GetPosition() + offset );
|
||||||
|
@ -467,7 +466,7 @@ void MoveMarkedItems( MODULE* module, wxPoint offset )
|
||||||
|
|
||||||
for( ; item != NULL; item = item->Next() )
|
for( ; item != NULL; item = item->Next() )
|
||||||
{
|
{
|
||||||
if( item->m_Selected == 0 )
|
if( !item->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
|
@ -494,7 +493,7 @@ void MoveMarkedItems( MODULE* module, wxPoint offset )
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
item->m_Flags = item->m_Selected = 0;
|
item->ClearFlags();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -517,7 +516,7 @@ void DeleteMarkedItems( MODULE* module )
|
||||||
{
|
{
|
||||||
next_pad = pad->Next();
|
next_pad = pad->Next();
|
||||||
|
|
||||||
if( pad->m_Selected == 0 )
|
if( !pad->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pad->DeleteStructure();
|
pad->DeleteStructure();
|
||||||
|
@ -529,7 +528,7 @@ void DeleteMarkedItems( MODULE* module )
|
||||||
{
|
{
|
||||||
next_item = item->Next();
|
next_item = item->Next();
|
||||||
|
|
||||||
if( item->m_Selected == 0 )
|
if( !item->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
item->DeleteStructure();
|
item->DeleteStructure();
|
||||||
|
@ -549,7 +548,7 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset )
|
||||||
|
|
||||||
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
|
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
|
||||||
{
|
{
|
||||||
if( pad->m_Selected == 0 )
|
if( pad->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
tmp = pad->GetPosition();
|
tmp = pad->GetPosition();
|
||||||
|
@ -565,7 +564,7 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset )
|
||||||
|
|
||||||
for( EDA_ITEM* item = module->m_Drawings; item; item = item->Next() )
|
for( EDA_ITEM* item = module->m_Drawings; item; item = item->Next() )
|
||||||
{
|
{
|
||||||
if( item->m_Selected == 0 )
|
if( !item->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
|
@ -603,8 +602,7 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
item->m_Flags = 0;
|
item->ClearFlags();
|
||||||
item->m_Selected = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -620,7 +618,7 @@ void RotateMarkedItems( MODULE* module, wxPoint offset )
|
||||||
|
|
||||||
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
|
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
|
||||||
{
|
{
|
||||||
if( pad->m_Selected == 0 )
|
if( !pad->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
wxPoint pos = pad->GetPosition();
|
wxPoint pos = pad->GetPosition();
|
||||||
|
@ -634,7 +632,7 @@ void RotateMarkedItems( MODULE* module, wxPoint offset )
|
||||||
|
|
||||||
for( EDA_ITEM* item = module->m_Drawings; item; item = item->Next() )
|
for( EDA_ITEM* item = module->m_Drawings; item; item = item->Next() )
|
||||||
{
|
{
|
||||||
if( item->m_Selected == 0 )
|
if( !item->IsSelected() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
|
@ -670,7 +668,7 @@ void RotateMarkedItems( MODULE* module, wxPoint offset )
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
item->m_Flags = item->m_Selected = 0;
|
item->ClearFlags();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -685,12 +683,16 @@ void ClearMarkItems( MODULE* module )
|
||||||
item = module->m_Drawings;
|
item = module->m_Drawings;
|
||||||
|
|
||||||
for( ; item != NULL; item = item->Next() )
|
for( ; item != NULL; item = item->Next() )
|
||||||
item->m_Flags = item->m_Selected = 0;
|
{
|
||||||
|
item->ClearFlags();
|
||||||
|
}
|
||||||
|
|
||||||
item = module->m_Pads;
|
item = module->m_Pads;
|
||||||
|
|
||||||
for( ; item != NULL; item = item->Next() )
|
for( ; item != NULL; item = item->Next() )
|
||||||
item->m_Flags = item->m_Selected = 0;
|
{
|
||||||
|
item->ClearFlags();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -711,12 +713,12 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect )
|
||||||
|
|
||||||
for( ; pad != NULL; pad = pad->Next() )
|
for( ; pad != NULL; pad = pad->Next() )
|
||||||
{
|
{
|
||||||
pad->m_Selected = 0;
|
pad->ClearFlags( SELECTED );
|
||||||
pos = pad->GetPosition();
|
pos = pad->GetPosition();
|
||||||
|
|
||||||
if( Rect.Contains( pos ) )
|
if( Rect.Contains( pos ) )
|
||||||
{
|
{
|
||||||
pad->m_Selected = IS_SELECTED;
|
pad->SetFlags( SELECTED );
|
||||||
ItemsCount++;
|
ItemsCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -725,14 +727,14 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect )
|
||||||
|
|
||||||
for( ; item != NULL; item = item->Next() )
|
for( ; item != NULL; item = item->Next() )
|
||||||
{
|
{
|
||||||
item->m_Selected = 0;
|
item->ClearFlags( SELECTED );
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
case PCB_MODULE_EDGE_T:
|
case PCB_MODULE_EDGE_T:
|
||||||
if( ((EDGE_MODULE*)item )->HitTest( Rect ) )
|
if( ((EDGE_MODULE*)item )->HitTest( Rect ) )
|
||||||
{
|
{
|
||||||
item->m_Selected = IS_SELECTED;
|
item->SetFlags( SELECTED );
|
||||||
ItemsCount++;
|
ItemsCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -743,7 +745,7 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect )
|
||||||
|
|
||||||
if( Rect.Contains( pos ) )
|
if( Rect.Contains( pos ) )
|
||||||
{
|
{
|
||||||
item->m_Selected = IS_SELECTED;
|
item->SetFlags( SELECTED );
|
||||||
ItemsCount++;
|
ItemsCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,8 +51,7 @@ bool MATRIX_ROUTING_HEAD::ComputeMatrixSize( BOARD* aPcb )
|
||||||
// The boundary box must have its start point on routing grid:
|
// The boundary box must have its start point on routing grid:
|
||||||
m_BrdBox = aPcb->GetBoundingBox();
|
m_BrdBox = aPcb->GetBoundingBox();
|
||||||
|
|
||||||
m_BrdBox.m_Pos.x -= m_BrdBox.m_Pos.x % m_GridRouting;
|
m_BrdBox.Offset( -(m_BrdBox.GetX() % m_GridRouting), -(m_BrdBox.GetY() % m_GridRouting) );
|
||||||
m_BrdBox.m_Pos.y -= m_BrdBox.m_Pos.y % m_GridRouting;
|
|
||||||
|
|
||||||
// The boundary box must have its end point on routing grid:
|
// The boundary box must have its end point on routing grid:
|
||||||
wxPoint end = m_BrdBox.GetEnd();
|
wxPoint end = m_BrdBox.GetEnd();
|
||||||
|
@ -67,11 +66,12 @@ bool MATRIX_ROUTING_HEAD::ComputeMatrixSize( BOARD* aPcb )
|
||||||
|
|
||||||
aPcb->SetBoundingBox( m_BrdBox );
|
aPcb->SetBoundingBox( m_BrdBox );
|
||||||
|
|
||||||
m_Nrows = Nrows = m_BrdBox.m_Size.y / m_GridRouting;
|
m_Nrows = Nrows = m_BrdBox.GetHeight() / m_GridRouting;
|
||||||
m_Ncols = Ncols = m_BrdBox.m_Size.x / m_GridRouting;
|
m_Ncols = Ncols = m_BrdBox.GetWidth() / m_GridRouting;
|
||||||
|
|
||||||
/* get a small margin for memory allocation: */
|
/* get a small margin for memory allocation: */
|
||||||
Ncols += 1; Nrows += 1;
|
Ncols += 1;
|
||||||
|
Nrows += 1;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -371,48 +371,45 @@ int Build_Work( BOARD* Pcb )
|
||||||
current_net_code = pt_pad->GetNet();
|
current_net_code = pt_pad->GetNet();
|
||||||
pt_ch = pt_rats;
|
pt_ch = pt_rats;
|
||||||
|
|
||||||
r1 = ( pt_pad->GetPosition().y - bbbox.m_Pos.y
|
r1 = ( pt_pad->GetPosition().y - bbbox.GetY() + demi_pas ) / Board.m_GridRouting;
|
||||||
+ demi_pas ) / Board.m_GridRouting;
|
|
||||||
|
|
||||||
if( r1 < 0 || r1 >= Nrows )
|
if( r1 < 0 || r1 >= Nrows )
|
||||||
{
|
{
|
||||||
msg.Printf( wxT( "error : row = %d ( padY %d pcbY %d) " ), r1,
|
msg.Printf( wxT( "error : row = %d ( padY %d pcbY %d) " ), r1,
|
||||||
pt_pad->GetPosition().y, bbbox.m_Pos.y );
|
pt_pad->GetPosition().y, bbbox.GetY() );
|
||||||
wxMessageBox( msg );
|
wxMessageBox( msg );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
c1 = ( pt_pad->GetPosition().x - bbbox.m_Pos.x
|
c1 = ( pt_pad->GetPosition().x - bbbox.GetX() + demi_pas ) / Board.m_GridRouting;
|
||||||
+ demi_pas ) / Board.m_GridRouting;
|
|
||||||
|
|
||||||
if( c1 < 0 || c1 >= Ncols )
|
if( c1 < 0 || c1 >= Ncols )
|
||||||
{
|
{
|
||||||
msg.Printf( wxT( "error : col = %d ( padX %d pcbX %d) " ), c1,
|
msg.Printf( wxT( "error : col = %d ( padX %d pcbX %d) " ), c1,
|
||||||
pt_pad->GetPosition().x, bbbox.m_Pos.x );
|
pt_pad->GetPosition().x, bbbox.GetX() );
|
||||||
wxMessageBox( msg );
|
wxMessageBox( msg );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
pt_pad = pt_rats->m_PadEnd;
|
pt_pad = pt_rats->m_PadEnd;
|
||||||
|
|
||||||
r2 = ( pt_pad->GetPosition().y - bbbox.m_Pos.y
|
r2 = ( pt_pad->GetPosition().y - bbbox.GetY()
|
||||||
+ demi_pas ) / Board.m_GridRouting;
|
+ demi_pas ) / Board.m_GridRouting;
|
||||||
|
|
||||||
if( r2 < 0 || r2 >= Nrows )
|
if( r2 < 0 || r2 >= Nrows )
|
||||||
{
|
{
|
||||||
msg.Printf( wxT( "error : row = %d ( padY %d pcbY %d) " ), r2,
|
msg.Printf( wxT( "error : row = %d ( padY %d pcbY %d) " ), r2,
|
||||||
pt_pad->GetPosition().y, bbbox.m_Pos.y );
|
pt_pad->GetPosition().y, bbbox.GetY() );
|
||||||
wxMessageBox( msg );
|
wxMessageBox( msg );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
c2 = ( pt_pad->GetPosition().x - bbbox.m_Pos.x
|
c2 = ( pt_pad->GetPosition().x - bbbox.GetX() + demi_pas ) / Board.m_GridRouting;
|
||||||
+ demi_pas ) / Board.m_GridRouting;
|
|
||||||
|
|
||||||
if( c2 < 0 || c2 >= Ncols )
|
if( c2 < 0 || c2 >= Ncols )
|
||||||
{
|
{
|
||||||
msg.Printf( wxT( "error : col = %d ( padX %d pcbX %d) " ), c2,
|
msg.Printf( wxT( "error : col = %d ( padX %d pcbX %d) " ), c2,
|
||||||
pt_pad->GetPosition().x, bbbox.m_Pos.x );
|
pt_pad->GetPosition().x, bbbox.GetX() );
|
||||||
wxMessageBox( msg );
|
wxMessageBox( msg );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -569,7 +569,7 @@ void PCB_EDIT_FRAME::PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
item->m_Flags = 0;
|
item->ClearFlags();
|
||||||
|
|
||||||
// see if we must rebuild ratsnets and pointers lists
|
// see if we must rebuild ratsnets and pointers lists
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
|
|
|
@ -386,8 +386,8 @@ EDA_RECT DRAWSEGMENT::GetBoundingBox() const
|
||||||
if( ii == 0 )
|
if( ii == 0 )
|
||||||
p_end = pt;
|
p_end = pt;
|
||||||
|
|
||||||
bbox.m_Pos.x = MIN( bbox.m_Pos.x, pt.x );
|
bbox.SetX( MIN( bbox.GetX(), pt.x ) );
|
||||||
bbox.m_Pos.y = MIN( bbox.m_Pos.y, pt.y );
|
bbox.SetY( MIN( bbox.GetY(), pt.y ) );
|
||||||
p_end.x = MAX( p_end.x, pt.x );
|
p_end.x = MAX( p_end.x, pt.x );
|
||||||
p_end.y = MAX( p_end.y, pt.y );
|
p_end.y = MAX( p_end.y, pt.y );
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,12 +213,12 @@ void MODULE::Copy( MODULE* aModule )
|
||||||
*/
|
*/
|
||||||
void MODULE::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDrawMode, const wxPoint& aOffset )
|
void MODULE::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDrawMode, const wxPoint& aOffset )
|
||||||
{
|
{
|
||||||
if( (m_Flags & DO_NOT_DRAW) || (m_Flags & IS_MOVED) )
|
if( (m_Flags & DO_NOT_DRAW) || (IsMoving()) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for( D_PAD* pad = m_Pads; pad; pad = pad->Next() )
|
for( D_PAD* pad = m_Pads; pad; pad = pad->Next() )
|
||||||
{
|
{
|
||||||
if( pad->m_Flags & IS_MOVED )
|
if( pad->IsMoving() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pad->Draw( aPanel, aDC, aDrawMode, aOffset );
|
pad->Draw( aPanel, aDC, aDrawMode, aOffset );
|
||||||
|
@ -232,19 +232,19 @@ void MODULE::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDrawMode, const wxPoi
|
||||||
/* Draw graphic items */
|
/* Draw graphic items */
|
||||||
if( brd->IsElementVisible( MOD_REFERENCES_VISIBLE ) )
|
if( brd->IsElementVisible( MOD_REFERENCES_VISIBLE ) )
|
||||||
{
|
{
|
||||||
if( !(m_Reference->m_Flags & IS_MOVED) )
|
if( !(m_Reference->IsMoving()) )
|
||||||
m_Reference->Draw( aPanel, aDC, aDrawMode, aOffset );
|
m_Reference->Draw( aPanel, aDC, aDrawMode, aOffset );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( brd->IsElementVisible( MOD_VALUES_VISIBLE ) )
|
if( brd->IsElementVisible( MOD_VALUES_VISIBLE ) )
|
||||||
{
|
{
|
||||||
if( !(m_Value->m_Flags & IS_MOVED) )
|
if( !(m_Value->IsMoving()) )
|
||||||
m_Value->Draw( aPanel, aDC, aDrawMode, aOffset );
|
m_Value->Draw( aPanel, aDC, aDrawMode, aOffset );
|
||||||
}
|
}
|
||||||
|
|
||||||
for( BOARD_ITEM* item = m_Drawings; item; item = item->Next() )
|
for( BOARD_ITEM* item = m_Drawings; item; item = item->Next() )
|
||||||
{
|
{
|
||||||
if( item->m_Flags & IS_MOVED )
|
if( item->IsMoving() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
|
@ -303,7 +303,7 @@ EDA_RECT MODULE::GetFootPrintRect() const
|
||||||
{
|
{
|
||||||
EDA_RECT area;
|
EDA_RECT area;
|
||||||
|
|
||||||
area.m_Pos = m_Pos;
|
area.SetOrigin( m_Pos );
|
||||||
area.SetEnd( m_Pos );
|
area.SetEnd( m_Pos );
|
||||||
area.Inflate( 50 ); // Give a min size
|
area.Inflate( 50 ); // Give a min size
|
||||||
|
|
||||||
|
@ -425,10 +425,10 @@ bool MODULE::HitTest( const wxPoint& aRefPos )
|
||||||
|
|
||||||
bool MODULE::HitTest( EDA_RECT& aRefArea )
|
bool MODULE::HitTest( EDA_RECT& aRefArea )
|
||||||
{
|
{
|
||||||
if( m_BoundaryBox.m_Pos.x < aRefArea.GetX() )
|
if( m_BoundaryBox.GetX() < aRefArea.GetX() )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if( m_BoundaryBox.m_Pos.y < aRefArea.GetY() )
|
if( m_BoundaryBox.GetY() < aRefArea.GetY() )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if( m_BoundaryBox.GetRight() > aRefArea.GetRight() )
|
if( m_BoundaryBox.GetRight() > aRefArea.GetRight() )
|
||||||
|
@ -576,8 +576,8 @@ void MODULE::Show( int nestLevel, std::ostream& os ) const
|
||||||
" layer=\"" << board->GetLayerName( m_Layer ).mb_str() << '"' <<
|
" layer=\"" << board->GetLayerName( m_Layer ).mb_str() << '"' <<
|
||||||
">\n";
|
">\n";
|
||||||
|
|
||||||
NestedSpace( nestLevel + 1, os ) <<
|
NestedSpace( nestLevel + 1, os ) << "<boundingBox" << m_BoundaryBox.GetPosition()
|
||||||
"<boundingBox" << m_BoundaryBox.m_Pos << m_BoundaryBox.m_Size << "/>\n";
|
<< m_BoundaryBox.GetSize() << "/>\n";
|
||||||
|
|
||||||
NestedSpace( nestLevel + 1, os ) << "<orientation tenths=\"" << m_Orient
|
NestedSpace( nestLevel + 1, os ) << "<orientation tenths=\"" << m_Orient
|
||||||
<< "\"/>\n";
|
<< "\"/>\n";
|
||||||
|
|
|
@ -58,7 +58,7 @@ static bool ShowClearance( const TRACK* aTrack )
|
||||||
return aTrack->GetLayer() <= LAST_COPPER_LAYER
|
return aTrack->GetLayer() <= LAST_COPPER_LAYER
|
||||||
&& ( aTrack->Type() == PCB_TRACE_T || aTrack->Type() == PCB_VIA_T )
|
&& ( aTrack->Type() == PCB_TRACE_T || aTrack->Type() == PCB_VIA_T )
|
||||||
&& ( ( DisplayOpt.ShowTrackClearanceMode == SHOW_CLEARANCE_NEW_AND_EDITED_TRACKS_AND_VIA_AREAS
|
&& ( ( DisplayOpt.ShowTrackClearanceMode == SHOW_CLEARANCE_NEW_AND_EDITED_TRACKS_AND_VIA_AREAS
|
||||||
&& ( aTrack->m_Flags & IS_DRAGGED || aTrack->m_Flags & IS_MOVED || aTrack->m_Flags & IS_NEW ) )
|
&& ( aTrack->IsDragging() || aTrack->IsMoving() || aTrack->IsNew() ) )
|
||||||
|| ( DisplayOpt.ShowTrackClearanceMode == SHOW_CLEARANCE_ALWAYS )
|
|| ( DisplayOpt.ShowTrackClearanceMode == SHOW_CLEARANCE_ALWAYS )
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -312,7 +312,7 @@ void PCB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH
|
||||||
|
|
||||||
EDA_ITEM* DrawStruct = GetScreen()->GetCurItem();
|
EDA_ITEM* DrawStruct = GetScreen()->GetCurItem();
|
||||||
|
|
||||||
if( DrawStruct && DrawStruct->m_Flags )
|
if( DrawStruct && DrawStruct->GetFlags() )
|
||||||
keep_on_grid = true;
|
keep_on_grid = true;
|
||||||
|
|
||||||
if( keep_on_grid )
|
if( keep_on_grid )
|
||||||
|
|
|
@ -451,7 +451,7 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event )
|
||||||
wxPoint modpos;
|
wxPoint modpos;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
if( m_CurrentModule->m_Flags == 0 ) // this is a simple edition, we
|
if( m_CurrentModule->GetFlags() == 0 ) // this is a simple edition, we
|
||||||
// must create an undo entry
|
// must create an undo entry
|
||||||
m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_CHANGED );
|
m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_CHANGED );
|
||||||
|
|
||||||
|
|
|
@ -160,7 +160,7 @@ void DialogEditModuleText::OnOkClick( wxCommandEvent& event )
|
||||||
if( m_dc ) //Erase old text on screen
|
if( m_dc ) //Erase old text on screen
|
||||||
{
|
{
|
||||||
m_currentText->Draw( m_parent->DrawPanel, m_dc, GR_XOR,
|
m_currentText->Draw( m_parent->DrawPanel, m_dc, GR_XOR,
|
||||||
(m_currentText->m_Flags & IS_MOVED) ? MoveVector : wxPoint( 0, 0 ) );
|
(m_currentText->IsMoving()) ? MoveVector : wxPoint( 0, 0 ) );
|
||||||
}
|
}
|
||||||
m_currentText->m_Text = m_Name->GetValue();
|
m_currentText->m_Text = m_Name->GetValue();
|
||||||
|
|
||||||
|
@ -212,9 +212,11 @@ void DialogEditModuleText::OnOkClick( wxCommandEvent& event )
|
||||||
if( m_dc ) // Display new text
|
if( m_dc ) // Display new text
|
||||||
{
|
{
|
||||||
m_currentText->Draw( m_parent->DrawPanel, m_dc, GR_XOR,
|
m_currentText->Draw( m_parent->DrawPanel, m_dc, GR_XOR,
|
||||||
(m_currentText->m_Flags & IS_MOVED) ? MoveVector : wxPoint( 0, 0 ) );
|
(m_currentText->IsMoving()) ? MoveVector : wxPoint( 0, 0 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
m_parent->OnModify();
|
m_parent->OnModify();
|
||||||
|
|
||||||
if( m_module )
|
if( m_module )
|
||||||
m_module->m_LastEdit_Time = time( NULL );
|
m_module->m_LastEdit_Time = time( NULL );
|
||||||
|
|
||||||
|
|
|
@ -599,13 +599,14 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event )
|
||||||
Module->m_LastEdit_Time = time( NULL );
|
Module->m_LastEdit_Time = time( NULL );
|
||||||
|
|
||||||
// redraw the area where the pad was, without pad (delete pad on screen)
|
// redraw the area where the pad was, without pad (delete pad on screen)
|
||||||
m_CurrentPad->m_Flags |= DO_NOT_DRAW;
|
m_CurrentPad->SetFlags( DO_NOT_DRAW );
|
||||||
m_Parent->DrawPanel->RefreshDrawingRect( m_CurrentPad->GetBoundingBox() );
|
m_Parent->DrawPanel->RefreshDrawingRect( m_CurrentPad->GetBoundingBox() );
|
||||||
m_CurrentPad->m_Flags &= ~DO_NOT_DRAW;
|
m_CurrentPad->ClearFlags( DO_NOT_DRAW );
|
||||||
|
|
||||||
// Update values
|
// Update values
|
||||||
m_CurrentPad->m_PadShape = g_Pad_Master.m_PadShape;
|
m_CurrentPad->m_PadShape = g_Pad_Master.m_PadShape;
|
||||||
m_CurrentPad->m_Attribut = g_Pad_Master.m_Attribut;
|
m_CurrentPad->m_Attribut = g_Pad_Master.m_Attribut;
|
||||||
|
|
||||||
if( m_CurrentPad->m_Pos != g_Pad_Master.m_Pos )
|
if( m_CurrentPad->m_Pos != g_Pad_Master.m_Pos )
|
||||||
{
|
{
|
||||||
m_CurrentPad->m_Pos = g_Pad_Master.m_Pos;
|
m_CurrentPad->m_Pos = g_Pad_Master.m_Pos;
|
||||||
|
|
|
@ -172,15 +172,15 @@ void DIALOG_PCB_TEXT_PROPERTIES::OnOkClick( wxCommandEvent& event )
|
||||||
|
|
||||||
// If no other command in progress, prepare undo command
|
// If no other command in progress, prepare undo command
|
||||||
// (for a command in progress, will be made later, at the completion of command)
|
// (for a command in progress, will be made later, at the completion of command)
|
||||||
if( m_SelectedPCBText->m_Flags == 0 )
|
if( m_SelectedPCBText->GetFlags() == 0 )
|
||||||
m_Parent->SaveCopyInUndoList( m_SelectedPCBText, UR_CHANGED );
|
m_Parent->SaveCopyInUndoList( m_SelectedPCBText, UR_CHANGED );
|
||||||
|
|
||||||
/* set flag in edit to force undo/redo/abort proper operation,
|
/* set flag in edit to force undo/redo/abort proper operation,
|
||||||
* and avoid new calls to SaveCopyInUndoList for the same text
|
* and avoid new calls to SaveCopyInUndoList for the same text
|
||||||
* this can occurs when a text is moved, and then rotated, edited ..
|
* this can occurs when a text is moved, and then rotated, edited ..
|
||||||
*/
|
*/
|
||||||
if( m_SelectedPCBText->m_Flags != 0 )
|
if( m_SelectedPCBText->GetFlags() != 0 )
|
||||||
m_SelectedPCBText->m_Flags |= IN_EDIT;
|
m_SelectedPCBText->SetFlags( IN_EDIT );
|
||||||
|
|
||||||
// Erase old text on screen if context is available
|
// Erase old text on screen if context is available
|
||||||
if( m_DC )
|
if( m_DC )
|
||||||
|
|
|
@ -224,7 +224,7 @@ DIMENSION* PCB_EDIT_FRAME::EditDimension( DIMENSION* aDimension, wxDC* aDC )
|
||||||
pos = GetScreen()->GetCrossHairPosition();
|
pos = GetScreen()->GetCrossHairPosition();
|
||||||
|
|
||||||
aDimension = new DIMENSION( GetBoard() );
|
aDimension = new DIMENSION( GetBoard() );
|
||||||
aDimension->m_Flags = IS_NEW;
|
aDimension->SetFlags( IS_NEW );
|
||||||
|
|
||||||
aDimension->SetLayer( getActiveLayer() );
|
aDimension->SetLayer( getActiveLayer() );
|
||||||
|
|
||||||
|
@ -276,7 +276,7 @@ DIMENSION* PCB_EDIT_FRAME::EditDimension( DIMENSION* aDimension, wxDC* aDC )
|
||||||
}
|
}
|
||||||
|
|
||||||
aDimension->Draw( DrawPanel, aDC, GR_OR );
|
aDimension->Draw( DrawPanel, aDC, GR_OR );
|
||||||
aDimension->m_Flags = 0;
|
aDimension->ClearFlags();
|
||||||
|
|
||||||
/* ADD this new item in list */
|
/* ADD this new item in list */
|
||||||
GetBoard()->Add( aDimension );
|
GetBoard()->Add( aDimension );
|
||||||
|
@ -380,7 +380,7 @@ void PCB_EDIT_FRAME::BeginMoveDimensionText( DIMENSION* aItem, wxDC* DC )
|
||||||
initialTextPosition = aItem->m_Text.m_Pos;
|
initialTextPosition = aItem->m_Text.m_Pos;
|
||||||
|
|
||||||
aItem->Draw( DrawPanel, DC, GR_XOR );
|
aItem->Draw( DrawPanel, DC, GR_XOR );
|
||||||
aItem->m_Flags |= IS_MOVED;
|
aItem->SetFlags( IS_MOVED );
|
||||||
aItem->DisplayInfo( this );
|
aItem->DisplayInfo( this );
|
||||||
|
|
||||||
GetScreen()->SetCrossHairPosition( aItem->m_Text.m_Pos );
|
GetScreen()->SetCrossHairPosition( aItem->m_Text.m_Pos );
|
||||||
|
@ -426,7 +426,7 @@ void AbortMoveDimensionText( EDA_DRAW_PANEL* aPanel, wxDC* aDC )
|
||||||
|
|
||||||
dimension->Draw( aPanel, aDC, GR_XOR );
|
dimension->Draw( aPanel, aDC, GR_XOR );
|
||||||
dimension->m_Text.m_Pos = initialTextPosition;
|
dimension->m_Text.m_Pos = initialTextPosition;
|
||||||
dimension->m_Flags = 0;
|
dimension->ClearFlags();
|
||||||
dimension->Draw( aPanel, aDC, GR_OR );
|
dimension->Draw( aPanel, aDC, GR_OR );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -448,5 +448,5 @@ void PCB_EDIT_FRAME::PlaceDimensionText( DIMENSION* aItem, wxDC* DC )
|
||||||
SaveCopyInUndoList( aItem, UR_CHANGED );
|
SaveCopyInUndoList( aItem, UR_CHANGED );
|
||||||
EXCHG( aItem->m_Text.m_Pos, initialTextPosition );
|
EXCHG( aItem->m_Text.m_Pos, initialTextPosition );
|
||||||
|
|
||||||
aItem->m_Flags = 0;
|
aItem->ClearFlags();
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,10 +148,10 @@ void AddSegmentToDragList( EDA_DRAW_PANEL* panel, wxDC* DC, int flag, TRACK* Tra
|
||||||
Track->SetState( IN_EDIT, ON );
|
Track->SetState( IN_EDIT, ON );
|
||||||
|
|
||||||
if( (flag & STARTPOINT) )
|
if( (flag & STARTPOINT) )
|
||||||
Track->m_Flags |= STARTPOINT;
|
Track->SetFlags( STARTPOINT );
|
||||||
|
|
||||||
if( (flag & ENDPOINT) )
|
if( (flag & ENDPOINT) )
|
||||||
Track->m_Flags |= ENDPOINT;
|
Track->SetFlags( ENDPOINT );
|
||||||
|
|
||||||
Track->Draw( panel, DC, GR_XOR );
|
Track->Draw( panel, DC, GR_XOR );
|
||||||
g_DragSegmentList.push_back( wrapper );
|
g_DragSegmentList.push_back( wrapper );
|
||||||
|
@ -177,15 +177,15 @@ void Collect_TrackSegmentsToDrag( EDA_DRAW_PANEL* panel, wxDC* DC,
|
||||||
if( ( LayerMask & track->ReturnMaskLayer() ) == 0 )
|
if( ( LayerMask & track->ReturnMaskLayer() ) == 0 )
|
||||||
continue; // Cannot be connected, not on the same layer
|
continue; // Cannot be connected, not on the same layer
|
||||||
|
|
||||||
if( track->m_Flags & IS_DRAGGED )
|
if( track->IsDragging() )
|
||||||
continue; // already put in list
|
continue; // already put in list
|
||||||
|
|
||||||
int flag = 0;
|
int flag = 0;
|
||||||
|
|
||||||
if( (track->m_Start == aRefPos) && ((track->m_Flags & STARTPOINT) == 0) )
|
if( (track->m_Start == aRefPos) && ((track->GetFlags() & STARTPOINT) == 0) )
|
||||||
flag |= STARTPOINT;
|
flag |= STARTPOINT;
|
||||||
|
|
||||||
if( track->m_End == aRefPos && ((track->m_Flags & ENDPOINT) == 0) )
|
if( track->m_End == aRefPos && ((track->GetFlags() & ENDPOINT) == 0) )
|
||||||
flag |= ENDPOINT;
|
flag |= ENDPOINT;
|
||||||
|
|
||||||
// Note: vias will be flagged with both STARTPOINT and ENDPOINT
|
// Note: vias will be flagged with both STARTPOINT and ENDPOINT
|
||||||
|
@ -213,7 +213,7 @@ void Collect_TrackSegmentsToDrag( EDA_DRAW_PANEL* panel, wxDC* DC,
|
||||||
void EraseDragList()
|
void EraseDragList()
|
||||||
{
|
{
|
||||||
for( unsigned ii = 0; ii < g_DragSegmentList.size(); ii++ )
|
for( unsigned ii = 0; ii < g_DragSegmentList.size(); ii++ )
|
||||||
g_DragSegmentList[ii].m_Segm->m_Flags = 0;
|
g_DragSegmentList[ii].m_Segm->ClearFlags();
|
||||||
|
|
||||||
g_DragSegmentList.clear();
|
g_DragSegmentList.clear();
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ void FOOTPRINT_EDIT_FRAME::Start_Move_EdgeMod( EDGE_MODULE* Edge, wxDC* DC )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Edge->Draw( DrawPanel, DC, GR_XOR );
|
Edge->Draw( DrawPanel, DC, GR_XOR );
|
||||||
Edge->m_Flags |= IS_MOVED;
|
Edge->SetFlags( IS_MOVED );
|
||||||
MoveVector.x = MoveVector.y = 0;
|
MoveVector.x = MoveVector.y = 0;
|
||||||
CursorInitialPosition = GetScreen()->GetCrossHairPosition();
|
CursorInitialPosition = GetScreen()->GetCrossHairPosition();
|
||||||
DrawPanel->SetMouseCapture( ShowCurrentOutlineWhileMoving, Abort_Move_ModuleOutline );
|
DrawPanel->SetMouseCapture( ShowCurrentOutlineWhileMoving, Abort_Move_ModuleOutline );
|
||||||
|
@ -60,7 +60,7 @@ void FOOTPRINT_EDIT_FRAME::Place_EdgeMod( EDGE_MODULE* aEdge )
|
||||||
aEdge->SetStart0( aEdge->GetStart0() - MoveVector );
|
aEdge->SetStart0( aEdge->GetStart0() - MoveVector );
|
||||||
aEdge->SetEnd0( aEdge->GetEnd0() - MoveVector );
|
aEdge->SetEnd0( aEdge->GetEnd0() - MoveVector );
|
||||||
|
|
||||||
aEdge->m_Flags = 0;
|
aEdge->ClearFlags();
|
||||||
DrawPanel->SetMouseCapture( NULL, NULL );
|
DrawPanel->SetMouseCapture( NULL, NULL );
|
||||||
SetCurItem( NULL );
|
SetCurItem( NULL );
|
||||||
OnModify();
|
OnModify();
|
||||||
|
@ -278,7 +278,7 @@ static void Abort_Move_ModuleOutline( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
else // On aborting, move existing outline to its initial position.
|
else // On aborting, move existing outline to its initial position.
|
||||||
{
|
{
|
||||||
Edge->Draw( Panel, DC, GR_XOR, MoveVector );
|
Edge->Draw( Panel, DC, GR_XOR, MoveVector );
|
||||||
Edge->m_Flags = 0;
|
Edge->ClearFlags();
|
||||||
Edge->Draw( Panel, DC, GR_OR );
|
Edge->Draw( Panel, DC, GR_OR );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -308,7 +308,7 @@ EDGE_MODULE* FOOTPRINT_EDIT_FRAME::Begin_Edge_Module( EDGE_MODULE* Edge,
|
||||||
module->m_Drawings.PushFront( Edge );
|
module->m_Drawings.PushFront( Edge );
|
||||||
|
|
||||||
// Update characteristics of the segment or arc.
|
// Update characteristics of the segment or arc.
|
||||||
Edge->m_Flags = IS_NEW;
|
Edge->SetFlags( IS_NEW );
|
||||||
Edge->SetAngle( angle );
|
Edge->SetAngle( angle );
|
||||||
Edge->SetShape( type_edge );
|
Edge->SetShape( type_edge );
|
||||||
|
|
||||||
|
@ -357,11 +357,11 @@ EDGE_MODULE* FOOTPRINT_EDIT_FRAME::Begin_Edge_Module( EDGE_MODULE* Edge,
|
||||||
|
|
||||||
// insert _after_ Edge, which is the same as inserting before Edge->Next()
|
// insert _after_ Edge, which is the same as inserting before Edge->Next()
|
||||||
module->m_Drawings.Insert( newedge, Edge->Next() );
|
module->m_Drawings.Insert( newedge, Edge->Next() );
|
||||||
Edge->m_Flags = 0;
|
Edge->ClearFlags();
|
||||||
|
|
||||||
Edge = newedge; // point now new item
|
Edge = newedge; // point now new item
|
||||||
|
|
||||||
Edge->m_Flags = IS_NEW;
|
Edge->SetFlags( IS_NEW );
|
||||||
Edge->SetWidth( g_ModuleSegmentWidth );
|
Edge->SetWidth( g_ModuleSegmentWidth );
|
||||||
Edge->SetStart( GetScreen()->GetCrossHairPosition() );
|
Edge->SetStart( GetScreen()->GetCrossHairPosition() );
|
||||||
Edge->SetEnd( Edge->GetStart() );
|
Edge->SetEnd( Edge->GetStart() );
|
||||||
|
@ -398,7 +398,7 @@ void FOOTPRINT_EDIT_FRAME::End_Edge_Module( EDGE_MODULE* Edge )
|
||||||
|
|
||||||
if( Edge )
|
if( Edge )
|
||||||
{
|
{
|
||||||
Edge->m_Flags = 0;
|
Edge->ClearFlags();
|
||||||
|
|
||||||
/* If last segment length is 0: remove it */
|
/* If last segment length is 0: remove it */
|
||||||
if( Edge->GetStart() == Edge->GetEnd() )
|
if( Edge->GetStart() == Edge->GetEnd() )
|
||||||
|
|
|
@ -319,10 +319,12 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
|
|
||||||
case ID_POPUP_PCB_PLACE_MOVED_TRACK_NODE:
|
case ID_POPUP_PCB_PLACE_MOVED_TRACK_NODE:
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
if( GetCurItem()->m_Flags & IS_DRAGGED )
|
|
||||||
|
if( GetCurItem()->IsDragging() )
|
||||||
{
|
{
|
||||||
PlaceDraggedOrMovedTrackSegment( (TRACK*) GetCurItem(), &dc );
|
PlaceDraggedOrMovedTrackSegment( (TRACK*) GetCurItem(), &dc );
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_PCB_SWITCH_TRACK_POSTURE:
|
case ID_POPUP_PCB_SWITCH_TRACK_POSTURE:
|
||||||
|
@ -346,7 +348,8 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
|
|
||||||
case ID_POPUP_PCB_PLACE_VIA:
|
case ID_POPUP_PCB_PLACE_VIA:
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
if( GetCurItem()->m_Flags & IS_DRAGGED )
|
|
||||||
|
if( GetCurItem()->IsDragging() )
|
||||||
{
|
{
|
||||||
PlaceDraggedOrMovedTrackSegment( (TRACK*) GetCurItem(), &dc );
|
PlaceDraggedOrMovedTrackSegment( (TRACK*) GetCurItem(), &dc );
|
||||||
}
|
}
|
||||||
|
@ -681,7 +684,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is a simple rotation, no other editing in progress */
|
/* This is a simple rotation, no other editing in progress */
|
||||||
if( !(GetCurItem()->m_Flags & IS_MOVED) )
|
if( !GetCurItem()->IsMoving() )
|
||||||
SaveCopyInUndoList(GetCurItem(), UR_ROTATED, ((MODULE*)GetCurItem())->m_Pos);
|
SaveCopyInUndoList(GetCurItem(), UR_ROTATED, ((MODULE*)GetCurItem())->m_Pos);
|
||||||
|
|
||||||
Rotate_Module( &dc, (MODULE*) GetCurItem(), g_RotationAngle, true );
|
Rotate_Module( &dc, (MODULE*) GetCurItem(), g_RotationAngle, true );
|
||||||
|
@ -709,7 +712,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is a simple rotation, no other editing in progress */
|
/* This is a simple rotation, no other editing in progress */
|
||||||
if( !(GetCurItem()->m_Flags & IS_MOVED) )
|
if( !GetCurItem()->IsMoving() )
|
||||||
SaveCopyInUndoList( GetCurItem(), UR_ROTATED_CLOCKWISE,
|
SaveCopyInUndoList( GetCurItem(), UR_ROTATED_CLOCKWISE,
|
||||||
((MODULE*)GetCurItem())->m_Pos );
|
((MODULE*)GetCurItem())->m_Pos );
|
||||||
|
|
||||||
|
@ -738,7 +741,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is a simple flip, no other editing in progress */
|
/* This is a simple flip, no other editing in progress */
|
||||||
if( !(GetCurItem()->m_Flags & IS_MOVED) )
|
if( !GetCurItem()->IsMoving() )
|
||||||
SaveCopyInUndoList(GetCurItem(), UR_FLIPPED, ((MODULE*)GetCurItem())->m_Pos);
|
SaveCopyInUndoList(GetCurItem(), UR_FLIPPED, ((MODULE*)GetCurItem())->m_Pos);
|
||||||
|
|
||||||
Change_Side_Module( (MODULE*) GetCurItem(), &dc );
|
Change_Side_Module( (MODULE*) GetCurItem(), &dc );
|
||||||
|
@ -958,7 +961,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_PCB_DELETE_DRAWING_LAYER:
|
case ID_POPUP_PCB_DELETE_DRAWING_LAYER:
|
||||||
if( GetCurItem()->m_Flags != 0 )
|
if( GetCurItem()->GetFlags() != 0 )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Delete_Drawings_All_Layer( GetCurItem()->GetLayer() );
|
Delete_Drawings_All_Layer( GetCurItem()->GetLayer() );
|
||||||
|
|
|
@ -51,7 +51,7 @@ void Abort_Edit_Pcb_Text( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
|
|
||||||
|
|
||||||
SwapData(TextePcb, &s_TextCopy);
|
SwapData(TextePcb, &s_TextCopy);
|
||||||
TextePcb->m_Flags = 0;
|
TextePcb->ClearFlags();
|
||||||
TextePcb->Draw( Panel, DC, GR_OR );
|
TextePcb->Draw( Panel, DC, GR_OR );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,12 +73,14 @@ void PCB_EDIT_FRAME::Place_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC )
|
||||||
if( TextePcb->IsNew() ) // If new: prepare undo command
|
if( TextePcb->IsNew() ) // If new: prepare undo command
|
||||||
{
|
{
|
||||||
SaveCopyInUndoList( TextePcb, UR_NEW );
|
SaveCopyInUndoList( TextePcb, UR_NEW );
|
||||||
TextePcb->m_Flags = 0;
|
TextePcb->ClearFlags();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( TextePcb->m_Flags == IS_MOVED ) // If moved only
|
if( TextePcb->IsMoving() ) // If moved only
|
||||||
|
{
|
||||||
SaveCopyInUndoList( TextePcb, UR_MOVED, TextePcb->m_Pos - s_TextCopy.m_Pos );
|
SaveCopyInUndoList( TextePcb, UR_MOVED, TextePcb->m_Pos - s_TextCopy.m_Pos );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Restore initial params
|
// Restore initial params
|
||||||
|
@ -89,7 +91,7 @@ void PCB_EDIT_FRAME::Place_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC )
|
||||||
// Restore current params
|
// Restore current params
|
||||||
}
|
}
|
||||||
|
|
||||||
TextePcb->m_Flags = 0;
|
TextePcb->ClearFlags();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -105,7 +107,7 @@ void PCB_EDIT_FRAME::StartMoveTextePcb( TEXTE_PCB* TextePcb, wxDC* DC )
|
||||||
s_TextCopy.Copy( TextePcb );
|
s_TextCopy.Copy( TextePcb );
|
||||||
|
|
||||||
TextePcb->Draw( DrawPanel, DC, GR_XOR );
|
TextePcb->Draw( DrawPanel, DC, GR_XOR );
|
||||||
TextePcb->m_Flags |= IS_MOVED;
|
TextePcb->SetFlags( IS_MOVED );
|
||||||
TextePcb->DisplayInfo( this );
|
TextePcb->DisplayInfo( this );
|
||||||
|
|
||||||
GetScreen()->SetCrossHairPosition( TextePcb->GetPosition() );
|
GetScreen()->SetCrossHairPosition( TextePcb->GetPosition() );
|
||||||
|
@ -159,7 +161,7 @@ TEXTE_PCB* PCB_EDIT_FRAME::Create_Texte_Pcb( wxDC* DC )
|
||||||
GetBoard()->Add( TextePcb );
|
GetBoard()->Add( TextePcb );
|
||||||
|
|
||||||
/* Update text properties. */
|
/* Update text properties. */
|
||||||
TextePcb->m_Flags = IS_NEW;
|
TextePcb->SetFlags( IS_NEW );
|
||||||
TextePcb->SetLayer( ( (PCB_SCREEN*) GetScreen() )->m_Active_Layer );
|
TextePcb->SetLayer( ( (PCB_SCREEN*) GetScreen() )->m_Active_Layer );
|
||||||
TextePcb->m_Mirror = false;
|
TextePcb->m_Mirror = false;
|
||||||
|
|
||||||
|
@ -204,10 +206,10 @@ void PCB_EDIT_FRAME::Rotate_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC )
|
||||||
TextePcb->Draw( DrawPanel, DC, drawmode );
|
TextePcb->Draw( DrawPanel, DC, drawmode );
|
||||||
TextePcb->DisplayInfo( this );
|
TextePcb->DisplayInfo( this );
|
||||||
|
|
||||||
if( TextePcb->m_Flags == 0 ) // i.e. not edited, or moved
|
if( TextePcb->GetFlags() == 0 ) // i.e. not edited, or moved
|
||||||
SaveCopyInUndoList( TextePcb, UR_ROTATED, TextePcb->m_Pos );
|
SaveCopyInUndoList( TextePcb, UR_ROTATED, TextePcb->m_Pos );
|
||||||
else // set flag edit, to show it was a complex command
|
else // set flag edit, to show it was a complex command
|
||||||
TextePcb->m_Flags |= IN_EDIT;
|
TextePcb->SetFlags( IN_EDIT );
|
||||||
|
|
||||||
OnModify();
|
OnModify();
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,7 +134,7 @@ void PCB_EDIT_FRAME::Edit_TrackSegm_Width( wxDC* aDC, TRACK* aTrackItem )
|
||||||
PICKED_ITEMS_LIST itemsListPicker;
|
PICKED_ITEMS_LIST itemsListPicker;
|
||||||
bool change = SetTrackSegmentWidth( aTrackItem, &itemsListPicker, false );
|
bool change = SetTrackSegmentWidth( aTrackItem, &itemsListPicker, false );
|
||||||
|
|
||||||
if( change == 0 || aTrackItem->m_Flags )
|
if( change == 0 || aTrackItem->GetFlags() )
|
||||||
return; // No change
|
return; // No change
|
||||||
|
|
||||||
// The segment has changed: redraw it and save it in undo list
|
// The segment has changed: redraw it and save it in undo list
|
||||||
|
|
|
@ -33,7 +33,7 @@ void PCB_EDIT_FRAME::Start_Move_DrawItem( DRAWSEGMENT* drawitem, wxDC* DC )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
drawitem->Draw( DrawPanel, DC, GR_XOR );
|
drawitem->Draw( DrawPanel, DC, GR_XOR );
|
||||||
drawitem->m_Flags |= IS_MOVED;
|
drawitem->SetFlags( IS_MOVED );
|
||||||
s_InitialPosition = s_LastPosition = GetScreen()->GetCrossHairPosition();
|
s_InitialPosition = s_LastPosition = GetScreen()->GetCrossHairPosition();
|
||||||
drawitem->DisplayInfo( this );
|
drawitem->DisplayInfo( this );
|
||||||
DrawPanel->SetMouseCapture( Move_Segment, Abort_EditEdge );
|
DrawPanel->SetMouseCapture( Move_Segment, Abort_EditEdge );
|
||||||
|
@ -50,7 +50,7 @@ void PCB_EDIT_FRAME::Place_DrawItem( DRAWSEGMENT* drawitem, wxDC* DC )
|
||||||
if( drawitem == NULL )
|
if( drawitem == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
drawitem->m_Flags = 0;
|
drawitem->ClearFlags();
|
||||||
SaveCopyInUndoList(drawitem, UR_MOVED, s_LastPosition - s_InitialPosition);
|
SaveCopyInUndoList(drawitem, UR_MOVED, s_LastPosition - s_InitialPosition);
|
||||||
drawitem->Draw( DrawPanel, DC, GR_OR );
|
drawitem->Draw( DrawPanel, DC, GR_OR );
|
||||||
DrawPanel->SetMouseCapture( NULL, NULL );
|
DrawPanel->SetMouseCapture( NULL, NULL );
|
||||||
|
@ -106,10 +106,10 @@ void PCB_EDIT_FRAME::Delete_Segment_Edge( DRAWSEGMENT* Segment, wxDC* DC )
|
||||||
DisplayOpt.DisplayDrawItems = track_fill_copy;
|
DisplayOpt.DisplayDrawItems = track_fill_copy;
|
||||||
SetCurItem( NULL );
|
SetCurItem( NULL );
|
||||||
}
|
}
|
||||||
else if( Segment->m_Flags == 0 )
|
else if( Segment->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
Segment->Draw( DrawPanel, DC, GR_XOR );
|
Segment->Draw( DrawPanel, DC, GR_XOR );
|
||||||
Segment->m_Flags = 0;
|
Segment->ClearFlags();
|
||||||
SaveCopyInUndoList(Segment, UR_DELETED);
|
SaveCopyInUndoList(Segment, UR_DELETED);
|
||||||
Segment->UnLink();
|
Segment->UnLink();
|
||||||
SetCurItem( NULL );
|
SetCurItem( NULL );
|
||||||
|
@ -195,7 +195,7 @@ static void Abort_EditEdge( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
Panel->GetScreen()->SetCrossHairPosition( s_InitialPosition );
|
Panel->GetScreen()->SetCrossHairPosition( s_InitialPosition );
|
||||||
Panel->m_mouseCaptureCallback( Panel, DC, wxDefaultPosition, true );
|
Panel->m_mouseCaptureCallback( Panel, DC, wxDefaultPosition, true );
|
||||||
Panel->GetScreen()->SetCrossHairPosition( pos );
|
Panel->GetScreen()->SetCrossHairPosition( pos );
|
||||||
Segment->m_Flags = 0;
|
Segment->ClearFlags();
|
||||||
Segment->Draw( Panel, DC, GR_OR );
|
Segment->Draw( Panel, DC, GR_OR );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ DRAWSEGMENT* PCB_EDIT_FRAME::Begin_DrawSegment( DRAWSEGMENT* Segment, int shape,
|
||||||
if( Segment == NULL ) /* Create new trace. */
|
if( Segment == NULL ) /* Create new trace. */
|
||||||
{
|
{
|
||||||
SetCurItem( Segment = new DRAWSEGMENT( GetBoard() ) );
|
SetCurItem( Segment = new DRAWSEGMENT( GetBoard() ) );
|
||||||
Segment->m_Flags = IS_NEW;
|
Segment->SetFlags( IS_NEW );
|
||||||
Segment->SetLayer( getActiveLayer() );
|
Segment->SetLayer( getActiveLayer() );
|
||||||
Segment->SetWidth( s_large );
|
Segment->SetWidth( s_large );
|
||||||
Segment->SetShape( shape );
|
Segment->SetShape( shape );
|
||||||
|
@ -243,7 +243,7 @@ DRAWSEGMENT* PCB_EDIT_FRAME::Begin_DrawSegment( DRAWSEGMENT* Segment, int shape,
|
||||||
GetBoard()->Add( Segment );
|
GetBoard()->Add( Segment );
|
||||||
|
|
||||||
OnModify();
|
OnModify();
|
||||||
Segment->m_Flags = 0;
|
Segment->ClearFlags();
|
||||||
|
|
||||||
Segment->Draw( DrawPanel, DC, GR_OR );
|
Segment->Draw( DrawPanel, DC, GR_OR );
|
||||||
|
|
||||||
|
@ -251,7 +251,7 @@ DRAWSEGMENT* PCB_EDIT_FRAME::Begin_DrawSegment( DRAWSEGMENT* Segment, int shape,
|
||||||
|
|
||||||
SetCurItem( Segment = new DRAWSEGMENT( GetBoard() ) );
|
SetCurItem( Segment = new DRAWSEGMENT( GetBoard() ) );
|
||||||
|
|
||||||
Segment->m_Flags = IS_NEW;
|
Segment->SetFlags( IS_NEW );
|
||||||
Segment->SetLayer( DrawItem->GetLayer() );
|
Segment->SetLayer( DrawItem->GetLayer() );
|
||||||
Segment->SetWidth( s_large );
|
Segment->SetWidth( s_large );
|
||||||
Segment->SetShape( DrawItem->GetShape() );
|
Segment->SetShape( DrawItem->GetShape() );
|
||||||
|
@ -287,7 +287,7 @@ void PCB_EDIT_FRAME::End_Edge( DRAWSEGMENT* Segment, wxDC* DC )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Segment->m_Flags = 0;
|
Segment->ClearFlags();
|
||||||
GetBoard()->Add( Segment );
|
GetBoard()->Add( Segment );
|
||||||
OnModify();
|
OnModify();
|
||||||
SaveCopyInUndoList( Segment, UR_NEW );
|
SaveCopyInUndoList( Segment, UR_NEW );
|
||||||
|
|
|
@ -96,7 +96,7 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
|
||||||
|
|
||||||
/* create the via */
|
/* create the via */
|
||||||
SEGVIA* via = new SEGVIA( GetBoard() );
|
SEGVIA* via = new SEGVIA( GetBoard() );
|
||||||
via->m_Flags = IS_NEW;
|
via->SetFlags( IS_NEW );
|
||||||
via->m_Shape = GetBoard()->GetDesignSettings().m_CurrentViaType;
|
via->m_Shape = GetBoard()->GetDesignSettings().m_CurrentViaType;
|
||||||
via->m_Width = GetBoard()->GetCurrentViaSize();
|
via->m_Width = GetBoard()->GetCurrentViaSize();
|
||||||
via->SetNet( GetBoard()->GetHighLightNetCode() );
|
via->SetNet( GetBoard()->GetHighLightNetCode() );
|
||||||
|
|
|
@ -114,7 +114,7 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC )
|
||||||
HighLight( aDC );
|
HighLight( aDC );
|
||||||
|
|
||||||
g_CurrentTrackList.PushBack( new TRACK( GetBoard() ) );
|
g_CurrentTrackList.PushBack( new TRACK( GetBoard() ) );
|
||||||
g_CurrentTrackSegment->m_Flags = IS_NEW;
|
g_CurrentTrackSegment->SetFlags( IS_NEW );
|
||||||
|
|
||||||
GetBoard()->SetHighLightNet( 0 );
|
GetBoard()->SetHighLightNet( 0 );
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC )
|
||||||
|
|
||||||
TRACK* newTrack = g_CurrentTrackSegment->Copy();
|
TRACK* newTrack = g_CurrentTrackSegment->Copy();
|
||||||
g_CurrentTrackList.PushBack( newTrack );
|
g_CurrentTrackList.PushBack( newTrack );
|
||||||
newTrack->m_Flags = IS_NEW;
|
newTrack->SetFlags( IS_NEW );
|
||||||
|
|
||||||
newTrack->SetState( BEGIN_ONPAD | END_ONPAD, OFF );
|
newTrack->SetState( BEGIN_ONPAD | END_ONPAD, OFF );
|
||||||
|
|
||||||
|
@ -494,7 +494,7 @@ bool PCB_EDIT_FRAME::End_Route( TRACK* aTrack, wxDC* aDC )
|
||||||
|
|
||||||
for( track = firstTrack; track && i < newCount; ++i, track = track->Next() )
|
for( track = firstTrack; track && i < newCount; ++i, track = track->Next() )
|
||||||
{
|
{
|
||||||
track->m_Flags = 0;
|
track->ClearFlags();
|
||||||
track->SetState( BUSY, OFF );
|
track->SetState( BUSY, OFF );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ TEXTE_MODULE* PCB_BASE_FRAME::CreateTextModule( MODULE* Module, wxDC* DC )
|
||||||
if( Module )
|
if( Module )
|
||||||
Module->m_Drawings.PushFront( Text );
|
Module->m_Drawings.PushFront( Text );
|
||||||
|
|
||||||
Text->m_Flags = IS_NEW;
|
Text->SetFlags( IS_NEW );
|
||||||
|
|
||||||
Text->m_Text = wxT( "text" );
|
Text->m_Text = wxT( "text" );
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ TEXTE_MODULE* PCB_BASE_FRAME::CreateTextModule( MODULE* Module, wxDC* DC )
|
||||||
InstallTextModOptionsFrame( Text, NULL );
|
InstallTextModOptionsFrame( Text, NULL );
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
|
|
||||||
Text->m_Flags = 0;
|
Text->ClearFlags();
|
||||||
|
|
||||||
if( DC )
|
if( DC )
|
||||||
Text->Draw( DrawPanel, DC, GR_OR );
|
Text->Draw( DrawPanel, DC, GR_OR );
|
||||||
|
@ -82,7 +82,7 @@ void PCB_BASE_FRAME::RotateTextModule( TEXTE_MODULE* Text, wxDC* DC )
|
||||||
|
|
||||||
MODULE* module = (MODULE*) Text->GetParent();
|
MODULE* module = (MODULE*) Text->GetParent();
|
||||||
|
|
||||||
if( module && module->m_Flags == 0 && Text->m_Flags == 0 ) // prepare undo command
|
if( module && module->GetFlags() == 0 && Text->GetFlags() == 0 ) // prepare undo command
|
||||||
{
|
{
|
||||||
if( this->m_Ident == PCB_FRAME )
|
if( this->m_Ident == PCB_FRAME )
|
||||||
SaveCopyInUndoList( module, UR_CHANGED );
|
SaveCopyInUndoList( module, UR_CHANGED );
|
||||||
|
@ -151,7 +151,7 @@ static void AbortMoveTextModule( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
|
|
||||||
// If the text was moved (the move does not change internal data)
|
// If the text was moved (the move does not change internal data)
|
||||||
// it could be rotated while moving. So set old value for orientation
|
// it could be rotated while moving. So set old value for orientation
|
||||||
if( (Text->m_Flags & IS_MOVED) )
|
if( Text->IsMoving() )
|
||||||
Text->m_Orient = TextInitialOrientation;
|
Text->m_Orient = TextInitialOrientation;
|
||||||
|
|
||||||
/* Redraw the text */
|
/* Redraw the text */
|
||||||
|
@ -160,8 +160,8 @@ static void AbortMoveTextModule( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
// leave it at (0,0) so we can use it Rotate when not moving.
|
// leave it at (0,0) so we can use it Rotate when not moving.
|
||||||
MoveVector.x = MoveVector.y = 0;
|
MoveVector.x = MoveVector.y = 0;
|
||||||
|
|
||||||
Text->m_Flags = 0;
|
Text->ClearFlags();
|
||||||
Module->m_Flags = 0;
|
Module->ClearFlags();
|
||||||
|
|
||||||
screen->SetCurItem( NULL );
|
screen->SetCurItem( NULL );
|
||||||
}
|
}
|
||||||
|
@ -178,8 +178,8 @@ void PCB_BASE_FRAME::StartMoveTexteModule( TEXTE_MODULE* Text, wxDC* DC )
|
||||||
|
|
||||||
Module = (MODULE*) Text->GetParent();
|
Module = (MODULE*) Text->GetParent();
|
||||||
|
|
||||||
Text->m_Flags |= IS_MOVED;
|
Text->SetFlags( IS_MOVED );
|
||||||
Module->m_Flags |= IN_EDIT;
|
Module->SetFlags( IN_EDIT );
|
||||||
|
|
||||||
MoveVector.x = MoveVector.y = 0;
|
MoveVector.x = MoveVector.y = 0;
|
||||||
|
|
||||||
|
@ -227,8 +227,8 @@ void PCB_BASE_FRAME::PlaceTexteModule( TEXTE_MODULE* Text, wxDC* DC )
|
||||||
wxPoint textRelPos = Text->m_Pos - Module->m_Pos;
|
wxPoint textRelPos = Text->m_Pos - Module->m_Pos;
|
||||||
RotatePoint( &textRelPos, -Module->m_Orient );
|
RotatePoint( &textRelPos, -Module->m_Orient );
|
||||||
Text->SetPos0( textRelPos );
|
Text->SetPos0( textRelPos );
|
||||||
Text->m_Flags = 0;
|
Text->ClearFlags();
|
||||||
Module->m_Flags = 0;
|
Module->ClearFlags();
|
||||||
Module->m_LastEdit_Time = time( NULL );
|
Module->m_LastEdit_Time = time( NULL );
|
||||||
OnModify();
|
OnModify();
|
||||||
|
|
||||||
|
|
|
@ -203,9 +203,9 @@ void PCB_BASE_FRAME::Global_Import_Pad_Settings( D_PAD* aPad, bool aDraw )
|
||||||
/* Erase module on screen */
|
/* Erase module on screen */
|
||||||
if( aDraw )
|
if( aDraw )
|
||||||
{
|
{
|
||||||
Module->m_Flags |= DO_NOT_DRAW;
|
Module->SetFlags( DO_NOT_DRAW );
|
||||||
DrawPanel->RefreshDrawingRect( Module->GetBoundingBox() );
|
DrawPanel->RefreshDrawingRect( Module->GetBoundingBox() );
|
||||||
Module->m_Flags &= ~DO_NOT_DRAW;
|
Module->ClearFlags( DO_NOT_DRAW );
|
||||||
}
|
}
|
||||||
|
|
||||||
D_PAD* pt_pad = (D_PAD*) Module->m_Pads;
|
D_PAD* pt_pad = (D_PAD*) Module->m_Pads;
|
||||||
|
|
|
@ -197,8 +197,8 @@ void TraceFilledCircle( BOARD* Pcb,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
cx -= Pcb->GetBoundingBox().m_Pos.x;
|
cx -= Pcb->GetBoundingBox().GetX();
|
||||||
cy -= Pcb->GetBoundingBox().m_Pos.y;
|
cy -= Pcb->GetBoundingBox().GetY();
|
||||||
|
|
||||||
distmin = radius;
|
distmin = radius;
|
||||||
|
|
||||||
|
@ -298,10 +298,10 @@ void TraceSegmentPcb( BOARD* Pcb, TRACK* pt_segm, int color, int marge, int op_l
|
||||||
half_width = ( pt_segm->m_Width / 2 ) + marge;
|
half_width = ( pt_segm->m_Width / 2 ) + marge;
|
||||||
|
|
||||||
/* Calculate the bounding rectangle of the segment (if H, V or Via) */
|
/* Calculate the bounding rectangle of the segment (if H, V or Via) */
|
||||||
ux0 = pt_segm->m_Start.x - Pcb->GetBoundingBox().m_Pos.x;
|
ux0 = pt_segm->m_Start.x - Pcb->GetBoundingBox().GetX();
|
||||||
uy0 = pt_segm->m_Start.y - Pcb->GetBoundingBox().m_Pos.y;
|
uy0 = pt_segm->m_Start.y - Pcb->GetBoundingBox().GetY();
|
||||||
ux1 = pt_segm->m_End.x - Pcb->GetBoundingBox().m_Pos.x;
|
ux1 = pt_segm->m_End.x - Pcb->GetBoundingBox().GetX();
|
||||||
uy1 = pt_segm->m_End.y - Pcb->GetBoundingBox().m_Pos.y;
|
uy1 = pt_segm->m_End.y - Pcb->GetBoundingBox().GetY();
|
||||||
|
|
||||||
/* Test if VIA (filled circle was drawn) */
|
/* Test if VIA (filled circle was drawn) */
|
||||||
if( pt_segm->Type() == PCB_VIA_T )
|
if( pt_segm->Type() == PCB_VIA_T )
|
||||||
|
@ -558,10 +558,10 @@ void TraceFilledRectangle( BOARD* Pcb, int ux0, int uy0, int ux1, int uy1,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ux0 -= Pcb->GetBoundingBox().m_Pos.x;
|
ux0 -= Pcb->GetBoundingBox().GetX();
|
||||||
uy0 -= Pcb->GetBoundingBox().m_Pos.y;
|
uy0 -= Pcb->GetBoundingBox().GetY();
|
||||||
ux1 -= Pcb->GetBoundingBox().m_Pos.x;
|
ux1 -= Pcb->GetBoundingBox().GetX();
|
||||||
uy1 -= Pcb->GetBoundingBox().m_Pos.y;
|
uy1 -= Pcb->GetBoundingBox().GetY();
|
||||||
|
|
||||||
/* Calculating limits coord cells belonging to the rectangle. */
|
/* Calculating limits coord cells belonging to the rectangle. */
|
||||||
row_max = uy1 / Board.m_GridRouting;
|
row_max = uy1 / Board.m_GridRouting;
|
||||||
|
@ -650,10 +650,10 @@ void TraceFilledRectangle( BOARD* Pcb, int ux0, int uy0, int ux1, int uy1,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ux0 -= Pcb->GetBoundingBox().m_Pos.x;
|
ux0 -= Pcb->GetBoundingBox().GetX();
|
||||||
uy0 -= Pcb->GetBoundingBox().m_Pos.y;
|
uy0 -= Pcb->GetBoundingBox().GetY();
|
||||||
ux1 -= Pcb->GetBoundingBox().m_Pos.x;
|
ux1 -= Pcb->GetBoundingBox().GetX();
|
||||||
uy1 -= Pcb->GetBoundingBox().m_Pos.y;
|
uy1 -= Pcb->GetBoundingBox().GetY();
|
||||||
|
|
||||||
cx = (ux0 + ux1) / 2;
|
cx = (ux0 + ux1) / 2;
|
||||||
cy = (uy0 + uy1) / 2;
|
cy = (uy0 + uy1) / 2;
|
||||||
|
|
|
@ -90,7 +90,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
|
||||||
if( aHotkeyCode == 0 )
|
if( aHotkeyCode == 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool itemCurrentlyEdited = (GetCurItem() && GetCurItem()->m_Flags);
|
bool itemCurrentlyEdited = (GetCurItem() && GetCurItem()->GetFlags());
|
||||||
MODULE* module = NULL;
|
MODULE* module = NULL;
|
||||||
int evt_type = 0; //Used to post a wxCommandEvent on demand
|
int evt_type = 0; //Used to post a wxCommandEvent on demand
|
||||||
PCB_SCREEN* screen = GetScreen();
|
PCB_SCREEN* screen = GetScreen();
|
||||||
|
@ -625,7 +625,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
|
||||||
bool PCB_EDIT_FRAME::OnHotkeyDeleteItem( wxDC* aDC )
|
bool PCB_EDIT_FRAME::OnHotkeyDeleteItem( wxDC* aDC )
|
||||||
{
|
{
|
||||||
BOARD_ITEM* item = GetCurItem();
|
BOARD_ITEM* item = GetCurItem();
|
||||||
bool ItemFree = (item == NULL) || (item->m_Flags == 0);
|
bool ItemFree = (item == NULL) || (item->GetFlags() == 0);
|
||||||
|
|
||||||
switch( GetToolId() )
|
switch( GetToolId() )
|
||||||
{
|
{
|
||||||
|
@ -696,7 +696,7 @@ bool PCB_EDIT_FRAME::OnHotkeyDeleteItem( wxDC* aDC )
|
||||||
bool PCB_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand )
|
bool PCB_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand )
|
||||||
{
|
{
|
||||||
BOARD_ITEM* item = GetCurItem();
|
BOARD_ITEM* item = GetCurItem();
|
||||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
bool itemCurrentlyEdited = item && item->GetFlags();
|
||||||
|
|
||||||
if( itemCurrentlyEdited )
|
if( itemCurrentlyEdited )
|
||||||
return false;
|
return false;
|
||||||
|
@ -791,7 +791,7 @@ bool PCB_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand )
|
||||||
bool PCB_EDIT_FRAME::OnHotkeyMoveItem( int aIdCommand )
|
bool PCB_EDIT_FRAME::OnHotkeyMoveItem( int aIdCommand )
|
||||||
{
|
{
|
||||||
BOARD_ITEM* item = GetCurItem();
|
BOARD_ITEM* item = GetCurItem();
|
||||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
bool itemCurrentlyEdited = item && item->GetFlags();
|
||||||
|
|
||||||
if( itemCurrentlyEdited )
|
if( itemCurrentlyEdited )
|
||||||
return false;
|
return false;
|
||||||
|
@ -902,7 +902,7 @@ bool PCB_EDIT_FRAME::OnHotkeyPlaceItem( wxDC* aDC )
|
||||||
{
|
{
|
||||||
BOARD_ITEM* item = GetCurItem();
|
BOARD_ITEM* item = GetCurItem();
|
||||||
bool no_tool = GetToolId() == ID_NO_TOOL_SELECTED;
|
bool no_tool = GetToolId() == ID_NO_TOOL_SELECTED;
|
||||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
bool itemCurrentlyEdited = item && item->GetFlags();
|
||||||
|
|
||||||
DrawPanel->m_AutoPAN_Request = false;
|
DrawPanel->m_AutoPAN_Request = false;
|
||||||
|
|
||||||
|
@ -915,7 +915,7 @@ bool PCB_EDIT_FRAME::OnHotkeyPlaceItem( wxDC* aDC )
|
||||||
{
|
{
|
||||||
case PCB_TRACE_T:
|
case PCB_TRACE_T:
|
||||||
case PCB_VIA_T:
|
case PCB_VIA_T:
|
||||||
if( item->m_Flags & IS_DRAGGED )
|
if( item->IsDragging() )
|
||||||
PlaceDraggedOrMovedTrackSegment( (TRACK*) item, aDC );
|
PlaceDraggedOrMovedTrackSegment( (TRACK*) item, aDC );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -963,7 +963,7 @@ bool PCB_EDIT_FRAME::OnHotkeyPlaceItem( wxDC* aDC )
|
||||||
bool PCB_EDIT_FRAME::OnHotkeyRotateItem( int aIdCommand )
|
bool PCB_EDIT_FRAME::OnHotkeyRotateItem( int aIdCommand )
|
||||||
{
|
{
|
||||||
BOARD_ITEM* item = GetCurItem();
|
BOARD_ITEM* item = GetCurItem();
|
||||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
bool itemCurrentlyEdited = item && item->GetFlags();
|
||||||
int evt_type = 0; // Used to post a wxCommandEvent on demand
|
int evt_type = 0; // Used to post a wxCommandEvent on demand
|
||||||
|
|
||||||
if( !itemCurrentlyEdited )
|
if( !itemCurrentlyEdited )
|
||||||
|
|
|
@ -27,7 +27,7 @@ void FOOTPRINT_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPos
|
||||||
|
|
||||||
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
||||||
BOARD_ITEM* item = GetCurItem();
|
BOARD_ITEM* item = GetCurItem();
|
||||||
bool ItemFree = (item == 0) || (item->m_Flags == 0);
|
bool ItemFree = (item == 0) || (item->GetFlags() == 0);
|
||||||
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
|
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
|
||||||
cmd.SetEventObject( this );
|
cmd.SetEventObject( this );
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ void FOOTPRINT_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPos
|
||||||
bool FOOTPRINT_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand )
|
bool FOOTPRINT_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand )
|
||||||
{
|
{
|
||||||
BOARD_ITEM* item = GetCurItem();
|
BOARD_ITEM* item = GetCurItem();
|
||||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
bool itemCurrentlyEdited = item && item->GetFlags();
|
||||||
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
||||||
|
|
||||||
if( itemCurrentlyEdited || blockActive )
|
if( itemCurrentlyEdited || blockActive )
|
||||||
|
@ -174,7 +174,7 @@ bool FOOTPRINT_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand )
|
||||||
bool FOOTPRINT_EDIT_FRAME::OnHotkeyDeleteItem( int aIdCommand )
|
bool FOOTPRINT_EDIT_FRAME::OnHotkeyDeleteItem( int aIdCommand )
|
||||||
{
|
{
|
||||||
BOARD_ITEM* item = GetCurItem();
|
BOARD_ITEM* item = GetCurItem();
|
||||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
bool itemCurrentlyEdited = item && item->GetFlags();
|
||||||
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
||||||
|
|
||||||
if( itemCurrentlyEdited || blockActive )
|
if( itemCurrentlyEdited || blockActive )
|
||||||
|
@ -229,7 +229,7 @@ bool FOOTPRINT_EDIT_FRAME::OnHotkeyDeleteItem( int aIdCommand )
|
||||||
bool FOOTPRINT_EDIT_FRAME::OnHotkeyMoveItem( int aIdCommand )
|
bool FOOTPRINT_EDIT_FRAME::OnHotkeyMoveItem( int aIdCommand )
|
||||||
{
|
{
|
||||||
BOARD_ITEM* item = GetCurItem();
|
BOARD_ITEM* item = GetCurItem();
|
||||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
bool itemCurrentlyEdited = item && item->GetFlags();
|
||||||
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
||||||
|
|
||||||
if( itemCurrentlyEdited || blockActive )
|
if( itemCurrentlyEdited || blockActive )
|
||||||
|
@ -284,7 +284,7 @@ bool FOOTPRINT_EDIT_FRAME::OnHotkeyMoveItem( int aIdCommand )
|
||||||
bool FOOTPRINT_EDIT_FRAME::OnHotkeyRotateItem( int aIdCommand )
|
bool FOOTPRINT_EDIT_FRAME::OnHotkeyRotateItem( int aIdCommand )
|
||||||
{
|
{
|
||||||
BOARD_ITEM* item = GetCurItem();
|
BOARD_ITEM* item = GetCurItem();
|
||||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
bool itemCurrentlyEdited = item && item->GetFlags();
|
||||||
int evt_type = 0; // Used to post a wxCommandEvent on demand
|
int evt_type = 0; // Used to post a wxCommandEvent on demand
|
||||||
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ bool FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD( MODULE* aModule )
|
||||||
|
|
||||||
GetBoard()->Add( aModule );
|
GetBoard()->Add( aModule );
|
||||||
|
|
||||||
aModule->m_Flags = 0;
|
aModule->ClearFlags();
|
||||||
|
|
||||||
GetBoard()->BuildListOfNets();
|
GetBoard()->BuildListOfNets();
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ MODULE* PCB_BASE_FRAME::Load_Module_From_Library( const wxString& library, wxDC*
|
||||||
lastCommponentName = moduleName;
|
lastCommponentName = moduleName;
|
||||||
AddHistoryComponentName( HistoryList, moduleName );
|
AddHistoryComponentName( HistoryList, moduleName );
|
||||||
|
|
||||||
module->m_Flags = IS_NEW;
|
module->SetFlags( IS_NEW );
|
||||||
module->m_Link = 0;
|
module->m_Link = 0;
|
||||||
module->SetTimeStamp( GetNewTimeStamp() );
|
module->SetTimeStamp( GetNewTimeStamp() );
|
||||||
GetBoard()->m_Status_Pcb = 0;
|
GetBoard()->m_Status_Pcb = 0;
|
||||||
|
|
|
@ -120,7 +120,7 @@ bool Magnetize( BOARD* m_Pcb, PCB_EDIT_FRAME* frame, int aCurrentTool, wxSize gr
|
||||||
|
|
||||||
// D( printf( "currTrack=%p currItem=%p currTrack->Type()=%d currItem->Type()=%d\n", currTrack, currItem, currTrack ? currTrack->Type() : 0, currItem ? currItem->Type() : 0 ); )
|
// D( printf( "currTrack=%p currItem=%p currTrack->Type()=%d currItem->Type()=%d\n", currTrack, currItem, currTrack ? currTrack->Type() : 0, currItem ? currItem->Type() : 0 ); )
|
||||||
|
|
||||||
if( !currTrack && currItem && currItem->Type()==PCB_VIA_T && currItem->m_Flags )
|
if( !currTrack && currItem && currItem->Type()==PCB_VIA_T && currItem->GetFlags() )
|
||||||
{
|
{
|
||||||
// moving a VIA
|
// moving a VIA
|
||||||
currTrack = (TRACK*) currItem;
|
currTrack = (TRACK*) currItem;
|
||||||
|
|
|
@ -139,11 +139,11 @@ void TARGET_PROPERTIES_DIALOG_EDITOR::OnOkClick( wxCommandEvent& event )
|
||||||
m_Target->Draw( m_Parent->DrawPanel, m_DC, GR_XOR );
|
m_Target->Draw( m_Parent->DrawPanel, m_DC, GR_XOR );
|
||||||
|
|
||||||
// Save old item in undo list, if is is not currently edited (will be later if so)
|
// Save old item in undo list, if is is not currently edited (will be later if so)
|
||||||
if( m_Target->m_Flags == 0 )
|
if( m_Target->GetFlags() == 0 )
|
||||||
m_Parent->SaveCopyInUndoList( m_Target, UR_CHANGED );
|
m_Parent->SaveCopyInUndoList( m_Target, UR_CHANGED );
|
||||||
|
|
||||||
if( m_Target->m_Flags != 0 ) // other edition in progress (MOVE, NEW ..)
|
if( m_Target->GetFlags() != 0 ) // other edition in progress (MOVE, NEW ..)
|
||||||
m_Target->m_Flags |= IN_EDIT; // set flag in edit to force
|
m_Target->SetFlags( IN_EDIT ); // set flag in edit to force
|
||||||
// undo/redo/abort proper operation
|
// undo/redo/abort proper operation
|
||||||
|
|
||||||
m_Target->SetWidth( m_MireWidthCtrl->GetValue() );
|
m_Target->SetWidth( m_MireWidthCtrl->GetValue() );
|
||||||
|
@ -151,7 +151,7 @@ void TARGET_PROPERTIES_DIALOG_EDITOR::OnOkClick( wxCommandEvent& event )
|
||||||
m_Target->SetSize( m_MireSizeCtrl->GetValue() );
|
m_Target->SetSize( m_MireSizeCtrl->GetValue() );
|
||||||
m_Target->SetShape( m_MireShape->GetSelection() ? 1 : 0 );
|
m_Target->SetShape( m_MireShape->GetSelection() ? 1 : 0 );
|
||||||
|
|
||||||
m_Target->Draw( m_Parent->DrawPanel, m_DC, ( m_Target->m_Flags & IS_MOVED ) ? GR_XOR : GR_OR );
|
m_Target->Draw( m_Parent->DrawPanel, m_DC, ( m_Target->IsMoving() ) ? GR_XOR : GR_OR );
|
||||||
|
|
||||||
m_Parent->OnModify();
|
m_Parent->OnModify();
|
||||||
EndModal( 1 );
|
EndModal( 1 );
|
||||||
|
@ -191,14 +191,14 @@ static void AbortMoveAndEditTarget( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
}
|
}
|
||||||
else // it is an existing item: retrieve initial values of parameters
|
else // it is an existing item: retrieve initial values of parameters
|
||||||
{
|
{
|
||||||
if( ( target->m_Flags & (IN_EDIT | IS_MOVED) ) )
|
if( ( target->GetFlags() & (IN_EDIT | IS_MOVED) ) )
|
||||||
{
|
{
|
||||||
target->SetPosition( s_TargetCopy.GetPosition() );
|
target->SetPosition( s_TargetCopy.GetPosition() );
|
||||||
target->SetWidth( s_TargetCopy.GetWidth() );
|
target->SetWidth( s_TargetCopy.GetWidth() );
|
||||||
target->SetSize( s_TargetCopy.GetSize() );
|
target->SetSize( s_TargetCopy.GetSize() );
|
||||||
target->SetShape( s_TargetCopy.GetShape() );
|
target->SetShape( s_TargetCopy.GetShape() );
|
||||||
}
|
}
|
||||||
target->m_Flags = 0;
|
target->ClearFlags();
|
||||||
target->Draw( Panel, DC, GR_OR );
|
target->Draw( Panel, DC, GR_OR );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,7 @@ PCB_TARGET* PCB_EDIT_FRAME::CreateTarget( wxDC* DC )
|
||||||
{
|
{
|
||||||
PCB_TARGET* target = new PCB_TARGET( GetBoard() );
|
PCB_TARGET* target = new PCB_TARGET( GetBoard() );
|
||||||
|
|
||||||
target->m_Flags = IS_NEW;
|
target->SetFlags( IS_NEW );
|
||||||
|
|
||||||
GetBoard()->Add( target );
|
GetBoard()->Add( target );
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ void PCB_EDIT_FRAME::BeginMoveTarget( PCB_TARGET* aTarget, wxDC* DC )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
s_TargetCopy = *aTarget;
|
s_TargetCopy = *aTarget;
|
||||||
aTarget->m_Flags |= IS_MOVED;
|
aTarget->SetFlags( IS_MOVED );
|
||||||
DrawPanel->SetMouseCapture( ShowTargetShapeWhileMovingMouse, AbortMoveAndEditTarget );
|
DrawPanel->SetMouseCapture( ShowTargetShapeWhileMovingMouse, AbortMoveAndEditTarget );
|
||||||
SetCurItem( aTarget );
|
SetCurItem( aTarget );
|
||||||
}
|
}
|
||||||
|
@ -252,25 +252,26 @@ void PCB_EDIT_FRAME::PlaceTarget( PCB_TARGET* aTarget, wxDC* DC )
|
||||||
if( aTarget->IsNew() )
|
if( aTarget->IsNew() )
|
||||||
{
|
{
|
||||||
SaveCopyInUndoList( aTarget, UR_NEW );
|
SaveCopyInUndoList( aTarget, UR_NEW );
|
||||||
aTarget->m_Flags = 0;
|
aTarget->ClearFlags();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( aTarget->m_Flags == IS_MOVED )
|
if( aTarget->GetFlags() == IS_MOVED )
|
||||||
{
|
{
|
||||||
SaveCopyInUndoList( aTarget, UR_MOVED, aTarget->GetPosition() - s_TargetCopy.GetPosition() );
|
SaveCopyInUndoList( aTarget, UR_MOVED,
|
||||||
aTarget->m_Flags = 0;
|
aTarget->GetPosition() - s_TargetCopy.GetPosition() );
|
||||||
|
aTarget->ClearFlags();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (aTarget->m_Flags & IN_EDIT) )
|
if( (aTarget->GetFlags() & IN_EDIT) )
|
||||||
{
|
{
|
||||||
SwapData( aTarget, &s_TargetCopy );
|
SwapData( aTarget, &s_TargetCopy );
|
||||||
SaveCopyInUndoList( aTarget, UR_CHANGED );
|
SaveCopyInUndoList( aTarget, UR_CHANGED );
|
||||||
SwapData( aTarget, &s_TargetCopy );
|
SwapData( aTarget, &s_TargetCopy );
|
||||||
}
|
}
|
||||||
|
|
||||||
aTarget->m_Flags = 0;
|
aTarget->ClearFlags();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -247,7 +247,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
module->SetPosition( wxPoint( 0, 0 ) );
|
module->SetPosition( wxPoint( 0, 0 ) );
|
||||||
|
|
||||||
if( GetBoard()->m_Modules )
|
if( GetBoard()->m_Modules )
|
||||||
GetBoard()->m_Modules->m_Flags = 0;
|
GetBoard()->m_Modules->ClearFlags();
|
||||||
|
|
||||||
Zoom_Automatique( false );
|
Zoom_Automatique( false );
|
||||||
}
|
}
|
||||||
|
@ -340,7 +340,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
pcbframe->SaveCopyInUndoList( newmodule, UR_NEW );
|
pcbframe->SaveCopyInUndoList( newmodule, UR_NEW );
|
||||||
}
|
}
|
||||||
|
|
||||||
newmodule->m_Flags = 0;
|
newmodule->ClearFlags();
|
||||||
GetScreen()->ClrModify();
|
GetScreen()->ClrModify();
|
||||||
pcbframe->SetCurItem( NULL );
|
pcbframe->SetCurItem( NULL );
|
||||||
mainpcb->m_Status_Pcb = 0;
|
mainpcb->m_Status_Pcb = 0;
|
||||||
|
@ -358,7 +358,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
redraw = true;
|
redraw = true;
|
||||||
|
|
||||||
if( GetBoard()->m_Modules )
|
if( GetBoard()->m_Modules )
|
||||||
GetBoard()->m_Modules->m_Flags = 0;
|
GetBoard()->m_Modules->ClearFlags();
|
||||||
|
|
||||||
GetScreen()->ClrModify();
|
GetScreen()->ClrModify();
|
||||||
Zoom_Automatique( false );
|
Zoom_Automatique( false );
|
||||||
|
@ -402,7 +402,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
|
|
||||||
if( GetBoard()->m_Modules )
|
if( GetBoard()->m_Modules )
|
||||||
GetBoard()->m_Modules->m_Flags = 0;
|
GetBoard()->m_Modules->ClearFlags();
|
||||||
|
|
||||||
// if either m_Reference or m_Value are gone, reinstall them -
|
// if either m_Reference or m_Value are gone, reinstall them -
|
||||||
// otherwise you cannot see what you are doing on board
|
// otherwise you cannot see what you are doing on board
|
||||||
|
@ -446,7 +446,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
SetCurItem( GetBoard()->m_Modules );
|
SetCurItem( GetBoard()->m_Modules );
|
||||||
DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) GetScreen()-> GetCurItem() );
|
DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) GetScreen()-> GetCurItem() );
|
||||||
int ret = dialog.ShowModal();
|
int ret = dialog.ShowModal();
|
||||||
GetScreen()->GetCurItem()->m_Flags = 0;
|
GetScreen()->GetCurItem()->ClearFlags();
|
||||||
|
|
||||||
if( ret > 0 )
|
if( ret > 0 )
|
||||||
DrawPanel->Refresh();
|
DrawPanel->Refresh();
|
||||||
|
@ -475,8 +475,8 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) GetScreen()->GetCurItem() );
|
DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) GetScreen()->GetCurItem() );
|
||||||
int ret = dialog.ShowModal();
|
int ret = dialog.ShowModal();
|
||||||
GetScreen()->GetCurItem()->m_Flags = 0;
|
GetScreen()->GetCurItem()->ClearFlags();
|
||||||
GetScreen()->GetCurItem()->m_Flags = 0;
|
GetScreen()->GetCurItem()->ClearFlags();
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
|
|
||||||
if( ret > 0 )
|
if( ret > 0 )
|
||||||
|
@ -560,7 +560,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
case ID_POPUP_PCB_STOP_CURRENT_DRAWING:
|
case ID_POPUP_PCB_STOP_CURRENT_DRAWING:
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
|
|
||||||
if( (GetScreen()->GetCurItem()->m_Flags & IS_NEW) )
|
if( GetScreen()->GetCurItem()->IsNew() )
|
||||||
{
|
{
|
||||||
End_Edge_Module( (EDGE_MODULE*) GetScreen()->GetCurItem() );
|
End_Edge_Module( (EDGE_MODULE*) GetScreen()->GetCurItem() );
|
||||||
SetCurItem( NULL );
|
SetCurItem( NULL );
|
||||||
|
|
|
@ -29,7 +29,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
|
|
||||||
if( GetToolId() == ID_NO_TOOL_SELECTED )
|
if( GetToolId() == ID_NO_TOOL_SELECTED )
|
||||||
{
|
{
|
||||||
if( item && item->m_Flags ) // Move item command in progress
|
if( item && item->GetFlags() ) // Move item command in progress
|
||||||
{
|
{
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
|
@ -50,9 +50,9 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
msg.Printf( wxT( "WinEDA_ModEditFrame::OnLeftClick err:Struct %d, m_Flag %X" ),
|
msg.Printf( wxT( "WinEDA_ModEditFrame::OnLeftClick err:Struct %d, m_Flag %X" ),
|
||||||
item->Type(), item->m_Flags );
|
item->Type(), item->GetFlags() );
|
||||||
DisplayError( this, msg );
|
DisplayError( this, msg );
|
||||||
item->m_Flags = 0;
|
item->ClearFlags();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
|
|
||||||
item = GetCurItem();
|
item = GetCurItem();
|
||||||
|
|
||||||
if( !item || (item->m_Flags == 0) )
|
if( !item || (item->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
if( !wxGetKeyState( WXK_SHIFT ) && !wxGetKeyState( WXK_ALT )
|
if( !wxGetKeyState( WXK_SHIFT ) && !wxGetKeyState( WXK_ALT )
|
||||||
&& !wxGetKeyState( WXK_CONTROL ) )
|
&& !wxGetKeyState( WXK_CONTROL ) )
|
||||||
|
@ -78,7 +78,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
case ID_MODEDIT_CIRCLE_TOOL:
|
case ID_MODEDIT_CIRCLE_TOOL:
|
||||||
case ID_MODEDIT_ARC_TOOL:
|
case ID_MODEDIT_ARC_TOOL:
|
||||||
case ID_MODEDIT_LINE_TOOL:
|
case ID_MODEDIT_LINE_TOOL:
|
||||||
if( !item || item->m_Flags == 0 )
|
if( !item || item->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
int shape = S_SEGMENT;
|
int shape = S_SEGMENT;
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
|
|
||||||
case ID_MODEDIT_DELETE_TOOL:
|
case ID_MODEDIT_DELETE_TOOL:
|
||||||
if( item == NULL || // No item to delete
|
if( item == NULL || // No item to delete
|
||||||
(item->m_Flags != 0) ) // Item in edit, cannot delete it
|
(item->GetFlags() != 0) ) // Item in edit, cannot delete it
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if( item->Type() != PCB_MODULE_T ) // Cannot delete the module itself
|
if( item->Type() != PCB_MODULE_T ) // Cannot delete the module itself
|
||||||
|
@ -134,10 +134,10 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
MODULE* module = GetBoard()->m_Modules;
|
MODULE* module = GetBoard()->m_Modules;
|
||||||
|
|
||||||
if( module == NULL // No module loaded
|
if( module == NULL // No module loaded
|
||||||
|| (module->m_Flags != 0) )
|
|| (module->GetFlags() != 0) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
module->m_Flags = 0;
|
module->ClearFlags();
|
||||||
SaveCopyInUndoList( module, UR_MODEDIT );
|
SaveCopyInUndoList( module, UR_MODEDIT );
|
||||||
Place_Ancre( module ); // set the new relatives internal coordinates of items
|
Place_Ancre( module ); // set the new relatives internal coordinates of items
|
||||||
RedrawScreen( wxPoint( 0, 0 ), true );
|
RedrawScreen( wxPoint( 0, 0 ), true );
|
||||||
|
@ -191,7 +191,7 @@ bool FOOTPRINT_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMen
|
||||||
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE;
|
||||||
|
|
||||||
// Simple location of elements where possible.
|
// Simple location of elements where possible.
|
||||||
if( ( item == NULL ) || ( item->m_Flags == 0 ) )
|
if( ( item == NULL ) || ( item->GetFlags() == 0 ) )
|
||||||
{
|
{
|
||||||
SetCurItem( item = ModeditLocateAndDisplay() );
|
SetCurItem( item = ModeditLocateAndDisplay() );
|
||||||
}
|
}
|
||||||
|
@ -199,16 +199,18 @@ bool FOOTPRINT_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMen
|
||||||
// End command in progress.
|
// End command in progress.
|
||||||
if( GetToolId() != ID_NO_TOOL_SELECTED )
|
if( GetToolId() != ID_NO_TOOL_SELECTED )
|
||||||
{
|
{
|
||||||
if( item && item->m_Flags )
|
if( item && item->GetFlags() )
|
||||||
AddMenuItem( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), KiBitmap( cancel_xpm ) );
|
AddMenuItem( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ),
|
||||||
|
KiBitmap( cancel_xpm ) );
|
||||||
else
|
else
|
||||||
AddMenuItem( PopMenu, ID_POPUP_CLOSE_CURRENT_TOOL, _( "End Tool" ), KiBitmap( cancel_tool_xpm ) );
|
AddMenuItem( PopMenu, ID_POPUP_CLOSE_CURRENT_TOOL, _( "End Tool" ),
|
||||||
|
KiBitmap( cancel_tool_xpm ) );
|
||||||
|
|
||||||
PopMenu->AppendSeparator();
|
PopMenu->AppendSeparator();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( (item && item->m_Flags) || blockActive )
|
if( (item && item->GetFlags()) || blockActive )
|
||||||
{
|
{
|
||||||
if( blockActive ) // Put block commands in list
|
if( blockActive ) // Put block commands in list
|
||||||
{
|
{
|
||||||
|
@ -246,7 +248,7 @@ bool FOOTPRINT_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMen
|
||||||
if( (item == NULL) || blockActive )
|
if( (item == NULL) || blockActive )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
int flags = item->m_Flags;
|
int flags = item->GetFlags();
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
|
@ -255,7 +257,8 @@ bool FOOTPRINT_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMen
|
||||||
wxMenu* transform_choice = new wxMenu;
|
wxMenu* transform_choice = new wxMenu;
|
||||||
AddMenuItem( transform_choice, ID_MODEDIT_MODULE_ROTATE, _( "Rotate" ),
|
AddMenuItem( transform_choice, ID_MODEDIT_MODULE_ROTATE, _( "Rotate" ),
|
||||||
KiBitmap( rotate_module_pos_xpm ) );
|
KiBitmap( rotate_module_pos_xpm ) );
|
||||||
AddMenuItem( transform_choice, ID_MODEDIT_MODULE_MIRROR, _( "Mirror" ), KiBitmap( mirror_h_xpm ) );
|
AddMenuItem( transform_choice, ID_MODEDIT_MODULE_MIRROR, _( "Mirror" ),
|
||||||
|
KiBitmap( mirror_h_xpm ) );
|
||||||
msg = AddHotkeyName( _( "Edit Module" ), g_Module_Editor_Hokeys_Descr, HK_EDIT_ITEM );
|
msg = AddHotkeyName( _( "Edit Module" ), g_Module_Editor_Hokeys_Descr, HK_EDIT_ITEM );
|
||||||
AddMenuItem( PopMenu, ID_POPUP_PCB_EDIT_MODULE, msg, KiBitmap( edit_module_xpm ) );
|
AddMenuItem( PopMenu, ID_POPUP_PCB_EDIT_MODULE, msg, KiBitmap( edit_module_xpm ) );
|
||||||
AddMenuItem( PopMenu, transform_choice, ID_MODEDIT_TRANSFORM_MODULE,
|
AddMenuItem( PopMenu, transform_choice, ID_MODEDIT_TRANSFORM_MODULE,
|
||||||
|
@ -398,12 +401,12 @@ void FOOTPRINT_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
switch( GetToolId() )
|
switch( GetToolId() )
|
||||||
{
|
{
|
||||||
case ID_NO_TOOL_SELECTED:
|
case ID_NO_TOOL_SELECTED:
|
||||||
if( ( item == NULL ) || ( item->m_Flags == 0 ) )
|
if( ( item == NULL ) || ( item->GetFlags() == 0 ) )
|
||||||
{
|
{
|
||||||
item = ModeditLocateAndDisplay();
|
item = ModeditLocateAndDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( item == NULL ) || ( item->m_Flags != 0 ) )
|
if( ( item == NULL ) || ( item->GetFlags() != 0 ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Item found
|
// Item found
|
||||||
|
@ -420,7 +423,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
{
|
{
|
||||||
DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) item );
|
DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) item );
|
||||||
int ret = dialog.ShowModal();
|
int ret = dialog.ShowModal();
|
||||||
GetScreen()->GetCurItem()->m_Flags = 0;
|
GetScreen()->GetCurItem()->ClearFlags();
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
|
|
||||||
if( ret > 0 )
|
if( ret > 0 )
|
||||||
|
|
|
@ -33,7 +33,7 @@ void FOOTPRINT_EDIT_FRAME::SaveCopyInUndoList( BOARD_ITEM* aItem,
|
||||||
GetScreen()->PushCommandToUndoList( lastcmd );
|
GetScreen()->PushCommandToUndoList( lastcmd );
|
||||||
/* Clear current flags (which can be temporary set by a current edit command) */
|
/* Clear current flags (which can be temporary set by a current edit command) */
|
||||||
for( item = CopyItem->m_Drawings; item != NULL; item = item->Next() )
|
for( item = CopyItem->m_Drawings; item != NULL; item = item->Next() )
|
||||||
item->m_Flags = 0;
|
item->ClearFlags();
|
||||||
|
|
||||||
/* Clear redo list, because after new save there is no redo to do */
|
/* Clear redo list, because after new save there is no redo to do */
|
||||||
GetScreen()->ClearUndoORRedoList( GetScreen()->m_RedoList );
|
GetScreen()->ClearUndoORRedoList( GetScreen()->m_RedoList );
|
||||||
|
|
|
@ -76,11 +76,11 @@ void PCB_EDIT_FRAME::StartMove_Module( MODULE* module, wxDC* DC )
|
||||||
// Creates a copy of the current module, for abort and undo commands
|
// Creates a copy of the current module, for abort and undo commands
|
||||||
s_ModuleInitialCopy = new MODULE( GetBoard() );
|
s_ModuleInitialCopy = new MODULE( GetBoard() );
|
||||||
s_ModuleInitialCopy->Copy( module );
|
s_ModuleInitialCopy->Copy( module );
|
||||||
s_ModuleInitialCopy->m_Flags = 0;
|
s_ModuleInitialCopy->ClearFlags();
|
||||||
|
|
||||||
SetCurItem( module );
|
SetCurItem( module );
|
||||||
GetBoard()->m_Status_Pcb &= ~RATSNEST_ITEM_LOCAL_OK;
|
GetBoard()->m_Status_Pcb &= ~RATSNEST_ITEM_LOCAL_OK;
|
||||||
module->m_Flags |= IS_MOVED;
|
module->SetFlags( IS_MOVED );
|
||||||
|
|
||||||
/* Show ratsnest. */
|
/* Show ratsnest. */
|
||||||
if( GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) )
|
if( GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) )
|
||||||
|
@ -110,10 +110,9 @@ void PCB_EDIT_FRAME::StartMove_Module( MODULE* module, wxDC* DC )
|
||||||
// Erase the module.
|
// Erase the module.
|
||||||
if( DC )
|
if( DC )
|
||||||
{
|
{
|
||||||
int tmp = module->m_Flags;
|
module->SetFlags( DO_NOT_DRAW );
|
||||||
module->m_Flags |= DO_NOT_DRAW;
|
|
||||||
DrawPanel->RefreshDrawingRect( module->GetBoundingBox() );
|
DrawPanel->RefreshDrawingRect( module->GetBoundingBox() );
|
||||||
module->m_Flags = tmp;
|
module->ClearFlags( DO_NOT_DRAW );
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false );
|
DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false );
|
||||||
|
@ -162,7 +161,7 @@ void Abort_MoveOrCopyModule( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
}
|
}
|
||||||
|
|
||||||
EraseDragList();
|
EraseDragList();
|
||||||
module->m_Flags &= ~IS_MOVED;
|
module->ClearFlags( IS_MOVED );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( module->IsNew() ) // Copy command: delete new footprint
|
if( module->IsNew() ) // Copy command: delete new footprint
|
||||||
|
@ -278,16 +277,15 @@ void PCB_EDIT_FRAME::Change_Side_Module( MODULE* Module, wxDC* DC )
|
||||||
|
|
||||||
OnModify();
|
OnModify();
|
||||||
|
|
||||||
if( !( Module->m_Flags & IS_MOVED ) ) /* This is a simple flip, no other edition in progress */
|
if( !Module->IsMoving() ) /* This is a simple flip, no other edition in progress */
|
||||||
{
|
{
|
||||||
GetBoard()->m_Status_Pcb &= ~( LISTE_RATSNEST_ITEM_OK | CONNEXION_OK );
|
GetBoard()->m_Status_Pcb &= ~( LISTE_RATSNEST_ITEM_OK | CONNEXION_OK );
|
||||||
|
|
||||||
if( DC )
|
if( DC )
|
||||||
{
|
{
|
||||||
int tmp = Module->m_Flags;
|
Module->SetFlags( DO_NOT_DRAW );
|
||||||
Module->m_Flags |= DO_NOT_DRAW;
|
|
||||||
DrawPanel->RefreshDrawingRect( Module->GetBoundingBox() );
|
DrawPanel->RefreshDrawingRect( Module->GetBoundingBox() );
|
||||||
Module->m_Flags = tmp;
|
Module->ClearFlags( DO_NOT_DRAW );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Show ratsnest if necessary. */
|
/* Show ratsnest if necessary. */
|
||||||
|
@ -312,7 +310,7 @@ void PCB_EDIT_FRAME::Change_Side_Module( MODULE* Module, wxDC* DC )
|
||||||
|
|
||||||
Module->DisplayInfo( this );
|
Module->DisplayInfo( this );
|
||||||
|
|
||||||
if( !( Module->m_Flags & IS_MOVED ) ) /* Inversion simple */
|
if( !Module->IsMoving() ) /* Inversion simple */
|
||||||
{
|
{
|
||||||
if( DC )
|
if( DC )
|
||||||
{
|
{
|
||||||
|
@ -350,7 +348,7 @@ void PCB_BASE_FRAME::PlaceModule( MODULE* aModule, wxDC* aDC, bool aDoNotRecreat
|
||||||
{
|
{
|
||||||
SaveCopyInUndoList( aModule, UR_NEW );
|
SaveCopyInUndoList( aModule, UR_NEW );
|
||||||
}
|
}
|
||||||
else if( (aModule->m_Flags & IS_MOVED ) )
|
else if( aModule->IsMoving() )
|
||||||
{
|
{
|
||||||
ITEM_PICKER picker( aModule, UR_CHANGED );
|
ITEM_PICKER picker( aModule, UR_CHANGED );
|
||||||
picker.m_Link = s_ModuleInitialCopy;
|
picker.m_Link = s_ModuleInitialCopy;
|
||||||
|
@ -372,7 +370,7 @@ void PCB_BASE_FRAME::PlaceModule( MODULE* aModule, wxDC* aDC, bool aDoNotRecreat
|
||||||
|
|
||||||
newpos = GetScreen()->GetCrossHairPosition();
|
newpos = GetScreen()->GetCrossHairPosition();
|
||||||
aModule->SetPosition( newpos );
|
aModule->SetPosition( newpos );
|
||||||
aModule->m_Flags = 0;
|
aModule->ClearFlags();
|
||||||
|
|
||||||
delete s_ModuleInitialCopy;
|
delete s_ModuleInitialCopy;
|
||||||
s_ModuleInitialCopy = NULL;
|
s_ModuleInitialCopy = NULL;
|
||||||
|
@ -423,15 +421,14 @@ void PCB_BASE_FRAME::Rotate_Module( wxDC* DC, MODULE* module, int angle, bool in
|
||||||
|
|
||||||
OnModify();
|
OnModify();
|
||||||
|
|
||||||
if( !( module->m_Flags & IS_MOVED ) ) /* This is a simple rotation, no other
|
if( !module->IsMoving() ) /* This is a simple rotation, no other
|
||||||
* edition in progress */
|
* edition in progress */
|
||||||
{
|
{
|
||||||
if( DC ) // Erase footprint to screen
|
if( DC ) // Erase footprint to screen
|
||||||
{
|
{
|
||||||
int tmp = module->m_Flags;
|
module->SetFlags( DO_NOT_DRAW );
|
||||||
module->m_Flags |= DO_NOT_DRAW;
|
|
||||||
DrawPanel->RefreshDrawingRect( module->GetBoundingBox() );
|
DrawPanel->RefreshDrawingRect( module->GetBoundingBox() );
|
||||||
module->m_Flags = tmp;
|
module->ClearFlags( DO_NOT_DRAW );
|
||||||
|
|
||||||
if( GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) )
|
if( GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) )
|
||||||
DrawGeneralRatsnest( DC );
|
DrawGeneralRatsnest( DC );
|
||||||
|
@ -457,7 +454,7 @@ void PCB_BASE_FRAME::Rotate_Module( wxDC* DC, MODULE* module, int angle, bool in
|
||||||
|
|
||||||
if( DC )
|
if( DC )
|
||||||
{
|
{
|
||||||
if( !( module->m_Flags & IS_MOVED ) )
|
if( !module->IsMoving() )
|
||||||
{
|
{
|
||||||
// not beiing moved: redraw the module and update ratsnest
|
// not beiing moved: redraw the module and update ratsnest
|
||||||
module->Draw( DrawPanel, DC, GR_OR );
|
module->Draw( DrawPanel, DC, GR_OR );
|
||||||
|
@ -472,7 +469,7 @@ void PCB_BASE_FRAME::Rotate_Module( wxDC* DC, MODULE* module, int angle, bool in
|
||||||
DrawSegmentWhileMovingFootprint( DrawPanel, DC );
|
DrawSegmentWhileMovingFootprint( DrawPanel, DC );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( module->m_Flags == 0 ) // module not in edit: redraw full screen
|
if( module->GetFlags() == 0 ) // module not in edit: redraw full screen
|
||||||
DrawPanel->Refresh();
|
DrawPanel->Refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ static void Abort_Move_Pad( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pad->Draw( Panel, DC, GR_XOR );
|
pad->Draw( Panel, DC, GR_XOR );
|
||||||
pad->m_Flags = 0;
|
pad->ClearFlags();
|
||||||
pad->m_Pos = Pad_OldPos;
|
pad->m_Pos = Pad_OldPos;
|
||||||
pad->Draw( Panel, DC, GR_XOR );
|
pad->Draw( Panel, DC, GR_XOR );
|
||||||
|
|
||||||
|
@ -137,16 +137,15 @@ void PCB_BASE_FRAME::Import_Pad_Settings( D_PAD* aPad, bool aDraw )
|
||||||
{
|
{
|
||||||
if( aDraw )
|
if( aDraw )
|
||||||
{
|
{
|
||||||
aPad->m_Flags |= DO_NOT_DRAW;
|
aPad->SetFlags( DO_NOT_DRAW );
|
||||||
DrawPanel->RefreshDrawingRect( aPad->GetBoundingBox() );
|
DrawPanel->RefreshDrawingRect( aPad->GetBoundingBox() );
|
||||||
aPad->m_Flags &= ~DO_NOT_DRAW;
|
aPad->ClearFlags( DO_NOT_DRAW );
|
||||||
}
|
}
|
||||||
|
|
||||||
aPad->m_PadShape = g_Pad_Master.m_PadShape;
|
aPad->m_PadShape = g_Pad_Master.m_PadShape;
|
||||||
aPad->m_layerMask = g_Pad_Master.m_layerMask;
|
aPad->m_layerMask = g_Pad_Master.m_layerMask;
|
||||||
aPad->m_Attribut = g_Pad_Master.m_Attribut;
|
aPad->m_Attribut = g_Pad_Master.m_Attribut;
|
||||||
aPad->m_Orient = g_Pad_Master.m_Orient +
|
aPad->m_Orient = g_Pad_Master.m_Orient + ( (MODULE*) aPad->GetParent() )->m_Orient;
|
||||||
( (MODULE*) aPad->GetParent() )->m_Orient;
|
|
||||||
aPad->m_Size = g_Pad_Master.m_Size;
|
aPad->m_Size = g_Pad_Master.m_Size;
|
||||||
aPad->m_DeltaSize = wxSize( 0, 0 );
|
aPad->m_DeltaSize = wxSize( 0, 0 );
|
||||||
aPad->m_Offset = g_Pad_Master.m_Offset;
|
aPad->m_Offset = g_Pad_Master.m_Offset;
|
||||||
|
@ -283,7 +282,7 @@ void PCB_BASE_FRAME::StartMovePad( D_PAD* Pad, wxDC* DC )
|
||||||
|
|
||||||
/* Draw the pad (SKETCH mode) */
|
/* Draw the pad (SKETCH mode) */
|
||||||
Pad->Draw( DrawPanel, DC, GR_XOR );
|
Pad->Draw( DrawPanel, DC, GR_XOR );
|
||||||
Pad->m_Flags |= IS_MOVED;
|
Pad->SetFlags( IS_MOVED );
|
||||||
Pad->Draw( DrawPanel, DC, GR_XOR );
|
Pad->Draw( DrawPanel, DC, GR_XOR );
|
||||||
|
|
||||||
/* Build the list of track segments to drag if the command is a drag pad*/
|
/* Build the list of track segments to drag if the command is a drag pad*/
|
||||||
|
@ -368,7 +367,7 @@ void PCB_BASE_FRAME::PlacePad( D_PAD* Pad, wxDC* DC )
|
||||||
Pad->m_Pos0.x += dX;
|
Pad->m_Pos0.x += dX;
|
||||||
s_CurrentSelectedPad->m_Pos0.y += dY;
|
s_CurrentSelectedPad->m_Pos0.y += dY;
|
||||||
|
|
||||||
Pad->m_Flags = 0;
|
Pad->ClearFlags();
|
||||||
|
|
||||||
if( DC )
|
if( DC )
|
||||||
Pad->Draw( DrawPanel, DC, GR_OR );
|
Pad->Draw( DrawPanel, DC, GR_OR );
|
||||||
|
|
|
@ -103,7 +103,7 @@ static void Exit_MoveTrack( WinEDA_DrawPanel* Panel, wxDC* DC )
|
||||||
TRACK* Track = pt_drag->m_Segm;
|
TRACK* Track = pt_drag->m_Segm;
|
||||||
pt_drag->SetInitialValues();
|
pt_drag->SetInitialValues();
|
||||||
Track->SetState( EDIT, OFF );
|
Track->SetState( EDIT, OFF );
|
||||||
Track->m_Flags = 0;
|
Track->ClearFlags();
|
||||||
Track->Draw( Panel, DC, GR_OR );
|
Track->Draw( Panel, DC, GR_OR );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -249,7 +249,7 @@ bool WinEDA_PcbFrame::PlaceDraggedTrackSegment( TRACK* Track, wxDC* DC )
|
||||||
}
|
}
|
||||||
|
|
||||||
// DRC Ok: place track segments
|
// DRC Ok: place track segments
|
||||||
Track->m_Flags = 0;
|
Track->ClearFlags();
|
||||||
Track->Draw( DrawPanel, DC, GR_OR );
|
Track->Draw( DrawPanel, DC, GR_OR );
|
||||||
|
|
||||||
/* Tracage des segments dragges */
|
/* Tracage des segments dragges */
|
||||||
|
@ -258,7 +258,7 @@ bool WinEDA_PcbFrame::PlaceDraggedTrackSegment( TRACK* Track, wxDC* DC )
|
||||||
{
|
{
|
||||||
Track = pt_drag->m_Segm;
|
Track = pt_drag->m_Segm;
|
||||||
Track->SetState( EDIT, OFF );
|
Track->SetState( EDIT, OFF );
|
||||||
Track->m_Flags = 0;
|
Track->ClearFlags();
|
||||||
Track->Draw( DrawPanel, DC, GR_OR );
|
Track->Draw( DrawPanel, DC, GR_OR );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ static void Abort_MoveTrack( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
Track->m_End.x -= dx;
|
Track->m_End.x -= dx;
|
||||||
Track->m_End.y -= dy;
|
Track->m_End.y -= dy;
|
||||||
|
|
||||||
Track->m_Flags = 0;
|
Track->ClearFlags();
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawTraces( Panel, DC, NewTrack, NbPtNewTrack, GR_OR );
|
DrawTraces( Panel, DC, NewTrack, NbPtNewTrack, GR_OR );
|
||||||
|
@ -140,7 +140,7 @@ static void Abort_MoveTrack( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
TRACK* Track = g_DragSegmentList[jj].m_Segm;
|
TRACK* Track = g_DragSegmentList[jj].m_Segm;
|
||||||
g_DragSegmentList[jj].SetInitialValues();
|
g_DragSegmentList[jj].SetInitialValues();
|
||||||
Track->SetState( IN_EDIT, OFF );
|
Track->SetState( IN_EDIT, OFF );
|
||||||
Track->m_Flags = 0;
|
Track->ClearFlags();
|
||||||
Track->Draw( Panel, DC, GR_OR );
|
Track->Draw( Panel, DC, GR_OR );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,10 +192,10 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo
|
||||||
|
|
||||||
for( ; (ii > 0) && (Track != NULL); ii--, Track = Track->Next() )
|
for( ; (ii > 0) && (Track != NULL); ii--, Track = Track->Next() )
|
||||||
{
|
{
|
||||||
if( Track->m_Flags & STARTPOINT )
|
if( Track->GetFlags() & STARTPOINT )
|
||||||
Track->m_Start += moveVector;
|
Track->m_Start += moveVector;
|
||||||
|
|
||||||
if( Track->m_Flags & ENDPOINT )
|
if( Track->GetFlags() & ENDPOINT )
|
||||||
Track->m_End += moveVector;
|
Track->m_End += moveVector;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,10 +209,10 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo
|
||||||
if( aErase )
|
if( aErase )
|
||||||
Track->Draw( aPanel, aDC, draw_mode );
|
Track->Draw( aPanel, aDC, draw_mode );
|
||||||
|
|
||||||
if( Track->m_Flags & STARTPOINT )
|
if( Track->GetFlags() & STARTPOINT )
|
||||||
Track->m_Start += moveVector;
|
Track->m_Start += moveVector;
|
||||||
|
|
||||||
if( Track->m_Flags & ENDPOINT )
|
if( Track->GetFlags() & ENDPOINT )
|
||||||
Track->m_End += moveVector;
|
Track->m_End += moveVector;
|
||||||
|
|
||||||
Track->Draw( aPanel, aDC, draw_mode );
|
Track->Draw( aPanel, aDC, draw_mode );
|
||||||
|
@ -471,7 +471,7 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC
|
||||||
|
|
||||||
if( tSegmentToEnd )
|
if( tSegmentToEnd )
|
||||||
{
|
{
|
||||||
if( tSegmentToEnd->m_Flags & STARTPOINT )
|
if( tSegmentToEnd->GetFlags() & STARTPOINT )
|
||||||
tSegmentToEnd->m_Start = Track->m_End;
|
tSegmentToEnd->m_Start = Track->m_End;
|
||||||
else
|
else
|
||||||
tSegmentToEnd->m_End = Track->m_End;
|
tSegmentToEnd->m_End = Track->m_End;
|
||||||
|
@ -479,7 +479,7 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC
|
||||||
|
|
||||||
if( tSegmentToStart )
|
if( tSegmentToStart )
|
||||||
{
|
{
|
||||||
if( tSegmentToStart->m_Flags & STARTPOINT )
|
if( tSegmentToStart->GetFlags() & STARTPOINT )
|
||||||
tSegmentToStart->m_Start = Track->m_Start;
|
tSegmentToStart->m_Start = Track->m_Start;
|
||||||
else
|
else
|
||||||
tSegmentToStart->m_End = Track->m_Start;
|
tSegmentToStart->m_End = Track->m_Start;
|
||||||
|
@ -558,7 +558,7 @@ bool InitialiseDragParameters()
|
||||||
// Init parameters for the starting point of the moved segment
|
// Init parameters for the starting point of the moved segment
|
||||||
if( tSegmentToStart )
|
if( tSegmentToStart )
|
||||||
{
|
{
|
||||||
if( tSegmentToStart->m_Flags & ENDPOINT )
|
if( tSegmentToStart->GetFlags() & ENDPOINT )
|
||||||
{
|
{
|
||||||
tx1 = (double) tSegmentToStart->m_Start.x;
|
tx1 = (double) tSegmentToStart->m_Start.x;
|
||||||
ty1 = (double) tSegmentToStart->m_Start.y;
|
ty1 = (double) tSegmentToStart->m_Start.y;
|
||||||
|
@ -601,7 +601,7 @@ bool InitialiseDragParameters()
|
||||||
if( tSegmentToEnd )
|
if( tSegmentToEnd )
|
||||||
{
|
{
|
||||||
//check if second line is vertical
|
//check if second line is vertical
|
||||||
if( tSegmentToEnd->m_Flags & STARTPOINT )
|
if( tSegmentToEnd->GetFlags() & STARTPOINT )
|
||||||
{
|
{
|
||||||
tx1 = (double) tSegmentToEnd->m_Start.x;
|
tx1 = (double) tSegmentToEnd->m_Start.x;
|
||||||
ty1 = (double) tSegmentToEnd->m_Start.y;
|
ty1 = (double) tSegmentToEnd->m_Start.y;
|
||||||
|
@ -698,7 +698,7 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC
|
||||||
|
|
||||||
if( aTrack->Type() == PCB_VIA_T ) // For a via: always drag it
|
if( aTrack->Type() == PCB_VIA_T ) // For a via: always drag it
|
||||||
{
|
{
|
||||||
aTrack->m_Flags = IS_DRAGGED | STARTPOINT | ENDPOINT;
|
aTrack->SetFlags( IS_DRAGGED | STARTPOINT | ENDPOINT );
|
||||||
|
|
||||||
if( aCommand != ID_POPUP_PCB_MOVE_TRACK_SEGMENT )
|
if( aCommand != ID_POPUP_PCB_MOVE_TRACK_SEGMENT )
|
||||||
{
|
{
|
||||||
|
@ -719,8 +719,8 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC
|
||||||
switch( aCommand )
|
switch( aCommand )
|
||||||
{
|
{
|
||||||
case ID_POPUP_PCB_MOVE_TRACK_SEGMENT: // Move segment
|
case ID_POPUP_PCB_MOVE_TRACK_SEGMENT: // Move segment
|
||||||
aTrack->m_Flags |= IS_DRAGGED | ENDPOINT | STARTPOINT;
|
aTrack->SetFlags( IS_DRAGGED | ENDPOINT | STARTPOINT );
|
||||||
AddSegmentToDragList( DrawPanel, aDC, aTrack->m_Flags, aTrack );
|
AddSegmentToDragList( DrawPanel, aDC, aTrack->GetFlags(), aTrack );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_PCB_DRAG_TRACK_SEGMENT: // drag a segment
|
case ID_POPUP_PCB_DRAG_TRACK_SEGMENT: // drag a segment
|
||||||
|
@ -729,7 +729,7 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC
|
||||||
aTrack->ReturnMaskLayer(),
|
aTrack->ReturnMaskLayer(),
|
||||||
aTrack->GetNet() );
|
aTrack->GetNet() );
|
||||||
pos = aTrack->m_End;
|
pos = aTrack->m_End;
|
||||||
aTrack->m_Flags |= IS_DRAGGED | ENDPOINT | STARTPOINT;
|
aTrack->SetFlags( IS_DRAGGED | ENDPOINT | STARTPOINT );
|
||||||
Collect_TrackSegmentsToDrag( DrawPanel, aDC, pos,
|
Collect_TrackSegmentsToDrag( DrawPanel, aDC, pos,
|
||||||
aTrack->ReturnMaskLayer(),
|
aTrack->ReturnMaskLayer(),
|
||||||
aTrack->GetNet() );
|
aTrack->GetNet() );
|
||||||
|
@ -744,7 +744,7 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
aTrack->m_Flags |= IS_DRAGGED;
|
aTrack->SetFlags( IS_DRAGGED );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare the Undo command
|
// Prepare the Undo command
|
||||||
|
@ -760,7 +760,7 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC
|
||||||
s_ItemsListPicker.PushItem( picker );
|
s_ItemsListPicker.PushItem( picker );
|
||||||
draggedtrack = (TRACK*) picker.m_Link;
|
draggedtrack = (TRACK*) picker.m_Link;
|
||||||
draggedtrack->SetStatus( 0 );
|
draggedtrack->SetStatus( 0 );
|
||||||
draggedtrack->m_Flags = 0;
|
draggedtrack->ClearFlags();
|
||||||
}
|
}
|
||||||
|
|
||||||
s_LastPos = PosInit;
|
s_LastPos = PosInit;
|
||||||
|
@ -929,7 +929,7 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC
|
||||||
|
|
||||||
NewTrack = NULL;
|
NewTrack = NULL;
|
||||||
NbPtNewTrack = 0;
|
NbPtNewTrack = 0;
|
||||||
track->m_Flags = IS_DRAGGED;
|
track->SetFlags( IS_DRAGGED );
|
||||||
|
|
||||||
if( TrackToStartPoint )
|
if( TrackToStartPoint )
|
||||||
{
|
{
|
||||||
|
@ -939,7 +939,7 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC
|
||||||
flag = ENDPOINT;
|
flag = ENDPOINT;
|
||||||
|
|
||||||
AddSegmentToDragList( DrawPanel, DC, flag, TrackToStartPoint );
|
AddSegmentToDragList( DrawPanel, DC, flag, TrackToStartPoint );
|
||||||
track->m_Flags |= STARTPOINT;
|
track->SetFlags( STARTPOINT );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( TrackToEndPoint )
|
if( TrackToEndPoint )
|
||||||
|
@ -950,10 +950,10 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC
|
||||||
flag = ENDPOINT;
|
flag = ENDPOINT;
|
||||||
|
|
||||||
AddSegmentToDragList( DrawPanel, DC, flag, TrackToEndPoint );
|
AddSegmentToDragList( DrawPanel, DC, flag, TrackToEndPoint );
|
||||||
track->m_Flags |= ENDPOINT;
|
track->SetFlags( ENDPOINT );
|
||||||
}
|
}
|
||||||
|
|
||||||
AddSegmentToDragList( DrawPanel, DC, track->m_Flags, track );
|
AddSegmentToDragList( DrawPanel, DC, track->GetFlags(), track );
|
||||||
|
|
||||||
|
|
||||||
PosInit = GetScreen()->GetCrossHairPosition();
|
PosInit = GetScreen()->GetCrossHairPosition();
|
||||||
|
@ -975,7 +975,7 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC
|
||||||
s_ItemsListPicker.PushItem( picker );
|
s_ItemsListPicker.PushItem( picker );
|
||||||
draggedtrack = (TRACK*) picker.m_Link;
|
draggedtrack = (TRACK*) picker.m_Link;
|
||||||
draggedtrack->SetStatus( 0 );
|
draggedtrack->SetStatus( 0 );
|
||||||
draggedtrack->m_Flags = 0;
|
draggedtrack->ClearFlags();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !InitialiseDragParameters() )
|
if( !InitialiseDragParameters() )
|
||||||
|
@ -1019,7 +1019,7 @@ bool PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment( TRACK* Track, wxDC* DC )
|
||||||
int draw_mode = GR_OR | GR_HIGHLIGHT;
|
int draw_mode = GR_OR | GR_HIGHLIGHT;
|
||||||
|
|
||||||
// DRC Ok: place track segments
|
// DRC Ok: place track segments
|
||||||
Track->m_Flags = 0;
|
Track->ClearFlags();
|
||||||
Track->SetState( IN_EDIT, OFF );
|
Track->SetState( IN_EDIT, OFF );
|
||||||
Track->Draw( DrawPanel, DC, draw_mode );
|
Track->Draw( DrawPanel, DC, draw_mode );
|
||||||
|
|
||||||
|
@ -1028,7 +1028,7 @@ bool PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment( TRACK* Track, wxDC* DC )
|
||||||
{
|
{
|
||||||
Track = g_DragSegmentList[ii].m_Segm;
|
Track = g_DragSegmentList[ii].m_Segm;
|
||||||
Track->SetState( IN_EDIT, OFF );
|
Track->SetState( IN_EDIT, OFF );
|
||||||
Track->m_Flags = 0;
|
Track->ClearFlags();
|
||||||
Track->Draw( DrawPanel, DC, draw_mode );
|
Track->Draw( DrawPanel, DC, draw_mode );
|
||||||
|
|
||||||
/* Test the connections modified by the move
|
/* Test the connections modified by the move
|
||||||
|
|
|
@ -235,7 +235,7 @@ MODULE* PCB_EDIT_FRAME::Genere_Self( wxDC* DC )
|
||||||
// here the module is already in the BOARD, Create_1_Module() does that.
|
// here the module is already in the BOARD, Create_1_Module() does that.
|
||||||
module->m_LibRef = wxT( "MuSelf" );
|
module->m_LibRef = wxT( "MuSelf" );
|
||||||
module->m_Attributs = MOD_VIRTUAL | MOD_CMS;
|
module->m_Attributs = MOD_VIRTUAL | MOD_CMS;
|
||||||
module->m_Flags = 0;
|
module->ClearFlags();
|
||||||
module->m_Pos = Mself.m_End;
|
module->m_Pos = Mself.m_End;
|
||||||
|
|
||||||
// Generate segments
|
// Generate segments
|
||||||
|
|
|
@ -49,11 +49,11 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
bool exit = false;
|
bool exit = false;
|
||||||
bool no_tool = GetToolId() == ID_NO_TOOL_SELECTED;
|
bool no_tool = GetToolId() == ID_NO_TOOL_SELECTED;
|
||||||
|
|
||||||
if( no_tool || ( DrawStruct && DrawStruct->m_Flags ) )
|
if( no_tool || ( DrawStruct && DrawStruct->GetFlags() ) )
|
||||||
{
|
{
|
||||||
DrawPanel->m_AutoPAN_Request = false;
|
DrawPanel->m_AutoPAN_Request = false;
|
||||||
|
|
||||||
if( DrawStruct && DrawStruct->m_Flags ) // Command in progress
|
if( DrawStruct && DrawStruct->GetFlags() ) // Command in progress
|
||||||
{
|
{
|
||||||
DrawPanel->m_IgnoreMouseEvents = true;
|
DrawPanel->m_IgnoreMouseEvents = true;
|
||||||
DrawPanel->CrossHairOff( aDC );
|
DrawPanel->CrossHairOff( aDC );
|
||||||
|
@ -76,7 +76,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
|
|
||||||
case PCB_TRACE_T:
|
case PCB_TRACE_T:
|
||||||
case PCB_VIA_T:
|
case PCB_VIA_T:
|
||||||
if( DrawStruct->m_Flags & IS_DRAGGED )
|
if( DrawStruct->IsDragging() )
|
||||||
{
|
{
|
||||||
PlaceDraggedOrMovedTrackSegment( (TRACK*) DrawStruct, aDC );
|
PlaceDraggedOrMovedTrackSegment( (TRACK*) DrawStruct, aDC );
|
||||||
exit = true;
|
exit = true;
|
||||||
|
@ -209,7 +209,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_PCB_MIRE_BUTT:
|
case ID_PCB_MIRE_BUTT:
|
||||||
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
SetCurItem( (BOARD_ITEM*) CreateTarget( aDC ) );
|
SetCurItem( (BOARD_ITEM*) CreateTarget( aDC ) );
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
|
@ -243,7 +243,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
DrawStruct = (BOARD_ITEM*) Begin_DrawSegment( NULL, shape, aDC );
|
DrawStruct = (BOARD_ITEM*) Begin_DrawSegment( NULL, shape, aDC );
|
||||||
SetCurItem( DrawStruct );
|
SetCurItem( DrawStruct );
|
||||||
|
@ -267,7 +267,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
DrawStruct = (BOARD_ITEM*) Begin_Route( NULL, aDC );
|
DrawStruct = (BOARD_ITEM*) Begin_Route( NULL, aDC );
|
||||||
SetCurItem( DrawStruct );
|
SetCurItem( DrawStruct );
|
||||||
|
@ -295,7 +295,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
* this can be start a new zone or select and move an existing zone outline corner
|
* this can be start a new zone or select and move an existing zone outline corner
|
||||||
* if found near the mouse cursor
|
* if found near the mouse cursor
|
||||||
*/
|
*/
|
||||||
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
// there is no current item, try to find something under mouse
|
// there is no current item, try to find something under mouse
|
||||||
DrawStruct = PcbGeneralLocateAndDisplay();
|
DrawStruct = PcbGeneralLocateAndDisplay();
|
||||||
|
@ -340,7 +340,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_PCB_ADD_TEXT_BUTT:
|
case ID_PCB_ADD_TEXT_BUTT:
|
||||||
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
SetCurItem( Create_Texte_Pcb( aDC ) );
|
SetCurItem( Create_Texte_Pcb( aDC ) );
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
|
@ -359,7 +359,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_PCB_MODULE_BUTT:
|
case ID_PCB_MODULE_BUTT:
|
||||||
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
DrawStruct = (BOARD_ITEM*) Load_Module_From_Library( wxEmptyString, aDC );
|
DrawStruct = (BOARD_ITEM*) Load_Module_From_Library( wxEmptyString, aDC );
|
||||||
|
@ -387,7 +387,7 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
DrawStruct = (BOARD_ITEM*) EditDimension( NULL, aDC );
|
DrawStruct = (BOARD_ITEM*) EditDimension( NULL, aDC );
|
||||||
SetCurItem( DrawStruct );
|
SetCurItem( DrawStruct );
|
||||||
|
@ -408,11 +408,11 @@ void PCB_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_PCB_DELETE_ITEM_BUTT:
|
case ID_PCB_DELETE_ITEM_BUTT:
|
||||||
if( !DrawStruct || (DrawStruct->m_Flags == 0) )
|
if( !DrawStruct || (DrawStruct->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
DrawStruct = PcbGeneralLocateAndDisplay();
|
DrawStruct = PcbGeneralLocateAndDisplay();
|
||||||
|
|
||||||
if( DrawStruct && (DrawStruct->m_Flags == 0) )
|
if( DrawStruct && (DrawStruct->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
RemoveStruct( DrawStruct, aDC );
|
RemoveStruct( DrawStruct, aDC );
|
||||||
SetCurItem( DrawStruct = NULL );
|
SetCurItem( DrawStruct = NULL );
|
||||||
|
@ -451,12 +451,12 @@ void PCB_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
switch( GetToolId() )
|
switch( GetToolId() )
|
||||||
{
|
{
|
||||||
case ID_NO_TOOL_SELECTED:
|
case ID_NO_TOOL_SELECTED:
|
||||||
if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) )
|
if( (DrawStruct == NULL) || (DrawStruct->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
DrawStruct = PcbGeneralLocateAndDisplay();
|
DrawStruct = PcbGeneralLocateAndDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (DrawStruct == NULL) || (DrawStruct->m_Flags != 0) )
|
if( (DrawStruct == NULL) || (DrawStruct->GetFlags() != 0) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
SendMessageToEESCHEMA( DrawStruct );
|
SendMessageToEESCHEMA( DrawStruct );
|
||||||
|
@ -473,7 +473,7 @@ void PCB_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
if( End_Route( (TRACK*) DrawStruct, aDC ) )
|
if( End_Route( (TRACK*) DrawStruct, aDC ) )
|
||||||
DrawPanel->m_AutoPAN_Request = false;
|
DrawPanel->m_AutoPAN_Request = false;
|
||||||
}
|
}
|
||||||
else if( DrawStruct->m_Flags == 0 )
|
else if( DrawStruct->GetFlags() == 0 )
|
||||||
{
|
{
|
||||||
Edit_TrackSegm_Width( aDC, (TRACK*) DrawStruct );
|
Edit_TrackSegm_Width( aDC, (TRACK*) DrawStruct );
|
||||||
}
|
}
|
||||||
|
@ -495,8 +495,9 @@ void PCB_EDIT_FRAME::OnLeftDClick( wxDC* aDC, const wxPoint& aPosition )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PCB_ZONE_AREA_T:
|
case PCB_ZONE_AREA_T:
|
||||||
if( DrawStruct->m_Flags )
|
if( DrawStruct->GetFlags() )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
OnEditItemRequest( aDC, DrawStruct );
|
OnEditItemRequest( aDC, DrawStruct );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
|
||||||
|
|
||||||
if( GetToolId() != ID_NO_TOOL_SELECTED )
|
if( GetToolId() != ID_NO_TOOL_SELECTED )
|
||||||
{
|
{
|
||||||
if( item && item->m_Flags )
|
if( item && item->GetFlags() )
|
||||||
{
|
{
|
||||||
AddMenuItem( aPopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ),
|
AddMenuItem( aPopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ),
|
||||||
KiBitmap( cancel_xpm ) );
|
KiBitmap( cancel_xpm ) );
|
||||||
|
@ -90,7 +90,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( item && item->m_Flags )
|
if( item && item->GetFlags() )
|
||||||
{
|
{
|
||||||
AddMenuItem( aPopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND,
|
AddMenuItem( aPopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND,
|
||||||
_( "Cancel" ), KiBitmap( cancel_xpm ) );
|
_( "Cancel" ), KiBitmap( cancel_xpm ) );
|
||||||
|
@ -113,7 +113,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
|
||||||
* not the current item being edited. In such case we cannot call
|
* not the current item being edited. In such case we cannot call
|
||||||
* PcbGeneralLocateAndDisplay().
|
* PcbGeneralLocateAndDisplay().
|
||||||
*/
|
*/
|
||||||
if( !item || (item->m_Flags == 0) )
|
if( !item || (item->GetFlags() == 0) )
|
||||||
{
|
{
|
||||||
// show "item selector" menu only if no item now or selected item was not
|
// show "item selector" menu only if no item now or selected item was not
|
||||||
// previously picked at this position
|
// previously picked at this position
|
||||||
|
@ -133,7 +133,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
|
||||||
item = GetCurItem();
|
item = GetCurItem();
|
||||||
|
|
||||||
if( item )
|
if( item )
|
||||||
flags = item->m_Flags;
|
flags = item->GetFlags();
|
||||||
else
|
else
|
||||||
flags = 0;
|
flags = 0;
|
||||||
|
|
||||||
|
@ -437,7 +437,7 @@ void PCB_EDIT_FRAME::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
|
||||||
updateTraceWidthSelectBox();
|
updateTraceWidthSelectBox();
|
||||||
updateViaSizeSelectBox();
|
updateViaSizeSelectBox();
|
||||||
|
|
||||||
int flags = Track->m_Flags;
|
int flags = Track->GetFlags();
|
||||||
|
|
||||||
if( flags == 0 )
|
if( flags == 0 )
|
||||||
{
|
{
|
||||||
|
@ -581,14 +581,14 @@ void PCB_EDIT_FRAME::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu*
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
if( edge_zone->m_Flags == IS_DRAGGED )
|
if( edge_zone->GetFlags() == IS_DRAGGED )
|
||||||
{
|
{
|
||||||
AddMenuItem( aPopMenu, ID_POPUP_PCB_PLACE_DRAGGED_ZONE_OUTLINE_SEGMENT,
|
AddMenuItem( aPopMenu, ID_POPUP_PCB_PLACE_DRAGGED_ZONE_OUTLINE_SEGMENT,
|
||||||
_( "Place Edge Outline" ), KiBitmap( apply_xpm ) );
|
_( "Place Edge Outline" ), KiBitmap( apply_xpm ) );
|
||||||
}
|
}
|
||||||
else if( edge_zone->m_Flags )
|
else if( edge_zone->GetFlags() )
|
||||||
{
|
{
|
||||||
if( (edge_zone->m_Flags & IN_EDIT ) )
|
if( (edge_zone->GetFlags() & IN_EDIT ) )
|
||||||
AddMenuItem( aPopMenu, ID_POPUP_PCB_PLACE_ZONE_CORNER,
|
AddMenuItem( aPopMenu, ID_POPUP_PCB_PLACE_ZONE_CORNER,
|
||||||
_( "Place Corner" ), KiBitmap( apply_xpm ) );
|
_( "Place Corner" ), KiBitmap( apply_xpm ) );
|
||||||
else
|
else
|
||||||
|
@ -660,7 +660,7 @@ void PCB_EDIT_FRAME::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu*
|
||||||
void PCB_EDIT_FRAME::createPopUpMenuForFootprints( MODULE* aModule, wxMenu* menu )
|
void PCB_EDIT_FRAME::createPopUpMenuForFootprints( MODULE* aModule, wxMenu* menu )
|
||||||
{
|
{
|
||||||
wxMenu* sub_menu_footprint;
|
wxMenu* sub_menu_footprint;
|
||||||
int flags = aModule->m_Flags;
|
int flags = aModule->GetFlags();
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
sub_menu_footprint = new wxMenu;
|
sub_menu_footprint = new wxMenu;
|
||||||
|
@ -705,7 +705,7 @@ void PCB_EDIT_FRAME::createPopUpMenuForFootprints( MODULE* aModule, wxMenu* menu
|
||||||
void PCB_EDIT_FRAME::createPopUpMenuForFpTexts( TEXTE_MODULE* FpText, wxMenu* menu )
|
void PCB_EDIT_FRAME::createPopUpMenuForFpTexts( TEXTE_MODULE* FpText, wxMenu* menu )
|
||||||
{
|
{
|
||||||
wxMenu* sub_menu_Fp_text;
|
wxMenu* sub_menu_Fp_text;
|
||||||
int flags = FpText->m_Flags;
|
int flags = FpText->GetFlags();
|
||||||
|
|
||||||
wxString msg = FpText->GetSelectMenuText();
|
wxString msg = FpText->GetSelectMenuText();
|
||||||
|
|
||||||
|
@ -758,7 +758,7 @@ void PCB_EDIT_FRAME::createPopUpMenuForFpTexts( TEXTE_MODULE* FpText, wxMenu* me
|
||||||
void PCB_EDIT_FRAME::createPopUpMenuForFpPads( D_PAD* Pad, wxMenu* menu )
|
void PCB_EDIT_FRAME::createPopUpMenuForFpPads( D_PAD* Pad, wxMenu* menu )
|
||||||
{
|
{
|
||||||
wxMenu* sub_menu_Pad;
|
wxMenu* sub_menu_Pad;
|
||||||
int flags = Pad->m_Flags;
|
int flags = Pad->GetFlags();
|
||||||
|
|
||||||
if( flags ) // Currently in edit, no others commands possible
|
if( flags ) // Currently in edit, no others commands possible
|
||||||
return;
|
return;
|
||||||
|
@ -820,7 +820,7 @@ void PCB_EDIT_FRAME::createPopUpMenuForFpPads( D_PAD* Pad, wxMenu* menu )
|
||||||
void PCB_EDIT_FRAME::createPopUpMenuForTexts( TEXTE_PCB* Text, wxMenu* menu )
|
void PCB_EDIT_FRAME::createPopUpMenuForTexts( TEXTE_PCB* Text, wxMenu* menu )
|
||||||
{
|
{
|
||||||
wxMenu* sub_menu_Text;
|
wxMenu* sub_menu_Text;
|
||||||
int flags = Text->m_Flags;
|
int flags = Text->GetFlags();
|
||||||
|
|
||||||
wxString msg = Text->GetSelectMenuText();
|
wxString msg = Text->GetSelectMenuText();
|
||||||
|
|
||||||
|
|
|
@ -317,10 +317,10 @@ int PCB_EDIT_FRAME::Solve( wxDC* DC, int two_sides )
|
||||||
}
|
}
|
||||||
|
|
||||||
pt_cur_ch = pt_cur_ch;
|
pt_cur_ch = pt_cur_ch;
|
||||||
segm_oX = GetBoard()->GetBoundingBox().m_Pos.x + (Board.m_GridRouting * col_source);
|
segm_oX = GetBoard()->GetBoundingBox().GetX() + (Board.m_GridRouting * col_source);
|
||||||
segm_oY = GetBoard()->GetBoundingBox().m_Pos.y + (Board.m_GridRouting * row_source);
|
segm_oY = GetBoard()->GetBoundingBox().GetY() + (Board.m_GridRouting * row_source);
|
||||||
segm_fX = GetBoard()->GetBoundingBox().m_Pos.x + (Board.m_GridRouting * col_target);
|
segm_fX = GetBoard()->GetBoundingBox().GetX() + (Board.m_GridRouting * col_target);
|
||||||
segm_fY = GetBoard()->GetBoundingBox().m_Pos.y + (Board.m_GridRouting * row_target);
|
segm_fY = GetBoard()->GetBoundingBox().GetY() + (Board.m_GridRouting * row_target);
|
||||||
|
|
||||||
/* Draw segment. */
|
/* Draw segment. */
|
||||||
GRLine( &DrawPanel->m_ClipBox,
|
GRLine( &DrawPanel->m_ClipBox,
|
||||||
|
@ -469,9 +469,9 @@ static int Autoroute_One_Track( PCB_EDIT_FRAME* pcbframe,
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int cX = ( Board.m_GridRouting * col_source )
|
int cX = ( Board.m_GridRouting * col_source )
|
||||||
+ pcbframe->GetBoard()->GetBoundingBox().m_Pos.x;
|
+ pcbframe->GetBoard()->GetBoundingBox().GetX();
|
||||||
int cY = ( Board.m_GridRouting * row_source )
|
int cY = ( Board.m_GridRouting * row_source )
|
||||||
+ pcbframe->GetBoard()->GetBoundingBox().m_Pos.y;
|
+ pcbframe->GetBoard()->GetBoundingBox().GetY();
|
||||||
int dx = pt_cur_ch->m_PadStart->m_Size.x / 2;
|
int dx = pt_cur_ch->m_PadStart->m_Size.x / 2;
|
||||||
int dy = pt_cur_ch->m_PadStart->m_Size.y / 2;
|
int dy = pt_cur_ch->m_PadStart->m_Size.y / 2;
|
||||||
int px = pt_cur_ch->m_PadStart->GetPosition().x;
|
int px = pt_cur_ch->m_PadStart->GetPosition().x;
|
||||||
|
@ -484,9 +484,9 @@ static int Autoroute_One_Track( PCB_EDIT_FRAME* pcbframe,
|
||||||
goto end_of_route;
|
goto end_of_route;
|
||||||
|
|
||||||
cX = ( Board.m_GridRouting * col_target )
|
cX = ( Board.m_GridRouting * col_target )
|
||||||
+ pcbframe->GetBoard()->GetBoundingBox().m_Pos.x;
|
+ pcbframe->GetBoard()->GetBoundingBox().GetX();
|
||||||
cY = ( Board.m_GridRouting * row_target )
|
cY = ( Board.m_GridRouting * row_target )
|
||||||
+ pcbframe->GetBoard()->GetBoundingBox().m_Pos.y;
|
+ pcbframe->GetBoard()->GetBoundingBox().GetY();
|
||||||
dx = pt_cur_ch->m_PadEnd->m_Size.x / 2;
|
dx = pt_cur_ch->m_PadEnd->m_Size.x / 2;
|
||||||
dy = pt_cur_ch->m_PadEnd->m_Size.y / 2;
|
dy = pt_cur_ch->m_PadEnd->m_Size.y / 2;
|
||||||
px = pt_cur_ch->m_PadEnd->GetPosition().x;
|
px = pt_cur_ch->m_PadEnd->GetPosition().x;
|
||||||
|
@ -1170,11 +1170,11 @@ static void OrCell_Trace( BOARD* pcb, int col, int row,
|
||||||
g_CurrentTrackSegment->SetLayer( 0x0F );
|
g_CurrentTrackSegment->SetLayer( 0x0F );
|
||||||
|
|
||||||
g_CurrentTrackSegment->m_Start.x =
|
g_CurrentTrackSegment->m_Start.x =
|
||||||
g_CurrentTrackSegment->m_End.x = pcb->GetBoundingBox().m_Pos.x +
|
g_CurrentTrackSegment->m_End.x = pcb->GetBoundingBox().GetX() +
|
||||||
( Board.m_GridRouting * row );
|
( Board.m_GridRouting * row );
|
||||||
|
|
||||||
g_CurrentTrackSegment->m_Start.y =
|
g_CurrentTrackSegment->m_Start.y =
|
||||||
g_CurrentTrackSegment->m_End.y = pcb->GetBoundingBox().m_Pos.y +
|
g_CurrentTrackSegment->m_End.y = pcb->GetBoundingBox().GetY() +
|
||||||
( Board.m_GridRouting * col );
|
( Board.m_GridRouting * col );
|
||||||
|
|
||||||
g_CurrentTrackSegment->m_Width = pcb->GetCurrentViaSize();
|
g_CurrentTrackSegment->m_Width = pcb->GetCurrentViaSize();
|
||||||
|
@ -1194,9 +1194,9 @@ static void OrCell_Trace( BOARD* pcb, int col, int row,
|
||||||
g_CurrentTrackSegment->SetLayer( Route_Layer_TOP );
|
g_CurrentTrackSegment->SetLayer( Route_Layer_TOP );
|
||||||
|
|
||||||
g_CurrentTrackSegment->SetState( TRACK_AR, ON );
|
g_CurrentTrackSegment->SetState( TRACK_AR, ON );
|
||||||
g_CurrentTrackSegment->m_End.x = pcb->GetBoundingBox().m_Pos.x +
|
g_CurrentTrackSegment->m_End.x = pcb->GetBoundingBox().GetX() +
|
||||||
( Board.m_GridRouting * row );
|
( Board.m_GridRouting * row );
|
||||||
g_CurrentTrackSegment->m_End.y = pcb->GetBoundingBox().m_Pos.y +
|
g_CurrentTrackSegment->m_End.y = pcb->GetBoundingBox().GetY() +
|
||||||
( Board.m_GridRouting * col );
|
( Board.m_GridRouting * col );
|
||||||
g_CurrentTrackSegment->SetNet( current_net_code );
|
g_CurrentTrackSegment->SetNet( current_net_code );
|
||||||
|
|
||||||
|
|
|
@ -248,7 +248,7 @@ int PCB_EDIT_FRAME::EraseRedundantTrack( wxDC* aDC,
|
||||||
{
|
{
|
||||||
pt_del->UnLink();
|
pt_del->UnLink();
|
||||||
pt_del->SetStatus( 0 );
|
pt_del->SetStatus( 0 );
|
||||||
pt_del->m_Flags = 0;
|
pt_del->ClearFlags();
|
||||||
ITEM_PICKER picker( pt_del, UR_DELETED );
|
ITEM_PICKER picker( pt_del, UR_DELETED );
|
||||||
aItemsListPicker->PushItem( picker );
|
aItemsListPicker->PushItem( picker );
|
||||||
}
|
}
|
||||||
|
|
|
@ -161,7 +161,7 @@ void BOARD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* DC, int aDrawMode, const wxPoint
|
||||||
// Draw the graphic items
|
// Draw the graphic items
|
||||||
for( BOARD_ITEM* item = m_Drawings; item; item = item->Next() )
|
for( BOARD_ITEM* item = m_Drawings; item; item = item->Next() )
|
||||||
{
|
{
|
||||||
if( item->m_Flags & IS_MOVED )
|
if( item->IsMoving() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
|
@ -185,7 +185,7 @@ void BOARD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* DC, int aDrawMode, const wxPoint
|
||||||
|
|
||||||
// Areas must be drawn here only if not moved or dragged,
|
// Areas must be drawn here only if not moved or dragged,
|
||||||
// because these areas are drawn by ManageCursor() in a specific manner
|
// because these areas are drawn by ManageCursor() in a specific manner
|
||||||
if ( (zone->m_Flags & (IN_EDIT | IS_DRAGGED | IS_MOVED)) == 0 )
|
if ( (zone->GetFlags() & (IN_EDIT | IS_DRAGGED | IS_MOVED)) == 0 )
|
||||||
{
|
{
|
||||||
zone->Draw( aPanel, DC, aDrawMode );
|
zone->Draw( aPanel, DC, aDrawMode );
|
||||||
zone->DrawFilledArea( aPanel, DC, aDrawMode );
|
zone->DrawFilledArea( aPanel, DC, aDrawMode );
|
||||||
|
@ -197,7 +197,7 @@ void BOARD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* DC, int aDrawMode, const wxPoint
|
||||||
bool display = true;
|
bool display = true;
|
||||||
int layerMask = ALL_CU_LAYERS;
|
int layerMask = ALL_CU_LAYERS;
|
||||||
|
|
||||||
if( module->m_Flags & IS_MOVED )
|
if( module->IsMoving() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( !IsElementVisible( PCB_VISIBLE(MOD_FR_VISIBLE) ) )
|
if( !IsElementVisible( PCB_VISIBLE(MOD_FR_VISIBLE) ) )
|
||||||
|
|
|
@ -552,7 +552,7 @@ void PCB_EDIT_FRAME::Exchange_Module( MODULE* aOldModule,
|
||||||
}
|
}
|
||||||
|
|
||||||
GetBoard()->m_Status_Pcb = 0;
|
GetBoard()->m_Status_Pcb = 0;
|
||||||
aNewModule->m_Flags = 0;
|
aNewModule->ClearFlags();
|
||||||
OnModify();
|
OnModify();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,7 @@ int PCB_EDIT_FRAME::Delete_LastCreatedCorner( wxDC* DC )
|
||||||
DrawPanel->SetMouseCapture( NULL, NULL );
|
DrawPanel->SetMouseCapture( NULL, NULL );
|
||||||
SetCurItem( NULL );
|
SetCurItem( NULL );
|
||||||
zone->RemoveAllContours();
|
zone->RemoveAllContours();
|
||||||
zone->m_Flags = 0;
|
zone->ClearFlags();
|
||||||
}
|
}
|
||||||
|
|
||||||
return zone->GetNumCorners();
|
return zone->GetNumCorners();
|
||||||
|
@ -148,7 +148,7 @@ static void Abort_Zone_Create_Outline( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
if( zone )
|
if( zone )
|
||||||
{
|
{
|
||||||
zone->DrawWhileCreateOutline( Panel, DC, GR_XOR );
|
zone->DrawWhileCreateOutline( Panel, DC, GR_XOR );
|
||||||
zone->m_Flags = 0;
|
zone->ClearFlags();
|
||||||
zone->RemoveAllContours();
|
zone->RemoveAllContours();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ void PCB_EDIT_FRAME::Start_Move_Zone_Corner( wxDC* DC, ZONE_CONTAINER* zone_cont
|
||||||
if ( IsNewCorner )
|
if ( IsNewCorner )
|
||||||
zone_container->m_Poly->InsertCorner(corner_id-1, cx, cy );
|
zone_container->m_Poly->InsertCorner(corner_id-1, cx, cy );
|
||||||
|
|
||||||
zone_container->m_Flags = IN_EDIT;
|
zone_container->SetFlags( IN_EDIT );
|
||||||
DrawPanel->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse,
|
DrawPanel->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse,
|
||||||
Abort_Zone_Move_Corner_Or_Outlines );
|
Abort_Zone_Move_Corner_Or_Outlines );
|
||||||
s_CornerInitialPosition = zone_container->GetCornerPosition( corner_id );
|
s_CornerInitialPosition = zone_container->GetCornerPosition( corner_id );
|
||||||
|
@ -208,7 +208,7 @@ void PCB_EDIT_FRAME::Start_Move_Zone_Drag_Outline_Edge( wxDC* DC,
|
||||||
ZONE_CONTAINER* zone_container,
|
ZONE_CONTAINER* zone_container,
|
||||||
int corner_id )
|
int corner_id )
|
||||||
{
|
{
|
||||||
zone_container->m_Flags = IS_DRAGGED;
|
zone_container->SetFlags( IS_DRAGGED );
|
||||||
zone_container->m_CornerSelection = corner_id;
|
zone_container->m_CornerSelection = corner_id;
|
||||||
DrawPanel->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse,
|
DrawPanel->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse,
|
||||||
Abort_Zone_Move_Corner_Or_Outlines );
|
Abort_Zone_Move_Corner_Or_Outlines );
|
||||||
|
@ -243,7 +243,7 @@ void PCB_EDIT_FRAME::Start_Move_Zone_Outlines( wxDC* DC, ZONE_CONTAINER* zone_co
|
||||||
SaveCopyOfZones( s_PickedList, GetBoard(), zone_container->GetNet(),
|
SaveCopyOfZones( s_PickedList, GetBoard(), zone_container->GetNet(),
|
||||||
zone_container->GetLayer() );
|
zone_container->GetLayer() );
|
||||||
|
|
||||||
zone_container->m_Flags = IS_MOVED;
|
zone_container->SetFlags( IS_MOVED );
|
||||||
DrawPanel->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse,
|
DrawPanel->SetMouseCapture( Show_Zone_Corner_Or_Outline_While_Move_Mouse,
|
||||||
Abort_Zone_Move_Corner_Or_Outlines );
|
Abort_Zone_Move_Corner_Or_Outlines );
|
||||||
s_CursorLastPosition = s_CornerInitialPosition = GetScreen()->GetCrossHairPosition();
|
s_CursorLastPosition = s_CornerInitialPosition = GetScreen()->GetCrossHairPosition();
|
||||||
|
@ -255,7 +255,7 @@ void PCB_EDIT_FRAME::Start_Move_Zone_Outlines( wxDC* DC, ZONE_CONTAINER* zone_co
|
||||||
|
|
||||||
void PCB_EDIT_FRAME::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER* zone_container )
|
void PCB_EDIT_FRAME::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER* zone_container )
|
||||||
{
|
{
|
||||||
zone_container->m_Flags = 0;
|
zone_container->ClearFlags();
|
||||||
DrawPanel->SetMouseCapture( NULL, NULL );
|
DrawPanel->SetMouseCapture( NULL, NULL );
|
||||||
|
|
||||||
if( DC )
|
if( DC )
|
||||||
|
@ -359,13 +359,13 @@ void Abort_Zone_Move_Corner_Or_Outlines( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
PCB_EDIT_FRAME* pcbframe = (PCB_EDIT_FRAME*) Panel->GetParent();
|
PCB_EDIT_FRAME* pcbframe = (PCB_EDIT_FRAME*) Panel->GetParent();
|
||||||
ZONE_CONTAINER* zone_container = (ZONE_CONTAINER*) pcbframe->GetCurItem();
|
ZONE_CONTAINER* zone_container = (ZONE_CONTAINER*) pcbframe->GetCurItem();
|
||||||
|
|
||||||
if( zone_container->m_Flags == IS_MOVED )
|
if( zone_container->IsMoving() )
|
||||||
{
|
{
|
||||||
wxPoint offset;
|
wxPoint offset;
|
||||||
offset = s_CornerInitialPosition - s_CursorLastPosition;
|
offset = s_CornerInitialPosition - s_CursorLastPosition;
|
||||||
zone_container->Move( offset );
|
zone_container->Move( offset );
|
||||||
}
|
}
|
||||||
else if( zone_container->m_Flags == IS_DRAGGED )
|
else if( zone_container->IsDragging() )
|
||||||
{
|
{
|
||||||
wxPoint offset;
|
wxPoint offset;
|
||||||
offset = s_CornerInitialPosition - s_CursorLastPosition;
|
offset = s_CornerInitialPosition - s_CursorLastPosition;
|
||||||
|
@ -390,7 +390,7 @@ void Abort_Zone_Move_Corner_Or_Outlines( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
||||||
Panel->Refresh();
|
Panel->Refresh();
|
||||||
|
|
||||||
pcbframe->SetCurItem( NULL );
|
pcbframe->SetCurItem( NULL );
|
||||||
zone_container->m_Flags = 0;
|
zone_container->ClearFlags();
|
||||||
s_AddCutoutToCurrentZone = false;
|
s_AddCutoutToCurrentZone = false;
|
||||||
s_CurrentZone = NULL;
|
s_CurrentZone = NULL;
|
||||||
}
|
}
|
||||||
|
@ -411,14 +411,14 @@ void Show_Zone_Corner_Or_Outline_While_Move_Mouse( EDA_DRAW_PANEL* aPanel, wxDC*
|
||||||
|
|
||||||
wxPoint pos = pcbframe->GetScreen()->GetCrossHairPosition();
|
wxPoint pos = pcbframe->GetScreen()->GetCrossHairPosition();
|
||||||
|
|
||||||
if( zone->m_Flags == IS_MOVED )
|
if( zone->IsMoving() )
|
||||||
{
|
{
|
||||||
wxPoint offset;
|
wxPoint offset;
|
||||||
offset = pos - s_CursorLastPosition;
|
offset = pos - s_CursorLastPosition;
|
||||||
zone->Move( offset );
|
zone->Move( offset );
|
||||||
s_CursorLastPosition = pos;
|
s_CursorLastPosition = pos;
|
||||||
}
|
}
|
||||||
else if( zone->m_Flags == IS_DRAGGED )
|
else if( zone->IsDragging() )
|
||||||
{
|
{
|
||||||
wxPoint offset;
|
wxPoint offset;
|
||||||
offset = pos - s_CursorLastPosition;
|
offset = pos - s_CursorLastPosition;
|
||||||
|
@ -533,7 +533,7 @@ int PCB_EDIT_FRAME::Begin_Zone( wxDC* DC )
|
||||||
// if first segment
|
// if first segment
|
||||||
if( zone->GetNumCorners() == 0 )
|
if( zone->GetNumCorners() == 0 )
|
||||||
{
|
{
|
||||||
zone->m_Flags = IS_NEW;
|
zone->SetFlags( IS_NEW );
|
||||||
zone->SetTimeStamp( GetNewTimeStamp() );
|
zone->SetTimeStamp( GetNewTimeStamp() );
|
||||||
g_Zone_Default_Setting.ExportSetting( *zone );
|
g_Zone_Default_Setting.ExportSetting( *zone );
|
||||||
zone->m_Poly->Start( g_Zone_Default_Setting.m_CurrentZone_Layer,
|
zone->m_Poly->Start( g_Zone_Default_Setting.m_CurrentZone_Layer,
|
||||||
|
@ -544,7 +544,7 @@ int PCB_EDIT_FRAME::Begin_Zone( wxDC* DC )
|
||||||
|
|
||||||
if( Drc_On && (m_drc->Drc( zone, 0 ) == BAD_DRC) && zone->IsOnCopperLayer() )
|
if( Drc_On && (m_drc->Drc( zone, 0 ) == BAD_DRC) && zone->IsOnCopperLayer() )
|
||||||
{
|
{
|
||||||
zone->m_Flags = 0;
|
zone->ClearFlags();
|
||||||
zone->RemoveAllContours();
|
zone->RemoveAllContours();
|
||||||
|
|
||||||
// use the form of SetCurItem() which does not write to the msg panel,
|
// use the form of SetCurItem() which does not write to the msg panel,
|
||||||
|
@ -608,7 +608,7 @@ bool PCB_EDIT_FRAME::End_Zone( wxDC* DC )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
zone->m_Flags = 0;
|
zone->ClearFlags();
|
||||||
|
|
||||||
zone->DrawWhileCreateOutline( DrawPanel, DC, GR_XOR );
|
zone->DrawWhileCreateOutline( DrawPanel, DC, GR_XOR );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue