X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/14f355c2b5c71fc7c3d680aea366582d2ac60f7b..0263da03711c430dfd7a2452dc9b0239f7081376:/src/gtk1/bmpbuttn.cpp diff --git a/src/gtk1/bmpbuttn.cpp b/src/gtk1/bmpbuttn.cpp index 8e548b420c..34f5bab890 100644 --- a/src/gtk1/bmpbuttn.cpp +++ b/src/gtk1/bmpbuttn.cpp @@ -144,20 +144,11 @@ bool wxBitmapButton::Create( wxWindow *parent, 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; - if (newSize.x == -1) - newSize.x = m_bmpNormal.GetWidth()+border; - if (newSize.y == -1) - newSize.y = m_bmpNormal.GetHeight()+border; - SetSize( newSize.x, newSize.y ); OnSetBitmap(); } @@ -175,11 +166,7 @@ bool wxBitmapButton::Create( wxWindow *parent, m_parent->DoAddChild( this ); - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - - Show( TRUE ); + PostCreation(size); return TRUE; } @@ -206,18 +193,20 @@ wxString wxBitmapButton::GetLabel() const return wxControl::GetLabel(); } -void wxBitmapButton::ApplyWidgetStyle() +void wxBitmapButton::DoApplyWidgetStyle(GtkRcStyle *style) { if ( !BUTTON_CHILD(m_widget) ) return; - wxButton::ApplyWidgetStyle(); + wxButton::DoApplyWidgetStyle(style); } void wxBitmapButton::OnSetBitmap() { wxCHECK_RET( m_widget != NULL, wxT("invalid bitmap button") ); + InvalidateBestSize(); + wxBitmap the_one; if (!m_isEnabled) the_one = m_bmpDisabled; @@ -261,6 +250,20 @@ void wxBitmapButton::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; + } + CacheBestSize(best); + return best; +} + bool wxBitmapButton::Enable( bool enable ) { if ( !wxWindow::Enable(enable) )