inline void draw_glyph_text(const graphics_context& aGraphicsContext, const point& aPoint, Iter aTextBegin, Iter aTextEnd, const font& aFont, const colour& aColour) { { graphics_context::glyph_drawing gd(aGraphicsContext); point pos = aPoint; for (Iter i = aTextBegin; i != aTextEnd; ++i) { aGraphicsContext.draw_glyph(pos + i->offset(), *i, aFont, aColour); pos.x += i->advance().cx; } } point pos = aPoint; for (Iter i = aTextBegin; i != aTextEnd; ++i) { if (i->underline() || (aGraphicsContext.mnemonics_shown() && i->mnemonic())) aGraphicsContext.draw_glyph_underline(pos, *i, aFont, aColour); pos.x += i->advance().cx; } }