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

📄 style.cxx

📁 robocup rcssserver 运行防真机器人足球比赛所用的服务器端
💻 CXX
字号:
// Scintilla source code edit control/** @file Style.cxx ** Defines the font and colour style for a class of text. **/// Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>// The License.txt file describes the conditions under which this software may be distributed.#include <string.h>#include "Platform.h"#include "Scintilla.h"#include "Style.h"Style::Style() {	aliasOfDefaultFont = true;	Clear(ColourDesired(0, 0, 0), ColourDesired(0xff, 0xff, 0xff),	      Platform::DefaultFontSize(), 0, SC_CHARSET_DEFAULT,	      false, false, false, false, caseMixed, true, true, false);}Style::Style(const Style &source) {	Clear(ColourDesired(0, 0, 0), ColourDesired(0xff, 0xff, 0xff),	      0, 0, 0,	      false, false, false, false, caseMixed, true, true, false);	fore.desired = source.fore.desired;	back.desired = source.back.desired;	characterSet = source.characterSet;	bold = source.bold;	italic = source.italic;	size = source.size;	eolFilled = source.eolFilled;	underline = source.underline;	caseForce = source.caseForce;	visible = source.visible;	changeable = source.changeable;	hotspot = source.hotspot;}Style::~Style() {	if (aliasOfDefaultFont)		font.SetID(0);	else		font.Release();	aliasOfDefaultFont = false;}Style &Style::operator=(const Style &source) {	if (this == &source)		return * this;	Clear(ColourDesired(0, 0, 0), ColourDesired(0xff, 0xff, 0xff),	      0, 0, SC_CHARSET_DEFAULT,	      false, false, false, false, caseMixed, true, true, false);	fore.desired = source.fore.desired;	back.desired = source.back.desired;	characterSet = source.characterSet;	bold = source.bold;	italic = source.italic;	size = source.size;	eolFilled = source.eolFilled;	underline = source.underline;	caseForce = source.caseForce;	visible = source.visible;	changeable = source.changeable;	return *this;}void Style::Clear(ColourDesired fore_, ColourDesired back_, int size_,                  const char *fontName_, int characterSet_,                  bool bold_, bool italic_, bool eolFilled_,                  bool underline_, ecaseForced caseForce_,		  bool visible_, bool changeable_, bool hotspot_) {	fore.desired = fore_;	back.desired = back_;	characterSet = characterSet_;	bold = bold_;	italic = italic_;	size = size_;	fontName = fontName_;	eolFilled = eolFilled_;	underline = underline_;	caseForce = caseForce_;	visible = visible_;	changeable = changeable_;	hotspot = hotspot_;	if (aliasOfDefaultFont)		font.SetID(0);	else		font.Release();	aliasOfDefaultFont = false;}void Style::ClearTo(const Style &source) {	Clear(		source.fore.desired,		source.back.desired,		source.size,		source.fontName,		source.characterSet,		source.bold,		source.italic,		source.eolFilled,		source.underline,		source.caseForce,		source.visible,		source.changeable,		source.hotspot);}bool Style::EquivalentFontTo(const Style *other) const {	if (bold != other->bold ||	        italic != other->italic ||	        size != other->size ||	        characterSet != other->characterSet)		return false;	if (fontName == other->fontName)		return true;	if (!fontName)		return false;	if (!other->fontName)		return false;	return strcmp(fontName, other->fontName) == 0;}void Style::Realise(Surface &surface, int zoomLevel, Style *defaultStyle, bool extraFontFlag) {	sizeZoomed = size + zoomLevel;	if (sizeZoomed <= 2)	// Hangs if sizeZoomed <= 1		sizeZoomed = 2;	if (aliasOfDefaultFont)		font.SetID(0);	else		font.Release();	int deviceHeight = surface.DeviceHeightFont(sizeZoomed);	aliasOfDefaultFont = defaultStyle &&	                     (EquivalentFontTo(defaultStyle) || !fontName);	if (aliasOfDefaultFont) {		font.SetID(defaultStyle->font.GetID());	} else if (fontName) {		font.Create(fontName, characterSet, deviceHeight, bold, italic, extraFontFlag);	} else {		font.SetID(0);	}	ascent = surface.Ascent(font);	descent = surface.Descent(font);	// Probably more typographically correct to include leading	// but that means more complex drawing as leading must be erased	//lineHeight = surface.ExternalLeading() + surface.Height();	externalLeading = surface.ExternalLeading(font);	lineHeight = surface.Height(font);	aveCharWidth = surface.AverageCharWidth(font);	spaceWidth = surface.WidthChar(font, ' ');}

⌨️ 快捷键说明

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