BOM and Netlist dialogs: replace "plugin" by "generator" and/or "script".

The "plugins" in these dialogs are not plugins.
They are external scripts (or applications) run from Eeschema.
This commit is contained in:
jean-pierre charras 2019-05-27 20:43:39 +02:00
parent 6695209246
commit 611878351a
10 changed files with 343 additions and 400 deletions

View File

@ -24,14 +24,14 @@
#include "bom_plugins.h" #include "bom_plugins.h"
BOM_PLUGIN::BOM_PLUGIN( const wxString& aFile ) BOM_GENERATOR_HANDLER::BOM_GENERATOR_HANDLER( const wxString& aFile )
: m_file( aFile ) : m_file( aFile )
{ {
m_isOk = false; m_isOk = false;
if( !wxFile::Exists( aFile ) ) if( !wxFile::Exists( aFile ) )
{ {
m_info.Printf( _("Plugin file:\n%s\nnot found. Plugin not available."), aFile ); m_info.Printf( _("Script file:\n%s\nnot found. Script not available."), aFile );
return; return;
} }
@ -75,7 +75,7 @@ BOM_PLUGIN::BOM_PLUGIN( const wxString& aFile )
} }
bool BOM_PLUGIN::IsPlugin( const wxString& aFile ) bool BOM_GENERATOR_HANDLER::IsValidGenerator( const wxString& aFile )
{ {
wxFileName fn( aFile ); wxFileName fn( aFile );
wxString ext = fn.GetExt().Lower(); wxString ext = fn.GetExt().Lower();
@ -90,7 +90,7 @@ bool BOM_PLUGIN::IsPlugin( const wxString& aFile )
} }
wxString BOM_PLUGIN::readHeader( const wxString& aEndSection ) wxString BOM_GENERATOR_HANDLER::readHeader( const wxString& aEndSection )
{ {
if( aEndSection.IsEmpty() ) if( aEndSection.IsEmpty() )
return wxEmptyString; return wxEmptyString;

View File

@ -22,8 +22,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#ifndef BOM_PLUGINS_H #ifndef BOM_GENERATOR_HANDLERS_H
#define BOM_PLUGINS_H #define BOM_GENERATOR_HANDLERS_H
#include <wx/arrstr.h> #include <wx/arrstr.h>
#include <wx/file.h> #include <wx/file.h>
@ -32,18 +32,22 @@
#include <memory> #include <memory>
/** /**
* Class representing a Bill of Material output plugin. * Class handling a Bill of Material output generator.
* A Material output generator is an external application called by Eeschema to create
* a BOM from our intermediate xml netlist.
* A generator can be a script or an executable that can read the intermediate xml netlist
* file and generates a output (the BOM file)
*/ */
class BOM_PLUGIN class BOM_GENERATOR_HANDLER
{ {
public: public:
typedef std::unique_ptr<BOM_PLUGIN> PTR; typedef std::unique_ptr<BOM_GENERATOR_HANDLER> PTR;
/** /**
* Constructor. * Constructor.
* @param aFile is path to the plugin file. * @param aFile is path to the plugin file.
*/ */
BOM_PLUGIN( const wxString& aFile ); BOM_GENERATOR_HANDLER( const wxString& aFile );
/** /**
* Returns true if the plugin is ready to work, i.e. if the plugin file * Returns true if the plugin is ready to work, i.e. if the plugin file
@ -55,7 +59,7 @@ public:
* Returns true if a file name matches a recognized plugin format. * Returns true if a file name matches a recognized plugin format.
* @param aFile is path to the plugin file. * @param aFile is path to the plugin file.
*/ */
static bool IsPlugin( const wxString& aFile ); static bool IsValidGenerator( const wxString& aFile );
/** /**
* Returns plugin description stored in the plugin header file (if available). * Returns plugin description stored in the plugin header file (if available).
@ -140,4 +144,4 @@ protected:
wxArrayString m_options; wxArrayString m_options;
}; };
#endif /* BOM_PLUGINS_H */ #endif /* BOM_GENERATOR_HANDLERS_H */

View File

@ -1,8 +1,8 @@
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 2018 Jean-Pierre Charras, jp.charras at wanadoo.fr * Copyright (C) 2019 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 1992-2019 KiCad Developers, see AUTHORS.txt for contributors.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
@ -44,20 +44,22 @@
#include <bom_plugins.h> #include <bom_plugins.h>
#include <make_unique.h> #include <make_unique.h>
static constexpr wxChar BOM_TRACE[] = wxT( "BOM_PLUGINS" ); #include <dialog_bom_cfg_lexer.h>
static constexpr wxChar BOM_PLUGINS_KEY[] = wxT( "bom_plugins" ); static constexpr wxChar BOM_TRACE[] = wxT( "BOM_GENERATORS" );
static constexpr wxChar BOM_PLUGIN_SELECTED_KEY[] = wxT( "bom_plugin_selected" );
static constexpr wxChar BOM_GENERATORS_KEY[] = wxT( "bom_plugins" );
static constexpr wxChar BOM_GENERATOR_SELECTED_KEY[] = wxT( "bom_plugin_selected" );
static const char* s_bomHelpInfo = static const char* s_bomHelpInfo =
#include <dialog_bom_help_html.h> #include <dialog_bom_help_html.h>
; ;
#include <dialog_bom_cfg_lexer.h> using namespace T_BOMCFG_T; // for the BOM_CFG_PARSER parser and its keywords
using namespace T_BOMCFG_T; // BOM "plugins" are not actually plugins. They are external tools
// (scripts or executables) called by this dialog.
typedef std::vector<BOM_PLUGIN::PTR> BOM_PLUGIN_ARRAY; typedef std::vector<BOM_GENERATOR_HANDLER::PTR> BOM_GENERATOR_ARRAY;
/** /**
@ -65,22 +67,22 @@ typedef std::vector<BOM_PLUGIN::PTR> BOM_PLUGIN_ARRAY;
*/ */
class BOM_CFG_PARSER : public DIALOG_BOM_CFG_LEXER class BOM_CFG_PARSER : public DIALOG_BOM_CFG_LEXER
{ {
BOM_PLUGIN_ARRAY* m_pluginsList; BOM_GENERATOR_ARRAY* m_generatorsList;
public: public:
BOM_CFG_PARSER( BOM_PLUGIN_ARRAY* aPlugins, const char* aData, const wxString& aSource ); BOM_CFG_PARSER( BOM_GENERATOR_ARRAY* aGenerators, const char* aData, const wxString& aSource );
void Parse(); void Parse();
private: private:
void parsePlugin(); void parseGenerator();
}; };
BOM_CFG_PARSER::BOM_CFG_PARSER( BOM_PLUGIN_ARRAY* aPlugins, const char* aLine, BOM_CFG_PARSER::BOM_CFG_PARSER( BOM_GENERATOR_ARRAY* aGenerators, const char* aLine,
const wxString& aSource ) : const wxString& aSource ) :
DIALOG_BOM_CFG_LEXER( aLine, aSource ) DIALOG_BOM_CFG_LEXER( aLine, aSource )
{ {
m_pluginsList = aPlugins; m_generatorsList = aGenerators;
} }
@ -102,7 +104,7 @@ void BOM_CFG_PARSER::Parse()
switch( token ) switch( token )
{ {
case T_plugin: // Defines a new plugin case T_plugin: // Defines a new plugin
parsePlugin(); parseGenerator();
break; break;
default: default:
@ -113,11 +115,11 @@ void BOM_CFG_PARSER::Parse()
} }
void BOM_CFG_PARSER::parsePlugin() void BOM_CFG_PARSER::parseGenerator()
{ {
NeedSYMBOLorNUMBER(); NeedSYMBOLorNUMBER();
wxString name = FromUTF8(); wxString name = FromUTF8();
auto plugin = std::make_unique<BOM_PLUGIN>( name ); auto plugin = std::make_unique<BOM_GENERATOR_HANDLER>( name );
T token; T token;
@ -163,7 +165,7 @@ void BOM_CFG_PARSER::parsePlugin()
} }
if( plugin ) if( plugin )
m_pluginsList->push_back( std::move( plugin ) ); m_generatorsList->push_back( std::move( plugin ) );
} }
@ -172,7 +174,7 @@ class DIALOG_BOM : public DIALOG_BOM_BASE
{ {
private: private:
SCH_EDIT_FRAME* m_parent; SCH_EDIT_FRAME* m_parent;
BOM_PLUGIN_ARRAY m_plugins; BOM_GENERATOR_ARRAY m_generators;
wxConfigBase* m_config; // to store the "plugins" wxConfigBase* m_config; // to store the "plugins"
bool m_initialized; bool m_initialized;
@ -181,33 +183,33 @@ public:
~DIALOG_BOM(); ~DIALOG_BOM();
private: private:
void OnPluginSelected( wxCommandEvent& event ) override; void OnGeneratorSelected( wxCommandEvent& event ) override;
void OnRunPlugin( wxCommandEvent& event ) override; void OnRunGenerator( wxCommandEvent& event ) override;
void OnHelp( wxCommandEvent& event ) override; void OnHelp( wxCommandEvent& event ) override;
void OnAddPlugin( wxCommandEvent& event ) override; void OnAddGenerator( wxCommandEvent& event ) override;
void OnRemovePlugin( wxCommandEvent& event ) override; void OnRemoveGenerator( wxCommandEvent& event ) override;
void OnEditPlugin( wxCommandEvent& event ) override; void OnEditGenerator( wxCommandEvent& event ) override;
void OnCommandLineEdited( wxCommandEvent& event ) override; void OnCommandLineEdited( wxCommandEvent& event ) override;
void OnNameEdited( wxCommandEvent& event ) override; void OnNameEdited( wxCommandEvent& event ) override;
void OnShowConsoleChanged( wxCommandEvent& event ) override; void OnShowConsoleChanged( wxCommandEvent& event ) override;
void OnIdle( wxIdleEvent& event ) override; void OnIdle( wxIdleEvent& event ) override;
void pluginInit(); void pluginInit();
void installPluginsList(); void installGeneratorsList();
BOM_PLUGIN* addPlugin( const wxString& aPath, const wxString& aName = wxEmptyString ); BOM_GENERATOR_HANDLER* addGenerator( const wxString& aPath, const wxString& aName = wxEmptyString );
bool pluginExists( const wxString& aName ); bool pluginExists( const wxString& aName );
BOM_PLUGIN* selectedPlugin() BOM_GENERATOR_HANDLER* selectedGenerator()
{ {
int idx = m_lbPlugins->GetSelection(); int idx = m_lbGenerators->GetSelection();
if( idx < 0 || idx >= (int)m_plugins.size() ) if( idx < 0 || idx >= (int)m_generators.size() )
return nullptr; return nullptr;
return m_plugins[idx].get(); return m_generators[idx].get();
} }
wxString choosePlugin(); wxString chooseGenerator();
}; };
@ -226,11 +228,11 @@ DIALOG_BOM::DIALOG_BOM( SCH_EDIT_FRAME* parent ) :
m_config = Kiface().KifaceSettings(); m_config = Kiface().KifaceSettings();
m_initialized = false; m_initialized = false;
m_buttonAddPlugin->SetBitmap( KiBitmap( small_plus_xpm ) ); m_buttonAddGenerator->SetBitmap( KiBitmap( small_plus_xpm ) );
m_buttonDelPlugin->SetBitmap( KiBitmap( trash_xpm ) ); m_buttonDelGenerator->SetBitmap( KiBitmap( trash_xpm ) );
m_buttonEdit->SetBitmap( KiBitmap( small_edit_xpm ) ); m_buttonEdit->SetBitmap( KiBitmap( small_edit_xpm ) );
installPluginsList(); installGeneratorsList();
#ifndef __WINDOWS__ #ifndef __WINDOWS__
m_checkBoxShowConsole->Show( false ); m_checkBoxShowConsole->Show( false );
@ -240,7 +242,7 @@ DIALOG_BOM::DIALOG_BOM( SCH_EDIT_FRAME* parent ) :
m_sdbSizerCancel->SetLabel( _( "Close" ) ); m_sdbSizerCancel->SetLabel( _( "Close" ) );
m_sdbSizer->Layout(); m_sdbSizer->Layout();
SetInitialFocus( m_lbPlugins ); SetInitialFocus( m_lbGenerators );
m_sdbSizerOK->SetDefault(); m_sdbSizerOK->SetDefault();
// Now all widgets have the size fixed, call FinishDialogSettings // Now all widgets have the size fixed, call FinishDialogSettings
@ -260,7 +262,7 @@ DIALOG_BOM::~DIALOG_BOM()
STRING_FORMATTER writer; STRING_FORMATTER writer;
writer.Print( 0, "(plugins" ); writer.Print( 0, "(plugins" );
for( auto& plugin : m_plugins ) for( auto& plugin : m_generators )
{ {
writer.Print( 1, "(plugin %s (cmd %s)", writer.Print( 1, "(plugin %s (cmd %s)",
writer.Quotew( plugin->GetFile().GetFullPath() ).c_str(), writer.Quotew( plugin->GetFile().GetFullPath() ).c_str(),
@ -287,23 +289,23 @@ DIALOG_BOM::~DIALOG_BOM()
wxString list( FROM_UTF8( writer.GetString().c_str() ) ); wxString list( FROM_UTF8( writer.GetString().c_str() ) );
m_config->Write( BOM_PLUGINS_KEY, list ); m_config->Write( BOM_GENERATORS_KEY, list );
wxString active_plugin_name = m_lbPlugins->GetStringSelection( ); wxString active_plugin_name = m_lbGenerators->GetStringSelection( );
m_config->Write( BOM_PLUGIN_SELECTED_KEY, active_plugin_name ); m_config->Write( BOM_GENERATOR_SELECTED_KEY, active_plugin_name );
} }
// Read the initialized plugins in config and fill the list of names // Read the initialized plugins in config and fill the list of names
void DIALOG_BOM::installPluginsList() void DIALOG_BOM::installGeneratorsList()
{ {
wxString list, active_plugin_name; wxString list, active_plugin_name;
m_config->Read( BOM_PLUGINS_KEY, &list ); m_config->Read( BOM_GENERATORS_KEY, &list );
m_config->Read( BOM_PLUGIN_SELECTED_KEY, &active_plugin_name ); m_config->Read( BOM_GENERATOR_SELECTED_KEY, &active_plugin_name );
if( !list.IsEmpty() ) if( !list.IsEmpty() )
{ {
BOM_CFG_PARSER cfg_parser( &m_plugins, TO_UTF8( list ), wxT( "plugins" ) ); BOM_CFG_PARSER cfg_parser( &m_generators, TO_UTF8( list ), wxT( "plugins" ) );
try try
{ {
@ -319,16 +321,16 @@ void DIALOG_BOM::installPluginsList()
} }
// Populate list box // Populate list box
for( unsigned ii = 0; ii < m_plugins.size(); ii++ ) for( unsigned ii = 0; ii < m_generators.size(); ii++ )
{ {
m_lbPlugins->Append( m_plugins[ii]->GetName() ); m_lbGenerators->Append( m_generators[ii]->GetName() );
if( active_plugin_name == m_plugins[ii]->GetName() ) if( active_plugin_name == m_generators[ii]->GetName() )
m_lbPlugins->SetSelection( ii ); m_lbGenerators->SetSelection( ii );
} }
} }
if( m_plugins.empty() ) // No plugins found? if( m_generators.empty() ) // No plugins found?
{ {
// Load plugins from the default locations // Load plugins from the default locations
std::vector<wxString> pluginPaths = { std::vector<wxString> pluginPaths = {
@ -346,7 +348,7 @@ void DIALOG_BOM::installPluginsList()
for( const auto& path : pluginPaths ) for( const auto& path : pluginPaths )
{ {
wxLogDebug( wxString::Format( "Searching directory %s for BOM plugins", path ) ); wxLogDebug( wxString::Format( "Searching directory %s for BOM generators", path ) );
wxDir dir( path ); wxDir dir( path );
if( !dir.IsOpened() ) if( !dir.IsOpened() )
@ -360,12 +362,12 @@ void DIALOG_BOM::installPluginsList()
{ {
try try
{ {
wxLogTrace( BOM_TRACE, wxString::Format( "Checking if %s is a BOM plugin", fileName ) ); wxLogTrace( BOM_TRACE, wxString::Format( "Checking if %s is a BOM generator", fileName ) );
if( BOM_PLUGIN::IsPlugin( fileName ) ) if( BOM_GENERATOR_HANDLER::IsValidGenerator( fileName ) )
{ {
pluginPath.SetFullName( fileName ); pluginPath.SetFullName( fileName );
addPlugin( pluginPath.GetFullPath() ); addGenerator( pluginPath.GetFullPath() );
} }
} }
catch( ... ) { /* well, no big deal */ } catch( ... ) { /* well, no big deal */ }
@ -380,10 +382,10 @@ void DIALOG_BOM::installPluginsList()
} }
BOM_PLUGIN* DIALOG_BOM::addPlugin( const wxString& aPath, const wxString& aName ) BOM_GENERATOR_HANDLER* DIALOG_BOM::addGenerator( const wxString& aPath, const wxString& aName )
{ {
BOM_PLUGIN* ret = nullptr; BOM_GENERATOR_HANDLER* ret = nullptr;
auto plugin = std::make_unique<BOM_PLUGIN>( aPath ); auto plugin = std::make_unique<BOM_GENERATOR_HANDLER>( aPath );
if( !plugin ) if( !plugin )
return nullptr; return nullptr;
@ -391,24 +393,24 @@ BOM_PLUGIN* DIALOG_BOM::addPlugin( const wxString& aPath, const wxString& aName
if( !aName.IsEmpty() ) if( !aName.IsEmpty() )
{ {
plugin->SetName( aName ); plugin->SetName( aName );
m_lbPlugins->Append( aName ); m_lbGenerators->Append( aName );
} }
else else
{ {
m_lbPlugins->Append( plugin->GetName() ); m_lbGenerators->Append( plugin->GetName() );
} }
ret = plugin.get(); ret = plugin.get();
m_plugins.push_back( std::move( plugin ) ); m_generators.push_back( std::move( plugin ) );
return ret; return ret;
} }
bool DIALOG_BOM::pluginExists( const wxString& aName ) bool DIALOG_BOM::pluginExists( const wxString& aName )
{ {
for( unsigned ii = 0; ii < m_plugins.size(); ii++ ) for( unsigned ii = 0; ii < m_generators.size(); ii++ )
{ {
if( aName == m_plugins[ii]->GetName() ) if( aName == m_generators[ii]->GetName() )
return true; return true;
} }
@ -416,7 +418,7 @@ bool DIALOG_BOM::pluginExists( const wxString& aName )
} }
void DIALOG_BOM::OnPluginSelected( wxCommandEvent& event ) void DIALOG_BOM::OnGeneratorSelected( wxCommandEvent& event )
{ {
pluginInit(); pluginInit();
} }
@ -424,7 +426,7 @@ void DIALOG_BOM::OnPluginSelected( wxCommandEvent& event )
void DIALOG_BOM::pluginInit() void DIALOG_BOM::pluginInit()
{ {
auto plugin = selectedPlugin(); auto plugin = selectedGenerator();
if( !plugin ) if( !plugin )
{ {
@ -452,7 +454,7 @@ void DIALOG_BOM::pluginInit()
} }
void DIALOG_BOM::OnRunPlugin( wxCommandEvent& event ) void DIALOG_BOM::OnRunGenerator( wxCommandEvent& event )
{ {
// Calculate the xml netlist filename // Calculate the xml netlist filename
wxFileName fn = g_RootSheet->GetScreen()->GetFileName(); wxFileName fn = g_RootSheet->GetScreen()->GetFileName();
@ -481,34 +483,34 @@ void DIALOG_BOM::OnRunPlugin( wxCommandEvent& event )
} }
void DIALOG_BOM::OnRemovePlugin( wxCommandEvent& event ) void DIALOG_BOM::OnRemoveGenerator( wxCommandEvent& event )
{ {
int ii = m_lbPlugins->GetSelection(); int ii = m_lbGenerators->GetSelection();
if( ii < 0 ) if( ii < 0 )
return; return;
m_lbPlugins->Delete( ii ); m_lbGenerators->Delete( ii );
m_plugins.erase( m_plugins.begin() + ii ); m_generators.erase( m_generators.begin() + ii );
// Select the next item, if exists // Select the next item, if exists
if( m_lbPlugins->GetCount() ) if( m_lbGenerators->GetCount() )
m_lbPlugins->SetSelection( std::min( ii, (int) m_lbPlugins->GetCount() - 1 ) ); m_lbGenerators->SetSelection( std::min( ii, (int) m_lbGenerators->GetCount() - 1 ) );
pluginInit(); pluginInit();
} }
void DIALOG_BOM::OnAddPlugin( wxCommandEvent& event ) void DIALOG_BOM::OnAddGenerator( wxCommandEvent& event )
{ {
wxString filename = choosePlugin(); wxString filename = chooseGenerator();
if( filename.IsEmpty() ) if( filename.IsEmpty() )
return; return;
// Creates a new plugin entry // Creates a new plugin entry
wxFileName fn( filename ); wxFileName fn( filename );
wxString name = wxGetTextFromUser( _( "Plugin nickname:" ), _( "Add Plugin" ), wxString name = wxGetTextFromUser( _( "Generator nickname:" ), _( "Add Generator" ),
fn.GetName(), this ); fn.GetName(), this );
if( name.IsEmpty() ) if( name.IsEmpty() )
@ -523,11 +525,11 @@ void DIALOG_BOM::OnAddPlugin( wxCommandEvent& event )
try try
{ {
auto plugin = addPlugin( fn.GetFullPath(), name ); auto plugin = addGenerator( fn.GetFullPath(), name );
if( plugin ) if( plugin )
{ {
m_lbPlugins->SetSelection( m_lbPlugins->GetCount() - 1 ); m_lbGenerators->SetSelection( m_lbGenerators->GetCount() - 1 );
m_textCtrlCommand->SetValue( plugin->GetCommand() ); m_textCtrlCommand->SetValue( plugin->GetCommand() );
pluginInit(); pluginInit();
} }
@ -539,7 +541,7 @@ void DIALOG_BOM::OnAddPlugin( wxCommandEvent& event )
} }
wxString DIALOG_BOM::choosePlugin() wxString DIALOG_BOM::chooseGenerator()
{ {
static wxString lastPath; static wxString lastPath;
@ -552,7 +554,7 @@ wxString DIALOG_BOM::choosePlugin()
#endif #endif
} }
wxString fullFileName = EDA_FILE_SELECTOR( _( "Plugin files:" ), lastPath, wxEmptyString, wxString fullFileName = EDA_FILE_SELECTOR( _( "Generator files:" ), lastPath, wxEmptyString,
wxEmptyString, wxFileSelectorDefaultWildcardStr, wxEmptyString, wxFileSelectorDefaultWildcardStr,
this, wxFD_OPEN, true ); this, wxFD_OPEN, true );
@ -560,9 +562,9 @@ wxString DIALOG_BOM::choosePlugin()
} }
void DIALOG_BOM::OnEditPlugin( wxCommandEvent& event ) void DIALOG_BOM::OnEditGenerator( wxCommandEvent& event )
{ {
auto plugin = selectedPlugin(); auto plugin = selectedGenerator();
if( !plugin ) if( !plugin )
return; return;
@ -571,7 +573,7 @@ void DIALOG_BOM::OnEditPlugin( wxCommandEvent& event )
if( pluginFile.Length() <= 2 ) // if name != "" if( pluginFile.Length() <= 2 ) // if name != ""
{ {
wxMessageBox( _( "Plugin file name not found." ) ); wxMessageBox( _( "Generator file name not found." ) );
return; return;
} }
@ -598,22 +600,22 @@ void DIALOG_BOM::OnHelp( wxCommandEvent& event )
void DIALOG_BOM::OnCommandLineEdited( wxCommandEvent& event ) void DIALOG_BOM::OnCommandLineEdited( wxCommandEvent& event )
{ {
auto plugin = selectedPlugin(); auto generator = selectedGenerator();
if( plugin ) if( generator )
plugin->SetCommand( m_textCtrlCommand->GetValue() ); generator->SetCommand( m_textCtrlCommand->GetValue() );
} }
void DIALOG_BOM::OnNameEdited( wxCommandEvent& event ) void DIALOG_BOM::OnNameEdited( wxCommandEvent& event )
{ {
int ii = m_lbPlugins->GetSelection(); int ii = m_lbGenerators->GetSelection();
if( ii < 0 ) if( ii < 0 )
return; return;
m_plugins[ii]->SetName( m_textCtrlName->GetValue() ); m_generators[ii]->SetName( m_textCtrlName->GetValue() );
m_lbPlugins->SetString( ii, m_plugins[ii]->GetName() ); m_lbGenerators->SetString( ii, m_generators[ii]->GetName() );
} }
@ -622,7 +624,7 @@ void DIALOG_BOM::OnShowConsoleChanged( wxCommandEvent& event )
#ifdef __WINDOWS__ #ifdef __WINDOWS__
static constexpr wxChar OPT_SHOW_CONSOLE[] = wxT( "show_console" ); static constexpr wxChar OPT_SHOW_CONSOLE[] = wxT( "show_console" );
auto plugin = selectedPlugin(); auto plugin = selectedGenerator();
if( !plugin ) if( !plugin )
return; return;

View File

@ -22,14 +22,14 @@ DIALOG_BOM_BASE::DIALOG_BOM_BASE( wxWindow* parent, wxWindowID id, const wxStrin
wxBoxSizer* bLeftSizer; wxBoxSizer* bLeftSizer;
bLeftSizer = new wxBoxSizer( wxVERTICAL ); bLeftSizer = new wxBoxSizer( wxVERTICAL );
m_staticTextPluginTitle = new wxStaticText( this, wxID_ANY, _("BOM plugins:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextGeneratorTitle = new wxStaticText( this, wxID_ANY, _("BOM generator scripts:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextPluginTitle->Wrap( -1 ); m_staticTextGeneratorTitle->Wrap( -1 );
bLeftSizer->Add( m_staticTextPluginTitle, 0, wxTOP, 5 ); bLeftSizer->Add( m_staticTextGeneratorTitle, 0, wxTOP, 5 );
m_lbPlugins = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); m_lbGenerators = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
m_lbPlugins->SetMinSize( wxSize( 250,-1 ) ); m_lbGenerators->SetMinSize( wxSize( 250,-1 ) );
bLeftSizer->Add( m_lbPlugins, 1, wxEXPAND, 5 ); bLeftSizer->Add( m_lbGenerators, 1, wxEXPAND, 5 );
bUpperSizer->Add( bLeftSizer, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 ); bUpperSizer->Add( bLeftSizer, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 );
@ -40,7 +40,7 @@ DIALOG_BOM_BASE::DIALOG_BOM_BASE( wxWindow* parent, wxWindowID id, const wxStrin
wxBoxSizer* bNameSizer; wxBoxSizer* bNameSizer;
bNameSizer = new wxBoxSizer( wxHORIZONTAL ); bNameSizer = new wxBoxSizer( wxHORIZONTAL );
m_staticTextName = new wxStaticText( this, wxID_ANY, _("Plugin nickname:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextName = new wxStaticText( this, wxID_ANY, _("Generator nickname:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextName->Wrap( -1 ); m_staticTextName->Wrap( -1 );
bNameSizer->Add( m_staticTextName, 0, wxALIGN_CENTER_VERTICAL, 5 ); bNameSizer->Add( m_staticTextName, 0, wxALIGN_CENTER_VERTICAL, 5 );
@ -61,35 +61,35 @@ DIALOG_BOM_BASE::DIALOG_BOM_BASE( wxWindow* parent, wxWindowID id, const wxStrin
bMainSizer->Add( bUpperSizer, 2, wxEXPAND|wxALL, 5 ); bMainSizer->Add( bUpperSizer, 2, wxEXPAND|wxALL, 5 );
wxBoxSizer* bPluginButtons; wxBoxSizer* bGeneratorButtons;
bPluginButtons = new wxBoxSizer( wxHORIZONTAL ); bGeneratorButtons = new wxBoxSizer( wxHORIZONTAL );
m_buttonAddPlugin = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), wxBU_AUTODRAW|0 ); m_buttonAddGenerator = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), wxBU_AUTODRAW|0 );
m_buttonAddPlugin->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) ); m_buttonAddGenerator->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
m_buttonAddPlugin->SetToolTip( _("Add a new plugin and its command line to the list") ); m_buttonAddGenerator->SetToolTip( _("Add a new BOM generator and its command line to the list") );
bPluginButtons->Add( m_buttonAddPlugin, 0, wxRIGHT|wxLEFT, 5 ); bGeneratorButtons->Add( m_buttonAddGenerator, 0, wxRIGHT|wxLEFT, 5 );
m_buttonEdit = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), wxBU_AUTODRAW|0 ); m_buttonEdit = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), wxBU_AUTODRAW|0 );
m_buttonEdit->SetToolTip( _("Edit the plugin file in the text editor") ); m_buttonEdit->SetToolTip( _("Edit the script file in the text editor") );
bPluginButtons->Add( m_buttonEdit, 0, wxRIGHT, 5 ); bGeneratorButtons->Add( m_buttonEdit, 0, wxRIGHT, 5 );
bPluginButtons->Add( 0, 0, 0, wxRIGHT|wxLEFT, 5 ); bGeneratorButtons->Add( 0, 0, 0, wxRIGHT|wxLEFT, 5 );
m_buttonDelPlugin = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), wxBU_AUTODRAW|0 ); m_buttonDelGenerator = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), wxBU_AUTODRAW|0 );
m_buttonDelPlugin->SetToolTip( _("Remove the current plugin from list") ); m_buttonDelGenerator->SetToolTip( _("Remove the current generator script from list") );
bPluginButtons->Add( m_buttonDelPlugin, 0, wxRIGHT, 5 ); bGeneratorButtons->Add( m_buttonDelGenerator, 0, wxRIGHT, 5 );
bMainSizer->Add( bPluginButtons, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 ); bMainSizer->Add( bGeneratorButtons, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
wxBoxSizer* bbottomSizer; wxBoxSizer* bbottomSizer;
bbottomSizer = new wxBoxSizer( wxVERTICAL ); bbottomSizer = new wxBoxSizer( wxVERTICAL );
m_staticTextCmd = new wxStaticText( this, wxID_ANY, _("Command line:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextCmd = new wxStaticText( this, wxID_ANY, _("Command line running the generator:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextCmd->Wrap( -1 ); m_staticTextCmd->Wrap( -1 );
bbottomSizer->Add( m_staticTextCmd, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); bbottomSizer->Add( m_staticTextCmd, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
@ -99,16 +99,15 @@ DIALOG_BOM_BASE::DIALOG_BOM_BASE( wxWindow* parent, wxWindowID id, const wxStrin
bbottomSizer->Add( m_textCtrlCommand, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bbottomSizer->Add( m_textCtrlCommand, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_checkBoxShowConsole = new wxCheckBox( this, wxID_ANY, _("Show console window"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkBoxShowConsole = new wxCheckBox( this, wxID_ANY, _("Show console window"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkBoxShowConsole->SetValue(true); m_checkBoxShowConsole->SetToolTip( _("By default, command line runs with hidden console window and output is redirected to the info display.\nSet this option to show the window of the running command.") );
m_checkBoxShowConsole->SetToolTip( _("By default, command line runs with hidden console window and output is redirected to \"Plugin info\" field.\nSet this option to show the window of the running command.") );
bbottomSizer->Add( m_checkBoxShowConsole, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); bbottomSizer->Add( m_checkBoxShowConsole, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
bMainSizer->Add( bbottomSizer, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 ); bMainSizer->Add( bbottomSizer, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); m_staticline = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bMainSizer->Add( m_staticline2, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); bMainSizer->Add( m_staticline, 0, wxEXPAND|wxTOP|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 );
@ -129,29 +128,29 @@ DIALOG_BOM_BASE::DIALOG_BOM_BASE( wxWindow* parent, wxWindowID id, const wxStrin
// Connect Events // Connect Events
this->Connect( wxEVT_IDLE, wxIdleEventHandler( DIALOG_BOM_BASE::OnIdle ) ); this->Connect( wxEVT_IDLE, wxIdleEventHandler( DIALOG_BOM_BASE::OnIdle ) );
m_lbPlugins->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_BOM_BASE::OnPluginSelected ), NULL, this ); m_lbGenerators->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_BOM_BASE::OnGeneratorSelected ), NULL, this );
m_textCtrlName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_BOM_BASE::OnNameEdited ), NULL, this ); m_textCtrlName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_BOM_BASE::OnNameEdited ), NULL, this );
m_buttonAddPlugin->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnAddPlugin ), NULL, this ); m_buttonAddGenerator->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnAddGenerator ), NULL, this );
m_buttonEdit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnEditPlugin ), NULL, this ); m_buttonEdit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnEditGenerator ), NULL, this );
m_buttonDelPlugin->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnRemovePlugin ), NULL, this ); m_buttonDelGenerator->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnRemoveGenerator ), NULL, this );
m_textCtrlCommand->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_BOM_BASE::OnCommandLineEdited ), NULL, this ); m_textCtrlCommand->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_BOM_BASE::OnCommandLineEdited ), NULL, this );
m_checkBoxShowConsole->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnShowConsoleChanged ), NULL, this ); m_checkBoxShowConsole->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnShowConsoleChanged ), NULL, this );
m_sdbSizerHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnHelp ), NULL, this ); m_sdbSizerHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnHelp ), NULL, this );
m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnRunPlugin ), NULL, this ); m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnRunGenerator ), NULL, this );
} }
DIALOG_BOM_BASE::~DIALOG_BOM_BASE() DIALOG_BOM_BASE::~DIALOG_BOM_BASE()
{ {
// Disconnect Events // Disconnect Events
this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( DIALOG_BOM_BASE::OnIdle ) ); this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( DIALOG_BOM_BASE::OnIdle ) );
m_lbPlugins->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_BOM_BASE::OnPluginSelected ), NULL, this ); m_lbGenerators->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_BOM_BASE::OnGeneratorSelected ), NULL, this );
m_textCtrlName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_BOM_BASE::OnNameEdited ), NULL, this ); m_textCtrlName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_BOM_BASE::OnNameEdited ), NULL, this );
m_buttonAddPlugin->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnAddPlugin ), NULL, this ); m_buttonAddGenerator->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnAddGenerator ), NULL, this );
m_buttonEdit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnEditPlugin ), NULL, this ); m_buttonEdit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnEditGenerator ), NULL, this );
m_buttonDelPlugin->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnRemovePlugin ), NULL, this ); m_buttonDelGenerator->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnRemoveGenerator ), NULL, this );
m_textCtrlCommand->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_BOM_BASE::OnCommandLineEdited ), NULL, this ); m_textCtrlCommand->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_BOM_BASE::OnCommandLineEdited ), NULL, this );
m_checkBoxShowConsole->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnShowConsoleChanged ), NULL, this ); m_checkBoxShowConsole->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnShowConsoleChanged ), NULL, this );
m_sdbSizerHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnHelp ), NULL, this ); m_sdbSizerHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnHelp ), NULL, this );
m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnRunPlugin ), NULL, this ); m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnRunGenerator ), NULL, this );
} }

