FontGenericFamilies.h [plain text]
#ifndef FontGenericFamilies_h
#define FontGenericFamilies_h
#include <unicode/uscript.h>
#include <wtf/HashMap.h>
#include <wtf/text/AtomicString.h>
namespace WebCore {
struct UScriptCodeHashTraits : WTF::GenericHashTraits<int> {
static const bool emptyValueIsZero = false;
static int emptyValue() { return -2; }
static void constructDeletedValue(int& slot) { slot = -3; }
static bool isDeletedValue(int value) { return value == -3; }
};
typedef HashMap<int, AtomicString, DefaultHash<int>::Hash, UScriptCodeHashTraits> ScriptFontFamilyMap;
class FontGenericFamilies {
WTF_MAKE_FAST_ALLOCATED;
public:
FontGenericFamilies();
const AtomicString& standardFontFamily(UScriptCode = USCRIPT_COMMON) const;
const AtomicString& fixedFontFamily(UScriptCode = USCRIPT_COMMON) const;
const AtomicString& serifFontFamily(UScriptCode = USCRIPT_COMMON) const;
const AtomicString& sansSerifFontFamily(UScriptCode = USCRIPT_COMMON) const;
const AtomicString& cursiveFontFamily(UScriptCode = USCRIPT_COMMON) const;
const AtomicString& fantasyFontFamily(UScriptCode = USCRIPT_COMMON) const;
const AtomicString& pictographFontFamily(UScriptCode = USCRIPT_COMMON) const;
bool setStandardFontFamily(const AtomicString&, UScriptCode);
bool setFixedFontFamily(const AtomicString&, UScriptCode);
bool setSerifFontFamily(const AtomicString&, UScriptCode);
bool setSansSerifFontFamily(const AtomicString&, UScriptCode);
bool setCursiveFontFamily(const AtomicString&, UScriptCode);
bool setFantasyFontFamily(const AtomicString&, UScriptCode);
bool setPictographFontFamily(const AtomicString&, UScriptCode);
private:
ScriptFontFamilyMap m_standardFontFamilyMap;
ScriptFontFamilyMap m_serifFontFamilyMap;
ScriptFontFamilyMap m_fixedFontFamilyMap;
ScriptFontFamilyMap m_sansSerifFontFamilyMap;
ScriptFontFamilyMap m_cursiveFontFamilyMap;
ScriptFontFamilyMap m_fantasyFontFamilyMap;
ScriptFontFamilyMap m_pictographFontFamilyMap;
};
}
#endif