X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7c9955d147ed92cdd79d795ed94d6e03fca06a52..a8cb1a4947bbbf5e18ce52448f4c3bb4cff4daee:/src/os2/cursor.cpp diff --git a/src/os2/cursor.cpp b/src/os2/cursor.cpp index be4238b9b2..92adc678b7 100644 --- a/src/os2/cursor.cpp +++ b/src/os2/cursor.cpp @@ -23,6 +23,7 @@ #endif #include "wx/os2/private.h" +#include "wx/os2/wxrsc.h" #include "wx/image.h" #include "assert.h" @@ -34,7 +35,7 @@ wxCursorRefData::wxCursorRefData(void) m_nWidth = 32; m_nHeight = 32; m_hCursor = 0 ; - m_bDestroyCursor = FALSE; + m_bDestroyCursor = false; } void wxCursorRefData::Free() @@ -52,39 +53,35 @@ wxCursor::wxCursor(void) { } -wxCursor::wxCursor( - const char WXUNUSED(bits)[] -, int WXUNUSED(width) -, int WXUNUSED(height) -, int WXUNUSED(hotSpotX) -, int WXUNUSED(hotSpotY) -, const char WXUNUSED(maskBits)[] -) +wxCursor::wxCursor(const char WXUNUSED(bits)[], + int WXUNUSED(width), + int WXUNUSED(height), + int WXUNUSED(hotSpotX), + int WXUNUSED(hotSpotY), + const char WXUNUSED(maskBits)[]) { } -wxCursor::wxCursor( - const wxImage& rImage -) +wxCursor::wxCursor(const wxImage& rImage) { - wxImage vImage32 = rImage.Scale(32,32); - int nWidth = vImage32.GetWidth(); - int nHeight = vImage32.GetHeight(); + 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); + HBITMAP hBitmap = wxBitmap(vImage32).GetHBITMAP(); + int nHotSpotX = vImage32.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X); + int nHotSpotY = vImage32.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y); if (nHotSpotX < 0 || nHotSpotX >= nWidth) - nHotSpotX = 0; + nHotSpotX = 0; if (nHotSpotY < 0 || nHotSpotY >= nHeight) - nHotSpotY = 0; + nHotSpotY = 0; - wxCursorRefData* pRefData = new wxCursorRefData; + wxCursorRefData* pRefData = new wxCursorRefData; m_refData = pRefData; pRefData->m_hCursor = (WXHCURSOR) ::WinCreatePointer( HWND_DESKTOP @@ -96,18 +93,16 @@ wxCursor::wxCursor( } // end of wxCursor::wxCursor -wxCursor::wxCursor( - const wxString& rsCursorFile -, long lFlags -, int nHotSpotX -, int nHotSpotY -) +wxCursor::wxCursor( const wxString& WXUNUSED(rsCursorFile), + long lFlags, + int WXUNUSED(nHotSpotX), + int WXUNUSED(nHotSpotY) ) { - wxCursorRefData* pRefData = new wxCursorRefData; + wxCursorRefData* pRefData = new wxCursorRefData; pRefData = new wxCursorRefData; m_refData = pRefData; - pRefData->m_bDestroyCursor = FALSE; + pRefData->m_bDestroyCursor = false; if (lFlags == wxBITMAP_TYPE_CUR_RESOURCE) { pRefData->m_hCursor = (WXHCURSOR) ::WinLoadPointer( HWND_DESKTOP @@ -118,9 +113,7 @@ wxCursor::wxCursor( } // end of wxCursor::wxCursor // Cursors by stock number -wxCursor::wxCursor( - int nCursorType -) +wxCursor::wxCursor(int nCursorType) { wxCursorRefData* pRefData = new wxCursorRefData; @@ -134,6 +127,7 @@ wxCursor::wxCursor( ); break; + case wxCURSOR_WATCH: case wxCURSOR_WAIT: pRefData->m_hCursor = (WXHCURSOR) ::WinQuerySysPointer( HWND_DESKTOP ,(ULONG)SPTR_WAIT @@ -219,10 +213,10 @@ wxCursor::wxCursor( break; case wxCURSOR_NO_ENTRY: - pRefData->m_hCursor = (WXHCURSOR) ::WinLoadPointer( HWND_DESKTOP - ,0 - ,(ULONG)wxCURSOR_NO_ENTRY - ); + pRefData->m_hCursor = (WXHCURSOR) ::WinQuerySysPointer( HWND_DESKTOP + ,(ULONG)SPTR_ILLEGAL + ,FALSE + ); break; case wxCURSOR_LEFT_BUTTON: @@ -253,13 +247,6 @@ wxCursor::wxCursor( ); break; - case wxCURSOR_WATCH: - pRefData->m_hCursor = (WXHCURSOR) ::WinLoadPointer( HWND_DESKTOP - ,0 - ,(ULONG)wxCURSOR_WATCH - ); - break; - case wxCURSOR_SPRAYCAN: pRefData->m_hCursor = (WXHCURSOR) ::WinLoadPointer( HWND_DESKTOP ,0 @@ -310,6 +297,10 @@ wxCursor::wxCursor( ); break; } + // + // No need to destroy the stock cursors + // + ((wxCursorRefData *)m_refData)->m_bDestroyCursor = false; } // end of wxCursor::wxCursor // Global cursor setting @@ -325,4 +316,3 @@ void wxSetCursor(const wxCursor& cursor) (*g_globalCursor) = cursor; } } -