X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/910b005366bf2dbf317284d02ac47c18c2c27ee9..cc4d5638c66a409e421420ed7110917755a66788:/src/univ/bmpbuttn.cpp?ds=sidebyside diff --git a/src/univ/bmpbuttn.cpp b/src/univ/bmpbuttn.cpp index 0230a0674f..2044a4bea8 100644 --- a/src/univ/bmpbuttn.cpp +++ b/src/univ/bmpbuttn.cpp @@ -4,7 +4,6 @@ // Author: Vadim Zeitlin // Modified by: // Created: 25.08.00 -// RCS-ID: $Id$ // Copyright: (c) 2000 SciTech Software, Inc. (www.scitechsoft.com) // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -38,8 +37,6 @@ // implementation // ============================================================================ -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton) - BEGIN_EVENT_TABLE(wxBitmapButton, wxButton) EVT_SET_FOCUS(wxBitmapButton::OnSetFocus) EVT_KILL_FOCUS(wxBitmapButton::OnKillFocus) @@ -65,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; } @@ -75,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) @@ -111,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; @@ -119,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(); @@ -134,7 +126,7 @@ void wxBitmapButton::OnSetFocus(wxFocusEvent& event) void wxBitmapButton::OnKillFocus(wxFocusEvent& event) { - if ( ChangeBitmap(m_bmpNormal) ) + if ( ChangeBitmap(GetBitmapLabel()) ) Refresh(); event.Skip(); @@ -142,14 +134,14 @@ 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(); }