📄 parameters.h.svn-base
字号:
void setLexerName(const char *lexerName) {
strcpy(_lexerName, lexerName);
};
void setLexerDesc(const char *lexerDesc) {
strcpy(_lexerDesc, lexerDesc);
};
void setLexerUserExt(const char *lexerUserExt) {
strcpy(_lexerUserExt, lexerUserExt);
};
const char * getLexerName() const {return _lexerName;};
const char * getLexerDesc() const {return _lexerDesc;};
const char * getLexerUserExt() const {return _lexerUserExt;};
private :
char _lexerName[16];
char _lexerDesc[32];
char _lexerUserExt[256];
};
const int MAX_LEXER_STYLE = 50;
struct LexerStylerArray
{
public :
LexerStylerArray() : _nbLexerStyler(0){};
LexerStylerArray & operator=(const LexerStylerArray & lsa)
{
if (this != &lsa)
{
this->_nbLexerStyler = lsa._nbLexerStyler;
for (int i = 0 ; i < this->_nbLexerStyler ; i++)
this->_lexerStylerArray[i] = lsa._lexerStylerArray[i];
}
return *this;
}
int getNbLexer() const {return _nbLexerStyler;};
LexerStyler & getLexerFromIndex(int index)
{
return _lexerStylerArray[index];
};
const char * getLexerNameFromIndex(int index) const {return _lexerStylerArray[index].getLexerName();}
const char * getLexerDescFromIndex(int index) const {return _lexerStylerArray[index].getLexerDesc();}
LexerStyler * getLexerStylerByName(const char *lexerName) {
if (!lexerName) return NULL;
for (int i = 0 ; i < _nbLexerStyler ; i++)
{
if (!strcmp(_lexerStylerArray[i].getLexerName(), lexerName))
return &(_lexerStylerArray[i]);
}
return NULL;
};
bool hasEnoughSpace() {return (_nbLexerStyler < MAX_LEXER_STYLE);};
void addLexerStyler(const char *lexerName, const char *lexerDesc, const char *lexerUserExt, TiXmlNode *lexerNode);
private :
LexerStyler _lexerStylerArray[MAX_LEXER_STYLE];
int _nbLexerStyler;
};
struct NewDocDefaultSettings
{
formatType _format;
UniMode _encoding;
LangType _lang;
NewDocDefaultSettings():_format(WIN_FORMAT), _encoding(uni8Bit), _lang(L_TXT){};
};
struct LangMenuItem {
LangType _langType;
int _cmdID;
string _langName;
LangMenuItem(LangType lt, int cmdID = 0, string langName = ""):
_langType(lt), _cmdID(cmdID), _langName(langName){};
};
struct PrintSettings {
bool _printLineNumber;
int _printOption;
string _headerLeft;
string _headerMiddle;
string _headerRight;
string _headerFontName;
int _headerFontStyle;
int _headerFontSize;
string _footerLeft;
string _footerMiddle;
string _footerRight;
string _footerFontName;
int _footerFontStyle;
int _footerFontSize;
RECT _marge;
PrintSettings() : _printLineNumber(true), _printOption(SC_PRINT_NORMAL), _headerLeft(""), _headerMiddle(""), _headerRight(""),\
_headerFontName(""), _headerFontStyle(0), _headerFontSize(0), _footerLeft(""), _footerMiddle(""), _footerRight(""),\
_footerFontName(""), _footerFontStyle(0), _footerFontSize(0) {
_marge.left = 0; _marge.top = 0; _marge.right = 0; _marge.bottom = 0;
};
bool isHeaderPresent() const {
return ((_headerLeft != "") || (_headerMiddle != "") || (_headerRight != ""));
};
bool isFooterPresent() const {
return ((_footerLeft != "") || (_footerMiddle != "") || (_footerRight != ""));
};
bool isUserMargePresent() const {
return ((_marge.left != 0) || (_marge.top != 0) || (_marge.right != 0) || (_marge.bottom != 0));
};
};
struct NppGUI
{
NppGUI() : _toolBarStatus(TB_LARGE), _statusBarShow(true), \
_tabStatus(TAB_DRAWTOPBAR | TAB_DRAWINACTIVETAB | TAB_DRAGNDROP),\
_splitterPos(POS_HORIZOTAL), _userDefineDlgStatus(UDD_DOCKED), _tabSize(8),\
_tabReplacedBySpace(false), _fileAutoDetection(cdEnabled), _checkHistoryFiles(true),\
_isMaximized(false), _isMinimizedToTray(false), _rememberLastSession(true), _backup(bak_none), _useDir(false),\
_doTaskList(true), _maitainIndent(true), _saveOpenKeepInSameDir(false), _styleMRU(true), _styleURL(0) {
_appPos.left = 0;
_appPos.top = 0;
_appPos.right = 700;
_appPos.bottom = 500;
_backupDir[0] = '\0';
};
toolBarStatusType _toolBarStatus; // small, large ou hide
bool _statusBarShow; // show ou hide
// 1er bit : draw top bar;
// 2nd bit : draw inactive tabs
// 3eme bit : enable drag&drop
// 4eme bit : reduce the height
// 0:don't draw; 1:draw top bar 2:draw inactive tabs 3:draw both 7:draw both+drag&drop
int _tabStatus;
bool _splitterPos; // horizontal ou vertical
int _userDefineDlgStatus; // (hide||show) && (docked||undocked)
int _tabSize;
bool _tabReplacedBySpace;
ChangeDetect _fileAutoDetection;
bool _checkHistoryFiles;
RECT _appPos;
bool _isMaximized;
bool _isMinimizedToTray;
bool _rememberLastSession;
bool _doTaskList;
bool _maitainIndent;
bool _saveOpenKeepInSameDir;
bool _styleMRU;
// 0 : do nothing
// 1 : don't draw underline
// 2 : draw underline
int _styleURL;
NewDocDefaultSettings _newDocDefaultSettings;
void setTabReplacedBySpace(bool b) {_tabReplacedBySpace = b;};
const NewDocDefaultSettings & getNewDocDefaultSettings() const {return _newDocDefaultSettings;};
vector<LangMenuItem> _excludedLangList;
PrintSettings _printSettings;
BackupFeature _backup;
bool _useDir;
char _backupDir[MAX_PATH];
DockingManagerData _dockingData;
};
struct ScintillaViewParams
{
ScintillaViewParams() : _lineNumberMarginShow(true), _bookMarkMarginShow(true), \
_folderStyle(FOLDER_STYLE_BOX), _indentGuideLineShow(true),\
_currentLineHilitingShow(true), _wrapSymbolShow(false), _doWrap(false),\
_zoom(0), _whiteSpaceShow(false), _eolShow(false){};
bool _lineNumberMarginShow;
bool _bookMarkMarginShow;
folderStyle _folderStyle; //"simple", "arrow", "circle" and "box"
bool _indentGuideLineShow;
bool _currentLineHilitingShow;
bool _wrapSymbolShow;
bool _doWrap;
int _edgeMode;
int _edgeNbColumn;
int _zoom;
bool _whiteSpaceShow;
bool _eolShow;
};
const int NB_LIST = 20;
const int NB_MAX_LRF_FILE = 30;
const int NB_MAX_USER_LANG = 30;
const int LANG_NAME_LEN = 32;
struct Lang
{
LangType _langID;
char _langName[LANG_NAME_LEN];
const char *_defaultExtList;
const char *_langKeyWordList[NB_LIST];
const char *_pCommentLineSymbol;
const char *_pCommentStart;
const char *_pCommentEnd;
Lang() {for (int i = 0 ; i < NB_LIST ; _langKeyWordList[i] = NULL ,i++);};
Lang(LangType langID, const char *name) : _langID(langID){
_langName[0] = '\0';
if (name)
strcpy(_langName, name);
for (int i = 0 ; i < NB_LIST ; _langKeyWordList[i] = NULL ,i++);
};
~Lang() {};
void setDefaultExtList(const char *extLst){
_defaultExtList = extLst;
};
void setCommentLineSymbol(const char *commentLine){
_pCommentLineSymbol = commentLine;
};
void setCommentStart(const char *commentStart){
_pCommentStart = commentStart;
};
void setCommentEnd(const char *commentEnd){
_pCommentEnd = commentEnd;
};
const char * getDefaultExtList() const {
return _defaultExtList;
};
void setWords(const char *words, int index) {
_langKeyWordList[index] = words;
};
const char * getWords(int index) const {
return _langKeyWordList[index];
};
LangType getLangID() const {return _langID;};
const char * getLangName() const {return _langName;};
};
class UserLangContainer
{
friend class Notepad_plus;
friend class ScintillaEditView;
friend class NppParameters;
friend class SharedParametersDialog;
friend class FolderStyleDialog;
friend class KeyWordsStyleDialog;
friend class CommentStyleDialog;
friend class SymbolsStyleDialog;
friend class UserDefineDialog;
public :
UserLangContainer(){
strcpy(_name, "new user define");
_ext[0] = '\0';
// Keywords list of Delimiters (index 0)
strcpy(_keywordLists[0], "000000");
for (int i = 1 ; i < nbKeywodList ; i++)
*_keywordLists[i] = '\0';
};
UserLangContainer(const char *name, const char *ext){
//si le nom est trop long, on le tranche!
int minSize = ((sizeof(_name) - 1) < strlen(name))?(sizeof(_name) - 1):strlen(name);
int i = 0;
for ( ; i < minSize ; i++)
_name[i] = name[i];
_name[i] = '\0';
strcpy(_ext, ext);
// Keywords list of Delimiters (index 0)
strcpy(_keywordLists[0], "000000");
for (int j = 1 ; j < nbKeywodList ; j++)
*_keywordLists[j] = '\0';
};
UserLangContainer & operator=(const UserLangContainer & ulc) {
if (this != &ulc)
{
strcpy(this->_name, ulc._name);
strcpy(this->_ext, ulc._ext);
this->_isCaseIgnored = ulc._isCaseIgnored;
this->_styleArray = ulc._styleArray;
int nbStyler = this->_styleArray.getNbStyler();
for (int i = 0 ; i < nbStyler ; i++)
{
Style & st = this->_styleArray.getStyler(i);
if (st._bgColor == COLORREF(-1))
st._bgColor = white;
if (st._fgColor == COLORREF(-1))
st._fgColor = black;
}
for (int i = 0 ; i < nbKeywodList ; i++)
strcpy(this->_keywordLists[i], ulc._keywordLists[i]);
}
return *this;
};
int getNbKeywordList() {return nbKeywodList;};
char * getName() {return _name;};
private:
char _name[langNameLenMax];
char _ext[extsLenMax];
StyleArray _styleArray;
char _keywordLists[nbKeywodList][max_char];
bool _isCaseIgnored;
bool _isCommentLineSymbol;
bool _isCommentSymbol;
bool _isPrefix[nbPrefixListAllowed];
};
const int NB_LANG = 50;
const bool DUP = true;
const bool FREE = false;
class NppParameters
{
public:
static NppParameters * getInstance() {return _pSelf;};
static LangType getLangIDFromStr(const char *langName);
bool load(/*bool noUserPath = false*/);
void destroyInstance();
bool _isTaskListRBUTTONUP_Active;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -