2
* This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3
3
* http://www.gnu.org/licenses/lgpl-3.0.html
6
#ifndef MACROSMANAGER_H
7
#define MACROSMANAGER_H
12
#include <wx/filename.h>
17
class ProjectBuildTarget;
19
class UserVariableManager;
21
WX_DECLARE_STRING_HASH_MAP( wxString, MacrosMap );
23
class DLLIMPORT MacrosManager : public Mgr<MacrosManager>
27
friend class Mgr<MacrosManager>;
28
void CreateMenu(wxMenuBar* menuBar);
29
void ReleaseMenu(wxMenuBar* menuBar);
30
void ReplaceMacros(wxString& buffer, ProjectBuildTarget* target = 0, bool subrequest = false);
31
wxString ReplaceMacros(const wxString& buffer, ProjectBuildTarget* target = 0);
32
void ReplaceEnvVars(wxString& buffer) { ReplaceMacros(buffer); } /* misnomer, should be ReplaceVariables */;
33
void RecalcVars(cbProject* project, EditorBase* editor, ProjectBuildTarget* target);
34
void ClearProjectKeys();
37
ProjectBuildTarget* m_LastTarget;
38
cbProject* m_LastProject;
40
wxFileName m_ProjectWxFileName;
41
wxFileName m_WorkspaceWxFileName;
46
wxString m_ActiveEditorFilename;
47
int m_ActiveEditorLine;
48
int m_ActiveEditorColumn;
49
wxString m_WorkspaceFilename;
50
wxString m_WorkspaceName;
51
wxString m_WorkspaceDir;
52
wxString m_ProjectFilename;
53
wxString m_ProjectName;
54
wxString m_ProjectDir;
55
wxString m_ProjectTopDir;
56
wxString m_ProjectFiles;
58
wxString m_TargetOutputDir;
59
wxString m_TargetName;
60
wxString m_TargetOutputBaseName;
61
wxString m_TargetOutputFilename;
62
wxString m_TargetFilename;
70
wxRegEx m_RE_ToAbsolutePath;
71
wxRegEx m_RE_To83Path;
72
wxRegEx m_RE_RemoveQuotes;
73
UserVariableManager *m_UserVarMan;
78
wxString EvalCondition(const wxString& cond, const wxString& true_clause, const wxString& false_clause, ProjectBuildTarget* target);
79
int MatchBrace(const wxString& buffer, int index);
82
#endif // MACROSMANAGER_H