diff options
Diffstat (limited to 'pango/pango-attributes.c')
-rw-r--r-- | pango/pango-attributes.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/pango/pango-attributes.c b/pango/pango-attributes.c index 8d93e5ab..1a2061d3 100644 --- a/pango/pango-attributes.c +++ b/pango/pango-attributes.c @@ -524,6 +524,65 @@ pango_attr_shape_equal (const PangoAttribute *attr1, } /* }}} */ /* }}} */ +/* {{{ Private API */ + +gboolean +pango_attribute_affects_itemization (PangoAttribute *attr, + gpointer data) +{ + switch ((int)attr->klass->type) + { + /* These affect font selection */ + case PANGO_ATTR_LANGUAGE: + case PANGO_ATTR_FAMILY: + case PANGO_ATTR_STYLE: + case PANGO_ATTR_WEIGHT: + case PANGO_ATTR_VARIANT: + case PANGO_ATTR_STRETCH: + case PANGO_ATTR_SIZE: + case PANGO_ATTR_FONT_DESC: + case PANGO_ATTR_SCALE: + case PANGO_ATTR_FALLBACK: + case PANGO_ATTR_ABSOLUTE_SIZE: + case PANGO_ATTR_GRAVITY: + case PANGO_ATTR_GRAVITY_HINT: + case PANGO_ATTR_FONT_SCALE: + /* These need to be constant across runs */ + case PANGO_ATTR_LETTER_SPACING: + case PANGO_ATTR_SHAPE: + case PANGO_ATTR_RISE: + case PANGO_ATTR_BASELINE_SHIFT: + case PANGO_ATTR_LINE_HEIGHT: + case PANGO_ATTR_ABSOLUTE_LINE_HEIGHT: + case PANGO_ATTR_TEXT_TRANSFORM: + return TRUE; + default: + return FALSE; + } +} + +gboolean +pango_attribute_affects_break_or_shape (PangoAttribute *attr, + gpointer data) +{ + switch ((int)attr->klass->type) + { + /* Affects breaks */ + case PANGO_ATTR_ALLOW_BREAKS: + case PANGO_ATTR_WORD: + case PANGO_ATTR_SENTENCE: + case PANGO_ATTR_PARAGRAPH: + /* Affects shaping */ + case PANGO_ATTR_INSERT_HYPHENS: + case PANGO_ATTR_FONT_FEATURES: + case PANGO_ATTR_SHOW: + return TRUE; + default: + return FALSE; + } +} + +/* }}} */ /* {{{ Public API */ /** |