]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/bmpbuttn.cpp
Revert "Make wxMSW stack walking methods work with Unicode identifiers."
[wxWidgets.git] / src / univ / bmpbuttn.cpp
index 112dac3646b7e3e459f69cc79e0d966cce34a571..2044a4bea8516740dedfba19071674adb18ea62f 100644 (file)
@@ -1,10 +1,9 @@
 /////////////////////////////////////////////////////////////////////////////
-// 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)
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "univbmpbuttn.h"
-#endif
-
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 
 #if wxUSE_BMPBUTTON
 
+#include "wx/bmpbuttn.h"
+
 #ifndef WX_PRECOMP
     #include "wx/dc.h"
-    #include "wx/bmpbuttn.h"
     #include "wx/validate.h"
 #endif
 
@@ -41,8 +37,6 @@
 // implementation
 // ============================================================================
 
-IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton)
-
 BEGIN_EVENT_TABLE(wxBitmapButton, wxButton)
     EVT_SET_FOCUS(wxBitmapButton::OnSetFocus)
     EVT_KILL_FOCUS(wxBitmapButton::OnKillFocus)
@@ -68,7 +62,7 @@ bool wxBitmapButton::Create(wxWindow *parent,
                            pos, size, style | wxBU_EXACTFIT, validator, name) )
         return false;
 
-    m_bmpNormal = bitmap;
+    m_bitmaps[State_Normal] = bitmap;
 
     return true;
 }
@@ -78,35 +72,30 @@ void wxBitmapButton::OnSetBitmap()
     wxBitmap bmp;
     if ( !IsEnabled() )
     {
-        bmp = m_bmpDisabled;
+        bmp = GetBitmapDisabled();
     }
     else if ( IsPressed() )
     {
-        bmp = m_bmpSelected;
+        bmp = GetBitmapPressed();
     }
     else if ( IsFocused() )
     {
-        bmp = m_bmpFocus;
-    }
-    else
-    {
-        bmp = m_bmpNormal;
+        bmp = GetBitmapFocus();
     }
+    //else: just leave it invalid, this means "normal" anyhow in ChangeBitmap()
 
     ChangeBitmap(bmp);
 }
 
 bool wxBitmapButton::ChangeBitmap(const wxBitmap& bmp)
 {
-    wxBitmap bitmap = bmp.Ok() ? bmp : m_bmpNormal;
-    if ( bitmap != m_bitmap )
-    {
-        m_bitmap = bitmap;
+    wxBitmap bitmap = bmp.IsOk() ? bmp : GetBitmapLabel();
+    if ( bitmap.IsSameAs(m_bitmap) )
+        return false;
 
-        return true;
-    }
+    m_bitmap = bitmap;
 
-    return false;
+    return true;
 }
 
 bool wxBitmapButton::Enable(bool enable)
@@ -114,7 +103,7 @@ bool wxBitmapButton::Enable(bool enable)
     if ( !wxButton::Enable(enable) )
         return false;
 
-    if ( !enable && ChangeBitmap(m_bmpDisabled) )
+    if ( !enable && ChangeBitmap(GetBitmapDisabled()) )
         Refresh();
 
     return true;
@@ -122,14 +111,14 @@ bool wxBitmapButton::Enable(bool enable)
 
 bool wxBitmapButton::SetCurrent(bool doit)
 {
-    ChangeBitmap(doit ? m_bmpFocus : m_bmpNormal);
+    ChangeBitmap(doit ? GetBitmapFocus() : GetBitmapLabel());
 
     return wxButton::SetCurrent(doit);
 }
 
 void wxBitmapButton::OnSetFocus(wxFocusEvent& event)
 {
-    if ( ChangeBitmap(m_bmpFocus) )
+    if ( ChangeBitmap(GetBitmapFocus()) )
         Refresh();
 
     event.Skip();
@@ -137,7 +126,7 @@ void wxBitmapButton::OnSetFocus(wxFocusEvent& event)
 
 void wxBitmapButton::OnKillFocus(wxFocusEvent& event)
 {
-    if ( ChangeBitmap(m_bmpNormal) )
+    if ( ChangeBitmap(GetBitmapLabel()) )
         Refresh();
 
     event.Skip();
@@ -145,17 +134,16 @@ void wxBitmapButton::OnKillFocus(wxFocusEvent& event)
 
 void wxBitmapButton::Press()
 {
-    ChangeBitmap(m_bmpSelected);
+    ChangeBitmap(GetBitmapPressed());
 
     wxButton::Press();
 }
 
 void wxBitmapButton::Release()
 {
-    ChangeBitmap(IsFocused() ? m_bmpFocus : m_bmpNormal);
+    ChangeBitmap(IsFocused() ? GetBitmapFocus() : GetBitmapLabel());
 
     wxButton::Release();
 }
 
 #endif // wxUSE_BMPBUTTON
-