Converted STEP exporter dialog to use WX_HTML_REPORT_PANEL

This commit is contained in:
Maciej Suminski 2018-03-19 15:36:21 +01:00
parent eebabf165b
commit 5ba3e43d31
4 changed files with 475 additions and 205 deletions

View File

@ -32,11 +32,13 @@
#include "pcb_edit_frame.h"
#include "kiface_i.h"
#include "confirm.h"
#include "reporter.h"
#include "pcbnew.h"
#include "class_board.h"
#include "dialog_export_step_base.h"
#include <widgets/text_ctrl_eval.h>
#include <wx_html_report_panel.h>
#define OPTKEY_STEP_ORIGIN_OPT "STEP_Origin_Opt"
#define OPTKEY_STEP_UORG_UNITS "STEP_UserOriginUnits"
@ -66,38 +68,20 @@ private:
int m_OrgUnits; // remember last units for User Origin
double m_XOrg; // remember last User Origin X value
double m_YOrg; // remember last User Origin Y value
wxString m_boardPath; // path to the exported board file
protected:
void onUpdateUnits( wxUpdateUIEvent& aEvent ) override;
void onUpdateXPos( wxUpdateUIEvent& aEvent ) override;
void onUpdateYPos( wxUpdateUIEvent& aEvent ) override;
void onExportButton( wxCommandEvent& aEvent ) override;
public:
DIALOG_EXPORT_STEP( PCB_EDIT_FRAME* parent );
~DIALOG_EXPORT_STEP()
{
GetOriginOption(); // Update m_STEP_org_opt member.
m_config->Write( OPTKEY_STEP_ORIGIN_OPT, (int)m_STEP_org_opt );
m_config->Write( OPTKEY_STEP_NOVIRT, m_cbRemoveVirtual->GetValue() );
m_config->Write( OPTKEY_STEP_UORG_UNITS, m_STEP_OrgUnitChoice->GetSelection() );
m_config->Write( OPTKEY_STEP_UORG_X, m_STEP_Xorg->GetValue() );
m_config->Write( OPTKEY_STEP_UORG_Y, m_STEP_Yorg->GetValue() );
}
wxFilePickerCtrl* FilePicker()
{
return m_filePickerSTEP;
}
int GetOrgUnitsChoice()
int GetOrgUnitsChoice() const
{
return m_STEP_OrgUnitChoice->GetSelection();
}
double GetXOrg()
double GetXOrg() const
{
return DoubleValueFromString( UNSCALED_UNITS, m_STEP_Xorg->GetValue() );
}
@ -114,15 +98,33 @@ public:
return m_cbRemoveVirtual->GetValue();
}
bool TransferDataFromWindow() override;
public:
DIALOG_EXPORT_STEP( PCB_EDIT_FRAME* aParent, const wxString& aBoardPath );
~DIALOG_EXPORT_STEP()
{
GetOriginOption(); // Update m_STEP_org_opt member.
m_config->Write( OPTKEY_STEP_ORIGIN_OPT, (int)m_STEP_org_opt );
m_config->Write( OPTKEY_STEP_NOVIRT, m_cbRemoveVirtual->GetValue() );
m_config->Write( OPTKEY_STEP_UORG_UNITS, m_STEP_OrgUnitChoice->GetSelection() );
m_config->Write( OPTKEY_STEP_UORG_X, m_STEP_Xorg->GetValue() );
m_config->Write( OPTKEY_STEP_UORG_Y, m_STEP_Yorg->GetValue() );
}
};
DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP( PCB_EDIT_FRAME* parent ) :
DIALOG_EXPORT_STEP_BASE( parent )
DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP( PCB_EDIT_FRAME* aParent, const wxString& aBoardPath ) :
DIALOG_EXPORT_STEP_BASE( aParent )
{
m_parent = parent;
m_parent = aParent;
m_boardPath = aBoardPath;
m_config = Kiface().KifaceSettings();
// Build default output file name
wxFileName brdFile = m_parent->GetBoard()->GetFileName();
brdFile.SetExt( "stp" );
m_filePickerSTEP->SetPath( brdFile.GetFullPath() );
SetFocus();
m_STEP_org_opt = STEP_ORG_0;;
@ -154,35 +156,11 @@ DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP( PCB_EDIT_FRAME* parent ) :
tmpStr << m_YOrg;
m_STEP_Yorg->SetValue( tmpStr );
m_sdbSizerOK->SetDefault();
// Now all widgets have the size fixed, call FinishDialogSettings
FinishDialogSettings();
}
bool DIALOG_EXPORT_STEP::TransferDataFromWindow()
{
if( !wxDialog::TransferDataFromWindow() )
return false;
wxFileName fn = m_filePickerSTEP->GetFileName();
if( fn.FileExists() )
{
wxString msg;
msg.Printf( _( "File: %s\n"
"already exists. Do you want overwrite this file?" ),
fn.GetFullPath().GetData() );
if( wxMessageBox( msg, _( "STEP Export" ), wxYES_NO | wxICON_QUESTION, this ) == wxNO )
return false;
}
return true;
}
DIALOG_EXPORT_STEP::STEP_ORG_OPT DIALOG_EXPORT_STEP::GetOriginOption()
{
m_STEP_org_opt = STEP_ORG_0;
@ -202,9 +180,7 @@ DIALOG_EXPORT_STEP::STEP_ORG_OPT DIALOG_EXPORT_STEP::GetOriginOption()
void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
{
wxFileName brdFile = GetBoard()->GetFileName();
wxString brdName;
if( GetScreen()->IsModify() || brdFile.GetFullPath().empty() )
{
@ -215,106 +191,12 @@ void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
return;
}
brdFile = GetBoard()->GetFileName();
brdName = GetAutoSaveFilePrefix();
brdName.append( brdFile.GetName() );
brdFile.SetName( brdName );
// Use auto-saved board for export
brdFile.SetName( GetAutoSaveFilePrefix() + brdFile.GetName() );
}
brdName = "\"";
brdName.Append( brdFile.GetFullPath() );
brdName.Append( "\"" );
// Build default output file name
brdFile = GetBoard()->GetFileName();
wxString brdExt = brdFile.GetExt();
brdFile.SetExt( "stp" );
DIALOG_EXPORT_STEP dlg( this );
dlg.FilePicker()->SetPath( brdFile.GetFullPath() );
if ( dlg.ShowModal() != wxID_OK )
return;
wxString outputFile = dlg.FilePicker()->GetPath();
brdFile.SetExt( brdExt );
outputFile.Prepend( "\"" );
outputFile.Append( "\"" );
DIALOG_EXPORT_STEP::STEP_ORG_OPT orgOpt = dlg.GetOriginOption();
double xOrg = 0.0;
double yOrg = 0.0;
wxFileName appK2S( wxStandardPaths::Get().GetExecutablePath() );
appK2S.SetName( "kicad2step" );
wxString cmdK2S = "\"";
cmdK2S.Append( appK2S.GetFullPath() );
cmdK2S.Append( "\"" );
if( dlg.GetNoVirtOption() )
cmdK2S.Append( " --no-virtual" );
switch( orgOpt )
{
case DIALOG_EXPORT_STEP::STEP_ORG_0:
break;
case DIALOG_EXPORT_STEP::STEP_ORG_PLOT_AXIS:
cmdK2S.Append( " --drill-origin" );
break;
case DIALOG_EXPORT_STEP::STEP_ORG_GRID_AXIS:
cmdK2S.Append( " --grid-origin" );
break;
case DIALOG_EXPORT_STEP::STEP_ORG_USER:
{
xOrg = dlg.GetXOrg();
yOrg = dlg.GetYOrg();
if( dlg.GetOrgUnitsChoice() == 1 )
{
// selected reference unit is in inches, and STEP units are mm
xOrg *= 25.4;
yOrg *= 25.4;
}
LOCALE_IO dummy;
cmdK2S.Append( wxString::Format( " --user-origin %.6fx%.6f", xOrg, yOrg ) );
}
break;
case DIALOG_EXPORT_STEP::STEP_ORG_BOARD_CENTER:
{
EDA_RECT bbox = GetBoard()->ComputeBoundingBox( true );
xOrg = Iu2Millimeter( bbox.GetCenter().x );
yOrg = Iu2Millimeter( bbox.GetCenter().y );
LOCALE_IO dummy;
cmdK2S.Append( wxString::Format( " --user-origin %.6fx%.6f", xOrg, yOrg ) );
}
break;
}
cmdK2S.Append( " -f -o " );
cmdK2S.Append( outputFile );
cmdK2S.Append( " " );
cmdK2S.Append( brdName );
int result = 0;
do
{
wxBusyCursor dummy;
result = wxExecute( cmdK2S, wxEXEC_SYNC | wxEXEC_HIDE_CONSOLE );
} while( 0 );
if( result )
{
DisplayErrorMessage( this, _( "Unable to create STEP file. Check that the board has a "
"valid outline and models." ), cmdK2S );
}
DIALOG_EXPORT_STEP dlg( this, brdFile.GetFullPath() );
dlg.ShowModal();
}
@ -334,3 +216,123 @@ void DIALOG_EXPORT_STEP::onUpdateYPos( wxUpdateUIEvent& aEvent )
{
aEvent.Enable( m_rbUserDefinedOrigin->GetValue() );
}
void DIALOG_EXPORT_STEP::onExportButton( wxCommandEvent& aEvent )
{
wxFileName fn = m_filePickerSTEP->GetFileName();
if( fn.FileExists() )
{
wxString msg;
msg.Printf( _( "File '%s' already exists. Do you want overwrite this file?" ),
fn.GetFullPath().GetData() );
if( wxMessageBox( msg, _( "STEP Export" ), wxYES_NO | wxICON_QUESTION, this ) == wxNO )
return;
}
DIALOG_EXPORT_STEP::STEP_ORG_OPT orgOpt = GetOriginOption();
double xOrg = 0.0;
double yOrg = 0.0;
wxFileName appK2S( wxStandardPaths::Get().GetExecutablePath() );
appK2S.SetName( "kicad2step" );
wxString cmdK2S = "\"";
cmdK2S.Append( appK2S.GetFullPath() );
cmdK2S.Append( "\"" );
if( GetNoVirtOption() )
cmdK2S.Append( " --no-virtual" );
switch( orgOpt )
{
case DIALOG_EXPORT_STEP::STEP_ORG_0:
break;
case DIALOG_EXPORT_STEP::STEP_ORG_PLOT_AXIS:
cmdK2S.Append( " --drill-origin" );
break;
case DIALOG_EXPORT_STEP::STEP_ORG_GRID_AXIS:
cmdK2S.Append( " --grid-origin" );
break;
case DIALOG_EXPORT_STEP::STEP_ORG_USER:
{
xOrg = GetXOrg();
yOrg = GetYOrg();
if( GetOrgUnitsChoice() == 1 )
{
// selected reference unit is in inches, and STEP units are mm
xOrg *= 25.4;
yOrg *= 25.4;
}
LOCALE_IO dummy;
cmdK2S.Append( wxString::Format( " --user-origin %.6fx%.6f", xOrg, yOrg ) );
}
break;
case DIALOG_EXPORT_STEP::STEP_ORG_BOARD_CENTER:
{
EDA_RECT bbox = m_parent->GetBoard()->ComputeBoundingBox( true );
xOrg = Iu2Millimeter( bbox.GetCenter().x );
yOrg = Iu2Millimeter( bbox.GetCenter().y );
LOCALE_IO dummy;
cmdK2S.Append( wxString::Format( " --user-origin %.6fx%.6f", xOrg, yOrg ) );
}
break;
}
cmdK2S.Append( " -f -o " );
cmdK2S.Append( wxString::Format("\"%s\"", m_filePickerSTEP->GetPath() ) ); // input file path
cmdK2S.Append( " " );
cmdK2S.Append( wxString::Format("\"%s\"", m_boardPath ) ); // output file path
int result = 0;
bool success = false;
wxArrayString output, errors;
REPORTER& reporter = m_messagesPanel->Reporter();
reporter.Report( wxString::Format( _( "Executing '%s'" ), cmdK2S ), REPORTER::RPT_ACTION );
{
wxBusyCursor dummy;
result = wxExecute( cmdK2S, output, errors, wxEXEC_SYNC | wxEXEC_HIDE_CONSOLE );
}
// Check the output log for an indication of success,
// the value returned by wxExecute is not conclusive
for( auto& l : output )
{
if( l.Contains( "Done" ) )
{
success = true;
break;
}
}
for( auto& err : errors )
reporter.Report( err, REPORTER::RPT_WARNING );
if( result ) // Any troubles?
{
if( !success )
{
reporter.Report( _( "Unable to create STEP file. Check that the board has a "
"valid outline and models." ), REPORTER::RPT_ERROR );
}
else
{
reporter.Report( _( "STEP file has been created, but there are warnings." ),
REPORTER::RPT_INFO );
}
}
else
{
reporter.Report( _( "STEP file has been created succesfully." ), REPORTER::RPT_INFO );
}
}

View File

@ -1,11 +1,12 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 22 2017)
// C++ code generated with wxFormBuilder (version Oct 17 2016)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "widgets/text_ctrl_eval.h"
#include "wx_html_report_panel.h"
#include "dialog_export_step_base.h"
@ -153,17 +154,27 @@ DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID i
bSizerSTEPFile->Add( bSizer2, 1, wxEXPAND, 5 );
m_messagesPanel = new WX_HTML_REPORT_PANEL( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
bSizerSTEPFile->Add( m_messagesPanel, 1, wxEXPAND | wxALL, 5 );
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bSizerSTEPFile->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
m_sdbSizer = new wxStdDialogButtonSizer();
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();
wxBoxSizer* bSizer6;
bSizer6 = new wxBoxSizer( wxHORIZONTAL );
bSizerSTEPFile->Add( m_sdbSizer, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
bSizer6->Add( 0, 0, 1, wxEXPAND, 5 );
m_btnClose = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer6->Add( m_btnClose, 0, wxALL, 5 );
m_btnExport = new wxButton( this, wxID_ANY, _("Export"), wxDefaultPosition, wxDefaultSize, 0 );
m_btnExport->SetDefault();
bSizer6->Add( m_btnExport, 0, wxALL, 5 );
bSizerSTEPFile->Add( bSizer6, 0, wxALL|wxEXPAND, 5 );
this->SetSizer( bSizerSTEPFile );
@ -176,6 +187,7 @@ DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID i
m_STEP_OrgUnitChoice->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_EXPORT_STEP_BASE::onUpdateUnits ), NULL, this );
m_STEP_Xorg->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_EXPORT_STEP_BASE::onUpdateXPos ), NULL, this );
m_STEP_Yorg->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_EXPORT_STEP_BASE::onUpdateYPos ), NULL, this );
m_btnExport->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EXPORT_STEP_BASE::onExportButton ), NULL, this );
}
DIALOG_EXPORT_STEP_BASE::~DIALOG_EXPORT_STEP_BASE()
@ -184,5 +196,6 @@ DIALOG_EXPORT_STEP_BASE::~DIALOG_EXPORT_STEP_BASE()
m_STEP_OrgUnitChoice->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_EXPORT_STEP_BASE::onUpdateUnits ), NULL, this );
m_STEP_Xorg->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_EXPORT_STEP_BASE::onUpdateXPos ), NULL, this );
m_STEP_Yorg->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_EXPORT_STEP_BASE::onUpdateYPos ), NULL, this );
m_btnExport->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EXPORT_STEP_BASE::onExportButton ), NULL, this );
}

