Commit 8421cace authored by Carl Poirier's avatar Carl Poirier Committed by Wayne Stambaugh

Add library column to component and module select dialog.

parent 7d0ec1a1
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
/** /**
* Global variables definitions. * Global variables definitions.
* *
* TODO: All if these variables should be moved into the class were they * TODO: All of these variables should be moved into the class were they
* are defined and used. Most of them probably belong in the * are defined and used. Most of them probably belong in the
* application class. * application class.
*/ */
...@@ -115,7 +115,7 @@ StructColors ColorRefs[NBCOLOR] = ...@@ -115,7 +115,7 @@ StructColors ColorRefs[NBCOLOR] =
* And other problem is a bug when cross compiling under linux: * And other problem is a bug when cross compiling under linux:
* a printf print 1,5 and the read functions expects 1.5 * a printf print 1,5 and the read functions expects 1.5
* (depending on version print = 1.5 and read = 1,5 * (depending on version print = 1.5 and read = 1,5
* Very annoying and we detect this and use a stupid but necessary workarount * Very annoying and we detect this and use a stupid but necessary workaround
*/ */
bool g_DisableFloatingPointLocalNotation = false; bool g_DisableFloatingPointLocalNotation = false;
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 8 2012) // C++ code generated with wxFormBuilder (version Oct 8 2012)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
#include "dialog_list_selector_base.h" #include "dialog_list_selector_base.h"
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
EDA_LIST_DIALOG_BASE::EDA_LIST_DIALOG_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) EDA_LIST_DIALOG_BASE::EDA_LIST_DIALOG_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 ); this->SetSizeHints( wxDefaultSize, wxDefaultSize );
wxBoxSizer* bSizerMain; wxBoxSizer* bSizerMain;
bSizerMain = new wxBoxSizer( wxVERTICAL ); bSizerMain = new wxBoxSizer( wxVERTICAL );
m_filterLabel = new wxStaticText( this, wxID_ANY, _("Filter:"), wxDefaultPosition, wxDefaultSize, 0 ); m_filterLabel = new wxStaticText( this, wxID_ANY, _("Filter:"), wxDefaultPosition, wxDefaultSize, 0 );
m_filterLabel->Wrap( -1 ); m_filterLabel->Wrap( -1 );
m_filterLabel->SetToolTip( _("Enter a string to filter items.\nOnly names containing this string will be listed") ); m_filterLabel->SetToolTip( _("Enter a string to filter items.\nOnly names containing this string will be listed") );
bSizerMain->Add( m_filterLabel, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); bSizerMain->Add( m_filterLabel, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_filterBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_filterBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
bSizerMain->Add( m_filterBox, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bSizerMain->Add( m_filterBox, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_staticText2 = new wxStaticText( this, wxID_ANY, _("Items:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText2 = new wxStaticText( this, wxID_ANY, _("Items:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText2->Wrap( -1 ); m_staticText2->Wrap( -1 );
bSizerMain->Add( m_staticText2, 0, wxRIGHT|wxLEFT, 5 ); bSizerMain->Add( m_staticText2, 0, wxRIGHT|wxLEFT, 5 );
m_listBox = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); m_listBox = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxVSCROLL );
m_listBox->SetMinSize( wxSize( 300,200 ) ); m_listBox->SetMinSize( wxSize( 300,200 ) );
bSizerMain->Add( m_listBox, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); bSizerMain->Add( m_listBox, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
m_staticTextMsg = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextMsg = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextMsg->Wrap( -1 ); m_staticTextMsg->Wrap( -1 );
bSizerMain->Add( m_staticTextMsg, 0, wxRIGHT|wxLEFT, 5 ); bSizerMain->Add( m_staticTextMsg, 0, wxRIGHT|wxLEFT, 5 );
m_messages = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY ); m_messages = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
m_messages->SetMinSize( wxSize( -1,80 ) ); m_messages->SetMinSize( wxSize( -1,80 ) );
bSizerMain->Add( m_messages, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bSizerMain->Add( m_messages, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_sdbSizer = new wxStdDialogButtonSizer(); m_sdbSizer = new wxStdDialogButtonSizer();
m_sdbSizerOK = new wxButton( this, wxID_OK ); m_sdbSizerOK = new wxButton( this, wxID_OK );
m_sdbSizer->AddButton( m_sdbSizerOK ); m_sdbSizer->AddButton( m_sdbSizerOK );
m_sdbSizerCancel = new wxButton( this, wxID_CANCEL ); m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer->AddButton( m_sdbSizerCancel ); m_sdbSizer->AddButton( m_sdbSizerCancel );
m_sdbSizer->Realize(); m_sdbSizer->Realize();
bSizerMain->Add( m_sdbSizer, 0, wxALL|wxEXPAND, 5 ); bSizerMain->Add( m_sdbSizer, 0, wxALL|wxEXPAND, 5 );
this->SetSizer( bSizerMain ); this->SetSizer( bSizerMain );
this->Layout(); this->Layout();
this->Centre( wxBOTH ); this->Centre( wxBOTH );
// Connect Events // Connect Events
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( EDA_LIST_DIALOG_BASE::onClose ) ); this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( EDA_LIST_DIALOG_BASE::onClose ) );
m_filterBox->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::textChangeInFilterBox ), NULL, this ); m_filterBox->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::textChangeInFilterBox ), NULL, this );
m_listBox->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onClickOnList ), NULL, this ); m_listBox->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( EDA_LIST_DIALOG_BASE::onListItemActivated ), NULL, this );
m_listBox->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onDClickOnList ), NULL, this ); m_listBox->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( EDA_LIST_DIALOG_BASE::onListItemSelected ), NULL, this );
m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onCancelClick ), NULL, this ); m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onCancelClick ), NULL, this );
m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onOkClick ), NULL, this ); m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onOkClick ), NULL, this );
} }
EDA_LIST_DIALOG_BASE::~EDA_LIST_DIALOG_BASE() EDA_LIST_DIALOG_BASE::~EDA_LIST_DIALOG_BASE()
{ {
// Disconnect Events // Disconnect Events
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( EDA_LIST_DIALOG_BASE::onClose ) ); this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( EDA_LIST_DIALOG_BASE::onClose ) );
m_filterBox->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::textChangeInFilterBox ), NULL, this ); m_filterBox->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::textChangeInFilterBox ), NULL, this );
m_listBox->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onClickOnList ), NULL, this ); m_listBox->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( EDA_LIST_DIALOG_BASE::onListItemActivated ), NULL, this );
m_listBox->Disconnect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onDClickOnList ), NULL, this ); m_listBox->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( EDA_LIST_DIALOG_BASE::onListItemSelected ), NULL, this );
m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onCancelClick ), NULL, this ); m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onCancelClick ), NULL, this );
m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onOkClick ), NULL, this ); m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EDA_LIST_DIALOG_BASE::onOkClick ), NULL, this );
} }
<?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="11" /> <FileVersion major="1" minor="11" />
<object class="Project" expanded="1"> <object class="Project" expanded="1">
<property name="class_decoration"></property> <property name="class_decoration"></property>
<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="disconnect_mode">source_name</property> <property name="disconnect_mode">source_name</property>
<property name="disconnect_php_events">0</property> <property name="disconnect_php_events">0</property>
<property name="disconnect_python_events">0</property> <property name="disconnect_python_events">0</property>
<property name="embedded_files_path">res</property> <property name="embedded_files_path">res</property>
<property name="encoding">UTF-8</property> <property name="encoding">UTF-8</property>
<property name="event_generation">connect</property> <property name="event_generation">connect</property>
<property name="file">dialog_list_selector_base</property> <property name="file">dialog_list_selector_base</property>
<property name="first_id">1000</property> <property name="first_id">1000</property>
<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_list_selector_base</property> <property name="name">dialog_list_selector_base</property>
<property name="namespace"></property> <property name="namespace"></property>
<property name="path">.</property> <property name="path">.</property>
<property name="precompiled_header"></property> <property name="precompiled_header"></property>
<property name="relative_path">1</property> <property name="relative_path">1</property>
<property name="skip_php_events">1</property> <property name="skip_php_events">1</property>
<property name="skip_python_events">1</property> <property name="skip_python_events">1</property>
<property name="use_enum">0</property> <property name="use_enum">0</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="aui_managed">0</property> <property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property> <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property> <property name="bg"></property>
<property name="center">wxBOTH</property> <property name="center">wxBOTH</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="event_handler">impl_virtual</property> <property name="event_handler">impl_virtual</property>
<property name="extra_style"></property> <property name="extra_style"></property>
<property name="fg"></property> <property name="fg"></property>
<property name="font"></property> <property name="font"></property>
<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>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="name">EDA_LIST_DIALOG_BASE</property> <property name="name">EDA_LIST_DIALOG_BASE</property>
<property name="pos"></property> <property name="pos"></property>
<property name="size">329,398</property> <property name="size">329,398</property>
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property> <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property> <property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
<property name="title"></property> <property name="title"></property>
<property name="tooltip"></property> <property name="tooltip"></property>
<property name="window_extra_style"></property> <property name="window_extra_style"></property>
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
<event name="OnActivate"></event> <event name="OnActivate"></event>
<event name="OnActivateApp"></event> <event name="OnActivateApp"></event>
<event name="OnAuiFindManager"></event> <event name="OnAuiFindManager"></event>
<event name="OnAuiPaneButton"></event> <event name="OnAuiPaneButton"></event>
<event name="OnAuiPaneClose"></event> <event name="OnAuiPaneClose"></event>
<event name="OnAuiPaneMaximize"></event> <event name="OnAuiPaneMaximize"></event>
<event name="OnAuiPaneRestore"></event> <event name="OnAuiPaneRestore"></event>
<event name="OnAuiRender"></event> <event name="OnAuiRender"></event>
<event name="OnChar"></event> <event name="OnChar"></event>
<event name="OnClose">onClose</event> <event name="OnClose">onClose</event>
<event name="OnEnterWindow"></event> <event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event> <event name="OnEraseBackground"></event>
<event name="OnHibernate"></event> <event name="OnHibernate"></event>
<event name="OnIconize"></event> <event name="OnIconize"></event>
<event name="OnIdle"></event> <event name="OnIdle"></event>
<event name="OnInitDialog"></event> <event name="OnInitDialog"></event>
<event name="OnKeyDown"></event> <event name="OnKeyDown"></event>
<event name="OnKeyUp"></event> <event name="OnKeyUp"></event>
<event name="OnKillFocus"></event> <event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event> <event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event> <event name="OnLeftDown"></event>
<event name="OnLeftUp"></event> <event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event> <event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event> <event name="OnMiddleUp"></event>
<event name="OnMotion"></event> <event name="OnMotion"></event>
<event name="OnMouseEvents"></event> <event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event> <event name="OnMouseWheel"></event>
<event name="OnPaint"></event> <event name="OnPaint"></event>
<event name="OnRightDClick"></event> <event name="OnRightDClick"></event>
<event name="OnRightDown"></event> <event name="OnRightDown"></event>
<event name="OnRightUp"></event> <event name="OnRightUp"></event>
<event name="OnSetFocus"></event> <event name="OnSetFocus"></event>
<event name="OnSize"></event> <event name="OnSize"></event>
<event name="OnUpdateUI"></event> <event name="OnUpdateUI"></event>
<object class="wxBoxSizer" expanded="1"> <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="name">bSizerMain</property> <property name="name">bSizerMain</property>
<property name="orient">wxVERTICAL</property> <property name="orient">wxVERTICAL</property>
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<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="BottomDockable">1</property> <property name="BottomDockable">1</property>
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer"></property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position"></property>
<property name="aui_row"></property> <property name="aui_row"></property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="close_button">1</property> <property name="close_button">1</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>
<property name="default_pane">0</property> <property name="default_pane">0</property>
<property name="dock">Dock</property> <property name="dock">Dock</property>
<property name="dock_fixed">0</property> <property name="dock_fixed">0</property>
<property name="docking">Left</property> <property name="docking">Left</property>
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg"></property>
<property name="floatable">1</property> <property name="floatable">1</property>
<property name="font"></property> <property name="font"></property>
<property name="gripper">0</property> <property name="gripper">0</property>
<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">Filter:</property> <property name="label">Filter:</property>
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
<property name="maximum_size"></property> <property name="maximum_size"></property>
<property name="min_size"></property> <property name="min_size"></property>
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_filterLabel</property> <property name="name">m_filterLabel</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="pin_button">1</property> <property name="pin_button">1</property>
<property name="pos"></property> <property name="pos"></property>
<property name="resize">Resizable</property> <property name="resize">Resizable</property>
<property name="show">1</property> <property name="show">1</property>
<property name="size"></property> <property name="size"></property>
<property name="style"></property> <property name="style"></property>
<property name="subclass"></property> <property name="subclass"></property>
<property name="toolbar_pane">0</property> <property name="toolbar_pane">0</property>
<property name="tooltip">Enter a string to filter items.&#x0A;Only names containing this string will be listed</property> <property name="tooltip">Enter a string to filter items.&#x0A;Only names containing this string will be listed</property>
<property name="window_extra_style"></property> <property name="window_extra_style"></property>
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
<property name="wrap">-1</property> <property name="wrap">-1</property>
<event name="OnChar"></event> <event name="OnChar"></event>
<event name="OnEnterWindow"></event> <event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event> <event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event> <event name="OnKeyDown"></event>
<event name="OnKeyUp"></event> <event name="OnKeyUp"></event>
<event name="OnKillFocus"></event> <event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event> <event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event> <event name="OnLeftDown"></event>
<event name="OnLeftUp"></event> <event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event> <event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event> <event name="OnMiddleUp"></event>
<event name="OnMotion"></event> <event name="OnMotion"></event>
<event name="OnMouseEvents"></event> <event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event> <event name="OnMouseWheel"></event>
<event name="OnPaint"></event> <event name="OnPaint"></event>
<event name="OnRightDClick"></event> <event name="OnRightDClick"></event>
<event name="OnRightDown"></event> <event name="OnRightDown"></event>
<event name="OnRightUp"></event> <event name="OnRightUp"></event>
<event name="OnSetFocus"></event> <event name="OnSetFocus"></event>
<event name="OnSize"></event> <event name="OnSize"></event>
<event name="OnUpdateUI"></event> <event name="OnUpdateUI"></event>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<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="BottomDockable">1</property> <property name="BottomDockable">1</property>
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer"></property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position"></property>
<property name="aui_row"></property> <property name="aui_row"></property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="close_button">1</property> <property name="close_button">1</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>
<property name="default_pane">0</property> <property name="default_pane">0</property>
<property name="dock">Dock</property> <property name="dock">Dock</property>
<property name="dock_fixed">0</property> <property name="dock_fixed">0</property>
<property name="docking">Left</property> <property name="docking">Left</property>
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg"></property>
<property name="floatable">1</property> <property name="floatable">1</property>
<property name="font"></property> <property name="font"></property>
<property name="gripper">0</property> <property name="gripper">0</property>
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
<property name="maximum_size"></property> <property name="maximum_size"></property>
<property name="maxlength"></property> <property name="maxlength"></property>
<property name="min_size"></property> <property name="min_size"></property>
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_filterBox</property> <property name="name">m_filterBox</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="pin_button">1</property> <property name="pin_button">1</property>
<property name="pos"></property> <property name="pos"></property>
<property name="resize">Resizable</property> <property name="resize">Resizable</property>
<property name="show">1</property> <property name="show">1</property>
<property name="size"></property> <property name="size"></property>
<property name="style"></property> <property name="style"></property>
<property name="subclass"></property> <property name="subclass"></property>
<property name="toolbar_pane">0</property> <property name="toolbar_pane">0</property>
<property name="tooltip"></property> <property name="tooltip"></property>
<property name="validator_data_type"></property> <property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property> <property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property> <property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property> <property name="validator_variable"></property>
<property name="value"></property> <property name="value"></property>
<property name="window_extra_style"></property> <property name="window_extra_style"></property>
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
<event name="OnChar"></event> <event name="OnChar"></event>
<event name="OnEnterWindow"></event> <event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event> <event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event> <event name="OnKeyDown"></event>
<event name="OnKeyUp"></event> <event name="OnKeyUp"></event>
<event name="OnKillFocus"></event> <event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event> <event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event> <event name="OnLeftDown"></event>
<event name="OnLeftUp"></event> <event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event> <event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event> <event name="OnMiddleUp"></event>
<event name="OnMotion"></event> <event name="OnMotion"></event>
<event name="OnMouseEvents"></event> <event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event> <event name="OnMouseWheel"></event>
<event name="OnPaint"></event> <event name="OnPaint"></event>
<event name="OnRightDClick"></event> <event name="OnRightDClick"></event>
<event name="OnRightDown"></event> <event name="OnRightDown"></event>
<event name="OnRightUp"></event> <event name="OnRightUp"></event>
<event name="OnSetFocus"></event> <event name="OnSetFocus"></event>
<event name="OnSize"></event> <event name="OnSize"></event>
<event name="OnText">textChangeInFilterBox</event> <event name="OnText">textChangeInFilterBox</event>
<event name="OnTextEnter"></event> <event name="OnTextEnter"></event>
<event name="OnTextMaxLen"></event> <event name="OnTextMaxLen"></event>
<event name="OnTextURL"></event> <event name="OnTextURL"></event>
<event name="OnUpdateUI"></event> <event name="OnUpdateUI"></event>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxRIGHT|wxLEFT</property> <property name="flag">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="BottomDockable">1</property> <property name="BottomDockable">1</property>
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer"></property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position"></property>
<property name="aui_row"></property> <property name="aui_row"></property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="close_button">1</property> <property name="close_button">1</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>
<property name="default_pane">0</property> <property name="default_pane">0</property>
<property name="dock">Dock</property> <property name="dock">Dock</property>
<property name="dock_fixed">0</property> <property name="dock_fixed">0</property>
<property name="docking">Left</property> <property name="docking">Left</property>
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg"></property>
<property name="floatable">1</property> <property name="floatable">1</property>
<property name="font"></property> <property name="font"></property>
<property name="gripper">0</property> <property name="gripper">0</property>
<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">Items:</property> <property name="label">Items:</property>
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
<property name="maximum_size"></property> <property name="maximum_size"></property>
<property name="min_size"></property> <property name="min_size"></property>
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_staticText2</property> <property name="name">m_staticText2</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="pin_button">1</property> <property name="pin_button">1</property>
<property name="pos"></property> <property name="pos"></property>
<property name="resize">Resizable</property> <property name="resize">Resizable</property>
<property name="show">1</property> <property name="show">1</property>
<property name="size"></property> <property name="size"></property>
<property name="style"></property> <property name="style"></property>
<property name="subclass"></property> <property name="subclass"></property>
<property name="toolbar_pane">0</property> <property name="toolbar_pane">0</property>
<property name="tooltip"></property> <property name="tooltip"></property>
<property name="window_extra_style"></property> <property name="window_extra_style"></property>
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
<property name="wrap">-1</property> <property name="wrap">-1</property>
<event name="OnChar"></event> <event name="OnChar"></event>
<event name="OnEnterWindow"></event> <event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event> <event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event> <event name="OnKeyDown"></event>
<event name="OnKeyUp"></event> <event name="OnKeyUp"></event>
<event name="OnKillFocus"></event> <event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event> <event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event> <event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event> <event name="OnLeftDown"></event>
<event name="OnLeftUp"></event> <event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event> <event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event> <event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event> <event name="OnMiddleUp"></event>
<event name="OnMotion"></event> <event name="OnMotion"></event>
<event name="OnMouseEvents"></event> <event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event> <event name="OnMouseWheel"></event>
<event name="OnPaint"></event> <event name="OnPaint"></event>
<event name="OnRightDClick"></event> <event name="OnRightDClick"></event>
<event name="OnRightDown"></event> <event name="OnRightDown"></event>
<event name="OnRightUp"></event> <event name="OnRightUp"></event>
<event name="OnSetFocus"></event> <event name="OnSetFocus"></event>
<event name="OnSize"></event> <event name="OnSize"></event>
<event name="OnUpdateUI"></event> <event name="OnUpdateUI"></event>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property> <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxListBox" expanded="1"> <object class="wxListCtrl" expanded="1">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer"></property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position"></property>
<property name="aui_row"></property> <property name="aui_row"></property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="choices"></property> <property name="close_button">1</property>
<property name="close_button">1</property> <property name="context_help"></property>
<property name="context_help"></property> <property name="context_menu">1</property>
<property name="context_menu">1</property> <property name="default_pane">0</property>
<property name="default_pane">0</property> <property name="dock">Dock</property>
<property name="dock">Dock</property> <property name="dock_fixed">0</property>
<property name="dock_fixed">0</property> <property name="docking">Left</property>
<property name="docking">Left</property> <property name="enabled">1</property>
<property name="enabled">1</property> <property name="fg"></property>
<property name="fg"></property> <property name="floatable">1</property>
<property name="floatable">1</property> <property name="font"></property>
<property name="font"></property> <property name="gripper">0</property>
<property name="gripper">0</property> <property name="hidden">0</property>
<property name="hidden">0</property> <property name="id">wxID_ANY</property>
<property name="id">wxID_ANY</property> <property name="max_size"></property>
<property name="max_size"></property> <property name="maximize_button">0</property>
<property name="maximize_button">0</property> <property name="maximum_size"></property>
<property name="maximum_size"></property> <property name="min_size"></property>
<property name="min_size"></property> <property name="minimize_button">0</property>
<property name="minimize_button">0</property> <property name="minimum_size">300,200</property>
<property name="minimum_size">300,200</property> <property name="moveable">1</property>
<property name="moveable">1</property> <property name="name">m_listBox</property>
<property name="name">m_listBox</property> <property name="pane_border">1</property>
<property name="pane_border">1</property> <property name="pane_position"></property>
<property name="pane_position"></property> <property name="pane_size"></property>
<property name="pane_size"></property> <property name="permission">protected</property>
<property name="permission">protected</property> <property name="pin_button">1</property>
<property name="pin_button">1</property> <property name="pos"></property>
<property name="pos"></property> <property name="resize">Resizable</property>
<property name="resize">Resizable</property> <property name="show">1</property>
<property name="show">1</property> <property name="size"></property>
<property name="size"></property> <property name="style">wxLC_REPORT</property>
<property name="style"></property> <property name="subclass"></property>
<property name="subclass"></property> <property name="toolbar_pane">0</property>
<property name="toolbar_pane">0</property> <property name="tooltip"></property>
<property name="tooltip"></property> <property name="validator_data_type"></property>
<property name="validator_data_type"></property> <property name="validator_style">wxFILTER_NONE</property>
<property name="validator_style">wxFILTER_NONE</property> <property name="validator_type">wxDefaultValidator</property>
<property name="validator_type">wxDefaultValidator</property> <property name="validator_variable"></property>
<property name="validator_variable"></property> <property name="window_extra_style"></property>
<property name="window_extra_style"></property> <property name="window_name"></property>
<property name="window_name"></property> <property name="window_style">wxVSCROLL</property>
<property name="window_style"></property> <event name="OnChar"></event>
<event name="OnChar"></event> <event name="OnEnterWindow"></event>
<event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event>
<event name="OnEraseBackground"></event> <event name="OnKeyDown"></event>
<event name="OnKeyDown"></event> <event name="OnKeyUp"></event>
<event name="OnKeyUp"></event> <event name="OnKillFocus"></event>
<event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event>
<event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event>
<event name="OnLeftDClick"></event> <event name="OnLeftDown"></event>
<event name="OnLeftDown"></event> <event name="OnLeftUp"></event>
<event name="OnLeftUp"></event> <event name="OnListBeginDrag"></event>
<event name="OnListBox">onClickOnList</event> <event name="OnListBeginLabelEdit"></event>
<event name="OnListBoxDClick">onDClickOnList</event> <event name="OnListBeginRDrag"></event>
<event name="OnMiddleDClick"></event> <event name="OnListCacheHint"></event>
<event name="OnMiddleDown"></event> <event name="OnListColBeginDrag"></event>
<event name="OnMiddleUp"></event> <event name="OnListColClick"></event>
<event name="OnMotion"></event> <event name="OnListColDragging"></event>
<event name="OnMouseEvents"></event> <event name="OnListColEndDrag"></event>
<event name="OnMouseWheel"></event> <event name="OnListColRightClick"></event>
<event name="OnPaint"></event> <event name="OnListDeleteAllItems"></event>
<event name="OnRightDClick"></event> <event name="OnListDeleteItem"></event>
<event name="OnRightDown"></event> <event name="OnListEndLabelEdit"></event>
<event name="OnRightUp"></event> <event name="OnListInsertItem"></event>
<event name="OnSetFocus"></event> <event name="OnListItemActivated">onListItemActivated</event>
<event name="OnSize"></event> <event name="OnListItemDeselected"></event>
<event name="OnUpdateUI"></event> <event name="OnListItemFocused"></event>
</object> <event name="OnListItemMiddleClick"></event>
</object> <event name="OnListItemRightClick"></event>
<object class="sizeritem" expanded="1"> <event name="OnListItemSelected">onListItemSelected</event>
<property name="border">5</property> <event name="OnListKeyDown"></event>
<property name="flag">wxRIGHT|wxLEFT</property> <event name="OnMiddleDClick"></event>
<property name="proportion">0</property> <event name="OnMiddleDown"></event>
<object class="wxStaticText" expanded="1"> <event name="OnMiddleUp"></event>
<property name="BottomDockable">1</property> <event name="OnMotion"></event>
<property name="LeftDockable">1</property> <event name="OnMouseEvents"></event>
<property name="RightDockable">1</property> <event name="OnMouseWheel"></event>
<property name="TopDockable">1</property> <event name="OnPaint"></event>
<property name="aui_layer"></property> <event name="OnRightDClick"></event>
<property name="aui_name"></property> <event name="OnRightDown"></event>
<property name="aui_position"></property> <event name="OnRightUp"></event>
<property name="aui_row"></property> <event name="OnSetFocus"></event>
<property name="best_size"></property> <event name="OnSize"></event>
<property name="bg"></property> <event name="OnUpdateUI"></event>
<property name="caption"></property> </object>
<property name="caption_visible">1</property> </object>
<property name="center_pane">0</property> <object class="sizeritem" expanded="1">
<property name="close_button">1</property> <property name="border">5</property>
<property name="context_help"></property> <property name="flag">wxRIGHT|wxLEFT</property>
<property name="context_menu">1</property> <property name="proportion">0</property>
<property name="default_pane">0</property> <object class="wxStaticText" expanded="1">
<property name="dock">Dock</property> <property name="BottomDockable">1</property>
<property name="dock_fixed">0</property> <property name="LeftDockable">1</property>
<property name="docking">Left</property> <property name="RightDockable">1</property>
<property name="enabled">1</property> <property name="TopDockable">1</property>
<property name="fg"></property> <property name="aui_layer"></property>
<property name="floatable">1</property> <property name="aui_name"></property>
<property name="font"></property> <property name="aui_position"></property>
<property name="gripper">0</property> <property name="aui_row"></property>
<property name="hidden">0</property> <property name="best_size"></property>
<property name="id">wxID_ANY</property> <property name="bg"></property>
<property name="label">Messages:</property> <property name="caption"></property>
<property name="max_size"></property> <property name="caption_visible">1</property>
<property name="maximize_button">0</property> <property name="center_pane">0</property>
<property name="maximum_size"></property> <property name="close_button">1</property>
<property name="min_size"></property> <property name="context_help"></property>
<property name="minimize_button">0</property> <property name="context_menu">1</property>
<property name="minimum_size"></property> <property name="default_pane">0</property>
<property name="moveable">1</property> <property name="dock">Dock</property>
<property name="name">m_staticTextMsg</property> <property name="dock_fixed">0</property>
<property name="pane_border">1</property> <property name="docking">Left</property>
<property name="pane_position"></property> <property name="enabled">1</property>
<property name="pane_size"></property> <property name="fg"></property>
<property name="permission">protected</property> <property name="floatable">1</property>
<property name="pin_button">1</property> <property name="font"></property>
<property name="pos"></property> <property name="gripper">0</property>
<property name="resize">Resizable</property> <property name="hidden">0</property>
<property name="show">1</property> <property name="id">wxID_ANY</property>
<property name="size"></property> <property name="label">Messages:</property>
<property name="style"></property> <property name="max_size"></property>
<property name="subclass"></property> <property name="maximize_button">0</property>
<property name="toolbar_pane">0</property> <property name="maximum_size"></property>
<property name="tooltip"></property> <property name="min_size"></property>
<property name="window_extra_style"></property> <property name="minimize_button">0</property>
<property name="window_name"></property> <property name="minimum_size"></property>
<property name="window_style"></property> <property name="moveable">1</property>
<property name="wrap">-1</property> <property name="name">m_staticTextMsg</property>
<event name="OnChar"></event> <property name="pane_border">1</property>
<event name="OnEnterWindow"></event> <property name="pane_position"></property>
<event name="OnEraseBackground"></event> <property name="pane_size"></property>
<event name="OnKeyDown"></event> <property name="permission">protected</property>
<event name="OnKeyUp"></event> <property name="pin_button">1</property>
<event name="OnKillFocus"></event> <property name="pos"></property>
<event name="OnLeaveWindow"></event> <property name="resize">Resizable</property>
<event name="OnLeftDClick"></event> <property name="show">1</property>
<event name="OnLeftDown"></event> <property name="size"></property>
<event name="OnLeftUp"></event> <property name="style"></property>
<event name="OnMiddleDClick"></event> <property name="subclass"></property>
<event name="OnMiddleDown"></event> <property name="toolbar_pane">0</property>
<event name="OnMiddleUp"></event> <property name="tooltip"></property>
<event name="OnMotion"></event> <property name="window_extra_style"></property>
<event name="OnMouseEvents"></event> <property name="window_name"></property>
<event name="OnMouseWheel"></event> <property name="window_style"></property>
<event name="OnPaint"></event> <property name="wrap">-1</property>
<event name="OnRightDClick"></event> <event name="OnChar"></event>
<event name="OnRightDown"></event> <event name="OnEnterWindow"></event>
<event name="OnRightUp"></event> <event name="OnEraseBackground"></event>
<event name="OnSetFocus"></event> <event name="OnKeyDown"></event>
<event name="OnSize"></event> <event name="OnKeyUp"></event>
<event name="OnUpdateUI"></event> <event name="OnKillFocus"></event>
</object> <event name="OnLeaveWindow"></event>
</object> <event name="OnLeftDClick"></event>
<object class="sizeritem" expanded="1"> <event name="OnLeftDown"></event>
<property name="border">5</property> <event name="OnLeftUp"></event>
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property> <event name="OnMiddleDClick"></event>
<property name="proportion">0</property> <event name="OnMiddleDown"></event>
<object class="wxTextCtrl" expanded="1"> <event name="OnMiddleUp"></event>
<property name="BottomDockable">1</property> <event name="OnMotion"></event>
<property name="LeftDockable">1</property> <event name="OnMouseEvents"></event>
<property name="RightDockable">1</property> <event name="OnMouseWheel"></event>
<property name="TopDockable">1</property> <event name="OnPaint"></event>
<property name="aui_layer"></property> <event name="OnRightDClick"></event>
<property name="aui_name"></property> <event name="OnRightDown"></event>
<property name="aui_position"></property> <event name="OnRightUp"></event>
<property name="aui_row"></property> <event name="OnSetFocus"></event>
<property name="best_size"></property> <event name="OnSize"></event>
<property name="bg"></property> <event name="OnUpdateUI"></event>
<property name="caption"></property> </object>
<property name="caption_visible">1</property> </object>
<property name="center_pane">0</property> <object class="sizeritem" expanded="1">
<property name="close_button">1</property> <property name="border">5</property>
<property name="context_help"></property> <property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="context_menu">1</property> <property name="proportion">0</property>
<property name="default_pane">0</property> <object class="wxTextCtrl" expanded="1">
<property name="dock">Dock</property> <property name="BottomDockable">1</property>
<property name="dock_fixed">0</property> <property name="LeftDockable">1</property>
<property name="docking">Left</property> <property name="RightDockable">1</property>
<property name="enabled">1</property> <property name="TopDockable">1</property>
<property name="fg"></property> <property name="aui_layer"></property>
<property name="floatable">1</property> <property name="aui_name"></property>
<property name="font"></property> <property name="aui_position"></property>
<property name="gripper">0</property> <property name="aui_row"></property>
<property name="hidden">0</property> <property name="best_size"></property>
<property name="id">wxID_ANY</property> <property name="bg"></property>
<property name="max_size"></property> <property name="caption"></property>
<property name="maximize_button">0</property> <property name="caption_visible">1</property>
<property name="maximum_size"></property> <property name="center_pane">0</property>
<property name="maxlength"></property> <property name="close_button">1</property>
<property name="min_size"></property> <property name="context_help"></property>
<property name="minimize_button">0</property> <property name="context_menu">1</property>
<property name="minimum_size">-1,80</property> <property name="default_pane">0</property>
<property name="moveable">1</property> <property name="dock">Dock</property>
<property name="name">m_messages</property> <property name="dock_fixed">0</property>
<property name="pane_border">1</property> <property name="docking">Left</property>
<property name="pane_position"></property> <property name="enabled">1</property>
<property name="pane_size"></property> <property name="fg"></property>
<property name="permission">protected</property> <property name="floatable">1</property>
<property name="pin_button">1</property> <property name="font"></property>
<property name="pos"></property> <property name="gripper">0</property>
<property name="resize">Resizable</property> <property name="hidden">0</property>
<property name="show">1</property> <property name="id">wxID_ANY</property>
<property name="size"></property> <property name="max_size"></property>
<property name="style">wxTE_MULTILINE|wxTE_READONLY</property> <property name="maximize_button">0</property>
<property name="subclass"></property> <property name="maximum_size"></property>
<property name="toolbar_pane">0</property> <property name="maxlength"></property>
<property name="tooltip"></property> <property name="min_size"></property>
<property name="validator_data_type"></property> <property name="minimize_button">0</property>
<property name="validator_style">wxFILTER_NONE</property> <property name="minimum_size">-1,80</property>
<property name="validator_type">wxDefaultValidator</property> <property name="moveable">1</property>
<property name="validator_variable"></property> <property name="name">m_messages</property>
<property name="value"></property> <property name="pane_border">1</property>
<property name="window_extra_style"></property> <property name="pane_position"></property>
<property name="window_name"></property> <property name="pane_size"></property>
<property name="window_style"></property> <property name="permission">protected</property>
<event name="OnChar"></event> <property name="pin_button">1</property>
<event name="OnEnterWindow"></event> <property name="pos"></property>
<event name="OnEraseBackground"></event> <property name="resize">Resizable</property>
<event name="OnKeyDown"></event> <property name="show">1</property>
<event name="OnKeyUp"></event> <property name="size"></property>
<event name="OnKillFocus"></event> <property name="style">wxTE_MULTILINE|wxTE_READONLY</property>
<event name="OnLeaveWindow"></event> <property name="subclass"></property>
<event name="OnLeftDClick"></event> <property name="toolbar_pane">0</property>
<event name="OnLeftDown"></event> <property name="tooltip"></property>
<event name="OnLeftUp"></event> <property name="validator_data_type"></property>
<event name="OnMiddleDClick"></event> <property name="validator_style">wxFILTER_NONE</property>
<event name="OnMiddleDown"></event> <property name="validator_type">wxDefaultValidator</property>
<event name="OnMiddleUp"></event> <property name="validator_variable"></property>
<event name="OnMotion"></event> <property name="value"></property>
<event name="OnMouseEvents"></event> <property name="window_extra_style"></property>
<event name="OnMouseWheel"></event> <property name="window_name"></property>
<event name="OnPaint"></event> <property name="window_style"></property>
<event name="OnRightDClick"></event> <event name="OnChar"></event>
<event name="OnRightDown"></event> <event name="OnEnterWindow"></event>
<event name="OnRightUp"></event> <event name="OnEraseBackground"></event>
<event name="OnSetFocus"></event> <event name="OnKeyDown"></event>
<event name="OnSize"></event> <event name="OnKeyUp"></event>
<event name="OnText"></event> <event name="OnKillFocus"></event>
<event name="OnTextEnter"></event> <event name="OnLeaveWindow"></event>
<event name="OnTextMaxLen"></event> <event name="OnLeftDClick"></event>
<event name="OnTextURL"></event> <event name="OnLeftDown"></event>
<event name="OnUpdateUI"></event> <event name="OnLeftUp"></event>
</object> <event name="OnMiddleDClick"></event>
</object> <event name="OnMiddleDown"></event>
<object class="sizeritem" expanded="1"> <event name="OnMiddleUp"></event>
<property name="border">5</property> <event name="OnMotion"></event>
<property name="flag">wxALL|wxEXPAND</property> <event name="OnMouseEvents"></event>
<property name="proportion">0</property> <event name="OnMouseWheel"></event>
<object class="wxStdDialogButtonSizer" expanded="1"> <event name="OnPaint"></event>
<property name="Apply">0</property> <event name="OnRightDClick"></event>
<property name="Cancel">1</property> <event name="OnRightDown"></event>
<property name="ContextHelp">0</property> <event name="OnRightUp"></event>
<property name="Help">0</property> <event name="OnSetFocus"></event>
<property name="No">0</property> <event name="OnSize"></event>
<property name="OK">1</property> <event name="OnText"></event>
<property name="Save">0</property> <event name="OnTextEnter"></event>
<property name="Yes">0</property> <event name="OnTextMaxLen"></event>
<property name="minimum_size"></property> <event name="OnTextURL"></event>
<property name="name">m_sdbSizer</property> <event name="OnUpdateUI"></event>
<property name="permission">protected</property> </object>
<event name="OnApplyButtonClick"></event> </object>
<event name="OnCancelButtonClick">onCancelClick</event> <object class="sizeritem" expanded="1">
<event name="OnContextHelpButtonClick"></event> <property name="border">5</property>
<event name="OnHelpButtonClick"></event> <property name="flag">wxALL|wxEXPAND</property>
<event name="OnNoButtonClick"></event> <property name="proportion">0</property>
<event name="OnOKButtonClick">onOkClick</event> <object class="wxStdDialogButtonSizer" expanded="1">
<event name="OnSaveButtonClick"></event> <property name="Apply">0</property>
<event name="OnYesButtonClick"></event> <property name="Cancel">1</property>
</object> <property name="ContextHelp">0</property>
</object> <property name="Help">0</property>
</object> <property name="No">0</property>
</object> <property name="OK">1</property>
</object> <property name="Save">0</property>
</wxFormBuilder_Project> <property name="Yes">0</property>
<property name="minimum_size"></property>
<property name="name">m_sdbSizer</property>
<property name="permission">protected</property>
<event name="OnApplyButtonClick"></event>
<event name="OnCancelButtonClick">onCancelClick</event>
<event name="OnContextHelpButtonClick"></event>
<event name="OnHelpButtonClick"></event>
<event name="OnNoButtonClick"></event>
<event name="OnOKButtonClick">onOkClick</event>
<event name="OnSaveButtonClick"></event>
<event name="OnYesButtonClick"></event>
</object>
</object>
</object>
</object>
</object>
</wxFormBuilder_Project>
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 8 2012) // C++ code generated with wxFormBuilder (version Oct 8 2012)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
#ifndef __DIALOG_LIST_SELECTOR_BASE_H__ #ifndef __DIALOG_LIST_SELECTOR_BASE_H__
#define __DIALOG_LIST_SELECTOR_BASE_H__ #define __DIALOG_LIST_SELECTOR_BASE_H__
#include <wx/artprov.h> #include <wx/artprov.h>
#include <wx/xrc/xmlres.h> #include <wx/xrc/xmlres.h>
#include <wx/intl.h> #include <wx/intl.h>
class DIALOG_SHIM; class DIALOG_SHIM;
#include "dialog_shim.h" #include "dialog_shim.h"
#include <wx/string.h> #include <wx/string.h>
#include <wx/stattext.h> #include <wx/stattext.h>
#include <wx/gdicmn.h> #include <wx/gdicmn.h>
#include <wx/font.h> #include <wx/font.h>
#include <wx/colour.h> #include <wx/colour.h>
#include <wx/settings.h> #include <wx/settings.h>
#include <wx/textctrl.h> #include <wx/textctrl.h>
#include <wx/listbox.h> #include <wx/listctrl.h>
#include <wx/sizer.h> #include <wx/sizer.h>
#include <wx/button.h> #include <wx/button.h>
#include <wx/dialog.h> #include <wx/dialog.h>
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
/// Class EDA_LIST_DIALOG_BASE /// Class EDA_LIST_DIALOG_BASE
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
class EDA_LIST_DIALOG_BASE : public DIALOG_SHIM class EDA_LIST_DIALOG_BASE : public DIALOG_SHIM
{ {
private: private:
protected: protected:
wxStaticText* m_filterLabel; wxStaticText* m_filterLabel;
wxTextCtrl* m_filterBox; wxTextCtrl* m_filterBox;
wxStaticText* m_staticText2; wxStaticText* m_staticText2;
wxListBox* m_listBox; wxListCtrl* m_listBox;
wxStaticText* m_staticTextMsg; wxStaticText* m_staticTextMsg;
wxTextCtrl* m_messages; wxTextCtrl* m_messages;
wxStdDialogButtonSizer* m_sdbSizer; wxStdDialogButtonSizer* m_sdbSizer;
wxButton* m_sdbSizerOK; wxButton* m_sdbSizerOK;
wxButton* m_sdbSizerCancel; wxButton* m_sdbSizerCancel;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, overide them in your derived class
virtual void onClose( wxCloseEvent& event ) { event.Skip(); } virtual void onClose( wxCloseEvent& event ) { event.Skip(); }
virtual void textChangeInFilterBox( wxCommandEvent& event ) { event.Skip(); } virtual void textChangeInFilterBox( wxCommandEvent& event ) { event.Skip(); }
virtual void onClickOnList( wxCommandEvent& event ) { event.Skip(); } virtual void onListItemActivated( wxListEvent& event ) { event.Skip(); }
virtual void onDClickOnList( wxCommandEvent& event ) { event.Skip(); } virtual void onListItemSelected( wxListEvent& event ) { event.Skip(); }
virtual void onCancelClick( wxCommandEvent& event ) { event.Skip(); } virtual void onCancelClick( wxCommandEvent& event ) { event.Skip(); }
virtual void onOkClick( wxCommandEvent& event ) { event.Skip(); } virtual void onOkClick( wxCommandEvent& event ) { event.Skip(); }
public: public:
EDA_LIST_DIALOG_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 329,398 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); EDA_LIST_DIALOG_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 329,398 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~EDA_LIST_DIALOG_BASE(); ~EDA_LIST_DIALOG_BASE();
}; };
#endif //__DIALOG_LIST_SELECTOR_BASE_H__ #endif //__DIALOG_LIST_SELECTOR_BASE_H__
...@@ -7,35 +7,46 @@ ...@@ -7,35 +7,46 @@
#include <kicad_string.h> #include <kicad_string.h>
#include <dialog_helpers.h> #include <dialog_helpers.h>
EDA_LIST_DIALOG::EDA_LIST_DIALOG( EDA_DRAW_FRAME* aParent, const wxString& aTitle, EDA_LIST_DIALOG::EDA_LIST_DIALOG( EDA_DRAW_FRAME* aParent, const wxString& aTitle,
const wxArrayString& aItemList, const wxString& aRefText, const wxArrayString& aItemHeaders,
void(* aCallBackFunction)(wxString& Text), const std::vector<wxArrayString>& aItemList,
const wxString& aRefText,
void(*aCallBackFunction)(wxString& Text),
bool aSortList ) : bool aSortList ) :
EDA_LIST_DIALOG_BASE( aParent, wxID_ANY, aTitle ) EDA_LIST_DIALOG_BASE( aParent, wxID_ANY, aTitle )
{ {
m_sortList = aSortList; m_sortList = aSortList;
m_callBackFct = aCallBackFunction; m_callBackFct = aCallBackFunction;
m_itemsListCp = &aItemList; m_itemsListCp = &aItemList;
for( unsigned i = 0; i < aItemHeaders.Count(); i++ )
{
wxListItem column;
column.SetId( i );
column.SetText( aItemHeaders.Item( i ) );
column.SetWidth( 300 / aItemHeaders.Count() );
EDA_LIST_DIALOG_BASE::m_listBox->InsertColumn( i, column );
}
InsertItems( aItemList, 0 ); InsertItems( aItemList, 0 );
if( m_sortList ) if( m_sortList )
sortList(); sortList();
if( !aRefText.IsEmpty() ) // try to select the item matching aRefText if( !aRefText.IsEmpty() ) // try to select the item matching aRefText
{ {
for( unsigned ii = 0; ii < aItemList.GetCount(); ii++ ) for( unsigned ii = 0; ii < aItemList.size(); ii++ )
if( aItemList[ii] == aRefText ) if( aItemList[ii][0] == aRefText )
{ {
m_listBox->SetSelection( ii ); m_listBox->SetItemState( ii, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
break; break;
} }
} }
if( m_callBackFct == NULL ) if( m_callBackFct == NULL )
{ {
m_messages->Show(false); m_messages->Show( false );
m_staticTextMsg->Show(false); m_staticTextMsg->Show( false );
} }
m_filterBox->SetFocus(); m_filterBox->SetFocus();
...@@ -56,17 +67,17 @@ void EDA_LIST_DIALOG::textChangeInFilterBox( wxCommandEvent& event ) ...@@ -56,17 +67,17 @@ void EDA_LIST_DIALOG::textChangeInFilterBox( wxCommandEvent& event )
wxString filter; wxString filter;
wxString itemName; wxString itemName;
filter = wxT("*") + m_filterBox->GetLineText(0).MakeLower() + wxT("*"); filter = wxT( "*" ) + m_filterBox->GetLineText( 0 ).MakeLower() + wxT( "*" );
m_listBox->Clear(); m_listBox->DeleteAllItems();
for(unsigned i = 0; i < m_itemsListCp->GetCount(); i++) for( unsigned i = 0; i < m_itemsListCp->size(); i++ )
{ {
itemName = m_itemsListCp->Item(i); itemName = (*m_itemsListCp)[i].Item( 0 );
if( itemName.MakeLower().Matches(filter) ) if( itemName.MakeLower().Matches( filter ) )
{ {
m_listBox->Insert(m_itemsListCp->Item(i),m_listBox->GetCount()); Append( (*m_itemsListCp)[i] );
} }
} }
...@@ -76,20 +87,40 @@ void EDA_LIST_DIALOG::textChangeInFilterBox( wxCommandEvent& event ) ...@@ -76,20 +87,40 @@ void EDA_LIST_DIALOG::textChangeInFilterBox( wxCommandEvent& event )
wxString EDA_LIST_DIALOG::GetTextSelection() wxString EDA_LIST_DIALOG::GetTextSelection()
{ {
wxString text = m_listBox->GetStringSelection(); long item = -1;
item = m_listBox->GetNextItem( item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
wxString text = m_listBox->GetItemText( item );
return text; return text;
} }
void EDA_LIST_DIALOG::Append( const wxString& item ) void EDA_LIST_DIALOG::Append( const wxArrayString& itemList )
{ {
m_listBox->Append( item ); long itemIndex = m_listBox->InsertItem( m_listBox->GetItemCount(), itemList[0] );
}
m_listBox->SetItemData( itemIndex, (long) &(itemList[0]) );
// Adding the next columns content
for( unsigned i = 1; i < itemList.size(); i++ )
{
m_listBox->SetItem( itemIndex, i, itemList[i] );
}
}
void EDA_LIST_DIALOG::InsertItems( const wxArrayString& itemlist, int position ) void EDA_LIST_DIALOG::InsertItems( const std::vector<wxArrayString>& itemList,
int position )
{ {
m_listBox->InsertItems( itemlist, position ); for( unsigned i = 0; i < itemList.size(); i++ )
{
long itemIndex = m_listBox->InsertItem( position+i, itemList[i].Item( 0 ) );
m_listBox->SetItemData( itemIndex, (long) &( itemList[i].Item( 0 ) ) );
// Adding the next columns content
for( unsigned j = 1; j < itemList[i].GetCount(); j++ )
{
m_listBox->SetItem( itemIndex, j, itemList[i].Item( j ) );
}
}
if( m_sortList ) if( m_sortList )
sortList(); sortList();
...@@ -102,21 +133,20 @@ void EDA_LIST_DIALOG::onCancelClick( wxCommandEvent& event ) ...@@ -102,21 +133,20 @@ void EDA_LIST_DIALOG::onCancelClick( wxCommandEvent& event )
} }
void EDA_LIST_DIALOG::onClickOnList( wxCommandEvent& event ) void EDA_LIST_DIALOG::onListItemSelected( wxListEvent& event )
{ {
wxString text;
if( m_callBackFct ) if( m_callBackFct )
{ {
m_messages->Clear(); m_messages->Clear();
text = m_listBox->GetStringSelection(); wxString text = GetTextSelection();
m_callBackFct( text ); m_callBackFct( text );
m_messages->WriteText( text ); m_messages->WriteText( text );
} }
} }
void EDA_LIST_DIALOG::onDClickOnList( wxCommandEvent& event ) void EDA_LIST_DIALOG::onListItemActivated( wxListEvent& event )
{ {
EndModal( wxID_OK ); EndModal( wxID_OK );
} }
...@@ -136,20 +166,15 @@ void EDA_LIST_DIALOG::onClose( wxCloseEvent& event ) ...@@ -136,20 +166,15 @@ void EDA_LIST_DIALOG::onClose( wxCloseEvent& event )
/* Sort alphabetically, case insensitive. /* Sort alphabetically, case insensitive.
*/ */
static int sortItems( const wxString& item1, const wxString& item2 ) static int wxCALLBACK MyCompareFunction( long aItem1, long aItem2, long aSortData )
{ {
return StrNumCmp( item1, item2, INT_MAX, true ); wxString* component1Name = (wxString*) aItem1;
wxString* component2Name = (wxString*) aItem2;
return StrNumCmp( *component1Name, *component2Name, INT_MAX, true );
} }
void EDA_LIST_DIALOG::sortList() void EDA_LIST_DIALOG::sortList()
{ {
wxArrayString list = m_listBox->GetStrings(); m_listBox->SortItems( MyCompareFunction, 0 );
if( list.IsEmpty() )
return;
list.Sort( sortItems );
m_listBox->Clear();
m_listBox->Append( list );
} }
...@@ -143,25 +143,50 @@ void CMP_LIBRARY::GetEntryNames( wxArrayString& aNames, bool aSort, bool aMakeUp ...@@ -143,25 +143,50 @@ void CMP_LIBRARY::GetEntryNames( wxArrayString& aNames, bool aSort, bool aMakeUp
} }
void CMP_LIBRARY::SearchEntryNames( wxArrayString& aNames, /**
* Function sortFunction
* simple function used as comparator to sort a std::vector<wxArrayString>&.
*
* @param aItem1 is the first comparison parameter.
* @param aItem1 is the second.
* @return bool - which item should be put first in the sorted list.
*/
bool sortFunction( wxArrayString aItem1, wxArrayString aItem2 )
{
return( aItem1.Item( 0 ) < aItem2.Item( 0 ) );
}
void CMP_LIBRARY::SearchEntryNames( std::vector<wxArrayString>& aNames,
const wxString& aNameSearch, const wxString& aNameSearch,
const wxString& aKeySearch, const wxString& aKeySearch,
bool aSort ) bool aSort )
{ {
LIB_ALIAS_MAP::iterator it; LIB_ALIAS_MAP::iterator it;
for( it=aliases.begin(); it!=aliases.end(); it++ ) for( it = aliases.begin(); it!=aliases.end(); it++ )
{ {
if( !aKeySearch.IsEmpty() && KeyWordOk( aKeySearch, (*it).second->GetKeyWords() ) ) if( !aKeySearch.IsEmpty() && KeyWordOk( aKeySearch, (*it).second->GetKeyWords() ) )
aNames.Add( (*it).first ); {
wxArrayString item;
item.Add( (*it).first );
item.Add( GetLogicalName() );
aNames.push_back( item );
}
if( !aNameSearch.IsEmpty() && WildCompareString( aNameSearch, if( !aNameSearch.IsEmpty() && WildCompareString( aNameSearch,
(*it).second->GetName(), false ) ) (*it).second->GetName(), false ) )
aNames.Add( (*it).first ); {
wxArrayString item;
item.Add( (*it).first );
item.Add( GetLogicalName() );
aNames.push_back( item );
}
} }
if( aSort ) if( aSort )
aNames.Sort(); std::sort( aNames.begin(), aNames.end(), sortFunction );
} }
...@@ -172,7 +197,7 @@ void CMP_LIBRARY::SearchEntryNames( wxArrayString& aNames, const wxRegEx& aRe, b ...@@ -172,7 +197,7 @@ void CMP_LIBRARY::SearchEntryNames( wxArrayString& aNames, const wxRegEx& aRe, b
LIB_ALIAS_MAP::iterator it; LIB_ALIAS_MAP::iterator it;
for( it=aliases.begin(); it!=aliases.end(); it++ ) for( it = aliases.begin(); it!=aliases.end(); it++ )
{ {
if( aRe.Matches( (*it).second->GetKeyWords() ) ) if( aRe.Matches( (*it).second->GetKeyWords() ) )
aNames.Add( (*it).first ); aNames.Add( (*it).first );
...@@ -824,7 +849,7 @@ void CMP_LIBRARY::RemoveLibrary( const wxString& aName ) ...@@ -824,7 +849,7 @@ void CMP_LIBRARY::RemoveLibrary( const wxString& aName )
CMP_LIBRARY_LIST::iterator i; CMP_LIBRARY_LIST::iterator i;
for ( i = libraryList.begin(); i < libraryList.end(); i++ ) for( i = libraryList.begin(); i < libraryList.end(); i++ )
{ {
if( i->GetName().CmpNoCase( aName ) == 0 ) if( i->GetName().CmpNoCase( aName ) == 0 )
{ {
...@@ -846,6 +871,7 @@ bool CMP_LIBRARY::LibraryExists( const CMP_LIBRARY* aLibptr ) ...@@ -846,6 +871,7 @@ bool CMP_LIBRARY::LibraryExists( const CMP_LIBRARY* aLibptr )
return false; return false;
} }
CMP_LIBRARY* CMP_LIBRARY::FindLibrary( const wxString& aName ) CMP_LIBRARY* CMP_LIBRARY::FindLibrary( const wxString& aName )
{ {
BOOST_FOREACH( CMP_LIBRARY& lib, libraryList ) BOOST_FOREACH( CMP_LIBRARY& lib, libraryList )
...@@ -925,7 +951,7 @@ void CMP_LIBRARY::RemoveCacheLibrary() ...@@ -925,7 +951,7 @@ void CMP_LIBRARY::RemoveCacheLibrary()
{ {
CMP_LIBRARY_LIST::iterator i; CMP_LIBRARY_LIST::iterator i;
for ( i = libraryList.begin(); i < libraryList.end(); i++ ) for( i = libraryList.begin(); i < libraryList.end(); i++ )
{ {
if( i->isCache ) if( i->isCache )
libraryList.erase( i-- ); libraryList.erase( i-- );
......
...@@ -212,7 +212,7 @@ public: ...@@ -212,7 +212,7 @@ public:
* @param aKeySearch - Key word search criteria. * @param aKeySearch - Key word search criteria.
* @param aSort - Sort names if true. * @param aSort - Sort names if true.
*/ */
void SearchEntryNames( wxArrayString& aNames, void SearchEntryNames( std::vector<wxArrayString>& aNames,
const wxString& aNameSearch = wxEmptyString, const wxString& aNameSearch = wxEmptyString,
const wxString& aKeySearch = wxEmptyString, const wxString& aKeySearch = wxEmptyString,
bool aSort = true ); bool aSort = true );
......
...@@ -32,15 +32,15 @@ void DisplayCmpDocAndKeywords( wxString& Name ) ...@@ -32,15 +32,15 @@ void DisplayCmpDocAndKeywords( wxString& Name )
} }
/* /*
* Displays a list of filterd components found in libraries for selection, * Displays a list of filtered components found in libraries for selection,
* Keys is a list of keywords to filter components which do not match these keywords * Keys is a list of keywords to filter components which do not match these keywords
* If Keys is empty, list components that match BufName mask (with * and?) * If Keys is empty, list components that match BufName mask (with * and?)
* *
* Returns the name of the selected component, or an ampty string * Returns the name of the selected component, or an empty string
*/ */
wxString DataBaseGetName( EDA_DRAW_FRAME* frame, wxString& Keys, wxString& BufName ) wxString DataBaseGetName( EDA_DRAW_FRAME* frame, wxString& Keys, wxString& BufName )
{ {
wxArrayString nameList; std::vector<wxArrayString> nameList;
wxString msg; wxString msg;
#ifndef KICAD_KEEPCASE #ifndef KICAD_KEEPCASE
...@@ -54,7 +54,7 @@ wxString DataBaseGetName( EDA_DRAW_FRAME* frame, wxString& Keys, wxString& BufNa ...@@ -54,7 +54,7 @@ wxString DataBaseGetName( EDA_DRAW_FRAME* frame, wxString& Keys, wxString& BufNa
lib.SearchEntryNames( nameList, BufName, Keys ); lib.SearchEntryNames( nameList, BufName, Keys );
} }
if( nameList.IsEmpty() ) if( nameList.empty() )
{ {
msg = _( "No components found matching " ); msg = _( "No components found matching " );
...@@ -74,10 +74,14 @@ wxString DataBaseGetName( EDA_DRAW_FRAME* frame, wxString& Keys, wxString& BufNa ...@@ -74,10 +74,14 @@ wxString DataBaseGetName( EDA_DRAW_FRAME* frame, wxString& Keys, wxString& BufNa
return wxEmptyString; return wxEmptyString;
} }
wxArrayString headers;
headers.Add( wxT("Component") );
headers.Add( wxT("Library") );
// Show candidate list: // Show candidate list:
wxString cmpname; wxString cmpname;
EDA_LIST_DIALOG dlg( frame, _( "Select Component" ), nameList, cmpname, EDA_LIST_DIALOG dlg( frame, _( "Select Component" ), headers, nameList, cmpname,
DisplayCmpDocAndKeywords ); DisplayCmpDocAndKeywords, true );
if( dlg.ShowModal() != wxID_OK ) if( dlg.ShowModal() != wxID_OK )
return wxEmptyString; return wxEmptyString;
......
...@@ -26,9 +26,20 @@ CMP_LIBRARY* SelectLibraryFromList( EDA_DRAW_FRAME* frame ) ...@@ -26,9 +26,20 @@ CMP_LIBRARY* SelectLibraryFromList( EDA_DRAW_FRAME* frame )
return NULL; return NULL;
} }
wxArrayString headers;
headers.Add( wxT("Library") );
libNamesList = CMP_LIBRARY::GetLibraryNames(); libNamesList = CMP_LIBRARY::GetLibraryNames();
std::vector<wxArrayString> itemsToDisplay;
EDA_LIST_DIALOG dlg( frame, _( "Select Library" ), libNamesList, OldLibName );
// Conversion from wxArrayString to vector of ArrayString
for( unsigned i = 0; i < libNamesList.GetCount(); i++ )
{
wxArrayString item;
item.Add( libNamesList[i] );
itemsToDisplay.push_back( item );
}
EDA_LIST_DIALOG dlg( frame, _( "Select Library" ), headers, itemsToDisplay, OldLibName );
if( dlg.ShowModal() != wxID_OK ) if( dlg.ShowModal() != wxID_OK )
return NULL; return NULL;
...@@ -62,7 +73,21 @@ int DisplayComponentsNamesInLib( EDA_DRAW_FRAME* frame, ...@@ -62,7 +73,21 @@ int DisplayComponentsNamesInLib( EDA_DRAW_FRAME* frame,
Library->GetEntryNames( nameList ); Library->GetEntryNames( nameList );
EDA_LIST_DIALOG dlg( frame, _( "Select Component" ), nameList, OldName, DisplayCmpDocAndKeywords ); wxArrayString headers;
headers.Add( wxT("Component") );
headers.Add( wxT("Library") );
std::vector<wxArrayString> itemsToDisplay;
// Conversion from wxArrayString to vector of ArrayString
for( unsigned i = 0; i < nameList.GetCount(); i++ )
{
wxArrayString item;
item.Add( nameList[i] );
item.Add( Library->GetLogicalName() );
itemsToDisplay.push_back( item );
}
EDA_LIST_DIALOG dlg( frame, _( "Select Component" ), headers, itemsToDisplay,
OldName, DisplayCmpDocAndKeywords );
if( dlg.ShowModal() != wxID_OK ) if( dlg.ShowModal() != wxID_OK )
return 0; return 0;
...@@ -79,6 +104,7 @@ int GetNameOfPartToLoad( EDA_DRAW_FRAME* frame, CMP_LIBRARY* Library, wxString& ...@@ -79,6 +104,7 @@ int GetNameOfPartToLoad( EDA_DRAW_FRAME* frame, CMP_LIBRARY* Library, wxString&
static wxString OldCmpName; static wxString OldCmpName;
ii = DisplayComponentsNamesInLib( frame, Library, BufName, OldCmpName ); ii = DisplayComponentsNamesInLib( frame, Library, BufName, OldCmpName );
if( ii <= 0 || BufName.IsEmpty() ) if( ii <= 0 || BufName.IsEmpty() )
return 0; return 0;
......
...@@ -31,7 +31,7 @@ class EDA_LIST_DIALOG : public EDA_LIST_DIALOG_BASE ...@@ -31,7 +31,7 @@ class EDA_LIST_DIALOG : public EDA_LIST_DIALOG_BASE
private: private:
bool m_sortList; bool m_sortList;
void (*m_callBackFct)( wxString& Text ); void (*m_callBackFct)( wxString& Text );
const wxArrayString* m_itemsListCp; const std::vector<wxArrayString>* m_itemsListCp;
public: public:
/** /**
...@@ -44,23 +44,24 @@ public: ...@@ -44,23 +44,24 @@ public:
* @param aSortList = true to sort list items by alphabetic order. * @param aSortList = true to sort list items by alphabetic order.
*/ */
EDA_LIST_DIALOG( EDA_DRAW_FRAME* aParent, const wxString& aTitle, EDA_LIST_DIALOG( EDA_DRAW_FRAME* aParent, const wxString& aTitle,
const wxArrayString& aItemList, const wxString& aRefText, const wxArrayString& aItemHeaders,
void(* aCallBackFunction)(wxString& Text) = NULL, const std::vector<wxArrayString>& aItemList,
const wxString& aRefText,
void(*aCallBackFunction)(wxString& Text) = NULL,
bool aSortList = false ); bool aSortList = false );
~EDA_LIST_DIALOG(); ~EDA_LIST_DIALOG();
void Append( const wxString& aItemStr ); void Append( const wxArrayString& aItemStr );
void InsertItems( const wxArrayString& aItemList, int aPosition = 0 ); void InsertItems( const std::vector<wxArrayString>& aItemList, int aPosition = 0 );
wxString GetTextSelection(); wxString GetTextSelection();
private: private:
void onClose( wxCloseEvent& event ); void onClose( wxCloseEvent& event );
void onCancelClick( wxCommandEvent& event ); void onCancelClick( wxCommandEvent& event );
void onOkClick( wxCommandEvent& event ); void onOkClick( wxCommandEvent& event );
void onClickOnList( wxCommandEvent& event ); void onListItemSelected( wxListEvent& event );
void onDClickOnList( wxCommandEvent& event ); void onListItemActivated( wxListEvent& event );
void textChangeInFilterBox(wxCommandEvent& event); void textChangeInFilterBox(wxCommandEvent& event);
void sortList(); void sortList();
}; };
......
...@@ -751,7 +751,19 @@ void FOOTPRINT_EDIT_FRAME::Select_Active_Library() ...@@ -751,7 +751,19 @@ void FOOTPRINT_EDIT_FRAME::Select_Active_Library()
if( g_LibraryNames.GetCount() == 0 ) if( g_LibraryNames.GetCount() == 0 )
return; return;
EDA_LIST_DIALOG dlg( this, FMT_SELECT_LIB, g_LibraryNames, getLibNickName() ); wxArrayString headers;
headers.Add( wxT("Library") );
std::vector<wxArrayString> itemsToDisplay;
// Conversion from wxArrayString to vector of ArrayString
for( unsigned i = 0; i < g_LibraryNames.GetCount(); i++ )
{
wxArrayString item;
item.Add( g_LibraryNames[i] );
itemsToDisplay.push_back( item );
}
EDA_LIST_DIALOG dlg( this, FMT_SELECT_LIB, headers, itemsToDisplay, getLibNickName() );
if( dlg.ShowModal() != wxID_OK ) if( dlg.ShowModal() != wxID_OK )
return; return;
......
...@@ -438,8 +438,20 @@ wxString PCB_BASE_FRAME::Select_1_Module_From_List( EDA_DRAW_FRAME* aWindow, ...@@ -438,8 +438,20 @@ wxString PCB_BASE_FRAME::Select_1_Module_From_List( EDA_DRAW_FRAME* aWindow,
if( footprint_names_list.GetCount() ) if( footprint_names_list.GetCount() )
{ {
wxArrayString headers;
headers.Add( wxT("Module") );
std::vector<wxArrayString> itemsToDisplay;
// Conversion from wxArrayString to vector of ArrayString
for( unsigned i = 0; i < footprint_names_list.GetCount(); i++ )
{
wxArrayString item;
item.Add( footprint_names_list[i] );
itemsToDisplay.push_back( item );
}
msg.Printf( _( "Modules [%d items]" ), (int) footprint_names_list.GetCount() ); msg.Printf( _( "Modules [%d items]" ), (int) footprint_names_list.GetCount() );
EDA_LIST_DIALOG dlg( aWindow, msg, footprint_names_list, OldName, EDA_LIST_DIALOG dlg( aWindow, msg, headers, itemsToDisplay, OldName,
DisplayCmpDoc ); DisplayCmpDoc );
if( dlg.ShowModal() == wxID_OK ) if( dlg.ShowModal() == wxID_OK )
...@@ -497,7 +509,18 @@ MODULE* FOOTPRINT_EDIT_FRAME::Select_1_Module_From_BOARD( BOARD* aPcb ) ...@@ -497,7 +509,18 @@ MODULE* FOOTPRINT_EDIT_FRAME::Select_1_Module_From_BOARD( BOARD* aPcb )
msg.Printf( _( "Modules [%d items]" ), listnames.GetCount() ); msg.Printf( _( "Modules [%d items]" ), listnames.GetCount() );
EDA_LIST_DIALOG dlg( this, msg, listnames, wxEmptyString, NULL, SORT_LIST ); wxArrayString headers;
headers.Add( wxT("Module") );
std::vector<wxArrayString> itemsToDisplay;
// Conversion from wxArrayString to vector of ArrayString
for( unsigned i = 0; i < listnames.GetCount(); i++ )
{
wxArrayString item;
item.Add( listnames[i] );
itemsToDisplay.push_back( item );
}
EDA_LIST_DIALOG dlg( this, msg, headers, itemsToDisplay, wxEmptyString, NULL, SORT_LIST );
if( dlg.ShowModal() == wxID_OK ) if( dlg.ShowModal() == wxID_OK )
CmpName = dlg.GetTextSelection(); CmpName = dlg.GetTextSelection();
......
...@@ -84,8 +84,19 @@ void FOOTPRINT_VIEWER_FRAME::SelectCurrentLibrary( wxCommandEvent& event ) ...@@ -84,8 +84,19 @@ void FOOTPRINT_VIEWER_FRAME::SelectCurrentLibrary( wxCommandEvent& event )
if( g_LibraryNames.GetCount() == 0 ) if( g_LibraryNames.GetCount() == 0 )
return; return;
wxArrayString headers;
headers.Add( wxT("Library") );
std::vector<wxArrayString> itemsToDisplay;
// Conversion from wxArrayString to vector of ArrayString
for( unsigned i = 0; i < g_LibraryNames.GetCount(); i++ )
{
wxArrayString item;
item.Add( g_LibraryNames[i] );
itemsToDisplay.push_back( item );
}
EDA_LIST_DIALOG dlg( this, _( "Select Current Library:" ), EDA_LIST_DIALOG dlg( this, _( "Select Current Library:" ),
g_LibraryNames, m_libraryName ); headers, itemsToDisplay, m_libraryName );
if( dlg.ShowModal() != wxID_OK ) if( dlg.ShowModal() != wxID_OK )
return; return;
......
...@@ -142,7 +142,7 @@ bool PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFullFilename, ...@@ -142,7 +142,7 @@ bool PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFullFilename,
GetChars( aCmpFullFileName ) ); GetChars( aCmpFullFileName ) );
aMessageWindow->AppendText( msg + wxT( "\n" ) ); aMessageWindow->AppendText( msg + wxT( "\n" ) );
} }
} }
// Clear undo and redo lists to avoid inconsistencies between lists // Clear undo and redo lists to avoid inconsistencies between lists
GetScreen()->ClearUndoRedoList(); GetScreen()->ClearUndoRedoList();
...@@ -165,6 +165,7 @@ bool PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFullFilename, ...@@ -165,6 +165,7 @@ bool PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFullFilename,
netList_Reader.ReadLibpartSectionSetOpt( false ); netList_Reader.ReadLibpartSectionSetOpt( false );
bool success = netList_Reader.ReadNetList( netfile ); bool success = netList_Reader.ReadNetList( netfile );
if( !success ) if( !success )
{ {
wxMessageBox( _("Netlist read error") ); wxMessageBox( _("Netlist read error") );
...@@ -217,7 +218,18 @@ MODULE* PCB_EDIT_FRAME::ListAndSelectModuleName( void ) ...@@ -217,7 +218,18 @@ MODULE* PCB_EDIT_FRAME::ListAndSelectModuleName( void )
for( ; Module != NULL; Module = (MODULE*) Module->Next() ) for( ; Module != NULL; Module = (MODULE*) Module->Next() )
listnames.Add( Module->GetReference() ); listnames.Add( Module->GetReference() );
EDA_LIST_DIALOG dlg( this, _( "Components" ), listnames, wxEmptyString ); wxArrayString headers;
headers.Add( wxT("Module") );
std::vector<wxArrayString> itemsToDisplay;
// Conversion from wxArrayString to vector of ArrayString
for( unsigned i = 0; i < listnames.GetCount(); i++ )
{
wxArrayString item;
item.Add( listnames[i] );
itemsToDisplay.push_back( item );
}
EDA_LIST_DIALOG dlg( this, _( "Components" ), headers, itemsToDisplay, wxEmptyString );
if( dlg.ShowModal() != wxID_OK ) if( dlg.ShowModal() != wxID_OK )
return NULL; return NULL;
......
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