43 std::vector<DRC_RE_FIELD_POSITION> positions =
m_data->GetFieldPositions();
45 wxWindow* eventSource =
nullptr;
47 for( wxWindow* win = aParent; win; win = win->GetParent() )
56 auto* optWidthField =
AddField<wxTextCtrl>( wxS(
"opt_width" ), positions[0], wxTE_CENTRE | wxTE_PROCESS_ENTER );
58 std::make_unique<UNIT_BINDER>( &
m_unitsProvider, eventSource,
nullptr, optWidthField->GetControl(),
59 optWidthField->GetLabel(),
false,
false );
63 AddField<wxTextCtrl>( wxS(
"width_tolerance" ), positions[1], wxTE_CENTRE | wxTE_PROCESS_ENTER );
65 std::make_unique<UNIT_BINDER>( &
m_unitsProvider, eventSource,
nullptr, widthTolField->GetControl(),
66 widthTolField->GetLabel(),
false,
false );
69 auto* optGapField =
AddField<wxTextCtrl>( wxS(
"opt_gap" ), positions[2], wxTE_CENTRE | wxTE_PROCESS_ENTER );
71 optGapField->GetLabel(),
false,
false );
74 auto* gapTolField =
AddField<wxTextCtrl>( wxS(
"gap_tolerance" ), positions[3], wxTE_CENTRE | wxTE_PROCESS_ENTER );
76 &
m_unitsProvider, eventSource,
nullptr, gapTolField->GetControl(), gapTolField->GetLabel(),
false,
false );
79 auto* maxUncoupledField =
82 std::make_unique<UNIT_BINDER>( &
m_unitsProvider, eventSource,
nullptr, maxUncoupledField->GetControl(),
83 maxUncoupledField->GetLabel(),
false,
false );
86 auto notifyModified = [
this]( wxCommandEvent& )
93 optWidthField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
94 widthTolField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
95 optGapField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
96 gapTolField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
97 maxUncoupledField->GetControl()->Bind( wxEVT_TEXT, notifyModified );
99 auto notifySave = [
this]( wxCommandEvent& aEvent )
106 optWidthField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
107 widthTolField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
108 optGapField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
109 gapTolField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
110 maxUncoupledField->GetControl()->Bind( wxEVT_TEXT_ENTER, notifySave );
wxString result
Test unit parsing edge cases and error handling.