X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1169a91932273bc84c23ed9dbd0a2da064d59d66..6f0b6fd1e4b5b2633e1f34c54c8d4f4e5da98637:/src/univ/bmpbuttn.cpp?ds=inline diff --git a/src/univ/bmpbuttn.cpp b/src/univ/bmpbuttn.cpp index 5efb9f76a3..eb4faa5584 100644 --- a/src/univ/bmpbuttn.cpp +++ b/src/univ/bmpbuttn.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: univ/bmpbuttn.cpp +// Name: src/univ/bmpbuttn.cpp // Purpose: wxBitmapButton implementation // Author: Vadim Zeitlin // Modified by: @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "univbmpbuttn.h" -#endif - #include "wx/wxprec.h" #ifdef __BORLANDC__ @@ -29,9 +25,10 @@ #if wxUSE_BMPBUTTON +#include "wx/bmpbuttn.h" + #ifndef WX_PRECOMP #include "wx/dc.h" - #include "wx/bmpbuttn.h" #include "wx/validate.h" #endif @@ -52,32 +49,6 @@ END_EVENT_TABLE() // wxBitmapButton // ---------------------------------------------------------------------------- -wxBitmapButtonBase::wxBitmapButtonBase() - : m_bmpNormal(), - m_bmpSelected(), - m_bmpFocus(), - m_bmpDisabled(), - m_marginX(0), - m_marginY(0) -{ -} - -wxBitmapButton::wxBitmapButton() -{ -} - -wxBitmapButton::wxBitmapButton(wxWindow *parent, - wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - Create(parent, id, bitmap, pos, size, style, validator, name); -} - bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, @@ -90,13 +61,13 @@ bool wxBitmapButton::Create(wxWindow *parent, // 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, _T(""), + if ( !wxButton::Create(parent, id, bitmap, wxEmptyString, pos, size, style | wxBU_EXACTFIT, validator, name) ) - return FALSE; + return false; - m_bmpNormal = bitmap; + m_bitmaps[State_Normal] = bitmap; - return TRUE; + return true; } void wxBitmapButton::OnSetBitmap() @@ -104,58 +75,53 @@ 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) { if ( !wxButton::Enable(enable) ) - return FALSE; + return false; - if ( !enable && ChangeBitmap(m_bmpDisabled) ) + if ( !enable && ChangeBitmap(GetBitmapDisabled()) ) Refresh(); - return TRUE; + return true; } 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(); @@ -163,7 +129,7 @@ void wxBitmapButton::OnSetFocus(wxFocusEvent& event) void wxBitmapButton::OnKillFocus(wxFocusEvent& event) { - if ( ChangeBitmap(m_bmpNormal) ) + if ( ChangeBitmap(GetBitmapLabel()) ) Refresh(); event.Skip(); @@ -171,17 +137,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 -