X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/43543d985b04d065178df50dbbc998786ff97282..91c536df157aa500e832ff9e8541839d2e07f6b4:/src/os2/cursor.cpp?ds=sidebyside diff --git a/src/os2/cursor.cpp b/src/os2/cursor.cpp index e3efb12c76..df148e17a3 100644 --- a/src/os2/cursor.cpp +++ b/src/os2/cursor.cpp @@ -23,12 +23,11 @@ #endif #include "wx/os2/private.h" +#include "wx/image.h" #include "assert.h" -#if !USE_SHARED_LIBRARIES IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap) -#endif wxCursorRefData::wxCursorRefData(void) { @@ -54,6 +53,39 @@ wxCursor::wxCursor(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSE { } +wxCursor::wxCursor( + const wxImage& rImage +) +{ + wxImage vImage32 = rImage.Scale(32,32); + int nWidth = vImage32.GetWidth(); + int nHeight = vImage32.GetHeight(); + + // + // Need a bitmap handle somehow + // + HBITMAP hBitmap = wxBitmap(vImage32).GetHBITMAP(); + int nHotSpotX = vImage32.GetOptionInt(wxCUR_HOTSPOT_X); + int nHotSpotY = vImage32.GetOptionInt(wxCUR_HOTSPOT_Y); + + if (nHotSpotX < 0 || nHotSpotX >= nWidth) + nHotSpotX = 0; + if (nHotSpotY < 0 || nHotSpotY >= nHeight) + nHotSpotY = 0; + + + wxCursorRefData* pRefData = new wxCursorRefData; + + m_refData = pRefData; + pRefData->m_hCursor = (WXHCURSOR) ::WinCreatePointer( HWND_DESKTOP + ,hBitmap + ,TRUE + ,nHotSpotY + ,nHotSpotX + ); + +} // end of wxCursor::wxCursor + wxCursor::wxCursor(const wxString& cursor_file, long flags, int hotSpotX, int hotSpotY) { m_refData = new wxCursorRefData;