#ifndef FontTraits_h
#define FontTraits_h
#include "wtf/Assertions.h"
namespace WebCore {
enum FontWeight {
FontWeight100,
FontWeight200,
FontWeight300,
FontWeight400,
FontWeight500,
FontWeight600,
FontWeight700,
FontWeight800,
FontWeight900,
FontWeightNormal = FontWeight400,
FontWeightBold = FontWeight700
};
enum FontStretch {
FontStretchUltraCondensed = 1,
FontStretchExtraCondensed = 2,
FontStretchCondensed = 3,
FontStretchSemiCondensed = 4,
FontStretchNormal = 5,
FontStretchSemiExpanded = 6,
FontStretchExpanded = 7,
FontStretchExtraExpanded = 8,
FontStretchUltraExpanded = 9
};
enum FontStyle {
FontStyleNormal = 0,
FontStyleItalic = 1
};
enum FontVariant {
FontVariantNormal = 0,
FontVariantSmallCaps = 1
};
typedef unsigned FontTraitsMask;
struct FontTraits {
FontTraits(FontStyle style, FontVariant variant, FontWeight weight, FontStretch stretch)
: m_style(style), m_variant(variant), m_weight(weight), m_stretch(stretch), m_filler(0)
{
ASSERT(!m_filler);
ASSERT(!(m_mask >> 10));
}
FontTraits(FontTraitsMask mask)
: m_mask(mask)
{
ASSERT(!m_filler);
ASSERT(!(m_mask >> 10));
}
FontStyle style() const { return static_cast<FontStyle>(m_style); }
FontVariant variant() const { return static_cast<FontVariant>(m_variant); }
FontWeight weight() const { return static_cast<FontWeight>(m_weight); }
FontStretch stretch() const { return static_cast<FontStretch>(m_stretch); }
FontTraitsMask mask() const { return m_mask; }
union {
struct {
unsigned m_style : 1;
unsigned m_variant : 1;
unsigned m_weight : 4;
unsigned m_stretch : 4;
unsigned m_filler : 22;
};
unsigned m_mask;
};
};
}
#endif