44 std::vector<DRC_RE_FIELD_POSITION> positions =
m_data->GetFieldPositions();
46 wxWindow* eventSource =
nullptr;
48 for( wxWindow* win = aParent; win; win = win->GetParent() )
58 auto* minViaDiameterField =
AddField<wxTextCtrl>( wxS(
"min_via_diameter" ), positions[0], wxTE_PROCESS_ENTER );
60 std::make_unique<UNIT_BINDER>( &
m_unitsProvider, eventSource,
nullptr, minViaDiameterField->GetControl(),
61 minViaDiameterField->GetLabel(),
false,
false );
64 auto* prefViaDiameterField =
AddField<wxTextCtrl>( wxS(
"pref_via_diameter" ), positions[1], wxTE_PROCESS_ENTER );
66 std::make_unique<UNIT_BINDER>( &
m_unitsProvider, eventSource,
nullptr, prefViaDiameterField->GetControl(),
67 prefViaDiameterField->GetLabel(),
false,
false );
70 auto* maxViaDiameterField =
AddField<wxTextCtrl>( wxS(
"max_via_diameter" ), positions[2], wxTE_PROCESS_ENTER );
72 std::make_unique<UNIT_BINDER>( &
m_unitsProvider, eventSource,
nullptr, maxViaDiameterField->GetControl(),
73 maxViaDiameterField->GetLabel(),
false,
false );
77 auto* minViaHoleField =
AddField<wxTextCtrl>( wxS(
"min_via_hole" ), positions[3], wxTE_PROCESS_ENTER );
79 std::make_unique<UNIT_BINDER>( &
m_unitsProvider, eventSource,
nullptr, minViaHoleField->GetControl(),
80 minViaHoleField->GetLabel(),
false,
false );
83 auto* prefViaHoleField =
AddField<wxTextCtrl>( wxS(
"pref_via_hole" ), positions[4], wxTE_PROCESS_ENTER );
85 std::make_unique<UNIT_BINDER>( &
m_unitsProvider, eventSource,
nullptr, prefViaHoleField->GetControl(),
86 prefViaHoleField->GetLabel(),
false,
false );
89 auto* maxViaHoleField =
AddField<wxTextCtrl>( wxS(
"max_via_hole" ), positions[5], wxTE_PROCESS_ENTER );
91 std::make_unique<UNIT_BINDER>( &
m_unitsProvider, eventSource,
nullptr, maxViaHoleField->GetControl(),
92 maxViaHoleField->GetLabel(),
false,
false );
95 auto notifyModified = [
this]( wxCommandEvent& )
102 auto notifySave = [
this]( wxCommandEvent& aEvent )
109 minViaDiameterField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
110 maxViaDiameterField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
111 prefViaDiameterField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
112 minViaHoleField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
113 maxViaHoleField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
114 prefViaHoleField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
116 minViaDiameterField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
117 maxViaDiameterField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
118 prefViaDiameterField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
119 minViaHoleField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
120 maxViaHoleField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
121 prefViaHoleField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
wxString result
Test unit parsing edge cases and error handling.