1 // Scintilla source code edit control
2 /** @file Style.h
3  ** Defines the font and colour style for a class of text.
4  **/
5 // Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
7 
8 #ifndef STYLE_H
9 #define STYLE_H
10 
11 /**
12  */
13 class Style {
14 public:
15 	ColourPair fore;
16 	ColourPair back;
17 	bool aliasOfDefaultFont;
18 	bool bold;
19 	bool italic;
20 	int size;
21 	const char *fontName;
22 	int characterSet;
23 	bool eolFilled;
24 	bool underline;
25 	enum ecaseForced {caseMixed, caseUpper, caseLower};
26 	ecaseForced caseForce;
27 	bool visible;
28 	bool changeable;
29 	bool hotspot;
30 
31 	Font font;
32 	int sizeZoomed;
33 	unsigned int lineHeight;
34 	unsigned int ascent;
35 	unsigned int descent;
36 	unsigned int externalLeading;
37 	unsigned int aveCharWidth;
38 	unsigned int spaceWidth;
39 
40 	Style();
41 	Style(const Style &source);
42 	~Style();
43 	Style &operator=(const Style &source);
44 	void Clear(ColourDesired fore_, ColourDesired back_,
45 	           int size_,
46 	           const char *fontName_, int characterSet_,
47 	           bool bold_, bool italic_, bool eolFilled_,
48 	           bool underline_, ecaseForced caseForce_,
49 		   bool visible_, bool changeable_, bool hotspot_);
50 	void ClearTo(const Style &source);
51 	bool EquivalentFontTo(const Style *other) const;
52 	void Realise(Surface &surface, int zoomLevel, Style *defaultStyle = 0, bool extraFontFlag = false);
IsProtected()53 	bool IsProtected() const { return !(changeable && visible);};
54 };
55 
56 #endif
57