View File

@ -805,7 +805,7 @@
<property name="border">5</property>
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer3</property>
<property name="orient">wxVERTICAL</property>
@ -893,11 +893,11 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxFlexGridSizer" expanded="1">
<object class="wxFlexGridSizer" expanded="0">
<property name="cols">3</property>
<property name="flexible_direction">wxBOTH</property>
<property name="growablecols"></property>
@ -909,11 +909,11 @@
<property name="permission">none</property>
<property name="rows">0</property>
<property name="vgap">0</property>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
<property name="proportion">1</property>
<object class="spacer" expanded="1">
<object class="spacer" expanded="0">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
@ -1090,11 +1090,11 @@
<event name="OnUpdateUI">onUpdateUnits</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
<property name="proportion">1</property>
<object class="spacer" expanded="1">
<object class="spacer" expanded="0">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
@ -1274,11 +1274,11 @@
<event name="OnUpdateUI">onUpdateXPos</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
<property name="proportion">1</property>
<object class="spacer" expanded="1">
<object class="spacer" expanded="0">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
@ -1367,11 +1367,11 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="0">
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxTextCtrl" expanded="0">
<object class="wxTextCtrl" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -1466,16 +1466,16 @@
<property name="border">5</property>
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer8</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<object class="wxStaticText" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -1554,11 +1554,11 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxFlexGridSizer" expanded="1">
<object class="wxFlexGridSizer" expanded="0">
<property name="cols">2</property>
<property name="flexible_direction">wxBOTH</property>
<property name="growablecols"></property>
@ -1570,21 +1570,21 @@
<property name="permission">none</property>
<property name="rows">0</property>
<property name="vgap">0</property>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
<property name="proportion">1</property>
<object class="spacer" expanded="1">
<object class="spacer" expanded="0">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -1674,6 +1674,86 @@
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">1</property>
<object class="wxPanel" 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="moveable">1</property>
<property name="name">m_messagesPanel</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="subclass">WX_HTML_REPORT_PANEL; wx_html_report_panel.h</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">wxTAB_TRAVERSAL</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND | wxALL</property>
@ -1755,30 +1835,201 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="0">
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxStdDialogButtonSizer" expanded="0">
<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>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">m_sdbSizer</property>
<property name="name">bSizer6</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="spacer" expanded="1">
<property name="height">0</property>
<property name="permission">protected</property>
<event name="OnApplyButtonClick"></event>
<event name="OnCancelButtonClick"></event>
<event name="OnContextHelpButtonClick"></event>
<event name="OnHelpButtonClick"></event>
<event name="OnNoButtonClick"></event>
<event name="OnOKButtonClick"></event>
<event name="OnSaveButtonClick"></event>
<event name="OnYesButtonClick"></event>
<property name="width">0</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxButton" 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">0</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_CANCEL</property>
<property name="label">Close</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_btnClose</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"></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"></event>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxButton" 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">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="label">Export</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_btnExport</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"></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">onExportButton</event>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
</object>

