X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9e691f46b2ec1b5dbbff2e51131e3c532e688a89..eed9e4791274d68ea1fb0c556bf3199ecf88a7d9:/src/gtk1/bmpbuttn.cpp diff --git a/src/gtk1/bmpbuttn.cpp b/src/gtk1/bmpbuttn.cpp index 25567ce369..2c7762f095 100644 --- a/src/gtk1/bmpbuttn.cpp +++ b/src/gtk1/bmpbuttn.cpp @@ -7,10 +7,13 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "bmpbuttn.h" #endif +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + #include "wx/defs.h" #if wxUSE_BMPBUTTON @@ -109,13 +112,20 @@ static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitma IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxButton) -wxBitmapButton::wxBitmapButton() +void wxBitmapButton::Init() { + m_hasFocus = + m_isSelected = FALSE; } -bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap, - const wxPoint &pos, const wxSize &size, - long style, const wxValidator& validator, const wxString &name ) +bool wxBitmapButton::Create( wxWindow *parent, + wxWindowID id, + const wxBitmap& bitmap, + const wxPoint& pos, + const wxSize& size, + long style, + const wxValidator& validator, + const wxString &name ) { m_needParent = TRUE; m_acceptsFocus = TRUE; @@ -134,19 +144,17 @@ bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bi 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(); } @@ -166,8 +174,7 @@ bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bi m_parent->DoAddChild( this ); PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); + InheritAttributes(); Show( TRUE ); @@ -251,6 +258,19 @@ 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; + } + return best; +} + bool wxBitmapButton::Enable( bool enable ) { if ( !wxWindow::Enable(enable) )