]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/cursor.cpp
Fix history in wxWebViewIE when using a custom file scheme.
[wxWidgets.git] / src / osx / carbon / cursor.cpp
index a6fd1ec139fbd9f733b1c393e8d437d0a62319ff..fba9efb8f53fb64838262720afcb4e6f783aa130 100644 (file)
@@ -66,10 +66,10 @@ protected:
 
     friend class wxCursor;
 
-    DECLARE_NO_ASSIGN_CLASS(wxCursorRefData)
+    wxDECLARE_NO_ASSIGN_CLASS(wxCursorRefData);
 };
 
-#define M_CURSORDATA wx_static_cast(wxCursorRefData*, m_refData)
+#define M_CURSORDATA static_cast<wxCursorRefData*>(m_refData)
 
 #if wxOSX_USE_COCOA_OR_CARBON
 
@@ -196,6 +196,14 @@ ClassicCursor gMacCursors[kwxCursorLast+1] =
 {0x000A, 0x0006}
 },
 
+{
+{0x07E0, 0x07E0, 0x07E0, 0x07E0, 0x0810, 0x1088, 0x1088, 0x1088,
+0x1388, 0x1008, 0x1008, 0x0810, 0x07E0, 0x07E0, 0x07E0, 0x07E0},
+{0x07E0, 0x07E0, 0x07E0, 0x07E0, 0x0FF0, 0x1FF8, 0x1FF8, 0x1FF8,
+0x1FF8, 0x1FF8, 0x1FF8, 0x0FF0, 0x07E0, 0x07E0, 0x07E0, 0x07E0},
+{0x0008, 0x0008}
+},
+    
 };
 
 #endif
@@ -231,14 +239,14 @@ wxCursorRefData::wxCursorRefData()
 #endif
 }
 
-wxCursorRefData::wxCursorRefData(const wxCursorRefData& cursor)
+wxCursorRefData::wxCursorRefData(const wxCursorRefData& cursor) : wxGDIRefData()
 {
-    // FIXME: need to copy the cursor
     m_hCursor = NULL;
 
 #if wxOSX_USE_COCOA
-    wxUnusedVar(cursor);
+    m_hCursor = (WX_NSCursor) wxMacCocoaRetain(cursor.m_hCursor);
 #elif wxOSX_USE_CARBON
+    // FIXME: need to copy the cursor
     m_disposeHandle = false;
     m_releaseHandle = false;
     m_isColorCursor = cursor.m_isColorCursor;
@@ -281,11 +289,6 @@ wxCursor::wxCursor( const wxImage &image )
 #endif
 }
 
-wxCursor::wxCursor(const char* const* bits)
-{
-    (void) CreateFromXpm(bits);
-}
-
 wxGDIRefData *wxCursor::CreateGDIRefData() const
 {
     return new wxCursorRefData;
@@ -293,21 +296,7 @@ wxGDIRefData *wxCursor::CreateGDIRefData() const
 
 wxGDIRefData *wxCursor::CloneGDIRefData(const wxGDIRefData *data) const
 {
-    return new wxCursorRefData(*wx_static_cast(const wxCursorRefData *, data));
-}
-
-bool wxCursor::CreateFromXpm(const char* const* bits)
-{
-#if wxUSE_IMAGE
-    wxCHECK_MSG( bits != NULL, false, wxT("invalid cursor data") );
-    wxXPMDecoder decoder;
-    wxImage img = decoder.ReadData(bits);
-    wxCHECK_MSG( img.Ok(), false, wxT("invalid cursor data") );
-    CreateFromImage( img ) ;
-    return true;
-#else
-    return false;
-#endif
+    return new wxCursorRefData(*static_cast<const wxCursorRefData *>(data));
 }
 
 WXHCURSOR wxCursor::GetHCURSOR() const
@@ -538,7 +527,7 @@ wxCursor::wxCursor(const wxString& cursor_file, wxBitmapType flags, int hotSpotX
 #if wxUSE_IMAGE
         wxImage image ;
         image.LoadFile( cursor_file, flags ) ;
-        if ( image.Ok() )
+        if ( image.IsOk() )
         {
             image.SetOption( wxIMAGE_OPTION_CUR_HOTSPOT_X, hotSpotX ) ;
             image.SetOption( wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotSpotY ) ;
@@ -647,6 +636,14 @@ void wxCursor::InitFromStock(wxStockCursor cursor_type)
         M_CURSORDATA->m_hCursor = wxGetStockCursor(kwxCursorRoller);
         break;
 
+    case wxCURSOR_OPEN_HAND:
+        M_CURSORDATA->m_themeCursor = kThemeOpenHandCursor;
+        break;
+
+    case wxCURSOR_CLOSED_HAND:
+        M_CURSORDATA->m_themeCursor = kThemeClosedHandCursor;
+        break;
+
     case wxCURSOR_CHAR:
     case wxCURSOR_ARROW:
     case wxCURSOR_LEFT_BUTTON: