aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-06-04 23:09:08 +0800
committercrupest <crupest@outlook.com>2022-06-04 23:09:08 +0800
commita49064e065eef5de51ba188f691c610dd0a9fcaf (patch)
treee98bd45d0167a794ae42ed9105d9a525c26dc43d
parentea913d6818ae7dfa0663ab99c5908d1008a076b1 (diff)
downloadcru-a49064e065eef5de51ba188f691c610dd0a9fcaf.tar.gz
cru-a49064e065eef5de51ba188f691c610dd0a9fcaf.tar.bz2
cru-a49064e065eef5de51ba188f691c610dd0a9fcaf.zip
...
-rw-r--r--include/cru/platform/graphics/cairo/PangoFont.h7
-rw-r--r--src/platform/graphics/cairo/PangoFont.cpp12
2 files changed, 17 insertions, 2 deletions
diff --git a/include/cru/platform/graphics/cairo/PangoFont.h b/include/cru/platform/graphics/cairo/PangoFont.h
index 75e139af..0e080c18 100644
--- a/include/cru/platform/graphics/cairo/PangoFont.h
+++ b/include/cru/platform/graphics/cairo/PangoFont.h
@@ -3,6 +3,8 @@
#include "../Font.h"
#include "CairoResource.h"
+#include <pango/pango.h>
+
namespace cru::platform::graphics::cairo {
class PangoFont : public CairoResource, public virtual IFont {
public:
@@ -14,8 +16,13 @@ class PangoFont : public CairoResource, public virtual IFont {
String GetFontName() override;
float GetFontSize() override;
+ PangoFontDescription* GetPangoFontDescription() {
+ return pango_font_description_;
+ }
+
private:
String font_family_;
float font_size_;
+ PangoFontDescription* pango_font_description_;
};
} // namespace cru::platform::graphics::cairo
diff --git a/src/platform/graphics/cairo/PangoFont.cpp b/src/platform/graphics/cairo/PangoFont.cpp
index f43b6c55..0de17add 100644
--- a/src/platform/graphics/cairo/PangoFont.cpp
+++ b/src/platform/graphics/cairo/PangoFont.cpp
@@ -5,9 +5,17 @@ PangoFont::PangoFont(CairoGraphicsFactory* factory, String font_family,
float font_size)
: CairoResource(factory),
font_family_(std::move(font_family)),
- font_size_(font_size) {}
+ font_size_(font_size) {
+ pango_font_description_ = pango_font_description_new();
+ auto font_family_str = font_family_.ToUtf8();
+ pango_font_description_set_family(pango_font_description_,
+ font_family_str.c_str());
+ pango_font_description_set_size(pango_font_description_, font_size);
+}
-PangoFont::~PangoFont() {}
+PangoFont::~PangoFont() {
+ pango_font_description_free(pango_font_description_);
+}
String PangoFont::GetFontName() { return font_family_; }