Workaround to fix Bug #1492513 (EEschema crash when I hit ERC button Edit). It happens only on Window 32bits build with msys2+gcc 5.2). The crash is due to the wxHtmlListBox used in ERC dialog (Although the sample htlbox works fine).

The wxHtmlListBox is just replaced by the wxHtmlWindow to display and select the ERC marker list.
This commit is contained in:
jean-pierre charras 2015-09-10 14:03:16 +02:00
parent 1d4a46d9c8
commit 24409c6edc
6 changed files with 121 additions and 140 deletions

View File

@ -1,7 +1,7 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -24,34 +24,32 @@
#ifndef DIALOG_ERC_LISTBOX_H
#define DIALOG_ERC_LISTBOX_H
#include <wx/htmllbox.h>
#include <vector>
#include <fctsys.h>
#include <class_drawpanel.h>
#include <sch_marker.h>
#include <wx/html/htmlwin.h>
/**
* Class ERC_HTML_LISTBOX
* Class ERC_HTML_LISTFRAME
* is used to display a DRC_ITEM_LIST.
*/
class ERC_HTML_LISTBOX : public wxHtmlListBox
class ERC_HTML_LISTFRAME : public wxHtmlWindow
{
private:
std::vector<SCH_MARKER*> m_MarkerList; ///< wxHtmlListBox does not own the list, I do
std::vector<SCH_MARKER*> m_MarkerListReferences; // The pointers to markers shown in list
public:
ERC_HTML_LISTBOX( wxWindow* parent, wxWindowID id = wxID_ANY,
ERC_HTML_LISTFRAME( wxWindow* parent, wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0, const wxString choices[] = NULL,
int unused = 0 ) :
wxHtmlListBox( parent, id, pos, size, style )
long style = 0 ) :
wxHtmlWindow( parent, id, pos, size, style | wxHW_NO_SELECTION )
{
}
~ERC_HTML_LISTBOX()
~ERC_HTML_LISTFRAME()
{
}
@ -59,17 +57,36 @@ public:
/**
* Function AppendToList
* @param aItem The SCH_MARKER* to add to the current list which will be
* displayed in the wxHtmlListBox
* @param aRefresh = true to refresh the display
* later displayed in the wxHtmlWindow
*/
void AppendToList( SCH_MARKER* aItem, bool aRefresh = true )
void AppendToList( SCH_MARKER* aMarker )
{
m_MarkerList.push_back( aItem);
SetItemCount( m_MarkerList.size() );
if( aRefresh )
Refresh();
m_MarkerListReferences.push_back( aMarker );
}
/**
* Function DisplayList();
* Build the Html marker list and show it
*/
void DisplayList()
{
wxString htmlpage;
// for each marker, build a link like:
// <A HREF="marker_index">text to click</A>
// The "text to click" is the error name (first line of the full error text).
wxString marker_text;
for( unsigned ii = 0; ii < m_MarkerListReferences.size(); ii++ )
{
marker_text.Printf( wxT( "<A HREF=\"%d\">" ), ii );
marker_text << m_MarkerListReferences[ii]->GetReporter().ShowHtml();
marker_text.Replace( wxT( "<ul>" ), wxT( "</A><ul>" ), false );
htmlpage += marker_text;
}
SetPage( htmlpage );
}
/**
* Function GetItem
@ -77,55 +94,24 @@ public:
*/
const SCH_MARKER* GetItem( unsigned aIndex )
{
if( m_MarkerList.size() > aIndex )
if( m_MarkerListReferences.size() > aIndex )
{
return m_MarkerList[ aIndex ];
return m_MarkerListReferences[ aIndex ];
}
return NULL;
}
/**
* Function OnGetItem
* returns the html text associated with the DRC_ITEM given by index 'n'.
* @param n An index into the list.
* @return wxString - the simple html text to show in the listbox.
*/
wxString OnGetItem( size_t n ) const
{
if( m_MarkerList.size() > n )
{
const SCH_MARKER* item = m_MarkerList[ n ];
if( item )
return item->GetReporter().ShowHtml();
}
return wxString();
}
/**
* Function OnGetItemMarkup
* returns the html text associated with the given index 'n'.
* @param n An index into the list.
* @return wxString - the simple html text to show in the listbox.
*/
wxString OnGetItemMarkup( size_t n ) const
{
return OnGetItem( n );
}
/**
* Function ClearList
* deletes all items in the list.
* deletes all items shown in the list.
* Does not erase markers in schematic
*/
void ClearList()
{
m_MarkerList.clear();
SetItemCount( 0 );
SetSelection( -1 ); // -1 is no selection
Refresh();
m_MarkerListReferences.clear();
SetPage( wxEmptyString );
}
};

