2007-05-06 16:03:28 +00:00
/////////////////////////////////////////////////////////////////////////////
2008-03-22 18:08:44 +00:00
2007-05-06 16:03:28 +00:00
// Name: dialog_netlist.cpp
2008-03-22 18:08:44 +00:00
// Purpose:
2007-05-06 16:03:28 +00:00
// Author: jean-pierre Charras
2008-03-22 18:08:44 +00:00
// Modified by:
2007-05-06 16:03:28 +00:00
// Created: 26/02/2006 17:42:19
2008-03-22 18:08:44 +00:00
// RCS-ID:
2007-05-06 16:03:28 +00:00
// Copyright: License GNU
2008-03-22 18:08:44 +00:00
// Licence:
2007-05-06 16:03:28 +00:00
/////////////////////////////////////////////////////////////////////////////
// Generated by DialogBlocks (unregistered), 26/02/2006 17:42:19
// For compilers that support precompilation, includes "wx/wx.h".
# include "wx/wxprec.h"
# ifdef __BORLANDC__
# pragma hdrstop
# endif
# ifndef WX_PRECOMP
# include "wx/wx.h"
# endif
////@begin includes
////@end includes
# include "dialog_netlist.h"
////@begin XPM images
////@end XPM images
2008-03-22 18:08:44 +00:00
static bool DisplayWarning ;
2007-05-06 16:03:28 +00:00
/*!
* WinEDA_NetlistFrame type definition
*/
IMPLEMENT_DYNAMIC_CLASS ( WinEDA_NetlistFrame , wxDialog )
/*!
* WinEDA_NetlistFrame event table definition
*/
BEGIN_EVENT_TABLE ( WinEDA_NetlistFrame , wxDialog )
////@begin WinEDA_NetlistFrame event table entries
2007-06-05 12:10:51 +00:00
EVT_BUTTON ( ID_OPEN_NELIST , WinEDA_NetlistFrame : : OnOpenNelistClick )
EVT_BUTTON ( ID_READ_NETLIST_FILE , WinEDA_NetlistFrame : : OnReadNetlistFileClick )
EVT_BUTTON ( ID_TEST_NETLIST , WinEDA_NetlistFrame : : OnTestNetlistClick )
EVT_BUTTON ( ID_COMPILE_RATSNEST , WinEDA_NetlistFrame : : OnCompileRatsnestClick )
2007-11-13 09:35:39 +00:00
EVT_BUTTON ( wxID_CANCEL , WinEDA_NetlistFrame : : OnCancelClick )
2007-06-05 12:10:51 +00:00
2007-05-06 16:03:28 +00:00
////@end WinEDA_NetlistFrame event table entries
END_EVENT_TABLE ( )
/*!
* WinEDA_NetlistFrame constructors
*/
2008-03-22 18:08:44 +00:00
WinEDA_NetlistFrame : : WinEDA_NetlistFrame ( )
2007-05-06 16:03:28 +00:00
{
}
2008-03-22 18:08:44 +00:00
WinEDA_NetlistFrame : : WinEDA_NetlistFrame ( WinEDA_PcbFrame * parent ,
wxDC * DC ,
const wxString & aNetlistFilename ,
wxWindowID id ,
const wxString & caption ,
const wxPoint & pos ,
const wxSize & size ,
long style )
2007-05-06 16:03:28 +00:00
{
2007-11-13 09:35:39 +00:00
m_Parent = parent ;
m_DC = DC ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
Create ( parent , id , caption , pos , size , style ) ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
m_NetlistFilenameCtrl - > SetValue ( aNetlistFilename ) ;
}
/*!
* WinEDA_NetlistFrame destructor
*/
WinEDA_NetlistFrame : : ~ WinEDA_NetlistFrame ( )
{
2007-05-06 16:03:28 +00:00
}
/*!
* WinEDA_NetlistFrame creator
*/
2008-03-22 18:08:44 +00:00
bool WinEDA_NetlistFrame : : Create ( wxWindow * parent ,
wxWindowID id ,
const wxString & caption ,
const wxPoint & pos ,
const wxSize & size ,
long style )
2007-05-06 16:03:28 +00:00
{
////@begin WinEDA_NetlistFrame member initialisation
2007-06-05 12:10:51 +00:00
m_Select_By_Timestamp = NULL ;
2008-03-22 18:08:44 +00:00
m_ChangeExistingFootprintCtrl = NULL ;
2007-06-05 12:10:51 +00:00
m_DeleteBadTracks = NULL ;
m_DisplayWarningCtrl = NULL ;
2008-03-22 18:08:44 +00:00
m_RemoveExtraFootprintsCtrl = NULL ;
2008-04-30 11:52:34 +00:00
m_btClose = NULL ;
2008-03-22 18:08:44 +00:00
m_NetlistFilenameCtrl = NULL ;
2007-06-05 12:10:51 +00:00
m_MessageWindow = NULL ;
2007-11-13 09:35:39 +00:00
StdDialogButtonSizer = NULL ;
2007-05-06 16:03:28 +00:00
////@end WinEDA_NetlistFrame member initialisation
////@begin WinEDA_NetlistFrame creation
2007-11-13 09:35:39 +00:00
SetExtraStyle ( wxWS_EX_BLOCK_EVENTS ) ;
2007-06-05 12:10:51 +00:00
wxDialog : : Create ( parent , id , caption , pos , size , style ) ;
CreateControls ( ) ;
2007-11-13 09:35:39 +00:00
if ( GetSizer ( ) )
{
GetSizer ( ) - > SetSizeHints ( this ) ;
}
2007-06-05 12:10:51 +00:00
Centre ( ) ;
2007-05-06 16:03:28 +00:00
////@end WinEDA_NetlistFrame creation
return true ;
}
2008-03-22 18:08:44 +00:00
2007-05-06 16:03:28 +00:00
/*!
* Control creation for WinEDA_NetlistFrame
*/
void WinEDA_NetlistFrame : : CreateControls ( )
2008-03-22 18:08:44 +00:00
{
2007-11-13 09:35:39 +00:00
SetFont ( * g_DialogFont ) ;
2008-03-22 18:08:44 +00:00
2007-05-06 16:03:28 +00:00
////@begin WinEDA_NetlistFrame content construction
2008-04-30 11:52:34 +00:00
// Generated by DialogBlocks, 29/04/2008 20:56:53 (unregistered)
2007-06-05 12:10:51 +00:00
WinEDA_NetlistFrame * itemDialog1 = this ;
wxBoxSizer * itemBoxSizer2 = new wxBoxSizer ( wxVERTICAL ) ;
itemDialog1 - > SetSizer ( itemBoxSizer2 ) ;
wxBoxSizer * itemBoxSizer3 = new wxBoxSizer ( wxHORIZONTAL ) ;
2007-11-13 09:35:39 +00:00
itemBoxSizer2 - > Add ( itemBoxSizer3 , 0 , wxGROW | wxLEFT | wxRIGHT | wxTOP , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
wxBoxSizer * itemBoxSizer4 = new wxBoxSizer ( wxHORIZONTAL ) ;
2007-11-13 09:35:39 +00:00
itemBoxSizer3 - > Add ( itemBoxSizer4 , 0 , wxALIGN_CENTER_VERTICAL | wxTOP | wxBOTTOM , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
wxBoxSizer * itemBoxSizer5 = new wxBoxSizer ( wxVERTICAL ) ;
itemBoxSizer4 - > Add ( itemBoxSizer5 , 0 , wxGROW | wxALL , 5 ) ;
2007-11-13 09:35:39 +00:00
wxArrayString m_Select_By_TimestampStrings ;
m_Select_By_TimestampStrings . Add ( _ ( " Reference " ) ) ;
m_Select_By_TimestampStrings . Add ( _ ( " Timestamp " ) ) ;
2008-03-22 18:08:44 +00:00
m_Select_By_Timestamp = new wxRadioBox ( itemDialog1 , ID_SELECTION_FOOTPRINT_MODE , _ ( " Module Selection: " ) , wxDefaultPosition , wxDefaultSize , m_Select_By_TimestampStrings , 1 , wxRA_SPECIFY_COLS ) ;
2007-11-13 09:35:39 +00:00
m_Select_By_Timestamp - > SetSelection ( 0 ) ;
2008-03-22 18:08:44 +00:00
if ( WinEDA_NetlistFrame : : ShowToolTips ( ) )
m_Select_By_Timestamp - > SetToolTip ( _ ( " Select how footprints are reconized: \n by their reference (U1, R3...) (normal setting) \n or their time stamp (special setting after a full schematic reannotation) " ) ) ;
itemBoxSizer5 - > Add ( m_Select_By_Timestamp , 0 , wxGROW | wxALL , 5 ) ;
wxArrayString m_ChangeExistingFootprintCtrlStrings ;
m_ChangeExistingFootprintCtrlStrings . Add ( _ ( " Keep " ) ) ;
m_ChangeExistingFootprintCtrlStrings . Add ( _ ( " Change " ) ) ;
m_ChangeExistingFootprintCtrl = new wxRadioBox ( itemDialog1 , ID_KEEP_OR_CHANGE_FOOTPRINTS , _ ( " Exchange Module: " ) , wxDefaultPosition , wxDefaultSize , m_ChangeExistingFootprintCtrlStrings , 1 , wxRA_SPECIFY_COLS ) ;
m_ChangeExistingFootprintCtrl - > SetSelection ( 0 ) ;
if ( WinEDA_NetlistFrame : : ShowToolTips ( ) )
m_ChangeExistingFootprintCtrl - > SetToolTip ( _ ( " Keep or change an existing footprint when the netlist gives a different footprint " ) ) ;
itemBoxSizer5 - > Add ( m_ChangeExistingFootprintCtrl , 0 , wxGROW | wxALL , 5 ) ;
itemBoxSizer4 - > Add ( 5 , 5 , 1 , wxALIGN_CENTER_VERTICAL | wxALL , 5 ) ;
wxBoxSizer * itemBoxSizer9 = new wxBoxSizer ( wxVERTICAL ) ;
itemBoxSizer4 - > Add ( itemBoxSizer9 , 0 , wxGROW | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
2007-11-13 09:35:39 +00:00
wxArrayString m_DeleteBadTracksStrings ;
m_DeleteBadTracksStrings . Add ( _ ( " Keep " ) ) ;
m_DeleteBadTracksStrings . Add ( _ ( " Delete " ) ) ;
2008-03-22 18:08:44 +00:00
m_DeleteBadTracks = new wxRadioBox ( itemDialog1 , ID_DELETE_TRACKS_OPTION , _ ( " Bad Tracks Deletion: " ) , wxDefaultPosition , wxDefaultSize , m_DeleteBadTracksStrings , 1 , wxRA_SPECIFY_COLS ) ;
2007-11-13 09:35:39 +00:00
m_DeleteBadTracks - > SetSelection ( 0 ) ;
2008-03-22 18:08:44 +00:00
if ( WinEDA_NetlistFrame : : ShowToolTips ( ) )
m_DeleteBadTracks - > SetToolTip ( _ ( " Keep or delete bad tracks after a netlist change " ) ) ;
itemBoxSizer9 - > Add ( m_DeleteBadTracks , 0 , wxGROW | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
wxStaticBox * itemStaticBoxSizer11Static = new wxStaticBox ( itemDialog1 , wxID_ANY , _ ( " Options " ) ) ;
wxStaticBoxSizer * itemStaticBoxSizer11 = new wxStaticBoxSizer ( itemStaticBoxSizer11Static , wxVERTICAL ) ;
itemBoxSizer9 - > Add ( itemStaticBoxSizer11 , 0 , wxGROW | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
m_DisplayWarningCtrl = new wxCheckBox ( itemDialog1 , ID_DISPLAY_WARNINGS_OPT , _ ( " Display Warnings " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
2007-06-05 12:10:51 +00:00
m_DisplayWarningCtrl - > SetValue ( false ) ;
2008-03-22 18:08:44 +00:00
itemStaticBoxSizer11 - > Add ( m_DisplayWarningCtrl , 0 , wxGROW | wxALL , 5 ) ;
m_RemoveExtraFootprintsCtrl = new wxCheckBox ( itemDialog1 , ID_REMOVE_EXTRA_FOOTPRINTS_OPT , _ ( " Remove Extra Footprints " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
m_RemoveExtraFootprintsCtrl - > SetValue ( false ) ;
if ( WinEDA_NetlistFrame : : ShowToolTips ( ) )
m_RemoveExtraFootprintsCtrl - > SetToolTip ( _ ( " Remove footprints found on the Board but not in netlist \n Note: only not locked footprints will be removed " ) ) ;
itemStaticBoxSizer11 - > Add ( m_RemoveExtraFootprintsCtrl , 0 , wxGROW | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
2007-11-13 09:35:39 +00:00
itemBoxSizer3 - > Add ( 5 , 5 , 1 , wxALIGN_CENTER_VERTICAL | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
wxBoxSizer * itemBoxSizer15 = new wxBoxSizer ( wxVERTICAL ) ;
itemBoxSizer3 - > Add ( itemBoxSizer15 , 0 , wxALIGN_CENTER_VERTICAL | wxTOP | wxBOTTOM , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
wxButton * itemButton16 = new wxButton ( itemDialog1 , ID_OPEN_NELIST , _ ( " Browse Netlist Files " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
itemButton16 - > SetForegroundColour ( wxColour ( 217 , 0 , 0 ) ) ;
itemBoxSizer15 - > Add ( itemButton16 , 0 , wxGROW | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
wxButton * itemButton17 = new wxButton ( itemDialog1 , ID_READ_NETLIST_FILE , _ ( " Read Current Netlist " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
itemButton17 - > SetForegroundColour ( wxColour ( 0 , 128 , 0 ) ) ;
itemBoxSizer15 - > Add ( itemButton17 , 0 , wxGROW | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
wxButton * itemButton18 = new wxButton ( itemDialog1 , ID_TEST_NETLIST , _ ( " Footprints Test " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
if ( WinEDA_NetlistFrame : : ShowToolTips ( ) )
itemButton18 - > SetToolTip ( _ ( " Read the current neltist file and list missing and extra footprints " ) ) ;
itemButton18 - > SetForegroundColour ( wxColour ( 0 , 128 , 128 ) ) ;
itemBoxSizer15 - > Add ( itemButton18 , 0 , wxGROW | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-03-22 18:08:44 +00:00
wxButton * itemButton19 = new wxButton ( itemDialog1 , ID_COMPILE_RATSNEST , _ ( " Rebuild Board Connectivity " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
if ( WinEDA_NetlistFrame : : ShowToolTips ( ) )
itemButton19 - > SetToolTip ( _ ( " Rebuild the full ratsnest (usefull after a manual pad netname edition) " ) ) ;
itemButton19 - > SetForegroundColour ( wxColour ( 0 , 0 , 132 ) ) ;
itemBoxSizer15 - > Add ( itemButton19 , 0 , wxGROW | wxALL , 5 ) ;
2008-04-30 11:52:34 +00:00
m_btClose = new wxButton ( itemDialog1 , wxID_CANCEL , _ ( " Close " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
m_btClose - > SetDefault ( ) ;
itemBoxSizer15 - > Add ( m_btClose , 0 , wxGROW | wxALL , 5 ) ;
wxStaticBox * itemStaticBoxSizer21Static = new wxStaticBox ( itemDialog1 , wxID_ANY , _ ( " Netlist File: " ) ) ;
wxStaticBoxSizer * itemStaticBoxSizer21 = new wxStaticBoxSizer ( itemStaticBoxSizer21Static , wxVERTICAL ) ;
itemStaticBoxSizer21Static - > SetForegroundColour ( wxColour ( 0 , 0 , 255 ) ) ;
itemBoxSizer2 - > Add ( itemStaticBoxSizer21 , 0 , wxGROW | wxALL , 5 ) ;
2008-03-22 18:08:44 +00:00
m_NetlistFilenameCtrl = new wxTextCtrl ( itemDialog1 , ID_TEXT_NETLIST_FILENAME , _T ( " " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
2008-04-30 11:52:34 +00:00
itemStaticBoxSizer21 - > Add ( m_NetlistFilenameCtrl , 0 , wxGROW | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
m_MessageWindow = new wxTextCtrl ( itemDialog1 , ID_TEXTCTRL , _T ( " " ) , wxDefaultPosition , wxSize ( - 1 , 120 ) , wxTE_MULTILINE | wxTE_READONLY ) ;
2007-11-13 09:35:39 +00:00
itemBoxSizer2 - > Add ( m_MessageWindow , 1 , wxGROW | wxALL , 10 ) ;
2008-04-30 11:52:34 +00:00
wxStaticLine * itemStaticLine24 = new wxStaticLine ( itemDialog1 , ID_STATICLINE , wxDefaultPosition , wxDefaultSize , wxLI_HORIZONTAL ) ;
itemBoxSizer2 - > Add ( itemStaticLine24 , 0 , wxGROW | wxLEFT | wxRIGHT , 5 ) ;
2007-11-13 09:35:39 +00:00
StdDialogButtonSizer = new wxStdDialogButtonSizer ;
itemBoxSizer2 - > Add ( StdDialogButtonSizer , 0 , wxGROW | wxALL , 10 ) ;
2008-04-30 11:52:34 +00:00
wxButton * itemButton26 = new wxButton ( itemDialog1 , wxID_CANCEL , _ ( " &Close " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
itemButton26 - > SetForegroundColour ( wxColour ( 0 , 0 , 255 ) ) ;
StdDialogButtonSizer - > AddButton ( itemButton26 ) ;
2007-11-13 09:35:39 +00:00
StdDialogButtonSizer - > Realize ( ) ;
2007-06-05 12:10:51 +00:00
// Set validators
m_DisplayWarningCtrl - > SetValidator ( wxGenericValidator ( & DisplayWarning ) ) ;
2007-05-06 16:03:28 +00:00
////@end WinEDA_NetlistFrame content construction
2008-04-30 11:52:34 +00:00
m_btClose - > SetFocus ( ) ;
2007-05-06 16:03:28 +00:00
}
2008-03-22 18:08:44 +00:00
2007-05-06 16:03:28 +00:00
/*!
* Should we show tooltips ?
*/
bool WinEDA_NetlistFrame : : ShowToolTips ( )
{
return true ;
}
2008-03-22 18:08:44 +00:00
2007-05-06 16:03:28 +00:00
/*!
* Get bitmap resources
*/
wxBitmap WinEDA_NetlistFrame : : GetBitmapResource ( const wxString & name )
{
// Bitmap retrieval
////@begin WinEDA_NetlistFrame bitmap retrieval
2007-06-05 12:10:51 +00:00
wxUnusedVar ( name ) ;
return wxNullBitmap ;
2007-05-06 16:03:28 +00:00
////@end WinEDA_NetlistFrame bitmap retrieval
}
2008-03-22 18:08:44 +00:00
2007-05-06 16:03:28 +00:00
/*!
* Get icon resources
*/
wxIcon WinEDA_NetlistFrame : : GetIconResource ( const wxString & name )
{
// Icon retrieval
////@begin WinEDA_NetlistFrame icon retrieval
2007-06-05 12:10:51 +00:00
wxUnusedVar ( name ) ;
return wxNullIcon ;
2007-05-06 16:03:28 +00:00
////@end WinEDA_NetlistFrame icon retrieval
}
2008-03-22 18:08:44 +00:00
2007-06-05 12:10:51 +00:00
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_OPEN_NELIST
*/
void WinEDA_NetlistFrame : : OnOpenNelistClick ( wxCommandEvent & event )
{
2008-03-22 18:08:44 +00:00
wxString fullfilename , mask ( wxT ( " * " ) ) ;
fullfilename = m_NetlistFilenameCtrl - > GetValue ( ) ;
mask + = NetExtBuffer ;
fullfilename = EDA_FileSelector ( _ ( " Netlist Selection: " ) ,
wxEmptyString , /* Chemin par defaut */
fullfilename , /* nom fichier par defaut */
NetExtBuffer , /* extension par defaut */
mask , /* Masque d'affichage */
this ,
0 ,
TRUE
) ;
if ( fullfilename . IsEmpty ( ) )
return ;
m_NetlistFilenameCtrl - > SetValue ( fullfilename ) ;
2007-06-05 12:10:51 +00:00
}
2008-03-22 18:08:44 +00:00
2007-06-05 12:10:51 +00:00
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_READ_NETLIST_FILE
*/
void WinEDA_NetlistFrame : : OnReadNetlistFileClick ( wxCommandEvent & event )
{
2008-03-22 18:08:44 +00:00
wxString CmpFullFileName ;
CmpFullFileName = m_NetlistFilenameCtrl - > GetValue ( ) ;
ChangeFileNameExt ( CmpFullFileName , NetCmpExtBuffer ) ;
ReadPcbNetlist ( m_Parent , m_NetlistFilenameCtrl - > GetValue ( ) ,
CmpFullFileName ,
m_MessageWindow ,
m_ChangeExistingFootprintCtrl - > GetSelection ( ) = = 1 ? TRUE : FALSE ,
m_DeleteBadTracks - > GetSelection ( ) = = 1 ? TRUE : FALSE ,
m_RemoveExtraFootprintsCtrl - > IsChecked ( ) ,
m_Select_By_Timestamp - > GetSelection ( ) = = 1 ? TRUE : FALSE ,
m_DisplayWarningCtrl - > IsChecked ( ) ) ;
2007-06-05 12:10:51 +00:00
}
2008-03-22 18:08:44 +00:00
2007-06-05 12:10:51 +00:00
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEST_NETLIST
*/
void WinEDA_NetlistFrame : : OnTestNetlistClick ( wxCommandEvent & event )
{
2008-03-22 18:08:44 +00:00
TestFor_Duplicate_Missing_And_Extra_Footprints ( this , m_NetlistFilenameCtrl - > GetValue ( ) , m_Parent - > m_Pcb ) ;
2007-06-05 12:10:51 +00:00
}
2008-03-22 18:08:44 +00:00
2007-06-05 12:10:51 +00:00
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_COMPILE_RATSNEST
*/
void WinEDA_NetlistFrame : : OnCompileRatsnestClick ( wxCommandEvent & event )
{
2008-03-22 18:08:44 +00:00
m_Parent - > Compile_Ratsnest ( m_DC , TRUE ) ;
2007-06-05 12:10:51 +00:00
}
2008-03-22 18:08:44 +00:00
2007-06-05 12:10:51 +00:00
/*!
2007-11-13 09:35:39 +00:00
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
2007-06-05 12:10:51 +00:00
*/
2007-11-13 09:35:39 +00:00
void WinEDA_NetlistFrame : : OnCancelClick ( wxCommandEvent & event )
2007-06-05 12:10:51 +00:00
{
2007-11-13 09:35:39 +00:00
EndModal ( - 1 ) ;
2007-06-05 12:10:51 +00:00
}