X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/519cb848a8f4c91c73421bb75314754284e593a4..3c67451472112b3c7bb3b425cfab523b2d38d0cf:/src/mac/cursor.cpp diff --git a/src/mac/cursor.cpp b/src/mac/cursor.cpp index bcbe30008b..23b9eb4c0c 100644 --- a/src/mac/cursor.cpp +++ b/src/mac/cursor.cpp @@ -13,8 +13,12 @@ #pragma implementation "cursor.h" #endif +#include "wx/defs.h" + +#include "wx/app.h" #include "wx/cursor.h" #include "wx/icon.h" +#include "wx/mac/private.h" #if !USE_SHARED_LIBRARIES IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap) @@ -23,12 +27,26 @@ IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap) const short kwxCursorHandId = 9 ; const short kwxCursorSizeWEId = 10 ; const short kwxCursorSizeNSId = 11 ; +#if !TARGET_CARBON Cursor* MacArrowCursorPtr = &qd.arrow ; CursHandle MacArrowCursor = &MacArrowCursorPtr ; +#else +bool MacArrowInstalled = false ; +Cursor MacArrow ; +Cursor* MacArrowCursorPtr = &MacArrow ; +CursHandle MacArrowCursor = &MacArrowCursorPtr ; +#endif CursHandle gMacCurrentCursor = NULL ; wxCursorRefData::wxCursorRefData() { +#if TARGET_CARBON + if ( !MacArrowInstalled ) + { + MacArrowCursorPtr = GetQDGlobalsArrow( &MacArrow ) ; + MacArrowInstalled = true ; + } +#endif m_width = 32; m_height = 32; m_hCursor = NULL ; @@ -36,8 +54,8 @@ wxCursorRefData::wxCursorRefData() wxCursorRefData::~wxCursorRefData() { - if ( m_hCursor && ( m_hCursor != MacArrowCursor ) ) - ::DisposeHandle( (Handle) m_hCursor ) ; +// if ( m_hCursor && ( m_hCursor != MacArrowCursor ) ) +// ::ReleaseResource( (Handle) m_hCursor ) ; } // Cursors @@ -61,7 +79,8 @@ wxCursor::wxCursor(const wxString& cursor_file, long flags, int hotSpotX, int ho wxCursor::wxCursor(int cursor_type) { m_refData = new wxCursorRefData; - + + switch (cursor_type) { case wxCURSOR_WAIT: @@ -74,47 +93,64 @@ wxCursor::wxCursor(int cursor_type) M_CURSORDATA->m_hCursor = ::GetCursor(crossCursor); break; case wxCURSOR_SIZENWSE: - M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorSizeWEId); + { + wxStAppResource resload ; + M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorSizeWEId); + } break; case wxCURSOR_SIZENESW: - M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorSizeWEId); + { + wxStAppResource resload ; + M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorSizeWEId); + } break; case wxCURSOR_SIZEWE: - M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorSizeWEId); + { + wxStAppResource resload ; + M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorSizeWEId); + } break; case wxCURSOR_SIZENS: - M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorSizeNSId); + { + wxStAppResource resload ; + M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorSizeNSId); + } break; case wxCURSOR_CHAR: - { - M_CURSORDATA->m_hCursor = MacArrowCursor; - break; - } + { + M_CURSORDATA->m_hCursor = MacArrowCursor; + break; + } case wxCURSOR_HAND: - { - M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorHandId); - break; - } + { + wxStAppResource resload ; + M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorHandId); + } + break; case wxCURSOR_BULLSEYE: - { - M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorHandId); - break; - } + { + wxStAppResource resload ; + M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorHandId); + } + break; case wxCURSOR_PENCIL: - { - M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorHandId); - break; - } + { + wxStAppResource resload ; + M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorHandId); + } + break; case wxCURSOR_MAGNIFIER: - { - M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorHandId); - break; - } + { + wxStAppResource resload ; + M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorHandId); + } + break; case wxCURSOR_NO_ENTRY: - { - M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorHandId); - break; - } + { + wxStAppResource resload ; + M_CURSORDATA->m_hCursor = ::GetCursor(kwxCursorHandId); + } + break; case wxCURSOR_LEFT_BUTTON: { M_CURSORDATA->m_hCursor = MacArrowCursor; @@ -181,8 +217,8 @@ void wxCursor::MacInstall() const { if ( m_refData && M_CURSORDATA->m_hCursor ) { - ::SetCursor( *M_CURSORDATA->m_hCursor ) ; - gMacCurrentCursor = M_CURSORDATA->m_hCursor ; + ::SetCursor( *((CursHandle)M_CURSORDATA->m_hCursor) ) ; + gMacCurrentCursor = (CursHandle)M_CURSORDATA->m_hCursor ; } else {