Freshen the BOM dialog.

Layout freshened to include standard button layout.
Fall-behind Add Plugin dialog also fixed.

(cherry picked from commit 30dac89)
This commit is contained in:
Jeff Young 2018-06-28 21:21:42 +01:00
parent 420c2020fb
commit 7c3a67191b
8 changed files with 706 additions and 975 deletions

View File

@ -101,6 +101,7 @@ set( BMAPS_SMALL
pintype_noconnect
refresh
small_down
small_edit
small_plus
small_up
trash

View File

@ -0,0 +1,27 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1f, 0xf3, 0xff,
0x61, 0x00, 0x00, 0x00, 0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64,
0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0e, 0xc4, 0x00, 0x00, 0x0e,
0xc4, 0x01, 0x95, 0x2b, 0x0e, 0x1b, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f,
0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63,
0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, 0x00, 0x00, 0x5d, 0x49,
0x44, 0x41, 0x54, 0x38, 0x8d, 0x63, 0x60, 0xa0, 0x23, 0x48, 0x66, 0x60, 0x60, 0x48, 0x21, 0x57,
0x73, 0x03, 0x03, 0x03, 0xc3, 0x7f, 0x28, 0xee, 0x44, 0x96, 0x60, 0x22, 0xc3, 0xb0, 0x32, 0x64,
0x97, 0xb0, 0x10, 0x61, 0x33, 0x32, 0x5d, 0x0f, 0xa5, 0xff, 0x11, 0x63, 0x40, 0x03, 0x92, 0x06,
0x64, 0x43, 0x18, 0x18, 0x18, 0x18, 0xe6, 0x11, 0xb0, 0x18, 0xc5, 0xcf, 0x30, 0xdc, 0x41, 0x48,
0x13, 0x3e, 0xcd, 0xff, 0xd1, 0x5c, 0x33, 0xaa, 0x19, 0x0d, 0xfc, 0x47, 0xa2, 0x49, 0xd6, 0x8c,
0x6c, 0x00, 0x8c, 0x4d, 0x92, 0x66, 0x8a, 0x6c, 0xa6, 0x0a, 0x00, 0x00, 0x9f, 0xd9, 0x36, 0xa7,
0x22, 0x24, 0x83, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE small_edit_xpm[1] = {{ png, sizeof( png ), "small_edit_xpm" }};
//EOF

View File

@ -0,0 +1 @@
<svg class="octicon octicon-pencil" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z"></path></svg>

After

Width:  |  Height:  |  Size: 277 B

View File

@ -34,11 +34,9 @@
#include <confirm.h>
#include <gestfich.h>
#include <sch_edit_frame.h>
#include <wx/dynarray.h>
#include <wx/ffile.h>
#include <netlist.h>
#include <netlist_exporter_generic.h>
#include <sch_sheet.h>
#include <invoke_sch_dialog.h>
#include <dialog_helpers.h>
#include <dialog_bom_base.h>
@ -77,33 +75,29 @@ WX_DEFINE_OBJARRAY( BOM_PLUGIN_ARRAY )
/**
* Class BOM_CFG_READER_PARSER
* holds data and functions pertinent to parsing a S-expression file
* for a WORKSHEET_LAYOUT.
*/
class BOM_CFG_READER_PARSER : public DIALOG_BOM_CFG_LEXER
class BOM_CFG_PARSER : public DIALOG_BOM_CFG_LEXER
{
BOM_PLUGIN_ARRAY* m_pluginsList;
public:
BOM_CFG_READER_PARSER( BOM_PLUGIN_ARRAY* aPlugins,
const char* aData, const wxString& aSource );
BOM_CFG_PARSER( BOM_PLUGIN_ARRAY* aPlugins, const char* aData, const wxString& aSource );
void Parse();
private:
void parsePlugin();
};
// PCB_PLOT_PARAMS_PARSER
BOM_CFG_READER_PARSER::BOM_CFG_READER_PARSER( BOM_PLUGIN_ARRAY* aPlugins,
const char* aLine,
const wxString& aSource ) :
BOM_CFG_PARSER::BOM_CFG_PARSER( BOM_PLUGIN_ARRAY* aPlugins, const char* aLine,
const wxString& aSource ) :
DIALOG_BOM_CFG_LEXER( aLine, aSource )
{
m_pluginsList = aPlugins;
}
void BOM_CFG_READER_PARSER::Parse()
void BOM_CFG_PARSER::Parse()
{
T token;
@ -131,7 +125,7 @@ void BOM_CFG_READER_PARSER::Parse()
}
}
void BOM_CFG_READER_PARSER::parsePlugin()
void BOM_CFG_PARSER::parsePlugin()
{
BOM_PLUGIN plugin;
@ -171,6 +165,7 @@ void BOM_CFG_READER_PARSER::parsePlugin()
m_pluginsList->Add( plugin );
}
// The main dialog frame to run scripts to build bom
class DIALOG_BOM : public DIALOG_BOM_BASE
{
@ -178,16 +173,15 @@ private:
SCH_EDIT_FRAME* m_parent;
BOM_PLUGIN_ARRAY m_plugins;
wxConfigBase* m_config; // to store the "plugins"
bool m_initialized;
public:
// Constructor and destructor
DIALOG_BOM( SCH_EDIT_FRAME* parent );
~DIALOG_BOM();
private:
void OnPluginSelected( wxCommandEvent& event ) override;
void OnRunPlugin( wxCommandEvent& event ) override;
void OnCancelClick( wxCommandEvent& event ) override;
void OnHelp( wxCommandEvent& event ) override;
void OnAddPlugin( wxCommandEvent& event ) override;
void OnRemovePlugin( wxCommandEvent& event ) override;
@ -195,30 +189,23 @@ private:
void OnCommandLineEdited( wxCommandEvent& event ) override;
void OnNameEdited( wxCommandEvent& event ) override;
void OnShowConsoleChanged( wxCommandEvent& event ) override;
void OnIdle( wxIdleEvent& event ) override;
void pluginInit();
void installPluginsList();
/**
* @return the Plugin filename from a command line
* @param aCommand = the command line
*/
wxString getPluginFileName( const wxString& aCommand );
/**
* display (when exists) the text found between the keyword "@package"
* (compatible with doxygen comments)
* and the end of comment block (""" in python", --> in xml)
/*
* Display the text found between the keyword @package (compatible with doxygen comments)
* and the end of comment block (""" in python, --> in xml)
*/
void displayPluginInfo( FILE * aFile, const wxString& aFilename );
/**
* Browse plugin files, and set m_CommandStringCtrl field
* @return a command line ro run the plugin
*/
wxString choosePlugin();
};
// Create and show DIALOG_BOM.
int InvokeDialogCreateBOM( SCH_EDIT_FRAME* aCaller )
{
@ -226,17 +213,31 @@ int InvokeDialogCreateBOM( SCH_EDIT_FRAME* aCaller )
return dlg.ShowModal();
}
DIALOG_BOM::DIALOG_BOM( SCH_EDIT_FRAME* parent ) :
DIALOG_BOM_BASE( parent )
{
m_parent = parent;
m_config = Kiface().KifaceSettings();
m_initialized = false;
m_buttonAddPlugin->SetBitmap( KiBitmap( small_plus_xpm ) );
m_buttonDelPlugin->SetBitmap( KiBitmap( trash_xpm ) );
m_buttonEdit->SetBitmap( KiBitmap( small_edit_xpm ) );
installPluginsList();
#ifndef __WINDOWS__
m_checkBoxShowConsole->Show( false );
#endif
m_sdbSizer1OK->SetLabel( _( "Generate" ) );
m_sdbSizer1Cancel->SetLabel( _( "Close" ) );
m_sdbSizer1->Layout();
SetInitialFocus( m_lbPlugins );
m_sdbSizer1OK->SetDefault();
// Now all widgets have the size fixed, call FinishDialogSettings
FinishDialogSettings();
}
@ -244,8 +245,7 @@ DIALOG_BOM::DIALOG_BOM( SCH_EDIT_FRAME* parent ) :
DIALOG_BOM::~DIALOG_BOM()
{
// Save the plugin descriptions in config.
// the config stores only one string.
// plugins are saved inside a S expr:
// The config stores only one string, so we save the plugins inside a S-expr:
// ( plugins
// ( plugin "plugin name 1" (cmd "command line 1") )
// ( plugin "plugin name 2" (cmd "command line 2") (opts "option1") (opts "option2") )
@ -281,9 +281,7 @@ DIALOG_BOM::~DIALOG_BOM()
}
/* 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()
{
wxString list, active_plugin_name;
@ -292,8 +290,7 @@ void DIALOG_BOM::installPluginsList()
if( !list.IsEmpty() )
{
BOM_CFG_READER_PARSER cfg_parser( &m_plugins, TO_UTF8( list ),
wxT( "plugins" ) );
BOM_CFG_PARSER cfg_parser( &m_plugins, TO_UTF8( list ), wxT( "plugins" ) );
try
{
cfg_parser.Parse();
@ -316,12 +313,13 @@ void DIALOG_BOM::installPluginsList()
pluginInit();
}
void DIALOG_BOM::OnPluginSelected( wxCommandEvent& event )
{
pluginInit();
}
#include <wx/ffile.h>
void DIALOG_BOM::pluginInit()
{
int ii = m_lbPlugins->GetSelection();
@ -350,11 +348,9 @@ void DIALOG_BOM::pluginInit()
FILE* pluginFile = wxFopen( pluginName, "rt" );
if( pluginFile == NULL )
if( !pluginFile )
{
wxString msg;
msg.Printf( _( "Failed to open file \"%s\"" ), GetChars( pluginName ) );
DisplayError( this, msg );
DisplayError( this, wxString::Format( _( "Failed to open file \"%s\"." ), pluginName ) );
return;
}
@ -366,9 +362,8 @@ void DIALOG_BOM::displayPluginInfo( FILE * aFile, const wxString& aFilename )
{
m_Messages->Clear();
// display (when exists) the text found between the keyword "@package"
// (compatible with doxygen comments)
// and the end of comment block (""" in python", --> in xml)
// Display the text found between the keyword @package (compatible with doxygen comments)
// and the end of comment block (""" in python, --> in xml)
wxString data;
wxFFile fdata( aFile ); // dtor will close the file
@ -377,18 +372,19 @@ void DIALOG_BOM::displayPluginInfo( FILE * aFile, const wxString& aFilename )
return;
wxString header( wxT( "@package" ) );
wxString endsection( wxT( "-->" ) ); // For xml
wxString endsection;
wxFileName fn( aFilename );
if( fn.GetExt().IsSameAs( wxT("py"), false ) )
if( fn.GetExt().IsSameAs( wxT( "py" ), false ) )
endsection = wxT( "\"\"\"" );
else if( !fn.GetExt().IsSameAs( wxT("xsl"), false ) )
// If this is not a python file, we know nothing about file
// and the info cannot be found
else if( fn.GetExt().IsSameAs( wxT( "xsl" ), false ) )
endsection = wxT( "-->" );
else
// If this is not a python or xsl file, then we don't know how to find the info
return;
// Extract substring between @package and """
// Extract substring between @package and endsection
int strstart = data.Find( header );
if( strstart == wxNOT_FOUND )
@ -405,22 +401,19 @@ void DIALOG_BOM::displayPluginInfo( FILE * aFile, const wxString& aFilename )
strstart++;
m_Messages->SetValue( data.SubString( strstart, strend-1 ) );
m_Messages->SetSelection( 0, 0 );
}
/**
* Function RunPlugin
* run the plugin command line
*/
// run the plugin command line
void DIALOG_BOM::OnRunPlugin( wxCommandEvent& event )
{
wxFileName fn;
// Calculate the xml netlist filename
fn = g_RootSheet->GetScreen()->GetFileName();
wxFileName fn = g_RootSheet->GetScreen()->GetFileName();
fn.SetPath( wxPathOnly( Prj().GetProjectFullName() ) );
fn.ClearExt();
wxString fullfilename = fn.GetFullPath();
m_parent->ClearMsgPanel();
@ -439,16 +432,6 @@ void DIALOG_BOM::OnRunPlugin( wxCommandEvent& event )
}
void DIALOG_BOM::OnCancelClick( wxCommandEvent& event )
{
EndModal( wxID_CANCEL );
}
/**
* Function OnRemovePlugin
* Remove a plugin from the list
*/
void DIALOG_BOM::OnRemovePlugin( wxCommandEvent& event )
{
int ii = m_lbPlugins->GetSelection();
@ -461,19 +444,13 @@ void DIALOG_BOM::OnRemovePlugin( wxCommandEvent& event )
m_plugins.RemoveAt( ii );
// Select the next item, if exists
if( (int)m_lbPlugins->GetCount() >= ii )
ii = m_lbPlugins->GetCount() - 1;
if( ii >= 0 )
m_lbPlugins->SetSelection( ii );
if( m_lbPlugins->GetCount() )
m_lbPlugins->SetSelection( std::min( ii, (int) m_lbPlugins->GetCount() - 1 ) );
pluginInit();
}
/**
* Function OnAddPlugin
* Add a new panel for a new netlist plugin
*/
void DIALOG_BOM::OnAddPlugin( wxCommandEvent& event )
{
wxString cmdLine = choosePlugin();
@ -484,10 +461,7 @@ void DIALOG_BOM::OnAddPlugin( wxCommandEvent& event )
// Creates a new plugin entry
wxFileName fn( getPluginFileName( cmdLine ) );
wxString defaultName = fn.GetName();
wxString name = wxGetTextFromUser( _("Plugin name in plugin list") ,
_("Plugin name"), defaultName );
wxString name = wxGetTextFromUser( _("Plugin nickname:" ), _("Add Plugin"), fn.GetName(), this );
if( name.IsEmpty() )
return;
@ -497,7 +471,7 @@ void DIALOG_BOM::OnAddPlugin( wxCommandEvent& event )
{
if( name == m_plugins.Item( ii ).Name )
{
wxMessageBox( _("This name already exists. Abort") );
wxMessageBox( wxString::Format( _("Nickname \"%s\" already in use."), name ) );
return;
}
}
@ -506,7 +480,6 @@ void DIALOG_BOM::OnAddPlugin( wxCommandEvent& event )
newPlugin.Name = name;
newPlugin.Command = wxEmptyString;
m_plugins.Add( newPlugin );
m_lbPlugins->SetSelection( m_lbPlugins->GetCount() - 1 );
m_lbPlugins->Append( name );
m_lbPlugins->SetSelection( m_lbPlugins->GetCount() - 1 );
m_textCtrlCommand->SetValue( cmdLine );
@ -639,23 +612,24 @@ wxString DIALOG_BOM::getPluginFileName( const wxString& aCommand )
void DIALOG_BOM::OnEditPlugin( wxCommandEvent& event )
{
wxString pluginName = getPluginFileName( m_textCtrlCommand->GetValue() );
wxString pluginName = getPluginFileName( m_textCtrlCommand->GetValue() );
if( pluginName.Length() <= 2 ) // if name != ""
{
wxMessageBox( _("Plugin file name not found. Cannot edit plugin file") );
wxMessageBox( _("Plugin file name not found.") );
return;
}
AddDelimiterString( pluginName );
wxString editorname = Pgm().GetEditorName();
wxString editorname = Pgm().GetEditorName();
if( !editorname.IsEmpty() )
ExecuteFile( this, editorname, pluginName );
else
wxMessageBox( _("No text editor selected in KiCad. Please choose it") );
wxMessageBox( _( "No text editor selected in KiCad. Please choose one." ) );
}
void DIALOG_BOM::OnHelp( wxCommandEvent& event )
{
HTML_MESSAGE_BOX help_Dlg( this, _("Bom Generation Help") );
@ -666,6 +640,7 @@ void DIALOG_BOM::OnHelp( wxCommandEvent& event )
help_Dlg.ShowModal();
}
void DIALOG_BOM::OnCommandLineEdited( wxCommandEvent& event )
{
int ii = m_lbPlugins->GetSelection();
@ -676,6 +651,7 @@ void DIALOG_BOM::OnCommandLineEdited( wxCommandEvent& event )
m_plugins.Item( ii ).Command = m_textCtrlCommand->GetValue();
}
void DIALOG_BOM::OnNameEdited( wxCommandEvent& event )
{
int ii = m_lbPlugins->GetSelection();
@ -706,3 +682,15 @@ void DIALOG_BOM::OnShowConsoleChanged( wxCommandEvent& event )
}
#endif
}
void DIALOG_BOM::OnIdle( wxIdleEvent& event )
{
// On some platforms we initialize wxTextCtrls to all-selected, but we don't want that
// for the messages text box.
if( !m_initialized )
{
m_Messages->SetSelection( 0, 0 );
m_initialized = true;
}
}

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 19 2018)
// C++ code generated with wxFormBuilder (version Dec 30 2017)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@ -9,19 +9,6 @@
///////////////////////////////////////////////////////////////////////////
BEGIN_EVENT_TABLE( DIALOG_BOM_BASE, DIALOG_SHIM )
EVT_LISTBOX( wxID_ANY, DIALOG_BOM_BASE::_wxFB_OnPluginSelected )
EVT_TEXT( IN_NAMELINE, DIALOG_BOM_BASE::_wxFB_OnNameEdited )
EVT_BUTTON( ID_CREATE_BOM, DIALOG_BOM_BASE::_wxFB_OnRunPlugin )
EVT_BUTTON( wxID_CANCEL, DIALOG_BOM_BASE::_wxFB_OnCancelClick )
EVT_BUTTON( ID_HELP, DIALOG_BOM_BASE::_wxFB_OnHelp )
EVT_BUTTON( ID_ADD_PLUGIN, DIALOG_BOM_BASE::_wxFB_OnAddPlugin )
EVT_BUTTON( ID_REMOVEL_PLUGIN, DIALOG_BOM_BASE::_wxFB_OnRemovePlugin )
EVT_BUTTON( wxID_ANY, DIALOG_BOM_BASE::_wxFB_OnEditPlugin )
EVT_TEXT( ID_CMDLINE, DIALOG_BOM_BASE::_wxFB_OnCommandLineEdited )
EVT_CHECKBOX( wxID_ANY, DIALOG_BOM_BASE::_wxFB_OnShowConsoleChanged )
END_EVENT_TABLE()
DIALOG_BOM_BASE::DIALOG_BOM_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( wxSize( -1,-1 ), wxDefaultSize );
@ -35,53 +22,59 @@ DIALOG_BOM_BASE::DIALOG_BOM_BASE( wxWindow* parent, wxWindowID id, const wxStrin
wxBoxSizer* bLeftSizer;
bLeftSizer = new wxBoxSizer( wxVERTICAL );
m_staticTextPluginTitle = new wxStaticText( this, wxID_ANY, _("Plugins:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextPluginTitle = new wxStaticText( this, wxID_ANY, _("BOM plugins:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextPluginTitle->Wrap( -1 );
bLeftSizer->Add( m_staticTextPluginTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
bLeftSizer->Add( m_staticTextPluginTitle, 0, wxTOP, 5 );
m_lbPlugins = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
bLeftSizer->Add( m_lbPlugins, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_lbPlugins->SetMinSize( wxSize( 250,-1 ) );
m_staticTextName = new wxStaticText( this, wxID_ANY, _("Name:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextName->Wrap( -1 );
bLeftSizer->Add( m_staticTextName, 0, wxRIGHT|wxLEFT, 5 );
m_textCtrlName = new wxTextCtrl( this, IN_NAMELINE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
bLeftSizer->Add( m_textCtrlName, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
bLeftSizer->Add( m_lbPlugins, 1, wxEXPAND, 5 );
bUpperSizer->Add( bLeftSizer, 1, wxEXPAND, 5 );
bUpperSizer->Add( bLeftSizer, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 );
wxBoxSizer* bRightSizer;
bRightSizer = new wxBoxSizer( wxVERTICAL );
m_buttonNetlist = new wxButton( this, ID_CREATE_BOM, _("Generate"), wxDefaultPosition, wxDefaultSize, 0 );
m_buttonNetlist->SetDefault();
bRightSizer->Add( m_buttonNetlist, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bNameSizer;
bNameSizer = new wxBoxSizer( wxHORIZONTAL );
m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
bRightSizer->Add( m_buttonCancel, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
m_staticTextName = new wxStaticText( this, wxID_ANY, _("Plugin nickname:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextName->Wrap( -1 );
bNameSizer->Add( m_staticTextName, 0, wxALIGN_CENTER_VERTICAL, 5 );
m_buttonHelp = new wxButton( this, ID_HELP, _("Help"), wxDefaultPosition, wxDefaultSize, 0 );
bRightSizer->Add( m_buttonHelp, 0, wxALL|wxEXPAND, 5 );
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bRightSizer->Add( m_staticline2, 0, wxEXPAND|wxALL, 5 );
m_buttonAddPlugin = new wxButton( this, ID_ADD_PLUGIN, _("Add Plugin"), wxDefaultPosition, wxDefaultSize, 0 );
bRightSizer->Add( m_buttonAddPlugin, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
m_buttonDelPlugin = new wxButton( this, ID_REMOVEL_PLUGIN, _("Remove Plugin"), wxDefaultPosition, wxDefaultSize, 0 );
bRightSizer->Add( m_buttonDelPlugin, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
m_buttonEdit = new wxButton( this, wxID_ANY, _("Edit Plugin File"), wxDefaultPosition, wxDefaultSize, 0 );
bRightSizer->Add( m_buttonEdit, 0, wxALL|wxEXPAND, 5 );
m_textCtrlName = new wxTextCtrl( this, IN_NAMELINE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
bNameSizer->Add( m_textCtrlName, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
bUpperSizer->Add( bRightSizer, 0, wxALIGN_CENTER_VERTICAL, 5 );
bRightSizer->Add( bNameSizer, 0, wxEXPAND|wxTOP|wxLEFT, 6 );
m_Messages = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
m_Messages->SetMinSize( wxSize( 300,200 ) );
bRightSizer->Add( m_Messages, 1, wxEXPAND|wxLEFT, 5 );
bMainSizer->Add( bUpperSizer, 2, wxEXPAND, 5 );
bUpperSizer->Add( bRightSizer, 2, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxRIGHT, 10 );
bMainSizer->Add( bUpperSizer, 2, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bPluginButtons;
bPluginButtons = new wxBoxSizer( wxHORIZONTAL );
m_buttonAddPlugin = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), wxBU_AUTODRAW );
bPluginButtons->Add( m_buttonAddPlugin, 0, wxLEFT, 5 );
m_buttonDelPlugin = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), wxBU_AUTODRAW );
bPluginButtons->Add( m_buttonDelPlugin, 0, wxRIGHT, 5 );
m_buttonEdit = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), wxBU_AUTODRAW );
bPluginButtons->Add( m_buttonEdit, 0, wxRIGHT|wxLEFT, 5 );
bMainSizer->Add( bPluginButtons, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
wxBoxSizer* bbottomSizer;
bbottomSizer = new wxBoxSizer( wxVERTICAL );
@ -99,17 +92,24 @@ DIALOG_BOM_BASE::DIALOG_BOM_BASE( wxWindow* parent, wxWindowID id, const wxStrin
m_checkBoxShowConsole->SetValue(true);
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, wxALL, 5 );
bbottomSizer->Add( m_checkBoxShowConsole, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
bMainSizer->Add( bbottomSizer, 0, wxEXPAND, 5 );
bMainSizer->Add( bbottomSizer, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
m_staticTextInfo = new wxStaticText( this, wxID_ANY, _("Plugin Information:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextInfo->Wrap( -1 );
bMainSizer->Add( m_staticTextInfo, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bMainSizer->Add( m_staticline2, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
m_Messages = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
bMainSizer->Add( m_Messages, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_sdbSizer1 = new wxStdDialogButtonSizer();
m_sdbSizer1OK = new wxButton( this, wxID_OK );
m_sdbSizer1->AddButton( m_sdbSizer1OK );
m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
m_sdbSizer1Help = new wxButton( this, wxID_HELP );
m_sdbSizer1->AddButton( m_sdbSizer1Help );
m_sdbSizer1->Realize();
bMainSizer->Add( m_sdbSizer1, 0, wxEXPAND|wxALL, 5 );
this->SetSizer( bMainSizer );
@ -117,6 +117,18 @@ DIALOG_BOM_BASE::DIALOG_BOM_BASE( wxWindow* parent, wxWindowID id, const wxStrin
bMainSizer->Fit( this );
this->Centre( wxBOTH );
// Connect Events
this->Connect( wxEVT_IDLE, wxIdleEventHandler( DIALOG_BOM_BASE::OnIdle ) );
m_lbPlugins->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_BOM_BASE::OnPluginSelected ), 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_buttonDelPlugin->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnRemovePlugin ), NULL, this );
m_buttonEdit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnEditPlugin ), 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_sdbSizer1Help->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnHelp ), NULL, this );
m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOM_BASE::OnRunPlugin ), NULL, this );
}
DIALOG_BOM_BASE::~DIALOG_BOM_BASE()

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 19 2018)
// C++ code generated with wxFormBuilder (version Dec 30 2017)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@ -19,11 +19,15 @@
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/listbox.h>
#include <wx/textctrl.h>
#include <wx/sizer.h>
#include <wx/textctrl.h>
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/icon.h>
#include <wx/bmpbuttn.h>
#include <wx/button.h>
#include <wx/statline.h>
#include <wx/checkbox.h>
#include <wx/statline.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
@ -33,30 +37,12 @@
///////////////////////////////////////////////////////////////////////////////
class DIALOG_BOM_BASE : public DIALOG_SHIM
{
DECLARE_EVENT_TABLE()
private:
// Private event handlers
void _wxFB_OnPluginSelected( wxCommandEvent& event ){ OnPluginSelected( event ); }
void _wxFB_OnNameEdited( wxCommandEvent& event ){ OnNameEdited( event ); }
void _wxFB_OnRunPlugin( wxCommandEvent& event ){ OnRunPlugin( event ); }
void _wxFB_OnCancelClick( wxCommandEvent& event ){ OnCancelClick( event ); }
void _wxFB_OnHelp( wxCommandEvent& event ){ OnHelp( event ); }
void _wxFB_OnAddPlugin( wxCommandEvent& event ){ OnAddPlugin( event ); }
void _wxFB_OnRemovePlugin( wxCommandEvent& event ){ OnRemovePlugin( event ); }
void _wxFB_OnEditPlugin( wxCommandEvent& event ){ OnEditPlugin( event ); }
void _wxFB_OnCommandLineEdited( wxCommandEvent& event ){ OnCommandLineEdited( event ); }
void _wxFB_OnShowConsoleChanged( wxCommandEvent& event ){ OnShowConsoleChanged( event ); }
protected:
enum
{
IN_NAMELINE = 1000,
ID_CREATE_BOM,
ID_HELP,
ID_ADD_PLUGIN,
ID_REMOVEL_PLUGIN,
ID_CMDLINE
};
@ -64,30 +50,30 @@ class DIALOG_BOM_BASE : public DIALOG_SHIM
wxListBox* m_lbPlugins;
wxStaticText* m_staticTextName;
wxTextCtrl* m_textCtrlName;
wxButton* m_buttonNetlist;
wxButton* m_buttonCancel;
wxButton* m_buttonHelp;
wxStaticLine* m_staticline2;
wxButton* m_buttonAddPlugin;
wxButton* m_buttonDelPlugin;
wxButton* m_buttonEdit;
wxTextCtrl* m_Messages;
wxBitmapButton* m_buttonAddPlugin;
wxBitmapButton* m_buttonDelPlugin;
wxBitmapButton* m_buttonEdit;
wxStaticText* m_staticTextCmd;
wxTextCtrl* m_textCtrlCommand;
wxCheckBox* m_checkBoxShowConsole;
wxStaticText* m_staticTextInfo;
wxTextCtrl* m_Messages;
wxStaticLine* m_staticline2;
wxStdDialogButtonSizer* m_sdbSizer1;
wxButton* m_sdbSizer1OK;
wxButton* m_sdbSizer1Cancel;
wxButton* m_sdbSizer1Help;
// Virtual event handlers, overide them in your derived class
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnPluginSelected( wxCommandEvent& event ) { event.Skip(); }
virtual void OnNameEdited( wxCommandEvent& event ) { event.Skip(); }
virtual void OnRunPlugin( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnHelp( wxCommandEvent& event ) { event.Skip(); }
virtual void OnAddPlugin( wxCommandEvent& event ) { event.Skip(); }
virtual void OnRemovePlugin( wxCommandEvent& event ) { event.Skip(); }
virtual void OnEditPlugin( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCommandLineEdited( wxCommandEvent& event ) { event.Skip(); }
virtual void OnShowConsoleChanged( wxCommandEvent& event ) { event.Skip(); }
virtual void OnHelp( wxCommandEvent& event ) { event.Skip(); }
virtual void OnRunPlugin( wxCommandEvent& event ) { event.Skip(); }
public:

View File

@ -500,6 +500,7 @@ EXTERN_BITMAP( show_zone_xpm )
EXTERN_BITMAP( show_zone_disable_xpm )
EXTERN_BITMAP( show_zone_outline_only_xpm )
EXTERN_BITMAP( small_down_xpm )
EXTERN_BITMAP( small_edit_xpm )
EXTERN_BITMAP( small_plus_xpm )
EXTERN_BITMAP( small_up_xpm )
EXTERN_BITMAP( spreadsheet_xpm )