OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright 2013 Google Inc. | |
3 * | |
4 * Use of this source code is governed by a BSD-style license that can be | |
5 * found in the LICENSE file. | |
6 */ | |
7 | |
8 #ifndef SkFontStyle_DEFINED | |
9 #define SkFontStyle_DEFINED | |
10 | |
11 #include "SkTypes.h" | |
12 | |
13 class SK_API SkFontStyle { | |
14 public: | |
15 enum Weight { | |
16 kThin_Weight = 100, | |
17 kExtraLight_Weight = 200, | |
18 kLight_Weight = 300, | |
19 kNormal_Weight = 400, | |
20 kMedium_Weight = 500, | |
21 kSemiBold_Weight = 600, | |
22 kBold_Weight = 700, | |
23 kExtraBold_Weight = 800, | |
24 kBlack_Weight = 900 | |
25 }; | |
26 | |
27 enum Width { | |
28 kUltraCondensed_Width = 1, | |
29 kExtraCondensed_Width = 2, | |
30 kCondensed_Width = 3, | |
31 kSemiCondensed_Width = 4, | |
32 kNormal_Width = 5, | |
33 kSemiExpanded_Width = 6, | |
34 kExpanded_Width = 7, | |
35 kExtraExpanded_Width = 8, | |
36 kUltaExpanded_Width = 9 | |
37 }; | |
38 | |
39 enum Slant { | |
40 kUpright_Slant, | |
41 kItalic_Slant, | |
42 }; | |
43 | |
44 SkFontStyle(); | |
45 SkFontStyle(int weight, int width, Slant); | |
46 | |
47 bool operator==(const SkFontStyle& rhs) const { | |
48 return fUnion.fU32 == rhs.fUnion.fU32; | |
49 } | |
50 | |
51 int weight() const { return fUnion.fR.fWeight; } | |
52 int width() const { return fUnion.fR.fWidth; } | |
53 Slant slant() const { return (Slant)fUnion.fR.fSlant; } | |
54 | |
55 bool isItalic() const { | |
56 return kItalic_Slant == fUnion.fR.fSlant; | |
57 } | |
58 | |
59 private: | |
60 union { | |
61 struct { | |
62 uint16_t fWeight; // 100 .. 900 | |
63 uint8_t fWidth; // 1 .. 9 | |
64 uint8_t fSlant; // 0 .. 2 | |
65 } fR; | |
66 uint32_t fU32; | |
67 } fUnion; | |
68 }; | |
69 | |
70 #endif | |
OLD | NEW |