| Index: include/ports/SkFontStyle.h
|
| diff --git a/include/ports/SkFontStyle.h b/include/ports/SkFontStyle.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9d9a912d7d74406dd7705318c02e806c97ee0427
|
| --- /dev/null
|
| +++ b/include/ports/SkFontStyle.h
|
| @@ -0,0 +1,70 @@
|
| +/*
|
| + * Copyright 2013 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef SkFontStyle_DEFINED
|
| +#define SkFontStyle_DEFINED
|
| +
|
| +#include "SkTypes.h"
|
| +
|
| +class SK_API SkFontStyle {
|
| +public:
|
| + enum Weight {
|
| + kThin_Weight = 100,
|
| + kExtraLight_Weight = 200,
|
| + kLight_Weight = 300,
|
| + kNormal_Weight = 400,
|
| + kMedium_Weight = 500,
|
| + kSemiBold_Weight = 600,
|
| + kBold_Weight = 700,
|
| + kExtraBold_Weight = 800,
|
| + kBlack_Weight = 900
|
| + };
|
| +
|
| + enum Width {
|
| + kUltraCondensed_Width = 1,
|
| + kExtraCondensed_Width = 2,
|
| + kCondensed_Width = 3,
|
| + kSemiCondensed_Width = 4,
|
| + kNormal_Width = 5,
|
| + kSemiExpanded_Width = 6,
|
| + kExpanded_Width = 7,
|
| + kExtraExpanded_Width = 8,
|
| + kUltaExpanded_Width = 9
|
| + };
|
| +
|
| + enum Slant {
|
| + kUpright_Slant,
|
| + kItalic_Slant,
|
| + };
|
| +
|
| + SkFontStyle();
|
| + SkFontStyle(int weight, int width, Slant);
|
| +
|
| + bool operator==(const SkFontStyle& rhs) const {
|
| + return fUnion.fU32 == rhs.fUnion.fU32;
|
| + }
|
| +
|
| + int weight() const { return fUnion.fR.fWeight; }
|
| + int width() const { return fUnion.fR.fWidth; }
|
| + Slant slant() const { return (Slant)fUnion.fR.fSlant; }
|
| +
|
| + bool isItalic() const {
|
| + return kItalic_Slant == fUnion.fR.fSlant;
|
| + }
|
| +
|
| +private:
|
| + union {
|
| + struct {
|
| + uint16_t fWeight; // 100 .. 900
|
| + uint8_t fWidth; // 1 .. 9
|
| + uint8_t fSlant; // 0 .. 2
|
| + } fR;
|
| + uint32_t fU32;
|
| + } fUnion;
|
| +};
|
| +
|
| +#endif
|
|
|