X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6670f56440ae9209b3e2e51e06acf3bc5aaf1905..fb8d7eb7a880f1f2e32d8830f9c5e12b2536e05f:/src/os2/statbmp.cpp diff --git a/src/os2/statbmp.cpp b/src/os2/statbmp.cpp index c0893d25c3..9a7f0985a3 100644 --- a/src/os2/statbmp.cpp +++ b/src/os2/statbmp.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.cpp +// Name: src/os2/statbmp.cpp // Purpose: wxStaticBitmap // Author: David Webster // Modified by: @@ -9,30 +9,25 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "statbmp.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#include "wx/dcclient.h" -#include "wx/window.h" -#include "wx/os2/private.h" +#include "wx/statbmp.h" #ifndef WX_PRECOMP #include "wx/icon.h" - #include "wx/statbmp.h" + #include "wx/window.h" + #include "wx/dcclient.h" #endif +#include "wx/os2/private.h" + #include // --------------------------------------------------------------------------- -// macors +// macros // --------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) - BEGIN_EVENT_TABLE(wxStaticBitmap, wxWindow) EVT_PAINT(wxStaticBitmap::OnPaint) END_EVENT_TABLE() @@ -46,7 +41,7 @@ static wxGDIImage* ConvertImage( if(!bIsIcon ) { wxASSERT_MSG( wxDynamicCast(&rBitmap, wxBitmap), - _T("not an icon and not a bitmap?") ); + wxT("not an icon and not a bitmap?") ); const wxBitmap& rBmp = (const wxBitmap&)rBitmap; wxMask* pMask = rBmp.GetMask(); @@ -123,9 +118,12 @@ bool wxStaticBitmap::Create( wxWindow* pParent, sError = wxPMErrorToStr(vError); return false; } - wxCHECK_MSG( m_hWnd, FALSE, wxT("Failed to create static bitmap") ); + wxCHECK_MSG( m_hWnd, false, wxT("Failed to create static bitmap") ); m_pImage = ConvertImage(rBitmap); - m_pImage->SetHandle((WXHWND)::WinSendMsg(m_hWnd, SM_QUERYHANDLE, (MPARAM)0, (MPARAM)0)); + ::WinSendMsg( m_hWnd, + SM_SETHANDLE, + MPFROMHWND(rBitmap.GetHandle()), + (MPARAM)0); // Subclass again for purposes of dialog editing mode SubclassWin(m_hWnd); @@ -136,14 +134,12 @@ bool wxStaticBitmap::Create( wxWindow* pParent, bool wxStaticBitmap::ImageIsOk() const { - return(m_pImage && m_pImage->Ok()); + return(m_pImage && m_pImage->IsOk()); } void wxStaticBitmap::Free() { - if (m_pImage) - delete m_pImage; - m_pImage = NULL; + wxDELETE(m_pImage); } // end of wxStaticBitmap::Free wxSize wxStaticBitmap::DoGetBestSize() const @@ -155,12 +151,10 @@ wxSize wxStaticBitmap::DoGetBestSize() const return wxWindow::DoGetBestSize(); } -void wxStaticBitmap::OnPaint ( - wxPaintEvent& WXUNUSED(rEvent) -) +void wxStaticBitmap::OnPaint ( wxPaintEvent& WXUNUSED(rEvent) ) { - wxPaintDC vDc(this); - wxBitmap* pBitmap; + wxPaintDC vDc(this); + wxBitmap* pBitmap; if (m_pImage->IsKindOf(CLASSINFO(wxIcon))) { @@ -178,14 +172,12 @@ void wxStaticBitmap::OnPaint ( } } // end of wxStaticBitmap::OnPaint -void wxStaticBitmap::SetImage( - const wxGDIImage& rBitmap -) +void wxStaticBitmap::SetImage( const wxGDIImage& rBitmap ) { - int nX = 0; - int nY = 0; - int nWidth = 0; - int nHeight = 0; + int nX = 0; + int nY = 0; + int nWidth = 0; + int nHeight = 0; Free(); ::WinSendMsg( GetHwnd() @@ -197,13 +189,15 @@ void wxStaticBitmap::SetImage( GetPosition(&nX, &nY); GetSize(&nWidth, &nHeight); + // Convert to OS/2 coordinate system + nY = wxWindow::GetOS2ParentHeight(GetParent()) - nY - nHeight; RECTL vRect; vRect.xLeft = nX; - vRect.yTop = nY; + vRect.yTop = nY + nHeight; vRect.xRight = nX + nWidth; - vRect.yBottom = nY + nHeight; + vRect.yBottom = nY; ::WinInvalidateRect(GetHwndOf(GetParent()), &vRect, TRUE); }