33
32
void AddOptionCheckDlg::SetValue(const wxString& value)
36
wxStringTokenizer tkz(value, wxT(";"));
37
while(tkz.HasMoreTokens())
39
wxString token = tkz.GetNextToken();
40
token = token.Trim().Trim(false);
43
text << token << wxT('\n');
46
m_textOptions->ChangeValue(text);
34
m_textCmdLn->SetValue(value);
49
40
wxString AddOptionCheckDlg::GetValue() const
51
wxStringInputStream input(m_textOptions->GetValue());
52
wxTextInputStream text(input);
55
while( !input.Eof() ) {
57
wxString line = text.ReadLine().Trim().Trim(false);
60
value << line << wxT(';');
63
return value.BeforeLast(wxT(';'));
42
return m_textCmdLn->GetValue();
66
45
void AddOptionCheckDlg::OnOptionToggled( wxCommandEvent& event )
71
51
void AddOptionCheckDlg::OnOptionsText( wxCommandEvent& event )
76
void AddOptionCheckDlg::OnOptionSelected( wxCommandEvent& event )
78
wxString sOption = m_checkListOptions->GetString(event.GetInt());
79
Compiler::CmpCmdLineOptions::const_iterator itOption = m_cmpOptions.find(sOption);
80
if (itOption != m_cmpOptions.end())
83
sHelp << sOption << wxT(":\n") << itOption->second.help;
84
m_textHelp->ChangeValue(sHelp);
88
void AddOptionCheckDlg::UpdateCheckOptions()
56
void AddOptionCheckDlg::UpdateOptions()
90
58
// Remove all check boxes
91
59
m_checkListOptions->Freeze();
92
61
for (unsigned int idx = 0; idx < m_checkListOptions->GetCount(); ++idx)
94
63
m_checkListOptions->Check(idx, false);
97
66
// Check all options entered
98
wxStringInputStream input(m_textOptions->GetValue());
99
wxTextInputStream text(input);
100
while( !input.Eof() )
67
wxString customOptions;
68
wxStringTokenizer tkz(m_textCmdLn->GetValue(), wxT(";"));
69
while(tkz.HasMoreTokens())
102
// Read the next line
103
wxString value = text.ReadLine().Trim().Trim(false);
104
if (m_cmpOptions.find(value) != m_cmpOptions.end())
71
wxString token = tkz.GetNextToken();
72
token = token.Trim().Trim(false);
106
m_checkListOptions->Check(m_checkListOptions->FindString(value));
75
Compiler::CmpCmdLineOptions::const_iterator itOption = m_cmpOptions.find(token);
76
if(itOption != m_cmpOptions.end())
78
const Compiler::CmpCmdLineOption& cmpOption = itOption->second;
79
m_checkListOptions->Check(m_checkListOptions->FindString(cmpOption.help + wxT(" [") + cmpOption.name + wxT("]")));
83
if(!customOptions.empty()) customOptions << wxT(";");
84
customOptions << token;
88
m_textOptions->ChangeValue(customOptions);
109
90
m_checkListOptions->Thaw();
112
void AddOptionCheckDlg::UpdateTextOptions()
93
void AddOptionCheckDlg::UpdateCmdLine()
114
95
// Store all actual options
115
96
std::list<wxString> options;
126
107
// Read check box options
127
108
for (unsigned int idx = 0; idx < m_checkListOptions->GetCount(); ++idx)
129
wxString value = m_checkListOptions->GetString(idx);
110
wxString value = m_checkListOptions->GetString(idx).AfterLast(wxT('[')).BeforeLast(wxT(']'));
130
111
if (m_checkListOptions->IsChecked(idx))
132
113
// If the option doesn't exist actually, add it
133
114
if (std::find(options.begin(), options.end(), value) == options.end())
135
options.push_back(value);
116
//options.push_back(value.AfterLast(wxT('[')).BeforeLast(wxT(']')));
117
options.insert(options.begin(), value);
140
// Remove the unchecked option
141
options.remove(value);
120
// uncheck the option if already defined manualy
121
m_checkListOptions->Check(idx, false);