📄 parameters.h.svn-base
字号:
const NppGUI & getNppGUI() const {
return _nppGUI;
};
const char * getWordList(LangType langID, int typeIndex) const {
Lang *pLang = getLangFromID(langID);
if (!pLang) return NULL;
return pLang->getWords(typeIndex);
};
Lang * getLangFromID(LangType langID) const {
for (int i = 0 ; i < _nbLang ; i++)
{
if ((_langList[i]->_langID == langID) || (!_langList[i]))
return _langList[i];
}
return NULL;
};
Lang * getLangFromIndex(int i) const {
if (i >= _nbLang) return NULL;
return _langList[i];
};
const char * getLangExtFromName(const char *langName) const {
for (int i = 0 ; i < _nbLang ; i++)
{
if (!strcmp(_langList[i]->_langName, langName))
return _langList[i]->_defaultExtList;
}
return NULL;
};
const char * getLangExtFromLangType(LangType langType) const {
for (int i = 0 ; i < _nbLang ; i++)
{
if (_langList[i]->_langID == langType)
return _langList[i]->_defaultExtList;
}
return NULL;
};
int getNbLRFile() const {return _nbFile;};
string *getLRFile(int index) const {
return _LRFileList[index];
};
void setNbMaxFile(int nb) {
_nbMaxFile = nb;
};
int getNbMaxFile() const {return _nbMaxFile;};
const ScintillaViewParams & getSVP(bool whichOne) const {
return _svp[whichOne];
};
void writeNbHistoryFile(int nb) {
if (!_pXmlUserDoc) return;
TiXmlNode *historyNode = (_pXmlUserDoc->FirstChild("NotepadPlus"))->FirstChildElement("History");
if (historyNode)
(historyNode->ToElement())->SetAttribute("nbMaxFile", nb);
};
void writeHistory(const char *fullpath);
TiXmlNode * getChildElementByAttribut(TiXmlNode *pere, const char *childName,\
const char *attributName, const char *attributVal) const;
void writeScintillaParams(const ScintillaViewParams & svp, bool whichOne);
void writeGUIParams();
void writeStyles(LexerStylerArray & lexersStylers, StyleArray & globalStylers);
LexerStylerArray & getLStylerArray() {return _lexerStylerArray;};
StyleArray & getGlobalStylers() {return _widgetStyleArray;};
StyleArray & getMiscStylerArray() {return _widgetStyleArray;};
COLORREF getCurLineHilitingColour() {
int i = _widgetStyleArray.getStylerIndexByName("Current line background colour");
if (i == -1) return i;
Style & style = _widgetStyleArray.getStyler(i);
return style._bgColor;
};
void setCurLineHilitingColour(COLORREF colour2Set) {
int i = _widgetStyleArray.getStylerIndexByName("Current line background colour");
if (i == -1) return;
Style & style = _widgetStyleArray.getStyler(i);
style._bgColor = colour2Set;
};
void setFontList(HWND hWnd);
const vector<string> & getFontList() const {return _fontlist;};
int getNbUserLang() const {return _nbUserLang;};
UserLangContainer & getULCFromIndex(int i) {return *_userLangArray[i];};
UserLangContainer & getULCFromName(const char *userLangName) {
for (int i = 0 ; i < _nbUserLang ; i++)
if (!strcmp(userLangName, _userLangArray[i]->_name))
return *_userLangArray[i];
//qui doit etre jamais passer
return *_userLangArray[0];
};
void writeUserDefinedLang();
void writeShortcuts(bool rewriteCmdSc, bool rewriteMacrosSc, bool rewriteUserCmdSc, bool rewriteScintillaKey, bool rewritePluginCmdSc);
void writeSession(const Session & session, const char *fileName = NULL);
bool isExistingUserLangName(const char *newName) const {
if ((!newName) || (!newName[0]))
return true;
for (int i = 0 ; i < _nbUserLang ; i++)
{
if (!strcmp(_userLangArray[i]->_name, newName))
return true;
}
return false;
};
const char * getLangNameFromExt(char *ext) {
if ((!ext) || (!ext[0]))
return NULL;
for (int i = 0 ; i < _nbUserLang ; i++)
{
vector<string> extVect;
cutString(_userLangArray[i]->_ext, extVect);
for (size_t j = 0 ; j < extVect.size() ; j++)
if (!stricmp(extVect[j].c_str(), ext))
return _userLangArray[i]->_name;
}
return NULL;
};
int addUserLangToEnd(const UserLangContainer & userLang, const char *newName);
void removeUserLang(int index);
TiXmlDocument * getNativeLang() const {return _pXmlNativeLangDoc;};
TiXmlDocument * getToolIcons() const {return _pXmlToolIconsDoc;};
bool isTransparentAvailable() const {
return (_transparentFuncAddr != NULL);
};
void SetTransparent(HWND hwnd, int percent) {
//WNDPROC transparentFunc = (NppParameters::getInstance())->getTransparentFunc();
if (!_transparentFuncAddr) return;
::SetWindowLong(hwnd, GWL_EXSTYLE, ::GetWindowLong(hwnd, GWL_EXSTYLE) | /*WS_EX_LAYERED*/0x00080000);
_transparentFuncAddr(hwnd, 0, percent, 0x00000002);
};
void removeTransparent(HWND hwnd) {
::SetWindowLong(hwnd, GWL_EXSTYLE, ::GetWindowLong(hwnd, GWL_EXSTYLE) & ~/*WS_EX_LAYERED*/0x00080000);
};
void setDefLang(LangType langType) {_defLangType = langType;};
LangType getDefLang() const {return _defLangType;};
void setLineNumber2go(int ln) {_lineNumber2Go = ln;};
int getLineNumber2go() const {return _lineNumber2Go;};
bool isRemappingShortcut() const {return _shortcuts.size() != 0;};
vector<CommandShortcut> & getUserShortcuts() {return _shortcuts;};
vector<MacroShortcut> & getMacroList() {return _macros;};
vector<UserCommand> & getUserCommandList() {return _userCommands;};
vector<PluginCmdShortcut> & getPluginCommandList() {return _pluginCommands;};
vector<PluginCmdShortcut> & getPluginCustomizedCmds() {return _pluginCustomizedCmds;};
vector<ScintillaKeyMap> & getScintillaKeyList() {return _scintillaKeyCommands;};
vector<ScintillaKeyMap> & getScintillaModifiedKeys() {return _scintillaModifiedKeys;};
//vector<string> & getNoMenuCmdNames() {return _noMenuCmdNames;};
vector<MenuItemUnit> & getContextMenuItems() {return _contextMenuItems;};
const Session & getSession() const {return _session;};
bool hasCustomContextMenu() const {return !_contextMenuItems.empty();};
void setAccelerator(Accelerator *pAccel) {_pAccelerator = pAccel;};
Accelerator * getAccelerator() {return _pAccelerator;};
const char * getNppPath() const {return _nppPath;};
const char * getAppDataNppDir() const {return _appdataNppDir;};
bool loadSession(Session & session, const char *sessionFileName);
int langTypeToCommandID(LangType lt) const;
WNDPROC getEnableThemeDlgTexture() const {return _enableThemeDialogTextureFuncAddr;};
struct FindDlgTabTitiles {
string _find;
string _replace;
string _findInFiles;
FindDlgTabTitiles() : _find(""), _replace(""), _findInFiles("") {};
bool isWellFilled() {
return (strcmp(_find.c_str(), "") != 0 && strcmp(_replace.c_str(), "") && strcmp(_findInFiles.c_str(), ""));
};
};
FindDlgTabTitiles & getFindDlgTabTitiles() { return _findDlgTabTitiles;};
private:
NppParameters();
~NppParameters() {
for (int i = 0 ; i < _nbLang ; i++)
delete _langList[i];
for (int i = 0 ; i < _nbFile ; i++)
delete _LRFileList[i];
for (int i = 0 ; i < _nbUserLang ; i++)
delete _userLangArray[i];
if (_hUser32)
FreeLibrary(_hUser32);
if (_hUXTheme)
FreeLibrary(_hUXTheme);
//::RemoveFontResource(LINEDRAW_FONT);
};
static NppParameters *_pSelf;
TiXmlDocument *_pXmlDoc, *_pXmlUserDoc, *_pXmlUserStylerDoc, *_pXmlUserLangDoc, *_pXmlNativeLangDoc,\
*_pXmlToolIconsDoc, *_pXmlShortcutDoc, *_pXmlContextMenuDoc, *_pXmlSessionDoc;
NppGUI _nppGUI;
ScintillaViewParams _svp[2];
Lang *_langList[NB_LANG];
int _nbLang;
string *_LRFileList[NB_MAX_LRF_FILE];
int _nbFile;
int _nbMaxFile;
UserLangContainer *_userLangArray[NB_MAX_USER_LANG];
int _nbUserLang;
char _userDefineLangPath[MAX_PATH];
LangType _defLangType;
int _lineNumber2Go;
// All Styles (colours & fonts)
LexerStylerArray _lexerStylerArray;
StyleArray _widgetStyleArray;
vector<string> _fontlist;
HMODULE _hUser32;
HMODULE _hUXTheme;
WNDPROC _transparentFuncAddr;
WNDPROC _enableThemeDialogTextureFuncAddr;
vector<CommandShortcut> _shortcuts;
vector<MacroShortcut> _macros;
vector<UserCommand> _userCommands;
vector<PluginCmdShortcut> _pluginCommands;
vector<PluginCmdShortcut> _pluginCustomizedCmds;
vector<ScintillaKeyMap> _scintillaKeyCommands;
vector<ScintillaKeyMap> _scintillaModifiedKeys;
//vector<string> _noMenuCmdNames;
vector<MenuItemUnit> _contextMenuItems;
Session _session;
char _shortcutsPath[MAX_PATH];
char _contextMenuPath[MAX_PATH];
char _sessionPath[MAX_PATH];
char _nppPath[MAX_PATH];
char _appdataNppDir[MAX_PATH]; // sentinel of the absence of "doLocalConf.xml" : (_appdataNppDir == "")?"doLocalConf.xml present":"doLocalConf.xml absent"
Accelerator *_pAccelerator;
FindDlgTabTitiles _findDlgTabTitiles;
static int CALLBACK EnumFontFamExProc(ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX *lpntme, int FontType, LPARAM lParam) {
vector<string> *pStrVect = (vector<string> *)lParam;
size_t vectSize = pStrVect->size();
if (vectSize == 0)
pStrVect->push_back((char *)lpelfe->elfFullName);
else
{
const char *lastFontName = pStrVect->at(vectSize - 1).c_str();
if (strcmp(lastFontName, (const char *)lpelfe->elfFullName))
pStrVect->push_back((char *)lpelfe->elfFullName);
}
return 1; // I want to get all fonts
};
void getLangKeywordsFromXmlTree();
bool getUserParametersFromXmlTree();
bool getUserStylersFromXmlTree();
bool getUserDefineLangsFromXmlTree();
bool getShortcutsFromXmlTree();
void initScintillaKeys();
bool getMacrosFromXmlTree();
bool getUserCmdsFromXmlTree();
bool getPluginCmdsFromXmlTree();
bool getScintKeysFromXmlTree();
bool getContextMenuFromXmlTree();
bool getSessionFromXmlTree(TiXmlDocument *pSessionDoc = NULL, Session *session = NULL);
void feedGUIParameters(TiXmlNode *node);
void feedKeyWordsParameters(TiXmlNode *node);
void feedFileListParameters(TiXmlNode *node);
void feedScintillaParam(bool whichOne, TiXmlNode *node);
void feedDockingManager(TiXmlNode *node);
bool feedStylerArray(TiXmlNode *node);
void getAllWordStyles(char *lexerName, TiXmlNode *lexerNode);
void feedUserLang(TiXmlNode *node);
int getIndexFromKeywordListName(const char *name);
void feedUserStyles(TiXmlNode *node);
void feedUserKeywordList(TiXmlNode *node);
void feedUserSettings(TiXmlNode *node);
void feedShortcut(TiXmlNode *node);
void feedMacros(TiXmlNode *node);
void feedUserCmds(TiXmlNode *node);
void feedPluginCustomizedCmds(TiXmlNode *node);
void feedScintKeys(TiXmlNode *node);
void getActions(TiXmlNode *node, MacroShortcut & macroShortcut);
bool getShortcuts(TiXmlNode *node, Shortcut & sc);
bool getScintKey(TiXmlNode *node, ScintillaKeyMap & skm);
int getIndexFromStr(const char *indexName) const;
void writeStyle2Element(Style & style2Wite, Style & style2Sync, TiXmlElement *element);
void insertUserLang2Tree(TiXmlNode *node, UserLangContainer *userLang);
void insertCmd(TiXmlNode *cmdRoot, const CommandShortcut & cmd);
void insertMacro(TiXmlNode *macrosRoot, const MacroShortcut & macro);
void insertUserCmd(TiXmlNode *userCmdRoot, const UserCommand & userCmd);
void insertScintKey(TiXmlNode *scintKeyRoot, const ScintillaKeyMap & scintKeyMap);
void insertPluginCmd(TiXmlNode *pluginCmdRoot, const PluginCmdShortcut & pluginCmd);
void stylerStrOp(bool op);
void insertGUIConfigBoolNode(TiXmlNode *r2w, const char *name, bool bVal);
void insertDockingParamNode(TiXmlNode *GUIRoot);
void writeExcludedLangList(TiXmlElement *element);
void writePrintSetting(TiXmlElement *element);
};
#endif //PARAMETERS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -