X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7ef4a97bfd291f4535d4f31846251e6510b58795..4e15d1caa03346c126015019c1fdf093033ef40b:/src/msw/anybutton.cpp?ds=sidebyside diff --git a/src/msw/anybutton.cpp b/src/msw/anybutton.cpp index 0e3da82ea3..2bf1b41f4c 100644 --- a/src/msw/anybutton.cpp +++ b/src/msw/anybutton.cpp @@ -3,7 +3,7 @@ // Purpose: wxAnyButton // Author: Julian Smart // Created: 1998-01-04 (extracted from button.cpp) -// RCS-ID: $Id: anybutton.cpp 67384 2011-04-03 20:31:32Z DS $ +// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -150,8 +150,9 @@ public: wxODButtonImageData(wxAnyButton *btn, const wxBitmap& bitmap) { SetBitmap(bitmap, wxAnyButton::State_Normal); +#if wxUSE_IMAGE SetBitmap(bitmap.ConvertToDisabled(), wxAnyButton::State_Disabled); - +#endif m_dir = wxLEFT; // we use margins when we have both bitmap and text, but when we have @@ -222,8 +223,12 @@ public: // initialize all bitmaps except for the disabled one to normal state for ( int n = 0; n < wxAnyButton::State_Max; n++ ) { +#if wxUSE_IMAGE m_iml.Add(n == wxAnyButton::State_Disabled ? bitmap.ConvertToDisabled() : bitmap); +#else + m_iml.Add(bitmap); +#endif } m_data.himl = GetHimagelistOf(&m_iml); @@ -395,7 +400,7 @@ wxSize wxMSWButton::GetFittingSize(wxWindow *win, { // We still need some margin or the text would be overwritten, just // make it as small as possible. - sizeBtn.x += (3*win->GetCharWidth())/2; + sizeBtn.x += (3*win->GetCharWidth()); } else { @@ -656,7 +661,7 @@ void wxAnyButton::DoSetBitmap(const wxBitmap& bitmap, State which) if ( m_imageData && bitmap.GetSize() != m_imageData->GetBitmap(State_Normal).GetSize() ) { - wxASSERT_MSG( which == State_Normal, + wxASSERT_MSG( (which == State_Normal) || bitmap.IsNull(), "Must set normal bitmap with the new size first" ); #if wxUSE_UXTHEME @@ -813,7 +818,7 @@ void DrawButtonText(HDC hdc, // first we need to compute its bounding rect RECT rc; ::CopyRect(&rc, pRect); - ::DrawText(hdc, text.wx_str(), text.length(), &rc, + ::DrawText(hdc, text.t_str(), text.length(), &rc, DT_CENTER | DT_CALCRECT); // now center this rect inside the entire button area @@ -824,7 +829,7 @@ void DrawButtonText(HDC hdc, rc.top = pRect->top + (pRect->bottom - pRect->top)/2 - h/2; rc.bottom = rc.top+h; - ::DrawText(hdc, text.wx_str(), text.length(), &rc, flags); + ::DrawText(hdc, text.t_str(), text.length(), &rc, flags); } else // single line label { @@ -851,7 +856,7 @@ void DrawButtonText(HDC hdc, // notice that we must have DT_SINGLELINE for vertical alignment flags // to work - ::DrawText(hdc, text.wx_str(), text.length(), pRect, + ::DrawText(hdc, text.t_str(), text.length(), pRect, flags | DT_SINGLELINE ); } }