static gboolean filter_func (PangoAttribute *attribute, G_GNUC_UNUSED gpointer data) { PangoAttrType type = attribute->klass->type; return (type == go_pango_attr_superscript_get_attr_type () || type == go_pango_attr_subscript_get_attr_type ()); }
/** * go_pango_attr_subscript_new: (skip) * @val: %TRUE if the characters must be lowered. * * Returns: (transfer full): a subscript attribute. **/ PangoAttribute * go_pango_attr_subscript_new (gboolean val) { GOPangoAttrSubscript *result; static PangoAttrClass klass = { 0, go_pango_attr_subscript_copy, go_pango_attr_destroy, go_pango_attr_subscript_compare }; if (!klass.type) klass.type = go_pango_attr_subscript_get_attr_type (); result = g_new (GOPangoAttrSubscript, 1); result->attr.klass = &klass; result->val = val; return (PangoAttribute *) result; }
PangoAttrType go_pango_attr_subscript_get_type (void) { return go_pango_attr_subscript_get_attr_type (); }
static char const * cb_html_attrs_as_string (GsfOutput *output, PangoAttribute *a) { /* PangoColor const *c; */ char const *closure = NULL; switch (a->klass->type) { case PANGO_ATTR_FAMILY : break; /* ignored */ case PANGO_ATTR_SIZE : break; /* ignored */ case PANGO_ATTR_RISE: if (((PangoAttrInt *)a)->value > 5) { gsf_output_puts (output, "<sup>"); closure = "</sup>"; } else if (((PangoAttrInt *)a)->value < -5) { gsf_output_puts (output, "<sub>"); closure = "</sub>"; } break; case PANGO_ATTR_STYLE : if (((PangoAttrInt *)a)->value == PANGO_STYLE_ITALIC) { gsf_output_puts (output, "<i>"); closure = "</i>"; } break; case PANGO_ATTR_WEIGHT : if (((PangoAttrInt *)a)->value > 600){ gsf_output_puts (output, "<b>"); closure = "</b>"; } break; case PANGO_ATTR_STRIKETHROUGH : if (((PangoAttrInt *)a)->value == 1) { gsf_output_puts (output, "<strike>"); closure = "</strike>"; } break; case PANGO_ATTR_UNDERLINE : if (((PangoAttrInt *)a)->value != PANGO_UNDERLINE_NONE) { gsf_output_puts (output, "<u>"); closure = "</u>"; } break; case PANGO_ATTR_FOREGROUND : /* c = &((PangoAttrColor *)a)->color; */ /* g_string_append_printf (accum, "[color=%02xx%02xx%02x", */ /* ((c->red & 0xff00) >> 8), */ /* ((c->green & 0xff00) >> 8), */ /* ((c->blue & 0xff00) >> 8)); */ break;/* ignored */ default : if (a->klass->type == go_pango_attr_subscript_get_attr_type ()) { if (((GOPangoAttrSubscript *)a)->val) { gsf_output_puts (output, "<sub>"); closure = "</sub>"; } } else if (a->klass->type == go_pango_attr_superscript_get_attr_type ()) { if (((GOPangoAttrSuperscript *)a)->val) { gsf_output_puts (output, "<sup>"); closure = "</sup>"; } } break; /* ignored */ } return closure; }