View File

@ -45,7 +45,6 @@
#include <lib_pin.h>
#include <dialog_erc.h>
#include <dialog_erc_listbox.h>
#include <erc.h>
#include <id.h>
@ -60,9 +59,7 @@ END_EVENT_TABLE()
DIALOG_ERC::DIALOG_ERC( SCH_EDIT_FRAME* parent ) :
DIALOG_ERC_BASE(
parent,
ID_DIALOG_ERC // parent looks for this ID explicitly
DIALOG_ERC_BASE( parent, ID_DIALOG_ERC // parent looks for this ID explicitly
)
{
m_parent = parent;
@ -83,8 +80,10 @@ void DIALOG_ERC::Init()
m_initialized = false;
for( int ii = 0; ii < PIN_NMAX; ii++ )
{
for( int jj = 0; jj < PIN_NMAX; jj++ )
m_buttonList[ii][jj] = NULL;
}
m_WriteResultOpt->SetValue( m_writeErcFile );
@ -136,6 +135,7 @@ void DIALOG_ERC::OnEraseDrcMarkersClick( wxCommandEvent& event )
}
/* event handler for Close button
*/
void DIALOG_ERC::OnButtonCloseClick( wxCommandEvent& event )
@ -158,7 +158,8 @@ void DIALOG_ERC::OnResetMatrixClick( wxCommandEvent& event )
void DIALOG_ERC::OnErcCmpClick( wxCommandEvent& event )
{
wxBusyCursor();
m_MarkersList->Clear();
m_MarkersList->ClearList();
m_MessagesList->Clear();
wxSafeYield(); // m_MarkersList must be redraw
wxArrayString messageList;
@ -169,16 +170,21 @@ void DIALOG_ERC::OnErcCmpClick( wxCommandEvent& event )
}
void DIALOG_ERC::OnLeftClickMarkersList( wxCommandEvent& event )
void DIALOG_ERC::OnLeftClickMarkersList( wxHtmlLinkEvent& event )
{
wxString link = event.GetLinkInfo().GetHref();
m_lastMarkerFound = NULL;
int index = m_MarkersList->GetSelection();
long index;
if( index < 0 )
if( !link.ToLong( &index ) )
return;
const SCH_MARKER* marker = m_MarkersList->GetItem( (unsigned) index );
const SCH_MARKER* marker = m_MarkersList->GetItem( index );
if( marker == NULL )
return;
// Search for the selected marker
SCH_SHEET_PATH* sheet;
@ -224,7 +230,7 @@ void DIALOG_ERC::OnLeftClickMarkersList( wxCommandEvent& event )
}
void DIALOG_ERC::OnLeftDblClickMarkersList( wxCommandEvent& event )
void DIALOG_ERC::OnLeftDblClickMarkersList( wxMouseEvent& event )
{
// Remember: OnLeftClickMarkersList was called just berfore
// and therefore m_lastMarkerFound was initialized.
@ -366,17 +372,16 @@ void DIALOG_ERC::DisplayERC_MarkersList()
if( item->Type() != SCH_MARKER_T )
continue;
SCH_MARKER* Marker = (SCH_MARKER*) item;
SCH_MARKER* marker = (SCH_MARKER*) item;
if( Marker->GetMarkerType() != MARKER_BASE::MARKER_ERC )
if( marker->GetMarkerType() != MARKER_BASE::MARKER_ERC )
continue;
// Add marker without refresh the displayed list:
m_MarkersList->AppendToList( Marker, false );
m_MarkersList->AppendToList( marker );
}
}
m_MarkersList->Refresh();
m_MarkersList->DisplayList();
}

View File

