4
4
Component::Component (nlohmann::json j, bool has_string) {
5
5
m_widget = nullptr ;
6
6
m_has_string = has_string;
7
- m_label = j[" label" ];
7
+ m_label = wxString::FromUTF8 (j[" label" ]);
8
+ m_id = j.value (" id" , " " );
9
+ if (m_id == " " ) {
10
+ if (m_label.Length () > 128 ) {
11
+ m_id = m_label.Left (128 ).ToUTF8 ();
12
+ } else {
13
+ m_id = m_label;
14
+ }
15
+ }
8
16
m_add_quotes = j.value (" add_quotes" , false );
9
17
}
10
18
@@ -20,8 +28,8 @@ nlohmann::json Component::GetConfig() {
20
28
return {};
21
29
}
22
30
23
- std::string Component::GetLabel () {
24
- return m_label ;
31
+ std::string const Component::GetID () {
32
+ return m_id ;
25
33
}
26
34
27
35
bool Component::HasString () {
@@ -58,18 +66,13 @@ const int DEFAULT_SIZER_FLAG = wxFIXED_MINSIZE | wxALIGN_LEFT | wxBOTTOM;
58
66
// Static Text
59
67
StaticText::StaticText (wxWindow* panel, wxBoxSizer* sizer, nlohmann::json j)
60
68
: Component(j, NOT_STRING) {
61
- sizer->Add (
62
- new wxStaticText (panel, wxID_ANY,
63
- wxString::FromUTF8 (j[" label" ])),
64
- 0 , DEFAULT_SIZER_FLAG , 13 );
69
+ sizer->Add (new wxStaticText (panel, wxID_ANY, m_label), 0 , DEFAULT_SIZER_FLAG , 13 );
65
70
}
66
71
67
72
// Base Class for strings
68
73
StringComponentBase::StringComponentBase (wxWindow* panel, wxBoxSizer* sizer, nlohmann::json j)
69
74
: Component(j, HAS_STRING) {
70
- sizer->Add (
71
- new wxStaticText (panel, wxID_ANY, wxString::FromUTF8 (j[" label" ])),
72
- 0 , DEFAULT_SIZER_FLAG, 3 );
75
+ sizer->Add (new wxStaticText (panel, wxID_ANY, m_label), 0 , DEFAULT_SIZER_FLAG, 3 );
73
76
}
74
77
75
78
nlohmann::json StringComponentBase::GetConfig () {
@@ -146,10 +149,7 @@ Choice::Choice(wxWindow* panel, wxBoxSizer* sizer, nlohmann::json j)
146
149
std::for_each (items.begin (), items.end (), [&](std::string i) {
147
150
wxitems.Add (wxString::FromUTF8 (i));
148
151
});
149
- sizer->Add (
150
- new wxStaticText (panel, wxID_ANY,
151
- wxString::FromUTF8 (j[" label" ])),
152
- 0 , DEFAULT_SIZER_FLAG, 3 );
152
+ sizer->Add (new wxStaticText (panel, wxID_ANY, m_label), 0 , DEFAULT_SIZER_FLAG, 3 );
153
153
wxChoice* choice = new wxChoice (panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxitems);
154
154
sizer->Add (choice, 0 , DEFAULT_SIZER_FLAG, 13 );
155
155
if (j.contains (" default" ) && j[" items" ].size () > j[" default" ]) {
@@ -193,10 +193,9 @@ void SetDefaultForCheckBox(wxCheckBox* check, nlohmann::json j) {
193
193
// CheckBox
194
194
CheckBox::CheckBox (wxWindow* panel, wxBoxSizer* sizer, nlohmann::json j)
195
195
: Component(j, HAS_STRING) {
196
- wxCheckBox* check = new wxCheckBox (panel, wxID_ANY,
197
- wxString::FromUTF8 (j[" label" ]));
196
+ wxCheckBox* check = new wxCheckBox (panel, wxID_ANY, m_label);
198
197
sizer->Add (check, 0 , DEFAULT_SIZER_FLAG, 13 );
199
- m_value = j.value (" value" , j[ " label " ] );
198
+ m_value = j.value (" value" , m_label. ToUTF8 () );
200
199
if (j.contains (" default" )) {
201
200
SetDefaultForCheckBox (check, j[" default" ]);
202
201
}
@@ -225,10 +224,7 @@ nlohmann::json CheckBox::GetConfig() {
225
224
// CheckArray
226
225
CheckArray::CheckArray (wxWindow* panel, wxBoxSizer* sizer, nlohmann::json j)
227
226
: Component(j, HAS_STRING) {
228
- sizer->Add (
229
- new wxStaticText (panel, wxID_ANY,
230
- wxString::FromUTF8 (j[" label" ])),
231
- 0 , DEFAULT_SIZER_FLAG, 3 );
227
+ sizer->Add (new wxStaticText (panel, wxID_ANY, m_label), 0 , DEFAULT_SIZER_FLAG, 3 );
232
228
std::vector<wxCheckBox*>* checks = new std::vector<wxCheckBox*>();
233
229
for (int i = 0 ; i < j[" items" ].size (); i++) {
234
230
wxCheckBox* check = new wxCheckBox (panel, wxID_ANY,
0 commit comments