Commit f05b6d49 authored by Macor Mattila's avatar Macor Mattila Committed by jean-pierre charras

Pcbnew: Commit block move patch from Marco Mattila

parent 37ad67df
...@@ -30,7 +30,7 @@ static void LoadLayers( LINE_READER* aLine ); ...@@ -30,7 +30,7 @@ static void LoadLayers( LINE_READER* aLine );
bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& FullFileName ) bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& FullFileName )
{ {
char Name1[256]; char Name1[256];
bool itemLoaded; bool itemLoaded = false;
SCH_ITEM* Phead; SCH_ITEM* Phead;
SCH_ITEM* Pnext; SCH_ITEM* Pnext;
SCH_ITEM* item; SCH_ITEM* item;
......
...@@ -238,7 +238,8 @@ void AddMenusForComponentField( wxMenu* PopMenu, SCH_FIELD* Field ) ...@@ -238,7 +238,8 @@ void AddMenusForComponentField( wxMenu* PopMenu, SCH_FIELD* Field )
msg = AddHotkeyName( _( "Rotate Field" ), s_Schematic_Hokeys_Descr, HK_ROTATE ); msg = AddHotkeyName( _( "Rotate Field" ), s_Schematic_Hokeys_Descr, HK_ROTATE );
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_ROTATE_FIELD, msg, rotate_field_xpm ); ADD_MENUITEM( PopMenu, ID_POPUP_SCH_ROTATE_FIELD, msg, rotate_field_xpm );
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_EDIT_FIELD, _( "Edit Field" ), edit_text_xpm ); msg = AddHotkeyName( _( "Edit Field" ), s_Schematic_Hokeys_Descr, HK_EDIT );
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_EDIT_FIELD, msg, edit_text_xpm );
} }
......
...@@ -110,6 +110,15 @@ public: ...@@ -110,6 +110,15 @@ public:
{ {
return m_ItemsSelection.GetCount(); return m_ItemsSelection.GetCount();
} }
/** Function SetLastCursorPosition
* sets m_BlockLastCursorPosition
* @param aPosition = new position
**/
void SetLastCursorPosition( wxPoint aPosition )
{
m_BlockLastCursorPosition = aPosition;
}
}; };
......
...@@ -18,12 +18,24 @@ ...@@ -18,12 +18,24 @@
#include "protos.h" #include "protos.h"
#define BLOCK_OUTLINE_COLOR YELLOW
#define BLOCK_COLOR BROWN
/** Function drawPickedItems
* draws items currently selected in a block
static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, * @param aPanel = Current draw panel
bool erase ); * @param aDC = Current device context
* @param aOffset = Drawing offset
**/
static void drawPickedItems( WinEDA_DrawPanel* aPanel, wxDC* aDC,
wxPoint aOffset );
/** Function drawMovingBlock
* handles drawing of a moving block
* @param aPanel = Current draw panel
* @param aDC = Current device context
* @param aErase = Erase block at current position
**/
static void drawMovingBlock( WinEDA_DrawPanel* aPanel, wxDC* aDC,
bool aErase );
static bool Block_Include_Modules = TRUE; static bool Block_Include_Modules = TRUE;
...@@ -33,7 +45,7 @@ static bool Block_Include_Zones = TRUE; ...@@ -33,7 +45,7 @@ static bool Block_Include_Zones = TRUE;
static bool Block_Include_Draw_Items = TRUE; static bool Block_Include_Draw_Items = TRUE;
static bool Block_Include_Edges_Items = TRUE; static bool Block_Include_Edges_Items = TRUE;
static bool Block_Include_PcbTextes = TRUE; static bool Block_Include_PcbTextes = TRUE;
static bool BlockDrawItems = TRUE;
/************************************/ /************************************/
/* class WinEDA_ExecBlockCmdFrame */ /* class WinEDA_ExecBlockCmdFrame */
...@@ -51,6 +63,7 @@ private: ...@@ -51,6 +63,7 @@ private:
wxCheckBox* m_Include_Draw_Items; wxCheckBox* m_Include_Draw_Items;
wxCheckBox* m_Include_Edges_Items; wxCheckBox* m_Include_Edges_Items;
wxCheckBox* m_Include_PcbTextes; wxCheckBox* m_Include_PcbTextes;
wxCheckBox* m_DrawBlockItems;
public: public:
...@@ -150,7 +163,7 @@ WinEDA_ExecBlockCmdFrame::WinEDA_ExecBlockCmdFrame( WinEDA_BasePcbFrame* parent, ...@@ -150,7 +163,7 @@ WinEDA_ExecBlockCmdFrame::WinEDA_ExecBlockCmdFrame( WinEDA_BasePcbFrame* parent,
fgSizer1->Add( m_Include_Zones, 0, wxALL, 5 ); fgSizer1->Add( m_Include_Zones, 0, wxALL, 5 );
m_Include_PcbTextes = new wxCheckBox( this, -1, m_Include_PcbTextes = new wxCheckBox( this, -1,
_( "Include Text on Copper Layers" ), _( "Include Text Items" ),
wxDefaultPosition, wxDefaultPosition,
wxDefaultSize, 0 ); wxDefaultSize, 0 );
m_Include_PcbTextes->SetValue( Block_Include_PcbTextes ); m_Include_PcbTextes->SetValue( Block_Include_PcbTextes );
...@@ -169,6 +182,13 @@ WinEDA_ExecBlockCmdFrame::WinEDA_ExecBlockCmdFrame( WinEDA_BasePcbFrame* parent, ...@@ -169,6 +182,13 @@ WinEDA_ExecBlockCmdFrame::WinEDA_ExecBlockCmdFrame( WinEDA_BasePcbFrame* parent,
m_Include_Edges_Items->SetValue( Block_Include_Edges_Items ); m_Include_Edges_Items->SetValue( Block_Include_Edges_Items );
fgSizer1->Add( m_Include_Edges_Items, 0, wxALL, 5 ); fgSizer1->Add( m_Include_Edges_Items, 0, wxALL, 5 );
m_DrawBlockItems = new wxCheckBox( this, -1,
_( "Draw Block Items" ),
wxDefaultPosition,
wxDefaultSize, 0 );
m_DrawBlockItems->SetValue( BlockDrawItems );
fgSizer1->Add( m_DrawBlockItems, 0, wxALL, 5 );
/* Sizer 2 creation */ /* Sizer 2 creation */
wxFlexGridSizer* fgSizer2; wxFlexGridSizer* fgSizer2;
fgSizer2 = new wxFlexGridSizer( 1, 2, 0, 0 ); fgSizer2 = new wxFlexGridSizer( 1, 2, 0, 0 );
...@@ -212,6 +232,7 @@ void WinEDA_ExecBlockCmdFrame::ExecuteCommand( wxCommandEvent& event ) ...@@ -212,6 +232,7 @@ void WinEDA_ExecBlockCmdFrame::ExecuteCommand( wxCommandEvent& event )
Block_Include_Draw_Items = m_Include_Draw_Items->GetValue(); Block_Include_Draw_Items = m_Include_Draw_Items->GetValue();
Block_Include_Edges_Items = m_Include_Edges_Items->GetValue(); Block_Include_Edges_Items = m_Include_Edges_Items->GetValue();
Block_Include_PcbTextes = m_Include_PcbTextes->GetValue(); Block_Include_PcbTextes = m_Include_PcbTextes->GetValue();
BlockDrawItems = m_DrawBlockItems->GetValue();
EndModal( 0 ); EndModal( 0 );
} }
...@@ -328,6 +349,85 @@ int WinEDA_PcbFrame::HandleBlockEnd( wxDC* DC ) ...@@ -328,6 +349,85 @@ int WinEDA_PcbFrame::HandleBlockEnd( wxDC* DC )
{ {
int endcommande = TRUE; int endcommande = TRUE;
// If coming here after cancel block, clean up and exit
if( GetScreen()->m_BlockLocate.m_State == STATE_NO_BLOCK )
{
DrawPanel->ManageCurseur = NULL;
DrawPanel->ForceCloseManageCurseur = NULL;
GetScreen()->m_BlockLocate.m_Flags = 0;
GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE;
GetScreen()->m_BlockLocate.ClearItemsList();
DisplayToolMsg( wxEmptyString );
return 0;
}
// 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" ) ) )
{
DrawPanel->ManageCurseur = NULL;
DrawPanel->ForceCloseManageCurseur = NULL;
GetScreen()->m_BlockLocate.m_Flags = 0;
GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK;
GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE;
GetScreen()->m_BlockLocate.ClearItemsList();
DisplayToolMsg( wxEmptyString );
DrawAndSizingBlockOutlines( DrawPanel, DC, FALSE );
return 0;
}
DrawAndSizingBlockOutlines( DrawPanel, DC, FALSE );
Block_SelectItems();
// Exit if no items found
if( !GetScreen()->m_BlockLocate.GetCount() ) {
DrawPanel->ManageCurseur = NULL;
DrawPanel->ForceCloseManageCurseur = NULL;
GetScreen()->m_BlockLocate.m_Flags = 0;
GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK;
GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE;
GetScreen()->m_BlockLocate.ClearItemsList();
DisplayToolMsg( wxEmptyString );
return 0;
}
// Move cursor to the center of the smallest rectangle
// containing the centers of all selected items.
// Also set m_BlockLocate to the size of the rectangle.
PICKED_ITEMS_LIST* itemsList = &DrawPanel->GetScreen()->m_BlockLocate.m_ItemsSelection;
wxPoint blockCenter;
int minX, minY, maxX, maxY;
int tempX, tempY;
BOARD_ITEM* item = (BOARD_ITEM*) itemsList->GetPickedItem( 0 );
minX = item->GetPosition().x;
minY = item->GetPosition().y;
maxX = minX;
maxY = minY;
for( unsigned ii = 1; ii < itemsList->GetCount(); ii++ )
{
item = (BOARD_ITEM*) itemsList->GetPickedItem( ii );
tempX = item->GetPosition().x;
tempY = item->GetPosition().y;
if( tempX > maxX )
maxX = tempX;
if( tempX < minX )
minX = tempX;
if( tempY > maxY )
maxY = tempY;
if( tempY < minY )
minY = tempY;
}
blockCenter.x = ( minX + maxX ) / 2;
blockCenter.y = ( minY + maxY ) / 2;
DrawPanel->CursorOff( DC );
GetScreen()->m_Curseur = blockCenter;
GetScreen()->m_BlockLocate.SetLastCursorPosition( blockCenter );
GetScreen()->m_BlockLocate.SetOrigin( minX, minY );
GetScreen()->m_BlockLocate.SetEnd( maxX, maxY );
DrawPanel->MouseToCursorSchema();
DrawPanel->CursorOn( DC );
}
if( DrawPanel->ManageCurseur ) if( DrawPanel->ManageCurseur )
switch( GetScreen()->m_BlockLocate.m_Command ) switch( GetScreen()->m_BlockLocate.m_Command )
{ {
...@@ -341,35 +441,25 @@ int WinEDA_PcbFrame::HandleBlockEnd( wxDC* DC ) ...@@ -341,35 +441,25 @@ int WinEDA_PcbFrame::HandleBlockEnd( wxDC* DC )
case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/
GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE;
endcommande = FALSE; endcommande = FALSE;
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE ); DrawPanel->ManageCurseur = drawMovingBlock;
DrawPanel->ManageCurseur = DrawMovingBlockOutlines;
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE ); DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
break; break;
case BLOCK_DELETE: /* Delete */ case BLOCK_DELETE: /* Delete */
// Turn off the block rectangle now so it is not redisplayed
DrawPanel->ManageCurseur = NULL; DrawPanel->ManageCurseur = NULL;
GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP;
DrawAndSizingBlockOutlines( DrawPanel, DC, FALSE );
Block_Delete(); Block_Delete();
break; break;
case BLOCK_ROTATE: /* Rotation */ case BLOCK_ROTATE: /* Rotation */
// Turn off the block rectangle now so it is not redisplayed
DrawPanel->ManageCurseur = NULL; DrawPanel->ManageCurseur = NULL;
GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP;
DrawAndSizingBlockOutlines( DrawPanel, DC, FALSE );
Block_Rotate(); Block_Rotate();
break; break;
case BLOCK_FLIP: /* Flip */ case BLOCK_FLIP: /* Flip */
// Turn off the block rectangle now so it is not redisplayed
DrawPanel->ManageCurseur = NULL; DrawPanel->ManageCurseur = NULL;
GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP;
DrawAndSizingBlockOutlines( DrawPanel, DC, FALSE );
Block_Flip(); Block_Flip();
break; break;
...@@ -377,8 +467,6 @@ int WinEDA_PcbFrame::HandleBlockEnd( wxDC* DC ) ...@@ -377,8 +467,6 @@ int WinEDA_PcbFrame::HandleBlockEnd( wxDC* DC )
GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP;
if( GetScreen()->m_BlockLocate.GetCount() ) if( GetScreen()->m_BlockLocate.GetCount() )
{ {
DrawAndSizingBlockOutlines( DrawPanel, DC, FALSE );
// TODO (if useful) Save_Block( ); // TODO (if useful) Save_Block( );
} }
break; break;
...@@ -553,49 +641,108 @@ void WinEDA_PcbFrame::Block_SelectItems() ...@@ -553,49 +641,108 @@ void WinEDA_PcbFrame::Block_SelectItems()
} }
} }
static void drawPickedItems( WinEDA_DrawPanel* aPanel, wxDC* aDC,
/* Traces the outline of the block structures during move. wxPoint aOffset )
*/
static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC,
bool erase )
{ {
int Color; PICKED_ITEMS_LIST* itemsList = &aPanel->GetScreen()->m_BlockLocate.m_ItemsSelection;
BASE_SCREEN* screen = panel->GetScreen(); WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) aPanel->GetParent();
g_Offset_Module = -aOffset;
for( unsigned ii = 0; ii < itemsList->GetCount(); ii++ )
{
BOARD_ITEM* item = (BOARD_ITEM*) itemsList->GetPickedItem( ii );
switch( item->Type() )
{
case TYPE_MODULE:
{
MODULE* module = (MODULE*) item;
frame->GetBoard()->m_Status_Pcb &= ~RATSNEST_ITEM_LOCAL_OK;
DrawModuleOutlines( aPanel, aDC, module );
break;
}
case TYPE_DRAWSEGMENT:
{
DRAWSEGMENT* segment = (DRAWSEGMENT*) item;
segment->Draw( aPanel, aDC, GR_XOR, aOffset );
break;
}
case TYPE_TEXTE:
{
TEXTE_PCB* text = (TEXTE_PCB*) item;
text->Draw( aPanel, aDC, GR_XOR, aOffset );
break;
}
case TYPE_TRACK:
case TYPE_VIA:
{
TRACK* track = (TRACK*) item;
track->Draw( aPanel, aDC, GR_XOR, aOffset );
break;
}
case TYPE_MIRE:
{
MIREPCB* mire = (MIREPCB*) item;
mire->Draw( aPanel, aDC, GR_XOR, aOffset );
break;
}
case TYPE_DIMENSION:
{
DIMENSION* dimension = (DIMENSION*) item;
dimension->Draw( aPanel, aDC, GR_XOR, aOffset );
break;
}
case TYPE_ZONE_CONTAINER:
{
ZONE_CONTAINER* zoneContainer = (ZONE_CONTAINER*) item;
zoneContainer->Draw( aPanel, aDC, GR_XOR, aOffset );
zoneContainer->DrawFilledArea( aPanel, aDC, GR_XOR, aOffset );
break;
}
// Currently markers are not affected by block commands
case TYPE_MARKER_PCB:
{
MARKER_PCB* pcbMarker = (MARKER_PCB*) item;
pcbMarker->Draw( aPanel, aDC, GR_XOR, aOffset );
break;
}
}
}
g_Offset_Module = wxPoint( 0, 0 );
}
Color = YELLOW; static void drawMovingBlock( WinEDA_DrawPanel* aPanel, wxDC* aDC,
bool aErase )
{
BASE_SCREEN* screen = aPanel->GetScreen();
if( erase ) if( aErase )
{ {
screen->m_BlockLocate.Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode,
Color );
if( screen->m_BlockLocate.m_MoveVector.x if( screen->m_BlockLocate.m_MoveVector.x
|| screen->m_BlockLocate.m_MoveVector.y ) || screen->m_BlockLocate.m_MoveVector.y )
{ {
screen->m_BlockLocate.Draw( panel, if( !BlockDrawItems )
DC, screen->m_BlockLocate.Draw( aPanel, aDC, screen->m_BlockLocate.m_MoveVector,
screen->m_BlockLocate.m_MoveVector, GR_XOR, BLOCK_OUTLINE_COLOR );
g_XorMode, else
Color ); drawPickedItems( aPanel, aDC, screen->m_BlockLocate.m_MoveVector );
} }
} }
if( screen->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.m_MoveVector.x = screen->m_Curseur.x -
screen->m_BlockLocate.GetRight(); screen->m_BlockLocate.m_BlockLastCursorPosition.x;
screen->m_BlockLocate.m_MoveVector.y = screen->m_Curseur.y - screen->m_BlockLocate.m_MoveVector.y = screen->m_Curseur.y -
screen->m_BlockLocate.GetBottom(); screen->m_BlockLocate.m_BlockLastCursorPosition.y;
} }
screen->m_BlockLocate.Draw( panel, DC, wxPoint( 0, 0 ), g_XorMode, Color );
if( screen->m_BlockLocate.m_MoveVector.x if( screen->m_BlockLocate.m_MoveVector.x
|| screen->m_BlockLocate.m_MoveVector.y ) || screen->m_BlockLocate.m_MoveVector.y )
{ {
screen->m_BlockLocate.Draw( panel, if( !BlockDrawItems )
DC, screen->m_BlockLocate.Draw( aPanel, aDC, screen->m_BlockLocate.m_MoveVector,
screen->m_BlockLocate.m_MoveVector, GR_XOR, BLOCK_OUTLINE_COLOR );
g_XorMode, else
Color ); drawPickedItems( aPanel, aDC, screen->m_BlockLocate.m_MoveVector );
} }
} }
...@@ -605,13 +752,6 @@ static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, ...@@ -605,13 +752,6 @@ static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC,
*/ */
void WinEDA_PcbFrame::Block_Delete() void WinEDA_PcbFrame::Block_Delete()
{ {
if( !InstallBlockCmdFrame( this, _( "Delete Block" ) ) )
return;
Block_SelectItems();
if( GetScreen()->m_BlockLocate.GetCount() == 0 )
return;
OnModify(); OnModify();
SetCurItem( NULL ); SetCurItem( NULL );
...@@ -681,13 +821,6 @@ void WinEDA_PcbFrame::Block_Rotate() ...@@ -681,13 +821,6 @@ void WinEDA_PcbFrame::Block_Rotate()
wxPoint centre; // rotation cent-re for the rotation transform wxPoint centre; // rotation cent-re for the rotation transform
int rotAngle = 900; // rotation angle in 0.1 deg. int rotAngle = 900; // rotation angle in 0.1 deg.
if( !InstallBlockCmdFrame( this, _( "Rotate Block" ) ) )
return;
Block_SelectItems();
if( GetScreen()->m_BlockLocate.GetCount() == 0 )
return;
oldpos = GetScreen()->m_Curseur; oldpos = GetScreen()->m_Curseur;
centre = GetScreen()->m_BlockLocate.Centre(); centre = GetScreen()->m_BlockLocate.Centre();
...@@ -753,13 +886,6 @@ void WinEDA_PcbFrame::Block_Flip() ...@@ -753,13 +886,6 @@ void WinEDA_PcbFrame::Block_Flip()
wxPoint memo; wxPoint memo;
wxPoint center; /* Position of the axis for inversion of all elements */ wxPoint center; /* Position of the axis for inversion of all elements */
if( !InstallBlockCmdFrame( this, _( "Flip Block" ) ) )
return;
Block_SelectItems();
if( GetScreen()->m_BlockLocate.GetCount() == 0 )
return;
OnModify(); OnModify();
PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.m_ItemsSelection; PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.m_ItemsSelection;
...@@ -823,13 +949,6 @@ void WinEDA_PcbFrame::Block_Flip() ...@@ -823,13 +949,6 @@ void WinEDA_PcbFrame::Block_Flip()
*/ */
void WinEDA_PcbFrame::Block_Move() void WinEDA_PcbFrame::Block_Move()
{ {
if( !InstallBlockCmdFrame( this, _( "Move Block" ) ) )
return;
Block_SelectItems();
if( GetScreen()->m_BlockLocate.GetCount() == 0 )
return;
OnModify(); OnModify();
wxPoint MoveVector = GetScreen()->m_BlockLocate.m_MoveVector; wxPoint MoveVector = GetScreen()->m_BlockLocate.m_MoveVector;
...@@ -893,13 +1012,6 @@ void WinEDA_PcbFrame::Block_Duplicate() ...@@ -893,13 +1012,6 @@ void WinEDA_PcbFrame::Block_Duplicate()
{ {
wxPoint MoveVector = GetScreen()->m_BlockLocate.m_MoveVector; wxPoint MoveVector = GetScreen()->m_BlockLocate.m_MoveVector;
if( !InstallBlockCmdFrame( this, _( "Copy Block" ) ) )
return;
Block_SelectItems();
if( GetScreen()->m_BlockLocate.GetCount() == 0 )
return;
OnModify(); OnModify();
PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.m_ItemsSelection; PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.m_ItemsSelection;
......
...@@ -532,8 +532,8 @@ void DIMENSION::Draw( WinEDA_DrawPanel* panel, wxDC* DC, ...@@ -532,8 +532,8 @@ void DIMENSION::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
{ {
int ox, oy, typeaff, width, gcolor; int ox, oy, typeaff, width, gcolor;
ox = offset.x; ox = -offset.x;
oy = offset.y; oy = -offset.y;
m_Text->Draw( panel, DC, mode_color, offset ); m_Text->Draw( panel, DC, mode_color, offset );
......
...@@ -229,7 +229,7 @@ wxPoint DRAWSEGMENT::GetEnd() const ...@@ -229,7 +229,7 @@ wxPoint DRAWSEGMENT::GetEnd() const
void DRAWSEGMENT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, void DRAWSEGMENT::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
int draw_mode, const wxPoint& notUsed ) int draw_mode, const wxPoint& aOffset )
{ {
int ux0, uy0, dx, dy; int ux0, uy0, dx, dy;
int l_piste; int l_piste;
...@@ -246,12 +246,12 @@ void DRAWSEGMENT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, ...@@ -246,12 +246,12 @@ void DRAWSEGMENT::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
l_piste = m_Width >> 1; /* half trace width */ l_piste = m_Width >> 1; /* half trace width */
// Line start point or Circle and Arc center // Line start point or Circle and Arc center
ux0 = m_Start.x; ux0 = m_Start.x + aOffset.x;
uy0 = m_Start.y; uy0 = m_Start.y + aOffset.y;
// Line end point or circle and arc start point // Line end point or circle and arc start point
dx = m_End.x; dx = m_End.x + aOffset.x;
dy = m_End.y; dy = m_End.y + aOffset.y;
mode = DisplayOpt.DisplayDrawItems; mode = DisplayOpt.DisplayDrawItems;
if( m_Flags & FORCE_SKETCH ) if( m_Flags & FORCE_SKETCH )
......
...@@ -65,7 +65,7 @@ public: ...@@ -65,7 +65,7 @@ public:
void Draw( WinEDA_DrawPanel* panel, wxDC* DC, void Draw( WinEDA_DrawPanel* panel, wxDC* DC,
int aDrawMode, const wxPoint& offset = ZeroOffset ); int aDrawMode, const wxPoint& aOffset = ZeroOffset );
/** /**
* Function DisplayInfo * Function DisplayInfo
......
...@@ -554,7 +554,8 @@ bool TRACK::Save( FILE* aFile ) const ...@@ -554,7 +554,8 @@ bool TRACK::Save( FILE* aFile ) const
/*********************************************************************/ /*********************************************************************/
void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoint& notUsed ) void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode,
const wxPoint& aOffset )
/*********************************************************************/ /*********************************************************************/
{ {
int l_piste; int l_piste;
...@@ -610,7 +611,8 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin ...@@ -610,7 +611,8 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
if( panel->GetScreen()->Scale( l_piste ) < L_MIN_DESSIN ) if( panel->GetScreen()->Scale( l_piste ) < L_MIN_DESSIN )
#endif #endif
{ {
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color ); GRCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_Start.y + aOffset.y, rayon, color );
} }
else else
{ {
...@@ -621,16 +623,20 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin ...@@ -621,16 +623,20 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
if( panel->GetScreen()->Scale( l_piste ) <= 1 ) /* Sketch mode if l_piste/zoom <= 1 */ if( panel->GetScreen()->Scale( l_piste ) <= 1 ) /* Sketch mode if l_piste/zoom <= 1 */
#endif #endif
{ {
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color ); GRCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_Start.y + aOffset.y, rayon, color );
} }
else if( ( !DisplayOpt.DisplayPcbTrackFill) || GetState( FORCE_SKETCH ) ) else if( ( !DisplayOpt.DisplayPcbTrackFill) || GetState( FORCE_SKETCH ) )
{ {
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon - l_piste, color ); GRCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon + l_piste, color ); m_Start.y + aOffset.y, rayon - l_piste, color );
GRCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_Start.y + aOffset.y, rayon + l_piste, color );
} }
else else
{ {
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, GRCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_Start.y + aOffset.y, rayon,
m_Width, color ); m_Width, color );
} }
} }
...@@ -643,20 +649,23 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin ...@@ -643,20 +649,23 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
if( panel->GetScreen()->Scale( l_piste ) < L_MIN_DESSIN ) if( panel->GetScreen()->Scale( l_piste ) < L_MIN_DESSIN )
#endif #endif
{ {
GRLine( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, GRLine( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_End.x, m_End.y, 0, color ); m_Start.y + aOffset.y,
m_End.x + aOffset.x, m_End.y + aOffset.y, 0, color );
return; return;
} }
if( !DisplayOpt.DisplayPcbTrackFill || GetState( FORCE_SKETCH ) ) if( !DisplayOpt.DisplayPcbTrackFill || GetState( FORCE_SKETCH ) )
{ {
GRCSegm( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, GRCSegm( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_End.x, m_End.y, m_Width, color ); m_Start.y + aOffset.y,
m_End.x + aOffset.x, m_End.y + aOffset.y, m_Width, color );
} }
else else
{ {
GRFillCSegm( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, GRFillCSegm( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_End.x, m_End.y, m_Width, color ); m_Start.y + aOffset.y,
m_End.x + aOffset.x, m_End.y + aOffset.y, m_Width, color );
} }
if( panel->GetScreen()->m_IsPrinting ) if( panel->GetScreen()->m_IsPrinting )
...@@ -665,8 +674,9 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin ...@@ -665,8 +674,9 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
// Show clearance for tracks, not for zone segments // Show clearance for tracks, not for zone segments
if( ShowClearance( this ) ) if( ShowClearance( this ) )
{ {
GRCSegm( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, GRCSegm( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_End.x, m_End.y, m_Start.y + aOffset.y,
m_End.x + aOffset.x, m_End.y + aOffset.y,
m_Width + (GetClearance() * 2), color ); m_Width + (GetClearance() * 2), color );
} }
...@@ -683,10 +693,12 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin ...@@ -683,10 +693,12 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
return; return;
#define THRESHOLD 10 #define THRESHOLD 10
if( (m_End.x - m_Start.x) != 0 && (m_End.y - m_Start.y) != 0 ) if( (m_End.x - m_Start.x) != 0
&& (m_End.y - m_Start.y) != 0 )
return; return;
int len = ABS( (m_End.x - m_Start.x) + (m_End.y - m_Start.y) ); int len = ABS( (m_End.x - m_Start.x)
+ (m_End.y - m_Start.y) );
if( len < THRESHOLD * m_Width ) if( len < THRESHOLD * m_Width )
return; return;
...@@ -738,7 +750,8 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin ...@@ -738,7 +750,8 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
/*******************************************************************************************/ /*******************************************************************************************/
void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoint& notUsed ) void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode,
const wxPoint& aOffset )
/*******************************************************************************************/ /*******************************************************************************************/
{ {
int color; int color;
...@@ -811,14 +824,17 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi ...@@ -811,14 +824,17 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
} }
if( fillvia ) if( fillvia )
GRFilledCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, 0, color, color ); GRFilledCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_Start.y + aOffset.y, rayon, 0, color, color );
else else
{ {
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color ); GRCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_Start.y + aOffset.y, rayon, color );
if ( fast_draw ) if ( fast_draw )
return; return;
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, GRCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_Start.y + aOffset.y,
inner_rayon, color ); inner_rayon, color );
} }
...@@ -850,8 +866,8 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi ...@@ -850,8 +866,8 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
#else #else
if( screen->Scale( drill_rayon ) > 1 ) /* draw hole if its size is enought */ if( screen->Scale( drill_rayon ) > 1 ) /* draw hole if its size is enought */
#endif #endif
GRFilledCircle( &panel->m_ClipBox, DC, m_Start.x, GRFilledCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_Start.y, drill_rayon, 0, color, color ); m_Start.y + aOffset.y, drill_rayon, 0, color, color );
if( screen->m_IsPrinting ) if( screen->m_IsPrinting )
GRForceBlackPen( blackpenstate ); GRForceBlackPen( blackpenstate );
...@@ -859,14 +875,16 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi ...@@ -859,14 +875,16 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
else else
{ {
if( drill_rayon < inner_rayon ) // We can show the via hole if( drill_rayon < inner_rayon ) // We can show the via hole
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, GRCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_Start.y + aOffset.y,
drill_rayon, color ); drill_rayon, color );
} }
} }
} }
if( DisplayOpt.ShowTrackClearanceMode == SHOW_CLEARANCE_ALWAYS ) if( DisplayOpt.ShowTrackClearanceMode == SHOW_CLEARANCE_ALWAYS )
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, GRCircle( &panel->m_ClipBox, DC, m_Start.x + aOffset.x,
m_Start.y + aOffset.y,
rayon + GetClearance(), color ); rayon + GetClearance(), color );
// for Micro Vias, draw a partial cross : // for Micro Vias, draw a partial cross :
...@@ -888,16 +906,24 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi ...@@ -888,16 +906,24 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
} }
/* lines | or \ */ /* lines | or \ */
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax, m_Start.y - ay, GRLine( &panel->m_ClipBox, DC, m_Start.x + aOffset.x - ax,
m_Start.x - bx, m_Start.y - by, 0, color ); m_Start.y + aOffset.y - ay,
GRLine( &panel->m_ClipBox, DC, m_Start.x + bx, m_Start.y + by, m_Start.x + aOffset.x - bx,
m_Start.x + ax, m_Start.y + ay, 0, color ); m_Start.y + aOffset.y - by, 0, color );
GRLine( &panel->m_ClipBox, DC, m_Start.x + aOffset.x + bx,
m_Start.y + aOffset.y + by,
m_Start.x + aOffset.x + ax,
m_Start.y + aOffset.y + ay, 0, color );
/* lines - or / */ /* lines - or / */
GRLine( &panel->m_ClipBox, DC, m_Start.x + ay, m_Start.y - ax, GRLine( &panel->m_ClipBox, DC, m_Start.x + aOffset.x + ay,
m_Start.x + by, m_Start.y - bx, 0, color ); m_Start.y + aOffset.y - ax,
GRLine( &panel->m_ClipBox, DC, m_Start.x - by, m_Start.y + bx, m_Start.x + aOffset.x + by,
m_Start.x - ay, m_Start.y + ax, 0, color ); m_Start.y + aOffset.y - bx, 0, color );
GRLine( &panel->m_ClipBox, DC, m_Start.x + aOffset.x - by,
m_Start.y + aOffset.y + bx,
m_Start.x + aOffset.x - ay,
m_Start.y + aOffset.y + ax, 0, color );
} }
// for Buried Vias, draw a partial line : // for Buried Vias, draw a partial line :
...@@ -913,15 +939,19 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi ...@@ -913,15 +939,19 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
/* lines for the top layer */ /* lines for the top layer */
RotatePoint( &ax, &ay, layer_top * 3600 / brd->GetCopperLayerCount( ) ); RotatePoint( &ax, &ay, layer_top * 3600 / brd->GetCopperLayerCount( ) );
RotatePoint( &bx, &by, layer_top * 3600 / brd->GetCopperLayerCount( ) ); RotatePoint( &bx, &by, layer_top * 3600 / brd->GetCopperLayerCount( ) );
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax, m_Start.y - ay, GRLine( &panel->m_ClipBox, DC, m_Start.x + aOffset.x - ax,
m_Start.x - bx, m_Start.y - by, 0, color ); m_Start.y + aOffset.y - ay,
m_Start.x + aOffset.x - bx,
m_Start.y + aOffset.y - by, 0, color );
/* lines for the bottom layer */ /* lines for the bottom layer */
ax = 0; ay = rayon; bx = 0; by = drill_rayon; ax = 0; ay = rayon; bx = 0; by = drill_rayon;
RotatePoint( &ax, &ay, layer_bottom * 3600 / brd->GetCopperLayerCount( ) ); RotatePoint( &ax, &ay, layer_bottom * 3600 / brd->GetCopperLayerCount( ) );
RotatePoint( &bx, &by, layer_bottom * 3600 / brd->GetCopperLayerCount( ) ); RotatePoint( &bx, &by, layer_bottom * 3600 / brd->GetCopperLayerCount( ) );
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax, m_Start.y - ay, GRLine( &panel->m_ClipBox, DC, m_Start.x + aOffset.x - ax,
m_Start.x - bx, m_Start.y - by, 0, color ); m_Start.y + aOffset.y - ay,
m_Start.x + aOffset.x - bx,
m_Start.y + aOffset.y - by, 0, color );
} }
// Display the short netname: // Display the short netname:
......
...@@ -144,7 +144,7 @@ public: ...@@ -144,7 +144,7 @@ public:
/* Display on screen: */ /* Display on screen: */
void Draw( WinEDA_DrawPanel* panel, wxDC* DC, int aDrawMode, const wxPoint& offset = ZeroOffset ); void Draw( WinEDA_DrawPanel* panel, wxDC* DC, int aDrawMode, const wxPoint& aOffset = ZeroOffset );
/* divers */ /* divers */
int Shape() const { return m_Shape & 0xFF; } int Shape() const { return m_Shape & 0xFF; }
...@@ -341,7 +341,7 @@ public: ...@@ -341,7 +341,7 @@ public:
} }
void Draw( WinEDA_DrawPanel* panel, wxDC* DC, int aDrawMode, const wxPoint& offset = ZeroOffset ); void Draw( WinEDA_DrawPanel* panel, wxDC* DC, int aDrawMode, const wxPoint& aOffset = ZeroOffset );
/** /**
......
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project> <wxFormBuilder_Project>
<FileVersion major="1" minor="9" /> <FileVersion major="1" minor="10" />
<object class="Project" expanded="1"> <object class="Project" expanded="1">
<property name="class_decoration"></property> <property name="class_decoration" />
<property name="code_generation">C++</property> <property name="code_generation">C++</property>
<property name="disconnect_events">1</property> <property name="disconnect_events">1</property>
<property name="encoding">UTF-8</property> <property name="encoding">UTF-8</property>
...@@ -12,64 +12,64 @@ ...@@ -12,64 +12,64 @@
<property name="help_provider">none</property> <property name="help_provider">none</property>
<property name="internationalize">1</property> <property name="internationalize">1</property>
<property name="name">dialog_export_3Dfiles</property> <property name="name">dialog_export_3Dfiles</property>
<property name="namespace"></property> <property name="namespace" />
<property name="path">.</property> <property name="path">.</property>
<property name="precompiled_header"></property> <property name="precompiled_header" />
<property name="relative_path">1</property> <property name="relative_path">1</property>
<property name="use_enum">1</property> <property name="use_enum">1</property>
<property name="use_microsoft_bom">0</property> <property name="use_microsoft_bom">0</property>
<object class="Dialog" expanded="1"> <object class="Dialog" expanded="1">
<property name="bg"></property> <property name="bg" />
<property name="center"></property> <property name="center" />
<property name="context_help"></property> <property name="context_help" />
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="extra_style"></property> <property name="extra_style" />
<property name="fg"></property> <property name="fg" />
<property name="font"></property> <property name="font" />
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="maximum_size"></property> <property name="maximum_size" />
<property name="minimum_size"></property> <property name="minimum_size" />
<property name="name">DIALOG_EXPORT_3DFILE_BASE</property> <property name="name">DIALOG_EXPORT_3DFILE_BASE</property>
<property name="pos"></property> <property name="pos" />
<property name="size">370,252</property> <property name="size">370,252</property>
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property> <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
<property name="subclass"></property> <property name="subclass" />
<property name="title">Vrml Board Export Options:</property> <property name="title">Vrml Board Export Options:</property>
<property name="tooltip"></property> <property name="tooltip" />
<property name="window_extra_style"></property> <property name="window_extra_style" />
<property name="window_name"></property> <property name="window_name" />
<property name="window_style"></property> <property name="window_style" />
<event name="OnActivate"></event> <event name="OnActivate" />
<event name="OnActivateApp"></event> <event name="OnActivateApp" />
<event name="OnChar"></event> <event name="OnChar" />
<event name="OnClose"></event> <event name="OnClose" />
<event name="OnEnterWindow"></event> <event name="OnEnterWindow" />
<event name="OnEraseBackground"></event> <event name="OnEraseBackground" />
<event name="OnHibernate"></event> <event name="OnHibernate" />
<event name="OnIconize"></event> <event name="OnIconize" />
<event name="OnIdle"></event> <event name="OnIdle" />
<event name="OnInitDialog"></event> <event name="OnInitDialog" />
<event name="OnKeyDown"></event> <event name="OnKeyDown" />
<event name="OnKeyUp"></event> <event name="OnKeyUp" />
<event name="OnKillFocus"></event> <event name="OnKillFocus" />
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow" />
<event name="OnLeftDClick"></event> <event name="OnLeftDClick" />
<event name="OnLeftDown"></event> <event name="OnLeftDown" />
<event name="OnLeftUp"></event> <event name="OnLeftUp" />
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick" />
<event name="OnMiddleDown"></event> <event name="OnMiddleDown" />
<event name="OnMiddleUp"></event> <event name="OnMiddleUp" />
<event name="OnMotion"></event> <event name="OnMotion" />
<event name="OnMouseEvents"></event> <event name="OnMouseEvents" />
<event name="OnMouseWheel"></event> <event name="OnMouseWheel" />
<event name="OnPaint"></event> <event name="OnPaint" />
<event name="OnRightDClick"></event> <event name="OnRightDClick" />
<event name="OnRightDown"></event> <event name="OnRightDown" />
<event name="OnRightUp"></event> <event name="OnRightUp" />
<event name="OnSetFocus"></event> <event name="OnSetFocus" />
<event name="OnSize"></event> <event name="OnSize" />
<event name="OnUpdateUI"></event> <event name="OnUpdateUI" />
<object class="wxBoxSizer" expanded="1"> <object class="wxBoxSizer" expanded="1">
<property name="minimum_size">-1,-1</property> <property name="minimum_size">-1,-1</property>
<property name="name">bSizer1</property> <property name="name">bSizer1</property>
...@@ -89,50 +89,50 @@ ...@@ -89,50 +89,50 @@
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property> <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxStaticText" expanded="1"> <object class="wxStaticText" expanded="1">
<property name="bg"></property> <property name="bg" />
<property name="context_help"></property> <property name="context_help" />
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg" />
<property name="font"></property> <property name="font" />
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="label">Vrml main file filename:</property> <property name="label">Vrml main file filename:</property>
<property name="maximum_size"></property> <property name="maximum_size" />
<property name="minimum_size"></property> <property name="minimum_size" />
<property name="name">m_staticText1</property> <property name="name">m_staticText1</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="pos"></property> <property name="pos" />
<property name="size"></property> <property name="size" />
<property name="style"></property> <property name="style" />
<property name="subclass"></property> <property name="subclass" />
<property name="tooltip"></property> <property name="tooltip" />
<property name="window_extra_style"></property> <property name="window_extra_style" />
<property name="window_name"></property> <property name="window_name" />
<property name="window_style"></property> <property name="window_style" />
<property name="wrap">-1</property> <property name="wrap">-1</property>
<event name="OnChar"></event> <event name="OnChar" />
<event name="OnEnterWindow"></event> <event name="OnEnterWindow" />
<event name="OnEraseBackground"></event> <event name="OnEraseBackground" />
<event name="OnKeyDown"></event> <event name="OnKeyDown" />
<event name="OnKeyUp"></event> <event name="OnKeyUp" />
<event name="OnKillFocus"></event> <event name="OnKillFocus" />
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow" />
<event name="OnLeftDClick"></event> <event name="OnLeftDClick" />
<event name="OnLeftDown"></event> <event name="OnLeftDown" />
<event name="OnLeftUp"></event> <event name="OnLeftUp" />
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick" />
<event name="OnMiddleDown"></event> <event name="OnMiddleDown" />
<event name="OnMiddleUp"></event> <event name="OnMiddleUp" />
<event name="OnMotion"></event> <event name="OnMotion" />
<event name="OnMouseEvents"></event> <event name="OnMouseEvents" />
<event name="OnMouseWheel"></event> <event name="OnMouseWheel" />
<event name="OnPaint"></event> <event name="OnPaint" />
<event name="OnRightDClick"></event> <event name="OnRightDClick" />
<event name="OnRightDown"></event> <event name="OnRightDown" />
<event name="OnRightUp"></event> <event name="OnRightUp" />
<event name="OnSetFocus"></event> <event name="OnSetFocus" />
<event name="OnSize"></event> <event name="OnSize" />
<event name="OnUpdateUI"></event> <event name="OnUpdateUI" />
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
...@@ -140,52 +140,52 @@ ...@@ -140,52 +140,52 @@
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property> <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxFilePickerCtrl" expanded="1"> <object class="wxFilePickerCtrl" expanded="1">
<property name="bg"></property> <property name="bg" />
<property name="context_help"></property> <property name="context_help" />
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg" />
<property name="font"></property> <property name="font" />
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="maximum_size"></property> <property name="maximum_size" />
<property name="message">Save VRML Board File</property> <property name="message">Save VRML Board File</property>
<property name="minimum_size">-1,-1</property> <property name="minimum_size">-1,-1</property>
<property name="name">m_filePicker</property> <property name="name">m_filePicker</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="pos"></property> <property name="pos" />
<property name="size"></property> <property name="size" />
<property name="style">wxFLP_SAVE|wxFLP_USE_TEXTCTRL</property> <property name="style">wxFLP_SAVE|wxFLP_USE_TEXTCTRL</property>
<property name="subclass"></property> <property name="subclass" />
<property name="tooltip"></property> <property name="tooltip" />
<property name="value"></property> <property name="value" />
<property name="wildcard">*.wrl</property> <property name="wildcard">*.wrl</property>
<property name="window_extra_style"></property> <property name="window_extra_style" />
<property name="window_name"></property> <property name="window_name" />
<property name="window_style"></property> <property name="window_style" />
<event name="OnChar"></event> <event name="OnChar" />
<event name="OnEnterWindow"></event> <event name="OnEnterWindow" />
<event name="OnEraseBackground"></event> <event name="OnEraseBackground" />
<event name="OnFileChanged"></event> <event name="OnFileChanged" />
<event name="OnKeyDown"></event> <event name="OnKeyDown" />
<event name="OnKeyUp"></event> <event name="OnKeyUp" />
<event name="OnKillFocus"></event> <event name="OnKillFocus" />
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow" />
<event name="OnLeftDClick"></event> <event name="OnLeftDClick" />
<event name="OnLeftDown"></event> <event name="OnLeftDown" />
<event name="OnLeftUp"></event> <event name="OnLeftUp" />
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick" />
<event name="OnMiddleDown"></event> <event name="OnMiddleDown" />
<event name="OnMiddleUp"></event> <event name="OnMiddleUp" />
<event name="OnMotion"></event> <event name="OnMotion" />
<event name="OnMouseEvents"></event> <event name="OnMouseEvents" />
<event name="OnMouseWheel"></event> <event name="OnMouseWheel" />
<event name="OnPaint"></event> <event name="OnPaint" />
<event name="OnRightDClick"></event> <event name="OnRightDClick" />
<event name="OnRightDown"></event> <event name="OnRightDown" />
<event name="OnRightUp"></event> <event name="OnRightUp" />
<event name="OnSetFocus"></event> <event name="OnSetFocus" />
<event name="OnSize"></event> <event name="OnSize" />
<event name="OnUpdateUI"></event> <event name="OnUpdateUI" />
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
...@@ -193,50 +193,50 @@ ...@@ -193,50 +193,50 @@
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property> <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxStaticText" expanded="1"> <object class="wxStaticText" expanded="1">
<property name="bg"></property> <property name="bg" />
<property name="context_help"></property> <property name="context_help" />
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg" />
<property name="font"></property> <property name="font" />
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="label">Vrml 3D footprints shapes subdir:</property> <property name="label">Vrml 3D footprints shapes subdir:</property>
<property name="maximum_size"></property> <property name="maximum_size" />
<property name="minimum_size"></property> <property name="minimum_size" />
<property name="name">m_staticText3</property> <property name="name">m_staticText3</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="pos"></property> <property name="pos" />
<property name="size"></property> <property name="size" />
<property name="style"></property> <property name="style" />
<property name="subclass"></property> <property name="subclass" />
<property name="tooltip"></property> <property name="tooltip" />
<property name="window_extra_style"></property> <property name="window_extra_style" />
<property name="window_name"></property> <property name="window_name" />
<property name="window_style"></property> <property name="window_style" />
<property name="wrap">-1</property> <property name="wrap">-1</property>
<event name="OnChar"></event> <event name="OnChar" />
<event name="OnEnterWindow"></event> <event name="OnEnterWindow" />
<event name="OnEraseBackground"></event> <event name="OnEraseBackground" />
<event name="OnKeyDown"></event> <event name="OnKeyDown" />
<event name="OnKeyUp"></event> <event name="OnKeyUp" />
<event name="OnKillFocus"></event> <event name="OnKillFocus" />
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow" />
<event name="OnLeftDClick"></event> <event name="OnLeftDClick" />
<event name="OnLeftDown"></event> <event name="OnLeftDown" />
<event name="OnLeftUp"></event> <event name="OnLeftUp" />
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick" />
<event name="OnMiddleDown"></event> <event name="OnMiddleDown" />
<event name="OnMiddleUp"></event> <event name="OnMiddleUp" />
<event name="OnMotion"></event> <event name="OnMotion" />
<event name="OnMouseEvents"></event> <event name="OnMouseEvents" />
<event name="OnMouseWheel"></event> <event name="OnMouseWheel" />
<event name="OnPaint"></event> <event name="OnPaint" />
<event name="OnRightDClick"></event> <event name="OnRightDClick" />
<event name="OnRightDown"></event> <event name="OnRightDown" />
<event name="OnRightUp"></event> <event name="OnRightUp" />
<event name="OnSetFocus"></event> <event name="OnSetFocus" />
<event name="OnSize"></event> <event name="OnSize" />
<event name="OnUpdateUI"></event> <event name="OnUpdateUI" />
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
...@@ -244,54 +244,54 @@ ...@@ -244,54 +244,54 @@
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property> <property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxTextCtrl" expanded="1"> <object class="wxTextCtrl" expanded="1">
<property name="bg"></property> <property name="bg" />
<property name="context_help"></property> <property name="context_help" />
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg" />
<property name="font"></property> <property name="font" />
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="maximum_size"></property> <property name="maximum_size" />
<property name="maxlength">0</property> <property name="maxlength">0</property>
<property name="minimum_size"></property> <property name="minimum_size" />
<property name="name">m_SubdirNameCtrl</property> <property name="name">m_SubdirNameCtrl</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="pos"></property> <property name="pos" />
<property name="size"></property> <property name="size" />
<property name="style"></property> <property name="style" />
<property name="subclass"></property> <property name="subclass" />
<property name="tooltip"></property> <property name="tooltip" />
<property name="value"></property> <property name="value" />
<property name="window_extra_style"></property> <property name="window_extra_style" />
<property name="window_name"></property> <property name="window_name" />
<property name="window_style"></property> <property name="window_style" />
<event name="OnChar"></event> <event name="OnChar" />
<event name="OnEnterWindow"></event> <event name="OnEnterWindow" />
<event name="OnEraseBackground"></event> <event name="OnEraseBackground" />
<event name="OnKeyDown"></event> <event name="OnKeyDown" />
<event name="OnKeyUp"></event> <event name="OnKeyUp" />
<event name="OnKillFocus"></event> <event name="OnKillFocus" />
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow" />
<event name="OnLeftDClick"></event> <event name="OnLeftDClick" />
<event name="OnLeftDown"></event> <event name="OnLeftDown" />
<event name="OnLeftUp"></event> <event name="OnLeftUp" />
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick" />
<event name="OnMiddleDown"></event> <event name="OnMiddleDown" />
<event name="OnMiddleUp"></event> <event name="OnMiddleUp" />
<event name="OnMotion"></event> <event name="OnMotion" />
<event name="OnMouseEvents"></event> <event name="OnMouseEvents" />
<event name="OnMouseWheel"></event> <event name="OnMouseWheel" />
<event name="OnPaint"></event> <event name="OnPaint" />
<event name="OnRightDClick"></event> <event name="OnRightDClick" />
<event name="OnRightDown"></event> <event name="OnRightDown" />
<event name="OnRightUp"></event> <event name="OnRightUp" />
<event name="OnSetFocus"></event> <event name="OnSetFocus" />
<event name="OnSize"></event> <event name="OnSize" />
<event name="OnText"></event> <event name="OnText" />
<event name="OnTextEnter"></event> <event name="OnTextEnter" />
<event name="OnTextMaxLen"></event> <event name="OnTextMaxLen" />
<event name="OnTextURL"></event> <event name="OnTextURL" />
<event name="OnUpdateUI"></event> <event name="OnUpdateUI" />
</object> </object>
</object> </object>
</object> </object>
...@@ -301,7 +301,7 @@ ...@@ -301,7 +301,7 @@
<property name="flag">wxEXPAND</property> <property name="flag">wxEXPAND</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1"> <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property> <property name="minimum_size" />
<property name="name">bLowerSizer</property> <property name="name">bLowerSizer</property>
<property name="orient">wxHORIZONTAL</property> <property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property> <property name="permission">none</property>
...@@ -310,53 +310,53 @@ ...@@ -310,53 +310,53 @@
<property name="flag">wxALL|wxEXPAND</property> <property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxRadioBox" expanded="1"> <object class="wxRadioBox" expanded="1">
<property name="bg"></property> <property name="bg" />
<property name="choices">&quot;Inch&quot; &quot;mm&quot; &quot;Meter&quot;</property> <property name="choices">&quot;Inch&quot; &quot;mm&quot; &quot;Meter&quot;</property>
<property name="context_help"></property> <property name="context_help" />
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg" />
<property name="font"></property> <property name="font" />
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="label">Units:</property> <property name="label">Units:</property>
<property name="majorDimension">1</property> <property name="majorDimension">1</property>
<property name="maximum_size"></property> <property name="maximum_size" />
<property name="minimum_size"></property> <property name="minimum_size" />
<property name="name">m_rbSelectUnits</property> <property name="name">m_rbSelectUnits</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="pos"></property> <property name="pos" />
<property name="selection">0</property> <property name="selection">0</property>
<property name="size"></property> <property name="size" />
<property name="style">wxRA_SPECIFY_COLS</property> <property name="style">wxRA_SPECIFY_COLS</property>
<property name="subclass"></property> <property name="subclass" />
<property name="tooltip"></property> <property name="tooltip" />
<property name="window_extra_style"></property> <property name="window_extra_style" />
<property name="window_name"></property> <property name="window_name" />
<property name="window_style"></property> <property name="window_style" />
<event name="OnChar"></event> <event name="OnChar" />
<event name="OnEnterWindow"></event> <event name="OnEnterWindow" />
<event name="OnEraseBackground"></event> <event name="OnEraseBackground" />
<event name="OnKeyDown"></event> <event name="OnKeyDown" />
<event name="OnKeyUp"></event> <event name="OnKeyUp" />
<event name="OnKillFocus"></event> <event name="OnKillFocus" />
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow" />
<event name="OnLeftDClick"></event> <event name="OnLeftDClick" />
<event name="OnLeftDown"></event> <event name="OnLeftDown" />
<event name="OnLeftUp"></event> <event name="OnLeftUp" />
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick" />
<event name="OnMiddleDown"></event> <event name="OnMiddleDown" />
<event name="OnMiddleUp"></event> <event name="OnMiddleUp" />
<event name="OnMotion"></event> <event name="OnMotion" />
<event name="OnMouseEvents"></event> <event name="OnMouseEvents" />
<event name="OnMouseWheel"></event> <event name="OnMouseWheel" />
<event name="OnPaint"></event> <event name="OnPaint" />
<event name="OnRadioBox"></event> <event name="OnRadioBox" />
<event name="OnRightDClick"></event> <event name="OnRightDClick" />
<event name="OnRightDown"></event> <event name="OnRightDown" />
<event name="OnRightUp"></event> <event name="OnRightUp" />
<event name="OnSetFocus"></event> <event name="OnSetFocus" />
<event name="OnSize"></event> <event name="OnSize" />
<event name="OnUpdateUI"></event> <event name="OnUpdateUI" />
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
...@@ -364,53 +364,53 @@ ...@@ -364,53 +364,53 @@
<property name="flag">wxALL|wxEXPAND</property> <property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxRadioBox" expanded="1"> <object class="wxRadioBox" expanded="1">
<property name="bg"></property> <property name="bg" />
<property name="choices">&quot;Copy 3D Shapes Files in Subdir&quot; &quot;Use Absolute Path in Vrml File &quot;</property> <property name="choices">&quot;Copy 3D Shapes Files in Subdir&quot; &quot;Use Absolute Path in Vrml File &quot;</property>
<property name="context_help"></property> <property name="context_help" />
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg" />
<property name="font"></property> <property name="font" />
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="label">3D Shapes Files Option:</property> <property name="label">3D Shapes Files Option:</property>
<property name="majorDimension">1</property> <property name="majorDimension">1</property>
<property name="maximum_size"></property> <property name="maximum_size" />
<property name="minimum_size"></property> <property name="minimum_size" />
<property name="name">m_rb3DFilesOption</property> <property name="name">m_rb3DFilesOption</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="pos"></property> <property name="pos" />
<property name="selection">1</property> <property name="selection">1</property>
<property name="size"></property> <property name="size" />
<property name="style">wxRA_SPECIFY_COLS</property> <property name="style">wxRA_SPECIFY_COLS</property>
<property name="subclass"></property> <property name="subclass" />
<property name="tooltip"></property> <property name="tooltip" />
<property name="window_extra_style"></property> <property name="window_extra_style" />
<property name="window_name"></property> <property name="window_name" />
<property name="window_style"></property> <property name="window_style" />
<event name="OnChar"></event> <event name="OnChar" />
<event name="OnEnterWindow"></event> <event name="OnEnterWindow" />
<event name="OnEraseBackground"></event> <event name="OnEraseBackground" />
<event name="OnKeyDown"></event> <event name="OnKeyDown" />
<event name="OnKeyUp"></event> <event name="OnKeyUp" />
<event name="OnKillFocus"></event> <event name="OnKillFocus" />
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow" />
<event name="OnLeftDClick"></event> <event name="OnLeftDClick" />
<event name="OnLeftDown"></event> <event name="OnLeftDown" />
<event name="OnLeftUp"></event> <event name="OnLeftUp" />
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick" />
<event name="OnMiddleDown"></event> <event name="OnMiddleDown" />
<event name="OnMiddleUp"></event> <event name="OnMiddleUp" />
<event name="OnMotion"></event> <event name="OnMotion" />
<event name="OnMouseEvents"></event> <event name="OnMouseEvents" />
<event name="OnMouseWheel"></event> <event name="OnMouseWheel" />
<event name="OnPaint"></event> <event name="OnPaint" />
<event name="OnRadioBox"></event> <event name="OnRadioBox" />
<event name="OnRightDClick"></event> <event name="OnRightDClick" />
<event name="OnRightDown"></event> <event name="OnRightDown" />
<event name="OnRightUp"></event> <event name="OnRightUp" />
<event name="OnSetFocus"></event> <event name="OnSetFocus" />
<event name="OnSize"></event> <event name="OnSize" />
<event name="OnUpdateUI"></event> <event name="OnUpdateUI" />
</object> </object>
</object> </object>
</object> </object>
...@@ -420,48 +420,48 @@ ...@@ -420,48 +420,48 @@
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property> <property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxStaticLine" expanded="1"> <object class="wxStaticLine" expanded="1">
<property name="bg"></property> <property name="bg" />
<property name="context_help"></property> <property name="context_help" />
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg" />
<property name="font"></property> <property name="font" />
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="maximum_size"></property> <property name="maximum_size" />
<property name="minimum_size"></property> <property name="minimum_size" />
<property name="name">m_staticline1</property> <property name="name">m_staticline1</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="pos"></property> <property name="pos" />
<property name="size"></property> <property name="size" />
<property name="style">wxLI_HORIZONTAL</property> <property name="style">wxLI_HORIZONTAL</property>
<property name="subclass"></property> <property name="subclass" />
<property name="tooltip"></property> <property name="tooltip" />
<property name="window_extra_style"></property> <property name="window_extra_style" />
<property name="window_name"></property> <property name="window_name" />
<property name="window_style"></property> <property name="window_style" />
<event name="OnChar"></event> <event name="OnChar" />
<event name="OnEnterWindow"></event> <event name="OnEnterWindow" />
<event name="OnEraseBackground"></event> <event name="OnEraseBackground" />
<event name="OnKeyDown"></event> <event name="OnKeyDown" />
<event name="OnKeyUp"></event> <event name="OnKeyUp" />
<event name="OnKillFocus"></event> <event name="OnKillFocus" />
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow" />
<event name="OnLeftDClick"></event> <event name="OnLeftDClick" />
<event name="OnLeftDown"></event> <event name="OnLeftDown" />
<event name="OnLeftUp"></event> <event name="OnLeftUp" />
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick" />
<event name="OnMiddleDown"></event> <event name="OnMiddleDown" />
<event name="OnMiddleUp"></event> <event name="OnMiddleUp" />
<event name="OnMotion"></event> <event name="OnMotion" />
<event name="OnMouseEvents"></event> <event name="OnMouseEvents" />
<event name="OnMouseWheel"></event> <event name="OnMouseWheel" />
<event name="OnPaint"></event> <event name="OnPaint" />
<event name="OnRightDClick"></event> <event name="OnRightDClick" />
<event name="OnRightDown"></event> <event name="OnRightDown" />
<event name="OnRightUp"></event> <event name="OnRightUp" />
<event name="OnSetFocus"></event> <event name="OnSetFocus" />
<event name="OnSize"></event> <event name="OnSize" />
<event name="OnUpdateUI"></event> <event name="OnUpdateUI" />
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
...@@ -477,17 +477,17 @@ ...@@ -477,17 +477,17 @@
<property name="OK">1</property> <property name="OK">1</property>
<property name="Save">0</property> <property name="Save">0</property>
<property name="Yes">0</property> <property name="Yes">0</property>
<property name="minimum_size"></property> <property name="minimum_size" />
<property name="name">m_sdbSizer1</property> <property name="name">m_sdbSizer1</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<event name="OnApplyButtonClick"></event> <event name="OnApplyButtonClick" />
<event name="OnCancelButtonClick">OnCancelClick</event> <event name="OnCancelButtonClick">OnCancelClick</event>
<event name="OnContextHelpButtonClick"></event> <event name="OnContextHelpButtonClick" />
<event name="OnHelpButtonClick"></event> <event name="OnHelpButtonClick" />
<event name="OnNoButtonClick"></event> <event name="OnNoButtonClick" />
<event name="OnOKButtonClick">OnOkClick</event> <event name="OnOKButtonClick">OnOkClick</event>
<event name="OnSaveButtonClick"></event> <event name="OnSaveButtonClick" />
<event name="OnYesButtonClick"></event> <event name="OnYesButtonClick" />
</object> </object>
</object> </object>
</object> </object>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment