X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/788722ac5ca55bd3c0d1f9bd2d598f90b3b02071..a7061e3dc03a356d5286a58bdadae138bf45a96a:/src/msw/cursor.cpp diff --git a/src/msw/cursor.cpp b/src/msw/cursor.cpp index 0409580d2d..d84d6c2aa4 100644 --- a/src/msw/cursor.cpp +++ b/src/msw/cursor.cpp @@ -39,7 +39,9 @@ #include "wx/module.h" #include "wx/msw/private.h" +#ifndef __WXMICROWIN__ #include "wx/msw/dib.h" +#endif #if wxUSE_RESOURCE_LOADING_IN_MSW #include "wx/msw/curico.h" @@ -94,15 +96,17 @@ wxCursorRefData::wxCursorRefData() m_width = 32; m_height = 32; - m_destroyCursor = FALSE; + m_destroyCursor = TRUE; } void wxCursorRefData::Free() { if ( m_hCursor ) { +#ifndef __WXMICROWIN__ if ( m_destroyCursor ) ::DestroyCursor((HCURSOR)m_hCursor); +#endif m_hCursor = 0; } @@ -128,11 +132,12 @@ wxCursor::wxCursor(const wxString& cursor_file, long flags, int hotSpotX, int hotSpotY) { +#ifdef __WXMICROWIN__ + m_refData = NULL; +#else wxCursorRefData *refData = new wxCursorRefData; m_refData = refData; - refData->m_destroyCursor = FALSE; - if (flags == wxBITMAP_TYPE_CUR_RESOURCE) { #ifdef __WIN95__ @@ -148,7 +153,6 @@ wxCursor::wxCursor(const wxString& cursor_file, #else #if wxUSE_RESOURCE_LOADING_IN_MSW refData->m_hCursor = (WXHCURSOR) ReadCursorFile(WXSTRINGCAST cursor_file, wxGetInstance(), &refData->m_width, &refData->m_height); - refData->m_destroyCursor = TRUE; #endif #endif } @@ -156,7 +160,6 @@ wxCursor::wxCursor(const wxString& cursor_file, { #if wxUSE_RESOURCE_LOADING_IN_MSW refData->m_hCursor = (WXHCURSOR) IconToCursor(WXSTRINGCAST cursor_file, wxGetInstance(), hotSpotX, hotSpotY, &refData->m_width, &refData->m_height); - refData->m_destroyCursor = TRUE; #endif } else if (flags == wxBITMAP_TYPE_BMP) @@ -173,7 +176,6 @@ wxCursor::wxCursor(const wxString& cursor_file, pnt.x = hotSpotX; pnt.y = hotSpotY; refData->m_hCursor = (WXHCURSOR) MakeCursorFromBitmap(wxGetInstance(), hBitmap, &pnt); - refData->m_destroyCursor = TRUE; DeleteObject(hBitmap); #endif } @@ -181,11 +183,16 @@ wxCursor::wxCursor(const wxString& cursor_file, #if WXWIN_COMPATIBILITY_2 refData->SetOk(); #endif // WXWIN_COMPATIBILITY_2 + +#endif } // Cursors by stock number wxCursor::wxCursor(int cursor_type) { +#ifdef __WXMICROWIN__ + m_refData = NULL; +#else wxCursorRefData *refData = new wxCursorRefData; m_refData = refData; @@ -308,6 +315,11 @@ wxCursor::wxCursor(int cursor_type) refData->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW); break; } + + // no need to destroy the stock cursors + // TODO: check this + //m_refData->m_destroyCursor = FALSE; +#endif } wxCursor::~wxCursor() @@ -327,7 +339,9 @@ void wxSetCursor(const wxCursor& cursor) { if ( cursor.Ok() ) { +#ifndef __WXMICROWIN__ ::SetCursor(GetHcursorOf(cursor)); +#endif if ( gs_globalCursor ) *gs_globalCursor = cursor;