Pretty up the Teardrops dialog.

Fixes https://gitlab.com/kicad/code/kicad/issues/12170
This commit is contained in:
Jeff Young 2022-08-07 23:09:20 +01:00
parent 015bde8cb0
commit 4423755176
5 changed files with 2695 additions and 1756 deletions

View File

@ -410,8 +410,8 @@ void PCB_EDIT_FRAME::ReCreateMenuBar()
// Add/remove teardrops menuitems:
toolsMenu->AppendSeparator();
toolsMenu->Add( _( "Add Teardrops" ), "", ID_RUN_TEARDROP_TOOL, BITMAPS::via );
toolsMenu->Add( _( "Remove Teardrops" ), "", ID_REMOVE_TEARDROP_TOOL, BITMAPS::via );
toolsMenu->Add( _( "Add Teardrops..." ), "", ID_RUN_TEARDROP_TOOL, BITMAPS::via );
toolsMenu->Add( _( "Remove Teardrops..." ), "", ID_REMOVE_TEARDROP_TOOL, BITMAPS::via );
toolsMenu->AppendSeparator();
toolsMenu->Add( PCB_ACTIONS::cleanupTracksAndVias );

View File

@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2021 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 2021-2022 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -45,12 +45,12 @@ public:
TEARDROP_DIALOG_BASE( aParent ),
m_brdSettings( nullptr ),
m_frame( aParent ),
m_teardropMaxLenSettingRound( aParent,m_stMaxLenRound, m_tcTdMaxLenRound, nullptr ),
m_teardropMaxHeightSettingRound( aParent, m_stTdMaxSizeRound, m_tcMaxHeightRound, m_stLenUnitRound ),
m_teardropMaxLenSettingRect( aParent,m_stMaxLenRect, m_tcTdMaxLenRect, nullptr ),
m_teardropMaxHeightSettingRect( aParent, m_stTdMaxSizeRect, m_tcMaxHeightRect, m_stLenUnitRect ),
m_teardropMaxLenSettingTrack( aParent,m_stMaxLenTrack, m_tcTdMaxLenTrack, nullptr ),
m_teardropMaxHeightSettingTrack( aParent, m_stTdMaxSizeTrack, m_tcMaxHeightTrack, m_stLenUnitTrack )
m_teardropMaxLenSettingRound( aParent,m_stMaxLenRound, m_tcTdMaxLenRound, m_stMaxLenRoundUnits ),
m_teardropMaxHeightSettingRound( aParent, m_stTdMaxSizeRound, m_tcMaxHeightRound, m_stMaxHeightRoundUnits ),
m_teardropMaxLenSettingRect( aParent,m_stMaxLenRect, m_tcTdMaxLenRect, m_stMaxLenRectUnits ),
m_teardropMaxHeightSettingRect( aParent, m_stTdMaxSizeRect, m_tcMaxHeightRect, m_stMaxHeightRectUnits ),
m_teardropMaxLenSettingTrack( aParent,m_stMaxLenTrack, m_tcTdMaxLenTrack, m_stMaxLenTrackUnits ),
m_teardropMaxHeightSettingTrack( aParent, m_stTdMaxSizeTrack, m_tcMaxHeightTrack, m_stMaxHeightTrackUnits )
{
// Setup actual bitmaps that cannot be set inside wxFormBuilder:
m_bitmapTdCircularInfo->SetBitmap( KiBitmap( BITMAPS::teardrop_sizes ) );

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.0-39-g3487c3cb)
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@ -26,220 +26,313 @@ TEARDROP_DIALOG_BASE::TEARDROP_DIALOG_BASE( wxWindow* parent, wxWindowID id, con
bSizeScopeSize = new wxBoxSizer( wxVERTICAL );
wxFlexGridSizer* fgSizerBitmaps;
fgSizerBitmaps = new wxFlexGridSizer( 0, 3, 0, 0 );
fgSizerBitmaps = new wxFlexGridSizer( 0, 4, 5, 0 );
fgSizerBitmaps->AddGrowableCol( 2 );
fgSizerBitmaps->SetFlexibleDirection( wxBOTH );
fgSizerBitmaps->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_staticTextRndS = new wxStaticText( this, wxID_ANY, _("Round shapes"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextRndS = new wxStaticText( this, wxID_ANY, _("Round shapes:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextRndS->Wrap( -1 );
fgSizerBitmaps->Add( m_staticTextRndS, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerBitmaps->Add( m_staticTextRndS, 0, wxTOP|wxBOTTOM, 12 );
m_bitmapTdCircularInfo = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerBitmaps->Add( m_bitmapTdCircularInfo, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
wxFlexGridSizer* fgSizerParmRound;
fgSizerParmRound = new wxFlexGridSizer( 0, 5, 0, 0 );
fgSizerParmRound = new wxFlexGridSizer( 0, 6, 5, 0 );
fgSizerParmRound->AddGrowableCol( 1 );
fgSizerParmRound->AddGrowableCol( 3 );
fgSizerParmRound->AddGrowableCol( 4 );
fgSizerParmRound->SetFlexibleDirection( wxBOTH );
fgSizerParmRound->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_stMaxLenRound = new wxStaticText( this, wxID_ANY, _("Max length"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenRound->Wrap( -1 );
fgSizerParmRound->Add( m_stMaxLenRound, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_tcTdMaxLenRound = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmRound->Add( m_tcTdMaxLenRound, 0, wxALL|wxEXPAND, 5 );
m_stTdMaxSizeRound = new wxStaticText( this, wxID_ANY, _("Max height"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTdMaxSizeRound->Wrap( -1 );
fgSizerParmRound->Add( m_stTdMaxSizeRound, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_tcMaxHeightRound = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmRound->Add( m_tcMaxHeightRound, 0, wxALL|wxEXPAND, 5 );
m_stLenUnitRound = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
m_stLenUnitRound->Wrap( -1 );
fgSizerParmRound->Add( m_stLenUnitRound, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
m_stHsettingRound = new wxStaticText( this, wxID_ANY, _("Best length"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHsettingRound = new wxStaticText( this, wxID_ANY, _("Best length:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHsettingRound->Wrap( -1 );
fgSizerParmRound->Add( m_stHsettingRound, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmRound->Add( m_stHsettingRound, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
m_spTeardropLenPercentRound = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 40.000000, 10 );
m_spTeardropLenPercentRound->SetDigits( 0 );
fgSizerParmRound->Add( m_spTeardropLenPercentRound, 0, wxALL|wxEXPAND, 5 );
fgSizerParmRound->Add( m_spTeardropLenPercentRound, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
m_stVsettingRound = new wxStaticText( this, wxID_ANY, _("Best height"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTeardropLenUnits = new wxStaticText( this, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTeardropLenUnits->Wrap( -1 );
fgSizerParmRound->Add( m_stTeardropLenUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
m_stVsettingRound = new wxStaticText( this, wxID_ANY, _("Best height:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stVsettingRound->Wrap( -1 );
fgSizerParmRound->Add( m_stVsettingRound, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmRound->Add( m_stVsettingRound, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
m_spTeardropSizePercentRound = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
m_spTeardropSizePercentRound->SetDigits( 0 );
fgSizerParmRound->Add( m_spTeardropSizePercentRound, 0, wxALL|wxEXPAND, 5 );
fgSizerParmRound->Add( m_spTeardropSizePercentRound, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
m_stLenPercentRound = new wxStaticText( this, wxID_ANY, _("percent of d"), wxDefaultPosition, wxDefaultSize, 0 );
m_stLenPercentRound = new wxStaticText( this, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_stLenPercentRound->Wrap( -1 );
fgSizerParmRound->Add( m_stLenPercentRound, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmRound->Add( m_stLenPercentRound, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
m_stHDRatioRound = new wxStaticText( this, wxID_ANY, _("Max height/d"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenRound = new wxStaticText( this, wxID_ANY, _("Max length:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenRound->Wrap( -1 );
fgSizerParmRound->Add( m_stMaxLenRound, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
m_tcTdMaxLenRound = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmRound->Add( m_tcTdMaxLenRound, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
m_stMaxLenRoundUnits = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenRoundUnits->Wrap( -1 );
fgSizerParmRound->Add( m_stMaxLenRoundUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
m_stTdMaxSizeRound = new wxStaticText( this, wxID_ANY, _("Max height:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTdMaxSizeRound->Wrap( -1 );
fgSizerParmRound->Add( m_stTdMaxSizeRound, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
m_tcMaxHeightRound = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmRound->Add( m_tcMaxHeightRound, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
m_stMaxHeightRoundUnits = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxHeightRoundUnits->Wrap( -1 );
fgSizerParmRound->Add( m_stMaxHeightRoundUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
fgSizerParmRound->Add( 0, 0, 1, wxEXPAND, 5 );
fgSizerParmRound->Add( 0, 0, 1, wxEXPAND, 5 );
fgSizerParmRound->Add( 0, 0, 1, wxEXPAND, 5 );
m_stHDRatioRound = new wxStaticText( this, wxID_ANY, _("Max height:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHDRatioRound->Wrap( -1 );
m_stHDRatioRound->SetToolTip( _("Max pad/via size to track width ratio to create a teardrop.\n100 always creates a teardrop.") );
fgSizerParmRound->Add( m_stHDRatioRound, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmRound->Add( m_stHDRatioRound, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
m_spTeardropHDPercentRound = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
m_spTeardropHDPercentRound->SetDigits( 0 );
fgSizerParmRound->Add( m_spTeardropHDPercentRound, 0, wxALL|wxEXPAND, 5 );
fgSizerParmRound->Add( m_spTeardropHDPercentRound, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
m_stHDPercentRound = new wxStaticText( this, wxID_ANY, _("percent of H/d"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHDPercentRound = new wxStaticText( this, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHDPercentRound->Wrap( -1 );
fgSizerParmRound->Add( m_stHDPercentRound, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmRound->Add( m_stHDPercentRound, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
fgSizerBitmaps->Add( fgSizerParmRound, 1, wxEXPAND, 5 );
fgSizerBitmaps->Add( fgSizerParmRound, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 10 );
m_staticTextRectS = new wxStaticText( this, wxID_ANY, _("Rect shapes"), wxDefaultPosition, wxDefaultSize, 0 );
wxString m_rbShapeRoundChoices[] = { _("Straight lines"), _("Curved") };
int m_rbShapeRoundNChoices = sizeof( m_rbShapeRoundChoices ) / sizeof( wxString );
m_rbShapeRound = new wxRadioBox( this, wxID_ANY, _("Style"), wxDefaultPosition, wxDefaultSize, m_rbShapeRoundNChoices, m_rbShapeRoundChoices, 1, wxRA_SPECIFY_COLS );
m_rbShapeRound->SetSelection( 0 );
fgSizerBitmaps->Add( m_rbShapeRound, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 10 );
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
fgSizerBitmaps->Add( m_staticline2, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
m_staticline3 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
fgSizerBitmaps->Add( m_staticline3, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
m_staticline4 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
fgSizerBitmaps->Add( m_staticline4, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
m_staticline5 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
fgSizerBitmaps->Add( m_staticline5, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
m_staticTextRectS = new wxStaticText( this, wxID_ANY, _("Rect shapes:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextRectS->Wrap( -1 );
fgSizerBitmaps->Add( m_staticTextRectS, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerBitmaps->Add( m_staticTextRectS, 0, wxTOP|wxBOTTOM, 12 );
m_bitmapTdRectangularInfo = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerBitmaps->Add( m_bitmapTdRectangularInfo, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
wxFlexGridSizer* fgSizerParmRect;
fgSizerParmRect = new wxFlexGridSizer( 0, 5, 0, 0 );
fgSizerParmRect = new wxFlexGridSizer( 0, 6, 5, 0 );
fgSizerParmRect->AddGrowableCol( 1 );
fgSizerParmRect->AddGrowableCol( 3 );
fgSizerParmRect->AddGrowableCol( 4 );
fgSizerParmRect->SetFlexibleDirection( wxBOTH );
fgSizerParmRect->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_stMaxLenRect = new wxStaticText( this, wxID_ANY, _("Max length"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenRect->Wrap( -1 );
fgSizerParmRect->Add( m_stMaxLenRect, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_tcTdMaxLenRect = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmRect->Add( m_tcTdMaxLenRect, 0, wxALL|wxEXPAND, 5 );
m_stTdMaxSizeRect = new wxStaticText( this, wxID_ANY, _("Max height"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTdMaxSizeRect->Wrap( -1 );
fgSizerParmRect->Add( m_stTdMaxSizeRect, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_tcMaxHeightRect = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmRect->Add( m_tcMaxHeightRect, 0, wxALL|wxEXPAND, 5 );
m_stLenUnitRect = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
m_stLenUnitRect->Wrap( -1 );
fgSizerParmRect->Add( m_stLenUnitRect, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
m_stHsettingRect = new wxStaticText( this, wxID_ANY, _("Best length"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHsettingRect = new wxStaticText( this, wxID_ANY, _("Best length:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHsettingRect->Wrap( -1 );
fgSizerParmRect->Add( m_stHsettingRect, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmRect->Add( m_stHsettingRect, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
m_spTeardropLenPercentRect = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 50.000000, 10 );
m_spTeardropLenPercentRect->SetDigits( 0 );
fgSizerParmRect->Add( m_spTeardropLenPercentRect, 0, wxALL|wxEXPAND, 5 );
fgSizerParmRect->Add( m_spTeardropLenPercentRect, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
m_stVsettingRect = new wxStaticText( this, wxID_ANY, _("Best height"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHDPercentRect = new wxStaticText( this, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHDPercentRect->Wrap( -1 );
fgSizerParmRect->Add( m_stHDPercentRect, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
m_stVsettingRect = new wxStaticText( this, wxID_ANY, _("Best height:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stVsettingRect->Wrap( -1 );
fgSizerParmRect->Add( m_stVsettingRect, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmRect->Add( m_stVsettingRect, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
m_spTeardropSizePercentRect = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
m_spTeardropSizePercentRect->SetDigits( 0 );
fgSizerParmRect->Add( m_spTeardropSizePercentRect, 0, wxALL|wxEXPAND, 5 );
fgSizerParmRect->Add( m_spTeardropSizePercentRect, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_stLenPercentRect = new wxStaticText( this, wxID_ANY, _("percent of d"), wxDefaultPosition, wxDefaultSize, 0 );
m_stLenPercentRect = new wxStaticText( this, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_stLenPercentRect->Wrap( -1 );
fgSizerParmRect->Add( m_stLenPercentRect, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmRect->Add( m_stLenPercentRect, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
m_stHDRatioRect = new wxStaticText( this, wxID_ANY, _("Max height/d"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenRect = new wxStaticText( this, wxID_ANY, _("Max length:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenRect->Wrap( -1 );
fgSizerParmRect->Add( m_stMaxLenRect, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
m_tcTdMaxLenRect = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmRect->Add( m_tcTdMaxLenRect, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_stMaxLenRectUnits = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenRectUnits->Wrap( -1 );
fgSizerParmRect->Add( m_stMaxLenRectUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
m_stTdMaxSizeRect = new wxStaticText( this, wxID_ANY, _("Max height:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTdMaxSizeRect->Wrap( -1 );
fgSizerParmRect->Add( m_stTdMaxSizeRect, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
m_tcMaxHeightRect = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmRect->Add( m_tcMaxHeightRect, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_stMaxHeightRectUnits = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxHeightRectUnits->Wrap( -1 );
fgSizerParmRect->Add( m_stMaxHeightRectUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
fgSizerParmRect->Add( 0, 0, 1, wxEXPAND, 5 );
fgSizerParmRect->Add( 0, 0, 1, wxEXPAND, 5 );
fgSizerParmRect->Add( 0, 0, 1, wxEXPAND, 5 );
m_stHDRatioRect = new wxStaticText( this, wxID_ANY, _("Max height:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHDRatioRect->Wrap( -1 );
m_stHDRatioRect->SetToolTip( _("Max pad/via size to track width ratio to create a teardrop.\n100 always creates a teardrop.") );
fgSizerParmRect->Add( m_stHDRatioRect, 0, wxALL, 5 );
fgSizerParmRect->Add( m_stHDRatioRect, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
m_spTeardropHDPercentRect = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
m_spTeardropHDPercentRect->SetDigits( 0 );
fgSizerParmRect->Add( m_spTeardropHDPercentRect, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
fgSizerParmRect->Add( m_spTeardropHDPercentRect, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
m_stHDPercentRect = new wxStaticText( this, wxID_ANY, _("percent of H/d"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHDPercentRect->Wrap( -1 );
fgSizerParmRect->Add( m_stHDPercentRect, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
m_stTeardropHUnits = new wxStaticText( this, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTeardropHUnits->Wrap( -1 );
fgSizerParmRect->Add( m_stTeardropHUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerBitmaps->Add( fgSizerParmRect, 1, wxEXPAND, 5 );
fgSizerBitmaps->Add( fgSizerParmRect, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 10 );
m_staticTextTrck = new wxStaticText( this, wxID_ANY, _("Tracks"), wxDefaultPosition, wxDefaultSize, 0 );
wxString m_rbShapeRectChoices[] = { _("Straight lines"), _("Curved") };
int m_rbShapeRectNChoices = sizeof( m_rbShapeRectChoices ) / sizeof( wxString );
m_rbShapeRect = new wxRadioBox( this, wxID_ANY, _("Style"), wxDefaultPosition, wxDefaultSize, m_rbShapeRectNChoices, m_rbShapeRectChoices, 1, wxRA_SPECIFY_COLS );
m_rbShapeRect->SetSelection( 0 );
fgSizerBitmaps->Add( m_rbShapeRect, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT, 10 );
m_staticline6 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
fgSizerBitmaps->Add( m_staticline6, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
m_staticline7 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
fgSizerBitmaps->Add( m_staticline7, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
m_staticline8 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
fgSizerBitmaps->Add( m_staticline8, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
fgSizerBitmaps->Add( m_staticline9, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
m_staticTextTrck = new wxStaticText( this, wxID_ANY, _("Tracks:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextTrck->Wrap( -1 );
fgSizerBitmaps->Add( m_staticTextTrck, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerBitmaps->Add( m_staticTextTrck, 0, wxTOP|wxBOTTOM, 12 );
m_bitmapTdTrackInfo = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerBitmaps->Add( m_bitmapTdTrackInfo, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
wxFlexGridSizer* fgSizerParmTrack;
fgSizerParmTrack = new wxFlexGridSizer( 0, 5, 0, 0 );
fgSizerParmTrack = new wxFlexGridSizer( 0, 6, 5, 0 );
fgSizerParmTrack->AddGrowableCol( 1 );
fgSizerParmTrack->AddGrowableCol( 3 );
fgSizerParmTrack->AddGrowableCol( 4 );
fgSizerParmTrack->SetFlexibleDirection( wxBOTH );
fgSizerParmTrack->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_stMaxLenTrack = new wxStaticText( this, wxID_ANY, _("Max length"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenTrack->Wrap( -1 );
fgSizerParmTrack->Add( m_stMaxLenTrack, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_tcTdMaxLenTrack = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmTrack->Add( m_tcTdMaxLenTrack, 0, wxALL|wxEXPAND, 5 );
m_stTdMaxSizeTrack = new wxStaticText( this, wxID_ANY, _("Max height"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTdMaxSizeTrack->Wrap( -1 );
fgSizerParmTrack->Add( m_stTdMaxSizeTrack, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_tcMaxHeightTrack = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmTrack->Add( m_tcMaxHeightTrack, 0, wxALL|wxEXPAND, 5 );
m_stLenUnitTrack = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
m_stLenUnitTrack->Wrap( -1 );
fgSizerParmTrack->Add( m_stLenUnitTrack, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
m_stHsettingtrack = new wxStaticText( this, wxID_ANY, _("Best length"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHsettingtrack = new wxStaticText( this, wxID_ANY, _("Best length:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHsettingtrack->Wrap( -1 );
fgSizerParmTrack->Add( m_stHsettingtrack, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmTrack->Add( m_stHsettingtrack, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
m_spTeardropLenPercentTrack = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 100.000000, 10 );
m_spTeardropLenPercentTrack->SetDigits( 0 );
fgSizerParmTrack->Add( m_spTeardropLenPercentTrack, 0, wxALL|wxEXPAND, 5 );
fgSizerParmTrack->Add( m_spTeardropLenPercentTrack, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_stVsettingtrack = new wxStaticText( this, wxID_ANY, _("Best height"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTeardropLenTrackUnits = new wxStaticText( this, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTeardropLenTrackUnits->Wrap( -1 );
fgSizerParmTrack->Add( m_stTeardropLenTrackUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
m_stVsettingtrack = new wxStaticText( this, wxID_ANY, _("Best height:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stVsettingtrack->Wrap( -1 );
fgSizerParmTrack->Add( m_stVsettingtrack, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmTrack->Add( m_stVsettingtrack, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
m_spTeardropSizePercentTrack = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
m_spTeardropSizePercentTrack->SetDigits( 0 );
fgSizerParmTrack->Add( m_spTeardropSizePercentTrack, 0, wxALL|wxEXPAND, 5 );
fgSizerParmTrack->Add( m_spTeardropSizePercentTrack, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_stLenPercentTrack = new wxStaticText( this, wxID_ANY, _("percent of d"), wxDefaultPosition, wxDefaultSize, 0 );
m_stLenPercentTrack = new wxStaticText( this, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_stLenPercentTrack->Wrap( -1 );
fgSizerParmTrack->Add( m_stLenPercentTrack, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmTrack->Add( m_stLenPercentTrack, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
m_stHDRatioTrack = new wxStaticText( this, wxID_ANY, _("Max height/d"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenTrack = new wxStaticText( this, wxID_ANY, _("Max length:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenTrack->Wrap( -1 );
fgSizerParmTrack->Add( m_stMaxLenTrack, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
m_tcTdMaxLenTrack = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmTrack->Add( m_tcTdMaxLenTrack, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_stMaxLenTrackUnits = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxLenTrackUnits->Wrap( -1 );
fgSizerParmTrack->Add( m_stMaxLenTrackUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
m_stTdMaxSizeTrack = new wxStaticText( this, wxID_ANY, _("Max height:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stTdMaxSizeTrack->Wrap( -1 );
fgSizerParmTrack->Add( m_stTdMaxSizeTrack, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
m_tcMaxHeightTrack = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgSizerParmTrack->Add( m_tcMaxHeightTrack, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_stMaxHeightTrackUnits = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
m_stMaxHeightTrackUnits->Wrap( -1 );
fgSizerParmTrack->Add( m_stMaxHeightTrackUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
fgSizerParmTrack->Add( 0, 0, 1, wxEXPAND, 5 );
fgSizerParmTrack->Add( 0, 0, 1, wxEXPAND, 5 );
fgSizerParmTrack->Add( 0, 0, 1, wxEXPAND, 5 );
m_stHDRatioTrack = new wxStaticText( this, wxID_ANY, _("Max height:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHDRatioTrack->Wrap( -1 );
m_stHDRatioTrack->SetToolTip( _("Max pad/via size to track width ratio to create a teardrop.\n100 always creates a teardrop.") );
fgSizerParmTrack->Add( m_stHDRatioTrack, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmTrack->Add( m_stHDRatioTrack, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 );
m_spTeardropHDPercentTrack = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
m_spTeardropHDPercentTrack->SetDigits( 0 );
fgSizerParmTrack->Add( m_spTeardropHDPercentTrack, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmTrack->Add( m_spTeardropHDPercentTrack, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
m_stHDPercentTrack = new wxStaticText( this, wxID_ANY, _("percent of H/d"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHDPercentTrack = new wxStaticText( this, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_stHDPercentTrack->Wrap( -1 );
fgSizerParmTrack->Add( m_stHDPercentTrack, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerParmTrack->Add( m_stHDPercentTrack, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
fgSizerBitmaps->Add( fgSizerParmTrack, 1, wxEXPAND, 5 );
fgSizerBitmaps->Add( fgSizerParmTrack, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 10 );
wxString m_rbShapeTrackChoices[] = { _("Straight lines"), _("Curved") };
int m_rbShapeTrackNChoices = sizeof( m_rbShapeTrackChoices ) / sizeof( wxString );
m_rbShapeTrack = new wxRadioBox( this, wxID_ANY, _("Style"), wxDefaultPosition, wxDefaultSize, m_rbShapeTrackNChoices, m_rbShapeTrackChoices, 1, wxRA_SPECIFY_COLS );
m_rbShapeTrack->SetSelection( 0 );
fgSizerBitmaps->Add( m_rbShapeTrack, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT, 10 );
bSizeScopeSize->Add( fgSizerBitmaps, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
bSizeScopeSize->Add( fgSizerBitmaps, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 );
bSizerTop->Add( bSizeScopeSize, 0, wxEXPAND, 5 );
@ -257,86 +350,65 @@ TEARDROP_DIALOG_BASE::TEARDROP_DIALOG_BASE( wxWindow* parent, wxWindowID id, con
m_cbPadVia->SetValue(true);
m_cbPadVia->SetToolTip( _("Add teardrops to vias and pads with holes") );
sbSizerScope->Add( m_cbPadVia, 0, wxALL, 5 );
sbSizerScope->Add( m_cbPadVia, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_cbRoundShapesOnly = new wxCheckBox( sbSizerScope->GetStaticBox(), wxID_ANY, _("Round pads only"), wxDefaultPosition, wxDefaultSize, 0 );
m_cbRoundShapesOnly->SetToolTip( _("Add teardrops to round shapes only ") );
sbSizerScope->Add( m_cbRoundShapesOnly, 0, wxALL, 5 );
sbSizerScope->Add( m_cbRoundShapesOnly, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_cbSmdSimilarPads = new wxCheckBox( sbSizerScope->GetStaticBox(), wxID_ANY, _("Not drilled pads"), wxDefaultPosition, wxDefaultSize, 0 );
m_cbSmdSimilarPads = new wxCheckBox( sbSizerScope->GetStaticBox(), wxID_ANY, _("SMD pads"), wxDefaultPosition, wxDefaultSize, 0 );
m_cbSmdSimilarPads->SetValue(true);
m_cbSmdSimilarPads->SetToolTip( _("Add teardrops to not driiled pads, like SMD") );
sbSizerScope->Add( m_cbSmdSimilarPads, 0, wxALL, 5 );
sbSizerScope->Add( m_cbSmdSimilarPads, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_cbTrack2Track = new wxCheckBox( sbSizerScope->GetStaticBox(), wxID_ANY, _("Track to track"), wxDefaultPosition, wxDefaultSize, 0 );
m_cbTrack2Track->SetValue(true);
m_cbTrack2Track->SetToolTip( _("Add teardrops to two connected tracks of different widths") );
sbSizerScope->Add( m_cbTrack2Track, 0, wxALL, 5 );
sbSizerScope->Add( m_cbTrack2Track, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
bSizerShape->Add( sbSizerScope, 0, wxTOP|wxBOTTOM, 5 );
bSizerShape->Add( 30, 10, 0, wxEXPAND, 5 );
wxString m_rbShapeRoundChoices[] = { _("Straight lines"), _("Curved") };
int m_rbShapeRoundNChoices = sizeof( m_rbShapeRoundChoices ) / sizeof( wxString );
m_rbShapeRound = new wxRadioBox( this, wxID_ANY, _("Style for round shapes"), wxDefaultPosition, wxDefaultSize, m_rbShapeRoundNChoices, m_rbShapeRoundChoices, 1, wxRA_SPECIFY_COLS );
m_rbShapeRound->SetSelection( 0 );
bSizerShape->Add( m_rbShapeRound, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
wxString m_rbShapeRectChoices[] = { _("Straight lines"), _("Curved") };
int m_rbShapeRectNChoices = sizeof( m_rbShapeRectChoices ) / sizeof( wxString );
m_rbShapeRect = new wxRadioBox( this, wxID_ANY, _("Style for rect shapes"), wxDefaultPosition, wxDefaultSize, m_rbShapeRectNChoices, m_rbShapeRectChoices, 1, wxRA_SPECIFY_COLS );
m_rbShapeRect->SetSelection( 0 );
bSizerShape->Add( m_rbShapeRect, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
wxString m_rbShapeTrackChoices[] = { _("Straight lines"), _("Curved") };
int m_rbShapeTrackNChoices = sizeof( m_rbShapeTrackChoices ) / sizeof( wxString );
m_rbShapeTrack = new wxRadioBox( this, wxID_ANY, _("Style for tracks"), wxDefaultPosition, wxDefaultSize, m_rbShapeTrackNChoices, m_rbShapeTrackChoices, 1, wxRA_SPECIFY_COLS );
m_rbShapeTrack->SetSelection( 0 );
bSizerShape->Add( m_rbShapeTrack, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
bSizerShape->Add( 30, 0, 0, 0, 5 );
bSizerUpper->Add( bSizerShape, 0, wxEXPAND, 5 );
bSizerShape->Add( sbSizerScope, 1, wxEXPAND|wxTOP, 5 );
wxStaticBoxSizer* sbSizerOptions;
sbSizerOptions = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options") ), wxHORIZONTAL );
sbSizerOptions = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options") ), wxVERTICAL );
m_cbOptUseNextTrack = new wxCheckBox( sbSizerOptions->GetStaticBox(), wxID_ANY, _("Allows use two tracks"), wxDefaultPosition, wxDefaultSize, 0 );
m_cbOptUseNextTrack = new wxCheckBox( sbSizerOptions->GetStaticBox(), wxID_ANY, _("Allow teardrops to span two track segments"), wxDefaultPosition, wxDefaultSize, 0 );
m_cbOptUseNextTrack->SetValue(true);
m_cbOptUseNextTrack->SetToolTip( _("Allows a teardrop to spread over 2 tracks if the first track segment is too short") );
sbSizerOptions->Add( m_cbOptUseNextTrack, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
sbSizerOptions->Add( m_cbOptUseNextTrack, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_cbPadsInZones = new wxCheckBox( sbSizerOptions->GetStaticBox(), wxID_ANY, _("Teardrop on pads in zones"), wxDefaultPosition, wxDefaultSize, 0 );
m_cbPadsInZones = new wxCheckBox( sbSizerOptions->GetStaticBox(), wxID_ANY, _("Place teardrops on pads in zones"), wxDefaultPosition, wxDefaultSize, 0 );
m_cbPadsInZones->SetToolTip( _("Pads inside a copper zone outline of same net have no teardrop.\nCheck this option to allow teardrop for these pads.") );
sbSizerOptions->Add( m_cbPadsInZones, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
sbSizerOptions->Add( m_cbPadsInZones, 0, wxALL, 5 );
sbSizerOptions->Add( 30, 0, 0, 0, 5 );
m_stPointCount = new wxStaticText( sbSizerOptions->GetStaticBox(), wxID_ANY, _("Curve points"), wxDefaultPosition, wxDefaultSize, 0 );
wxBoxSizer* bSizer6;
bSizer6 = new wxBoxSizer( wxHORIZONTAL );
m_stPointCount = new wxStaticText( sbSizerOptions->GetStaticBox(), wxID_ANY, _("Curve points:"), wxDefaultPosition, wxDefaultSize, 0 );
m_stPointCount->Wrap( -1 );
m_stPointCount->SetToolTip( _("Number of segments to build a teardrop with curved shape") );
sbSizerOptions->Add( m_stPointCount, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
bSizer6->Add( m_stPointCount, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
m_spPointCount = new wxSpinCtrl( sbSizerOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 3, 10, 5 );
sbSizerOptions->Add( m_spPointCount, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
bSizer6->Add( m_spPointCount, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
bSizerUpper->Add( sbSizerOptions, 0, wxEXPAND|wxTOP, 5 );
sbSizerOptions->Add( bSizer6, 1, wxEXPAND, 5 );
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bSizerUpper->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
bSizerShape->Add( sbSizerOptions, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
bSizerUpper->Add( bSizerShape, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
bSizerMain->Add( bSizerUpper, 1, wxEXPAND, 5 );
@ -353,6 +425,7 @@ TEARDROP_DIALOG_BASE::TEARDROP_DIALOG_BASE( wxWindow* parent, wxWindowID id, con
this->SetSizer( bSizerMain );
this->Layout();
bSizerMain->Fit( this );
this->Centre( wxBOTH );
}

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.0-39-g3487c3cb)
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@ -21,13 +21,13 @@
#include <wx/image.h>
#include <wx/icon.h>
#include <wx/statbmp.h>
#include <wx/textctrl.h>
#include <wx/spinctrl.h>
#include <wx/textctrl.h>
#include <wx/sizer.h>
#include <wx/checkbox.h>
#include <wx/statbox.h>
#include <wx/radiobox.h>
#include <wx/statline.h>
#include <wx/checkbox.h>
#include <wx/statbox.h>
#include <wx/button.h>
#include <wx/dialog.h>
@ -44,68 +44,81 @@ class TEARDROP_DIALOG_BASE : public DIALOG_SHIM
protected:
wxStaticText* m_staticTextRndS;
wxStaticBitmap* m_bitmapTdCircularInfo;
wxStaticText* m_stMaxLenRound;
wxTextCtrl* m_tcTdMaxLenRound;
wxStaticText* m_stTdMaxSizeRound;
wxTextCtrl* m_tcMaxHeightRound;
wxStaticText* m_stLenUnitRound;
wxStaticText* m_stHsettingRound;
wxSpinCtrlDouble* m_spTeardropLenPercentRound;
wxStaticText* m_stTeardropLenUnits;
wxStaticText* m_stVsettingRound;
wxSpinCtrlDouble* m_spTeardropSizePercentRound;
wxStaticText* m_stLenPercentRound;
wxStaticText* m_stMaxLenRound;
wxTextCtrl* m_tcTdMaxLenRound;
wxStaticText* m_stMaxLenRoundUnits;
wxStaticText* m_stTdMaxSizeRound;
wxTextCtrl* m_tcMaxHeightRound;
wxStaticText* m_stMaxHeightRoundUnits;
wxStaticText* m_stHDRatioRound;
wxSpinCtrlDouble* m_spTeardropHDPercentRound;
wxStaticText* m_stHDPercentRound;
wxRadioBox* m_rbShapeRound;
wxStaticLine* m_staticline2;
wxStaticLine* m_staticline3;
wxStaticLine* m_staticline4;
wxStaticLine* m_staticline5;
wxStaticText* m_staticTextRectS;
wxStaticBitmap* m_bitmapTdRectangularInfo;
wxStaticText* m_stMaxLenRect;
wxTextCtrl* m_tcTdMaxLenRect;
wxStaticText* m_stTdMaxSizeRect;
wxTextCtrl* m_tcMaxHeightRect;
wxStaticText* m_stLenUnitRect;
wxStaticText* m_stHsettingRect;
wxSpinCtrlDouble* m_spTeardropLenPercentRect;
wxStaticText* m_stHDPercentRect;
wxStaticText* m_stVsettingRect;
wxSpinCtrlDouble* m_spTeardropSizePercentRect;
wxStaticText* m_stLenPercentRect;
wxStaticText* m_stMaxLenRect;
wxTextCtrl* m_tcTdMaxLenRect;
wxStaticText* m_stMaxLenRectUnits;
wxStaticText* m_stTdMaxSizeRect;
wxTextCtrl* m_tcMaxHeightRect;
wxStaticText* m_stMaxHeightRectUnits;
wxStaticText* m_stHDRatioRect;
wxSpinCtrlDouble* m_spTeardropHDPercentRect;
wxStaticText* m_stHDPercentRect;
wxStaticText* m_stTeardropHUnits;
wxRadioBox* m_rbShapeRect;
wxStaticLine* m_staticline6;
wxStaticLine* m_staticline7;
wxStaticLine* m_staticline8;
wxStaticLine* m_staticline9;
wxStaticText* m_staticTextTrck;
wxStaticBitmap* m_bitmapTdTrackInfo;
wxStaticText* m_stMaxLenTrack;
wxTextCtrl* m_tcTdMaxLenTrack;
wxStaticText* m_stTdMaxSizeTrack;
wxTextCtrl* m_tcMaxHeightTrack;
wxStaticText* m_stLenUnitTrack;
wxStaticText* m_stHsettingtrack;
wxSpinCtrlDouble* m_spTeardropLenPercentTrack;
wxStaticText* m_stTeardropLenTrackUnits;
wxStaticText* m_stVsettingtrack;
wxSpinCtrlDouble* m_spTeardropSizePercentTrack;
wxStaticText* m_stLenPercentTrack;
wxStaticText* m_stMaxLenTrack;
wxTextCtrl* m_tcTdMaxLenTrack;
wxStaticText* m_stMaxLenTrackUnits;
wxStaticText* m_stTdMaxSizeTrack;
wxTextCtrl* m_tcMaxHeightTrack;
wxStaticText* m_stMaxHeightTrackUnits;
wxStaticText* m_stHDRatioTrack;
wxSpinCtrlDouble* m_spTeardropHDPercentTrack;
wxStaticText* m_stHDPercentTrack;
wxRadioBox* m_rbShapeTrack;
wxCheckBox* m_cbPadVia;
wxCheckBox* m_cbRoundShapesOnly;
wxCheckBox* m_cbSmdSimilarPads;
wxCheckBox* m_cbTrack2Track;
wxRadioBox* m_rbShapeRound;
wxRadioBox* m_rbShapeRect;
wxRadioBox* m_rbShapeTrack;
wxCheckBox* m_cbOptUseNextTrack;
wxCheckBox* m_cbPadsInZones;
wxStaticText* m_stPointCount;
wxSpinCtrl* m_spPointCount;
wxStaticLine* m_staticline1;
wxStdDialogButtonSizer* m_sdbSizer;
wxButton* m_sdbSizerOK;
wxButton* m_sdbSizerCancel;
public:
TEARDROP_DIALOG_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Teardrop Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 648,479 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
TEARDROP_DIALOG_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Add Teardrops"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~TEARDROP_DIALOG_BASE();