Gerbview: display now an error report after loading a gerber file.
This commit is contained in:
parent
0f64b35234
commit
0687921fa9
|
@ -23,13 +23,13 @@ void DIALOG_LOAD_ERROR::ListClear(void)
|
||||||
|
|
||||||
/** Function ListSet
|
/** Function ListSet
|
||||||
* Add a list of items.
|
* Add a list of items.
|
||||||
* @param list = a string containing items. Items are separated by '\n'
|
* @param aList = a string containing items. Items are separated by '\n'
|
||||||
*/
|
*/
|
||||||
void DIALOG_LOAD_ERROR::ListSet(const wxString &list)
|
void DIALOG_LOAD_ERROR::ListSet(const wxString &aList)
|
||||||
{
|
{
|
||||||
wxArrayString* wxStringSplit( wxString txt, wxChar splitter );
|
wxArrayString* wxStringSplit( wxString txt, wxChar splitter );
|
||||||
|
|
||||||
wxArrayString* strings_list = wxStringSplit( list, wxChar('\n') );
|
wxArrayString* strings_list = wxStringSplit( aList, wxChar('\n') );
|
||||||
m_htmlWindow->AppendToPage(wxT("<ul>") );
|
m_htmlWindow->AppendToPage(wxT("<ul>") );
|
||||||
for ( unsigned ii = 0; ii < strings_list->GetCount(); ii ++ )
|
for ( unsigned ii = 0; ii < strings_list->GetCount(); ii ++ )
|
||||||
{
|
{
|
||||||
|
@ -42,6 +42,22 @@ void DIALOG_LOAD_ERROR::ListSet(const wxString &list)
|
||||||
delete strings_list;
|
delete strings_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Function ListSet
|
||||||
|
* Add a list of items.
|
||||||
|
* @param aList = a wxArrayString containing items
|
||||||
|
*/
|
||||||
|
void DIALOG_LOAD_ERROR::ListSet(const wxArrayString &aList)
|
||||||
|
{
|
||||||
|
m_htmlWindow->AppendToPage(wxT("<ul>") );
|
||||||
|
for ( unsigned ii = 0; ii < aList.GetCount(); ii ++ )
|
||||||
|
{
|
||||||
|
m_htmlWindow->AppendToPage(wxT("<li>") );
|
||||||
|
m_htmlWindow->AppendToPage( aList.Item(ii) );
|
||||||
|
m_htmlWindow->AppendToPage(wxT("</li>") );
|
||||||
|
}
|
||||||
|
m_htmlWindow->AppendToPage(wxT("</ul>") );
|
||||||
|
}
|
||||||
|
|
||||||
/** Function MessageSet
|
/** Function MessageSet
|
||||||
* Add a message (in bold) to message list.
|
* Add a message (in bold) to message list.
|
||||||
* @param message = the message
|
* @param message = the message
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
|
|
||||||
/* Definitions for enabling and disabling debugging features in gr_basic.cpp.
|
/* Definitions for enabling and disabling debugging features in gr_basic.cpp.
|
||||||
* Please remember to set these back to 0 before making SVN commits.
|
* Please remember to set these back to 0 before making LAUNCHPAD commits.
|
||||||
*/
|
*/
|
||||||
#define DEBUG_DUMP_CLIP_ERROR_COORDS 0 // Set to 1 to dump clip algorithm errors.
|
#define DEBUG_DUMP_CLIP_ERROR_COORDS 0 // Set to 1 to dump clip algorithm errors.
|
||||||
#define DEBUG_DUMP_CLIP_COORDS 0 // Set to 1 to dump clipped coordinates.
|
#define DEBUG_DUMP_CLIP_COORDS 0 // Set to 1 to dump clipped coordinates.
|
||||||
|
@ -834,6 +834,8 @@ void GRMixedLine( EDA_Rect* ClipBox,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Draw a mixed line, in screen (Pixels) space.
|
* Draw a mixed line, in screen (Pixels) space.
|
||||||
|
* Currently, draw a line (not a mixed line)
|
||||||
|
* Perhaps this function is not very useful.
|
||||||
*/
|
*/
|
||||||
void GRSMixedLine( EDA_Rect* ClipBox,
|
void GRSMixedLine( EDA_Rect* ClipBox,
|
||||||
wxDC* DC,
|
wxDC* DC,
|
||||||
|
|
|
@ -182,6 +182,8 @@ void GERBER::InitToolTable()
|
||||||
m_Aperture_List[count]->m_Num_Dcode = count + FIRST_DCODE;
|
m_Aperture_List[count]->m_Num_Dcode = count + FIRST_DCODE;
|
||||||
m_Aperture_List[count]->Clear_D_CODE_Data();
|
m_Aperture_List[count]->Clear_D_CODE_Data();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_aperture_macros.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** function ReportMessage
|
/** function ReportMessage
|
||||||
|
|
|
@ -17,6 +17,9 @@ static void LoadDCodeFile( WinEDA_GerberFrame* frame,
|
||||||
const wxString& FullFileName );
|
const wxString& FullFileName );
|
||||||
|
|
||||||
|
|
||||||
|
/* Load agerber file selected from history list on current layer
|
||||||
|
* Previous data is deleted
|
||||||
|
*/
|
||||||
void WinEDA_GerberFrame::OnFileHistory( wxCommandEvent& event )
|
void WinEDA_GerberFrame::OnFileHistory( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
wxString fn;
|
wxString fn;
|
||||||
|
@ -53,6 +56,7 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
|
||||||
if( origLayer < NB_LAYERS )
|
if( origLayer < NB_LAYERS )
|
||||||
{
|
{
|
||||||
setActiveLayer(origLayer+1);
|
setActiveLayer(origLayer+1);
|
||||||
|
Erase_Current_Layer( false );
|
||||||
|
|
||||||
if( !LoadOneGerberFile( wxEmptyString ) )
|
if( !LoadOneGerberFile( wxEmptyString ) )
|
||||||
setActiveLayer(origLayer);
|
setActiveLayer(origLayer);
|
||||||
|
@ -69,10 +73,6 @@ delete an existing layer to load any new layers." ), NB_LAYERS );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_APPEND_FILE:
|
|
||||||
LoadOneGerberFile( wxEmptyString );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ID_NEW_BOARD:
|
case ID_NEW_BOARD:
|
||||||
Clear_Pcb( true );
|
Clear_Pcb( true );
|
||||||
Zoom_Automatique( false );
|
Zoom_Automatique( false );
|
||||||
|
@ -87,14 +87,6 @@ delete an existing layer to load any new layers." ), NB_LAYERS );
|
||||||
LoadDCodeFile( this, wxEmptyString );
|
LoadDCodeFile( this, wxEmptyString );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_SAVE_BOARD:
|
|
||||||
SaveGerberFile( GetScreen()->m_FileName );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ID_SAVE_BOARD_AS:
|
|
||||||
SaveGerberFile( wxEmptyString );
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
DisplayError( this, wxT( "File_io Internal Error" ) );
|
DisplayError( this, wxT( "File_io Internal Error" ) );
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -32,20 +32,15 @@ BEGIN_EVENT_TABLE( WinEDA_GerberFrame, WinEDA_BasePcbFrame )
|
||||||
EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_GerberFrame::OnZoom )
|
EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_GerberFrame::OnZoom )
|
||||||
|
|
||||||
EVT_TOOL( wxID_FILE, WinEDA_GerberFrame::Files_io )
|
EVT_TOOL( wxID_FILE, WinEDA_GerberFrame::Files_io )
|
||||||
EVT_TOOL( ID_APPEND_FILE, WinEDA_GerberFrame::Files_io )
|
|
||||||
EVT_TOOL( ID_INC_LAYER_AND_APPEND_FILE, WinEDA_GerberFrame::Files_io )
|
EVT_TOOL( ID_INC_LAYER_AND_APPEND_FILE, WinEDA_GerberFrame::Files_io )
|
||||||
EVT_TOOL( ID_GERBVIEW_LOAD_DRILL_FILE, WinEDA_GerberFrame::Files_io )
|
EVT_TOOL( ID_GERBVIEW_LOAD_DRILL_FILE, WinEDA_GerberFrame::Files_io )
|
||||||
EVT_TOOL( ID_GERBVIEW_LOAD_DCODE_FILE, WinEDA_GerberFrame::Files_io )
|
EVT_TOOL( ID_GERBVIEW_LOAD_DCODE_FILE, WinEDA_GerberFrame::Files_io )
|
||||||
EVT_TOOL( ID_NEW_BOARD, WinEDA_GerberFrame::Files_io )
|
EVT_TOOL( ID_NEW_BOARD, WinEDA_GerberFrame::Files_io )
|
||||||
EVT_TOOL( ID_SAVE_BOARD, WinEDA_GerberFrame::Files_io )
|
|
||||||
|
|
||||||
// Menu Files:
|
// Menu Files:
|
||||||
EVT_MENU( wxID_FILE, WinEDA_GerberFrame::Files_io )
|
EVT_MENU( wxID_FILE, WinEDA_GerberFrame::Files_io )
|
||||||
EVT_MENU( ID_APPEND_FILE, WinEDA_GerberFrame::Files_io )
|
|
||||||
EVT_MENU( ID_MENU_INC_LAYER_AND_APPEND_FILE, WinEDA_GerberFrame::Files_io )
|
EVT_MENU( ID_MENU_INC_LAYER_AND_APPEND_FILE, WinEDA_GerberFrame::Files_io )
|
||||||
EVT_MENU( ID_NEW_BOARD, WinEDA_GerberFrame::Files_io )
|
EVT_MENU( ID_NEW_BOARD, WinEDA_GerberFrame::Files_io )
|
||||||
EVT_MENU( ID_SAVE_BOARD, WinEDA_GerberFrame::Files_io )
|
|
||||||
EVT_MENU( ID_SAVE_BOARD_AS, WinEDA_GerberFrame::Files_io )
|
|
||||||
EVT_MENU( ID_GEN_PLOT, WinEDA_GerberFrame::ToPlotter )
|
EVT_MENU( ID_GEN_PLOT, WinEDA_GerberFrame::ToPlotter )
|
||||||
EVT_MENU( ID_GERBVIEW_EXPORT_TO_PCBNEW,
|
EVT_MENU( ID_GERBVIEW_EXPORT_TO_PCBNEW,
|
||||||
WinEDA_GerberFrame::ExportDataInPcbnewFormat )
|
WinEDA_GerberFrame::ExportDataInPcbnewFormat )
|
||||||
|
|
|
@ -31,11 +31,7 @@ void WinEDA_GerberFrame::ReCreateMenuBar( void )
|
||||||
|
|
||||||
wxMenu* filesMenu = new wxMenu;
|
wxMenu* filesMenu = new wxMenu;
|
||||||
filesMenu->Append( wxID_FILE, _( "Load Gerber File" ),
|
filesMenu->Append( wxID_FILE, _( "Load Gerber File" ),
|
||||||
_( "Load a new Gerber file on the current layer" ),
|
_( "Load a new Gerber file on the current layer. Previous data will be deleted" ),
|
||||||
FALSE );
|
|
||||||
|
|
||||||
filesMenu->Append( ID_APPEND_FILE, _( "Append Gerber File to Current Layer" ),
|
|
||||||
_( "Append a new Gerber file to the current layer" ),
|
|
||||||
FALSE );
|
FALSE );
|
||||||
|
|
||||||
filesMenu->Append( ID_MENU_INC_LAYER_AND_APPEND_FILE,
|
filesMenu->Append( ID_MENU_INC_LAYER_AND_APPEND_FILE,
|
||||||
|
@ -45,26 +41,18 @@ void WinEDA_GerberFrame::ReCreateMenuBar( void )
|
||||||
|
|
||||||
filesMenu->Append( ID_GERBVIEW_LOAD_DCODE_FILE, _( "Load DCodes" ),
|
filesMenu->Append( ID_GERBVIEW_LOAD_DCODE_FILE, _( "Load DCodes" ),
|
||||||
_( "Load D-Codes File" ), FALSE );
|
_( "Load D-Codes File" ), FALSE );
|
||||||
#if 0
|
#if 0 // TODO
|
||||||
filesMenu->Append( ID_GERBVIEW_LOAD_DRILL_FILE, _( "Load EXCELLON Drill File" ),
|
filesMenu->Append( ID_GERBVIEW_LOAD_DRILL_FILE, _( "Load EXCELLON Drill File" ),
|
||||||
_( "Load excellon drill file" ), FALSE );
|
_( "Load excellon drill file" ), FALSE );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
filesMenu->Append( ID_NEW_BOARD, _( "&Clear All" ),
|
filesMenu->Append( ID_NEW_BOARD, _( "&Clear All" ),
|
||||||
_( "Clear all layers" ), FALSE );
|
_( "Clear all layers. All data will be deleted" ), FALSE );
|
||||||
|
|
||||||
filesMenu->AppendSeparator();
|
filesMenu->AppendSeparator();
|
||||||
filesMenu->Append( ID_GERBVIEW_EXPORT_TO_PCBNEW, _( "&Export to Pcbnew" ),
|
filesMenu->Append( ID_GERBVIEW_EXPORT_TO_PCBNEW, _( "&Export to Pcbnew" ),
|
||||||
_( "Export data in pcbnew format" ), FALSE );
|
_( "Export data in pcbnew format" ), FALSE );
|
||||||
|
|
||||||
#if 0
|
|
||||||
filesMenu->AppendSeparator();
|
|
||||||
filesMenu->Append( ID_SAVE_BOARD, _( "&Save Layers" ),
|
|
||||||
_( "Save current layers (GERBER format)" ), FALSE );
|
|
||||||
|
|
||||||
filesMenu->Append( ID_SAVE_BOARD_AS, _( "Save Layers As..." ),
|
|
||||||
_( "Save current layers as.." ), FALSE );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
filesMenu->AppendSeparator();
|
filesMenu->AppendSeparator();
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include "pcbplot.h"
|
#include "pcbplot.h"
|
||||||
#include "protos.h"
|
#include "protos.h"
|
||||||
|
|
||||||
|
#include "dialog_load_error.h"
|
||||||
|
|
||||||
/* Read a gerber file, RS274D or RS274X format.
|
/* Read a gerber file, RS274D or RS274X format.
|
||||||
*/
|
*/
|
||||||
|
@ -27,7 +28,6 @@ bool WinEDA_GerberFrame::Read_GERBER_File( const wxString& GERBER_FullFileName,
|
||||||
char* text;
|
char* text;
|
||||||
int layer; /* current layer used in gerbview */
|
int layer; /* current layer used in gerbview */
|
||||||
GERBER* gerber;
|
GERBER* gerber;
|
||||||
int error = 0;
|
|
||||||
|
|
||||||
layer = GetScreen()->m_Active_Layer;
|
layer = GetScreen()->m_Active_Layer;
|
||||||
|
|
||||||
|
@ -57,7 +57,6 @@ bool WinEDA_GerberFrame::Read_GERBER_File( const wxString& GERBER_FullFileName,
|
||||||
if( path != wxEmptyString )
|
if( path != wxEmptyString )
|
||||||
wxSetWorkingDirectory( path );
|
wxSetWorkingDirectory( path );
|
||||||
|
|
||||||
wxBusyCursor show_wait;
|
|
||||||
SetLocaleTo_C_standard();
|
SetLocaleTo_C_standard();
|
||||||
|
|
||||||
while( TRUE )
|
while( TRUE )
|
||||||
|
@ -130,15 +129,11 @@ bool WinEDA_GerberFrame::Read_GERBER_File( const wxString& GERBER_FullFileName,
|
||||||
if( gerber->m_CommandState != ENTER_RS274X_CMD )
|
if( gerber->m_CommandState != ENTER_RS274X_CMD )
|
||||||
{
|
{
|
||||||
gerber->m_CommandState = ENTER_RS274X_CMD;
|
gerber->m_CommandState = ENTER_RS274X_CMD;
|
||||||
|
gerber->ReadRS274XCommand( this, line, text );
|
||||||
if( !gerber->ReadRS274XCommand( this, line, text ) )
|
|
||||||
{
|
|
||||||
error++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else //Error
|
else //Error
|
||||||
{
|
{
|
||||||
error++;
|
ReportMessage( wxT("Expected RS274X Command") );
|
||||||
gerber->m_CommandState = CMD_IDLE;
|
gerber->m_CommandState = CMD_IDLE;
|
||||||
text++;
|
text++;
|
||||||
}
|
}
|
||||||
|
@ -146,25 +141,27 @@ bool WinEDA_GerberFrame::Read_GERBER_File( const wxString& GERBER_FullFileName,
|
||||||
|
|
||||||
default:
|
default:
|
||||||
text++;
|
text++;
|
||||||
error++;
|
msg.Printf( wxT("Unexpected symbol <%c>"), *text );
|
||||||
|
ReportMessage( msg );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( error )
|
|
||||||
{
|
|
||||||
msg.Printf( _( "%d errors while reading Gerber file [%s]" ),
|
|
||||||
error, GetChars(GERBER_FullFileName) );
|
|
||||||
DisplayError( this, msg );
|
|
||||||
}
|
|
||||||
fclose( gerber->m_Current_File );
|
fclose( gerber->m_Current_File );
|
||||||
|
|
||||||
|
// Display errors list
|
||||||
|
if( m_Messages.size() > 0 )
|
||||||
|
{
|
||||||
|
DIALOG_LOAD_ERROR dlg( this );
|
||||||
|
dlg.ListSet(m_Messages);
|
||||||
|
dlg.ShowModal();
|
||||||
|
}
|
||||||
|
|
||||||
SetLocaleTo_Default();
|
SetLocaleTo_Default();
|
||||||
|
|
||||||
/* Init DCodes list and perhaps read a DCODES file,
|
/* Init DCodes list and perhaps read a DCODES file,
|
||||||
* if the gerber file is only a RS274D file (without any aperture
|
* if the gerber file is only a RS274D file
|
||||||
* information)
|
* (i.e. without any aperture information)
|
||||||
*/
|
*/
|
||||||
if( !gerber->m_Has_DCode )
|
if( !gerber->m_Has_DCode )
|
||||||
{
|
{
|
||||||
|
|
|
@ -975,7 +975,7 @@ bool GERBER::Execute_DCODE_Command( WinEDA_GerberFrame* frame, char*& text, int
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
msg.Printf( wxT( "Execute_DCODE_Command: interpol error (type %X)" ),
|
msg.Printf( wxT( "RS274D: DCODE Command: interpol error (type %X)" ),
|
||||||
m_Iterpolation );
|
m_Iterpolation );
|
||||||
ReportMessage( msg );
|
ReportMessage( msg );
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -296,7 +296,7 @@ bool GERBER::ExecuteRS274XCommand( int command,
|
||||||
case STEP_AND_REPEAT:
|
case STEP_AND_REPEAT:
|
||||||
case ROTATE:
|
case ROTATE:
|
||||||
{
|
{
|
||||||
msg.Printf( _( "Command <%c%c> ignored by Gerbview" ),
|
msg.Printf( _( "RS274X: Command \"%c%c\" ignored by Gerbview" ),
|
||||||
(command >> 8) & 0xFF, command & 0xFF );
|
(command >> 8) & 0xFF, command & 0xFF );
|
||||||
ReportMessage( msg );
|
ReportMessage( msg );
|
||||||
}
|
}
|
||||||
|
@ -531,7 +531,7 @@ bool GERBER::ExecuteRS274XCommand( int command,
|
||||||
APERTURE_MACRO* pam = FindApertureMacro( am_lookup );
|
APERTURE_MACRO* pam = FindApertureMacro( am_lookup );
|
||||||
if( !pam )
|
if( !pam )
|
||||||
{
|
{
|
||||||
msg.Printf( wxT( "aperture macro %s not found\n" ),
|
msg.Printf( wxT( "RS274X: aperture macro %s not found\n" ),
|
||||||
CONV_TO_UTF8( am_lookup.name ) );
|
CONV_TO_UTF8( am_lookup.name ) );
|
||||||
ReportMessage( msg );
|
ReportMessage( msg );
|
||||||
ok = false;
|
ok = false;
|
||||||
|
@ -676,7 +676,7 @@ bool GERBER::ReadApertureMacro( char buff[GERBER_BUFZ],
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// @todo, there needs to be a way of reporting the line number
|
// @todo, there needs to be a way of reporting the line number
|
||||||
msg.Printf( wxT( "Invalid primitive id code %d\n" ), prim.primitive_id );
|
msg.Printf( wxT( "RS274X: Invalid primitive id code %d\n" ), prim.primitive_id );
|
||||||
ReportMessage( msg );
|
ReportMessage( msg );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -702,7 +702,7 @@ bool GERBER::ReadApertureMacro( char buff[GERBER_BUFZ],
|
||||||
|
|
||||||
if( i < paramCount )
|
if( i < paramCount )
|
||||||
{ // maybe some day we can throw an exception and track a line number
|
{ // maybe some day we can throw an exception and track a line number
|
||||||
msg.Printf( wxT( "read macro descr type %d: read %d parameters, insufficient parameters\n" ),
|
msg.Printf( wxT( "RS274X: read macro descr type %d: read %d parameters, insufficient parameters\n" ),
|
||||||
prim.primitive_id, i );
|
prim.primitive_id, i );
|
||||||
ReportMessage( msg );
|
ReportMessage( msg );
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,16 +42,15 @@ void WinEDA_GerberFrame::ReCreateHToolbar( void )
|
||||||
// Set up toolbar
|
// Set up toolbar
|
||||||
m_HToolBar->AddTool( ID_NEW_BOARD, wxEmptyString,
|
m_HToolBar->AddTool( ID_NEW_BOARD, wxEmptyString,
|
||||||
wxBitmap( new_xpm ),
|
wxBitmap( new_xpm ),
|
||||||
_( "New world" ) );
|
_( "Erase all layers" ) );
|
||||||
|
|
||||||
m_HToolBar->AddTool( wxID_FILE, wxEmptyString,
|
m_HToolBar->AddTool( wxID_FILE, wxEmptyString,
|
||||||
wxBitmap( open_xpm ),
|
wxBitmap( open_xpm ),
|
||||||
_( "Open existing Layer" ) );
|
_( "Load a new Gerber file on the current layer. Previous data will be deleted" ) );
|
||||||
|
|
||||||
|
|
||||||
m_HToolBar->AddSeparator();
|
m_HToolBar->AddSeparator();
|
||||||
|
|
||||||
|
|
||||||
m_HToolBar->AddTool( wxID_UNDO, wxEmptyString,
|
m_HToolBar->AddTool( wxID_UNDO, wxEmptyString,
|
||||||
wxBitmap( undelete_xpm ),
|
wxBitmap( undelete_xpm ),
|
||||||
_( "Undelete" ) );
|
_( "Undelete" ) );
|
||||||
|
@ -59,7 +58,7 @@ void WinEDA_GerberFrame::ReCreateHToolbar( void )
|
||||||
m_HToolBar->AddSeparator();
|
m_HToolBar->AddSeparator();
|
||||||
m_HToolBar->AddTool( wxID_PRINT, wxEmptyString,
|
m_HToolBar->AddTool( wxID_PRINT, wxEmptyString,
|
||||||
wxBitmap( print_button ),
|
wxBitmap( print_button ),
|
||||||
_( "Print world" ) );
|
_( "Print layers" ) );
|
||||||
|
|
||||||
m_HToolBar->AddSeparator();
|
m_HToolBar->AddSeparator();
|
||||||
msg = AddHotkeyName( _( "Zoom in" ), s_Gerbview_Hokeys_Descr, HK_ZOOM_IN );
|
msg = AddHotkeyName( _( "Zoom in" ), s_Gerbview_Hokeys_Descr, HK_ZOOM_IN );
|
||||||
|
|
|
@ -18,11 +18,18 @@ protected:
|
||||||
public:
|
public:
|
||||||
/** Constructor */
|
/** Constructor */
|
||||||
DIALOG_LOAD_ERROR( wxWindow* parent );
|
DIALOG_LOAD_ERROR( wxWindow* parent );
|
||||||
|
|
||||||
/** Function ListSet
|
/** Function ListSet
|
||||||
* Add a list of items.
|
* Add a list of items.
|
||||||
* @param list = a string containing items. Items are separated by '\n'
|
* @param list = a string containing items. Items are separated by '\n'
|
||||||
*/
|
*/
|
||||||
void ListSet(const wxString &list);
|
void ListSet(const wxString &list);
|
||||||
|
/** Function ListSet
|
||||||
|
* Add a list of items.
|
||||||
|
* @param list = a wxArrayString containing items.
|
||||||
|
*/
|
||||||
|
void ListSet(const wxArrayString &list);
|
||||||
|
|
||||||
void ListClear();
|
void ListClear();
|
||||||
/** Function MessageSet
|
/** Function MessageSet
|
||||||
* Add a message (in bold) to message list.
|
* Add a message (in bold) to message list.
|
||||||
|
|
Loading…
Reference in New Issue