@ -30,6 +30,7 @@
#include <dialog_erc_base.h>
#include "dialog_erc_listbox.h"
/* Variable locales */
extern int DiagErc[PIN_NMAX][PIN_NMAX];
@ -67,10 +68,12 @@ private:
void OnEraseDrcMarkersClick( wxCommandEvent& event );
void OnButtonCloseClick( wxCommandEvent& event );
void OnResetMatrixClick( wxCommandEvent& event );
void OnLeftClickMarkersList( wxCommandEvent& event );
// Click on a marker info:
void OnLeftClickMarkersList( wxHtmlLinkEvent& event );
// Double click on a marker info:
void OnLeftDblClickMarkersList( wxCommandEvent& event );
void OnLeftDblClickMarkersList( wxMouseEvent& event );
void TestErc( wxArrayString* aMessagesList );
void DisplayERC_MarkersList();

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Mar 9 2015)
// C++ code generated with wxFormBuilder (version Jun 17 2015)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@ -11,16 +11,6 @@
///////////////////////////////////////////////////////////////////////////
BEGIN_EVENT_TABLE( DIALOG_ERC_BASE, DIALOG_SHIM )
EVT_CLOSE( DIALOG_ERC_BASE::_wxFB_OnCloseErcDialog )
EVT_LISTBOX( ID_MAKER_HTMLLISTBOX, DIALOG_ERC_BASE::_wxFB_OnLeftClickMarkersList )
EVT_LISTBOX_DCLICK( ID_MAKER_HTMLLISTBOX, DIALOG_ERC_BASE::_wxFB_OnLeftDblClickMarkersList )
EVT_BUTTON( ID_ERASE_DRC_MARKERS, DIALOG_ERC_BASE::_wxFB_OnEraseDrcMarkersClick )
EVT_BUTTON( ID_ERC_CMP, DIALOG_ERC_BASE::_wxFB_OnErcCmpClick )
EVT_BUTTON( wxID_CANCEL, DIALOG_ERC_BASE::_wxFB_OnButtonCloseClick )
EVT_BUTTON( ID_RESET_MATRIX, DIALOG_ERC_BASE::_wxFB_OnResetMatrixClick )
END_EVENT_TABLE()
DIALOG_ERC_BASE::DIALOG_ERC_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
@ -42,31 +32,31 @@ DIALOG_ERC_BASE::DIALOG_ERC_BASE( wxWindow* parent, wxWindowID id, const wxStrin
wxGridSizer* gSizeDiag;
gSizeDiag = new wxGridSizer( 3, 2, 0, 0 );
m_ErcTotalErrorsText = new wxStaticText( m_PanelERC, wxID_ANY, _("Total:"), wxDefaultPosition, wxDefaultSize, 0 );
m_ErcTotalErrorsText = new wxStaticText( sdiagSizer->GetStaticBox(), wxID_ANY, _("Total:"), wxDefaultPosition, wxDefaultSize, 0 );
m_ErcTotalErrorsText->Wrap( -1 );
gSizeDiag->Add( m_ErcTotalErrorsText, 1, wxALIGN_CENTER_VERTICAL, 5 );
m_TotalErrCount = new wxTextCtrl( m_PanelERC, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
m_TotalErrCount = new wxTextCtrl( sdiagSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
gSizeDiag->Add( m_TotalErrCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
m_WarnErcErrorsText = new wxStaticText( m_PanelERC, wxID_ANY, _("Warnings:"), wxDefaultPosition, wxDefaultSize, 0 );
m_WarnErcErrorsText = new wxStaticText( sdiagSizer->GetStaticBox(), wxID_ANY, _("Warnings:"), wxDefaultPosition, wxDefaultSize, 0 );
m_WarnErcErrorsText->Wrap( -1 );
gSizeDiag->Add( m_WarnErcErrorsText, 1, wxALIGN_CENTER_VERTICAL, 5 );
m_LastWarningCount = new wxTextCtrl( m_PanelERC, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
m_LastWarningCount = new wxTextCtrl( sdiagSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
gSizeDiag->Add( m_LastWarningCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
m_LastErrCountText = new wxStaticText( m_PanelERC, wxID_ANY, _("Errors:"), wxDefaultPosition, wxDefaultSize, 0 );
m_LastErrCountText = new wxStaticText( sdiagSizer->GetStaticBox(), wxID_ANY, _("Errors:"), wxDefaultPosition, wxDefaultSize, 0 );
m_LastErrCountText->Wrap( -1 );
gSizeDiag->Add( m_LastErrCountText, 1, wxALIGN_CENTER_VERTICAL, 5 );
m_LastErrCount = new wxTextCtrl( m_PanelERC, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
m_LastErrCount = new wxTextCtrl( sdiagSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
gSizeDiag->Add( m_LastErrCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
sdiagSizer->Add( gSizeDiag, 0, wxEXPAND, 5 );
m_WriteResultOpt = new wxCheckBox( m_PanelERC, wxID_ANY, _("Create ERC file report"), wxDefaultPosition, wxDefaultSize, 0 );
m_WriteResultOpt = new wxCheckBox( sdiagSizer->GetStaticBox(), wxID_ANY, _("Create ERC file report"), wxDefaultPosition, wxDefaultSize, 0 );
sdiagSizer->Add( m_WriteResultOpt, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
@ -92,10 +82,8 @@ DIALOG_ERC_BASE::DIALOG_ERC_BASE( wxWindow* parent, wxWindowID id, const wxStrin
m_textMarkers->Wrap( -1 );
bercSizer->Add( m_textMarkers, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_MarkersList = new ERC_HTML_LISTBOX( m_PanelERC, ID_MAKER_HTMLLISTBOX, wxDefaultPosition, wxDefaultSize, 0, NULL, 0|wxSIMPLE_BORDER );
m_MarkersList->SetMinSize( wxSize( 500,250 ) );
bercSizer->Add( m_MarkersList, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_MarkersList = new ERC_HTML_LISTFRAME( m_PanelERC, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO|wxSUNKEN_BORDER );
bercSizer->Add( m_MarkersList, 1, wxALL|wxEXPAND, 5 );
wxBoxSizer* bbuttonsSizer;
bbuttonsSizer = new wxBoxSizer( wxHORIZONTAL );
@ -139,8 +127,26 @@ DIALOG_ERC_BASE::DIALOG_ERC_BASE( wxWindow* parent, wxWindowID id, const wxStrin
this->SetSizer( bSizer1 );
this->Layout();
// Connect Events
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_ERC_BASE::OnCloseErcDialog ) );
m_MarkersList->Connect( wxEVT_COMMAND_HTML_LINK_CLICKED, wxHtmlLinkEventHandler( DIALOG_ERC_BASE::OnLeftClickMarkersList ), NULL, this );
m_MarkersList->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_ERC_BASE::OnLeftDblClickMarkersList ), NULL, this );
m_buttondelmarkers->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ERC_BASE::OnEraseDrcMarkersClick ), NULL, this );
m_buttonERC->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ERC_BASE::OnErcCmpClick ), NULL, this );
m_buttonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ERC_BASE::OnButtonCloseClick ), NULL, this );
m_ResetOptButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ERC_BASE::OnResetMatrixClick ), NULL, this );
}
DIALOG_ERC_BASE::~DIALOG_ERC_BASE()
{
// Disconnect Events
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_ERC_BASE::OnCloseErcDialog ) );
m_MarkersList->Disconnect( wxEVT_COMMAND_HTML_LINK_CLICKED, wxHtmlLinkEventHandler( DIALOG_ERC_BASE::OnLeftClickMarkersList ), NULL, this );
m_MarkersList->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_ERC_BASE::OnLeftDblClickMarkersList ), NULL, this );
m_buttondelmarkers->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ERC_BASE::OnEraseDrcMarkersClick ), NULL, this );
m_buttonERC->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ERC_BASE::OnErcCmpClick ), NULL, this );
m_buttonClose->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ERC_BASE::OnButtonCloseClick ), NULL, this );
m_ResetOptButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ERC_BASE::OnResetMatrixClick ), NULL, this );
}

