diff options
author | Matthias Clasen <mclasen@redhat.com> | 2022-01-30 04:46:33 +0100 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2022-02-13 14:28:05 -0600 |
commit | 04aae5f7ad1ab48248307b8995e558ad866afee5 (patch) | |
tree | a486b06e117dd2a1e63ffe13750bede235c926ea /pango/itemize.c | |
parent | f9568e765a7407c6f35ad324836442525bc35c73 (diff) | |
download | pango-04aae5f7ad1ab48248307b8995e558ad866afee5.tar.gz |
Redo attributes
Do away with PangoAttribute subclassing,
and turn the PangoAttribute struct into
a union. Redo custom attribute registration
to be more useful.
Diffstat (limited to 'pango/itemize.c')
-rw-r--r-- | pango/itemize.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/pango/itemize.c b/pango/itemize.c index 935a3250..dab6eb7e 100644 --- a/pango/itemize.c +++ b/pango/itemize.c @@ -352,7 +352,7 @@ find_attribute (GSList *attr_list, GSList *node; for (node = attr_list; node; node = node->next) - if (((PangoAttribute *) node->data)->klass->type == type) + if (((PangoAttribute *) node->data)->type == type) return (PangoAttribute *) node->data; return NULL; @@ -394,13 +394,13 @@ update_attr_iterator (ItemizeState *state) state->lang = state->context->language; attr = find_attribute (state->extra_attrs, PANGO_ATTR_FALLBACK); - state->enable_fallback = (attr == NULL || ((PangoAttrInt *)attr)->value); + state->enable_fallback = (attr == NULL || attr->int_value); attr = find_attribute (state->extra_attrs, PANGO_ATTR_GRAVITY); - state->gravity = attr == NULL ? PANGO_GRAVITY_AUTO : ((PangoAttrInt *)attr)->value; + state->gravity = attr == NULL ? PANGO_GRAVITY_AUTO : attr->int_value; attr = find_attribute (state->extra_attrs, PANGO_ATTR_GRAVITY_HINT); - state->gravity_hint = attr == NULL ? state->context->gravity_hint : (PangoGravityHint)((PangoAttrInt *)attr)->value; + state->gravity_hint = attr == NULL ? state->context->gravity_hint : (PangoGravityHint)attr->int_value; state->changed |= FONT_CHANGED; if (state->lang != old_lang) @@ -1046,7 +1046,7 @@ collect_font_scale (PangoContext *context, { PangoAttribute *attr = l->data; - if (attr->klass->type == PANGO_ATTR_FONT_SCALE) + if (attr->type == PANGO_ATTR_FONT_SCALE) { if (attr->start_index == item->offset) { @@ -1060,7 +1060,7 @@ collect_font_scale (PangoContext *context, entry->attr = attr; *stack = g_list_prepend (*stack, entry); - switch (((PangoAttrInt *)attr)->value) + switch (attr->int_value) { case PANGO_FONT_SCALE_NONE: break; @@ -1121,7 +1121,7 @@ collect_font_scale (PangoContext *context, { ScaleItem *entry = l->data; *scale *= entry->scale; - if (((PangoAttrInt *)entry->attr)->value != PANGO_FONT_SCALE_SMALL_CAPS) + if (entry->attr->int_value != PANGO_FONT_SCALE_SMALL_CAPS) *is_small_caps = FALSE; retval = TRUE; } @@ -1302,8 +1302,8 @@ find_text_transform (const PangoAnalysis *analysis) { PangoAttribute *attr = l->data; - if (attr->klass->type == PANGO_ATTR_TEXT_TRANSFORM) - transform = (PangoTextTransform) ((PangoAttrInt*)attr)->value; + if (attr->type == PANGO_ATTR_TEXT_TRANSFORM) + transform = (PangoTextTransform) attr->int_value; } return transform; |