X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ad81651f00edc6f489d9b6a0839d316a964fd521..7379599933e8db2dc319bd5240b4992687db4e46:/src/mac/carbon/cursor.cpp diff --git a/src/mac/carbon/cursor.cpp b/src/mac/carbon/cursor.cpp index dee7c92b5f..247d910752 100644 --- a/src/mac/carbon/cursor.cpp +++ b/src/mac/carbon/cursor.cpp @@ -13,20 +13,40 @@ #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) +#endif 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 ; @@ -34,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 @@ -59,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: @@ -72,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; @@ -179,8 +217,9 @@ void wxCursor::MacInstall() const { if ( m_refData && M_CURSORDATA->m_hCursor ) { - ::SetCursor( *M_CURSORDATA->m_hCursor ) ; - gMacCurrentCursor = M_CURSORDATA->m_hCursor ; + CursHandle ch = ((CursHandle)M_CURSORDATA->m_hCursor) ; + ::SetCursor( *ch ) ; + gMacCurrentCursor = ch ; } else {