View File

@ -109,7 +109,7 @@
<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">BOM plugins:</property> <property name="label">BOM generator scripts:</property>
<property name="markup">0</property> <property name="markup">0</property>
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
@ -118,7 +118,7 @@
<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_staticTextPluginTitle</property> <property name="name">m_staticTextGeneratorTitle</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>
@ -178,7 +178,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size">250,-1</property> <property name="minimum_size">250,-1</property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_lbPlugins</property> <property name="name">m_lbGenerators</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>
@ -199,7 +199,7 @@
<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="OnListBox">OnPluginSelected</event> <event name="OnListBox">OnGeneratorSelected</event>
</object> </object>
</object> </object>
</object> </object>
@ -254,7 +254,7 @@
<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">Plugin nickname:</property> <property name="label">Generator nickname:</property>
<property name="markup">0</property> <property name="markup">0</property>
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
@ -424,7 +424,7 @@
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1"> <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="name">bPluginButtons</property> <property name="name">bGeneratorButtons</property>
<property name="orient">wxHORIZONTAL</property> <property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
@ -474,7 +474,7 @@
<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_buttonAddPlugin</property> <property name="name">m_buttonAddGenerator</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>
@ -489,7 +489,7 @@
<property name="style"></property> <property name="style"></property>
<property name="subclass">; forward_declare</property> <property name="subclass">; forward_declare</property>
<property name="toolbar_pane">0</property> <property name="toolbar_pane">0</property>
<property name="tooltip">Add a new plugin and its command line to the list</property> <property name="tooltip">Add a new BOM generator and its command line to the list</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>
@ -497,7 +497,7 @@
<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="OnButtonClick">OnAddPlugin</event> <event name="OnButtonClick">OnAddGenerator</event>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
@ -562,7 +562,7 @@
<property name="style"></property> <property name="style"></property>
<property name="subclass">; forward_declare</property> <property name="subclass">; forward_declare</property>
<property name="toolbar_pane">0</property> <property name="toolbar_pane">0</property>
<property name="tooltip">Edit the plugin file in the text editor</property> <property name="tooltip">Edit the script file in the text editor</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>
@ -570,7 +570,7 @@
<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="OnButtonClick">OnEditPlugin</event> <event name="OnButtonClick">OnEditGenerator</event>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
@ -630,7 +630,7 @@
<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_buttonDelPlugin</property> <property name="name">m_buttonDelGenerator</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>
@ -645,7 +645,7 @@
<property name="style"></property> <property name="style"></property>
<property name="subclass">; forward_declare</property> <property name="subclass">; forward_declare</property>
<property name="toolbar_pane">0</property> <property name="toolbar_pane">0</property>
<property name="tooltip">Remove the current plugin from list</property> <property name="tooltip">Remove the current generator script from list</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>
@ -653,7 +653,7 @@
<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="OnButtonClick">OnRemovePlugin</event> <event name="OnButtonClick">OnRemoveGenerator</event>
</object> </object>
</object> </object>
</object> </object>
@ -699,7 +699,7 @@
<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">Command line:</property> <property name="label">Command line running the generator:</property>
<property name="markup">0</property> <property name="markup">0</property>
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
@ -811,7 +811,7 @@
<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="checked">1</property> <property name="checked">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>
@ -847,7 +847,7 @@
<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">By default, command line runs with hidden console window and output is redirected to &quot;Plugin info&quot; field.&#x0A;Set this option to show the window of the running command.</property> <property name="tooltip">By default, command line runs with hidden console window and output is redirected to the info display.&#x0A;Set this option to show the window of the running command.</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>
@ -899,7 +899,7 @@
<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_staticline2</property> <property name="name">m_staticline</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>
@ -935,7 +935,7 @@
<property name="name">m_sdbSizer</property> <property name="name">m_sdbSizer</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<event name="OnHelpButtonClick">OnHelp</event> <event name="OnHelpButtonClick">OnHelp</event>
<event name="OnOKButtonClick">OnRunPlugin</event> <event name="OnOKButtonClick">OnRunGenerator</event>
</object> </object>
</object> </object>
</object> </object>

View File

@ -45,18 +45,18 @@ class DIALOG_BOM_BASE : public DIALOG_SHIM
ID_CMDLINE ID_CMDLINE
}; };
wxStaticText* m_staticTextPluginTitle; wxStaticText* m_staticTextGeneratorTitle;
wxListBox* m_lbPlugins; wxListBox* m_lbGenerators;
wxStaticText* m_staticTextName; wxStaticText* m_staticTextName;
wxTextCtrl* m_textCtrlName; wxTextCtrl* m_textCtrlName;
wxTextCtrl* m_Messages; wxTextCtrl* m_Messages;
wxBitmapButton* m_buttonAddPlugin; wxBitmapButton* m_buttonAddGenerator;
wxBitmapButton* m_buttonEdit; wxBitmapButton* m_buttonEdit;
wxBitmapButton* m_buttonDelPlugin; wxBitmapButton* m_buttonDelGenerator;
wxStaticText* m_staticTextCmd; wxStaticText* m_staticTextCmd;
wxTextCtrl* m_textCtrlCommand; wxTextCtrl* m_textCtrlCommand;
wxCheckBox* m_checkBoxShowConsole; wxCheckBox* m_checkBoxShowConsole;
wxStaticLine* m_staticline2; wxStaticLine* m_staticline;
wxStdDialogButtonSizer* m_sdbSizer; wxStdDialogButtonSizer* m_sdbSizer;
wxButton* m_sdbSizerOK; wxButton* m_sdbSizerOK;
wxButton* m_sdbSizerCancel; wxButton* m_sdbSizerCancel;
@ -64,15 +64,15 @@ class DIALOG_BOM_BASE : public DIALOG_SHIM
// Virtual event handlers, overide them in your derived class // Virtual event handlers, overide them in your derived class
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); } virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnPluginSelected( wxCommandEvent& event ) { event.Skip(); } virtual void OnGeneratorSelected( wxCommandEvent& event ) { event.Skip(); }
virtual void OnNameEdited( wxCommandEvent& event ) { event.Skip(); } virtual void OnNameEdited( wxCommandEvent& event ) { event.Skip(); }
virtual void OnAddPlugin( wxCommandEvent& event ) { event.Skip(); } virtual void OnAddGenerator( wxCommandEvent& event ) { event.Skip(); }
virtual void OnEditPlugin( wxCommandEvent& event ) { event.Skip(); } virtual void OnEditGenerator( wxCommandEvent& event ) { event.Skip(); }
virtual void OnRemovePlugin( wxCommandEvent& event ) { event.Skip(); } virtual void OnRemoveGenerator( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCommandLineEdited( wxCommandEvent& event ) { event.Skip(); } virtual void OnCommandLineEdited( wxCommandEvent& event ) { event.Skip(); }
virtual void OnShowConsoleChanged( wxCommandEvent& event ) { event.Skip(); } virtual void OnShowConsoleChanged( wxCommandEvent& event ) { event.Skip(); }
virtual void OnHelp( wxCommandEvent& event ) { event.Skip(); } virtual void OnHelp( wxCommandEvent& event ) { event.Skip(); }
virtual void OnRunPlugin( wxCommandEvent& event ) { event.Skip(); } virtual void OnRunGenerator( wxCommandEvent& event ) { event.Skip(); }
public: public:

View File

@ -155,16 +155,16 @@ private:
void SelectDefaultNetlistType( wxCommandEvent& event ); void SelectDefaultNetlistType( wxCommandEvent& event );
/** /**
* Function OnAddPlugin * Function OnAddGenerator
* Add a new panel for a new netlist plugin * Add a new panel for a new netlist plugin
*/ */
void OnAddPlugin( wxCommandEvent& event ) override; void OnAddGenerator( wxCommandEvent& event ) override;
/** /**
* Function OnDelPlugin * Function OnDelGenerator
* Remove a panel relative to a netlist plugin * Remove a panel relative to a netlist plugin
*/ */
void OnDelPlugin( wxCommandEvent& event ) override; void OnDelGenerator( wxCommandEvent& event ) override;
/** /**
* Function WriteCurrentNetlistSetup * Function WriteCurrentNetlistSetup
@ -198,18 +198,18 @@ private:
}; };
class NETLIST_DIALOG_ADD_PLUGIN : public NETLIST_DIALOG_ADD_PLUGIN_BASE class NETLIST_DIALOG_ADD_GENERATOR : public NETLIST_DIALOG_ADD_GENERATOR_BASE
{ {
private: private:
NETLIST_DIALOG* m_Parent; NETLIST_DIALOG* m_Parent;
public: public:
NETLIST_DIALOG_ADD_PLUGIN( NETLIST_DIALOG* parent ); NETLIST_DIALOG_ADD_GENERATOR( NETLIST_DIALOG* parent );
const wxString GetPluginTitle() const wxString GetGeneratorTitle()
{ {
return m_textCtrlName->GetValue(); return m_textCtrlName->GetValue();
} }
const wxString GetPluginTCommandLine() const wxString GetGeneratorTCommandLine()
{ {
return m_textCtrlCommand->GetValue(); return m_textCtrlCommand->GetValue();
} }
@ -225,7 +225,7 @@ private:
/* /*
* Browse plugin files, and set m_CommandStringCtrl field * Browse plugin files, and set m_CommandStringCtrl field
*/ */
void OnBrowsePlugins( wxCommandEvent& event ) override; void OnBrowseGenerators( wxCommandEvent& event ) override;
}; };
@ -501,7 +501,7 @@ void NETLIST_DIALOG::OnNetlistTypeSelection( wxNotebookEvent& event )
if( currPage == NULL ) if( currPage == NULL )
return; return;
m_buttonDelPlugin->Enable( currPage->m_IdNetType >= NET_TYPE_CUSTOM1 ); m_buttonDelGenerator->Enable( currPage->m_IdNetType >= NET_TYPE_CUSTOM1 );
} }
@ -735,7 +735,7 @@ void NETLIST_DIALOG::WriteCurrentNetlistSetup()
} }
void NETLIST_DIALOG::OnDelPlugin( wxCommandEvent& event ) void NETLIST_DIALOG::OnDelGenerator( wxCommandEvent& event )
{ {
NETLIST_PAGE_DIALOG* currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage(); NETLIST_PAGE_DIALOG* currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
@ -753,14 +753,14 @@ void NETLIST_DIALOG::OnDelPlugin( wxCommandEvent& event )
} }
void NETLIST_DIALOG::OnAddPlugin( wxCommandEvent& event ) void NETLIST_DIALOG::OnAddGenerator( wxCommandEvent& event )
{ {
NETLIST_DIALOG_ADD_PLUGIN dlg( this ); NETLIST_DIALOG_ADD_GENERATOR dlg( this );
if( dlg.ShowModal() != wxID_OK ) if( dlg.ShowModal() != wxID_OK )
return; return;
// Creates a new custom plugin page // Creates a new custom plugin page
wxString title = dlg.GetPluginTitle(); wxString title = dlg.GetGeneratorTitle();
// Verify it does not exists // Verify it does not exists
int netTypeId = PANELCUSTOMBASE; // the first not used type id int netTypeId = PANELCUSTOMBASE; // the first not used type id
@ -780,7 +780,7 @@ void NETLIST_DIALOG::OnAddPlugin( wxCommandEvent& event )
} }
} }
wxString cmd = dlg.GetPluginTCommandLine(); wxString cmd = dlg.GetGeneratorTCommandLine();
currPage = AddOneCustomPage( title,cmd, (NETLIST_TYPE_ID)netTypeId ); currPage = AddOneCustomPage( title,cmd, (NETLIST_TYPE_ID)netTypeId );
m_PanelNetType[netTypeId] = currPage; m_PanelNetType[netTypeId] = currPage;
WriteCurrentNetlistSetup(); WriteCurrentNetlistSetup();
@ -790,15 +790,15 @@ void NETLIST_DIALOG::OnAddPlugin( wxCommandEvent& event )
} }
NETLIST_DIALOG_ADD_PLUGIN::NETLIST_DIALOG_ADD_PLUGIN( NETLIST_DIALOG* parent ) : NETLIST_DIALOG_ADD_GENERATOR::NETLIST_DIALOG_ADD_GENERATOR( NETLIST_DIALOG* parent ) :
NETLIST_DIALOG_ADD_PLUGIN_BASE( parent ) NETLIST_DIALOG_ADD_GENERATOR_BASE( parent )
{ {
m_Parent = parent; m_Parent = parent;
GetSizer()->SetSizeHints( this ); GetSizer()->SetSizeHints( this );
} }
void NETLIST_DIALOG_ADD_PLUGIN::OnOKClick( wxCommandEvent& event ) void NETLIST_DIALOG_ADD_GENERATOR::OnOKClick( wxCommandEvent& event )
{ {
if( m_textCtrlCommand->GetValue() == wxEmptyString ) if( m_textCtrlCommand->GetValue() == wxEmptyString )
{ {
@ -816,7 +816,7 @@ void NETLIST_DIALOG_ADD_PLUGIN::OnOKClick( wxCommandEvent& event )
} }
void NETLIST_DIALOG_ADD_PLUGIN::OnBrowsePlugins( wxCommandEvent& event ) void NETLIST_DIALOG_ADD_GENERATOR::OnBrowseGenerators( wxCommandEvent& event )
{ {
wxString FullFileName, Path; wxString FullFileName, Path;
@ -825,7 +825,7 @@ void NETLIST_DIALOG_ADD_PLUGIN::OnBrowsePlugins( wxCommandEvent& event )
#else #else
Path = GetOSXKicadDataDir() + wxT( "/plugins" ); Path = GetOSXKicadDataDir() + wxT( "/plugins" );
#endif #endif
FullFileName = EDA_FILE_SELECTOR( _( "Plugin files:" ), FullFileName = EDA_FILE_SELECTOR( _( "Generator files:" ),
Path, Path,
FullFileName, FullFileName,
wxEmptyString, wxEmptyString,

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 23 2018) // C++ code generated with wxFormBuilder (version Dec 1 2018)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -13,8 +13,8 @@ BEGIN_EVENT_TABLE( NETLIST_DIALOG_BASE, DIALOG_SHIM )
EVT_NOTEBOOK_PAGE_CHANGED( ID_CHANGE_NOTEBOOK_PAGE, NETLIST_DIALOG_BASE::_wxFB_OnNetlistTypeSelection ) EVT_NOTEBOOK_PAGE_CHANGED( ID_CHANGE_NOTEBOOK_PAGE, NETLIST_DIALOG_BASE::_wxFB_OnNetlistTypeSelection )
EVT_BUTTON( ID_CREATE_NETLIST, NETLIST_DIALOG_BASE::_wxFB_GenNetlist ) EVT_BUTTON( ID_CREATE_NETLIST, NETLIST_DIALOG_BASE::_wxFB_GenNetlist )
EVT_BUTTON( wxID_CANCEL, NETLIST_DIALOG_BASE::_wxFB_OnCancelClick ) EVT_BUTTON( wxID_CANCEL, NETLIST_DIALOG_BASE::_wxFB_OnCancelClick )
EVT_BUTTON( ID_ADD_PLUGIN, NETLIST_DIALOG_BASE::_wxFB_OnAddPlugin ) EVT_BUTTON( ID_ADD_PLUGIN, NETLIST_DIALOG_BASE::_wxFB_OnAddGenerator )
EVT_BUTTON( ID_DEL_PLUGIN, NETLIST_DIALOG_BASE::_wxFB_OnDelPlugin ) EVT_BUTTON( ID_DEL_PLUGIN, NETLIST_DIALOG_BASE::_wxFB_OnDelGenerator )
END_EVENT_TABLE() END_EVENT_TABLE()
NETLIST_DIALOG_BASE::NETLIST_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 ) NETLIST_DIALOG_BASE::NETLIST_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 )
@ -49,11 +49,11 @@ NETLIST_DIALOG_BASE::NETLIST_DIALOG_BASE( wxWindow* parent, wxWindowID id, const
m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
bLeftSizer->Add( m_buttonCancel, 0, wxALL|wxEXPAND, 5 ); bLeftSizer->Add( m_buttonCancel, 0, wxALL|wxEXPAND, 5 );
m_buttonAddPlugin = new wxButton( this, ID_ADD_PLUGIN, _("Add Plugin..."), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonAddGenerator = new wxButton( this, ID_ADD_PLUGIN, _("Add Generator..."), wxDefaultPosition, wxDefaultSize, 0 );
bLeftSizer->Add( m_buttonAddPlugin, 0, wxALL|wxEXPAND, 5 ); bLeftSizer->Add( m_buttonAddGenerator, 0, wxALL|wxEXPAND, 5 );
m_buttonDelPlugin = new wxButton( this, ID_DEL_PLUGIN, _("Remove Plugin..."), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonDelGenerator = new wxButton( this, ID_DEL_PLUGIN, _("Remove Generator..."), wxDefaultPosition, wxDefaultSize, 0 );
bLeftSizer->Add( m_buttonDelPlugin, 0, wxALL|wxEXPAND, 5 ); bLeftSizer->Add( m_buttonDelGenerator, 0, wxALL|wxEXPAND, 5 );
bLeftSizer->Add( 0, 0, 1, wxBOTTOM, 10 ); bLeftSizer->Add( 0, 0, 1, wxBOTTOM, 10 );
@ -76,66 +76,69 @@ NETLIST_DIALOG_BASE::~NETLIST_DIALOG_BASE()
{ {
} }
BEGIN_EVENT_TABLE( NETLIST_DIALOG_ADD_PLUGIN_BASE, DIALOG_SHIM ) BEGIN_EVENT_TABLE( NETLIST_DIALOG_ADD_GENERATOR_BASE, DIALOG_SHIM )
EVT_BUTTON( wxID_OK, NETLIST_DIALOG_ADD_PLUGIN_BASE::_wxFB_OnOKClick ) EVT_BUTTON( wxID_BROWSE_PLUGINS, NETLIST_DIALOG_ADD_GENERATOR_BASE::_wxFB_OnBrowseGenerators )
EVT_BUTTON( wxID_CANCEL, NETLIST_DIALOG_ADD_PLUGIN_BASE::_wxFB_OnCancelClick ) EVT_BUTTON( wxID_CANCEL, NETLIST_DIALOG_ADD_GENERATOR_BASE::_wxFB_OnCancelClick )
EVT_BUTTON( wxID_BROWSE_PLUGINS, NETLIST_DIALOG_ADD_PLUGIN_BASE::_wxFB_OnBrowsePlugins ) EVT_BUTTON( wxID_OK, NETLIST_DIALOG_ADD_GENERATOR_BASE::_wxFB_OnOKClick )
END_EVENT_TABLE() END_EVENT_TABLE()
NETLIST_DIALOG_ADD_PLUGIN_BASE::NETLIST_DIALOG_ADD_PLUGIN_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) NETLIST_DIALOG_ADD_GENERATOR_BASE::NETLIST_DIALOG_ADD_GENERATOR_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( wxHORIZONTAL ); bSizerMain = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* bSizerLeft; wxBoxSizer* bSizerTop;
bSizerLeft = new wxBoxSizer( wxVERTICAL ); bSizerTop = new wxBoxSizer( wxVERTICAL );
m_staticTextCmd = new wxStaticText( this, wxID_ANY, _("Netlist command:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextCmd = new wxStaticText( this, wxID_ANY, _("Command line to run the generator:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextCmd->Wrap( -1 ); m_staticTextCmd->Wrap( -1 );
bSizerLeft->Add( m_staticTextCmd, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); bSizerTop->Add( m_staticTextCmd, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_textCtrlCommand = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_textCtrlCommand = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_textCtrlCommand->SetMinSize( wxSize( 300,-1 ) ); m_textCtrlCommand->SetMinSize( wxSize( 300,-1 ) );
bSizerLeft->Add( m_textCtrlCommand, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bSizerTop->Add( m_textCtrlCommand, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_staticTextName = new wxStaticText( this, wxID_ANY, _("Name:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextName = new wxStaticText( this, wxID_ANY, _("Name:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextName->Wrap( -1 ); m_staticTextName->Wrap( -1 );
bSizerLeft->Add( m_staticTextName, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); bSizerTop->Add( m_staticTextName, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_textCtrlName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_textCtrlName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
bSizerLeft->Add( m_textCtrlName, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bSizerTop->Add( m_textCtrlName, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bSizerTop->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
bSizerMain->Add( bSizerLeft, 1, wxEXPAND, 5 ); bSizerMain->Add( bSizerTop, 1, wxEXPAND, 5 );
wxBoxSizer* bSizerRight; wxBoxSizer* bSizerBottom;
bSizerRight = new wxBoxSizer( wxVERTICAL ); bSizerBottom = new wxBoxSizer( wxHORIZONTAL );
m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonGenerator = new wxButton( this, wxID_BROWSE_PLUGINS, _("Browse Generators"), wxDefaultPosition, wxDefaultSize, 0 );
bSizerBottom->Add( m_buttonGenerator, 0, wxALL|wxEXPAND, 5 );
m_buttonOK->SetDefault(); m_sdbSizer = new wxStdDialogButtonSizer();
bSizerRight->Add( m_buttonOK, 0, wxALL|wxEXPAND, 5 ); m_sdbSizerOK = new wxButton( this, wxID_OK );
m_sdbSizer->AddButton( m_sdbSizerOK );
m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer->AddButton( m_sdbSizerCancel );
m_sdbSizer->Realize();
m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizerBottom->Add( m_sdbSizer, 1, wxEXPAND, 5 );
bSizerRight->Add( m_buttonCancel, 0, wxALL|wxEXPAND, 5 );
m_buttonPlugin = new wxButton( this, wxID_BROWSE_PLUGINS, _("Browse Plugins"), wxDefaultPosition, wxDefaultSize, 0 );
bSizerRight->Add( m_buttonPlugin, 0, wxALL|wxEXPAND, 5 );
bSizerMain->Add( bSizerRight, 0, wxEXPAND, 5 ); bSizerMain->Add( bSizerBottom, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
this->SetSizer( bSizerMain ); this->SetSizer( bSizerMain );
this->Layout(); this->Layout();
bSizerMain->Fit( this );
this->Centre( wxBOTH ); this->Centre( wxBOTH );
} }
NETLIST_DIALOG_ADD_PLUGIN_BASE::~NETLIST_DIALOG_ADD_PLUGIN_BASE() NETLIST_DIALOG_ADD_GENERATOR_BASE::~NETLIST_DIALOG_ADD_GENERATOR_BASE()
{ {
} }

View File

@ -340,7 +340,7 @@
<property name="gripper">0</property> <property name="gripper">0</property>
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">ID_ADD_PLUGIN</property> <property name="id">ID_ADD_PLUGIN</property>
<property name="label">Add Plugin...</property> <property name="label">Add Generator...</property>
<property name="margins"></property> <property name="margins"></property>
<property name="markup">0</property> <property name="markup">0</property>
<property name="max_size"></property> <property name="max_size"></property>
@ -350,7 +350,7 @@
<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_buttonAddPlugin</property> <property name="name">m_buttonAddGenerator</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>
@ -373,7 +373,7 @@
<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="OnButtonClick">OnAddPlugin</event> <event name="OnButtonClick">OnAddGenerator</event>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="0">
@ -413,7 +413,7 @@
<property name="gripper">0</property> <property name="gripper">0</property>
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">ID_DEL_PLUGIN</property> <property name="id">ID_DEL_PLUGIN</property>
<property name="label">Remove Plugin...</property> <property name="label">Remove Generator...</property>
<property name="margins"></property> <property name="margins"></property>
<property name="markup">0</property> <property name="markup">0</property>
<property name="max_size"></property> <property name="max_size"></property>
@ -423,7 +423,7 @@
<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_buttonDelPlugin</property> <property name="name">m_buttonDelGenerator</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>
@ -446,7 +446,7 @@
<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="OnButtonClick">OnDelPlugin</event> <event name="OnButtonClick">OnDelGenerator</event>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
@ -481,12 +481,12 @@
<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">NETLIST_DIALOG_ADD_PLUGIN_BASE</property> <property name="name">NETLIST_DIALOG_ADD_GENERATOR_BASE</property>
<property name="pos"></property> <property name="pos"></property>
<property name="size">-1,-1</property> <property name="size">359,170</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">Plugin Properties</property> <property name="title">Script Generator Properties</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>
@ -494,7 +494,7 @@
<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">wxHORIZONTAL</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>
@ -502,7 +502,7 @@
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1"> <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="name">bSizerLeft</property> <property name="name">bSizerTop</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="0"> <object class="sizeritem" expanded="0">
@ -537,7 +537,7 @@
<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">Netlist command:</property> <property name="label">Command line to run the generator:</property>
<property name="markup">0</property> <property name="markup">0</property>
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
@ -755,163 +755,75 @@
<property name="window_style"></property> <property name="window_style"></property>
</object> </object>
</object> </object>
</object> <object class="sizeritem" expanded="1">
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxEXPAND</property> <property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxBoxSizer" expanded="0"> <object class="wxStaticLine" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</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"></property> <property name="minimum_size"></property>
<property name="name">bSizerRight</property> <property name="moveable">1</property>
<property name="orient">wxVERTICAL</property> <property name="name">m_staticline1</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxLI_HORIZONTAL</property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizerBottom</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="bitmap"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="current"></property>
<property name="default">1</property>
<property name="default_pane">0</property>
<property name="disabled"></property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="focus"></property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_OK</property>
<property name="label">OK</property>
<property name="margins"></property>
<property name="markup">0</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"></property>
<property name="moveable">1</property>
<property name="name">m_buttonOK</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="position"></property>
<property name="pressed"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></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"></property>
<event name="OnButtonClick">OnOKClick</event>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="bitmap"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="current"></property>
<property name="default">0</property>
<property name="default_pane">0</property>
<property name="disabled"></property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="focus"></property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_CANCEL</property>
<property name="label">Cancel</property>
<property name="margins"></property>
<property name="markup">0</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"></property>
<property name="moveable">1</property>
<property name="name">m_buttonCancel</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="position"></property>
<property name="pressed"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></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"></property>
<event name="OnButtonClick">OnCancelClick</event>
</object>
</object>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="0">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property> <property name="flag">wxALL|wxEXPAND</property>
@ -949,7 +861,7 @@
<property name="gripper">0</property> <property name="gripper">0</property>
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_BROWSE_PLUGINS</property> <property name="id">wxID_BROWSE_PLUGINS</property>
<property name="label">Browse Plugins</property> <property name="label">Browse Generators</property>
<property name="margins"></property> <property name="margins"></property>
<property name="markup">0</property> <property name="markup">0</property>
<property name="max_size"></property> <property name="max_size"></property>
@ -959,7 +871,7 @@
<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_buttonPlugin</property> <property name="name">m_buttonGenerator</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>
@ -982,7 +894,27 @@
<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="OnButtonClick">OnBrowsePlugins</event> <event name="OnButtonClick">OnBrowseGenerators</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxStdDialogButtonSizer" expanded="1">
<property name="Apply">0</property>
<property name="Cancel">1</property>
<property name="ContextHelp">0</property>
<property name="Help">0</property>
<property name="No">0</property>
<property name="OK">1</property>
<property name="Save">0</property>
<property name="Yes">0</property>
<property name="minimum_size"></property>
<property name="name">m_sdbSizer</property>
<property name="permission">protected</property>
<event name="OnCancelButtonClick">OnCancelClick</event>
<event name="OnOKButtonClick">OnOKClick</event>
</object> </object>
</object> </object>
</object> </object>

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 23 2018) // C++ code generated with wxFormBuilder (version Dec 1 2018)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -25,6 +25,7 @@
#include <wx/dialog.h> #include <wx/dialog.h>
#include <wx/stattext.h> #include <wx/stattext.h>
#include <wx/textctrl.h> #include <wx/textctrl.h>
#include <wx/statline.h>
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@ -40,8 +41,8 @@ class NETLIST_DIALOG_BASE : public DIALOG_SHIM
void _wxFB_OnNetlistTypeSelection( wxNotebookEvent& event ){ OnNetlistTypeSelection( event ); } void _wxFB_OnNetlistTypeSelection( wxNotebookEvent& event ){ OnNetlistTypeSelection( event ); }
void _wxFB_GenNetlist( wxCommandEvent& event ){ GenNetlist( event ); } void _wxFB_GenNetlist( wxCommandEvent& event ){ GenNetlist( event ); }
void _wxFB_OnCancelClick( wxCommandEvent& event ){ OnCancelClick( event ); } void _wxFB_OnCancelClick( wxCommandEvent& event ){ OnCancelClick( event ); }
void _wxFB_OnAddPlugin( wxCommandEvent& event ){ OnAddPlugin( event ); } void _wxFB_OnAddGenerator( wxCommandEvent& event ){ OnAddGenerator( event ); }
void _wxFB_OnDelPlugin( wxCommandEvent& event ){ OnDelPlugin( event ); } void _wxFB_OnDelGenerator( wxCommandEvent& event ){ OnDelGenerator( event ); }
protected: protected:
@ -56,15 +57,15 @@ class NETLIST_DIALOG_BASE : public DIALOG_SHIM
wxNotebook* m_NoteBook; wxNotebook* m_NoteBook;
wxButton* m_buttonNetlist; wxButton* m_buttonNetlist;
wxButton* m_buttonCancel; wxButton* m_buttonCancel;
wxButton* m_buttonAddPlugin; wxButton* m_buttonAddGenerator;
wxButton* m_buttonDelPlugin; wxButton* m_buttonDelGenerator;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, overide them in your derived class
virtual void OnNetlistTypeSelection( wxNotebookEvent& event ) { event.Skip(); } virtual void OnNetlistTypeSelection( wxNotebookEvent& event ) { event.Skip(); }
virtual void GenNetlist( wxCommandEvent& event ) { event.Skip(); } virtual void GenNetlist( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnAddPlugin( wxCommandEvent& event ) { event.Skip(); } virtual void OnAddGenerator( wxCommandEvent& event ) { event.Skip(); }
virtual void OnDelPlugin( wxCommandEvent& event ) { event.Skip(); } virtual void OnDelGenerator( wxCommandEvent& event ) { event.Skip(); }
public: public:
@ -75,17 +76,17 @@ class NETLIST_DIALOG_BASE : public DIALOG_SHIM
}; };
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
/// Class NETLIST_DIALOG_ADD_PLUGIN_BASE /// Class NETLIST_DIALOG_ADD_GENERATOR_BASE
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
class NETLIST_DIALOG_ADD_PLUGIN_BASE : public DIALOG_SHIM class NETLIST_DIALOG_ADD_GENERATOR_BASE : public DIALOG_SHIM
{ {
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
private: private:
// Private event handlers // Private event handlers
void _wxFB_OnOKClick( wxCommandEvent& event ){ OnOKClick( event ); } void _wxFB_OnBrowseGenerators( wxCommandEvent& event ){ OnBrowseGenerators( event ); }
void _wxFB_OnCancelClick( wxCommandEvent& event ){ OnCancelClick( event ); } void _wxFB_OnCancelClick( wxCommandEvent& event ){ OnCancelClick( event ); }
void _wxFB_OnBrowsePlugins( wxCommandEvent& event ){ OnBrowsePlugins( event ); } void _wxFB_OnOKClick( wxCommandEvent& event ){ OnOKClick( event ); }
protected: protected:
@ -98,20 +99,22 @@ class NETLIST_DIALOG_ADD_PLUGIN_BASE : public DIALOG_SHIM
wxTextCtrl* m_textCtrlCommand; wxTextCtrl* m_textCtrlCommand;
wxStaticText* m_staticTextName; wxStaticText* m_staticTextName;
wxTextCtrl* m_textCtrlName; wxTextCtrl* m_textCtrlName;
wxButton* m_buttonOK; wxStaticLine* m_staticline1;
wxButton* m_buttonCancel; wxButton* m_buttonGenerator;
wxButton* m_buttonPlugin; wxStdDialogButtonSizer* m_sdbSizer;
wxButton* m_sdbSizerOK;
wxButton* m_sdbSizerCancel;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, overide them in your derived class
virtual void OnOKClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnBrowseGenerators( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnBrowsePlugins( wxCommandEvent& event ) { event.Skip(); } virtual void OnOKClick( wxCommandEvent& event ) { event.Skip(); }
public: public:
NETLIST_DIALOG_ADD_PLUGIN_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Plugin Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); NETLIST_DIALOG_ADD_GENERATOR_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Script Generator Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 359,170 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~NETLIST_DIALOG_ADD_PLUGIN_BASE(); ~NETLIST_DIALOG_ADD_GENERATOR_BASE();
}; };