View File

@ -10,7 +10,7 @@
<property name="disconnect_python_events">0</property>
<property name="embedded_files_path">res</property>
<property name="encoding">UTF-8</property>
<property name="event_generation">table</property>
<property name="event_generation">connect</property>
<property name="file">dialog_erc_base</property>
<property name="first_id">1000</property>
<property name="help_provider">none</property>
@ -24,7 +24,7 @@
<property name="skip_php_events">1</property>
<property name="skip_python_events">1</property>
<property name="ui_table">UI</property>
<property name="use_enum">1</property>
<property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property>
<object class="Dialog" expanded="1">
<property name="aui_managed">0</property>
@ -44,7 +44,7 @@
<property name="minimum_size"></property>
<property name="name">DIALOG_ERC_BASE</property>
<property name="pos"></property>
<property name="size">519,392</property>
<property name="size">519,457</property>
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
<property name="title">Electrical Rules Checker</property>
@ -1177,9 +1177,9 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxListBox" expanded="1">
<object class="wxHtmlWindow" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -1193,7 +1193,6 @@
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="choices"></property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
@ -1207,13 +1206,13 @@
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">ID_MAKER_HTMLLISTBOX</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size">500,250</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_MarkersList</property>
<property name="pane_border">1</property>
@ -1225,29 +1224,26 @@
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">ERC_HTML_LISTBOX; dialog_erc_listbox.h</property>
<property name="style">wxHW_SCROLLBAR_AUTO</property>
<property name="subclass">ERC_HTML_LISTFRAME; dialog_erc_listbox.h</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxSIMPLE_BORDER</property>
<property name="window_style">wxSUNKEN_BORDER</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnHtmlCellClicked"></event>
<event name="OnHtmlCellHover"></event>
<event name="OnHtmlLinkClicked">OnLeftClickMarkersList</event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDClick">OnLeftDblClickMarkersList</event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnListBox">OnLeftClickMarkersList</event>
<event name="OnListBoxDClick">OnLeftDblClickMarkersList</event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Mar 9 2015)
// C++ code generated with wxFormBuilder (version Jun 17 2015)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@ -12,7 +12,7 @@
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
class ERC_HTML_LISTBOX;
class ERC_HTML_LISTFRAME;
#include "dialog_shim.h"
#include <wx/string.h>
@ -25,7 +25,7 @@ class ERC_HTML_LISTBOX;
#include <wx/sizer.h>
#include <wx/checkbox.h>
#include <wx/statbox.h>
#include <wx/listbox.h>
#include <wx/html/htmlwin.h>
#include <wx/button.h>
#include <wx/panel.h>
#include <wx/bitmap.h>
@ -36,33 +36,18 @@ class ERC_HTML_LISTBOX;
///////////////////////////////////////////////////////////////////////////
#define ID_ERASE_DRC_MARKERS 1000
#define ID_ERC_CMP 1001
#define ID_RESET_MATRIX 1002
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_ERC_BASE
///////////////////////////////////////////////////////////////////////////////
class DIALOG_ERC_BASE : public DIALOG_SHIM
{
DECLARE_EVENT_TABLE()
private:
// Private event handlers
void _wxFB_OnCloseErcDialog( wxCloseEvent& event ){ OnCloseErcDialog( event ); }
void _wxFB_OnLeftClickMarkersList( wxCommandEvent& event ){ OnLeftClickMarkersList( event ); }
void _wxFB_OnLeftDblClickMarkersList( wxCommandEvent& event ){ OnLeftDblClickMarkersList( event ); }
void _wxFB_OnEraseDrcMarkersClick( wxCommandEvent& event ){ OnEraseDrcMarkersClick( event ); }
void _wxFB_OnErcCmpClick( wxCommandEvent& event ){ OnErcCmpClick( event ); }
void _wxFB_OnButtonCloseClick( wxCommandEvent& event ){ OnButtonCloseClick( event ); }
void _wxFB_OnResetMatrixClick( wxCommandEvent& event ){ OnResetMatrixClick( event ); }
protected:
enum
{
ID_MAKER_HTMLLISTBOX = 1000,
ID_ERASE_DRC_MARKERS,
ID_ERC_CMP,
ID_RESET_MATRIX
};
wxNotebook* m_NoteBook;
wxPanel* m_PanelERC;
wxStaticText* m_ErcTotalErrorsText;
@ -75,7 +60,7 @@ class DIALOG_ERC_BASE : public DIALOG_SHIM
wxStaticText* m_titleMessages;
wxTextCtrl* m_MessagesList;
wxStaticText* m_textMarkers;
ERC_HTML_LISTBOX* m_MarkersList;
ERC_HTML_LISTFRAME* m_MarkersList;
wxButton* m_buttondelmarkers;
wxButton* m_buttonERC;
wxButton* m_buttonClose;
@ -85,8 +70,8 @@ class DIALOG_ERC_BASE : public DIALOG_SHIM
// Virtual event handlers, overide them in your derived class
virtual void OnCloseErcDialog( wxCloseEvent& event ) { event.Skip(); }
virtual void OnLeftClickMarkersList( wxCommandEvent& event ) { event.Skip(); }
virtual void OnLeftDblClickMarkersList( wxCommandEvent& event ) { event.Skip(); }
virtual void OnLeftClickMarkersList( wxHtmlLinkEvent& event ) { event.Skip(); }
virtual void OnLeftDblClickMarkersList( wxMouseEvent& event ) { event.Skip(); }
virtual void OnEraseDrcMarkersClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnErcCmpClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnButtonCloseClick( wxCommandEvent& event ) { event.Skip(); }
@ -95,7 +80,7 @@ class DIALOG_ERC_BASE : public DIALOG_SHIM
public:
DIALOG_ERC_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Electrical Rules Checker"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 519,392 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
DIALOG_ERC_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Electrical Rules Checker"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 519,457 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_ERC_BASE();
};