Create Array dialog: some fixes:
* No initial copied object changed (this was a serious bug to modify these objects. Previous version modified references and other texts using a very stupid algorithm). It also fixes bug 1549231 * only new pads are numbered (therefore renumbering is used only in footprint editor) * remove not working and useless feature in circular array: now only use number for pads (others options using alphabetical letters are removed: did not work corectly, and were useless) * a more clear option is used to choose if the pads are numbered from a choosen value, or from the first avaible value * Adding a warning messsage if a parameter is incorrect.
This commit is contained in:
parent
92f5ab8589
commit
b237d81b75
|
@ -1176,6 +1176,7 @@ BOARD_ITEM* MODULE::DuplicateAndAddItem( const BOARD_ITEM* aItem,
|
|||
new_item = new_pad;
|
||||
break;
|
||||
}
|
||||
|
||||
case PCB_MODULE_TEXT_T:
|
||||
{
|
||||
const TEXTE_MODULE* old_text = static_cast<const TEXTE_MODULE*>( aItem );
|
||||
|
@ -1191,6 +1192,7 @@ BOARD_ITEM* MODULE::DuplicateAndAddItem( const BOARD_ITEM* aItem,
|
|||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case PCB_MODULE_EDGE_T:
|
||||
{
|
||||
EDGE_MODULE* new_edge = new EDGE_MODULE(
|
||||
|
@ -1200,6 +1202,7 @@ BOARD_ITEM* MODULE::DuplicateAndAddItem( const BOARD_ITEM* aItem,
|
|||
new_item = new_edge;
|
||||
break;
|
||||
}
|
||||
|
||||
case PCB_MODULE_T:
|
||||
// Ignore the module itself
|
||||
break;
|
||||
|
|
|
@ -57,11 +57,9 @@ DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY( PCB_BASE_FRAME* aParent, wxPoint aOrig
|
|||
};
|
||||
m_choicePriAxisNumbering->Set( DIM( charSetDescriptions ), charSetDescriptions );
|
||||
m_choiceSecAxisNumbering->Set( DIM( charSetDescriptions ), charSetDescriptions );
|
||||
m_choiceCircNumberingType->Set( DIM( charSetDescriptions ), charSetDescriptions );;
|
||||
|
||||
m_choicePriAxisNumbering->SetSelection( 0 );
|
||||
m_choiceSecAxisNumbering->SetSelection( 0 );
|
||||
m_choiceCircNumberingType->SetSelection( 0 );
|
||||
|
||||
Add( m_entryNx, m_options.m_gridNx );
|
||||
Add( m_entryNy, m_options.m_gridNy );
|
||||
|
@ -93,6 +91,9 @@ DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY( PCB_BASE_FRAME* aParent, wxPoint aOrig
|
|||
Add( m_entryGridPriNumberingOffset, m_options.m_gridPriNumberingOffset );
|
||||
Add( m_entryGridSecNumberingOffset, m_options.m_gridSecNumberingOffset );
|
||||
|
||||
Add( m_rbGridStartNumberingOpt, m_options.m_gridNumberingScheme );
|
||||
Add( m_rbCircStartNumberingOpt, m_options.m_circNumberingScheme );
|
||||
|
||||
RestoreConfigToControls();
|
||||
|
||||
// Load units into labels
|
||||
|
@ -119,19 +120,8 @@ DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY( PCB_BASE_FRAME* aParent, wxPoint aOrig
|
|||
|
||||
void DIALOG_CREATE_ARRAY::OnParameterChanged( wxCommandEvent& event )
|
||||
{
|
||||
const wxObject* evObj = event.GetEventObject();
|
||||
|
||||
// some controls result in a change of enablement
|
||||
if( evObj == m_radioBoxGridNumberingScheme
|
||||
|| evObj == m_checkBoxGridRestartNumbering )
|
||||
{
|
||||
setControlEnablement();
|
||||
}
|
||||
|
||||
if( evObj == m_entryCentreX || evObj == m_entryCentreY )
|
||||
{
|
||||
calculateCircularArrayProperties();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -142,12 +132,12 @@ static const std::string& alphabetFromNumberingScheme(
|
|||
static const std::string alphaHex = "0123456789ABCDEF";
|
||||
static const std::string alphaFull = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
static const std::string alphaNoIOSQXZ = "ABCDEFGHJKLMNPRTUVWY";
|
||||
static const std::string alphaEmpty = "";
|
||||
|
||||
switch( type )
|
||||
{
|
||||
default:
|
||||
case DIALOG_CREATE_ARRAY::NUMBERING_NUMERIC:
|
||||
return alphaNumeric;
|
||||
break;
|
||||
|
||||
case DIALOG_CREATE_ARRAY::NUMBERING_HEX:
|
||||
return alphaHex;
|
||||
|
@ -157,12 +147,9 @@ static const std::string& alphabetFromNumberingScheme(
|
|||
|
||||
case DIALOG_CREATE_ARRAY::NUMBERING_ALPHA_FULL:
|
||||
return alphaFull;
|
||||
|
||||
default:
|
||||
wxASSERT_MSG( false, wxString( "Un-handled numbering scheme: " ) << type );
|
||||
}
|
||||
|
||||
return alphaEmpty;
|
||||
return alphaNumeric;
|
||||
}
|
||||
|
||||
|
||||
|
@ -183,9 +170,6 @@ static bool getNumberingOffset( const std::string& str,
|
|||
{
|
||||
const std::string alphabet = alphabetFromNumberingScheme( type );
|
||||
|
||||
wxASSERT_MSG( !alphabet.empty(), wxString(
|
||||
"Unable to determine alphabet for numbering scheme: " ) << type );
|
||||
|
||||
int offset = 0;
|
||||
const int radix = alphabet.length();
|
||||
|
||||
|
@ -242,8 +226,8 @@ void DIALOG_CREATE_ARRAY::OnOkClick( wxCommandEvent& event )
|
|||
newGrid->m_2dArrayNumbering = m_radioBoxGridNumberingScheme->GetSelection() != 0;
|
||||
|
||||
// this is only correct if you set the choice up according to the enum size and order
|
||||
ok = ok && m_choicePriAxisNumbering->GetSelection() < NUMBERING_TYPE_Max
|
||||
&& m_choiceSecAxisNumbering->GetSelection() < NUMBERING_TYPE_Max;
|
||||
ok = ok && m_choicePriAxisNumbering->GetSelection() <= NUMBERING_TYPE_MAX
|
||||
&& m_choiceSecAxisNumbering->GetSelection() <= NUMBERING_TYPE_MAX;
|
||||
|
||||
// mind undefined casts to enums (should not be able to happen)
|
||||
if( ok )
|
||||
|
@ -264,7 +248,7 @@ void DIALOG_CREATE_ARRAY::OnOkClick( wxCommandEvent& event )
|
|||
m_entryGridSecNumberingOffset->GetValue().ToStdString(),
|
||||
newGrid->m_secAxisNumType, newGrid->m_numberingOffsetY );
|
||||
|
||||
newGrid->m_shouldRenumber = m_checkBoxGridRestartNumbering->GetValue();
|
||||
newGrid->m_shouldRenumber = m_rbGridStartNumberingOpt->GetSelection() == 1;
|
||||
|
||||
// Only use settings if all values are good
|
||||
if( ok )
|
||||
|
@ -284,16 +268,8 @@ void DIALOG_CREATE_ARRAY::OnOkClick( wxCommandEvent& event )
|
|||
ok = ok && m_entryCircCount->GetValue().ToLong( &newCirc->m_nPts );
|
||||
|
||||
newCirc->m_rotateItems = m_entryRotateItemsCb->GetValue();
|
||||
|
||||
newCirc->m_shouldRenumber = m_checkBoxCircRestartNumbering->GetValue();
|
||||
|
||||
// This is only correct if you set the choice up according to the enum size and order
|
||||
ok = ok && m_choiceCircNumberingType->GetSelection() < NUMBERING_TYPE_Max;
|
||||
|
||||
// Mind undefined casts to enums (should not be able to happen)
|
||||
if( ok )
|
||||
newCirc->m_numberingType =
|
||||
(ARRAY_NUMBERING_TYPE_T) m_choiceCircNumberingType->GetSelection();
|
||||
newCirc->m_shouldRenumber = m_rbCircStartNumberingOpt->GetSelection() == 1;
|
||||
newCirc->m_numberingType = NUMBERING_NUMERIC;
|
||||
|
||||
ok = ok && m_entryCircNumberingStart->GetValue().ToLong( &newCirc->m_numberingOffset );
|
||||
|
||||
|
@ -311,17 +287,19 @@ void DIALOG_CREATE_ARRAY::OnOkClick( wxCommandEvent& event )
|
|||
|
||||
// assign pointer and ownership here
|
||||
*m_settings = newSettings;
|
||||
|
||||
ReadConfigFromControls();
|
||||
|
||||
EndModal( wxID_OK );
|
||||
}
|
||||
|
||||
else
|
||||
wxMessageBox( _(" Bad parameters" ) );
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_CREATE_ARRAY::setControlEnablement()
|
||||
{
|
||||
const bool renumber = m_checkBoxGridRestartNumbering->GetValue();
|
||||
const bool renumber = m_rbGridStartNumberingOpt->GetSelection() == 1;
|
||||
|
||||
// If we're not renumbering, we can't set the numbering scheme
|
||||
// or axis numbering types
|
||||
|
@ -341,10 +319,7 @@ void DIALOG_CREATE_ARRAY::setControlEnablement()
|
|||
m_entryGridPriNumberingOffset->Enable( renumber );
|
||||
m_entryGridSecNumberingOffset->Enable( renumber && num2d );
|
||||
|
||||
|
||||
// Circular array options
|
||||
const bool circRenumber = m_checkBoxCircRestartNumbering->GetValue();
|
||||
m_choiceCircNumberingType->Enable( circRenumber );
|
||||
m_entryCircNumberingStart->Enable( m_rbCircStartNumberingOpt->GetSelection() == 1 );
|
||||
}
|
||||
|
||||
|
||||
|
@ -371,8 +346,6 @@ std::string DIALOG_CREATE_ARRAY::ARRAY_OPTIONS::getCoordinateNumber( int n,
|
|||
std::string itemNum;
|
||||
const std::string& alphabet = alphabetFromNumberingScheme( type );
|
||||
|
||||
if( !alphabet.empty() )
|
||||
{
|
||||
const bool nonUnitColsStartAt0 = schemeNonUnitColsStartAt0( type );
|
||||
|
||||
bool firstRound = true;
|
||||
|
@ -389,7 +362,6 @@ std::string DIALOG_CREATE_ARRAY::ARRAY_OPTIONS::getCoordinateNumber( int n,
|
|||
n /= radix;
|
||||
firstRound = false;
|
||||
} while( n );
|
||||
}
|
||||
|
||||
return itemNum;
|
||||
}
|
||||
|
@ -493,7 +465,7 @@ void DIALOG_CREATE_ARRAY::ARRAY_CIRCULAR_OPTIONS::TransformItem( int n, BOARD_IT
|
|||
|
||||
if( m_angle == 0 )
|
||||
// angle is zero, divide evenly into m_nPts
|
||||
angle = 3600.0 * n / float(m_nPts);
|
||||
angle = 3600.0 * n / double( m_nPts );
|
||||
else
|
||||
// n'th step
|
||||
angle = m_angle * n;
|
||||
|
@ -508,5 +480,9 @@ void DIALOG_CREATE_ARRAY::ARRAY_CIRCULAR_OPTIONS::TransformItem( int n, BOARD_IT
|
|||
|
||||
wxString DIALOG_CREATE_ARRAY::ARRAY_CIRCULAR_OPTIONS::GetItemNumber( int aN ) const
|
||||
{
|
||||
// The first new pad has aN number == 1, not 0
|
||||
if( m_shouldRenumber ) // numbering pad from initial user value
|
||||
return getCoordinateNumber( aN - 1 + m_numberingOffset, m_numberingType );
|
||||
else // numbering pad from inital pad number
|
||||
return getCoordinateNumber( aN + m_numberingOffset, m_numberingType );
|
||||
}
|
||||
|
|
|
@ -190,9 +190,10 @@ public:
|
|||
* for pin numbering on BGAs, etc
|
||||
*/
|
||||
NUMBERING_ALPHA_FULL, ///< Full 26-character alphabet
|
||||
NUMBERING_TYPE_Max ///< Invalid maximum value, insert above here
|
||||
};
|
||||
|
||||
#define NUMBERING_TYPE_MAX NUMBERING_ALPHA_FULL
|
||||
|
||||
/**
|
||||
* Persistent dialog options
|
||||
*/
|
||||
|
@ -342,8 +343,9 @@ private:
|
|||
std::string m_circCentreX, m_circCentreY,
|
||||
m_circAngle, m_circCount, m_circNumberingOffset;
|
||||
bool m_circRotate;
|
||||
|
||||
int m_arrayTypeTab;
|
||||
int m_gridNumberingScheme;
|
||||
int m_circNumberingScheme;
|
||||
};
|
||||
|
||||
static CREATE_ARRAY_DIALOG_ENTRIES m_options;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||
// C++ code generated with wxFormBuilder (version Jan 1 2016)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -105,20 +105,22 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID
|
|||
|
||||
wxString m_radioBoxGridNumberingAxisChoices[] = { _("Horizontal, then vertical"), _("Vertical, then horizontal") };
|
||||
int m_radioBoxGridNumberingAxisNChoices = sizeof( m_radioBoxGridNumberingAxisChoices ) / sizeof( wxString );
|
||||
m_radioBoxGridNumberingAxis = new wxRadioBox( m_gridPanel, wxID_ANY, _("Numbering Direction"), wxDefaultPosition, wxDefaultSize, m_radioBoxGridNumberingAxisNChoices, m_radioBoxGridNumberingAxisChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxGridNumberingAxis = new wxRadioBox( m_gridPanel, wxID_ANY, _("Pad Numbering Direction"), wxDefaultPosition, wxDefaultSize, m_radioBoxGridNumberingAxisNChoices, m_radioBoxGridNumberingAxisChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxGridNumberingAxis->SetSelection( 0 );
|
||||
bSizer3->Add( m_radioBoxGridNumberingAxis, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
m_checkBoxGridReverseNumbering = new wxCheckBox( m_gridPanel, wxID_ANY, _("Reverse numbering on alternate rows or columns"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_checkBoxGridReverseNumbering = new wxCheckBox( m_gridPanel, wxID_ANY, _("Reverse pad numbering on alternate rows or columns"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizer3->Add( m_checkBoxGridReverseNumbering, 0, wxALL, 5 );
|
||||
|
||||
m_checkBoxGridRestartNumbering = new wxCheckBox( m_gridPanel, wxID_ANY, _("Restart numbering"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_checkBoxGridRestartNumbering->SetValue(true);
|
||||
bSizer3->Add( m_checkBoxGridRestartNumbering, 0, wxALL, 5 );
|
||||
wxString m_rbGridStartNumberingOptChoices[] = { _("Use first free number"), _("From start value") };
|
||||
int m_rbGridStartNumberingOptNChoices = sizeof( m_rbGridStartNumberingOptChoices ) / sizeof( wxString );
|
||||
m_rbGridStartNumberingOpt = new wxRadioBox( m_gridPanel, wxID_ANY, _("Initial pad number"), wxDefaultPosition, wxDefaultSize, m_rbGridStartNumberingOptNChoices, m_rbGridStartNumberingOptChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_rbGridStartNumberingOpt->SetSelection( 1 );
|
||||
bSizer3->Add( m_rbGridStartNumberingOpt, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxString m_radioBoxGridNumberingSchemeChoices[] = { _("Continuous (1, 2, 3...)"), _("Coordinate (A1, A2, ... B1, ...)") };
|
||||
int m_radioBoxGridNumberingSchemeNChoices = sizeof( m_radioBoxGridNumberingSchemeChoices ) / sizeof( wxString );
|
||||
m_radioBoxGridNumberingScheme = new wxRadioBox( m_gridPanel, wxID_ANY, _("Numbering Scheme"), wxDefaultPosition, wxDefaultSize, m_radioBoxGridNumberingSchemeNChoices, m_radioBoxGridNumberingSchemeChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxGridNumberingScheme = new wxRadioBox( m_gridPanel, wxID_ANY, _("Pad Numbering Scheme"), wxDefaultPosition, wxDefaultSize, m_radioBoxGridNumberingSchemeNChoices, m_radioBoxGridNumberingSchemeChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxGridNumberingScheme->SetSelection( 1 );
|
||||
bSizer3->Add( m_radioBoxGridNumberingScheme, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
|
@ -147,7 +149,7 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID
|
|||
wxBoxSizer* bSizer5;
|
||||
bSizer5 = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_labelGridNumberingOffset = new wxStaticText( m_gridPanel, wxID_ANY, _("Numbering start:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_labelGridNumberingOffset = new wxStaticText( m_gridPanel, wxID_ANY, _("Pad numbering start:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_labelGridNumberingOffset->Wrap( -1 );
|
||||
bSizer5->Add( m_labelGridNumberingOffset, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||
|
||||
|
@ -242,37 +244,30 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID
|
|||
|
||||
bSizer4->Add( gbSizer2, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizer6;
|
||||
bSizer6 = new wxBoxSizer( wxVERTICAL );
|
||||
wxStaticBoxSizer* sbcircPadNumberingSizer;
|
||||
sbcircPadNumberingSizer = new wxStaticBoxSizer( new wxStaticBox( m_circularPanel, wxID_ANY, _("Pad Numbering Options") ), wxVERTICAL );
|
||||
|
||||
m_checkBoxCircRestartNumbering = new wxCheckBox( m_circularPanel, wxID_ANY, _("Restart numbering"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_checkBoxCircRestartNumbering->SetValue(true);
|
||||
bSizer6->Add( m_checkBoxCircRestartNumbering, 0, wxALL, 5 );
|
||||
|
||||
m_labelCircNumbering = new wxStaticText( m_circularPanel, wxID_ANY, _("Numbering type:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_labelCircNumbering->Wrap( -1 );
|
||||
bSizer6->Add( m_labelCircNumbering, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
wxArrayString m_choiceCircNumberingTypeChoices;
|
||||
m_choiceCircNumberingType = new wxChoice( m_circularPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceCircNumberingTypeChoices, 0 );
|
||||
m_choiceCircNumberingType->SetSelection( 0 );
|
||||
bSizer6->Add( m_choiceCircNumberingType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
wxString m_rbCircStartNumberingOptChoices[] = { _("Use first free number"), _("From start value") };
|
||||
int m_rbCircStartNumberingOptNChoices = sizeof( m_rbCircStartNumberingOptChoices ) / sizeof( wxString );
|
||||
m_rbCircStartNumberingOpt = new wxRadioBox( sbcircPadNumberingSizer->GetStaticBox(), wxID_ANY, _("Initial pad number"), wxDefaultPosition, wxDefaultSize, m_rbCircStartNumberingOptNChoices, m_rbCircStartNumberingOptChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_rbCircStartNumberingOpt->SetSelection( 0 );
|
||||
sbcircPadNumberingSizer->Add( m_rbCircStartNumberingOpt, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizer7;
|
||||
bSizer7 = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_labelCircNumStart = new wxStaticText( m_circularPanel, wxID_ANY, _("Numbering start:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_labelCircNumStart = new wxStaticText( sbcircPadNumberingSizer->GetStaticBox(), wxID_ANY, _("Pad numbering start value:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_labelCircNumStart->Wrap( -1 );
|
||||
bSizer7->Add( m_labelCircNumStart, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||
|
||||
m_entryCircNumberingStart = new wxTextCtrl( m_circularPanel, wxID_ANY, _("1"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizer7->Add( m_entryCircNumberingStart, 0, wxALL, 5 );
|
||||
m_entryCircNumberingStart = new wxTextCtrl( sbcircPadNumberingSizer->GetStaticBox(), wxID_ANY, _("1"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizer7->Add( m_entryCircNumberingStart, 1, wxALL, 5 );
|
||||
|
||||
|
||||
bSizer6->Add( bSizer7, 0, wxEXPAND, 5 );
|
||||
sbcircPadNumberingSizer->Add( bSizer7, 0, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bSizer4->Add( bSizer6, 1, wxALL|wxEXPAND, 5 );
|
||||
bSizer4->Add( sbcircPadNumberingSizer, 1, wxEXPAND|wxALL, 5 );
|
||||
|
||||
|
||||
m_circularPanel->SetSizer( bSizer4 );
|
||||
|
@ -294,7 +289,6 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID
|
|||
|
||||
this->SetSizer( bMainSizer );
|
||||
this->Layout();
|
||||
bMainSizer->Fit( this );
|
||||
|
||||
// Connect Events
|
||||
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_CREATE_ARRAY_BASE::OnClose ) );
|
||||
|
@ -305,12 +299,13 @@ DIALOG_CREATE_ARRAY_BASE::DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID
|
|||
m_entryOffsetX->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryOffsetY->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryStagger->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_checkBoxGridRestartNumbering->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_rbGridStartNumberingOpt->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_radioBoxGridNumberingScheme->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryCentreX->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryCentreY->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryCircAngle->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryCircCount->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_rbCircStartNumberingOpt->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_stdButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnOkClick ), NULL, this );
|
||||
}
|
||||
|
||||
|
@ -325,12 +320,13 @@ DIALOG_CREATE_ARRAY_BASE::~DIALOG_CREATE_ARRAY_BASE()
|
|||
m_entryOffsetX->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryOffsetY->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryStagger->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_checkBoxGridRestartNumbering->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_rbGridStartNumberingOpt->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_radioBoxGridNumberingScheme->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryCentreX->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryCentreY->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryCircAngle->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_entryCircCount->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_rbCircStartNumberingOpt->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnParameterChanged ), NULL, this );
|
||||
m_stdButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_CREATE_ARRAY_BASE::OnOkClick ), NULL, this );
|
||||
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
<property name="minimum_size">-1,-1</property>
|
||||
<property name="name">DIALOG_CREATE_ARRAY_BASE</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">-1,-1</property>
|
||||
<property name="size">652,473</property>
|
||||
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
||||
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
|
||||
<property name="title">Create Array</property>
|
||||
|
@ -258,11 +258,11 @@
|
|||
<property name="name">bSizer2</property>
|
||||
<property name="orient">wxHORIZONTAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxGridBagSizer" expanded="0">
|
||||
<object class="wxGridBagSizer" expanded="1">
|
||||
<property name="empty_cell_size"></property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols"></property>
|
||||
|
@ -397,7 +397,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -577,7 +577,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -757,7 +757,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -1023,7 +1023,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -1289,7 +1289,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -1555,7 +1555,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -1821,7 +1821,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -2014,7 +2014,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Numbering Direction</property>
|
||||
<property name="label">Pad Numbering Direction</property>
|
||||
<property name="majorDimension">1</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
|
@ -2104,7 +2104,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Reverse numbering on alternate rows or columns</property>
|
||||
<property name="label">Reverse pad numbering on alternate rows or columns</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -2159,11 +2159,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">wxALL</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="0">
|
||||
<object class="wxRadioBox" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
|
@ -2177,7 +2177,7 @@
|
|||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="checked">1</property>
|
||||
<property name="choices">"Use first free number" "From start value"</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
|
@ -2192,7 +2192,8 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Restart numbering</property>
|
||||
<property name="label">Initial pad number</property>
|
||||
<property name="majorDimension">1</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -2200,7 +2201,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_checkBoxGridRestartNumbering</property>
|
||||
<property name="name">m_rbGridStartNumberingOpt</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -2208,9 +2209,10 @@
|
|||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="selection">1</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="style">wxRA_SPECIFY_COLS</property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
|
@ -2222,7 +2224,6 @@
|
|||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnCheckBox">OnParameterChanged</event>
|
||||
<event name="OnEnterWindow"></event>
|
||||
<event name="OnEraseBackground"></event>
|
||||
<event name="OnKeyDown"></event>
|
||||
|
@ -2239,6 +2240,7 @@
|
|||
<event name="OnMouseEvents"></event>
|
||||
<event name="OnMouseWheel"></event>
|
||||
<event name="OnPaint"></event>
|
||||
<event name="OnRadioBox">OnParameterChanged</event>
|
||||
<event name="OnRightDClick"></event>
|
||||
<event name="OnRightDown"></event>
|
||||
<event name="OnRightUp"></event>
|
||||
|
@ -2280,7 +2282,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Numbering Scheme</property>
|
||||
<property name="label">Pad Numbering Scheme</property>
|
||||
<property name="majorDimension">1</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
|
@ -2720,7 +2722,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Numbering start:</property>
|
||||
<property name="label">Pad numbering start:</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -2806,7 +2808,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -2897,7 +2899,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -3182,7 +3184,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -3448,7 +3450,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -3886,7 +3888,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -4152,7 +4154,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -4389,106 +4391,22 @@
|
|||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="flag">wxEXPAND|wxALL</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<object class="wxStaticBoxSizer" expanded="1">
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Pad Numbering Options</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bSizer6</property>
|
||||
<property name="name">sbcircPadNumberingSizer</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="parent">1</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="0">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="checked">1</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="label">Restart numbering</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_checkBoxCircRestartNumbering</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="OnChar"></event>
|
||||
<event name="OnCheckBox"></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">
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="0">
|
||||
<object class="wxRadioBox" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
|
@ -4502,6 +4420,7 @@
|
|||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="choices">"Use first free number" "From start value"</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
|
@ -4516,7 +4435,8 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Numbering type:</property>
|
||||
<property name="label">Initial pad number</property>
|
||||
<property name="majorDimension">1</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -4524,90 +4444,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_labelCircNumbering</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="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">-1</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|wxBOTTOM|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxChoice" expanded="0">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="choices"></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_choiceCircNumberingType</property>
|
||||
<property name="name">m_rbCircStartNumberingOpt</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -4618,7 +4455,7 @@
|
|||
<property name="selection">0</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="style">wxRA_SPECIFY_COLS</property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
|
@ -4630,7 +4467,6 @@
|
|||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChar"></event>
|
||||
<event name="OnChoice"></event>
|
||||
<event name="OnEnterWindow"></event>
|
||||
<event name="OnEraseBackground"></event>
|
||||
<event name="OnKeyDown"></event>
|
||||
|
@ -4647,6 +4483,7 @@
|
|||
<event name="OnMouseEvents"></event>
|
||||
<event name="OnMouseWheel"></event>
|
||||
<event name="OnPaint"></event>
|
||||
<event name="OnRadioBox">OnParameterChanged</event>
|
||||
<event name="OnRightDClick"></event>
|
||||
<event name="OnRightDown"></event>
|
||||
<event name="OnRightUp"></event>
|
||||
|
@ -4696,7 +4533,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Numbering start:</property>
|
||||
<property name="label">Pad numbering start value:</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -4750,7 +4587,7 @@
|
|||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxTextCtrl" expanded="0">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
|
@ -4782,7 +4619,7 @@
|
|||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||
// C++ code generated with wxFormBuilder (version Jan 1 2016)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
|
@ -30,6 +30,7 @@ class DIALOG_SHIM;
|
|||
#include <wx/bitmap.h>
|
||||
#include <wx/image.h>
|
||||
#include <wx/icon.h>
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/notebook.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/dialog.h>
|
||||
|
@ -69,7 +70,7 @@ class DIALOG_CREATE_ARRAY_BASE : public DIALOG_SHIM
|
|||
wxRadioBox* m_radioBoxGridStaggerType;
|
||||
wxRadioBox* m_radioBoxGridNumberingAxis;
|
||||
wxCheckBox* m_checkBoxGridReverseNumbering;
|
||||
wxCheckBox* m_checkBoxGridRestartNumbering;
|
||||
wxRadioBox* m_rbGridStartNumberingOpt;
|
||||
wxRadioBox* m_radioBoxGridNumberingScheme;
|
||||
wxStaticText* m_labelPriAxisNumbering;
|
||||
wxChoice* m_choicePriAxisNumbering;
|
||||
|
@ -94,9 +95,7 @@ class DIALOG_CREATE_ARRAY_BASE : public DIALOG_SHIM
|
|||
wxTextCtrl* m_entryCircCount;
|
||||
wxStaticText* m_labelCircRotate;
|
||||
wxCheckBox* m_entryRotateItemsCb;
|
||||
wxCheckBox* m_checkBoxCircRestartNumbering;
|
||||
wxStaticText* m_labelCircNumbering;
|
||||
wxChoice* m_choiceCircNumberingType;
|
||||
wxRadioBox* m_rbCircStartNumberingOpt;
|
||||
wxStaticText* m_labelCircNumStart;
|
||||
wxTextCtrl* m_entryCircNumberingStart;
|
||||
wxStdDialogButtonSizer* m_stdButtons;
|
||||
|
@ -111,7 +110,7 @@ class DIALOG_CREATE_ARRAY_BASE : public DIALOG_SHIM
|
|||
|
||||
public:
|
||||
|
||||
DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_CREATE_ARRAY, const wxString& title = _("Create Array"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_CREATE_ARRAY, const wxString& title = _("Create Array"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 652,473 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
~DIALOG_CREATE_ARRAY_BASE();
|
||||
|
||||
};
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2016 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2015 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
||||
* Copyright (C) 2015 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 1992-2016 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
|
||||
|
@ -1605,10 +1605,14 @@ void PCB_BASE_EDIT_FRAME::createArray()
|
|||
if( !item )
|
||||
return;
|
||||
|
||||
// Note: original item is no more modified.
|
||||
|
||||
bool editingModule = NULL != dynamic_cast<FOOTPRINT_EDIT_FRAME*>( this );
|
||||
|
||||
BOARD* board = GetBoard();
|
||||
// Remember it is valid only in the module editor
|
||||
|
||||
// Remember this is valid and used only in the module editor.
|
||||
// in board editor, the parent of items is usually the board.
|
||||
MODULE* module = static_cast<MODULE*>( item->GetParent() );
|
||||
|
||||
DIALOG_CREATE_ARRAY::ARRAY_OPTIONS* array_opts = NULL;
|
||||
|
@ -1633,77 +1637,35 @@ void PCB_BASE_EDIT_FRAME::createArray()
|
|||
// modedit saves everything upfront
|
||||
SaveCopyInUndoList( board->m_Modules, UR_MODEDIT );
|
||||
}
|
||||
else
|
||||
{
|
||||
// We may also change the original item
|
||||
SaveCopyInUndoList( item, UR_CHANGED );
|
||||
}
|
||||
|
||||
wxString cachedString;
|
||||
#define INCREMENT_REF false
|
||||
#define INCREMENT_PADNUMBER true
|
||||
|
||||
if( item->Type() == PCB_MODULE_T )
|
||||
// The first item in list is the original item. We do not modify it
|
||||
for( int ptN = 1; ptN < array_opts->GetArraySize(); ptN++ )
|
||||
{
|
||||
cachedString = static_cast<MODULE*>( item )->GetReferencePrefix();
|
||||
}
|
||||
else if( EDA_TEXT* text = dynamic_cast<EDA_TEXT*>( item ) )
|
||||
{
|
||||
// Copy the text (not just take a reference
|
||||
cachedString = text->GetText();
|
||||
}
|
||||
BOARD_ITEM* new_item;
|
||||
|
||||
for( int ptN = 0; ptN < array_opts->GetArraySize(); ptN++ )
|
||||
{
|
||||
BOARD_ITEM* new_item = NULL;
|
||||
|
||||
if( ptN == 0 )
|
||||
{
|
||||
new_item = item;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( editingModule )
|
||||
new_item = module->DuplicateAndAddItem( item, true );
|
||||
new_item = module->DuplicateAndAddItem( item, INCREMENT_PADNUMBER );
|
||||
else
|
||||
new_item = board->DuplicateAndAddItem( item, true );
|
||||
new_item = board->DuplicateAndAddItem( item, INCREMENT_REF );
|
||||
|
||||
if( new_item )
|
||||
{
|
||||
array_opts->TransformItem( ptN, new_item, rotPoint );
|
||||
newItemsList.PushItem( new_item );
|
||||
}
|
||||
newItemsList.PushItem( new_item ); // For undo list
|
||||
}
|
||||
|
||||
if( !new_item || !array_opts->ShouldRenumberItems() )
|
||||
continue;
|
||||
|
||||
// Renumber items
|
||||
switch( new_item->Type() )
|
||||
{
|
||||
case PCB_MODULE_TEXT_T:
|
||||
case PCB_TEXT_T:
|
||||
{
|
||||
EDA_TEXT* text = dynamic_cast<EDA_TEXT*>( new_item );
|
||||
if( text )
|
||||
text->SetText( array_opts->InterpolateNumberIntoString( ptN, cachedString ) );
|
||||
|
||||
break;
|
||||
}
|
||||
case PCB_MODULE_T:
|
||||
{
|
||||
const wxString padName = array_opts->GetItemNumber( ptN );
|
||||
static_cast<MODULE*>( new_item )->SetReference( cachedString + padName );
|
||||
|
||||
break;
|
||||
}
|
||||
case PCB_PAD_T:
|
||||
// Renumber pads. Only new pad number renumbering has meaning,
|
||||
// in the footprint editor.
|
||||
if( new_item->Type() == PCB_PAD_T )
|
||||
{
|
||||
const wxString padName = array_opts->GetItemNumber( ptN );
|
||||
static_cast<D_PAD*>( new_item )->SetPadName( padName );
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -308,11 +308,6 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
|
|||
AddMenuItem( aPopMenu, ID_POPUP_PCB_DUPLICATE_ITEM,
|
||||
msg, KiBitmap( duplicate_target_xpm ) );
|
||||
|
||||
msg = AddHotkeyName( _("Create Target Array" ), g_Board_Editor_Hokeys_Descr,
|
||||
HK_CREATE_ARRAY );
|
||||
AddMenuItem( aPopMenu, ID_POPUP_PCB_CREATE_ARRAY,
|
||||
msg, KiBitmap( array_target_xpm ) );
|
||||
|
||||
msg = AddHotkeyName( _( "Edit Target" ), g_Board_Editor_Hokeys_Descr,
|
||||
HK_EDIT_ITEM );
|
||||
AddMenuItem( aPopMenu, ID_POPUP_PCB_EDIT_MIRE, msg, KiBitmap( edit_xpm ) );
|
||||
|
|
|
@ -702,6 +702,8 @@ int EDIT_TOOL::MoveExact( const TOOL_EVENT& aEvent )
|
|||
|
||||
int EDIT_TOOL::Duplicate( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
// Note: original items are no more modified.
|
||||
|
||||
bool increment = aEvent.IsAction( &COMMON_ACTIONS::duplicateIncrement );
|
||||
|
||||
// first, check if we have a selection, or try to get one
|
||||
|
@ -803,8 +805,6 @@ int EDIT_TOOL::CreateArray( const TOOL_EVENT& aEvent )
|
|||
if( !hoverSelection( selection ) )
|
||||
return 0;
|
||||
|
||||
bool originalItemsModified = false;
|
||||
|
||||
// we have a selection to work on now, so start the tool process
|
||||
|
||||
PCB_BASE_FRAME* editFrame = getEditFrame<PCB_BASE_FRAME>();
|
||||
|
@ -815,11 +815,6 @@ int EDIT_TOOL::CreateArray( const TOOL_EVENT& aEvent )
|
|||
// Module editors do their undo point upfront for the whole module
|
||||
editFrame->SaveCopyInUndoList( editFrame->GetBoard()->m_Modules, UR_MODEDIT );
|
||||
}
|
||||
else
|
||||
{
|
||||
// We may also change the original item
|
||||
editFrame->SaveCopyInUndoList( selection.items, UR_CHANGED );
|
||||
}
|
||||
|
||||
DIALOG_CREATE_ARRAY::ARRAY_OPTIONS* array_opts = NULL;
|
||||
|
||||
|
@ -840,39 +835,25 @@ int EDIT_TOOL::CreateArray( const TOOL_EVENT& aEvent )
|
|||
if( !item )
|
||||
continue;
|
||||
|
||||
wxString cachedString;
|
||||
|
||||
if( item->Type() == PCB_MODULE_T )
|
||||
{
|
||||
cachedString = static_cast<MODULE*>( item )->GetReferencePrefix();
|
||||
}
|
||||
else if( EDA_TEXT* text = dynamic_cast<EDA_TEXT*>( item ) )
|
||||
{
|
||||
// Copy the text (not just take a reference
|
||||
cachedString = text->GetText();
|
||||
}
|
||||
|
||||
// iterate across the array, laying out the item at the
|
||||
// correct position
|
||||
const unsigned nPoints = array_opts->GetArraySize();
|
||||
|
||||
for( unsigned ptN = 0; ptN < nPoints; ++ptN )
|
||||
// The first item in list is the original item. We do not modify it
|
||||
for( unsigned ptN = 1; ptN < nPoints; ++ptN )
|
||||
{
|
||||
BOARD_ITEM* newItem = NULL;
|
||||
|
||||
if( ptN == 0 )
|
||||
newItem = item;
|
||||
else
|
||||
{
|
||||
// if renumbering, no need to increment
|
||||
const bool increment = !array_opts->ShouldRenumberItems();
|
||||
|
||||
// Some items cannot be duplicated
|
||||
// i.e. the ref and value fields of a footprint or zones
|
||||
// therefore newItem can be null
|
||||
|
||||
#define INCREMENT_REF false
|
||||
#define INCREMENT_PADNUMBER true
|
||||
|
||||
if( m_editModules )
|
||||
newItem = editFrame->GetBoard()->m_Modules->DuplicateAndAddItem( item, increment );
|
||||
newItem = editFrame->GetBoard()->m_Modules->DuplicateAndAddItem(
|
||||
item, INCREMENT_PADNUMBER );
|
||||
else
|
||||
{
|
||||
#if 0
|
||||
|
@ -883,7 +864,10 @@ int EDIT_TOOL::CreateArray( const TOOL_EVENT& aEvent )
|
|||
newItem = NULL;
|
||||
else
|
||||
#endif
|
||||
newItem = editFrame->GetBoard()->DuplicateAndAddItem( item, increment );
|
||||
newItem = editFrame->GetBoard()->DuplicateAndAddItem(
|
||||
item, INCREMENT_REF );
|
||||
// @TODO: we should merge zones. This is a bit tricky, because
|
||||
// the undo command needs saving old area, if it is merged.
|
||||
}
|
||||
|
||||
if( newItem )
|
||||
|
@ -903,43 +887,14 @@ int EDIT_TOOL::CreateArray( const TOOL_EVENT& aEvent )
|
|||
editFrame->GetGalCanvas()->GetView()->Add( newItem );
|
||||
getModel<BOARD>()->GetRatsnest()->Update( newItem );
|
||||
}
|
||||
}
|
||||
|
||||
// set the number if needed:
|
||||
// Only renumbering pads has meaning:
|
||||
if( newItem && array_opts->ShouldRenumberItems() )
|
||||
{
|
||||
switch( newItem->Type() )
|
||||
{
|
||||
case PCB_PAD_T:
|
||||
if( newItem->Type() == PCB_PAD_T )
|
||||
{
|
||||
const wxString padName = array_opts->GetItemNumber( ptN );
|
||||
static_cast<D_PAD*>( newItem )->SetPadName( padName );
|
||||
|
||||
originalItemsModified = true;
|
||||
break;
|
||||
}
|
||||
case PCB_MODULE_T:
|
||||
{
|
||||
const wxString moduleName = array_opts->GetItemNumber( ptN );
|
||||
MODULE* module = static_cast<MODULE*>( newItem );
|
||||
module->SetReference( cachedString + moduleName );
|
||||
|
||||
originalItemsModified = true;
|
||||
break;
|
||||
}
|
||||
case PCB_MODULE_TEXT_T:
|
||||
case PCB_TEXT_T:
|
||||
{
|
||||
EDA_TEXT* text = dynamic_cast<EDA_TEXT*>( newItem );
|
||||
if( text )
|
||||
text->SetText( array_opts->InterpolateNumberIntoString( ptN, cachedString ) );
|
||||
|
||||
originalItemsModified = true;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
// no renumbering of other items
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -947,15 +902,7 @@ int EDIT_TOOL::CreateArray( const TOOL_EVENT& aEvent )
|
|||
|
||||
if( !m_editModules )
|
||||
{
|
||||
if( originalItemsModified )
|
||||
{
|
||||
// Update the appearance of the original items
|
||||
selection.group->ItemsViewUpdate( KIGFX::VIEW_ITEM::GEOMETRY );
|
||||
}
|
||||
|
||||
// Add all items as a single undo point for PCB editors
|
||||
// TODO: Can this be merged into the previous undo point (where
|
||||
// we saved the original items)
|
||||
editFrame->SaveCopyInUndoList( newItemList, UR_NEW );
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue