summaryrefslogtreecommitdiff
path: root/pango/pangofc-font.c
diff options
context:
space:
mode:
Diffstat (limited to 'pango/pangofc-font.c')
-rw-r--r--pango/pangofc-font.c43
1 files changed, 41 insertions, 2 deletions
diff --git a/pango/pangofc-font.c b/pango/pangofc-font.c
index cd063854..8543b85e 100644
--- a/pango/pangofc-font.c
+++ b/pango/pangofc-font.c
@@ -21,6 +21,7 @@
#include "config.h"
+#include "pango-font-private.h"
#include "pangofc-font-private.h"
#include "pangofc-fontmap.h"
#include "pangofc-private.h"
@@ -69,6 +70,11 @@ static void pango_fc_font_get_features (PangoFont *font,
guint len,
guint *num_features);
static hb_font_t * pango_fc_font_create_hb_font (PangoFont *font);
+static PangoLanguage ** _pango_fc_font_get_languages (PangoFont *font);
+static gboolean _pango_fc_font_is_hinted (PangoFont *font);
+static void _pango_fc_font_get_scale_factors (PangoFont *font,
+ double *x_scale,
+ double *y_scale);
#define PANGO_FC_FONT_LOCK_FACE(font) (PANGO_FC_FONT_GET_CLASS (font)->lock_face (font))
#define PANGO_FC_FONT_UNLOCK_FACE(font) (PANGO_FC_FONT_GET_CLASS (font)->unlock_face (font))
@@ -81,6 +87,7 @@ pango_fc_font_class_init (PangoFcFontClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
PangoFontClass *font_class = PANGO_FONT_CLASS (class);
+ PangoFontClassPrivate *pclass;
class->has_char = pango_fc_font_real_has_char;
class->get_glyph = pango_fc_font_real_get_glyph;
@@ -98,6 +105,12 @@ pango_fc_font_class_init (PangoFcFontClass *class)
font_class->create_hb_font = pango_fc_font_create_hb_font;
font_class->get_features = pango_fc_font_get_features;
+ pclass = g_type_class_get_private ((GTypeClass *) class, PANGO_TYPE_FONT);
+
+ pclass->get_languages = _pango_fc_font_get_languages;
+ pclass->is_hinted = _pango_fc_font_is_hinted;
+ pclass->get_scale_factors = _pango_fc_font_get_scale_factors;
+
/**
* PangoFcFont:pattern:
*
@@ -1046,18 +1059,26 @@ done:
* array of `PangoLanguage`*
*
* Since: 1.48
+ * Deprecated: 1.50: Use pango_font_get_language()
*/
PangoLanguage **
pango_fc_font_get_languages (PangoFcFont *font)
{
+ return pango_font_get_languages (PANGO_FONT (font));
+}
+
+static PangoLanguage **
+_pango_fc_font_get_languages (PangoFont *font)
+{
+ PangoFcFont * fcfont = PANGO_FC_FONT (font);
PangoFcFontMap *fontmap;
PangoLanguage **languages;
- fontmap = g_weak_ref_get ((GWeakRef *) &font->fontmap);
+ fontmap = g_weak_ref_get ((GWeakRef *) &fcfont->fontmap);
if (!fontmap)
return NULL;
- languages = _pango_fc_font_map_get_languages (fontmap, font);
+ languages = _pango_fc_font_map_get_languages (fontmap, fcfont);
g_object_unref (fontmap);
return languages;
@@ -1078,3 +1099,21 @@ pango_fc_font_get_pattern (PangoFcFont *font)
{
return font->font_pattern;
}
+
+gboolean
+_pango_fc_font_is_hinted (PangoFont *font)
+{
+ PangoFcFont *fcfont = PANGO_FC_FONT (font);
+
+ return fcfont->is_hinted;
+}
+
+void
+_pango_fc_font_get_scale_factors (PangoFont *font,
+ double *x_scale,
+ double *y_scale)
+{
+ PangoFcFont *fcfont = PANGO_FC_FONT (font);
+
+ pango_matrix_get_font_scale_factors (&fcfont->matrix, x_scale, y_scale);
+}