⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scintillabase.cxx

📁 robocup rcssserver 运行防真机器人足球比赛所用的服务器端
💻 CXX
📖 第 1 页 / 共 2 页
字号:
int ScintillaBase::AutoCompleteGetCurrent() {	return ac.lb->GetSelection();}void ScintillaBase::CallTipShow(Point pt, const char *defn) {	AutoCompleteCancel();	pt.y += vs.lineHeight;	// If container knows about STYLE_CALLTIP then use it in place of the	// STYLE_DEFAULT for the face name, size and character set. Also use it	// for the foreground and background colour.	int ctStyle = ct.UseStyleCallTip() ? STYLE_CALLTIP : STYLE_DEFAULT;	if (ct.UseStyleCallTip()) {		ct.SetForeBack(vs.styles[STYLE_CALLTIP].fore, vs.styles[STYLE_CALLTIP].back);	}	PRectangle rc = ct.CallTipStart(currentPos, pt,		defn,		vs.styles[ctStyle].fontName,		vs.styles[ctStyle].sizeZoomed,		CodePage(),		vs.styles[ctStyle].characterSet,		wMain);	// If the call-tip window would be out of the client	// space, adjust so it displays above the text.	PRectangle rcClient = GetClientRectangle();	if (rc.bottom > rcClient.bottom) {		int offset = vs.lineHeight + rc.Height();		rc.top -= offset;		rc.bottom -= offset;	}	// Now display the window.	CreateCallTipWindow(rc);	ct.wCallTip.SetPositionRelative(rc, wMain);	ct.wCallTip.Show();}void ScintillaBase::CallTipClick() {	SCNotification scn = {0};	scn.nmhdr.code = SCN_CALLTIPCLICK;	scn.position = ct.clickPlace;	NotifyParent(scn);}void ScintillaBase::ContextMenu(Point pt) {	if (displayPopupMenu) {		bool writable = !WndProc(SCI_GETREADONLY, 0, 0);		popup.CreatePopUp();		AddToPopUp("Undo", idcmdUndo, writable && pdoc->CanUndo());		AddToPopUp("Redo", idcmdRedo, writable && pdoc->CanRedo());		AddToPopUp("");		AddToPopUp("Cut", idcmdCut, writable && currentPos != anchor);		AddToPopUp("Copy", idcmdCopy, currentPos != anchor);		AddToPopUp("Paste", idcmdPaste, writable && WndProc(SCI_CANPASTE, 0, 0));		AddToPopUp("Delete", idcmdDelete, writable && currentPos != anchor);		AddToPopUp("");		AddToPopUp("Select All", idcmdSelectAll);		popup.Show(pt, wMain);	}}void ScintillaBase::CancelModes() {	AutoCompleteCancel();	ct.CallTipCancel();	Editor::CancelModes();}void ScintillaBase::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt) {	CancelModes();	Editor::ButtonDown(pt, curTime, shift, ctrl, alt);}#ifdef SCI_LEXERvoid ScintillaBase::SetLexer(uptr_t wParam) {	lexLanguage = wParam;	lexCurrent = LexerModule::Find(lexLanguage);	if (!lexCurrent)		lexCurrent = LexerModule::Find(SCLEX_NULL);}void ScintillaBase::SetLexerLanguage(const char *languageName) {	lexLanguage = SCLEX_CONTAINER;	lexCurrent = LexerModule::Find(languageName);	if (!lexCurrent)		lexCurrent = LexerModule::Find(SCLEX_NULL);	if (lexCurrent)		lexLanguage = lexCurrent->GetLanguage();}void ScintillaBase::Colourise(int start, int end) {	if (!performingStyle) {		// Protect against reentrance, which may occur, for example, when		// fold points are discovered while performing styling and the folding		// code looks for child lines which may trigger styling.		performingStyle = true;		int lengthDoc = pdoc->Length();		if (end == -1)			end = lengthDoc;		int len = end - start;		PLATFORM_ASSERT(len >= 0);		PLATFORM_ASSERT(start + len <= lengthDoc);		//WindowAccessor styler(wMain.GetID(), props);		DocumentAccessor styler(pdoc, props, wMain.GetID());		int styleStart = 0;		if (start > 0)			styleStart = styler.StyleAt(start - 1) & pdoc->stylingBitsMask;		styler.SetCodePage(pdoc->dbcsCodePage);		if (lexCurrent && (len > 0)) {	// Should always succeed as null lexer should always be available			lexCurrent->Lex(start, len, styleStart, keyWordLists, styler);			styler.Flush();			if (styler.GetPropertyInt("fold")) {				lexCurrent->Fold(start, len, styleStart, keyWordLists, styler);				styler.Flush();			}		}		performingStyle = false;	}}#endifvoid ScintillaBase::NotifyStyleToNeeded(int endStyleNeeded) {#ifdef SCI_LEXER	if (lexLanguage != SCLEX_CONTAINER) {		int endStyled = WndProc(SCI_GETENDSTYLED, 0, 0);		int lineEndStyled = WndProc(SCI_LINEFROMPOSITION, endStyled, 0);		endStyled = WndProc(SCI_POSITIONFROMLINE, lineEndStyled, 0);		Colourise(endStyled, endStyleNeeded);		return;	}#endif	Editor::NotifyStyleToNeeded(endStyleNeeded);}sptr_t ScintillaBase::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {	switch (iMessage) {	case SCI_AUTOCSHOW:		listType = 0;		AutoCompleteStart(wParam, reinterpret_cast<const char *>(lParam));		break;	case SCI_AUTOCCANCEL:		AutoCompleteCancel();		break;	case SCI_AUTOCACTIVE:		return ac.Active();	case SCI_AUTOCPOSSTART:		return ac.posStart;	case SCI_AUTOCCOMPLETE:		AutoCompleteCompleted();		break;	case SCI_AUTOCSETSEPARATOR:		ac.SetSeparator(static_cast<char>(wParam));		break;	case SCI_AUTOCGETSEPARATOR:		return ac.GetSeparator();	case SCI_AUTOCSTOPS:		ac.SetStopChars(reinterpret_cast<char *>(lParam));		break;	case SCI_AUTOCSELECT:		ac.Select(reinterpret_cast<char *>(lParam));		break;	case SCI_AUTOCGETCURRENT:		return AutoCompleteGetCurrent();	case SCI_AUTOCSETCANCELATSTART:		ac.cancelAtStartPos = wParam != 0;		break;	case SCI_AUTOCGETCANCELATSTART:		return ac.cancelAtStartPos;	case SCI_AUTOCSETFILLUPS:		ac.SetFillUpChars(reinterpret_cast<char *>(lParam));		break;	case SCI_AUTOCSETCHOOSESINGLE:		ac.chooseSingle = wParam != 0;		break;	case SCI_AUTOCGETCHOOSESINGLE:		return ac.chooseSingle;	case SCI_AUTOCSETIGNORECASE:		ac.ignoreCase = wParam != 0;		break;	case SCI_AUTOCGETIGNORECASE:		return ac.ignoreCase;	case SCI_USERLISTSHOW:		listType = wParam;		AutoCompleteStart(0, reinterpret_cast<const char *>(lParam));		break;	case SCI_AUTOCSETAUTOHIDE:		ac.autoHide = wParam != 0;		break;	case SCI_AUTOCGETAUTOHIDE:		return ac.autoHide;	case SCI_AUTOCSETDROPRESTOFWORD:		ac.dropRestOfWord = wParam != 0;		break;	case SCI_AUTOCGETDROPRESTOFWORD:		return ac.dropRestOfWord;	case SCI_AUTOCSETMAXHEIGHT:		ac.lb->SetVisibleRows(wParam);		break;	case SCI_AUTOCGETMAXHEIGHT:		return ac.lb->GetVisibleRows();	case SCI_AUTOCSETMAXWIDTH:		maxListWidth = wParam;		break;	case SCI_AUTOCGETMAXWIDTH:		return maxListWidth;	case SCI_REGISTERIMAGE:		ac.lb->RegisterImage(wParam, reinterpret_cast<const char *>(lParam));		break;	case SCI_CLEARREGISTEREDIMAGES:		ac.lb->ClearRegisteredImages();		break;	case SCI_AUTOCSETTYPESEPARATOR:		ac.SetTypesep(static_cast<char>(wParam));		break;	case SCI_AUTOCGETTYPESEPARATOR:		return ac.GetTypesep();	case SCI_CALLTIPSHOW:		CallTipShow(LocationFromPosition(wParam),			reinterpret_cast<const char *>(lParam));		break;	case SCI_CALLTIPCANCEL:		ct.CallTipCancel();		break;	case SCI_CALLTIPACTIVE:		return ct.inCallTipMode;	case SCI_CALLTIPPOSSTART:		return ct.posStartCallTip;	case SCI_CALLTIPSETHLT:		ct.SetHighlight(wParam, lParam);		break;	case SCI_CALLTIPSETBACK:		ct.colourBG = ColourDesired(wParam);		vs.styles[STYLE_CALLTIP].fore = ct.colourBG;		InvalidateStyleRedraw();		break;	case SCI_CALLTIPSETFORE:		ct.colourUnSel = ColourDesired(wParam);		vs.styles[STYLE_CALLTIP].fore = ct.colourUnSel;		InvalidateStyleRedraw();		break;	case SCI_CALLTIPSETFOREHLT:		ct.colourSel = ColourDesired(wParam);		InvalidateStyleRedraw();		break;	case SCI_CALLTIPUSESTYLE:		ct.SetTabSize((int)wParam);		InvalidateStyleRedraw();		break;	case SCI_USEPOPUP:		displayPopupMenu = wParam != 0;		break;#ifdef SCI_LEXER	case SCI_SETLEXER:		SetLexer(wParam);		lexLanguage = wParam;		break;	case SCI_GETLEXER:		return lexLanguage;	case SCI_COLOURISE:		if (lexLanguage == SCLEX_CONTAINER) {			pdoc->ModifiedAt(wParam);			NotifyStyleToNeeded((lParam == -1) ? pdoc->Length() : lParam);		} else {			Colourise(wParam, lParam);		}		Redraw();		break;	case SCI_SETPROPERTY:		props.Set(reinterpret_cast<const char *>(wParam),		          reinterpret_cast<const char *>(lParam));		break;	case SCI_GETPROPERTY: {			SString val = props.Get(reinterpret_cast<const char *>(wParam));			const int n = val.length();			if (lParam != 0) {				char *ptr = reinterpret_cast<char *>(lParam);				memcpy(ptr, val.c_str(), n);				ptr[n] = '\0';	// terminate			}			return n;	// Not including NUL		}	case SCI_GETPROPERTYEXPANDED: {			SString val = props.GetExpanded(reinterpret_cast<const char *>(wParam));			const int n = val.length();			if (lParam != 0) {				char *ptr = reinterpret_cast<char *>(lParam);				memcpy(ptr, val.c_str(), n);				ptr[n] = '\0';	// terminate			}			return n;	// Not including NUL		}	case SCI_GETPROPERTYINT:		return props.GetInt(reinterpret_cast<const char *>(wParam), lParam);	case SCI_SETKEYWORDS:		if (wParam < numWordLists) {			keyWordLists[wParam]->Clear();			keyWordLists[wParam]->Set(reinterpret_cast<const char *>(lParam));		}		break;	case SCI_SETLEXERLANGUAGE:		SetLexerLanguage(reinterpret_cast<const char *>(lParam));		break;	case SCI_GETSTYLEBITSNEEDED:		return lexCurrent ? lexCurrent->GetStyleBitsNeeded() : 5;#endif	default:		return Editor::WndProc(iMessage, wParam, lParam);	}	return 0l;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -