mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-04-05 00:15:30 +00:00
Allow pcb rule areas to handle keepout and placement concurrently
- Implements component classes for placement rule areas and multichannel tool - Implements property inspector properties for rule areas - Fixes some zone member default initialisation issues - Gates all multichannel-related imlpementation with existing adv config flag - Removes rule area type enum, replaces with inference from keepout and placement settings
This commit is contained in:
parent
73f31d2d80
commit
37a3e55bd3
pcbnew
CMakeLists.txtcomponent_class_manager.h
dialogs
dialog_rule_area_properties.cppdialog_rule_area_properties_base.cppdialog_rule_area_properties_base.fbpdialog_rule_area_properties_base.hpanel_rule_area_properties_keepout_base.cpppanel_rule_area_properties_keepout_base.fbppanel_rule_area_properties_keepout_base.hpanel_rule_area_properties_placement_base.cpppanel_rule_area_properties_placement_base.fbppanel_rule_area_properties_placement_base.h
drc
edit_zone_helpers.cpppcb_io/kicad_sexpr
router
tools
zone.cppzone.hzone_filler.cppzone_settings.cppzone_settings.hzones.hzones_functions_for_undo_redo.cpp@ -174,6 +174,8 @@ set( PCBNEW_DIALOGS
|
||||
dialogs/panel_pcbnew_color_settings.cpp
|
||||
dialogs/panel_pcbnew_display_origin.cpp
|
||||
dialogs/panel_pcbnew_display_origin_base.cpp
|
||||
dialogs/panel_rule_area_properties_keepout_base.cpp
|
||||
dialogs/panel_rule_area_properties_placement_base.cpp
|
||||
dialogs/panel_setup_constraints.cpp
|
||||
dialogs/panel_setup_constraints_base.cpp
|
||||
dialogs/panel_setup_formatting.cpp
|
||||
|
@ -113,6 +113,12 @@ public:
|
||||
// All pointers to COMPONENT_CLASS objects will being invalid
|
||||
void Reset();
|
||||
|
||||
/// @brief Fetches a read-only map of the fundamental component classes
|
||||
const std::unordered_map<wxString, std::unique_ptr<COMPONENT_CLASS>>& GetClasses() const
|
||||
{
|
||||
return m_classes;
|
||||
}
|
||||
|
||||
protected:
|
||||
/// All individual component classes
|
||||
std::unordered_map<wxString, std::unique_ptr<COMPONENT_CLASS>> m_classes;
|
||||
|
@ -23,13 +23,17 @@
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <advanced_config.h>
|
||||
#include <kiface_base.h>
|
||||
#include <confirm.h>
|
||||
#include <board.h>
|
||||
#include <footprint.h>
|
||||
#include <pcb_edit_frame.h>
|
||||
#include <pcbnew_settings.h>
|
||||
#include <zone_settings.h>
|
||||
#include <dialog_rule_area_properties_base.h>
|
||||
#include <panel_rule_area_properties_keepout_base.h>
|
||||
#include <panel_rule_area_properties_placement_base.h>
|
||||
#include <widgets/unit_binder.h>
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/statline.h>
|
||||
@ -45,16 +49,21 @@ class DIALOG_RULE_AREA_PROPERTIES : public DIALOG_RULE_AREA_PROPERTIES_BASE
|
||||
{
|
||||
public:
|
||||
DIALOG_RULE_AREA_PROPERTIES( PCB_BASE_FRAME* aParent, ZONE_SETTINGS* aSettings,
|
||||
CONVERT_SETTINGS* aConvertSettings );
|
||||
CONVERT_SETTINGS* aConvertSettings, BOARD* aBoard );
|
||||
~DIALOG_RULE_AREA_PROPERTIES();
|
||||
|
||||
private:
|
||||
bool TransferDataToWindow() override;
|
||||
bool TransferDataFromWindow() override;
|
||||
|
||||
void PopulatePlacementSourceList( RULE_AREA_PLACEMENT_SOURCE_TYPE placementType );
|
||||
|
||||
void OnLayerSelection( wxDataViewEvent& event ) override;
|
||||
void OnRuleTypeSelect( wxCommandEvent& event ) override;
|
||||
void OnSheetNameRbClicked( wxCommandEvent& event );
|
||||
void OnComponentClassRbClicked( wxCommandEvent& event );
|
||||
|
||||
private:
|
||||
BOARD* m_board;
|
||||
UNIT_BINDER m_outlineHatchPitch;
|
||||
PCB_BASE_FRAME* m_parent;
|
||||
ZONE_SETTINGS m_zonesettings; ///< the working copy of zone settings
|
||||
@ -69,34 +78,62 @@ private:
|
||||
wxStaticText* m_gapUnits;
|
||||
UNIT_BINDER* m_gap;
|
||||
wxCheckBox* m_cbDeleteOriginals;
|
||||
|
||||
// The name of a rule area source that is not now found on the board (e.g. after a netlist
|
||||
// update). This is used to re-populate the zone settings if the selection is not changed.
|
||||
wxString m_notFoundPlacementSourceName;
|
||||
|
||||
PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE* m_keepoutProperties;
|
||||
PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE* m_placementProperties;
|
||||
RULE_AREA_PLACEMENT_SOURCE_TYPE m_currentKeepoutSource;
|
||||
|
||||
std::set<wxString> m_sheetNames;
|
||||
std::set<wxString> m_componentClasses;
|
||||
};
|
||||
|
||||
|
||||
int InvokeRuleAreaEditor( PCB_BASE_FRAME* aCaller, ZONE_SETTINGS* aZoneSettings,
|
||||
int InvokeRuleAreaEditor( PCB_BASE_FRAME* aCaller, ZONE_SETTINGS* aZoneSettings, BOARD* aBoard,
|
||||
CONVERT_SETTINGS* aConvertSettings )
|
||||
{
|
||||
DIALOG_RULE_AREA_PROPERTIES dlg( aCaller, aZoneSettings, aConvertSettings );
|
||||
DIALOG_RULE_AREA_PROPERTIES dlg( aCaller, aZoneSettings, aConvertSettings, aBoard );
|
||||
|
||||
return dlg.ShowModal();
|
||||
}
|
||||
|
||||
|
||||
DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES( PCB_BASE_FRAME* aParent,
|
||||
ZONE_SETTINGS* aSettings,
|
||||
CONVERT_SETTINGS* aConvertSettings ) :
|
||||
DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES( PCB_BASE_FRAME* aParent,
|
||||
ZONE_SETTINGS* aSettings,
|
||||
CONVERT_SETTINGS* aConvertSettings,
|
||||
BOARD* aBoard ) :
|
||||
DIALOG_RULE_AREA_PROPERTIES_BASE( aParent ),
|
||||
m_outlineHatchPitch( aParent, m_stBorderHatchPitchText,
|
||||
m_outlineHatchPitchCtrl, m_outlineHatchUnits ),
|
||||
m_convertSettings( aConvertSettings ),
|
||||
m_rbCenterline( nullptr ),
|
||||
m_rbBoundingHull( nullptr ),
|
||||
m_cbDeleteOriginals( nullptr )
|
||||
m_board( aBoard ), m_outlineHatchPitch( aParent, m_stBorderHatchPitchText,
|
||||
m_outlineHatchPitchCtrl, m_outlineHatchUnits ),
|
||||
m_convertSettings( aConvertSettings ), m_rbCenterline( nullptr ),
|
||||
m_rbBoundingHull( nullptr ), m_cbDeleteOriginals( nullptr )
|
||||
{
|
||||
m_parent = aParent;
|
||||
|
||||
m_ptr = aSettings;
|
||||
m_zonesettings = *aSettings;
|
||||
|
||||
m_keepoutProperties = new PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE( m_areaPropertiesNb );
|
||||
m_areaPropertiesNb->AddPage( m_keepoutProperties, _( "Keepout" ), true );
|
||||
|
||||
if( ADVANCED_CFG::GetCfg().m_EnableMultichannelTool )
|
||||
{
|
||||
m_placementProperties = new PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE( m_areaPropertiesNb );
|
||||
m_areaPropertiesNb->AddPage( m_placementProperties, _( "Placement" ) );
|
||||
|
||||
m_placementProperties->m_sourceSheetnameRb->Connect(
|
||||
wxEVT_RADIOBUTTON,
|
||||
wxCommandEventHandler( DIALOG_RULE_AREA_PROPERTIES::OnSheetNameRbClicked ), NULL,
|
||||
this );
|
||||
m_placementProperties->m_sourceComponentClassRb->Connect(
|
||||
wxEVT_RADIOBUTTON,
|
||||
wxCommandEventHandler( DIALOG_RULE_AREA_PROPERTIES::OnComponentClassRbClicked ),
|
||||
NULL, this );
|
||||
}
|
||||
|
||||
if( aConvertSettings )
|
||||
{
|
||||
wxStaticBox* bConvertBox = new wxStaticBox( this, wxID_ANY,
|
||||
@ -150,6 +187,89 @@ DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES( PCB_BASE_FRAME* aParen
|
||||
}
|
||||
|
||||
|
||||
DIALOG_RULE_AREA_PROPERTIES::~DIALOG_RULE_AREA_PROPERTIES()
|
||||
{
|
||||
if( ADVANCED_CFG::GetCfg().m_EnableMultichannelTool )
|
||||
{
|
||||
m_placementProperties->m_sourceSheetnameRb->Disconnect(
|
||||
wxEVT_RADIOBUTTON,
|
||||
wxCommandEventHandler( DIALOG_RULE_AREA_PROPERTIES::OnSheetNameRbClicked ), NULL,
|
||||
this );
|
||||
m_placementProperties->m_sourceComponentClassRb->Disconnect(
|
||||
wxEVT_RADIOBUTTON,
|
||||
wxCommandEventHandler( DIALOG_RULE_AREA_PROPERTIES::OnComponentClassRbClicked ),
|
||||
NULL, this );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_RULE_AREA_PROPERTIES::OnSheetNameRbClicked( wxCommandEvent& event )
|
||||
{
|
||||
if( m_currentKeepoutSource == RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME )
|
||||
return;
|
||||
|
||||
m_zonesettings.SetRuleAreaPlacementSource( wxEmptyString );
|
||||
m_zonesettings.SetRuleAreaPlacementSourceType( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME );
|
||||
PopulatePlacementSourceList( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME );
|
||||
m_currentKeepoutSource = RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME;
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_RULE_AREA_PROPERTIES::OnComponentClassRbClicked( wxCommandEvent& event )
|
||||
{
|
||||
if( m_currentKeepoutSource == RULE_AREA_PLACEMENT_SOURCE_TYPE::COMPONENT_CLASS )
|
||||
return;
|
||||
|
||||
m_zonesettings.SetRuleAreaPlacementSource( wxEmptyString );
|
||||
m_zonesettings.SetRuleAreaPlacementSourceType(
|
||||
RULE_AREA_PLACEMENT_SOURCE_TYPE::COMPONENT_CLASS );
|
||||
PopulatePlacementSourceList( RULE_AREA_PLACEMENT_SOURCE_TYPE::COMPONENT_CLASS );
|
||||
m_currentKeepoutSource = RULE_AREA_PLACEMENT_SOURCE_TYPE::COMPONENT_CLASS;
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_RULE_AREA_PROPERTIES::PopulatePlacementSourceList(
|
||||
RULE_AREA_PLACEMENT_SOURCE_TYPE placementType )
|
||||
{
|
||||
m_placementProperties->m_sourceObjectNameCb->Clear();
|
||||
|
||||
std::set<wxString>* sourceStrings;
|
||||
|
||||
switch( placementType )
|
||||
{
|
||||
case RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME:
|
||||
sourceStrings = &m_sheetNames;
|
||||
break;
|
||||
case RULE_AREA_PLACEMENT_SOURCE_TYPE::COMPONENT_CLASS:
|
||||
sourceStrings = &m_componentClasses;
|
||||
break;
|
||||
}
|
||||
|
||||
int curSourceIdx = -1;
|
||||
const wxString& curSourceName = m_zonesettings.GetRuleAreaPlacementSource();
|
||||
|
||||
for( const wxString& sourceName : *sourceStrings )
|
||||
{
|
||||
if( curSourceName == sourceName )
|
||||
curSourceIdx = m_placementProperties->m_sourceObjectNameCb->GetCount();
|
||||
|
||||
m_placementProperties->m_sourceObjectNameCb->Append( sourceName );
|
||||
}
|
||||
|
||||
if( curSourceIdx != -1 )
|
||||
{
|
||||
m_placementProperties->m_sourceObjectNameCb->Select( curSourceIdx );
|
||||
}
|
||||
else if( curSourceName != wxEmptyString )
|
||||
{
|
||||
m_notFoundPlacementSourceName = curSourceName;
|
||||
wxString notFoundDisplayName = _( "Not found on board: " ) + curSourceName;
|
||||
m_placementProperties->m_sourceObjectNameCb->Insert( notFoundDisplayName, 0 );
|
||||
m_placementProperties->m_sourceObjectNameCb->Select( 0 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool DIALOG_RULE_AREA_PROPERTIES::TransferDataToWindow()
|
||||
{
|
||||
if( m_convertSettings )
|
||||
@ -163,26 +283,56 @@ bool DIALOG_RULE_AREA_PROPERTIES::TransferDataToWindow()
|
||||
}
|
||||
|
||||
// Init keepout parameters:
|
||||
m_cbTracksCtrl->SetValue( m_zonesettings.GetDoNotAllowTracks() );
|
||||
m_cbViasCtrl->SetValue( m_zonesettings.GetDoNotAllowVias() );
|
||||
m_cbPadsCtrl->SetValue( m_zonesettings.GetDoNotAllowPads() );
|
||||
m_cbFootprintsCtrl->SetValue( m_zonesettings.GetDoNotAllowFootprints() );
|
||||
m_cbCopperPourCtrl->SetValue( m_zonesettings.GetDoNotAllowCopperPour() );
|
||||
m_keepoutProperties->m_cbTracksCtrl->SetValue( m_zonesettings.GetDoNotAllowTracks() );
|
||||
m_keepoutProperties->m_cbViasCtrl->SetValue( m_zonesettings.GetDoNotAllowVias() );
|
||||
m_keepoutProperties->m_cbPadsCtrl->SetValue( m_zonesettings.GetDoNotAllowPads() );
|
||||
m_keepoutProperties->m_cbFootprintsCtrl->SetValue( m_zonesettings.GetDoNotAllowFootprints() );
|
||||
m_keepoutProperties->m_cbCopperPourCtrl->SetValue( m_zonesettings.GetDoNotAllowCopperPour() );
|
||||
|
||||
// Init placement parameters:
|
||||
m_ruleText->SetText( m_zonesettings.GetRuleAreaPlacementSource() );
|
||||
if( ADVANCED_CFG::GetCfg().m_EnableMultichannelTool )
|
||||
{
|
||||
m_placementProperties->m_enabled->SetValue( m_zonesettings.GetRuleAreaPlacementEnabled() );
|
||||
|
||||
if( m_zonesettings.GetRuleAreaType() == RULE_AREA_TYPE::KEEPOUT )
|
||||
{
|
||||
m_rbRuleType->Select( 0 );
|
||||
m_placementRuleSizer->Show( false );
|
||||
m_keepoutRuleSizer->Show( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_rbRuleType->Select( 1 );
|
||||
m_placementRuleSizer->Show( true );
|
||||
m_keepoutRuleSizer->Show( false );
|
||||
// Load schematic sheet and component class lists
|
||||
if( m_board )
|
||||
{
|
||||
// Fetch component classes
|
||||
const std::unordered_map<wxString, std::unique_ptr<COMPONENT_CLASS>>& classes =
|
||||
m_board->GetComponentClassManager().GetClasses();
|
||||
|
||||
for( const auto& [k, v] : classes )
|
||||
m_componentClasses.insert( k );
|
||||
|
||||
// Fetch sheet names
|
||||
for( FOOTPRINT* fp : m_board->Footprints() )
|
||||
m_sheetNames.insert( fp->GetSheetname() );
|
||||
|
||||
if( m_zonesettings.GetRuleAreaPlacementSourceType()
|
||||
== RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME )
|
||||
{
|
||||
m_placementProperties->m_sourceComponentClassRb->SetValue( false );
|
||||
m_placementProperties->m_sourceSheetnameRb->SetValue( true );
|
||||
PopulatePlacementSourceList( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME );
|
||||
m_currentKeepoutSource = RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_placementProperties->m_sourceSheetnameRb->SetValue( false );
|
||||
m_placementProperties->m_sourceComponentClassRb->SetValue( true );
|
||||
PopulatePlacementSourceList( RULE_AREA_PLACEMENT_SOURCE_TYPE::COMPONENT_CLASS );
|
||||
m_currentKeepoutSource = RULE_AREA_PLACEMENT_SOURCE_TYPE::COMPONENT_CLASS;
|
||||
}
|
||||
}
|
||||
|
||||
// Handle most-useful notebook page selection
|
||||
m_areaPropertiesNb->SetSelection( 0 );
|
||||
|
||||
if( !m_zonesettings.HasKeepoutParametersSet()
|
||||
&& m_zonesettings.GetRuleAreaPlacementEnabled() )
|
||||
{
|
||||
m_areaPropertiesNb->SetSelection( 1 );
|
||||
}
|
||||
}
|
||||
|
||||
m_cbLocked->SetValue( m_zonesettings.m_Locked );
|
||||
@ -205,25 +355,6 @@ bool DIALOG_RULE_AREA_PROPERTIES::TransferDataToWindow()
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_RULE_AREA_PROPERTIES::OnRuleTypeSelect( wxCommandEvent& event )
|
||||
{
|
||||
if( m_rbRuleType->GetSelection() == 0 )
|
||||
{
|
||||
m_zonesettings.SetRuleAreaType( RULE_AREA_TYPE::KEEPOUT );
|
||||
m_placementRuleSizer->Show( false );
|
||||
m_keepoutRuleSizer->Show( true );
|
||||
Layout();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_zonesettings.SetRuleAreaType( RULE_AREA_TYPE::PLACEMENT );
|
||||
m_placementRuleSizer->Show( true );
|
||||
m_keepoutRuleSizer->Show( false );
|
||||
Layout();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_RULE_AREA_PROPERTIES::OnLayerSelection( wxDataViewEvent& event )
|
||||
{
|
||||
if( event.GetColumn() != 0 )
|
||||
@ -269,15 +400,49 @@ bool DIALOG_RULE_AREA_PROPERTIES::TransferDataFromWindow()
|
||||
}
|
||||
|
||||
// Init keepout parameters:
|
||||
m_zonesettings.SetRuleAreaType( m_rbRuleType->GetSelection() == 0 ? RULE_AREA_TYPE::KEEPOUT : RULE_AREA_TYPE::PLACEMENT );
|
||||
m_zonesettings.SetRuleAreaPlacementSourceType( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME );
|
||||
m_zonesettings.SetRuleAreaPlacementSource( m_ruleText->GetText() );
|
||||
m_zonesettings.SetIsRuleArea( true );
|
||||
m_zonesettings.SetDoNotAllowTracks( m_cbTracksCtrl->GetValue() );
|
||||
m_zonesettings.SetDoNotAllowVias( m_cbViasCtrl->GetValue() );
|
||||
m_zonesettings.SetDoNotAllowCopperPour( m_cbCopperPourCtrl->GetValue() );
|
||||
m_zonesettings.SetDoNotAllowPads( m_cbPadsCtrl->GetValue() );
|
||||
m_zonesettings.SetDoNotAllowFootprints( m_cbFootprintsCtrl->GetValue() );
|
||||
m_zonesettings.SetDoNotAllowTracks( m_keepoutProperties->m_cbTracksCtrl->GetValue() );
|
||||
m_zonesettings.SetDoNotAllowVias( m_keepoutProperties->m_cbViasCtrl->GetValue() );
|
||||
m_zonesettings.SetDoNotAllowCopperPour( m_keepoutProperties->m_cbCopperPourCtrl->GetValue() );
|
||||
m_zonesettings.SetDoNotAllowPads( m_keepoutProperties->m_cbPadsCtrl->GetValue() );
|
||||
m_zonesettings.SetDoNotAllowFootprints( m_keepoutProperties->m_cbFootprintsCtrl->GetValue() );
|
||||
|
||||
// Init placement parameters
|
||||
if( ADVANCED_CFG::GetCfg().m_EnableMultichannelTool )
|
||||
{
|
||||
m_zonesettings.SetRuleAreaPlacementEnabled( m_placementProperties->m_enabled->GetValue() );
|
||||
|
||||
if( m_placementProperties->m_sourceSheetnameRb->GetValue() )
|
||||
{
|
||||
m_zonesettings.SetRuleAreaPlacementSourceType(
|
||||
RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_zonesettings.SetRuleAreaPlacementSourceType(
|
||||
RULE_AREA_PLACEMENT_SOURCE_TYPE::COMPONENT_CLASS );
|
||||
}
|
||||
|
||||
int selectedSourceIdx = m_placementProperties->m_sourceObjectNameCb->GetSelection();
|
||||
|
||||
if( selectedSourceIdx != wxNOT_FOUND )
|
||||
{
|
||||
if( selectedSourceIdx == 0 && m_notFoundPlacementSourceName != wxEmptyString )
|
||||
{
|
||||
m_zonesettings.SetRuleAreaPlacementSource( m_notFoundPlacementSourceName );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_zonesettings.SetRuleAreaPlacementSource(
|
||||
m_placementProperties->m_sourceObjectNameCb->GetString(
|
||||
selectedSourceIdx ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_zonesettings.SetRuleAreaPlacementSource( wxEmptyString );
|
||||
}
|
||||
}
|
||||
|
||||
if( m_zonesettings.m_Layers.count() == 0 )
|
||||
{
|
||||
|
@ -13,7 +13,6 @@ DIALOG_RULE_AREA_PROPERTIES_BASE::DIALOG_RULE_AREA_PROPERTIES_BASE( wxWindow* pa
|
||||
{
|
||||
this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
|
||||
|
||||
wxBoxSizer* bMainSizer;
|
||||
bMainSizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxBoxSizer* bUpperSizer;
|
||||
@ -62,103 +61,13 @@ DIALOG_RULE_AREA_PROPERTIES_BASE::DIALOG_RULE_AREA_PROPERTIES_BASE( wxWindow* pa
|
||||
|
||||
bSizerRight->Add( bSizer6, 0, wxBOTTOM|wxEXPAND, 5 );
|
||||
|
||||
wxFlexGridSizer* fgSizer2;
|
||||
fgSizer2 = new wxFlexGridSizer( 0, 1, 3, 0 );
|
||||
fgSizer2->SetFlexibleDirection( wxBOTH );
|
||||
fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
m_staticText7 = new wxStaticText( this, wxID_ANY, _("Area properties:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText7->Wrap( -1 );
|
||||
bSizerRight->Add( m_staticText7, 0, wxALL, 5 );
|
||||
|
||||
wxString m_rbRuleTypeChoices[] = { _("Keepout"), _("Placement") };
|
||||
int m_rbRuleTypeNChoices = sizeof( m_rbRuleTypeChoices ) / sizeof( wxString );
|
||||
m_rbRuleType = new wxRadioBox( this, wxID_ANY, _("Rule type"), wxDefaultPosition, wxDefaultSize, m_rbRuleTypeNChoices, m_rbRuleTypeChoices, 2, wxRA_SPECIFY_COLS );
|
||||
m_rbRuleType->SetSelection( 0 );
|
||||
fgSizer2->Add( m_rbRuleType, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
m_areaPropertiesNb = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
|
||||
m_keepoutRuleSizer = new wxFlexGridSizer( 0, 1, 3, 0 );
|
||||
m_keepoutRuleSizer->SetFlexibleDirection( wxBOTH );
|
||||
m_keepoutRuleSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
m_cbTracksCtrl = new wxCheckBox( this, wxID_ANY, _("Keep out tracks"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbTracksCtrl->SetToolTip( _("Prevent tracks from routing into this area") );
|
||||
|
||||
m_keepoutRuleSizer->Add( m_cbTracksCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cbViasCtrl = new wxCheckBox( this, wxID_ANY, _("Keep out vias"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbViasCtrl->SetToolTip( _("Prevent vias from being placed in this area") );
|
||||
|
||||
m_keepoutRuleSizer->Add( m_cbViasCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cbPadsCtrl = new wxCheckBox( this, wxID_ANY, _("Keep out pads"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbPadsCtrl->SetToolTip( _("Raise a DRC error if a pad overlaps this area") );
|
||||
|
||||
m_keepoutRuleSizer->Add( m_cbPadsCtrl, 0, wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cbCopperPourCtrl = new wxCheckBox( this, wxID_ANY, _("Keep out zone fills"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbCopperPourCtrl->SetToolTip( _("Zones will not fill copper into this area") );
|
||||
|
||||
m_keepoutRuleSizer->Add( m_cbCopperPourCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cbFootprintsCtrl = new wxCheckBox( this, wxID_ANY, _("Keep out footprints"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbFootprintsCtrl->SetToolTip( _("Raise a DRC error if a footprint courtyard overlaps this area") );
|
||||
|
||||
m_keepoutRuleSizer->Add( m_cbFootprintsCtrl, 0, wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
|
||||
fgSizer2->Add( m_keepoutRuleSizer, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bSizerRight->Add( fgSizer2, 0, wxEXPAND, 5 );
|
||||
|
||||
m_placementRuleSizer = new wxFlexGridSizer( 0, 1, 3, 0 );
|
||||
m_placementRuleSizer->AddGrowableCol( 0 );
|
||||
m_placementRuleSizer->SetFlexibleDirection( wxBOTH );
|
||||
m_placementRuleSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
m_staticText31 = new wxStaticText( this, wxID_ANY, _("Schematic Sheetname:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText31->Wrap( -1 );
|
||||
m_staticText31->SetToolTip( _("A unique name for this rule area for use in DRC rules") );
|
||||
|
||||
m_placementRuleSizer->Add( m_staticText31, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
m_ruleText = new wxStyledTextCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString );
|
||||
m_ruleText->SetUseTabs( true );
|
||||
m_ruleText->SetTabWidth( 4 );
|
||||
m_ruleText->SetIndent( 4 );
|
||||
m_ruleText->SetTabIndents( true );
|
||||
m_ruleText->SetBackSpaceUnIndents( true );
|
||||
m_ruleText->SetViewEOL( false );
|
||||
m_ruleText->SetViewWhiteSpace( false );
|
||||
m_ruleText->SetMarginWidth( 2, 0 );
|
||||
m_ruleText->SetIndentationGuides( true );
|
||||
m_ruleText->SetReadOnly( false );
|
||||
m_ruleText->SetMarginType( 1, wxSTC_MARGIN_SYMBOL );
|
||||
m_ruleText->SetMarginMask( 1, wxSTC_MASK_FOLDERS );
|
||||
m_ruleText->SetMarginWidth( 1, 16);
|
||||
m_ruleText->SetMarginSensitive( 1, true );
|
||||
m_ruleText->SetProperty( wxT("fold"), wxT("1") );
|
||||
m_ruleText->SetFoldFlags( wxSTC_FOLDFLAG_LINEBEFORE_CONTRACTED | wxSTC_FOLDFLAG_LINEAFTER_CONTRACTED );
|
||||
m_ruleText->SetMarginType( 0, wxSTC_MARGIN_NUMBER );
|
||||
m_ruleText->SetMarginWidth( 0, m_ruleText->TextWidth( wxSTC_STYLE_LINENUMBER, wxT("_99999") ) );
|
||||
m_ruleText->MarkerDefine( wxSTC_MARKNUM_FOLDER, wxSTC_MARK_BOXPLUS );
|
||||
m_ruleText->MarkerSetBackground( wxSTC_MARKNUM_FOLDER, wxColour( wxT("BLACK") ) );
|
||||
m_ruleText->MarkerSetForeground( wxSTC_MARKNUM_FOLDER, wxColour( wxT("WHITE") ) );
|
||||
m_ruleText->MarkerDefine( wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_BOXMINUS );
|
||||
m_ruleText->MarkerSetBackground( wxSTC_MARKNUM_FOLDEROPEN, wxColour( wxT("BLACK") ) );
|
||||
m_ruleText->MarkerSetForeground( wxSTC_MARKNUM_FOLDEROPEN, wxColour( wxT("WHITE") ) );
|
||||
m_ruleText->MarkerDefine( wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_EMPTY );
|
||||
m_ruleText->MarkerDefine( wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_BOXPLUS );
|
||||
m_ruleText->MarkerSetBackground( wxSTC_MARKNUM_FOLDEREND, wxColour( wxT("BLACK") ) );
|
||||
m_ruleText->MarkerSetForeground( wxSTC_MARKNUM_FOLDEREND, wxColour( wxT("WHITE") ) );
|
||||
m_ruleText->MarkerDefine( wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_BOXMINUS );
|
||||
m_ruleText->MarkerSetBackground( wxSTC_MARKNUM_FOLDEROPENMID, wxColour( wxT("BLACK") ) );
|
||||
m_ruleText->MarkerSetForeground( wxSTC_MARKNUM_FOLDEROPENMID, wxColour( wxT("WHITE") ) );
|
||||
m_ruleText->MarkerDefine( wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_EMPTY );
|
||||
m_ruleText->MarkerDefine( wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_EMPTY );
|
||||
m_ruleText->SetSelBackground( true, wxSystemSettings::GetColour( wxSYS_COLOUR_HIGHLIGHT ) );
|
||||
m_ruleText->SetSelForeground( true, wxSystemSettings::GetColour( wxSYS_COLOUR_HIGHLIGHTTEXT ) );
|
||||
m_placementRuleSizer->Add( m_ruleText, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
|
||||
bSizerRight->Add( m_placementRuleSizer, 0, wxEXPAND, 5 );
|
||||
bSizerRight->Add( m_areaPropertiesNb, 1, wxEXPAND | wxALL, 5 );
|
||||
|
||||
wxGridBagSizer* gbSizer1;
|
||||
gbSizer1 = new wxGridBagSizer( 3, 3 );
|
||||
@ -193,6 +102,9 @@ DIALOG_RULE_AREA_PROPERTIES_BASE::DIALOG_RULE_AREA_PROPERTIES_BASE( wxWindow* pa
|
||||
bSizerRight->Add( gbSizer1, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
|
||||
bSizerRight->Add( 0, 0, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bUpperSizer->Add( bSizerRight, 1, wxEXPAND|wxALL, 5 );
|
||||
|
||||
|
||||
@ -217,7 +129,6 @@ DIALOG_RULE_AREA_PROPERTIES_BASE::DIALOG_RULE_AREA_PROPERTIES_BASE( wxWindow* pa
|
||||
m_layers->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler( DIALOG_RULE_AREA_PROPERTIES_BASE::OnLayerSelection ), NULL, this );
|
||||
m_layers->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( DIALOG_RULE_AREA_PROPERTIES_BASE::onLayerListRightDown ), NULL, this );
|
||||
m_layers->Connect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_RULE_AREA_PROPERTIES_BASE::OnSizeLayersList ), NULL, this );
|
||||
m_rbRuleType->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_RULE_AREA_PROPERTIES_BASE::OnRuleTypeSelect ), NULL, this );
|
||||
}
|
||||
|
||||
DIALOG_RULE_AREA_PROPERTIES_BASE::~DIALOG_RULE_AREA_PROPERTIES_BASE()
|
||||
@ -226,6 +137,5 @@ DIALOG_RULE_AREA_PROPERTIES_BASE::~DIALOG_RULE_AREA_PROPERTIES_BASE()
|
||||
m_layers->Disconnect( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler( DIALOG_RULE_AREA_PROPERTIES_BASE::OnLayerSelection ), NULL, this );
|
||||
m_layers->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( DIALOG_RULE_AREA_PROPERTIES_BASE::onLayerListRightDown ), NULL, this );
|
||||
m_layers->Disconnect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_RULE_AREA_PROPERTIES_BASE::OnSizeLayersList ), NULL, this );
|
||||
m_rbRuleType->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_RULE_AREA_PROPERTIES_BASE::OnRuleTypeSelect ), NULL, this );
|
||||
|
||||
}
|
||||
|
@ -63,7 +63,7 @@
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bMainSizer</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="permission">none</property>
|
||||
<property name="permission">private</property>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxLEFT|wxRIGHT|wxTOP</property>
|
||||
@ -411,579 +411,124 @@
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxFlexGridSizer" expanded="true">
|
||||
<property name="cols">1</property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols"></property>
|
||||
<property name="growablerows"></property>
|
||||
<property name="hgap">0</property>
|
||||
<object class="wxStaticText" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Area properties:</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">fgSizer2</property>
|
||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||
<property name="permission">none</property>
|
||||
<property name="rows">0</property>
|
||||
<property name="vgap">3</property>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxRadioBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">"Keepout" "Placement"</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="drag_accept_files">0</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">Rule type</property>
|
||||
<property name="majorDimension">2</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_rbRuleType</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="selection">0</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxRA_SPECIFY_COLS</property>
|
||||
<property name="subclass">; ; forward_declare</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="OnRadioBox">OnRuleTypeSelect</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxFlexGridSizer" expanded="true">
|
||||
<property name="cols">1</property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols"></property>
|
||||
<property name="growablerows"></property>
|
||||
<property name="hgap">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">m_keepoutRuleSizer</property>
|
||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="rows">0</property>
|
||||
<property name="vgap">3</property>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Keep out tracks</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_cbTracksCtrl</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">Prevent tracks from routing into this area</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Keep out vias</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_cbViasCtrl</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">Prevent vias from being placed in this area</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Keep out pads</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_cbPadsCtrl</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">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">Raise a DRC error if a pad overlaps this area</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Keep out zone fills</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_cbCopperPourCtrl</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">Zones will not fill copper into this area</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Keep out footprints</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_cbFootprintsCtrl</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">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">Raise a DRC error if a footprint courtyard overlaps this area</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>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_staticText7</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">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">-1</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxFlexGridSizer" expanded="true">
|
||||
<property name="cols">1</property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols">0</property>
|
||||
<property name="growablerows"></property>
|
||||
<property name="hgap">0</property>
|
||||
<property name="flag">wxEXPAND | wxALL</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxNotebook" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="bitmapsize"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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="name">m_placementRuleSizer</property>
|
||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_areaPropertiesNb</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="rows">0</property>
|
||||
<property name="vgap">3</property>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Schematic Sheetname:</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_staticText31</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">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">A unique name for this rule area for use in DRC rules</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">-1</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStyledTextCtrl" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</property>
|
||||
<property name="backspace_unindents">1</property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="folding">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="indentation_guides">1</property>
|
||||
<property name="line_numbers">1</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_ruleText</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="read_only">0</property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="tab_indents">1</property>
|
||||
<property name="tab_width">4</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="use_tabs">1</property>
|
||||
<property name="view_eol">0</property>
|
||||
<property name="view_whitespace">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
<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">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
@ -1334,6 +879,16 @@
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="spacer" expanded="true">
|
||||
<property name="height">0</property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="width">0</property>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -21,8 +21,7 @@
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/checkbox.h>
|
||||
#include <wx/radiobox.h>
|
||||
#include <wx/stc/stc.h>
|
||||
#include <wx/notebook.h>
|
||||
#include <wx/choice.h>
|
||||
#include <wx/gbsizer.h>
|
||||
#include <wx/button.h>
|
||||
@ -36,6 +35,7 @@
|
||||
class DIALOG_RULE_AREA_PROPERTIES_BASE : public DIALOG_SHIM
|
||||
{
|
||||
private:
|
||||
wxBoxSizer* bMainSizer;
|
||||
|
||||
protected:
|
||||
wxStaticText* m_staticTextLayerSelection;
|
||||
@ -43,16 +43,8 @@ class DIALOG_RULE_AREA_PROPERTIES_BASE : public DIALOG_SHIM
|
||||
wxStaticText* m_staticText3;
|
||||
wxTextCtrl* m_tcName;
|
||||
wxCheckBox* m_cbLocked;
|
||||
wxRadioBox* m_rbRuleType;
|
||||
wxFlexGridSizer* m_keepoutRuleSizer;
|
||||
wxCheckBox* m_cbTracksCtrl;
|
||||
wxCheckBox* m_cbViasCtrl;
|
||||
wxCheckBox* m_cbPadsCtrl;
|
||||
wxCheckBox* m_cbCopperPourCtrl;
|
||||
wxCheckBox* m_cbFootprintsCtrl;
|
||||
wxFlexGridSizer* m_placementRuleSizer;
|
||||
wxStaticText* m_staticText31;
|
||||
wxStyledTextCtrl* m_ruleText;
|
||||
wxStaticText* m_staticText7;
|
||||
wxNotebook* m_areaPropertiesNb;
|
||||
wxStaticText* m_staticTextStyle;
|
||||
wxChoice* m_OutlineDisplayCtrl;
|
||||
wxStaticText* m_stBorderHatchPitchText;
|
||||
@ -66,7 +58,6 @@ class DIALOG_RULE_AREA_PROPERTIES_BASE : public DIALOG_SHIM
|
||||
virtual void OnLayerSelection( wxDataViewEvent& event ) { event.Skip(); }
|
||||
virtual void onLayerListRightDown( wxMouseEvent& event ) { event.Skip(); }
|
||||
virtual void OnSizeLayersList( wxSizeEvent& event ) { event.Skip(); }
|
||||
virtual void OnRuleTypeSelect( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
||||
|
||||
public:
|
||||
|
51
pcbnew/dialogs/panel_rule_area_properties_keepout_base.cpp
Normal file
51
pcbnew/dialogs/panel_rule_area_properties_keepout_base.cpp
Normal file
@ -0,0 +1,51 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "panel_rule_area_properties_keepout_base.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE::PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
|
||||
{
|
||||
m_keepoutRuleSizer = new wxFlexGridSizer( 0, 1, 3, 0 );
|
||||
m_keepoutRuleSizer->SetFlexibleDirection( wxBOTH );
|
||||
m_keepoutRuleSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
m_cbTracksCtrl = new wxCheckBox( this, wxID_ANY, _("Keep out tracks"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbTracksCtrl->SetToolTip( _("Prevent tracks from routing into this area") );
|
||||
|
||||
m_keepoutRuleSizer->Add( m_cbTracksCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cbViasCtrl = new wxCheckBox( this, wxID_ANY, _("Keep out vias"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbViasCtrl->SetToolTip( _("Prevent vias from being placed in this area") );
|
||||
|
||||
m_keepoutRuleSizer->Add( m_cbViasCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cbPadsCtrl = new wxCheckBox( this, wxID_ANY, _("Keep out pads"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbPadsCtrl->SetToolTip( _("Raise a DRC error if a pad overlaps this area") );
|
||||
|
||||
m_keepoutRuleSizer->Add( m_cbPadsCtrl, 0, wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cbCopperPourCtrl = new wxCheckBox( this, wxID_ANY, _("Keep out zone fills"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbCopperPourCtrl->SetToolTip( _("Zones will not fill copper into this area") );
|
||||
|
||||
m_keepoutRuleSizer->Add( m_cbCopperPourCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cbFootprintsCtrl = new wxCheckBox( this, wxID_ANY, _("Keep out footprints"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cbFootprintsCtrl->SetToolTip( _("Raise a DRC error if a footprint courtyard overlaps this area") );
|
||||
|
||||
m_keepoutRuleSizer->Add( m_cbFootprintsCtrl, 0, wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
|
||||
this->SetSizer( m_keepoutRuleSizer );
|
||||
this->Layout();
|
||||
m_keepoutRuleSizer->Fit( this );
|
||||
}
|
||||
|
||||
PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE::~PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE()
|
||||
{
|
||||
}
|
398
pcbnew/dialogs/panel_rule_area_properties_keepout_base.fbp
Normal file
398
pcbnew/dialogs/panel_rule_area_properties_keepout_base.fbp
Normal file
@ -0,0 +1,398 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<wxFormBuilder_Project>
|
||||
<FileVersion major="1" minor="18"/>
|
||||
<object class="Project" expanded="true">
|
||||
<property name="code_generation">C++</property>
|
||||
<property name="cpp_class_decoration">; </property>
|
||||
<property name="cpp_disconnect_events">0</property>
|
||||
<property name="cpp_event_generation">connect</property>
|
||||
<property name="cpp_help_provider">none</property>
|
||||
<property name="cpp_namespace"></property>
|
||||
<property name="cpp_precompiled_header"></property>
|
||||
<property name="cpp_use_array_enum">0</property>
|
||||
<property name="cpp_use_enum">1</property>
|
||||
<property name="embedded_files_path">res</property>
|
||||
<property name="encoding">UTF-8</property>
|
||||
<property name="file">panel_rule_area_properties_keepout_base</property>
|
||||
<property name="first_id">6000</property>
|
||||
<property name="internationalize">1</property>
|
||||
<property name="lua_skip_events">1</property>
|
||||
<property name="lua_ui_table">UI</property>
|
||||
<property name="name">PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE</property>
|
||||
<property name="path">.</property>
|
||||
<property name="php_disconnect_events">0</property>
|
||||
<property name="php_disconnect_mode">source_name</property>
|
||||
<property name="php_skip_events">1</property>
|
||||
<property name="python_disconnect_events">0</property>
|
||||
<property name="python_disconnect_mode">source_name</property>
|
||||
<property name="python_image_path_wrapper_function_name"></property>
|
||||
<property name="python_indent_with_spaces">1</property>
|
||||
<property name="python_skip_events">1</property>
|
||||
<property name="relative_path">1</property>
|
||||
<property name="use_microsoft_bom">0</property>
|
||||
<property name="use_native_eol">0</property>
|
||||
<object class="Panel" expanded="true">
|
||||
<property name="aui_managed">0</property>
|
||||
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
|
||||
<property name="bg"></property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="drag_accept_files">0</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="event_handler">impl_virtual</property>
|
||||
<property name="fg"></property>
|
||||
<property name="font"></property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">-1,-1</property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="two_step_creation">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style">wxTAB_TRAVERSAL</property>
|
||||
<object class="wxFlexGridSizer" expanded="true">
|
||||
<property name="cols">1</property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols"></property>
|
||||
<property name="growablerows"></property>
|
||||
<property name="hgap">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">m_keepoutRuleSizer</property>
|
||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="rows">0</property>
|
||||
<property name="vgap">3</property>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Keep out tracks</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_cbTracksCtrl</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">public</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">Prevent tracks from routing into this area</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Keep out vias</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_cbViasCtrl</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">public</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">Prevent vias from being placed in this area</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Keep out pads</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_cbPadsCtrl</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">public</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">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">Raise a DRC error if a pad overlaps this area</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Keep out zone fills</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_cbCopperPourCtrl</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">public</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">Zones will not fill copper into this area</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Keep out footprints</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_cbFootprintsCtrl</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">public</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">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip">Raise a DRC error if a footprint courtyard overlaps this area</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>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</wxFormBuilder_Project>
|
46
pcbnew/dialogs/panel_rule_area_properties_keepout_base.h
Normal file
46
pcbnew/dialogs/panel_rule_area_properties_keepout_base.h
Normal file
@ -0,0 +1,46 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <wx/artprov.h>
|
||||
#include <wx/xrc/xmlres.h>
|
||||
#include <wx/intl.h>
|
||||
#include <wx/string.h>
|
||||
#include <wx/checkbox.h>
|
||||
#include <wx/gdicmn.h>
|
||||
#include <wx/font.h>
|
||||
#include <wx/colour.h>
|
||||
#include <wx/settings.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/panel.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// Class PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE : public wxPanel
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
wxFlexGridSizer* m_keepoutRuleSizer;
|
||||
|
||||
public:
|
||||
wxCheckBox* m_cbTracksCtrl;
|
||||
wxCheckBox* m_cbViasCtrl;
|
||||
wxCheckBox* m_cbPadsCtrl;
|
||||
wxCheckBox* m_cbCopperPourCtrl;
|
||||
wxCheckBox* m_cbFootprintsCtrl;
|
||||
|
||||
PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
|
||||
|
||||
~PANEL_RULE_AREA_PROPERTIES_KEEPOUT_BASE();
|
||||
|
||||
};
|
||||
|
53
pcbnew/dialogs/panel_rule_area_properties_placement_base.cpp
Normal file
53
pcbnew/dialogs/panel_rule_area_properties_placement_base.cpp
Normal file
@ -0,0 +1,53 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "panel_rule_area_properties_placement_base.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE::PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
|
||||
{
|
||||
wxBoxSizer* bSizer2;
|
||||
bSizer2 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_enabled = new wxCheckBox( this, wxID_ANY, _("Enabled"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizer2->Add( m_enabled, 0, wxALL, 5 );
|
||||
|
||||
wxStaticBoxSizer* sbSizer2;
|
||||
sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Placement Source") ), wxVERTICAL );
|
||||
|
||||
wxGridBagSizer* gbSizer2;
|
||||
gbSizer2 = new wxGridBagSizer( 0, 0 );
|
||||
gbSizer2->SetFlexibleDirection( wxBOTH );
|
||||
gbSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
m_sourceSheetnameRb = new wxRadioButton( sbSizer2->GetStaticBox(), wxID_ANY, _("Sheet"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
gbSizer2->Add( m_sourceSheetnameRb, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 );
|
||||
|
||||
m_sourceComponentClassRb = new wxRadioButton( sbSizer2->GetStaticBox(), wxID_ANY, _("Component Class"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
gbSizer2->Add( m_sourceComponentClassRb, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
|
||||
|
||||
m_sourceObjectNameCb = new wxComboBox( sbSizer2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
|
||||
gbSizer2->Add( m_sourceObjectNameCb, wxGBPosition( 1, 0 ), wxGBSpan( 1, 3 ), wxALL|wxEXPAND, 5 );
|
||||
|
||||
|
||||
gbSizer2->AddGrowableCol( 2 );
|
||||
|
||||
sbSizer2->Add( gbSizer2, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bSizer2->Add( sbSizer2, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
this->SetSizer( bSizer2 );
|
||||
this->Layout();
|
||||
bSizer2->Fit( this );
|
||||
}
|
||||
|
||||
PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE::~PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE()
|
||||
{
|
||||
}
|
367
pcbnew/dialogs/panel_rule_area_properties_placement_base.fbp
Normal file
367
pcbnew/dialogs/panel_rule_area_properties_placement_base.fbp
Normal file
@ -0,0 +1,367 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<wxFormBuilder_Project>
|
||||
<FileVersion major="1" minor="18"/>
|
||||
<object class="Project" expanded="true">
|
||||
<property name="code_generation">C++</property>
|
||||
<property name="cpp_class_decoration">; </property>
|
||||
<property name="cpp_disconnect_events">0</property>
|
||||
<property name="cpp_event_generation">connect</property>
|
||||
<property name="cpp_help_provider">none</property>
|
||||
<property name="cpp_namespace"></property>
|
||||
<property name="cpp_precompiled_header"></property>
|
||||
<property name="cpp_use_array_enum">0</property>
|
||||
<property name="cpp_use_enum">1</property>
|
||||
<property name="embedded_files_path">res</property>
|
||||
<property name="encoding">UTF-8</property>
|
||||
<property name="file">panel_rule_area_properties_placement_base</property>
|
||||
<property name="first_id">6000</property>
|
||||
<property name="internationalize">1</property>
|
||||
<property name="lua_skip_events">1</property>
|
||||
<property name="lua_ui_table">UI</property>
|
||||
<property name="name">PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE</property>
|
||||
<property name="path">.</property>
|
||||
<property name="php_disconnect_events">0</property>
|
||||
<property name="php_disconnect_mode">source_name</property>
|
||||
<property name="php_skip_events">1</property>
|
||||
<property name="python_disconnect_events">0</property>
|
||||
<property name="python_disconnect_mode">source_name</property>
|
||||
<property name="python_image_path_wrapper_function_name"></property>
|
||||
<property name="python_indent_with_spaces">1</property>
|
||||
<property name="python_skip_events">1</property>
|
||||
<property name="relative_path">1</property>
|
||||
<property name="use_microsoft_bom">0</property>
|
||||
<property name="use_native_eol">0</property>
|
||||
<object class="Panel" expanded="true">
|
||||
<property name="aui_managed">0</property>
|
||||
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
|
||||
<property name="bg"></property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="drag_accept_files">0</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="event_handler">impl_virtual</property>
|
||||
<property name="fg"></property>
|
||||
<property name="font"></property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">-1,-1</property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="two_step_creation">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style">wxTAB_TRAVERSAL</property>
|
||||
<object class="wxBoxSizer" expanded="true">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bSizer2</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Enabled</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_enabled</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">public</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">; ; forward_declare</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxStaticBoxSizer" expanded="true">
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Placement Source</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">sbSizer2</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="parent">1</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxGridBagSizer" expanded="true">
|
||||
<property name="empty_cell_size"></property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols">2</property>
|
||||
<property name="growablerows"></property>
|
||||
<property name="hgap">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">gbSizer2</property>
|
||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||
<property name="permission">none</property>
|
||||
<property name="vgap">0</property>
|
||||
<object class="gbsizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="colspan">1</property>
|
||||
<property name="column">0</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="row">0</property>
|
||||
<property name="rowspan">1</property>
|
||||
<object class="wxRadioButton" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Sheet</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_sourceSheetnameRb</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">public</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">; ; forward_declare</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="value">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="gbsizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="colspan">1</property>
|
||||
<property name="column">1</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="row">0</property>
|
||||
<property name="rowspan">1</property>
|
||||
<object class="wxRadioButton" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</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">Component Class</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_sourceComponentClassRb</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">public</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">; ; forward_declare</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="value">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="gbsizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="colspan">3</property>
|
||||
<property name="column">0</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="row">1</property>
|
||||
<property name="rowspan">1</property>
|
||||
<object class="wxComboBox" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</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="drag_accept_files">0</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_sourceObjectNameCb</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">public</property>
|
||||
<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">wxCB_READONLY</property>
|
||||
<property name="subclass">; ; forward_declare</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="value"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</wxFormBuilder_Project>
|
48
pcbnew/dialogs/panel_rule_area_properties_placement_base.h
Normal file
48
pcbnew/dialogs/panel_rule_area_properties_placement_base.h
Normal file
@ -0,0 +1,48 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <wx/artprov.h>
|
||||
#include <wx/xrc/xmlres.h>
|
||||
#include <wx/intl.h>
|
||||
#include <wx/string.h>
|
||||
#include <wx/checkbox.h>
|
||||
#include <wx/gdicmn.h>
|
||||
#include <wx/font.h>
|
||||
#include <wx/colour.h>
|
||||
#include <wx/settings.h>
|
||||
#include <wx/radiobut.h>
|
||||
#include <wx/combobox.h>
|
||||
#include <wx/gbsizer.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/panel.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// Class PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE : public wxPanel
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
|
||||
public:
|
||||
wxCheckBox* m_enabled;
|
||||
wxRadioButton* m_sourceSheetnameRb;
|
||||
wxRadioButton* m_sourceComponentClassRb;
|
||||
wxComboBox* m_sourceObjectNameCb;
|
||||
|
||||
PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
|
||||
|
||||
~PANEL_RULE_AREA_PROPERTIES_PLACEMENT_BASE();
|
||||
|
||||
};
|
||||
|
@ -106,7 +106,7 @@ static bool isKeepoutZone( const BOARD_ITEM* aItem, bool aCheckFlags )
|
||||
if( !zone->GetIsRuleArea() )
|
||||
return false;
|
||||
|
||||
if( zone->GetRuleAreaType() != RULE_AREA_TYPE::KEEPOUT )
|
||||
if( !zone->HasKeepoutParametersSet() )
|
||||
return false;
|
||||
|
||||
if( aCheckFlags )
|
||||
|
@ -171,8 +171,11 @@ void DRC_INTERACTIVE_COURTYARD_CLEARANCE::testCourtyardClearances()
|
||||
|
||||
for( ZONE* zone : m_board->Zones() )
|
||||
{
|
||||
if( !zone->GetIsRuleArea() || zone->GetRuleAreaType() != RULE_AREA_TYPE::KEEPOUT || !zone->GetDoNotAllowFootprints() )
|
||||
if( !zone->GetIsRuleArea() || !zone->HasKeepoutParametersSet()
|
||||
|| !zone->GetDoNotAllowFootprints() )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
bool disallowFront = ( zone->GetLayerSet() & LSET::FrontMask() ).any();
|
||||
bool disallowBack = ( zone->GetLayerSet() & LSET::BackMask() ).any();
|
||||
|
@ -90,12 +90,15 @@ bool DRC_TEST_PROVIDER_DISALLOW::Run()
|
||||
{
|
||||
ZONE* zone = dynamic_cast<ZONE*>( item );
|
||||
|
||||
if( zone && zone->GetIsRuleArea()
|
||||
&& zone->GetRuleAreaType() == RULE_AREA_TYPE::KEEPOUT
|
||||
if( zone && zone->GetIsRuleArea() && zone->HasKeepoutParametersSet()
|
||||
&& zone->GetDoNotAllowCopperPour() )
|
||||
{
|
||||
antiCopperKeepouts.push_back( zone );
|
||||
}
|
||||
else if( zone && zone->IsOnCopperLayer() )
|
||||
{
|
||||
copperZones.push_back( zone );
|
||||
}
|
||||
|
||||
totalCount++;
|
||||
|
||||
@ -262,7 +265,7 @@ bool DRC_TEST_PROVIDER_DISALLOW::Run()
|
||||
{
|
||||
ZONE* zone = dynamic_cast<ZONE*>( item );
|
||||
|
||||
if( zone && zone->GetIsRuleArea() && zone->GetRuleAreaType() == RULE_AREA_TYPE::KEEPOUT )
|
||||
if( zone && zone->GetIsRuleArea() && zone->HasKeepoutParametersSet() )
|
||||
return true;
|
||||
|
||||
item->ClearFlags( HOLE_PROXY ); // Just in case
|
||||
|
@ -48,7 +48,7 @@ void PCB_EDIT_FRAME::Edit_Zone_Params( ZONE* aZone )
|
||||
{
|
||||
// edit a rule area on a copper layer
|
||||
zoneInfo << *aZone;
|
||||
dialogResult = InvokeRuleAreaEditor( this, &zoneInfo );
|
||||
dialogResult = InvokeRuleAreaEditor( this, &zoneInfo, GetBoard() );
|
||||
}
|
||||
else if( IsCopperLayer( aZone->GetFirstLayer() ) )
|
||||
{
|
||||
|
@ -2590,12 +2590,6 @@ void PCB_IO_KICAD_SEXPR::format( const PCB_TRACK* aTrack, int aNestLevel ) const
|
||||
|
||||
void PCB_IO_KICAD_SEXPR::format( const ZONE* aZone, int aNestLevel ) const
|
||||
{
|
||||
// temporary safeguard for the multichannel tool (and placement area/room support). When the tool is off
|
||||
// (default), KiCad will not write any placement info in the RAs (and won't break file format compatibility)
|
||||
|
||||
if( ! ADVANCED_CFG::GetCfg().m_EnableMultichannelTool && aZone->GetIsRuleArea() && aZone->GetRuleAreaType() == RULE_AREA_TYPE::PLACEMENT )
|
||||
return;
|
||||
|
||||
// Save the NET info.
|
||||
// For keepout and non copper zones, net code and net name are irrelevant
|
||||
// so be sure a dummy value is stored, just for ZONE compatibility
|
||||
@ -2703,21 +2697,18 @@ void PCB_IO_KICAD_SEXPR::format( const ZONE* aZone, int aNestLevel ) const
|
||||
|
||||
if( aZone->GetIsRuleArea() )
|
||||
{
|
||||
switch( aZone->GetRuleAreaType() )
|
||||
{
|
||||
case RULE_AREA_TYPE::KEEPOUT:
|
||||
{
|
||||
m_out->Print( aNestLevel + 1,
|
||||
"(keepout (tracks %s) (vias %s) (pads %s) (copperpour %s) "
|
||||
"(footprints %s))\n",
|
||||
aZone->GetDoNotAllowTracks() ? "not_allowed" : "allowed",
|
||||
aZone->GetDoNotAllowVias() ? "not_allowed" : "allowed",
|
||||
aZone->GetDoNotAllowPads() ? "not_allowed" : "allowed",
|
||||
aZone->GetDoNotAllowCopperPour() ? "not_allowed" : "allowed",
|
||||
aZone->GetDoNotAllowFootprints() ? "not_allowed" : "allowed" );
|
||||
break;
|
||||
}
|
||||
case RULE_AREA_TYPE::PLACEMENT:
|
||||
// Keepout settings
|
||||
m_out->Print( aNestLevel + 1,
|
||||
"(keepout (tracks %s) (vias %s) (pads %s) (copperpour %s) "
|
||||
"(footprints %s))\n",
|
||||
aZone->GetDoNotAllowTracks() ? "not_allowed" : "allowed",
|
||||
aZone->GetDoNotAllowVias() ? "not_allowed" : "allowed",
|
||||
aZone->GetDoNotAllowPads() ? "not_allowed" : "allowed",
|
||||
aZone->GetDoNotAllowCopperPour() ? "not_allowed" : "allowed",
|
||||
aZone->GetDoNotAllowFootprints() ? "not_allowed" : "allowed" );
|
||||
|
||||
// Multichannel settings
|
||||
if( ADVANCED_CFG::GetCfg().m_EnableMultichannelTool )
|
||||
{
|
||||
m_out->Print( aNestLevel + 1, "(placement" );
|
||||
m_out->Print( aNestLevel + 2, "(enabled " );
|
||||
@ -2740,10 +2731,6 @@ void PCB_IO_KICAD_SEXPR::format( const ZONE* aZone, int aNestLevel ) const
|
||||
}
|
||||
|
||||
m_out->Print( aNestLevel + 1, ")" );
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6857,7 +6857,6 @@ ZONE* PCB_IO_KICAD_SEXPR_PARSER::parseZONE( BOARD_ITEM_CONTAINER* aParent )
|
||||
|
||||
case T_placement:
|
||||
zone->SetIsRuleArea( true );
|
||||
zone->SetRuleAreaType( RULE_AREA_TYPE::PLACEMENT );
|
||||
|
||||
for( token = NextTok(); token != T_RIGHT; token = NextTok() )
|
||||
{
|
||||
@ -6910,7 +6909,6 @@ ZONE* PCB_IO_KICAD_SEXPR_PARSER::parseZONE( BOARD_ITEM_CONTAINER* aParent )
|
||||
case T_keepout:
|
||||
// "keepout" now means rule area, but the file token stays the same
|
||||
zone->SetIsRuleArea( true );
|
||||
zone->SetRuleAreaType( RULE_AREA_TYPE::KEEPOUT );
|
||||
|
||||
// Initialize these two because their tokens won't appear in older files:
|
||||
zone->SetDoNotAllowPads( false );
|
||||
|
@ -258,7 +258,7 @@ bool PNS_PCBNEW_RULE_RESOLVER::IsKeepout( const PNS::ITEM* aObstacle, const PNS:
|
||||
{
|
||||
const ZONE* zone = static_cast<ZONE*>( aObstacle->Parent() );
|
||||
|
||||
if( zone->GetIsRuleArea() && zone->GetRuleAreaType() == RULE_AREA_TYPE::KEEPOUT )
|
||||
if( zone->GetIsRuleArea() && zone->HasKeepoutParametersSet() )
|
||||
{
|
||||
*aEnforce = checkKeepout( zone,
|
||||
getBoardItem( aItem, m_routerIface->GetBoardLayerFromPNSLayer(
|
||||
@ -1321,7 +1321,7 @@ bool PNS_KICAD_IFACE_BASE::syncZone( PNS::NODE* aWorld, ZONE* aZone, SHAPE_POLY_
|
||||
static wxString msg;
|
||||
SHAPE_POLY_SET* poly;
|
||||
|
||||
if( !aZone->GetIsRuleArea() || aZone->GetRuleAreaType() != RULE_AREA_TYPE::KEEPOUT )
|
||||
if( !aZone->GetIsRuleArea() || !aZone->HasKeepoutParametersSet() )
|
||||
return false;
|
||||
|
||||
LSET layers = aZone->GetLayerSet();
|
||||
|
@ -251,7 +251,7 @@ bool ROUTER::isStartingPointRoutable( const VECTOR2I& aWhere, ITEM* aStartItem,
|
||||
{
|
||||
ZONE* zone = static_cast<ZONE*>( parent );
|
||||
|
||||
if( zone->GetRuleAreaType() != RULE_AREA_TYPE::KEEPOUT )
|
||||
if( !zone->HasKeepoutParametersSet() )
|
||||
break;
|
||||
|
||||
if( !zone->GetZoneName().IsEmpty() )
|
||||
|
@ -1460,7 +1460,7 @@ int BOARD_EDITOR_CONTROL::ZoneDuplicate( const TOOL_EVENT& aEvent )
|
||||
int dialogResult;
|
||||
|
||||
if( oldZone->GetIsRuleArea() )
|
||||
dialogResult = InvokeRuleAreaEditor( m_frame, &zoneSettings );
|
||||
dialogResult = InvokeRuleAreaEditor( m_frame, &zoneSettings, board() );
|
||||
else if( oldZone->IsOnCopperLayer() )
|
||||
dialogResult = InvokeCopperZonesEditor( m_frame, &zoneSettings );
|
||||
else
|
||||
|
@ -522,7 +522,7 @@ int CONVERT_TOOL::CreatePolys( const TOOL_EVENT& aEvent )
|
||||
if( aEvent.IsAction( &PCB_ACTIONS::convertToKeepout ) )
|
||||
{
|
||||
zoneInfo.SetIsRuleArea( true );
|
||||
ret = InvokeRuleAreaEditor( frame, &zoneInfo, &m_userSettings );
|
||||
ret = InvokeRuleAreaEditor( frame, &zoneInfo, board(), &m_userSettings );
|
||||
}
|
||||
else if( nonCopper )
|
||||
{
|
||||
|
@ -97,8 +97,10 @@ bool MULTICHANNEL_TOOL::identifyComponentsInRuleArea( ZONE* aRul
|
||||
wxT( "A.memberOfSheet('" ) + aRuleArea->GetRuleAreaPlacementSource() + wxT( "')" );
|
||||
break;
|
||||
}
|
||||
default:
|
||||
wxFAIL_MSG( "RULE_AREA_PLACEMENT_SOURCE_TYPE not yet implemented" );
|
||||
case RULE_AREA_PLACEMENT_SOURCE_TYPE::COMPONENT_CLASS:
|
||||
ruleText = wxT( "A.hasComponentClass('" ) + aRuleArea->GetRuleAreaPlacementSource()
|
||||
+ wxT( "')" );
|
||||
break;
|
||||
}
|
||||
|
||||
auto ok = compiler.Compile( ruleText, &ucode, &preflightCtx );
|
||||
@ -226,7 +228,7 @@ void MULTICHANNEL_TOOL::FindExistingRuleAreas()
|
||||
{
|
||||
if( !zone->GetIsRuleArea() )
|
||||
continue;
|
||||
if( zone->GetRuleAreaType() != RULE_AREA_TYPE::PLACEMENT )
|
||||
if( !zone->GetRuleAreaPlacementEnabled() )
|
||||
continue;
|
||||
|
||||
RULE_AREA area;
|
||||
@ -270,7 +272,7 @@ int MULTICHANNEL_TOOL::repeatLayout( const TOOL_EVENT& aEvent )
|
||||
ZONE* zone = static_cast<ZONE*>( aItem );
|
||||
if( !zone->GetIsRuleArea() )
|
||||
return nullptr;
|
||||
if( zone->GetRuleAreaType() != RULE_AREA_TYPE::PLACEMENT )
|
||||
if( !zone->GetRuleAreaPlacementEnabled() )
|
||||
return nullptr;
|
||||
return zone;
|
||||
};
|
||||
@ -714,7 +716,7 @@ int MULTICHANNEL_TOOL::AutogenerateRuleAreas( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( !zone->GetIsRuleArea() )
|
||||
continue;
|
||||
if( zone->GetRuleAreaType() != RULE_AREA_TYPE::PLACEMENT )
|
||||
if( !zone->GetRuleAreaPlacementEnabled() )
|
||||
continue;
|
||||
|
||||
std::set<FOOTPRINT*> components;
|
||||
@ -762,7 +764,12 @@ int MULTICHANNEL_TOOL::AutogenerateRuleAreas( const TOOL_EVENT& aEvent )
|
||||
|
||||
newZone->SetIsRuleArea( true );
|
||||
newZone->SetLayerSet( LSET::AllCuMask() );
|
||||
newZone->SetRuleAreaType( RULE_AREA_TYPE::PLACEMENT );
|
||||
newZone->SetRuleAreaPlacementEnabled( true );
|
||||
newZone->SetDoNotAllowCopperPour( false );
|
||||
newZone->SetDoNotAllowVias( false );
|
||||
newZone->SetDoNotAllowTracks( false );
|
||||
newZone->SetDoNotAllowPads( false );
|
||||
newZone->SetDoNotAllowFootprints( false );
|
||||
newZone->SetRuleAreaPlacementSourceType( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME );
|
||||
newZone->SetRuleAreaPlacementSource( ra.m_sheetPath );
|
||||
newZone->AddPolygon( raOutline );
|
||||
|
@ -122,7 +122,7 @@ std::unique_ptr<ZONE> ZONE_CREATE_HELPER::createNewZone( bool aKeepout )
|
||||
int dialogResult;
|
||||
|
||||
if( m_params.m_keepout )
|
||||
dialogResult = InvokeRuleAreaEditor( frame, &zoneInfo );
|
||||
dialogResult = InvokeRuleAreaEditor( frame, &zoneInfo, m_tool.board() );
|
||||
else if( ( zoneInfo.m_Layers & LSET::AllCuMask() ).any() )
|
||||
dialogResult = InvokeCopperZonesEditor( frame, &zoneInfo );
|
||||
else
|
||||
|
133
pcbnew/zone.cpp
133
pcbnew/zone.cpp
@ -23,6 +23,7 @@
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <advanced_config.h>
|
||||
#include <bitmaps.h>
|
||||
#include <geometry/geometry_utils.h>
|
||||
#include <geometry/shape_null.h>
|
||||
@ -51,6 +52,7 @@ ZONE::ZONE( BOARD_ITEM_CONTAINER* aParent ) :
|
||||
m_priority( 0 ),
|
||||
m_isRuleArea( false ),
|
||||
m_ruleAreaPlacementEnabled( false ),
|
||||
m_ruleAreaPlacementSourceType( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME ),
|
||||
m_teardropType( TEARDROP_TYPE::TD_NONE ),
|
||||
m_PadConnection( ZONE_CONNECTION::NONE ),
|
||||
m_ZoneClearance( 0 ),
|
||||
@ -132,7 +134,7 @@ void ZONE::InitDataFromSrcInCopyCtor( const ZONE& aZone )
|
||||
m_zoneName = aZone.m_zoneName;
|
||||
m_priority = aZone.m_priority;
|
||||
m_isRuleArea = aZone.m_isRuleArea;
|
||||
m_ruleAreaType = aZone.m_ruleAreaType;
|
||||
m_ruleAreaPlacementEnabled = aZone.m_ruleAreaPlacementEnabled;
|
||||
m_ruleAreaPlacementSourceType = aZone.m_ruleAreaPlacementSourceType;
|
||||
m_ruleAreaPlacementSource = aZone.m_ruleAreaPlacementSource;
|
||||
SetLayerSet( aZone.GetLayerSet() );
|
||||
@ -583,7 +585,6 @@ void ZONE::GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_ITEM>&
|
||||
{
|
||||
msg.Empty();
|
||||
|
||||
// fixme placement
|
||||
if( GetDoNotAllowVias() )
|
||||
AccumulateDescription( msg, _( "No vias" ) );
|
||||
|
||||
@ -601,6 +602,12 @@ void ZONE::GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_ITEM>&
|
||||
|
||||
if( !msg.IsEmpty() )
|
||||
aList.emplace_back( _( "Restrictions" ), msg );
|
||||
|
||||
if( GetRuleAreaPlacementEnabled() )
|
||||
{
|
||||
aList.emplace_back( _( "Placement source" ),
|
||||
UnescapeString( GetRuleAreaPlacementSource() ) );
|
||||
}
|
||||
}
|
||||
else if( IsOnCopperLayer() )
|
||||
{
|
||||
@ -1447,30 +1454,29 @@ bool ZONE::operator==( const ZONE& aOther ) const
|
||||
|
||||
if( GetIsRuleArea() )
|
||||
{
|
||||
if( GetRuleAreaType() != other.GetRuleAreaType() )
|
||||
return false;
|
||||
if( GetDoNotAllowCopperPour() != other.GetDoNotAllowCopperPour() )
|
||||
return false;
|
||||
|
||||
if( GetRuleAreaType() == RULE_AREA_TYPE::KEEPOUT )
|
||||
{
|
||||
if( GetDoNotAllowCopperPour() != other.GetDoNotAllowCopperPour() )
|
||||
return false;
|
||||
if( GetDoNotAllowTracks() != other.GetDoNotAllowTracks() )
|
||||
return false;
|
||||
if( GetDoNotAllowVias() != other.GetDoNotAllowVias() )
|
||||
return false;
|
||||
if( GetDoNotAllowFootprints() != other.GetDoNotAllowFootprints() )
|
||||
return false;
|
||||
if( GetDoNotAllowPads() != other.GetDoNotAllowPads() )
|
||||
return false;
|
||||
}
|
||||
else if ( GetRuleAreaType() == RULE_AREA_TYPE::PLACEMENT )
|
||||
{
|
||||
if( GetRuleAreaPlacementSourceType() != other.GetRuleAreaPlacementSourceType() )
|
||||
return false;
|
||||
if( GetDoNotAllowTracks() != other.GetDoNotAllowTracks() )
|
||||
return false;
|
||||
|
||||
if( GetRuleAreaPlacementSource() != other.GetRuleAreaPlacementSource() )
|
||||
return false;
|
||||
}
|
||||
if( GetDoNotAllowVias() != other.GetDoNotAllowVias() )
|
||||
return false;
|
||||
|
||||
if( GetDoNotAllowFootprints() != other.GetDoNotAllowFootprints() )
|
||||
return false;
|
||||
|
||||
if( GetDoNotAllowPads() != other.GetDoNotAllowPads() )
|
||||
return false;
|
||||
|
||||
if( GetRuleAreaPlacementEnabled() != other.GetRuleAreaPlacementEnabled() )
|
||||
return false;
|
||||
|
||||
if( GetRuleAreaPlacementSourceType() != other.GetRuleAreaPlacementSourceType() )
|
||||
return false;
|
||||
|
||||
if( GetRuleAreaPlacementSource() != other.GetRuleAreaPlacementSource() )
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1612,15 +1618,6 @@ static struct ZONE_DESC
|
||||
.Map( ZONE_FILL_MODE::HATCH_PATTERN, _HKI( "Hatch pattern" ) );
|
||||
}
|
||||
|
||||
ENUM_MAP<RULE_AREA_TYPE>& raTypeMap = ENUM_MAP<RULE_AREA_TYPE>::Instance();
|
||||
|
||||
if( raTypeMap.Choices().GetCount() == 0 )
|
||||
{
|
||||
raTypeMap.Undefined( RULE_AREA_TYPE::KEEPOUT );
|
||||
raTypeMap.Map( RULE_AREA_TYPE::KEEPOUT, _HKI( "Keepout" ) )
|
||||
.Map( RULE_AREA_TYPE::PLACEMENT, _HKI( "Placement" ) );
|
||||
}
|
||||
|
||||
ENUM_MAP<ISLAND_REMOVAL_MODE>& irmMap = ENUM_MAP<ISLAND_REMOVAL_MODE>::Instance();
|
||||
|
||||
if( irmMap.Choices().GetCount() == 0 )
|
||||
@ -1631,6 +1628,17 @@ static struct ZONE_DESC
|
||||
.Map( ISLAND_REMOVAL_MODE::AREA, _HKI( "Below area limit" ) );
|
||||
}
|
||||
|
||||
ENUM_MAP<RULE_AREA_PLACEMENT_SOURCE_TYPE>& rapstMap =
|
||||
ENUM_MAP<RULE_AREA_PLACEMENT_SOURCE_TYPE>::Instance();
|
||||
|
||||
if( rapstMap.Choices().GetCount() == 0 )
|
||||
{
|
||||
rapstMap.Undefined( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME );
|
||||
rapstMap.Map( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME, _HKI( "Sheet Name" ) )
|
||||
.Map( RULE_AREA_PLACEMENT_SOURCE_TYPE::COMPONENT_CLASS,
|
||||
_HKI( "Component Class" ) );
|
||||
}
|
||||
|
||||
PROPERTY_MANAGER& propMgr = PROPERTY_MANAGER::Instance();
|
||||
REGISTER_TYPE( ZONE );
|
||||
propMgr.InheritsAfter( TYPE_HASH( ZONE ), TYPE_HASH( BOARD_CONNECTED_ITEM ) );
|
||||
@ -1707,11 +1715,62 @@ static struct ZONE_DESC
|
||||
propMgr.AddProperty( new PROPERTY<ZONE, wxString>( _HKI( "Name" ),
|
||||
&ZONE::SetZoneName, &ZONE::GetZoneName ) );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY_ENUM<ZONE, RULE_AREA_TYPE>( _HKI( "Rule Area Type" ),
|
||||
&ZONE::SetRuleAreaType,
|
||||
&ZONE::GetRuleAreaType ) )
|
||||
const wxString groupKeepout = _HKI( "Keepout" );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<ZONE, bool>( _HKI( "Keep Out Tracks" ),
|
||||
&ZONE::SetDoNotAllowTracks,
|
||||
&ZONE::GetDoNotAllowTracks ),
|
||||
groupKeepout )
|
||||
.SetAvailableFunc( isRuleArea );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<ZONE, bool>( _HKI( "Keep Out Vias" ),
|
||||
&ZONE::SetDoNotAllowVias,
|
||||
&ZONE::GetDoNotAllowVias ),
|
||||
groupKeepout )
|
||||
.SetAvailableFunc( isRuleArea );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<ZONE, bool>( _HKI( "Keep Out Pads" ),
|
||||
&ZONE::SetDoNotAllowPads,
|
||||
&ZONE::GetDoNotAllowPads ),
|
||||
groupKeepout )
|
||||
.SetAvailableFunc( isRuleArea );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<ZONE, bool>( _HKI( "Keep Out Copper Pours" ),
|
||||
&ZONE::SetDoNotAllowCopperPour,
|
||||
&ZONE::GetDoNotAllowCopperPour ),
|
||||
groupKeepout )
|
||||
.SetAvailableFunc( isRuleArea );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<ZONE, bool>( _HKI( "Keep Out Footprints" ),
|
||||
&ZONE::SetDoNotAllowFootprints,
|
||||
&ZONE::GetDoNotAllowFootprints ),
|
||||
groupKeepout )
|
||||
.SetAvailableFunc( isRuleArea );
|
||||
|
||||
if( ADVANCED_CFG::GetCfg().m_EnableMultichannelTool )
|
||||
{
|
||||
const wxString groupPlacement = _HKI( "Placement" );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<ZONE, bool>( _HKI( "Enable" ),
|
||||
&ZONE::SetRuleAreaPlacementEnabled,
|
||||
&ZONE::GetRuleAreaPlacementEnabled ),
|
||||
groupPlacement )
|
||||
.SetAvailableFunc( isRuleArea );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY_ENUM<ZONE, RULE_AREA_PLACEMENT_SOURCE_TYPE>(
|
||||
_HKI( "Source Type" ),
|
||||
&ZONE::SetRuleAreaPlacementSourceType,
|
||||
&ZONE::GetRuleAreaPlacementSourceType ),
|
||||
groupPlacement )
|
||||
.SetAvailableFunc( isRuleArea );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<ZONE, wxString>( _HKI( "Source Name" ),
|
||||
&ZONE::SetRuleAreaPlacementSource,
|
||||
&ZONE::GetRuleAreaPlacementSource ),
|
||||
groupPlacement )
|
||||
.SetAvailableFunc( isRuleArea );
|
||||
}
|
||||
|
||||
const wxString groupFill = _HKI( "Fill Style" );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY_ENUM<ZONE, ZONE_FILL_MODE>( _HKI( "Fill Mode" ),
|
||||
@ -1829,7 +1888,7 @@ static struct ZONE_DESC
|
||||
}
|
||||
} _ZONE_DESC;
|
||||
|
||||
IMPLEMENT_ENUM_TO_WXANY( RULE_AREA_PLACEMENT_SOURCE_TYPE )
|
||||
IMPLEMENT_ENUM_TO_WXANY( ZONE_CONNECTION )
|
||||
IMPLEMENT_ENUM_TO_WXANY( ZONE_FILL_MODE )
|
||||
IMPLEMENT_ENUM_TO_WXANY( ISLAND_REMOVAL_MODE )
|
||||
IMPLEMENT_ENUM_TO_WXANY( RULE_AREA_TYPE )
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user