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 |