void SearchEntry::onPaint(ui::PaintEvent& ev) { SkinTheme* theme = static_cast<SkinTheme*>(this->theme()); theme->paintEntry(ev); auto icon = theme->parts.iconSearch()->bitmap(0); Rect bounds = clientBounds(); ev.graphics()->drawColoredRgbaSurface( icon, theme->colors.text(), bounds.x + border().left(), bounds.y + bounds.h/2 - icon->height()/2); if (!text().empty()) { icon = theme->parts.iconClose()->bitmap(0); ev.graphics()->drawColoredRgbaSurface( icon, theme->colors.text(), bounds.x + bounds.w - border().right() - childSpacing() - icon->width(), bounds.y + bounds.h/2 - icon->height()/2); } }