/* * Copyright (c) 2020, Stephan Unverwerth * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include namespace Gfx { class Typeface : public RefCounted { public: Typeface(const String& family, const String& variant) : m_family(family) , m_variant(variant) { } String family() const { return m_family; } String variant() const { return m_variant; } unsigned weight() const; bool is_fixed_width() const; bool is_fixed_size() const { return !m_bitmap_fonts.is_empty(); } void for_each_fixed_size_font(Function) const; void add_bitmap_font(RefPtr); void set_ttf_font(RefPtr); RefPtr get_font(unsigned size); private: String m_family; String m_variant; Vector> m_bitmap_fonts; RefPtr m_ttf_font; }; }