]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/bmpbuttn.cpp
fix a hang up in wxExecute(wxArrayString& output) overload (#4380)
[wxWidgets.git] / src / univ / bmpbuttn.cpp
index 597d65632345e4fbc79c3a7b4c757778e7ccf6c1..2a9f873cccbc1b84a506867ff3bcb813aea97b44 100644 (file)
@@ -1,12 +1,12 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        univ/bmpbuttn.cpp
+// Name:        src/univ/bmpbuttn.cpp
 // Purpose:     wxBitmapButton implementation
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     25.08.00
 // RCS-ID:      $Id$
 // Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
 // Purpose:     wxBitmapButton implementation
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     25.08.00
 // RCS-ID:      $Id$
 // Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 // headers
 // ----------------------------------------------------------------------------
 
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
-    #pragma implementation "univbmpbuttn.h"
-#endif
-
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 
 #if wxUSE_BMPBUTTON
 
 
 #if wxUSE_BMPBUTTON
 
+#include "wx/bmpbuttn.h"
+
 #ifndef WX_PRECOMP
     #include "wx/dc.h"
 #ifndef WX_PRECOMP
     #include "wx/dc.h"
-    #include "wx/bmpbuttn.h"
     #include "wx/validate.h"
 #endif
 
     #include "wx/validate.h"
 #endif
 
@@ -61,13 +58,16 @@ bool wxBitmapButton::Create(wxWindow *parent,
                             const wxValidator& validator,
                             const wxString &name)
 {
                             const wxValidator& validator,
                             const wxString &name)
 {
-    if ( !wxButton::Create(parent, id, bitmap, _T(""),
-                           pos, size, style, validator, name) )
-        return FALSE;
+    // we add wxBU_EXACTFIT because the bitmap buttons are not the standard
+    // ones and so shouldn't be forced to be of the standard size which is
+    // typically too big for them
+    if ( !wxButton::Create(parent, id, bitmap, wxEmptyString,
+                           pos, size, style | wxBU_EXACTFIT, validator, name) )
+        return false;
 
     m_bmpNormal = bitmap;
 
 
     m_bmpNormal = bitmap;
 
-    return TRUE;
+    return true;
 }
 
 void wxBitmapButton::OnSetBitmap()
 }
 
 void wxBitmapButton::OnSetBitmap()
@@ -96,25 +96,23 @@ void wxBitmapButton::OnSetBitmap()
 bool wxBitmapButton::ChangeBitmap(const wxBitmap& bmp)
 {
     wxBitmap bitmap = bmp.Ok() ? bmp : m_bmpNormal;
 bool wxBitmapButton::ChangeBitmap(const wxBitmap& bmp)
 {
     wxBitmap bitmap = bmp.Ok() ? bmp : m_bmpNormal;
-    if ( bitmap != m_bitmap )
-    {
-        m_bitmap = bitmap;
+    if ( bitmap.IsSameAs(m_bitmap) )
+        return false;
 
 
-        return TRUE;
-    }
+    m_bitmap = bitmap;
 
 
-    return FALSE;
+    return true;
 }
 
 bool wxBitmapButton::Enable(bool enable)
 {
     if ( !wxButton::Enable(enable) )
 }
 
 bool wxBitmapButton::Enable(bool enable)
 {
     if ( !wxButton::Enable(enable) )
-        return FALSE;
+        return false;
 
     if ( !enable && ChangeBitmap(m_bmpDisabled) )
         Refresh();
 
 
     if ( !enable && ChangeBitmap(m_bmpDisabled) )
         Refresh();
 
-    return TRUE;
+    return true;
 }
 
 bool wxBitmapButton::SetCurrent(bool doit)
 }
 
 bool wxBitmapButton::SetCurrent(bool doit)
@@ -155,4 +153,3 @@ void wxBitmapButton::Release()
 }
 
 #endif // wxUSE_BMPBUTTON
 }
 
 #endif // wxUSE_BMPBUTTON
-