Changes to use cursor position as parameter and snap to grid settings.
* Changed managed cursor callback definition to include the current cursor drawing position. * Modified all managed cursor callbacks to match new definition. * Added snap to grid option to base drawing frame object. * Changed add no connect managed cursor callback to use new position parameter instead of the stored one. * Lots of coding policy fixes.
This commit is contained in:
parent
f92d697278
commit
50f063da07
|
@ -174,6 +174,7 @@ bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* DC, int key, const wxPoint& startpo
|
|||
|
||||
Block->m_Flags = 0;
|
||||
Block->m_Command = (CmdBlockType) ReturnBlockCommand( key );
|
||||
|
||||
if( Block->m_Command == 0 )
|
||||
return FALSE;
|
||||
|
||||
|
@ -216,7 +217,7 @@ bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* DC, int key, const wxPoint& startpo
|
|||
return TRUE;
|
||||
}
|
||||
Block->m_State = STATE_BLOCK_MOVE;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, startpos, FALSE );
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -240,21 +241,22 @@ bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* DC, int key, const wxPoint& startpo
|
|||
* by Initm_BlockLocateDatas().
|
||||
* The other point of the rectangle is the mouse cursor
|
||||
*/
|
||||
void DrawAndSizingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
void DrawAndSizingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
BLOCK_SELECTOR* PtBlock;
|
||||
|
||||
PtBlock = &panel->GetScreen()->m_BlockLocate;
|
||||
PtBlock = &aPanel->GetScreen()->m_BlockLocate;
|
||||
|
||||
PtBlock->m_MoveVector = wxPoint( 0, 0 );
|
||||
|
||||
if( erase )
|
||||
PtBlock->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode, PtBlock->m_Color );
|
||||
if( aErase )
|
||||
PtBlock->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, PtBlock->m_Color );
|
||||
|
||||
PtBlock->m_BlockLastCursorPosition = panel->GetScreen()->m_Curseur;
|
||||
PtBlock->SetEnd( panel->GetScreen()->m_Curseur );
|
||||
PtBlock->m_BlockLastCursorPosition = aPanel->GetScreen()->m_Curseur;
|
||||
PtBlock->SetEnd( aPanel->GetScreen()->m_Curseur );
|
||||
|
||||
PtBlock->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode, PtBlock->m_Color );
|
||||
PtBlock->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, PtBlock->m_Color );
|
||||
|
||||
if( PtBlock->m_State == STATE_BLOCK_INIT )
|
||||
{
|
||||
|
@ -275,7 +277,7 @@ void AbortBlockCurrentCommand( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
|||
if( Panel->ManageCurseur ) /* Erase current drawing
|
||||
* on screen */
|
||||
{
|
||||
Panel->ManageCurseur( Panel, DC, FALSE ); /* Clear block outline. */
|
||||
Panel->ManageCurseur( Panel, DC, wxDefaultPosition, false ); /* Clear block outline. */
|
||||
Panel->ManageCurseur = NULL;
|
||||
Panel->ForceCloseManageCurseur = NULL;
|
||||
screen->SetCurItem( NULL );
|
||||
|
|
|
@ -78,6 +78,7 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( wxWindow* father, int idtype,
|
|||
m_LastGridSizeId = 0;
|
||||
m_DrawGrid = true; // hide/Show grid. default = show
|
||||
m_GridColor = DARKGRAY; // Grid color
|
||||
m_snapToGrid = true;
|
||||
|
||||
// Internal units per inch: = 1000 for schema, = 10000 for PCB
|
||||
m_InternalUnits = EESCHEMA_INTERNAL_UNIT;
|
||||
|
@ -450,6 +451,17 @@ void EDA_DRAW_FRAME::OnGrid( int grid_type )
|
|||
}
|
||||
|
||||
|
||||
wxPoint EDA_DRAW_FRAME::GetGridPosition( const wxPoint& aPosition )
|
||||
{
|
||||
wxPoint pos = aPosition;
|
||||
|
||||
if( m_CurrentScreen != NULL && m_snapToGrid )
|
||||
pos = m_CurrentScreen->GetNearestGridPosition( aPosition );
|
||||
|
||||
return pos;
|
||||
}
|
||||
|
||||
|
||||
int EDA_DRAW_FRAME::ReturnBlockCommand( int key )
|
||||
{
|
||||
return 0;
|
||||
|
|
|
@ -52,30 +52,30 @@ SCH_ITEM::~SCH_ITEM()
|
|||
* for an "old" item, saving it in undo list must be done before editiing,
|
||||
* and not here!
|
||||
*/
|
||||
void SCH_ITEM::Place( SCH_EDIT_FRAME* frame, wxDC* DC )
|
||||
void SCH_ITEM::Place( SCH_EDIT_FRAME* aFrame, wxDC* aDC )
|
||||
{
|
||||
SCH_SCREEN* screen = aFrame->GetScreen();
|
||||
|
||||
if( m_Flags & IS_NEW )
|
||||
{
|
||||
SCH_SCREEN* screen = frame->GetScreen();
|
||||
|
||||
if( !screen->CheckIfOnDrawList( this ) ) //don't want a loop!
|
||||
if( !screen->CheckIfOnDrawList( this ) ) // don't want a loop!
|
||||
screen->AddToDrawList( this );
|
||||
|
||||
frame->SetRepeatItem( this );
|
||||
frame->SaveCopyInUndoList( this, UR_NEW );
|
||||
aFrame->SetRepeatItem( this );
|
||||
aFrame->SaveCopyInUndoList( this, UR_NEW );
|
||||
}
|
||||
|
||||
m_Flags = 0;
|
||||
frame->GetScreen()->SetModify();
|
||||
frame->GetScreen()->SetCurItem( NULL );
|
||||
frame->DrawPanel->ManageCurseur = NULL;
|
||||
frame->DrawPanel->ForceCloseManageCurseur = NULL;
|
||||
screen->SetModify();
|
||||
screen->SetCurItem( NULL );
|
||||
aFrame->DrawPanel->ManageCurseur = NULL;
|
||||
aFrame->DrawPanel->ForceCloseManageCurseur = NULL;
|
||||
|
||||
if( DC )
|
||||
if( aDC )
|
||||
{
|
||||
frame->DrawPanel->CursorOff( DC ); // Erase schematic cursor
|
||||
Draw( frame->DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
frame->DrawPanel->CursorOn( DC ); // Display schematic cursor
|
||||
aFrame->DrawPanel->CursorOff( aDC ); // Erase schematic cursor
|
||||
Draw( aFrame->DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
aFrame->DrawPanel->CursorOn( aDC ); // Display schematic cursor
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -490,7 +490,7 @@ void DISPLAY_FOOTPRINTS_FRAME::GeneralControle( wxDC* aDC, wxPoint aPosition )
|
|||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, 0 );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, aPosition, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,8 @@ extern void DuplicateItemsInList( SCH_SCREEN* screen,
|
|||
PICKED_ITEMS_LIST& aItemsList,
|
||||
const wxPoint aMoveVector );
|
||||
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase );
|
||||
|
||||
|
||||
/* Return the block command (BLOCK_MOVE, BLOCK_COPY...) corresponding to
|
||||
|
@ -130,7 +131,7 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC )
|
|||
case BLOCK_DRAG: /* Drag */
|
||||
case BLOCK_MOVE: /* Move */
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
SaveCopyInUndoList( block->m_ItemsSelection, UR_MOVED, block->m_MoveVector );
|
||||
MoveItemsInList( block->m_ItemsSelection, block->m_MoveVector );
|
||||
|
@ -140,7 +141,7 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC )
|
|||
case BLOCK_COPY: /* Copy */
|
||||
case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
DuplicateItemsInList( GetScreen(), block->m_ItemsSelection, block->m_MoveVector );
|
||||
|
||||
|
@ -152,7 +153,7 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC )
|
|||
|
||||
case BLOCK_PASTE:
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
PasteListOfItems( DC );
|
||||
block->ClearItemsList();
|
||||
break;
|
||||
|
@ -250,14 +251,14 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
|||
{
|
||||
nextcmd = true;
|
||||
GetScreen()->SelectBlockItems();
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
DrawPanel->ManageCurseur = DrawMovingBlockOutlines;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
block->m_State = STATE_BLOCK_MOVE;
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
DrawPanel->ManageCurseur = NULL;
|
||||
DrawPanel->ForceCloseManageCurseur = NULL;
|
||||
}
|
||||
|
@ -265,7 +266,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
|||
|
||||
case BLOCK_DELETE: /* Delete */
|
||||
GetScreen()->UpdatePickList();
|
||||
DrawAndSizingBlockOutlines( DrawPanel, DC, false );
|
||||
DrawAndSizingBlockOutlines( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
if( block->GetCount() )
|
||||
{
|
||||
|
@ -280,7 +281,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
|||
|
||||
case BLOCK_SAVE: /* Save */
|
||||
GetScreen()->UpdatePickList();
|
||||
DrawAndSizingBlockOutlines( DrawPanel, DC, false );
|
||||
DrawAndSizingBlockOutlines( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
if( block->GetCount() )
|
||||
{
|
||||
|
@ -370,7 +371,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC )
|
|||
|
||||
case BLOCK_DRAG: /* move to Drag */
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
// Clear list of items to move, and rebuild it with items to drag:
|
||||
block->ClearItemsList();
|
||||
|
@ -384,7 +385,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC )
|
|||
GetScreen()->SelectBlockItems();
|
||||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
block->m_State = STATE_BLOCK_MOVE;
|
||||
}
|
||||
|
@ -392,7 +393,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC )
|
|||
|
||||
case BLOCK_DELETE: /* move to Delete */
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
if( block->GetCount() )
|
||||
{
|
||||
|
@ -406,7 +407,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC )
|
|||
|
||||
case BLOCK_SAVE: /* Save list in paste buffer*/
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
if( block->GetCount() )
|
||||
{
|
||||
|
@ -425,7 +426,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC )
|
|||
|
||||
case BLOCK_ROTATE:
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
if( block->GetCount() )
|
||||
{
|
||||
/* Compute the rotation center and put it on grid */
|
||||
|
@ -442,7 +443,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC )
|
|||
|
||||
case BLOCK_MIRROR_X:
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
if( block->GetCount() )
|
||||
{
|
||||
|
@ -459,7 +460,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC )
|
|||
|
||||
case BLOCK_MIRROR_Y:
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
if( block->GetCount() )
|
||||
{
|
||||
|
@ -496,33 +497,33 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC )
|
|||
/* Traces the outline of the search block structures
|
||||
* The entire block follows the cursor
|
||||
*/
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
BLOCK_SELECTOR* block = &panel->GetScreen()->m_BlockLocate;;
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
BLOCK_SELECTOR* block = &screen->m_BlockLocate;;
|
||||
SCH_ITEM* schitem;
|
||||
|
||||
/* Erase old block contents. */
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
block->Draw( panel, DC, block->m_MoveVector, g_XorMode, block->m_Color );
|
||||
block->Draw( aPanel, aDC, block->m_MoveVector, g_XorMode, block->m_Color );
|
||||
|
||||
for( unsigned ii = 0; ii < block->GetCount(); ii++ )
|
||||
{
|
||||
schitem = (SCH_ITEM*) block->m_ItemsSelection.GetPickedItem( ii );
|
||||
schitem->Draw( panel, DC, block->m_MoveVector, g_XorMode, g_GhostColor );
|
||||
schitem->Draw( aPanel, aDC, block->m_MoveVector, g_XorMode, g_GhostColor );
|
||||
}
|
||||
}
|
||||
|
||||
/* Repaint new view. */
|
||||
block->m_MoveVector = screen->m_Curseur - block->m_BlockLastCursorPosition;
|
||||
|
||||
block->Draw( panel, DC, block->m_MoveVector, g_XorMode, block->m_Color );
|
||||
block->Draw( aPanel, aDC, block->m_MoveVector, g_XorMode, block->m_Color );
|
||||
|
||||
for( unsigned ii = 0; ii < block->GetCount(); ii++ )
|
||||
{
|
||||
schitem = (SCH_ITEM*) block->m_ItemsSelection.GetPickedItem( ii );
|
||||
schitem->Draw( panel, DC, block->m_MoveVector, g_XorMode, g_GhostColor );
|
||||
schitem->Draw( aPanel, aDC, block->m_MoveVector, g_XorMode, g_GhostColor );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,8 @@
|
|||
#include "libeditframe.h"
|
||||
|
||||
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
|
||||
/*
|
||||
|
@ -107,12 +108,12 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
|||
nextCmd = true;
|
||||
if( DrawPanel->ManageCurseur != NULL )
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
DrawPanel->ManageCurseur = DrawMovingBlockOutlines;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
}
|
||||
GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE;
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -184,7 +185,7 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
|||
DrawPanel->ForceCloseManageCurseur = NULL;
|
||||
GetScreen()->SetCurItem( NULL );
|
||||
SetToolID( m_ID_current_state, DrawPanel->m_PanelDefaultCursor, wxEmptyString );
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
}
|
||||
|
||||
|
||||
|
@ -200,12 +201,12 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC )
|
|||
*/
|
||||
void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC )
|
||||
{
|
||||
bool err = FALSE;
|
||||
bool err = false;
|
||||
wxPoint pt;
|
||||
|
||||
if( DrawPanel->ManageCurseur == NULL )
|
||||
{
|
||||
err = TRUE;
|
||||
err = true;
|
||||
DisplayError( this, wxT( "HandleBlockPLace : ManageCurseur = NULL" ) );
|
||||
}
|
||||
|
||||
|
@ -214,7 +215,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC )
|
|||
switch( GetScreen()->m_BlockLocate.m_Command )
|
||||
{
|
||||
case BLOCK_IDLE:
|
||||
err = TRUE;
|
||||
err = true;
|
||||
break;
|
||||
|
||||
case BLOCK_DRAG: /* Drag */
|
||||
|
@ -227,7 +228,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC )
|
|||
pt.y *= -1;
|
||||
if ( m_component )
|
||||
m_component->MoveSelectedItems( pt );
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
break;
|
||||
|
||||
case BLOCK_COPY: /* Copy */
|
||||
|
@ -270,7 +271,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC )
|
|||
GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK;
|
||||
GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE;
|
||||
GetScreen()->SetCurItem( NULL );
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
|
||||
SetToolID( m_ID_current_state, DrawPanel->m_PanelDefaultCursor, wxEmptyString );
|
||||
}
|
||||
|
@ -280,14 +281,15 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC )
|
|||
* Traces the outline of the search block structures
|
||||
* The entire block follows the cursor
|
||||
*/
|
||||
void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
BLOCK_SELECTOR* PtBlock;
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
wxPoint move_offset;
|
||||
PtBlock = &screen->m_BlockLocate;
|
||||
|
||||
LIB_EDIT_FRAME* parent = ( LIB_EDIT_FRAME* ) panel->GetParent();
|
||||
LIB_EDIT_FRAME* parent = ( LIB_EDIT_FRAME* ) aPanel->GetParent();
|
||||
wxASSERT( parent != NULL );
|
||||
|
||||
LIB_COMPONENT* component = parent->GetComponent();
|
||||
|
@ -298,11 +300,11 @@ void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
int unit = parent->GetUnit();
|
||||
int convert = parent->GetConvert();
|
||||
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
PtBlock->Draw( panel, DC, PtBlock->m_MoveVector, g_XorMode, PtBlock->m_Color );
|
||||
PtBlock->Draw( aPanel, aDC, PtBlock->m_MoveVector, g_XorMode, PtBlock->m_Color );
|
||||
|
||||
component->Draw( panel, DC, PtBlock->m_MoveVector, unit, convert,
|
||||
component->Draw( aPanel, aDC, PtBlock->m_MoveVector, unit, convert,
|
||||
g_XorMode, -1, DefaultTransform, true, true, true );
|
||||
}
|
||||
|
||||
|
@ -310,9 +312,9 @@ void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
PtBlock->m_MoveVector.x = screen->m_Curseur.x - PtBlock->m_BlockLastCursorPosition.x;
|
||||
PtBlock->m_MoveVector.y = screen->m_Curseur.y - PtBlock->m_BlockLastCursorPosition.y;
|
||||
|
||||
GRSetDrawMode( DC, g_XorMode );
|
||||
PtBlock->Draw( panel, DC, PtBlock->m_MoveVector, g_XorMode, PtBlock->m_Color );
|
||||
GRSetDrawMode( aDC, g_XorMode );
|
||||
PtBlock->Draw( aPanel, aDC, PtBlock->m_MoveVector, g_XorMode, PtBlock->m_Color );
|
||||
|
||||
component->Draw( panel, DC, PtBlock->m_MoveVector, unit, convert,
|
||||
component->Draw( aPanel, aDC, PtBlock->m_MoveVector, unit, convert,
|
||||
g_XorMode, -1, DefaultTransform, true, true, true );
|
||||
}
|
||||
|
|
|
@ -73,7 +73,8 @@ static void RestoreOldWires( SCH_SCREEN* screen )
|
|||
/**
|
||||
* Mouse capture callback for drawing line segments.
|
||||
*/
|
||||
static void DrawSegment( EDA_DRAW_PANEL* aPanel, wxDC* aDC, bool aErase )
|
||||
static void DrawSegment( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
SCH_LINE* CurrentLine = (SCH_LINE*) aPanel->GetScreen()->GetCurItem();
|
||||
SCH_LINE* segment;
|
||||
|
@ -149,7 +150,7 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type )
|
|||
if( !newsegment ) /* first point : Create first wire or bus */
|
||||
{
|
||||
s_ConnexionStartPoint = cursorpos;
|
||||
s_OldWiresList = GetScreen()->ExtractWires( TRUE );
|
||||
s_OldWiresList = GetScreen()->ExtractWires( true );
|
||||
GetScreen()->SchematicCleanUp( DrawPanel );
|
||||
|
||||
switch( type )
|
||||
|
@ -203,7 +204,7 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type )
|
|||
return;
|
||||
}
|
||||
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
/* Creates the new segment, or terminates the command
|
||||
* if the end point is on a pin, junction or an other wire or bus */
|
||||
|
@ -239,7 +240,7 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type )
|
|||
oldsegment->m_Flags = SELECTED;
|
||||
newsegment->m_Flags = IS_NEW;
|
||||
GetScreen()->SetCurItem( newsegment );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
/* This is the first segment: Now we know the start segment position.
|
||||
* Create a junction if needed. Note: a junction can be needed later,
|
||||
|
@ -479,11 +480,11 @@ void SCH_EDIT_FRAME::DeleteCurrentSegment( wxDC* DC )
|
|||
/* Cancel trace in progress */
|
||||
if( GetScreen()->GetCurItem()->Type() == SCH_POLYLINE_T )
|
||||
{
|
||||
Show_Polyline_in_Ghost( DrawPanel, DC, FALSE );
|
||||
Show_Polyline_in_Ghost( DrawPanel, DC, false );
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawSegment( DrawPanel, DC, FALSE );
|
||||
DrawSegment( DrawPanel, DC, wxDefaultPosition, false );
|
||||
}
|
||||
|
||||
EraseStruct( (SCH_ITEM*) GetScreen()->GetCurItem(), GetScreen() );
|
||||
|
@ -519,17 +520,16 @@ SCH_JUNCTION* SCH_EDIT_FRAME::CreateNewJunctionStruct( wxDC* DC,
|
|||
}
|
||||
|
||||
|
||||
/* Routine to create new NoConnect struct. */
|
||||
SCH_NO_CONNECT* SCH_EDIT_FRAME::CreateNewNoConnectStruct( wxDC* DC )
|
||||
SCH_NO_CONNECT* SCH_EDIT_FRAME::AddNoConnect( wxDC* aDC, const wxPoint& aPosition )
|
||||
{
|
||||
SCH_NO_CONNECT* NewNoConnect;
|
||||
|
||||
NewNoConnect = new SCH_NO_CONNECT( GetScreen()->m_Curseur );
|
||||
NewNoConnect = new SCH_NO_CONNECT( aPosition );
|
||||
m_itemToRepeat = NewNoConnect;
|
||||
|
||||
DrawPanel->CursorOff( DC ); // Erase schematic cursor
|
||||
NewNoConnect->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
DrawPanel->CursorOn( DC ); // Display schematic cursor
|
||||
DrawPanel->CursorOff( aDC ); // Erase schematic cursor
|
||||
NewNoConnect->Draw( DrawPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
DrawPanel->CursorOn( aDC ); // Display schematic cursor
|
||||
|
||||
NewNoConnect->SetNext( GetScreen()->GetDrawItems() );
|
||||
GetScreen()->SetDrawItems( NewNoConnect );
|
||||
|
@ -645,7 +645,7 @@ void IncrementLabelMember( wxString& name )
|
|||
}
|
||||
|
||||
|
||||
/* Return TRUE if pos can be a terminal point for a wire or a bus
|
||||
/* Return true if pos can be a terminal point for a wire or a bus
|
||||
* i.e. :
|
||||
* for a WIRE, if at pos is found:
|
||||
* - a junction
|
||||
|
@ -669,7 +669,7 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer )
|
|||
item = PickStruct( pos, screen, BUS_T );
|
||||
|
||||
if( item )
|
||||
return TRUE;
|
||||
return true;
|
||||
|
||||
pinsheet = screen->GetSheetLabel( pos );
|
||||
|
||||
|
@ -678,21 +678,21 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer )
|
|||
itempos = pinsheet->m_Pos;
|
||||
|
||||
if( (itempos.x == pos.x) && (itempos.y == pos.y) )
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
||||
case LAYER_NOTES:
|
||||
item = PickStruct( pos, screen, DRAW_ITEM_T );
|
||||
if( item )
|
||||
return TRUE;
|
||||
return true;
|
||||
break;
|
||||
|
||||
case LAYER_WIRE:
|
||||
item = PickStruct( pos, screen, BUS_ENTRY_T | JUNCTION_T );
|
||||
|
||||
if( item )
|
||||
return TRUE;
|
||||
return true;
|
||||
|
||||
pin = screen->GetPin( pos, &LibItem );
|
||||
|
||||
|
@ -705,19 +705,19 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer )
|
|||
itempos.y += LibItem->m_Pos.y;
|
||||
|
||||
if( ( itempos.x == pos.x ) && ( itempos.y == pos.y ) )
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
item = PickStruct( pos, screen, WIRE_T );
|
||||
|
||||
if( item )
|
||||
return TRUE;
|
||||
return true;
|
||||
|
||||
item = PickStruct( pos, screen, LABEL_T );
|
||||
if( item && (item->Type() != SCH_TEXT_T)
|
||||
&& ( ( (SCH_GLOBALLABEL*) item )->m_Pos.x == pos.x )
|
||||
&& ( ( (SCH_GLOBALLABEL*) item )->m_Pos.y == pos.y ) )
|
||||
return TRUE;
|
||||
return true;
|
||||
|
||||
pinsheet = screen->GetSheetLabel( pos );
|
||||
|
||||
|
@ -726,7 +726,7 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer )
|
|||
itempos = pinsheet->m_Pos;
|
||||
|
||||
if( ( itempos.x == pos.x ) && ( itempos.y == pos.y ) )
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -735,7 +735,7 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer )
|
|||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
@ -750,16 +750,16 @@ static bool IsTerminalPoint( SCH_SCREEN* screen, const wxPoint& pos, int layer )
|
|||
bool IsJunctionNeeded( SCH_EDIT_FRAME* frame, wxPoint& pos )
|
||||
{
|
||||
if( PickStruct( pos, frame->GetScreen(), JUNCTION_T ) )
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
if( PickStruct( pos, frame->GetScreen(), WIRE_T | EXCLUDE_ENDPOINTS_T ) )
|
||||
{
|
||||
if( PickStruct( pos, frame->GetScreen(), WIRE_T | ENDPOINTS_ONLY_T ) )
|
||||
return TRUE;
|
||||
return true;
|
||||
|
||||
if( frame->GetScreen()->GetPin( pos, NULL, true ) )
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -50,22 +50,23 @@ static void ExitBusEntry( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
|||
}
|
||||
|
||||
|
||||
static void ShowWhileMoving( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void ShowWhileMoving( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
// Draws the bus entry while moving the cursor
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
SCH_BUS_ENTRY* BusEntry = (SCH_BUS_ENTRY*) screen->GetCurItem();
|
||||
|
||||
if( BusEntry == NULL )
|
||||
return;
|
||||
|
||||
/* Erase the last segment position. */
|
||||
if( erase )
|
||||
BusEntry->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
if( aErase )
|
||||
BusEntry->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
/* Redraw at the new position. */
|
||||
BusEntry->m_Pos = screen->m_Curseur;
|
||||
BusEntry->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
BusEntry->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -290,7 +290,7 @@ void SCH_EDIT_FRAME::GeneralControle( wxDC* aDC, const wxPoint& aPosition )
|
|||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, TRUE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, aPosition, TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -372,7 +372,7 @@ void LIB_EDIT_FRAME::GeneralControle( wxDC* aDC, const wxPoint& aPosition )
|
|||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, TRUE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, aPosition, TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -453,7 +453,7 @@ void LIB_VIEW_FRAME::GeneralControle( wxDC* aDC, const wxPoint& aPosition )
|
|||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, TRUE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, aPosition, TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,8 @@
|
|||
|
||||
|
||||
static void AbortMoveCmpField( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
static void MoveCmpField( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void MoveCmpField( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
|
@ -178,12 +179,13 @@ modified!\nYou must create a new power" ) );
|
|||
/*
|
||||
* Move standard text field. This routine is normally attached to the cursor.
|
||||
*/
|
||||
static void MoveCmpField( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void MoveCmpField( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
wxPoint pos;
|
||||
int fieldNdx;
|
||||
|
||||
SCH_EDIT_FRAME* frame = (SCH_EDIT_FRAME*) panel->GetParent();
|
||||
SCH_EDIT_FRAME* frame = (SCH_EDIT_FRAME*) aPanel->GetParent();
|
||||
SCH_FIELD* currentField = frame->GetCurrentField();
|
||||
|
||||
if( currentField == NULL )
|
||||
|
@ -193,9 +195,10 @@ static void MoveCmpField( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
fieldNdx = currentField->m_FieldId;
|
||||
|
||||
currentField->m_AddExtraText = frame->m_Multiflag;
|
||||
if( erase )
|
||||
|
||||
if( aErase )
|
||||
{
|
||||
currentField->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
currentField->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
}
|
||||
|
||||
pos = ( (SCH_COMPONENT*) currentField->GetParent() )->m_Pos;
|
||||
|
@ -204,12 +207,12 @@ static void MoveCmpField( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
// But here we want the relative position of the moved field
|
||||
// and we know the actual position.
|
||||
// So we are using the inverse rotation/mirror transform.
|
||||
wxPoint pt( panel->GetScreen()->m_Curseur - pos );
|
||||
wxPoint pt( aPanel->GetScreen()->m_Curseur - pos );
|
||||
|
||||
TRANSFORM itrsfm = component->GetTransform().InverseTransform();
|
||||
currentField->m_Pos = pos + itrsfm.TransformCoordinate( pt );
|
||||
|
||||
currentField->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
currentField->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -18,7 +18,8 @@
|
|||
#include "sch_text.h"
|
||||
|
||||
|
||||
static void ShowWhileMoving( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void ShowWhileMoving( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
static void ExitMoveTexte( EDA_DRAW_PANEL* panel, wxDC* DC );
|
||||
|
||||
|
||||
|
@ -69,7 +70,7 @@ void SCH_EDIT_FRAME::StartMoveTexte( SCH_TEXT* TextStruct, wxDC* DC )
|
|||
DrawPanel->ManageCurseur = ShowWhileMoving;
|
||||
DrawPanel->ForceCloseManageCurseur = ExitMoveTexte;
|
||||
GetScreen()->SetCurItem( TextStruct );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, true );
|
||||
|
||||
DrawPanel->CursorOn( DC );
|
||||
}
|
||||
|
@ -184,13 +185,14 @@ SCH_TEXT* SCH_EDIT_FRAME::CreateNewText( wxDC* DC, int type )
|
|||
/************************************/
|
||||
/* Redraw a Text while moving */
|
||||
/************************************/
|
||||
static void ShowWhileMoving( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void ShowWhileMoving( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
SCH_ITEM* TextStruct = (SCH_ITEM*) panel->GetScreen()->GetCurItem();
|
||||
SCH_ITEM* TextStruct = (SCH_ITEM*) aPanel->GetScreen()->GetCurItem();
|
||||
|
||||
/* "Undraw" the current text at its old position*/
|
||||
if( erase )
|
||||
TextStruct->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
if( aErase )
|
||||
TextStruct->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
/* redraw the text */
|
||||
switch( TextStruct->Type() )
|
||||
|
@ -199,14 +201,14 @@ static void ShowWhileMoving( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
case SCH_GLOBAL_LABEL_T:
|
||||
case SCH_HIERARCHICAL_LABEL_T:
|
||||
case SCH_TEXT_T:
|
||||
( (SCH_TEXT*) TextStruct )->m_Pos = panel->GetScreen()->m_Curseur;
|
||||
( (SCH_TEXT*) TextStruct )->m_Pos = aPanel->GetScreen()->m_Curseur;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
TextStruct->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
TextStruct->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ void SCH_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg )
|
|||
GetScreen()->ClrRefreshReq();
|
||||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
|
||||
DrawPanel->DrawCursor( DC );
|
||||
|
||||
|
|
|
@ -22,7 +22,8 @@
|
|||
#include <boost/foreach.hpp>
|
||||
|
||||
|
||||
static void ShowWhileMoving( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void ShowWhileMoving( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
static void ExitPlaceCmp( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
|
||||
static TRANSFORM OldTransform;
|
||||
|
@ -221,22 +222,21 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* DC,
|
|||
/**
|
||||
* Move a component.
|
||||
*/
|
||||
static void ShowWhileMoving( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void ShowWhileMoving( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
wxPoint move_vector;
|
||||
|
||||
SCH_SCREEN* screen = (SCH_SCREEN*) panel->GetScreen();
|
||||
|
||||
SCH_SCREEN* screen = (SCH_SCREEN*) aPanel->GetScreen();
|
||||
SCH_COMPONENT* Component = (SCH_COMPONENT*) screen->GetCurItem();
|
||||
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
Component->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor );
|
||||
Component->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor );
|
||||
}
|
||||
|
||||
move_vector = screen->m_Curseur - Component->m_Pos;
|
||||
Component->Move( move_vector );
|
||||
Component->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor );
|
||||
Component->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, g_GhostColor );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -217,7 +217,7 @@ void LIB_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg )
|
|||
GetScreen()->ClrRefreshReq();
|
||||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
DrawPanel->DrawCursor( DC );
|
||||
|
||||
|
|
|
@ -29,10 +29,11 @@ static wxArrayString s_PowerNameList;
|
|||
void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
||||
{
|
||||
SCH_ITEM* item = GetScreen()->GetCurItem();
|
||||
wxPoint gridPosition = GetGridPosition( aPosition );
|
||||
|
||||
if( ( m_ID_current_state == 0 ) || ( item && item->m_Flags ) )
|
||||
{
|
||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
||||
DrawPanel->m_AutoPAN_Request = false;
|
||||
m_itemToRepeat = NULL;
|
||||
|
||||
if( item && item->m_Flags )
|
||||
|
@ -52,7 +53,7 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
|||
item->Place( this, aDC );
|
||||
GetScreen()->SetCurItem( NULL );
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
return;
|
||||
|
||||
case SCH_SCREEN_T:
|
||||
|
@ -103,35 +104,35 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
|||
case ID_NOCONN_BUTT:
|
||||
if( ( item == NULL ) || ( item->m_Flags == 0 ) )
|
||||
{
|
||||
m_itemToRepeat = CreateNewNoConnectStruct( aDC );
|
||||
m_itemToRepeat = AddNoConnect( aDC, gridPosition );
|
||||
GetScreen()->SetCurItem( m_itemToRepeat );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->Place( this, aDC );
|
||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
||||
DrawPanel->m_AutoPAN_Request = false;
|
||||
}
|
||||
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
break;
|
||||
|
||||
case ID_JUNCTION_BUTT:
|
||||
if( ( item == NULL ) || ( item->m_Flags == 0 ) )
|
||||
{
|
||||
m_itemToRepeat = CreateNewJunctionStruct( aDC, GetScreen()->m_Curseur, TRUE );
|
||||
m_itemToRepeat = CreateNewJunctionStruct( aDC, GetScreen()->m_Curseur, true );
|
||||
GetScreen()->SetCurItem( m_itemToRepeat );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->Place( this, aDC );
|
||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
||||
DrawPanel->m_AutoPAN_Request = false;
|
||||
}
|
||||
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
break;
|
||||
|
||||
case ID_WIRETOBUS_ENTRY_BUTT:
|
||||
|
@ -141,7 +142,7 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
|||
item = CreateBusEntry( aDC, ( m_ID_current_state == ID_WIRETOBUS_ENTRY_BUTT ) ?
|
||||
WIRE_TO_BUS : BUS_TO_BUS );
|
||||
GetScreen()->SetCurItem( item );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -149,7 +150,7 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
|||
GetScreen()->SetCurItem( NULL );
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( true );
|
||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
||||
DrawPanel->m_AutoPAN_Request = false;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -158,34 +159,34 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
|||
OnModify();
|
||||
GetScreen()->SetCurItem( NULL );
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
break;
|
||||
|
||||
case ID_WIRE_BUTT:
|
||||
BeginSegment( aDC, LAYER_WIRE );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
break;
|
||||
|
||||
case ID_BUS_BUTT:
|
||||
BeginSegment( aDC, LAYER_BUS );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
break;
|
||||
|
||||
case ID_LINE_COMMENT_BUTT:
|
||||
BeginSegment( aDC, LAYER_NOTES );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
break;
|
||||
|
||||
case ID_TEXT_COMMENT_BUTT:
|
||||
if( ( item == NULL ) || ( item->m_Flags == 0 ) )
|
||||
{
|
||||
GetScreen()->SetCurItem( CreateNewText( aDC, LAYER_NOTES ) );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->Place( this, aDC );
|
||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
||||
DrawPanel->m_AutoPAN_Request = false;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -193,14 +194,14 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
|||
if( ( item == NULL ) || ( item->m_Flags == 0 ) )
|
||||
{
|
||||
GetScreen()->SetCurItem( CreateNewText( aDC, LAYER_LOCLABEL ) );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->Place( this, aDC );
|
||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
||||
DrawPanel->m_AutoPAN_Request = false;
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -214,14 +215,14 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
|||
if(m_ID_current_state == ID_HIERLABEL_BUTT)
|
||||
GetScreen()->SetCurItem( CreateNewText( aDC, LAYER_HIERLABEL ) );
|
||||
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->Place( this, aDC );
|
||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
||||
DrawPanel->m_AutoPAN_Request = false;
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -229,14 +230,14 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
|||
if( ( item == NULL ) || ( item->m_Flags == 0 ) )
|
||||
{
|
||||
GetScreen()->SetCurItem( CreateSheet( aDC ) );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->Place( this, aDC );
|
||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
||||
DrawPanel->m_AutoPAN_Request = false;
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -259,22 +260,22 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
|||
{
|
||||
item->Place( this, aDC );
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_COMPONENT_BUTT:
|
||||
if( (item == NULL) || (item->m_Flags == 0) )
|
||||
{
|
||||
GetScreen()->SetCurItem( Load_Component( aDC, wxEmptyString, s_CmpNameList, TRUE ) );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
GetScreen()->SetCurItem( Load_Component( aDC, wxEmptyString, s_CmpNameList, true ) );
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->Place( this, aDC );
|
||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
||||
DrawPanel->m_AutoPAN_Request = false;
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -282,15 +283,15 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition )
|
|||
if( ( item == NULL ) || ( item->m_Flags == 0 ) )
|
||||
{
|
||||
GetScreen()->SetCurItem( Load_Component( aDC, wxT( "power" ),
|
||||
s_PowerNameList, FALSE ) );
|
||||
DrawPanel->m_AutoPAN_Request = TRUE;
|
||||
s_PowerNameList, false ) );
|
||||
DrawPanel->m_AutoPAN_Request = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->Place( this, aDC );
|
||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
||||
DrawPanel->m_AutoPAN_Request = false;
|
||||
GetScreen()->TestDanglingEnds();
|
||||
DrawPanel->Refresh( TRUE );
|
||||
DrawPanel->Refresh( true );
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
static void CreateImagePins( LIB_PIN* Pin, int unit, int convert, bool asDeMorgan );
|
||||
static void AbortPinMove( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
static void DrawMovePin( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void DrawMovePin( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPositon, bool aErase );
|
||||
|
||||
|
||||
static wxPoint OldPos;
|
||||
|
@ -336,9 +336,10 @@ void LIB_EDIT_FRAME::StartMovePin( wxDC* DC )
|
|||
|
||||
/* Move pin to the current mouse position. This function is called by the
|
||||
* cursor management code. */
|
||||
static void DrawMovePin( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void DrawMovePin( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
LIB_EDIT_FRAME* parent = (LIB_EDIT_FRAME*) panel->GetParent();
|
||||
LIB_EDIT_FRAME* parent = (LIB_EDIT_FRAME*) aPanel->GetParent();
|
||||
|
||||
if( parent == NULL )
|
||||
return;
|
||||
|
@ -352,16 +353,16 @@ static void DrawMovePin( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
bool showPinText = true;
|
||||
|
||||
/* Erase pin in old position */
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
CurrentPin->SetPosition( PinPreviousPos );
|
||||
CurrentPin->Draw( panel, DC, wxPoint( 0, 0 ), -1, g_XorMode,
|
||||
CurrentPin->Draw( aPanel, aDC, wxPoint( 0, 0 ), -1, g_XorMode,
|
||||
&showPinText, DefaultTransform );
|
||||
}
|
||||
|
||||
/* Redraw pin in new position */
|
||||
CurrentPin->SetPosition( panel->GetScreen()->GetCursorDrawPosition() );
|
||||
CurrentPin->Draw( panel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &showPinText, DefaultTransform );
|
||||
CurrentPin->SetPosition( aPanel->GetScreen()->GetCursorDrawPosition() );
|
||||
CurrentPin->Draw( aPanel, aDC, wxPoint( 0, 0 ), -1, g_XorMode, &showPinText, DefaultTransform );
|
||||
|
||||
PinPreviousPos = CurrentPin->GetPosition();
|
||||
|
||||
|
|
|
@ -221,7 +221,8 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
|||
/* Move selected sheet with the cursor.
|
||||
* Callback function use by ManageCurseur.
|
||||
*/
|
||||
static void MoveOrResizeSheet( EDA_DRAW_PANEL* aPanel, wxDC* aDC, bool aErase )
|
||||
static void MoveOrResizeSheet( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
wxPoint moveVector;
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
|
@ -264,7 +265,7 @@ static void ExitSheet( EDA_DRAW_PANEL* aPanel, wxDC* aDC )
|
|||
{
|
||||
wxPoint curspos = screen->m_Curseur;
|
||||
aPanel->GetScreen()->m_Curseur = s_OldPos;
|
||||
MoveOrResizeSheet( aPanel, aDC, true );
|
||||
MoveOrResizeSheet( aPanel, aDC, wxDefaultPosition, true );
|
||||
sheet->Draw( aPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||
sheet->m_Flags = 0;
|
||||
screen->m_Curseur = curspos;
|
||||
|
@ -307,8 +308,7 @@ SCH_SHEET* SCH_EDIT_FRAME::CreateSheet( wxDC* aDC )
|
|||
|
||||
DrawPanel->ManageCurseur = MoveOrResizeSheet;
|
||||
DrawPanel->ForceCloseManageCurseur = ExitSheet;
|
||||
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, wxDefaultPosition, false );
|
||||
|
||||
return sheet;
|
||||
}
|
||||
|
@ -343,7 +343,7 @@ void SCH_EDIT_FRAME::ReSizeSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
|||
|
||||
DrawPanel->ManageCurseur = MoveOrResizeSheet;
|
||||
DrawPanel->ForceCloseManageCurseur = ExitSheet;
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, true );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, wxDefaultPosition, true );
|
||||
|
||||
if( (aSheet->m_Flags & IS_NEW) == 0 ) // not already in edit, save a copy for undo/redo
|
||||
{
|
||||
|
@ -366,7 +366,7 @@ void SCH_EDIT_FRAME::StartMoveSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
|||
aSheet->m_Flags |= IS_MOVED;
|
||||
DrawPanel->ManageCurseur = MoveOrResizeSheet;
|
||||
DrawPanel->ForceCloseManageCurseur = ExitSheet;
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, true );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, wxDefaultPosition, true );
|
||||
DrawPanel->CursorOn( aDC );
|
||||
|
||||
if( (aSheet->m_Flags & IS_NEW) == 0 ) // not already in edit, save a copy for undo/redo
|
||||
|
|
|
@ -20,7 +20,8 @@
|
|||
|
||||
|
||||
static void ExitPinSheet( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
static void Move_PinSheet( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void Move_PinSheet( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
|
||||
static int s_CurrentTypeLabel = NET_INPUT;
|
||||
|
@ -103,23 +104,24 @@ void SCH_EDIT_FRAME::StartMove_PinSheet( SCH_SHEET_PIN* SheetLabel, wxDC* DC )
|
|||
|
||||
DrawPanel->ManageCurseur = Move_PinSheet;
|
||||
DrawPanel->ForceCloseManageCurseur = ExitPinSheet;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, true );
|
||||
}
|
||||
|
||||
|
||||
static void Move_PinSheet( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void Move_PinSheet( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
SCH_SHEET_PIN* SheetLabel = (SCH_SHEET_PIN*) panel->GetScreen()->GetCurItem();
|
||||
SCH_SHEET_PIN* SheetLabel = (SCH_SHEET_PIN*) aPanel->GetScreen()->GetCurItem();
|
||||
|
||||
if( SheetLabel == NULL )
|
||||
return;
|
||||
|
||||
if( erase )
|
||||
SheetLabel->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
if( aErase )
|
||||
SheetLabel->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
|
||||
SheetLabel->ConstraintOnEdge( panel->GetScreen()->m_Curseur );
|
||||
SheetLabel->ConstraintOnEdge( aPanel->GetScreen()->m_Curseur );
|
||||
|
||||
SheetLabel->Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode );
|
||||
SheetLabel->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||
}
|
||||
|
||||
|
||||
|
@ -189,7 +191,7 @@ SCH_SHEET_PIN* SCH_EDIT_FRAME::Create_PinSheet( SCH_SHEET* Sheet, wxDC* DC )
|
|||
|
||||
DrawPanel->ManageCurseur = Move_PinSheet;
|
||||
DrawPanel->ForceCloseManageCurseur = ExitPinSheet;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, true );
|
||||
|
||||
OnModify();
|
||||
return NewSheetLabel;
|
||||
|
@ -243,7 +245,7 @@ SCH_SHEET_PIN* SCH_EDIT_FRAME::Import_PinSheet( SCH_SHEET* Sheet, wxDC* DC )
|
|||
GetScreen()->SetCurItem( NewSheetLabel );
|
||||
DrawPanel->ManageCurseur = Move_PinSheet;
|
||||
DrawPanel->ForceCloseManageCurseur = ExitPinSheet;
|
||||
Move_PinSheet( DrawPanel, DC, FALSE );
|
||||
Move_PinSheet( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
return NewSheetLabel;
|
||||
}
|
||||
|
|
|
@ -23,8 +23,10 @@
|
|||
#include "dialogs/dialog_lib_edit_draw_item.h"
|
||||
|
||||
|
||||
static void SymbolDisplayDraw( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void RedrawWhileMovingCursor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void SymbolDisplayDraw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
static void RedrawWhileMovingCursor( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
|
||||
/*
|
||||
|
@ -192,7 +194,7 @@ LIB_DRAW_ITEM* LIB_EDIT_FRAME::CreateGraphicItem( LIB_COMPONENT* LibEntry, wxDC*
|
|||
m_drawItem->SetConvert( m_convert );
|
||||
|
||||
// Draw initial symbol:
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -230,29 +232,31 @@ void LIB_EDIT_FRAME::GraphicItemBeginDraw( wxDC* DC )
|
|||
/*
|
||||
* Redraw the graphic shape while moving
|
||||
*/
|
||||
static void RedrawWhileMovingCursor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void RedrawWhileMovingCursor( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
LIB_DRAW_ITEM* item;
|
||||
|
||||
item = ( (LIB_EDIT_FRAME*) panel->GetParent() )->GetDrawItem();
|
||||
item = ( (LIB_EDIT_FRAME*) aPanel->GetParent() )->GetDrawItem();
|
||||
|
||||
if( item == NULL )
|
||||
return;
|
||||
|
||||
BASE_SCREEN* Screen = panel->GetScreen();
|
||||
BASE_SCREEN* Screen = aPanel->GetScreen();
|
||||
|
||||
item->SetEraseLastDrawItem( aErase );
|
||||
|
||||
item->SetEraseLastDrawItem( erase );
|
||||
// if item is the reference field, we must add the current unit id
|
||||
if( item->Type() == LIB_FIELD_T )
|
||||
{
|
||||
int unit = ((LIB_EDIT_FRAME*)panel->GetParent())->GetUnit();
|
||||
int unit = ((LIB_EDIT_FRAME*)aPanel->GetParent())->GetUnit();
|
||||
wxString text = ((LIB_FIELD*)item)->GetFullText( unit );
|
||||
item->Draw( panel, DC, Screen->GetCursorDrawPosition(), -1, g_XorMode, &text,
|
||||
item->Draw( aPanel, aDC, Screen->GetCursorDrawPosition(), -1, g_XorMode, &text,
|
||||
DefaultTransform );
|
||||
}
|
||||
else
|
||||
item->Draw( panel, DC, Screen->GetCursorDrawPosition(), -1, g_XorMode, NULL,
|
||||
DefaultTransform );
|
||||
item->Draw( aPanel, aDC, Screen->GetCursorDrawPosition(), -1, g_XorMode, NULL,
|
||||
DefaultTransform );
|
||||
}
|
||||
|
||||
|
||||
|
@ -267,7 +271,7 @@ void LIB_EDIT_FRAME::StartMoveDrawSymbol( wxDC* DC )
|
|||
m_drawItem->BeginEdit( IS_MOVED, GetScreen()->GetCursorDrawPosition() );
|
||||
DrawPanel->ManageCurseur = RedrawWhileMovingCursor;
|
||||
DrawPanel->ForceCloseManageCurseur = AbortSymbolTraceOn;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, true );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, true );
|
||||
}
|
||||
|
||||
|
||||
|
@ -281,21 +285,22 @@ void LIB_EDIT_FRAME::StartModifyDrawSymbol( wxDC* DC )
|
|||
m_drawItem->BeginEdit( IS_RESIZED, GetScreen()->GetCursorDrawPosition() );
|
||||
DrawPanel->ManageCurseur = SymbolDisplayDraw;
|
||||
DrawPanel->ForceCloseManageCurseur = AbortSymbolTraceOn;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, true );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, true );
|
||||
}
|
||||
|
||||
|
||||
//! @brief Manage mouse events when creating new graphic object or modifying an graphic object.
|
||||
static void SymbolDisplayDraw( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void SymbolDisplayDraw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
BASE_SCREEN* Screen = panel->GetScreen();
|
||||
LIB_DRAW_ITEM* item = ( (LIB_EDIT_FRAME*) panel->GetParent() )->GetDrawItem();
|
||||
BASE_SCREEN* Screen = aPanel->GetScreen();
|
||||
LIB_DRAW_ITEM* item = ( (LIB_EDIT_FRAME*) aPanel->GetParent() )->GetDrawItem();
|
||||
|
||||
if( item == NULL )
|
||||
return;
|
||||
|
||||
item->SetEraseLastDrawItem( erase );
|
||||
item->Draw( panel, DC, Screen->GetCursorDrawPosition(), -1, g_XorMode, NULL,
|
||||
item->SetEraseLastDrawItem( aErase );
|
||||
item->Draw( aPanel, aDC, Screen->GetCursorDrawPosition(), -1, g_XorMode, NULL,
|
||||
DefaultTransform );
|
||||
}
|
||||
|
||||
|
|
|
@ -153,8 +153,8 @@ int TEMPLATES::AddTemplateFieldName( const TEMPLATE_FIELDNAME& aFieldName )
|
|||
{
|
||||
if( m_Fields[i].m_Name == aFieldName.m_Name )
|
||||
{
|
||||
// D(printf("inserting template fieldname:'%s' at %d\n",
|
||||
// aFieldName.m_Name.utf8_str(), i );)
|
||||
D( printf( "inserting template fieldname:'%s' at %d\n",
|
||||
CONV_TO_UTF8( aFieldName.m_Name ), i ); )
|
||||
|
||||
m_Fields[i] = aFieldName;
|
||||
return i; // return the container index
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
#define BLOCK_COLOR BROWN
|
||||
|
||||
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool erase );
|
||||
|
||||
/* Return the block command (BLOCK_MOVE, BLOCK_COPY...) corresponding to
|
||||
* the key (ALT, SHIFT ALT ..)
|
||||
|
@ -106,14 +107,14 @@ void WinEDA_GerberFrame::HandleBlockPlace( wxDC* DC )
|
|||
case BLOCK_MOVE: /* Move */
|
||||
case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
Block_Move( DC );
|
||||
GetScreen()->m_BlockLocate.ClearItemsList();
|
||||
break;
|
||||
|
||||
case BLOCK_COPY: /* Copy */
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
Block_Duplicate( DC );
|
||||
GetScreen()->m_BlockLocate.ClearItemsList();
|
||||
break;
|
||||
|
@ -180,14 +181,14 @@ bool WinEDA_GerberFrame::HandleBlockEnd( wxDC* DC )
|
|||
case BLOCK_PRESELECT_MOVE: /* Move with preselection list */
|
||||
GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE;
|
||||
nextcmd = true;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
DrawPanel->ManageCurseur = DrawMovingBlockOutlines;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
break;
|
||||
|
||||
case BLOCK_DELETE: /* Delete */
|
||||
GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
Block_Delete( DC );
|
||||
break;
|
||||
|
||||
|
@ -228,29 +229,29 @@ bool WinEDA_GerberFrame::HandleBlockEnd( wxDC* DC )
|
|||
|
||||
/* Traces the outline of the block structures of a repositioning move
|
||||
*/
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPositon,
|
||||
bool aErase )
|
||||
{
|
||||
int Color;
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
|
||||
Color = YELLOW;
|
||||
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
screen->m_BlockLocate.Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode,
|
||||
Color );
|
||||
if( screen->m_BlockLocate.m_MoveVector.x
|
||||
|| screen->m_BlockLocate.m_MoveVector.y )
|
||||
screen->m_BlockLocate.Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, Color );
|
||||
|
||||
if( screen->m_BlockLocate.m_MoveVector.x|| screen->m_BlockLocate.m_MoveVector.y )
|
||||
{
|
||||
screen->m_BlockLocate.Draw( panel,
|
||||
DC,
|
||||
screen->m_BlockLocate.Draw( aPanel,
|
||||
aDC,
|
||||
screen->m_BlockLocate.m_MoveVector,
|
||||
g_XorMode,
|
||||
Color );
|
||||
}
|
||||
}
|
||||
|
||||
if( panel->GetScreen()->m_BlockLocate.m_State != STATE_BLOCK_STOP )
|
||||
if( screen->m_BlockLocate.m_State != STATE_BLOCK_STOP )
|
||||
{
|
||||
screen->m_BlockLocate.m_MoveVector.x = screen->m_Curseur.x -
|
||||
screen->m_BlockLocate.GetRight();
|
||||
|
@ -258,12 +259,12 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase
|
|||
screen->m_BlockLocate.GetBottom();
|
||||
}
|
||||
|
||||
screen->m_BlockLocate.Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode, Color );
|
||||
if( screen->m_BlockLocate.m_MoveVector.x
|
||||
|| screen->m_BlockLocate.m_MoveVector.y )
|
||||
screen->m_BlockLocate.Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, Color );
|
||||
|
||||
if( screen->m_BlockLocate.m_MoveVector.x || screen->m_BlockLocate.m_MoveVector.y )
|
||||
{
|
||||
screen->m_BlockLocate.Draw( panel,
|
||||
DC,
|
||||
screen->m_BlockLocate.Draw( aPanel,
|
||||
aDC,
|
||||
screen->m_BlockLocate.m_MoveVector,
|
||||
g_XorMode,
|
||||
Color );
|
||||
|
|
|
@ -83,7 +83,7 @@ void WinEDA_GerberFrame::GeneralControle( wxDC* aDC, const wxPoint& aPosition )
|
|||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, TRUE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, aPosition, true );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -97,12 +97,12 @@ void WinEDA_GerberFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
|
|||
break;
|
||||
}
|
||||
GetBoard()->Draw( DrawPanel, DC,
|
||||
drawMode, // this needs to be GR_COPY or GR_OR, set from a toggle button.
|
||||
wxPoint( 0, 0 ) );
|
||||
drawMode, // this needs to be GR_COPY or GR_OR, set from a toggle button.
|
||||
wxPoint( 0, 0 ) );
|
||||
|
||||
// Draw the "background" now, i.e. grid and axis after gerber layers
|
||||
// because most of time the actual background is erased by succesive drawings of each gerber layer
|
||||
// mainly in COPY mode
|
||||
// because most of time the actual background is erased by succesive drawings of each gerber
|
||||
// layer mainly in COPY mode
|
||||
DrawPanel->DrawBackGround( DC );
|
||||
|
||||
if( IsElementVisible( DCODES_VISIBLE ) )
|
||||
|
@ -111,7 +111,7 @@ void WinEDA_GerberFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
|
|||
TraceWorkSheet( DC, screen, 0 );
|
||||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
DrawPanel->DrawCursor( DC );
|
||||
|
||||
|
|
|
@ -144,7 +144,8 @@ void AbortBlockCurrentCommand( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
|||
* by InitBlockLocateDatas().
|
||||
* The other point of the rectangle is the mouse cursor
|
||||
*/
|
||||
void DrawAndSizingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
void DrawAndSizingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
|
||||
#endif /* __INCLUDE__BLOCK_COMMANDE_H__ */
|
||||
|
|
|
@ -71,10 +71,11 @@ public:
|
|||
/* Cursor management (used in editing functions) */
|
||||
|
||||
/* Mouse capture move callback function prototype. */
|
||||
void (*ManageCurseur)( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
void (*ManageCurseur)( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
/* Abort managed cursor callback function prototype. */
|
||||
void (*ForceCloseManageCurseur)( EDA_DRAW_PANEL* panel, wxDC* DC );
|
||||
void (*ForceCloseManageCurseur)( EDA_DRAW_PANEL* aPanel, wxDC* aDC );
|
||||
|
||||
public:
|
||||
|
||||
|
|
|
@ -76,7 +76,6 @@ private:
|
|||
wxString m_DefaultSchematicFileName;
|
||||
SCH_FIELD* m_CurrentField;
|
||||
int m_TextFieldSize;
|
||||
bool m_ShowGrid;
|
||||
PARAM_CFG_ARRAY m_projectFileParams;
|
||||
PARAM_CFG_ARRAY m_configSettings;
|
||||
wxPageSetupDialogData m_pageSetupData;
|
||||
|
@ -448,8 +447,14 @@ private:
|
|||
void StartMoveBusEntry( SCH_BUS_ENTRY* DrawLibItem,
|
||||
wxDC* DC );
|
||||
|
||||
// NoConnect
|
||||
SCH_NO_CONNECT* CreateNewNoConnectStruct( wxDC* DC );
|
||||
/**
|
||||
* Function AddNoConnect
|
||||
* add a no connect item to the current schematic sheet at \a aPosition.
|
||||
* @param aDC The device context to draw the no connect to.
|
||||
* @param aPosition The position in logical (drawing) units to add the no connect.
|
||||
* @return The no connect item added.
|
||||
*/
|
||||
SCH_NO_CONNECT* AddNoConnect( wxDC* aDC, const wxPoint& aPosition );
|
||||
|
||||
// Junction
|
||||
SCH_JUNCTION* CreateNewJunctionStruct( wxDC* DC,
|
||||
|
|
|
@ -243,6 +243,7 @@ protected:
|
|||
|
||||
private:
|
||||
BASE_SCREEN* m_CurrentScreen; ///< current used SCREEN
|
||||
bool m_snapToGrid; ///< Indicates if cursor should be snapped to grid.
|
||||
|
||||
protected:
|
||||
void SetBaseScreen( BASE_SCREEN* aScreen )
|
||||
|
@ -284,6 +285,7 @@ public:
|
|||
void EraseMsgBox();
|
||||
void Process_PageSettings( wxCommandEvent& event );
|
||||
virtual void SetToolbars();
|
||||
|
||||
/**
|
||||
* Function SetLanguage
|
||||
* called on a language menu selection
|
||||
|
@ -352,6 +354,15 @@ public:
|
|||
m_GridColor = aColor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function GetGridPosition
|
||||
* returns the nearest grid position to \a aPosition if a screen is defined and snap to
|
||||
* grid is enabled. Otherwise, the origianl positions is returned.
|
||||
* @see m_snapToGrid and m_BaseScreen members.
|
||||
* @param aPosition The position to test.
|
||||
* @return The wxPoint of the appropriate cursor position.
|
||||
*/
|
||||
wxPoint GetGridPosition( const wxPoint& aPosition );
|
||||
|
||||
/**
|
||||
* Command event handler for selecting grid sizes.
|
||||
|
|
|
@ -35,9 +35,11 @@ static void drawPickedItems( EDA_DRAW_PANEL* aPanel, wxDC* aDC, wxPoint aOffset
|
|||
* handles drawing of a moving block
|
||||
* @param aPanel = Current draw panel
|
||||
* @param aDC = Current device context
|
||||
* @param aPosition The cursor position in logical (drawing) units.
|
||||
* @param aErase = Erase block at current position
|
||||
**/
|
||||
static void drawMovingBlock( EDA_DRAW_PANEL* aPanel, wxDC* aDC, bool aErase );
|
||||
static void drawMovingBlock( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
|
||||
static bool blockIncludeModules = true;
|
||||
|
@ -219,14 +221,14 @@ void WinEDA_PcbFrame::HandleBlockPlace( wxDC* DC )
|
|||
case BLOCK_MOVE: /* Move */
|
||||
case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
Block_Move();
|
||||
GetScreen()->m_BlockLocate.ClearItemsList();
|
||||
break;
|
||||
|
||||
case BLOCK_COPY: /* Copy */
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
Block_Duplicate();
|
||||
GetScreen()->m_BlockLocate.ClearItemsList();
|
||||
break;
|
||||
|
@ -285,19 +287,20 @@ bool WinEDA_PcbFrame::HandleBlockEnd( wxDC* DC )
|
|||
return false;
|
||||
}
|
||||
|
||||
// Show dialog if there are no selected items and
|
||||
// we're not zooming
|
||||
// Show dialog if there are no selected items and we're not zooming
|
||||
if( !GetScreen()->m_BlockLocate.GetCount()
|
||||
&& GetScreen()->m_BlockLocate.m_Command != BLOCK_ZOOM )
|
||||
{
|
||||
if( !InstallBlockCmdFrame( this, _( "Block Operation" ) ) )
|
||||
{
|
||||
cancelCmd = true;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false ); // undraw block outline
|
||||
|
||||
// undraw block outline
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawAndSizingBlockOutlines( DrawPanel, DC, false );
|
||||
DrawAndSizingBlockOutlines( DrawPanel, DC, wxDefaultPosition, false );
|
||||
Block_SelectItems();
|
||||
|
||||
// Exit if no items found
|
||||
|
@ -323,7 +326,7 @@ bool WinEDA_PcbFrame::HandleBlockEnd( wxDC* DC )
|
|||
GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE;
|
||||
nextcmd = true;
|
||||
DrawPanel->ManageCurseur = drawMovingBlock;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
break;
|
||||
|
||||
case BLOCK_DELETE: /* Delete */
|
||||
|
@ -566,14 +569,14 @@ static void drawPickedItems( EDA_DRAW_PANEL* aPanel, wxDC* aDC, wxPoint aOffset
|
|||
}
|
||||
|
||||
|
||||
static void drawMovingBlock( EDA_DRAW_PANEL* aPanel, wxDC* aDC, bool aErase )
|
||||
static void drawMovingBlock( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
|
||||
if( aErase )
|
||||
{
|
||||
if( screen->m_BlockLocate.m_MoveVector.x
|
||||
|| screen->m_BlockLocate.m_MoveVector.y )
|
||||
if( screen->m_BlockLocate.m_MoveVector.x || screen->m_BlockLocate.m_MoveVector.y )
|
||||
{
|
||||
screen->m_BlockLocate.Draw( aPanel, aDC, screen->m_BlockLocate.m_MoveVector,
|
||||
GR_XOR, BLOCK_OUTLINE_COLOR );
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
#define IS_SELECTED 1
|
||||
|
||||
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
static int MarkItemsInBloc( MODULE* module, EDA_Rect& Rect );
|
||||
|
||||
static void ClearMarkItems( MODULE* module );
|
||||
|
@ -128,9 +129,9 @@ bool WinEDA_ModuleEditFrame::HandleBlockEnd( wxDC* DC )
|
|||
nextcmd = true;
|
||||
if( DrawPanel->ManageCurseur != NULL )
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
DrawPanel->ManageCurseur = DrawMovingBlockOutlines;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
}
|
||||
GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE;
|
||||
DrawPanel->Refresh( TRUE );
|
||||
|
@ -289,28 +290,29 @@ void WinEDA_ModuleEditFrame::HandleBlockPlace( wxDC* DC )
|
|||
/* Traces the outline of the search block structures
|
||||
* The entire block follows the cursor
|
||||
*/
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
BLOCK_SELECTOR* PtBlock;
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
BOARD_ITEM* item;
|
||||
wxPoint move_offset;
|
||||
MODULE* currentModule =
|
||||
( (WinEDA_BasePcbFrame*) wxGetApp().GetTopWindow() )->m_ModuleEditFrame->GetBoard()->m_Modules;
|
||||
|
||||
PtBlock = &screen->m_BlockLocate;
|
||||
GRSetDrawMode( DC, g_XorMode );
|
||||
GRSetDrawMode( aDC, g_XorMode );
|
||||
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
PtBlock->Draw( panel, DC, PtBlock->m_MoveVector, g_XorMode,
|
||||
PtBlock->m_Color );
|
||||
PtBlock->Draw( aPanel, aDC, PtBlock->m_MoveVector, g_XorMode, PtBlock->m_Color );
|
||||
|
||||
if( currentModule )
|
||||
{
|
||||
move_offset.x = -PtBlock->m_MoveVector.x;
|
||||
move_offset.y = -PtBlock->m_MoveVector.y;
|
||||
item = currentModule->m_Drawings;
|
||||
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
{
|
||||
if( item->m_Selected == 0 )
|
||||
|
@ -320,7 +322,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase
|
|||
{
|
||||
case TYPE_TEXTE_MODULE:
|
||||
case TYPE_EDGE_MODULE:
|
||||
item->Draw( panel, DC, g_XorMode, move_offset );
|
||||
item->Draw( aPanel, aDC, g_XorMode, move_offset );
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -329,27 +331,26 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase
|
|||
}
|
||||
|
||||
D_PAD* pad = currentModule->m_Pads;
|
||||
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
if( pad->m_Selected == 0 )
|
||||
continue;
|
||||
pad->Draw( panel, DC, g_XorMode, move_offset );
|
||||
pad->Draw( aPanel, aDC, g_XorMode, move_offset );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Repaint new view. */
|
||||
PtBlock->m_MoveVector =
|
||||
screen->m_Curseur - PtBlock->m_BlockLastCursorPosition;
|
||||
|
||||
PtBlock->Draw( panel, DC, PtBlock->m_MoveVector, g_XorMode,
|
||||
PtBlock->m_Color );
|
||||
PtBlock->m_MoveVector = screen->m_Curseur - PtBlock->m_BlockLastCursorPosition;
|
||||
|
||||
PtBlock->Draw( aPanel, aDC, PtBlock->m_MoveVector, g_XorMode, PtBlock->m_Color );
|
||||
|
||||
if( currentModule )
|
||||
{
|
||||
item = currentModule->m_Drawings;
|
||||
move_offset = - PtBlock->m_MoveVector;
|
||||
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
{
|
||||
if( item->m_Selected == 0 )
|
||||
|
@ -359,7 +360,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase
|
|||
{
|
||||
case TYPE_TEXTE_MODULE:
|
||||
case TYPE_EDGE_MODULE:
|
||||
item->Draw( panel, DC, g_XorMode, move_offset );
|
||||
item->Draw( aPanel, aDC, g_XorMode, move_offset );
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -368,11 +369,13 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase
|
|||
}
|
||||
|
||||
D_PAD* pad = currentModule->m_Pads;
|
||||
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
if( pad->m_Selected == 0 )
|
||||
continue;
|
||||
pad->Draw( panel, DC, g_XorMode, move_offset );
|
||||
|
||||
pad->Draw( aPanel, aDC, g_XorMode, move_offset );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -199,14 +199,14 @@ BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay( int aHotKeyCode )
|
|||
ADD_MENUITEM( &itemMenu, ID_POPUP_PCB_ITEM_SELECTION_START + i, text, xpm );
|
||||
}
|
||||
|
||||
/* @todo: rather than assignment to TRUE, these should be increment and decrement
|
||||
/* @todo: rather than assignment to true, these should be increment and decrement
|
||||
* operators throughout _everywhere_.
|
||||
* That way we can handle nesting.
|
||||
* But I tried that and found there cases where the assignment to TRUE (converted to
|
||||
* But I tried that and found there cases where the assignment to true (converted to
|
||||
* a m_IgnoreMouseEvents++ )
|
||||
* was not balanced with the -- (now m_IgnoreMouseEvents=FALSE), so I had to revert.
|
||||
* was not balanced with the -- (now m_IgnoreMouseEvents=false), so I had to revert.
|
||||
* Somebody should track down these and make them balanced.
|
||||
* DrawPanel->m_IgnoreMouseEvents = TRUE;
|
||||
* DrawPanel->m_IgnoreMouseEvents = true;
|
||||
*/
|
||||
|
||||
// this menu's handler is void WinEDA_BasePcbFrame::ProcessItemSelection()
|
||||
|
@ -216,7 +216,7 @@ BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay( int aHotKeyCode )
|
|||
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
|
||||
// DrawPanel->m_IgnoreMouseEvents = FALSE;
|
||||
// DrawPanel->m_IgnoreMouseEvents = false;
|
||||
|
||||
// The function ProcessItemSelection() has set the current item, return it.
|
||||
item = GetCurItem();
|
||||
|
@ -303,19 +303,19 @@ void WinEDA_PcbFrame::GeneralControle( wxDC* aDC, const wxPoint& aPosition )
|
|||
/* Put cursor on grid or a pad centre if requested. If the tool DELETE is active the
|
||||
* cursor is left off grid this is better to reach items to delete off grid,
|
||||
*/
|
||||
bool keep_on_grid = TRUE;
|
||||
bool keep_on_grid = true;
|
||||
|
||||
if( m_ID_current_state == ID_PCB_DELETE_ITEM_BUTT )
|
||||
keep_on_grid = FALSE;
|
||||
keep_on_grid = false;
|
||||
|
||||
/* Cursor is left off grid if no block in progress and no moving object */
|
||||
if( GetScreen()->m_BlockLocate.m_State != STATE_NO_BLOCK )
|
||||
keep_on_grid = TRUE;
|
||||
keep_on_grid = true;
|
||||
|
||||
EDA_ITEM* DrawStruct = GetScreen()->GetCurItem();
|
||||
|
||||
if( DrawStruct && DrawStruct->m_Flags )
|
||||
keep_on_grid = TRUE;
|
||||
keep_on_grid = true;
|
||||
|
||||
if( keep_on_grid )
|
||||
{
|
||||
|
@ -357,9 +357,9 @@ void WinEDA_PcbFrame::GeneralControle( wxDC* aDC, const wxPoint& aPosition )
|
|||
#ifdef USE_WX_OVERLAY
|
||||
wxDCOverlay oDC( DrawPanel->m_overlay, (wxWindowDC*)aDC );
|
||||
oDC.Clear();
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, aPosition, false );
|
||||
#else
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, TRUE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, aPosition, true );
|
||||
#endif
|
||||
}
|
||||
#ifdef USE_WX_OVERLAY
|
||||
|
|
|
@ -31,8 +31,7 @@ TRACK* WinEDA_PcbFrame::Delete_Segment( wxDC* DC, TRACK* aTrack )
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if( aTrack->m_Flags & IS_NEW ) // Trace in progress, erase the last
|
||||
// segment
|
||||
if( aTrack->m_Flags & IS_NEW ) // Trace in progress, erase the last segment
|
||||
{
|
||||
if( g_CurrentTrackList.GetCount() > 0 )
|
||||
{
|
||||
|
@ -41,7 +40,7 @@ TRACK* WinEDA_PcbFrame::Delete_Segment( wxDC* DC, TRACK* aTrack )
|
|||
D( g_CurrentTrackList.VerifyListIntegrity(); )
|
||||
|
||||
// Delete the current trace
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, FALSE );
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
|
||||
// delete the most recently entered
|
||||
delete g_CurrentTrackList.PopBack();
|
||||
|
@ -98,7 +97,7 @@ TRACK* WinEDA_PcbFrame::Delete_Segment( wxDC* DC, TRACK* aTrack )
|
|||
else
|
||||
{
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
|
||||
return g_CurrentTrackSegment;
|
||||
}
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
|
||||
/* Loca functions */
|
||||
static void Exit_EditDimension( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
static void Montre_Position_New_Dimension( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void Montre_Position_New_Dimension( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase );
|
||||
|
||||
/* Local variables : */
|
||||
static int status_dimension; /* Used in cimension creation:
|
||||
|
@ -295,25 +296,24 @@ DIMENSION* WinEDA_PcbFrame::Begin_Dimension( DIMENSION* Dimension, wxDC* DC )
|
|||
}
|
||||
|
||||
|
||||
/************************************************************************************/
|
||||
static void Montre_Position_New_Dimension( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
/************************************************************************************/
|
||||
/* redessin du contour de la piste lors des deplacements de la souris */
|
||||
static void Montre_Position_New_Dimension( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase )
|
||||
{
|
||||
PCB_SCREEN* screen = (PCB_SCREEN*) panel->GetScreen();
|
||||
DIMENSION* Dimension = (DIMENSION*) screen->GetCurItem();
|
||||
PCB_SCREEN* screen = (PCB_SCREEN*) aPanel->GetScreen();
|
||||
DIMENSION* Dimension = (DIMENSION*) screen->GetCurItem();
|
||||
wxPoint pos = screen->m_Curseur;
|
||||
|
||||
if( Dimension == NULL )
|
||||
return;
|
||||
|
||||
/* efface ancienne position */
|
||||
if( erase )
|
||||
// Erase previous dimension.
|
||||
if( aErase )
|
||||
{
|
||||
Dimension->Draw( panel, DC, GR_XOR );
|
||||
Dimension->Draw( aPanel, aDC, GR_XOR );
|
||||
}
|
||||
|
||||
Dimension->SetLayer( screen->m_Active_Layer );
|
||||
|
||||
if( status_dimension == 1 )
|
||||
{
|
||||
Dimension->TraitD_ox = pos.x;
|
||||
|
@ -346,7 +346,7 @@ static void Montre_Position_New_Dimension( EDA_DRAW_PANEL* panel, wxDC* DC, bool
|
|||
Dimension->AdjustDimensionDetails( );
|
||||
}
|
||||
|
||||
Dimension->Draw( panel, DC, GR_XOR );
|
||||
Dimension->Draw( aPanel, aDC, GR_XOR );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -19,9 +19,11 @@
|
|||
#include "module_editor_frame.h"
|
||||
|
||||
|
||||
static void ShowEdgeModule( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void ShowEdgeModule( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool erase );
|
||||
static void Exit_EditEdge_Module( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
static void Move_Segment( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void Move_Segment( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
int ArcValue = 900;
|
||||
static wxPoint MoveVector; // Move vector for move edge
|
||||
|
@ -43,7 +45,7 @@ void WinEDA_ModuleEditFrame::Start_Move_EdgeMod( EDGE_MODULE* Edge, wxDC* DC )
|
|||
DrawPanel->ManageCurseur = Move_Segment;
|
||||
DrawPanel->ForceCloseManageCurseur = Exit_EditEdge_Module;
|
||||
SetCurItem( Edge );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
}
|
||||
|
||||
|
||||
|
@ -72,9 +74,9 @@ void WinEDA_ModuleEditFrame::Place_EdgeMod( EDGE_MODULE* Edge )
|
|||
|
||||
|
||||
/* Move and redraw the current edited graphic item when mouse is moving */
|
||||
static void Move_Segment( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void Move_Segment( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition, bool aErase )
|
||||
{
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
EDGE_MODULE* Edge = (EDGE_MODULE*) screen->GetCurItem();
|
||||
|
||||
if( Edge == NULL )
|
||||
|
@ -82,14 +84,14 @@ static void Move_Segment( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
|
||||
MODULE* Module = (MODULE*) Edge->GetParent();
|
||||
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
Edge->Draw( panel, DC, GR_XOR, MoveVector );
|
||||
Edge->Draw( aPanel, aDC, GR_XOR, MoveVector );
|
||||
}
|
||||
|
||||
MoveVector = -(screen->m_Curseur - CursorInitialPosition);
|
||||
|
||||
Edge->Draw( panel, DC, GR_XOR, MoveVector );
|
||||
Edge->Draw( aPanel, aDC, GR_XOR, MoveVector );
|
||||
|
||||
Module->Set_Rectangle_Encadrement();
|
||||
}
|
||||
|
@ -97,9 +99,10 @@ static void Move_Segment( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
|
||||
/* Redraw the current edited (moved) graphic item
|
||||
*/
|
||||
static void ShowEdgeModule( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void ShowEdgeModule( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
EDGE_MODULE* Edge = (EDGE_MODULE*) screen->GetCurItem();
|
||||
|
||||
if( Edge == NULL )
|
||||
|
@ -109,7 +112,7 @@ static void ShowEdgeModule( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
|
||||
// if( erase )
|
||||
{
|
||||
Edge->Draw( panel, DC, GR_XOR );
|
||||
Edge->Draw( aPanel, aDC, GR_XOR );
|
||||
}
|
||||
|
||||
Edge->m_End = screen->m_Curseur;
|
||||
|
@ -118,7 +121,7 @@ static void ShowEdgeModule( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
Edge->m_End0 = Edge->m_End - Module->m_Pos;
|
||||
RotatePoint( &Edge->m_End0, -Module->m_Orient );
|
||||
|
||||
Edge->Draw( panel, DC, GR_XOR );
|
||||
Edge->Draw( aPanel, aDC, GR_XOR );
|
||||
|
||||
Module->Set_Rectangle_Encadrement();
|
||||
}
|
||||
|
|
|
@ -351,10 +351,13 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
* If a track is in progress, it will be redrawn
|
||||
*/
|
||||
if( DrawPanel->ManageCurseur == ShowNewTrackWhenMovingCursor )
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, &dc, false );
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, &dc, wxDefaultPosition, false );
|
||||
|
||||
g_Alternate_Track_Posture = !g_Alternate_Track_Posture;
|
||||
|
||||
if( DrawPanel->ManageCurseur == ShowNewTrackWhenMovingCursor )
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, &dc, false );
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, &dc, wxDefaultPosition, false );
|
||||
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_PLACE_MICROVIA:
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
#include "protos.h"
|
||||
|
||||
|
||||
static void Move_Texte_Pcb( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void Move_Texte_Pcb( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
static void Abort_Edit_Pcb_Text( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
|
||||
|
||||
|
@ -111,24 +112,25 @@ void WinEDA_PcbFrame::StartMoveTextePcb( TEXTE_PCB* TextePcb, wxDC* DC )
|
|||
DrawPanel->ManageCurseur = Move_Texte_Pcb;
|
||||
DrawPanel->ForceCloseManageCurseur = Abort_Edit_Pcb_Text;
|
||||
SetCurItem( TextePcb );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
}
|
||||
|
||||
|
||||
/* Move PCB text following the cursor. */
|
||||
static void Move_Texte_Pcb( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void Move_Texte_Pcb( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
TEXTE_PCB* TextePcb = (TEXTE_PCB*) panel->GetScreen()->GetCurItem();
|
||||
TEXTE_PCB* TextePcb = (TEXTE_PCB*) aPanel->GetScreen()->GetCurItem();
|
||||
|
||||
if( TextePcb == NULL )
|
||||
return;
|
||||
|
||||
if( erase )
|
||||
TextePcb->Draw( panel, DC, GR_XOR );
|
||||
if( aErase )
|
||||
TextePcb->Draw( aPanel, aDC, GR_XOR );
|
||||
|
||||
TextePcb->m_Pos = panel->GetScreen()->m_Curseur;
|
||||
TextePcb->m_Pos = aPanel->GetScreen()->m_Curseur;
|
||||
|
||||
TextePcb->Draw( panel, DC, GR_XOR );
|
||||
TextePcb->Draw( aPanel, aDC, GR_XOR );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -15,8 +15,10 @@
|
|||
|
||||
|
||||
static void Exit_EditEdge( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
static void Montre_Position_NewSegment( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void Move_Segment( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void Montre_Position_NewSegment( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase );
|
||||
static void Move_Segment( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
|
||||
static wxPoint s_InitialPosition; // Initial cursor position.
|
||||
|
@ -35,7 +37,7 @@ void WinEDA_PcbFrame::Start_Move_DrawItem( DRAWSEGMENT* drawitem, wxDC* DC )
|
|||
DrawPanel->ManageCurseur = Move_Segment;
|
||||
DrawPanel->ForceCloseManageCurseur = Exit_EditEdge;
|
||||
SetCurItem( drawitem );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
}
|
||||
|
||||
|
||||
|
@ -59,9 +61,10 @@ void WinEDA_PcbFrame::Place_DrawItem( DRAWSEGMENT* drawitem, wxDC* DC )
|
|||
/*
|
||||
* Redraw segment during cursor movement.
|
||||
*/
|
||||
static void Move_Segment( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void Move_Segment( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
DRAWSEGMENT* Segment = (DRAWSEGMENT*) panel->GetScreen()->GetCurItem();
|
||||
DRAWSEGMENT* Segment = (DRAWSEGMENT*) aPanel->GetScreen()->GetCurItem();
|
||||
int t_fill = DisplayOpt.DisplayDrawItems;
|
||||
|
||||
if( Segment == NULL )
|
||||
|
@ -69,16 +72,16 @@ static void Move_Segment( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
|
||||
DisplayOpt.DisplayDrawItems = SKETCH;
|
||||
|
||||
if( erase )
|
||||
Segment->Draw( panel, DC, GR_XOR );
|
||||
if( aErase )
|
||||
Segment->Draw( aPanel, aDC, GR_XOR );
|
||||
|
||||
wxPoint delta;
|
||||
delta = panel->GetScreen()->m_Curseur - s_LastPosition;
|
||||
delta = aPanel->GetScreen()->m_Curseur - s_LastPosition;
|
||||
Segment->m_Start += delta;
|
||||
Segment->m_End += delta;
|
||||
s_LastPosition = panel->GetScreen()->m_Curseur;
|
||||
s_LastPosition = aPanel->GetScreen()->m_Curseur;
|
||||
|
||||
Segment->Draw( panel, DC, GR_XOR );
|
||||
Segment->Draw( aPanel, aDC, GR_XOR );
|
||||
DisplayOpt.DisplayDrawItems = t_fill;
|
||||
}
|
||||
|
||||
|
@ -177,7 +180,7 @@ static void Exit_EditEdge( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
|||
|
||||
if( Segment->m_Flags & IS_NEW )
|
||||
{
|
||||
Panel->ManageCurseur( Panel, DC, FALSE );
|
||||
Panel->ManageCurseur( Panel, DC, wxDefaultPosition, false );
|
||||
Segment ->DeleteStructure();
|
||||
Segment = NULL;
|
||||
}
|
||||
|
@ -185,7 +188,7 @@ static void Exit_EditEdge( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
|||
{
|
||||
wxPoint pos = Panel->GetScreen()->m_Curseur;
|
||||
Panel->GetScreen()->m_Curseur = s_InitialPosition;
|
||||
Panel->ManageCurseur( Panel, DC, TRUE );
|
||||
Panel->ManageCurseur( Panel, DC, wxDefaultPosition, true );
|
||||
Panel->GetScreen()->m_Curseur = pos;
|
||||
Segment->m_Flags = 0;
|
||||
Segment->Draw( Panel, DC, GR_OR );
|
||||
|
@ -254,7 +257,7 @@ DRAWSEGMENT* WinEDA_PcbFrame::Begin_DrawSegment( DRAWSEGMENT* Segment,
|
|||
Segment->m_Type = DrawItem->m_Type;
|
||||
Segment->m_Angle = DrawItem->m_Angle;
|
||||
Segment->m_Start = Segment->m_End = DrawItem->m_End;
|
||||
Montre_Position_NewSegment( DrawPanel, DC, FALSE );
|
||||
Montre_Position_NewSegment( DrawPanel, DC, wxDefaultPosition, false );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -293,9 +296,10 @@ void WinEDA_PcbFrame::End_Edge( DRAWSEGMENT* Segment, wxDC* DC )
|
|||
|
||||
/* Redraw segment during cursor movement
|
||||
*/
|
||||
static void Montre_Position_NewSegment( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void Montre_Position_NewSegment( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase )
|
||||
{
|
||||
DRAWSEGMENT* Segment = (DRAWSEGMENT*) panel->GetScreen()->GetCurItem();
|
||||
DRAWSEGMENT* Segment = (DRAWSEGMENT*) aPanel->GetScreen()->GetCurItem();
|
||||
int t_fill = DisplayOpt.DisplayDrawItems;
|
||||
|
||||
if( Segment == NULL )
|
||||
|
@ -303,20 +307,20 @@ static void Montre_Position_NewSegment( EDA_DRAW_PANEL* panel, wxDC* DC, bool er
|
|||
|
||||
DisplayOpt.DisplayDrawItems = SKETCH;
|
||||
|
||||
if( erase )
|
||||
Segment->Draw( panel, DC, GR_XOR );
|
||||
if( aErase )
|
||||
Segment->Draw( aPanel, aDC, GR_XOR );
|
||||
|
||||
if( Segments_45_Only && ( Segment->m_Shape == S_SEGMENT ) )
|
||||
{
|
||||
Calcule_Coord_Extremite_45( panel->GetScreen()->m_Curseur,
|
||||
Calcule_Coord_Extremite_45( aPanel->GetScreen()->m_Curseur,
|
||||
Segment->m_Start.x, Segment->m_Start.y,
|
||||
&Segment->m_End.x, &Segment->m_End.y );
|
||||
}
|
||||
else /* here the angle is arbitrary */
|
||||
{
|
||||
Segment->m_End = panel->GetScreen()->m_Curseur;
|
||||
Segment->m_End = aPanel->GetScreen()->m_Curseur;
|
||||
}
|
||||
|
||||
Segment->Draw( panel, DC, GR_XOR );
|
||||
Segment->Draw( aPanel, aDC, GR_XOR );
|
||||
DisplayOpt.DisplayDrawItems = t_fill;
|
||||
}
|
||||
|
|
|
@ -142,7 +142,7 @@ bool WinEDA_PcbFrame::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
|
|||
itmp = g_CurrentTrackList.GetCount();
|
||||
Begin_Route( g_CurrentTrackSegment, DC );
|
||||
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
|
||||
/* create the via */
|
||||
SEGVIA* via = new SEGVIA( GetBoard() );
|
||||
|
@ -200,7 +200,7 @@ bool WinEDA_PcbFrame::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
|
|||
/* DRC fault: the Via cannot be placed here ... */
|
||||
delete via;
|
||||
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
|
||||
// delete the track(s) added in Begin_Route()
|
||||
while( g_CurrentTrackList.GetCount() > itmp )
|
||||
|
@ -253,7 +253,7 @@ bool WinEDA_PcbFrame::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
|
|||
g_CurrentTrackList.PushBack( g_CurrentTrackSegment->Copy() );
|
||||
}
|
||||
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
via->DisplayInfo( this );
|
||||
|
||||
UpdateStatusBar();
|
||||
|
|
|
@ -18,7 +18,8 @@
|
|||
|
||||
|
||||
static void Exit_Editrack( EDA_DRAW_PANEL* panel, wxDC* DC );
|
||||
void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase );
|
||||
static void ComputeBreakPoint( TRACK* track, int n, wxPoint end );
|
||||
static void DeleteNullTrackSegments( BOARD* pcb, DLIST<TRACK>& aTrackList );
|
||||
|
||||
|
@ -41,7 +42,7 @@ static void Exit_Editrack( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
|||
if( track && ( track->Type()==TYPE_VIA || track->Type()==TYPE_TRACK ) )
|
||||
{
|
||||
/* Erase the current drawing */
|
||||
ShowNewTrackWhenMovingCursor( Panel, DC, false );
|
||||
ShowNewTrackWhenMovingCursor( Panel, DC, wxDefaultPosition, false );
|
||||
if( g_HighLight_Status )
|
||||
frame->High_Light( DC );
|
||||
|
||||
|
@ -192,7 +193,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* aTrack, wxDC* DC )
|
|||
|
||||
g_CurrentTrackSegment->DisplayInfoBase( this );
|
||||
SetCurItem( g_CurrentTrackSegment, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
if( Drc_On )
|
||||
{
|
||||
|
@ -203,8 +204,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* aTrack, wxDC* DC )
|
|||
}
|
||||
}
|
||||
}
|
||||
else /* Track in progress : segment coordinates are updated by
|
||||
* ShowNewTrackWhenMovingCursor*/
|
||||
else // Track in progress : segment coordinates are updated by ShowNewTrackWhenMovingCursor.
|
||||
{
|
||||
/* Tst for a D.R.C. error: */
|
||||
if( Drc_On )
|
||||
|
@ -241,7 +241,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* aTrack, wxDC* DC )
|
|||
/* Erase old track on screen */
|
||||
D( g_CurrentTrackList.VerifyListIntegrity(); );
|
||||
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, false );
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, wxDefaultPosition, false );
|
||||
|
||||
D( g_CurrentTrackList.VerifyListIntegrity(); );
|
||||
|
||||
|
@ -280,7 +280,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* aTrack, wxDC* DC )
|
|||
D( g_CurrentTrackList.VerifyListIntegrity(); );
|
||||
|
||||
/* Show the new position */
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, false );
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, wxDefaultPosition, false );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -440,8 +440,8 @@ void WinEDA_PcbFrame::End_Route( TRACK* aTrack, wxDC* DC )
|
|||
if( Begin_Route( aTrack, DC ) == NULL )
|
||||
return;
|
||||
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, true );
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, false );
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, wxDefaultPosition, true );
|
||||
ShowNewTrackWhenMovingCursor( DrawPanel, DC, wxDefaultPosition, false );
|
||||
trace_ratsnest_pad( DC );
|
||||
|
||||
/* cleanup
|
||||
|
@ -669,18 +669,19 @@ static void PushTrack( EDA_DRAW_PANEL* panel )
|
|||
|
||||
/* Redraw the current track beiing created when the mouse cursor is moved
|
||||
*/
|
||||
void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
D( g_CurrentTrackList.VerifyListIntegrity(); );
|
||||
|
||||
PCB_SCREEN* screen = (PCB_SCREEN*) panel->GetScreen();
|
||||
WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) panel->GetParent();
|
||||
PCB_SCREEN* screen = (PCB_SCREEN*) aPanel->GetScreen();
|
||||
WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) aPanel->GetParent();
|
||||
|
||||
bool Track_fill_copy = DisplayOpt.DisplayPcbTrackFill;
|
||||
DisplayOpt.DisplayPcbTrackFill = true;
|
||||
int showTrackClearanceMode = DisplayOpt.ShowTrackClearanceMode;
|
||||
|
||||
if (g_FirstTrackSegment == NULL)
|
||||
if ( g_FirstTrackSegment == NULL )
|
||||
return;
|
||||
|
||||
NETCLASS* netclass = g_FirstTrackSegment->GetNetClass();
|
||||
|
@ -689,22 +690,17 @@ void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
DisplayOpt.ShowTrackClearanceMode = SHOW_CLEARANCE_ALWAYS;
|
||||
|
||||
/* Erase old track */
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
Trace_Une_Piste( panel,
|
||||
DC,
|
||||
g_FirstTrackSegment,
|
||||
g_CurrentTrackList.GetCount(),
|
||||
GR_XOR );
|
||||
Trace_Une_Piste( aPanel, aDC, g_FirstTrackSegment, g_CurrentTrackList.GetCount(), GR_XOR );
|
||||
|
||||
frame->trace_ratsnest_pad( DC );
|
||||
frame->trace_ratsnest_pad( aDC );
|
||||
|
||||
if( showTrackClearanceMode >= SHOW_CLEARANCE_NEW_TRACKS_AND_VIA_AREAS )
|
||||
{
|
||||
int color =
|
||||
g_ColorsSettings.GetLayerColor(g_CurrentTrackSegment->GetLayer());
|
||||
int color = g_ColorsSettings.GetLayerColor(g_CurrentTrackSegment->GetLayer());
|
||||
|
||||
GRCircle( &panel->m_ClipBox, DC, g_CurrentTrackSegment->m_End.x,
|
||||
GRCircle( &aPanel->m_ClipBox, aDC, g_CurrentTrackSegment->m_End.x,
|
||||
g_CurrentTrackSegment->m_End.y,
|
||||
( netclass->GetViaDiameter() / 2 ) + netclass->GetClearance(),
|
||||
color );
|
||||
|
@ -717,19 +713,20 @@ void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
|
||||
// Set track parameters, that can be modified while creating the track
|
||||
g_CurrentTrackSegment->SetLayer( screen->m_Active_Layer );
|
||||
|
||||
if( !frame->GetBoard()->GetBoardDesignSettings()->m_UseConnectedTrackWidth )
|
||||
g_CurrentTrackSegment->m_Width = frame->GetBoard()->GetCurrentTrackWidth();
|
||||
|
||||
if( g_TwoSegmentTrackBuild )
|
||||
{
|
||||
TRACK* previous_track = g_CurrentTrackSegment->Back();
|
||||
|
||||
if( previous_track && previous_track->Type()==TYPE_TRACK )
|
||||
{
|
||||
previous_track->SetLayer( screen->m_Active_Layer );
|
||||
|
||||
if( !frame->GetBoard()->GetBoardDesignSettings()->m_UseConnectedTrackWidth )
|
||||
previous_track->m_Width =
|
||||
frame->GetBoard()->GetCurrentTrackWidth();
|
||||
previous_track->m_Width = frame->GetBoard()->GetCurrentTrackWidth();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -740,7 +737,7 @@ void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
g_CurrentTrackSegment->m_End = screen->m_Curseur;
|
||||
|
||||
if( Drc_On )
|
||||
PushTrack( panel );
|
||||
PushTrack( aPanel );
|
||||
|
||||
ComputeBreakPoint( g_CurrentTrackSegment,
|
||||
g_CurrentTrackList.GetCount(),
|
||||
|
@ -765,18 +762,13 @@ void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
|
||||
/* Redraw the new track */
|
||||
D( g_CurrentTrackList.VerifyListIntegrity(); );
|
||||
Trace_Une_Piste( panel,
|
||||
DC,
|
||||
g_FirstTrackSegment,
|
||||
g_CurrentTrackList.GetCount(),
|
||||
GR_XOR );
|
||||
Trace_Une_Piste( aPanel, aDC, g_FirstTrackSegment, g_CurrentTrackList.GetCount(), GR_XOR );
|
||||
|
||||
if( showTrackClearanceMode >= SHOW_CLEARANCE_NEW_TRACKS_AND_VIA_AREAS )
|
||||
{
|
||||
int color =
|
||||
g_ColorsSettings.GetLayerColor(g_CurrentTrackSegment->GetLayer());
|
||||
int color = g_ColorsSettings.GetLayerColor(g_CurrentTrackSegment->GetLayer());
|
||||
|
||||
GRCircle( &panel->m_ClipBox, DC, g_CurrentTrackSegment->m_End.x,
|
||||
GRCircle( &aPanel->m_ClipBox, aDC, g_CurrentTrackSegment->m_End.x,
|
||||
g_CurrentTrackSegment->m_End.y,
|
||||
( netclass->GetViaDiameter() / 2 ) + netclass->GetClearance(),
|
||||
color );
|
||||
|
@ -811,7 +803,7 @@ void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
DisplayOpt.DisplayPcbTrackFill = Track_fill_copy;
|
||||
|
||||
frame->build_ratsnest_pad( NULL, g_CurrentTrackSegment->m_End, false );
|
||||
frame->trace_ratsnest_pad( DC );
|
||||
frame->trace_ratsnest_pad( aDC );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -13,7 +13,8 @@
|
|||
#include "protos.h"
|
||||
|
||||
|
||||
static void Show_MoveTexte_Module( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void Show_MoveTexte_Module( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
static void AbortMoveTextModule( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
|
||||
|
||||
|
@ -190,7 +191,7 @@ void WinEDA_BasePcbFrame::StartMoveTexteModule( TEXTE_MODULE* Text, wxDC* DC )
|
|||
DrawPanel->ManageCurseur = Show_MoveTexte_Module;
|
||||
DrawPanel->ForceCloseManageCurseur = AbortMoveTextModule;
|
||||
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, TRUE );
|
||||
}
|
||||
|
||||
|
||||
|
@ -240,28 +241,30 @@ void WinEDA_BasePcbFrame::PlaceTexteModule( TEXTE_MODULE* Text, wxDC* DC )
|
|||
}
|
||||
|
||||
|
||||
static void Show_MoveTexte_Module( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void Show_MoveTexte_Module( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
TEXTE_MODULE* Text = (TEXTE_MODULE*) screen->GetCurItem();
|
||||
|
||||
if( Text == NULL )
|
||||
return;
|
||||
|
||||
// Erase umbilical and text if necessary
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
Text->DrawUmbilical( panel, DC, GR_XOR, -MoveVector );
|
||||
Text->Draw( panel, DC, GR_XOR, MoveVector );
|
||||
Text->DrawUmbilical( aPanel, aDC, GR_XOR, -MoveVector );
|
||||
Text->Draw( aPanel, aDC, GR_XOR, MoveVector );
|
||||
}
|
||||
|
||||
MoveVector = TextInitialPosition - screen->m_Curseur;
|
||||
|
||||
// Draw umbilical if text moved
|
||||
if( MoveVector.x || MoveVector.y )
|
||||
Text->DrawUmbilical( panel, DC, GR_XOR, -MoveVector );
|
||||
Text->DrawUmbilical( aPanel, aDC, GR_XOR, -MoveVector );
|
||||
|
||||
// Redraw text
|
||||
Text->Draw( panel, DC, GR_XOR, MoveVector );
|
||||
Text->Draw( aPanel, aDC, GR_XOR, MoveVector );
|
||||
}
|
||||
|
||||
void WinEDA_BasePcbFrame::ResetTextSize( BOARD_ITEM* aItem, wxDC* aDC )
|
||||
|
|
|
@ -16,9 +16,10 @@
|
|||
|
||||
/* Routines Locales */
|
||||
static void AbortMoveAndEditTarget( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
static void ShowTargetShapeWhileMovingMouse( EDA_DRAW_PANEL* panel,
|
||||
wxDC* DC,
|
||||
bool erase );
|
||||
static void ShowTargetShapeWhileMovingMouse( EDA_DRAW_PANEL* aPanel,
|
||||
wxDC* aDC,
|
||||
const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
/* Local variables : */
|
||||
static int MireDefaultSize = 5000;
|
||||
|
@ -279,18 +280,19 @@ void WinEDA_PcbFrame::Place_Mire( MIREPCB* MirePcb, wxDC* DC )
|
|||
|
||||
|
||||
/* Redraw the contour of the track while moving the mouse */
|
||||
static void ShowTargetShapeWhileMovingMouse( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void ShowTargetShapeWhileMovingMouse( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase )
|
||||
{
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
MIREPCB* MirePcb = (MIREPCB*) screen->GetCurItem();
|
||||
|
||||
if( MirePcb == NULL )
|
||||
return;
|
||||
|
||||
if( erase )
|
||||
MirePcb->Draw( panel, DC, GR_XOR );
|
||||
if( aErase )
|
||||
MirePcb->Draw( aPanel, aDC, GR_XOR );
|
||||
|
||||
MirePcb->m_Pos = screen->m_Curseur;
|
||||
|
||||
MirePcb->Draw( panel, DC, GR_XOR );
|
||||
MirePcb->Draw( aPanel, aDC, GR_XOR );
|
||||
}
|
||||
|
|
|
@ -523,7 +523,7 @@ void WinEDA_ModuleEditFrame::GeneralControle( wxDC* aDC, const wxPoint& aPositio
|
|||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, true );
|
||||
DrawPanel->ManageCurseur( DrawPanel, aDC, aPosition, true );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ void WinEDA_PcbFrame::StartMove_Module( MODULE* module, wxDC* DC )
|
|||
module->m_Flags = tmp;
|
||||
}
|
||||
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
}
|
||||
|
||||
|
||||
|
@ -231,24 +231,25 @@ MODULE* WinEDA_BasePcbFrame::Copie_Module( MODULE* module )
|
|||
|
||||
/* Redraw the footprint when moving the mouse.
|
||||
*/
|
||||
void Montre_Position_Empreinte( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
void Montre_Position_Empreinte( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
MODULE* module = (MODULE*) panel->GetScreen()->GetCurItem();
|
||||
MODULE* module = (MODULE*) aPanel->GetScreen()->GetCurItem();
|
||||
|
||||
if( module == NULL )
|
||||
if( module == NULL )
|
||||
return;
|
||||
|
||||
/* Erase current footprint. */
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
DrawModuleOutlines( panel, DC, module );
|
||||
DrawModuleOutlines( aPanel, aDC, module );
|
||||
}
|
||||
|
||||
/* Redraw the module at the new position. */
|
||||
g_Offset_Module = module->m_Pos - panel->GetScreen()->m_Curseur;
|
||||
DrawModuleOutlines( panel, DC, module );
|
||||
g_Offset_Module = module->m_Pos - aPanel->GetScreen()->m_Curseur;
|
||||
DrawModuleOutlines( aPanel, aDC, module );
|
||||
|
||||
Dessine_Segments_Dragges( panel, DC );
|
||||
Dessine_Segments_Dragges( aPanel, aDC );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -57,17 +57,18 @@ static void Exit_Move_Pad( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
|||
|
||||
/* Draw in drag mode when moving a pad.
|
||||
*/
|
||||
static void Show_Pad_Move( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void Show_Pad_Move( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
TRACK* Track;
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
D_PAD* pad = s_CurrentSelectedPad;
|
||||
|
||||
if( erase )
|
||||
pad->Draw( panel, DC, GR_XOR );
|
||||
if( aErase )
|
||||
pad->Draw( aPanel, aDC, GR_XOR );
|
||||
|
||||
pad->m_Pos = screen->m_Curseur;
|
||||
pad->Draw( panel, DC, GR_XOR );
|
||||
pad->Draw( aPanel, aDC, GR_XOR );
|
||||
|
||||
if( !g_Drag_Pistes_On )
|
||||
return;
|
||||
|
@ -75,17 +76,21 @@ static void Show_Pad_Move( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
for( unsigned ii = 0; ii < g_DragSegmentList.size(); ii++ )
|
||||
{
|
||||
Track = g_DragSegmentList[ii].m_Segm;
|
||||
if( erase )
|
||||
Track->Draw( panel, DC, GR_XOR );
|
||||
|
||||
if( aErase )
|
||||
Track->Draw( aPanel, aDC, GR_XOR );
|
||||
|
||||
if( g_DragSegmentList[ii].m_Pad_Start )
|
||||
{
|
||||
Track->m_Start = pad->m_Pos;
|
||||
}
|
||||
|
||||
if( g_DragSegmentList[ii].m_Pad_End )
|
||||
{
|
||||
Track->m_End = pad->m_Pos;
|
||||
}
|
||||
Track->Draw( panel, DC, GR_XOR );
|
||||
|
||||
Track->Draw( aPanel, aDC, GR_XOR );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,10 +19,12 @@
|
|||
#include "protos.h"
|
||||
|
||||
|
||||
static void Show_MoveNode( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* panel,
|
||||
wxDC* DC,
|
||||
bool erase );
|
||||
static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel,
|
||||
wxDC* aDC,
|
||||
const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
static void Abort_MoveTrack( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
static bool InitialiseDragParameters();
|
||||
|
||||
|
@ -59,7 +61,7 @@ static void Abort_MoveTrack( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
|||
Panel->GetScreen()->m_Curseur = PosInit;
|
||||
|
||||
if( Panel->ManageCurseur )
|
||||
Panel->ManageCurseur( Panel, DC, true );
|
||||
Panel->ManageCurseur( Panel, DC, wxDefaultPosition, true );
|
||||
|
||||
Panel->GetScreen()->m_Curseur = oldpos;
|
||||
g_HighLight_Status = false;
|
||||
|
@ -134,24 +136,25 @@ static void Abort_MoveTrack( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
|||
|
||||
|
||||
/* Redraw the moved node according to the mouse cursor position */
|
||||
static void Show_MoveNode( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase )
|
||||
{
|
||||
int ii;
|
||||
wxPoint moveVector;
|
||||
TRACK* Track;
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
int track_fill_copy = DisplayOpt.DisplayPcbTrackFill;
|
||||
int draw_mode = GR_XOR | GR_SURBRILL;
|
||||
|
||||
DisplayOpt.DisplayPcbTrackFill = false;
|
||||
|
||||
erase = true;
|
||||
aErase = true;
|
||||
|
||||
/* erase the current moved track segments from screen */
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
if( NewTrack )
|
||||
Trace_Une_Piste( panel, DC, NewTrack, NbPtNewTrack, draw_mode );
|
||||
Trace_Une_Piste( aPanel, aDC, NewTrack, NbPtNewTrack, draw_mode );
|
||||
}
|
||||
|
||||
/* set the new track coordinates */
|
||||
|
@ -162,22 +165,25 @@ static void Show_MoveNode( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
|
||||
ii = NbPtNewTrack;
|
||||
Track = NewTrack;
|
||||
|
||||
for( ; (ii > 0) && (Track != NULL); ii--, Track = Track->Next() )
|
||||
{
|
||||
if( Track->m_Flags & STARTPOINT )
|
||||
Track->m_Start += moveVector;
|
||||
|
||||
if( Track->m_Flags & ENDPOINT )
|
||||
Track->m_End += moveVector;
|
||||
}
|
||||
|
||||
/* Redraw the current moved track segments */
|
||||
Trace_Une_Piste( panel, DC, NewTrack, NbPtNewTrack, draw_mode );
|
||||
Trace_Une_Piste( aPanel, aDC, NewTrack, NbPtNewTrack, draw_mode );
|
||||
|
||||
for( unsigned ii = 0; ii < g_DragSegmentList.size(); ii++ )
|
||||
{
|
||||
Track = g_DragSegmentList[ii].m_Segm;
|
||||
if( erase )
|
||||
Track->Draw( panel, DC, draw_mode );
|
||||
|
||||
if( aErase )
|
||||
Track->Draw( aPanel, aDC, draw_mode );
|
||||
|
||||
if( Track->m_Flags & STARTPOINT )
|
||||
Track->m_Start += moveVector;
|
||||
|
@ -185,13 +191,13 @@ static void Show_MoveNode( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
if( Track->m_Flags & ENDPOINT )
|
||||
Track->m_End += moveVector;
|
||||
|
||||
Track->Draw( panel, DC, draw_mode );
|
||||
Track->Draw( aPanel, aDC, draw_mode );
|
||||
}
|
||||
|
||||
DisplayOpt.DisplayPcbTrackFill = track_fill_copy;
|
||||
|
||||
// Display track length
|
||||
WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) panel->GetParent();
|
||||
WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) aPanel->GetParent();
|
||||
Track->DisplayInfo( frame );
|
||||
}
|
||||
|
||||
|
@ -236,15 +242,15 @@ static void Show_MoveNode( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
|||
* when moving segments
|
||||
* (i.e. when a segment length is 0) and we want keep them constant
|
||||
*/
|
||||
static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* panel,
|
||||
wxDC* DC, bool erase )
|
||||
static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase )
|
||||
{
|
||||
double xi1 = 0, yi1 = 0, xi2 = 0, yi2 = 0; // calculated
|
||||
// intersection points
|
||||
double tx1, tx2, ty1, ty2; // temporary storage of
|
||||
// points
|
||||
int dx, dy;
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
BASE_SCREEN* screen = aPanel->GetScreen();
|
||||
bool update = true;
|
||||
TRACK* Track;
|
||||
TRACK* tSegmentToStart = NULL, * tSegmentToEnd = NULL;
|
||||
|
@ -260,17 +266,21 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* panel,
|
|||
*/
|
||||
int ii = g_DragSegmentList.size() - 1;
|
||||
Track = g_DragSegmentList[ii].m_Segm;
|
||||
|
||||
if( Track == NULL )
|
||||
return;
|
||||
|
||||
ii--;
|
||||
|
||||
if( ii >= 0)
|
||||
{
|
||||
if( s_EndSegmentPresent )
|
||||
if( s_EndSegmentPresent )
|
||||
{
|
||||
// Get the segment connected to the end point
|
||||
tSegmentToEnd = g_DragSegmentList[ii].m_Segm;
|
||||
ii--;
|
||||
}
|
||||
|
||||
if( s_StartSegmentPresent )
|
||||
{
|
||||
// Get the segment connected to the start point
|
||||
|
@ -280,16 +290,18 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* panel,
|
|||
}
|
||||
|
||||
int draw_mode = GR_XOR | GR_SURBRILL;
|
||||
|
||||
/* Undraw the current moved track segments before modification*/
|
||||
|
||||
// if( erase )
|
||||
{
|
||||
Track->Draw( panel, DC, draw_mode );
|
||||
Track->Draw( aPanel, aDC, draw_mode );
|
||||
|
||||
if( tSegmentToStart )
|
||||
tSegmentToStart->Draw( panel, DC, draw_mode );
|
||||
tSegmentToStart->Draw( aPanel, aDC, draw_mode );
|
||||
|
||||
if( tSegmentToEnd )
|
||||
tSegmentToEnd->Draw( panel, DC, draw_mode );
|
||||
tSegmentToEnd->Draw( aPanel, aDC, draw_mode );
|
||||
}
|
||||
|
||||
/* Compute the new track segment position */
|
||||
|
@ -431,6 +443,7 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* panel,
|
|||
Track->m_Start.y = wxRound( yi1 );
|
||||
Track->m_End.x = wxRound( xi2 );
|
||||
Track->m_End.y = wxRound( yi2 );
|
||||
|
||||
if( tSegmentToEnd )
|
||||
{
|
||||
if( tSegmentToEnd->m_Flags & STARTPOINT )
|
||||
|
@ -438,6 +451,7 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* panel,
|
|||
else
|
||||
tSegmentToEnd->m_End = Track->m_End;
|
||||
}
|
||||
|
||||
if( tSegmentToStart )
|
||||
{
|
||||
if( tSegmentToStart->m_Flags & STARTPOINT )
|
||||
|
@ -447,14 +461,16 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* panel,
|
|||
}
|
||||
}
|
||||
|
||||
Track->Draw( panel, DC, draw_mode );
|
||||
Track->Draw( aPanel, aDC, draw_mode );
|
||||
|
||||
if( tSegmentToStart )
|
||||
tSegmentToStart->Draw( panel, DC, draw_mode );
|
||||
tSegmentToStart->Draw( aPanel, aDC, draw_mode );
|
||||
|
||||
if( tSegmentToEnd )
|
||||
tSegmentToEnd->Draw( panel, DC, draw_mode );
|
||||
tSegmentToEnd->Draw( aPanel, aDC, draw_mode );
|
||||
|
||||
// Display track length
|
||||
WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) panel->GetParent();
|
||||
WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) aPanel->GetParent();
|
||||
Track->DisplayInfo( frame );
|
||||
}
|
||||
|
||||
|
@ -731,7 +747,7 @@ void WinEDA_PcbFrame::Start_MoveOneNodeOrSegment( TRACK* track,
|
|||
g_HighLight_Status = true;
|
||||
|
||||
GetBoard()->DrawHighLight( DrawPanel, DC, g_HighLight_NetCode );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, true );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, true );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -30,9 +30,10 @@ static void gen_arc( std::vector <wxPoint>& aBuffer,
|
|||
wxPoint aStartPoint,
|
||||
wxPoint aCenter,
|
||||
int a_ArcAngle );
|
||||
static void ShowBoundingBoxMicroWaveInductor( EDA_DRAW_PANEL* panel,
|
||||
wxDC* DC,
|
||||
bool erase );
|
||||
static void ShowBoundingBoxMicroWaveInductor( EDA_DRAW_PANEL* apanel,
|
||||
wxDC* aDC,
|
||||
const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
|
||||
int BuildCornersList_S_Shape( std::vector <wxPoint>& aBuffer,
|
||||
|
@ -57,13 +58,14 @@ static int Self_On;
|
|||
/* This function shows on screen the bounding box of the inductor that will be
|
||||
* created at the end of the build inductor process
|
||||
*/
|
||||
static void ShowBoundingBoxMicroWaveInductor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
static void ShowBoundingBoxMicroWaveInductor( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase )
|
||||
{
|
||||
/* Calculate the orientation and size of the box containing the inductor:
|
||||
* the box is a rectangle with height = lenght/2
|
||||
* the shape is defined by a rectangle, nor necessary horizontal or vertical
|
||||
*/
|
||||
GRSetDrawMode( DC, GR_XOR );
|
||||
GRSetDrawMode( aDC, GR_XOR );
|
||||
|
||||
wxPoint poly[5];
|
||||
wxPoint pt = Mself.m_End - Mself.m_Start;
|
||||
|
@ -81,12 +83,12 @@ static void ShowBoundingBoxMicroWaveInductor( EDA_DRAW_PANEL* panel, wxDC* DC, b
|
|||
poly[3] = Mself.m_Start + pt;
|
||||
poly[4] = poly[0];
|
||||
|
||||
if( erase )
|
||||
if( aErase )
|
||||
{
|
||||
GRPoly( &panel->m_ClipBox, DC, 5, poly, false, 0, YELLOW, YELLOW );
|
||||
GRPoly( &aPanel->m_ClipBox, aDC, 5, poly, false, 0, YELLOW, YELLOW );
|
||||
}
|
||||
|
||||
Mself.m_End = panel->GetScreen()->m_Curseur;
|
||||
Mself.m_End = aPanel->GetScreen()->m_Curseur;
|
||||
pt = Mself.m_End - Mself.m_Start;
|
||||
angle = -wxRound( atan2( (double) pt.y, (double) pt.x ) * 1800.0 / M_PI );
|
||||
len = wxRound( sqrt( (double) pt.x * pt.x + (double) pt.y * pt.y ) );
|
||||
|
@ -102,7 +104,7 @@ static void ShowBoundingBoxMicroWaveInductor( EDA_DRAW_PANEL* panel, wxDC* DC, b
|
|||
poly[3] = Mself.m_Start + pt;
|
||||
poly[4] = poly[0];
|
||||
|
||||
GRPoly( &panel->m_ClipBox, DC, 5, poly, false, 0, YELLOW, YELLOW );
|
||||
GRPoly( &aPanel->m_ClipBox, aDC, 5, poly, false, 0, YELLOW, YELLOW );
|
||||
}
|
||||
|
||||
|
||||
|
@ -111,7 +113,7 @@ void Exit_Self( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
|||
if( Self_On )
|
||||
{
|
||||
Self_On = 0;
|
||||
Panel->ManageCurseur( Panel, DC, 0 );
|
||||
Panel->ManageCurseur( Panel, DC, wxDefaultPosition, 0 );
|
||||
Panel->ManageCurseur = NULL;
|
||||
Panel->ForceCloseManageCurseur = NULL;
|
||||
}
|
||||
|
@ -137,7 +139,7 @@ void WinEDA_PcbFrame::Begin_Self( wxDC* DC )
|
|||
|
||||
DrawPanel->ManageCurseur = ShowBoundingBoxMicroWaveInductor;
|
||||
DrawPanel->ForceCloseManageCurseur = Exit_Self;
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, 0 );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
}
|
||||
|
||||
|
||||
|
@ -181,7 +183,7 @@ MODULE* WinEDA_PcbFrame::Genere_Self( wxDC* DC )
|
|||
int ll;
|
||||
wxString msg;
|
||||
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
DrawPanel->ManageCurseur = NULL;
|
||||
DrawPanel->ForceCloseManageCurseur = NULL;
|
||||
|
||||
|
|
|
@ -187,7 +187,8 @@ TRACK* Locate_Zone( TRACK* start_adresse, const wxPoint& ref_pos, int layer );
|
|||
/*************/
|
||||
int ChangeSideNumLayer( int oldlayer );
|
||||
void DrawModuleOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, MODULE* module );
|
||||
void Montre_Position_Empreinte( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
void Montre_Position_Empreinte( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
|
||||
/****************/
|
||||
|
@ -196,7 +197,8 @@ void Montre_Position_Empreinte( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
|||
|
||||
TRACK* LocateIntrusion( TRACK* listStart, TRACK* aTrack, int aLayer, const wxPoint& aRef );
|
||||
|
||||
void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
/* Determine coordinate for a segment direction of 0, 90 or 45 degrees,
|
||||
* depending on it's position from the origin (ox, oy) and \a aPosiition..
|
||||
|
|
|
@ -65,7 +65,7 @@ void WinEDA_ModuleEditFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
|
|||
screen->ClrRefreshReq();
|
||||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
|
||||
/* Redraw the cursor */
|
||||
DrawPanel->DrawCursor( DC );
|
||||
|
@ -103,7 +103,7 @@ void WinEDA_PcbFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
|
|||
GetScreen()->ClrRefreshReq();
|
||||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, FALSE );
|
||||
|
||||
// Redraw the cursor
|
||||
DrawPanel->DrawCursor( DC );
|
||||
|
|
|
@ -21,13 +21,15 @@ bool s_Verbose = false; // false if zone outline diags must not be shown
|
|||
|
||||
// Outline creation:
|
||||
static void Abort_Zone_Create_Outline( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
static void Show_New_Edge_While_Move_Mouse( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase );
|
||||
static void Show_New_Edge_While_Move_Mouse( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase );
|
||||
|
||||
// Corner moving
|
||||
static void Abort_Zone_Move_Corner_Or_Outlines( EDA_DRAW_PANEL* Panel, wxDC* DC );
|
||||
static void Show_Zone_Corner_Or_Outline_While_Move_Mouse( EDA_DRAW_PANEL* panel,
|
||||
wxDC* DC,
|
||||
bool erase );
|
||||
static void Show_Zone_Corner_Or_Outline_While_Move_Mouse( EDA_DRAW_PANEL* aPanel,
|
||||
wxDC* aDC,
|
||||
const wxPoint& aPosition,
|
||||
bool aErase );
|
||||
|
||||
/* Local variables */
|
||||
static wxPoint s_CornerInitialPosition; // Used to abort a move corner command
|
||||
|
@ -116,8 +118,9 @@ int WinEDA_PcbFrame::Delete_LastCreatedCorner( wxDC* DC )
|
|||
if( zone->GetNumCorners() > 2 )
|
||||
{
|
||||
zone->m_Poly->DeleteCorner( zone->GetNumCorners() - 1 );
|
||||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, wxDefaultPosition, false );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -425,22 +428,21 @@ void Abort_Zone_Move_Corner_Or_Outlines( EDA_DRAW_PANEL* Panel, wxDC* DC )
|
|||
}
|
||||
|
||||
|
||||
/*************************************************************************************************/
|
||||
void Show_Zone_Corner_Or_Outline_While_Move_Mouse( EDA_DRAW_PANEL* Panel, wxDC* DC, bool erase )
|
||||
/*************************************************************************************************/
|
||||
|
||||
/* Redraws the zone outline when moving a corner according to the cursor position
|
||||
*/
|
||||
void Show_Zone_Corner_Or_Outline_While_Move_Mouse( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase )
|
||||
{
|
||||
WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) Panel->GetParent();
|
||||
WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) aPanel->GetParent();
|
||||
ZONE_CONTAINER* zone = (ZONE_CONTAINER*) pcbframe->GetCurItem();
|
||||
|
||||
if( erase ) /* Undraw edge in old position*/
|
||||
if( aErase ) /* Undraw edge in old position*/
|
||||
{
|
||||
zone->Draw( Panel, DC, GR_XOR );
|
||||
zone->Draw( aPanel, aDC, GR_XOR );
|
||||
}
|
||||
|
||||
wxPoint pos = pcbframe->GetScreen()->m_Curseur;
|
||||
|
||||
if( zone->m_Flags == IS_MOVED )
|
||||
{
|
||||
wxPoint offset;
|
||||
|
@ -458,7 +460,7 @@ void Show_Zone_Corner_Or_Outline_While_Move_Mouse( EDA_DRAW_PANEL* Panel, wxDC*
|
|||
else
|
||||
zone->m_Poly->MoveCorner( zone->m_CornerSelection, pos.x, pos.y );
|
||||
|
||||
zone->Draw( Panel, DC, GR_XOR );
|
||||
zone->Draw( aPanel, aDC, GR_XOR );
|
||||
}
|
||||
|
||||
|
||||
|
@ -722,14 +724,12 @@ bool WinEDA_PcbFrame::End_Zone( wxDC* DC )
|
|||
}
|
||||
|
||||
|
||||
/******************************************************************************************/
|
||||
static void Show_New_Edge_While_Move_Mouse( EDA_DRAW_PANEL* panel, wxDC* DC, bool erase )
|
||||
/******************************************************************************************/
|
||||
|
||||
/* Redraws the zone outlines when moving mouse
|
||||
*/
|
||||
static void Show_New_Edge_While_Move_Mouse( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPosition, bool aErase )
|
||||
{
|
||||
WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) panel->GetParent();
|
||||
WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) aPanel->GetParent();
|
||||
wxPoint c_pos = pcbframe->GetScreen()->m_Curseur;
|
||||
ZONE_CONTAINER* zone = pcbframe->GetBoard()->m_CurrentZoneContour;
|
||||
|
||||
|
@ -737,12 +737,13 @@ static void Show_New_Edge_While_Move_Mouse( EDA_DRAW_PANEL* panel, wxDC* DC, boo
|
|||
return;
|
||||
|
||||
int icorner = zone->GetNumCorners() - 1;
|
||||
|
||||
if ( icorner < 1 )
|
||||
return; // We must have 2 (or more) corners
|
||||
|
||||
if( erase ) /* Undraw edge in old position*/
|
||||
if( aErase ) /* Undraw edge in old position*/
|
||||
{
|
||||
zone->DrawWhileCreateOutline( panel, DC );
|
||||
zone->DrawWhileCreateOutline( aPanel, aDC );
|
||||
}
|
||||
|
||||
/* Redraw the curent edge in its new position */
|
||||
|
@ -755,7 +756,7 @@ static void Show_New_Edge_While_Move_Mouse( EDA_DRAW_PANEL* panel, wxDC* DC, boo
|
|||
|
||||
zone->SetCornerPosition( icorner, c_pos );
|
||||
|
||||
zone->DrawWhileCreateOutline( panel, DC );
|
||||
zone->DrawWhileCreateOutline( aPanel, aDC );
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue