void onPreferredSize(PreferredSizeEvent& ev) override { ListItem::onPreferredSize(ev); if (m_image) { gfx::Size sz = ev.getPreferredSize(); ev.setPreferredSize( sz.w + 4 + m_image->width(), MAX(sz.h, m_image->height())); } }
void SearchEntry::onPreferredSize(PreferredSizeEvent& ev) { Entry::onPreferredSize(ev); Size sz = ev.getPreferredSize(); SkinTheme* theme = static_cast<SkinTheme*>(getTheme()); auto icon = theme->parts.iconSearch()->getBitmap(0); sz.h = MAX(sz.h, icon->height()+border().height()); ev.setPreferredSize(sz); }
/** Adds space for the non-client size. @see getNonClientSize */ void TabBase::onPreferredSize(PreferredSizeEvent& ev) { Size ncSize = getNonClientSize(); if (ev.fitInWidth() || ev.fitInHeight()) { ev.setPreferredSize(max_value(0, ev.fitInWidth() - ncSize.w), max_value(0, ev.fitInHeight() - ncSize.h)); } Widget::onPreferredSize(ev); ev.setPreferredSize(ev.getPreferredSize() + ncSize); }