diff --git a/Libraries/LibGfx/Font.cpp b/Libraries/LibGfx/Font.cpp index ebb1933ab26..cb3861474f9 100644 --- a/Libraries/LibGfx/Font.cpp +++ b/Libraries/LibGfx/Font.cpp @@ -255,4 +255,14 @@ int Font::width(const Utf8View& utf8) const return width; } +int Font::width(const u32* codepoints, size_t length) const +{ + if (length == 0) + return 0; + int width = (length - 1) * glyph_spacing(); + for (size_t i = 0; i < length; ++i) + width += glyph_or_emoji_width(codepoints[i]); + return width; +} + } diff --git a/Libraries/LibGfx/Font.h b/Libraries/LibGfx/Font.h index 1580f25e11e..b71c2519ab4 100644 --- a/Libraries/LibGfx/Font.h +++ b/Libraries/LibGfx/Font.h @@ -95,6 +95,7 @@ public: int width(const StringView&) const; int width(const Utf8View&) const; + int width(const u32* codepoints, size_t) const; String name() const { return m_name; } void set_name(const StringView& name) { m_name = name; }