70 : m_CompilerId(compilerId),
76 XRCCTRL(*
this,
"wxID_OK",
wxButton)->SetDefault();
77 ReadCompilerOptions();
80 GetSizer()->SetSizeHints(
this);
96 for (
int i = 0; i <
ctCount; ++i)
143 for (
int i = 0; i <
ctCount; ++i)
192 for (
size_t i = 0; i <
m_Commands[nr].size(); ++i)
200 for (
size_t i = 0; i <
m_Commands[cmd].size(); ++i)
218 text->SetValue(tool->command);
239 if (cmd == -1 || ext == -1)
245 if (text->GetValue() != tool->command)
246 tool->command = text->GetValue();
248 if (gen->GetValue() != gens)
258 for (
size_t i = 0; i <
m_Regexes.size(); ++i)
261 list->Append(rs.
desc);
271 XRCCTRL(*
this,
"txtRegexDesc",
wxTextCtrl)->SetValue(
_T(
""));
272 XRCCTRL(*
this,
"cmbRegexType",
wxComboBox)->SetSelection(-1);
273 XRCCTRL(*
this,
"txtRegex",
wxTextCtrl)->SetValue(
_T(
""));
274 XRCCTRL(*
this,
"spnRegexMsg1",
wxSpinCtrl)->SetValue(0);
275 XRCCTRL(*
this,
"spnRegexMsg2",
wxSpinCtrl)->SetValue(0);
276 XRCCTRL(*
this,
"spnRegexMsg3",
wxSpinCtrl)->SetValue(0);
277 XRCCTRL(*
this,
"spnRegexFilename",
wxSpinCtrl)->SetValue(0);
278 XRCCTRL(*
this,
"spnRegexLine",
wxSpinCtrl)->SetValue(0);
284 XRCCTRL(*
this,
"cmbRegexType",
wxComboBox)->SetSelection((
int)rs.
lt);
286 XRCCTRL(*
this,
"spnRegexMsg1",
wxSpinCtrl)->SetValue(rs.
msg[0]);
287 XRCCTRL(*
this,
"spnRegexMsg2",
wxSpinCtrl)->SetValue(rs.
msg[1]);
288 XRCCTRL(*
this,
"spnRegexMsg3",
wxSpinCtrl)->SetValue(rs.
msg[2]);
302 rs.
msg[0] = XRCCTRL(*
this,
"spnRegexMsg1",
wxSpinCtrl)->GetValue();
303 rs.
msg[1] = XRCCTRL(*
this,
"spnRegexMsg2",
wxSpinCtrl)->GetValue();
304 rs.
msg[2] = XRCCTRL(*
this,
"spnRegexMsg3",
wxSpinCtrl)->GetValue();
312 int cmd = XRCCTRL(*
this,
"lstCommands",
wxChoice)->GetSelection();
314 int ext = XRCCTRL(*
this,
"lstExt",
wxChoice)->GetSelection();
321 int cmd = XRCCTRL(*
this,
"lstCommands",
wxChoice)->GetSelection();
322 int ext = XRCCTRL(*
this,
"lstExt",
wxChoice)->GetSelection();
328 wxString ext =
cbGetTextFromUser(
_(
"Please enter a semi-colon separated list of extensions, without the leading dot:"),
_(
"New extension"));
333 int nr = XRCCTRL(*
this,
"lstCommands",
wxChoice)->GetSelection();
339 cmb->SetStringSelection(ext);
348 int nr = XRCCTRL(*
this,
"lstCommands",
wxChoice)->GetSelection();
350 wxString extS = cmb->GetStringSelection();
404 if (
cbMessageBox(
_(
"Are you sure you want to load the default regular expressions " 405 "for this compiler?\n" 406 "ALL regular expressions will be erased and replaced with their default " 475 msg.
Printf(
_(
"Regular expression analyzed as follows:\n\n" 482 : (clt ==
cltError ?
_(
"Error") :
_(
"Warning") ) ),
static wxString CommandTypeDescriptions[ctCount]
Get the command type descriptions (used in advanced compiler options)
bool linkerNeedsLibExtension
virtual const RegExArray & GetRegExArray()
Get the array of regexes used in errors/warnings recognition.
DLLIMPORT wxArrayString GetArrayFromString(const wxString &text, const wxString &separator=DEFAULT_ARRAY_SEP, bool trimSpaces=true)
void EndModal(int retCode)
void OnRegexTest(wxCommandEvent &event)
virtual wxString GetLastError()
Returns warning/error actual string.
void OnRegexUp(wxSpinEvent &event)
void OnRegexDefaults(wxCommandEvent &event)
virtual int GetSelection() const
virtual wxString GetString(unsigned int n) const
wxString StringToControlChars(const wxString &src)
DLLIMPORT wxString cbGetTextFromUser(const wxString &message, const wxString &caption=cbGetTextFromUserPromptStr, const wxString &default_value=wxEmptyString, wxWindow *parent=NULL, int x=wxDefaultCoord, int y=wxDefaultCoord, bool centre=true)
static Compiler * GetCompiler(size_t index)
void SaveRegexDetails(int index)
DLLIMPORT wxString GetStringFromArray(const wxArrayString &array, const wxString &separator=DEFAULT_ARRAY_SEP, bool SeparatorAtEnd=true)
#define wxICON_INFORMATION
void SetRegExString(const wxString &str)
void OnAddExt(wxCommandEvent &event)
CompilerToolsVector m_Commands[ctCount]
virtual wxString GetLastErrorLine()
Returns warning/error line number (as a string).
void OnRegexDown(wxSpinEvent &event)
CompilerLineType
Enum categorizing compiler's output line as warning/error/info/normal.
virtual ~AdvancedCompilerOptionsDlg()
std::vector< RegExStruct > RegExArray
virtual void SetRegExArray(const RegExArray ®exes)
Set the array of regexes used in errors/warnings recognition.
wxString ControlCharsToString(const wxString &src)
void EndModal(int retCode)
void ReadExtensions(int nr)
size_t Replace(const wxString &strOld, const wxString &strNew, bool replaceAll=true)
void OnRegexDelete(wxCommandEvent &event)
wxChar includeDirSeparator
void WriteCompilerOptions()
void SaveCommands(int cmd, int ext)
const wxStringCharType * wx_str() const
void ReadCompilerOptions()
virtual void LoadDefaultRegExArray(bool globalPrecedence=false)
Load the default (preset) array of regexes used in errors/warnings recognition.
const wxString & _(const wxString &string)
wxString & Trim(bool fromRight=true)
void OnRegexChange(wxCommandEvent &event)
CommandType
Helper enum to retrieve compiler commands.
Abstract base class for compilers.
DLLIMPORT const wxString DEFAULT_ARRAY_SEP
virtual CompilerLineType CheckForWarningsAndErrors(const wxString &line)
Check if the supplied string is a compiler warning/error.
bool forceLinkerUseQuotes
void OnRegexAdd(wxCommandEvent &event)
void OnCommandsChange(wxCommandEvent &event)
void DisplayCommand(int cmd, int ext)
virtual const CompilerSwitches & GetSwitches() const
Get the compiler's generic switches.
virtual wxString GetLastErrorFilename()
Returns warning/error filename.
wxString GetRegExString() const
bool linkerNeedsLibPrefix
bool m_bDirty
Have changes being made to settings in the dialog.
static wxXmlResource * Get()
virtual void SetSwitches(const CompilerSwitches &switches)
Set the compiler's generic switches.
void OnExtChange(wxCommandEvent &event)
void FillRegexDetails(int index)
int Printf(const wxString &pszFormat,...)
virtual void SetSelection(int n)
bool forceCompilerUseQuotes
void OnDelExt(wxCommandEvent &event)
wxObject * LoadObject(wxWindow *parent, const wxString &name, const wxString &classname)
DLLIMPORT int cbMessageBox(const wxString &message, const wxString &caption=wxEmptyString, int style=wxOK, wxWindow *parent=NULL, int x=-1, int y=-1)
wxMessageBox wrapper.
bool linkerNeedsPathResolved
virtual int FindString(const wxString &s, bool bCase=false) const