12DIALOG_PNS_SETTINGS_BASE::DIALOG_PNS_SETTINGS_BASE( wxWindow* parent, wxWindowID
id,
const wxString& title,
const wxPoint& pos,
const wxSize& size,
long style ) :
DIALOG_SHIM( parent, id, title, pos, size, style )
14 this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
16 wxBoxSizer* bMainSizer;
17 bMainSizer =
new wxBoxSizer( wxVERTICAL );
20 bColumns =
new wxBoxSizer( wxHORIZONTAL );
22 wxStaticBoxSizer* sbModeSizer;
23 sbModeSizer =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Mode") ), wxVERTICAL );
25 m_rbMarkObstacles =
new wxRadioButton( sbModeSizer->GetStaticBox(), wxID_ANY,
_(
"Highlight collisions"), wxDefaultPosition, wxDefaultSize, 0 );
29 bSizer2 =
new wxBoxSizer( wxVERTICAL );
31 m_freeAngleMode =
new wxCheckBox( sbModeSizer->GetStaticBox(), wxID_ANY,
_(
"Free angle mode"), wxDefaultPosition, wxDefaultSize, 0 );
34 m_violateDrc =
new wxCheckBox( sbModeSizer->GetStaticBox(), wxID_ANY,
_(
"Allow DRC violations"), wxDefaultPosition, wxDefaultSize, 0 );
35 m_violateDrc->SetToolTip(
_(
"(Highlight collisions mode only) - allows one to establish a track even if is violating the DRC rules.") );
37 bSizer2->Add(
m_violateDrc, 0, wxTOP|wxRIGHT|wxLEFT, 3 );
40 sbModeSizer->Add( bSizer2, 0, wxRIGHT|wxLEFT, 20 );
43 sbModeSizer->Add( 0, 15, 1, wxEXPAND, 5 );
45 m_rbShove =
new wxRadioButton( sbModeSizer->GetStaticBox(), wxID_ANY,
_(
"Shove"), wxDefaultPosition, wxDefaultSize, 0 );
46 sbModeSizer->Add(
m_rbShove, 0, wxRIGHT, 5 );
49 bSizer3 =
new wxBoxSizer( wxVERTICAL );
51 m_shoveVias =
new wxCheckBox( sbModeSizer->GetStaticBox(), wxID_ANY,
_(
"Shove vias"), wxDefaultPosition, wxDefaultSize, 0 );
52 m_shoveVias->SetToolTip(
_(
"When disabled, vias are treated as un-movable objects and hugged instead of shoved.") );
54 bSizer3->Add(
m_shoveVias, 0, wxTOP|wxRIGHT|wxLEFT, 3 );
56 m_backPressure =
new wxCheckBox( sbModeSizer->GetStaticBox(), wxID_ANY,
_(
"Jump over obstacles"), wxDefaultPosition, wxDefaultSize, 0 );
57 m_backPressure->SetToolTip(
_(
"When enabled, the router tries to move colliding traces behind solid obstacles (e.g. pads) instead of \"reflecting\" back the collision") );
62 sbModeSizer->Add( bSizer3, 0, wxRIGHT|wxLEFT, 20 );
65 sbModeSizer->Add( 0, 15, 1, wxEXPAND, 5 );
67 m_rbWalkaround =
new wxRadioButton( sbModeSizer->GetStaticBox(), wxID_ANY,
_(
"Walk around"), wxDefaultPosition, wxDefaultSize, 0 );
71 bColumns->Add( sbModeSizer, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
74 bColumns->Add( 5, 0, 0, 0, 5 );
76 wxStaticBoxSizer* bOptions;
77 bOptions =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"General Options") ), wxVERTICAL );
80 gSizer1 =
new wxGridSizer( 0, 1, 2, 0 );
82 m_removeLoops =
new wxCheckBox( bOptions->GetStaticBox(), wxID_ANY,
_(
"Remove redundant tracks"), wxDefaultPosition, wxDefaultSize, 0 );
83 m_removeLoops->SetToolTip(
_(
"Removes loops while routing (e.g. if the new track ensures same connectivity as an already existing one, the old track is removed).\nLoop removal works locally (only between the start and end of the currently routed trace).") );
87 m_smartPads =
new wxCheckBox( bOptions->GetStaticBox(), wxID_ANY,
_(
"Optimize pad connections"), wxDefaultPosition, wxDefaultSize, 0 );
88 m_smartPads->SetToolTip(
_(
"When enabled, the router tries to break out pads/vias in a clean way, avoiding acute angles and jagged breakout traces.") );
92 m_smoothDragged =
new wxCheckBox( bOptions->GetStaticBox(), wxID_ANY,
_(
"Smooth dragged segments"), wxDefaultPosition, wxDefaultSize, 0 );
93 m_smoothDragged->SetToolTip(
_(
"When enabled, the router attempts to merge several jagged segments into a single straight one (dragging mode).") );
97 m_suggestEnding =
new wxCheckBox( bOptions->GetStaticBox(), wxID_ANY,
_(
"Suggest track finish"), wxDefaultPosition, wxDefaultSize, 0 );
102 m_optimizeEntireDraggedTrack =
new wxCheckBox( bOptions->GetStaticBox(), wxID_ANY,
_(
"Optimize entire track being dragged"), wxDefaultPosition, wxDefaultSize, 0 );
103 m_optimizeEntireDraggedTrack->SetToolTip(
_(
"When enabled, the entire portion of the track that is visible on the screen will be optimized and re-routed when a segment is dragged. When disabled, only the area near the segment being dragged will be optimized.") );
107 m_autoPosture =
new wxCheckBox( bOptions->GetStaticBox(), wxID_ANY,
_(
"Use mouse path to set track posture"), wxDefaultPosition, wxDefaultSize, 0 );
108 m_autoPosture->SetToolTip(
_(
"When enabled, the posture of tracks will be guided by how the mouse is moved from the starting location") );
112 m_fixAllSegments =
new wxCheckBox( bOptions->GetStaticBox(), wxID_ANY,
_(
"Fix all segments on click"), wxDefaultPosition, wxDefaultSize, 0 );
113 m_fixAllSegments->SetToolTip(
_(
"When enabled, all track segments will be fixed in place up to the cursor location. When disabled, the last segment (closest to the cursor) will remain free and follow the cursor.") );
118 bOptions->Add( gSizer1, 1, wxEXPAND, 5 );
121 bColumns->Add( bOptions, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
124 bMainSizer->Add( bColumns, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
136 this->SetSizer( bMainSizer );
138 bMainSizer->Fit(
this );
virtual void OnOkClick(wxCommandEvent &event)
wxButton * m_stdButtonsCancel
wxCheckBox * m_optimizeEntireDraggedTrack
wxCheckBox * m_violateDrc
wxCheckBox * m_removeLoops
wxCheckBox * m_fixAllSegments
wxStdDialogButtonSizer * m_stdButtons
DIALOG_PNS_SETTINGS_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Interactive Router Settings"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
wxRadioButton * m_rbShove
wxCheckBox * m_backPressure
wxCheckBox * m_smoothDragged
virtual void onFreeAngleModeChange(wxCommandEvent &event)
wxRadioButton * m_rbWalkaround
wxButton * m_stdButtonsOK
~DIALOG_PNS_SETTINGS_BASE()
wxCheckBox * m_suggestEnding
wxCheckBox * m_freeAngleMode
wxCheckBox * m_autoPosture
wxRadioButton * m_rbMarkObstacles
virtual void onModeChange(wxCommandEvent &event)
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...