IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxButton)
-wxBitmapButtonBase::wxBitmapButtonBase()
- : m_bmpNormal(),
- m_bmpSelected(),
- m_bmpFocus(),
- m_bmpDisabled(),
- m_marginX(0),
- m_marginY(0)
-{
-}
-
void wxBitmapButton::Init()
{
m_hasFocus =
m_widget = gtk_button_new();
-#if (GTK_MINOR_VERSION > 0)
if (style & wxNO_BORDER)
gtk_button_set_relief( GTK_BUTTON(m_widget), GTK_RELIEF_NONE );
-#endif
if (m_bmpNormal.Ok())
{
wxSize newSize = size;
- int border = (style & wxNO_BORDER) ? 4 : 10;
+ wxSize bestSize = DoGetBestSize();
if (newSize.x == -1)
- newSize.x = m_bmpNormal.GetWidth()+border;
+ newSize.x = bestSize.x;
if (newSize.y == -1)
- newSize.y = m_bmpNormal.GetHeight()+border;
+ newSize.y = bestSize.y;
SetSize( newSize.x, newSize.y );
OnSetBitmap();
}
}
}
+wxSize wxBitmapButton::DoGetBestSize() const
+{
+ wxSize best;
+
+ if (m_bmpNormal.Ok())
+ {
+ int border = HasFlag(wxNO_BORDER) ? 4 : 10;
+ best.x = m_bmpNormal.GetWidth()+border;
+ best.y = m_bmpNormal.GetHeight()+border;
+ }
+ return best;
+}
+
bool wxBitmapButton::Enable( bool enable )
{
if ( !wxWindow::Enable(enable) )