1
#ifndef EDITORCOLORSET_H
2
#define EDITORCOLORSET_H
4
#include <wx/dynarray.h>
5
#include <wx/hashmap.h>
7
#include <wx/wxscintilla.h> // wxSCI_KEYWORDSET_MAX
11
#include "globals.h" // HighlightLanguage
16
class cbStyledTextCtrl;
18
#define COLORSET_DEFAULT _T("default")
31
wxColour originalfore;
32
wxColour originalback;
35
bool originalunderlined;
38
WX_DEFINE_ARRAY(OptionColour*, OptionColours);
43
OptionColours m_Colours;
44
wxString m_Keywords[wxSCI_KEYWORDSET_MAX + 1]; // wxSCI_KEYWORDSET_MAX+1 keyword sets
45
wxArrayString m_FileMasks;
47
wxString m_SampleCode;
52
wxString m_originalKeywords[wxSCI_KEYWORDSET_MAX + 1]; // wxSCI_KEYWORDSET_MAX+1 keyword sets
53
wxArrayString m_originalFileMasks;
55
WX_DECLARE_STRING_HASH_MAP(OptionSet, OptionSetsMap);
60
EditorColourSet(const wxString& setName = COLORSET_DEFAULT);
61
EditorColourSet(const EditorColourSet& other); // copy ctor
64
HighlightLanguage AddHighlightLanguage(int lexer, const wxString& name);
65
HighlightLanguage GetHighlightLanguage(int lexer); // from scintilla lexer (wxSCI_LEX_*)
66
HighlightLanguage GetHighlightLanguage(const wxString& name);
67
wxArrayString GetAllHighlightLanguages();
69
void AddOption(HighlightLanguage lang,
72
wxColour fore = wxNullColour,
73
wxColour back = wxNullColour,
76
bool underlined = false,
78
bool AddOption(HighlightLanguage lang, OptionColour* option, bool checkIfExists = true);
79
OptionColour* GetOptionByName(HighlightLanguage lang, const wxString& name);
80
OptionColour* GetOptionByValue(HighlightLanguage lang, int value);
81
OptionColour* GetOptionByIndex(HighlightLanguage lang, int index);
82
void UpdateOptionsWithSameName(HighlightLanguage lang, OptionColour* base);
83
int GetOptionCount(HighlightLanguage lang);
84
HighlightLanguage GetLanguageForFilename(const wxString& filename);
85
wxString GetLanguageName(HighlightLanguage lang);
86
wxString GetName(){ return m_Name; }
87
void SetName(const wxString& name){ m_Name = name; }
88
HighlightLanguage Apply(cbEditor* editor, HighlightLanguage lang=HL_AUTO);
89
void Apply(HighlightLanguage lang, cbStyledTextCtrl* control);
91
void Reset(HighlightLanguage lang);
92
wxString& GetKeywords(HighlightLanguage lang, int idx);
93
void SetKeywords(HighlightLanguage lang, int idx, const wxString& keywords);
94
const wxArrayString& GetFileMasks(HighlightLanguage lang);
95
void SetFileMasks(HighlightLanguage lang, const wxString& masks, const wxString& = _(","));
96
wxString GetSampleCode(HighlightLanguage lang, int* breakLine, int* debugLine, int* errorLine);
97
void SetSampleCode(HighlightLanguage lang, const wxString& sample, int breakLine, int debugLine, int errorLine);
100
void DoApplyStyle(cbStyledTextCtrl* control, int value, OptionColour* option);
101
void LoadAvailableSets();
103
void ClearAllOptionColours();
106
OptionSetsMap m_Sets;
109
#endif // EDITORCOLORSET_H