static VALUE rg_draw_error_underline(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height) { pango_renderer_draw_error_underline(_SELF(self), NUM2INT(x), NUM2INT(y), NUM2INT(width), NUM2INT(height)); return self; }
static void draw_underline (PangoRenderer *renderer, LineState *state) { PangoRectangle *rect = &state->underline_rect; PangoUnderline underline = state->underline; state->underline = PANGO_UNDERLINE_NONE; switch (underline) { case PANGO_UNDERLINE_NONE: break; case PANGO_UNDERLINE_DOUBLE: pango_renderer_draw_rectangle (renderer, PANGO_RENDER_PART_UNDERLINE, rect->x, rect->y + 2 * rect->height, rect->width, rect->height); /* Fall through */ case PANGO_UNDERLINE_SINGLE: case PANGO_UNDERLINE_LOW: pango_renderer_draw_rectangle (renderer, PANGO_RENDER_PART_UNDERLINE, rect->x, rect->y, rect->width, rect->height); break; case PANGO_UNDERLINE_ERROR: pango_renderer_draw_error_underline (renderer, rect->x, rect->y, rect->width, 3 * rect->height); break; } }