rcssserver3d Robocup 3D比赛官方指定平台

源代码在线查看: style.cxx

软件大小: 5365 K
上传用户: joyman
关键词: rcssserver3d Robocup
下载地址: 免注册下载 普通下载 VIP

相关代码

				// 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 				// The License.txt file describes the conditions under which this software may be distributed.								#include 								#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 						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, ' ');				}							

相关资源