View File

@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 22 2017)
// C++ code generated with wxFormBuilder (version Oct 17 2016)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __DIALOG_EXPORT_STEP_BASE_H__
@ -11,7 +11,9 @@
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
class TEXT_CTRL_EVAL;
class WX_HTML_REPORT_PANEL;
#include "dialog_shim.h"
#include <wx/string.h>
@ -28,6 +30,7 @@ class TEXT_CTRL_EVAL;
#include <wx/textctrl.h>
#include <wx/valtext.h>
#include <wx/checkbox.h>
#include <wx/panel.h>
#include <wx/button.h>
#include <wx/dialog.h>
@ -58,15 +61,16 @@ class DIALOG_EXPORT_STEP_BASE : public DIALOG_SHIM
TEXT_CTRL_EVAL* m_STEP_Yorg;
wxStaticText* m_staticText7;
wxCheckBox* m_cbRemoveVirtual;
WX_HTML_REPORT_PANEL* m_messagesPanel;
wxStaticLine* m_staticline1;
wxStdDialogButtonSizer* m_sdbSizer;
wxButton* m_sdbSizerOK;
wxButton* m_sdbSizerCancel;
wxButton* m_btnClose;
wxButton* m_btnExport;
// Virtual event handlers, overide them in your derived class
virtual void onUpdateUnits( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void onUpdateXPos( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void onUpdateYPos( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void onExportButton( wxCommandEvent& event ) { event.Skip(); }
public: