diff --git a/include/wx/osx/bitmap.h b/include/wx/osx/bitmap.h index 34137f0a4c..d1388a85fb 100644 --- a/include/wx/osx/bitmap.h +++ b/include/wx/osx/bitmap.h @@ -126,6 +126,11 @@ public: // Convert from wxIcon wxBitmap(const wxIcon& icon) { CopyFromIcon(icon); } +#if wxOSX_USE_COCOA + // Convert from wxCursor + wxBitmap(const wxCursor &cursor); +#endif + virtual ~wxBitmap() {} wxImage ConvertToImage() const wxOVERRIDE; diff --git a/include/wx/osx/cocoa/private.h b/include/wx/osx/cocoa/private.h index c59c8bb231..323cd819c4 100644 --- a/include/wx/osx/cocoa/private.h +++ b/include/wx/osx/cocoa/private.h @@ -45,6 +45,7 @@ void WXDLLIMPEXP_CORE wxOSXSetImageSize(WX_NSImage image, CGFloat width, CGFloat wxBitmap WXDLLIMPEXP_CORE wxOSXCreateSystemBitmap(const wxString& id, const wxString &client, const wxSize& size); WXWindow WXDLLIMPEXP_CORE wxOSXGetMainWindow(); WXWindow WXDLLIMPEXP_CORE wxOSXGetKeyWindow(); +WXImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromNSCursor(const WXHCURSOR cursor); class WXDLLIMPEXP_FWD_CORE wxDialog; diff --git a/interface/wx/bitmap.h b/interface/wx/bitmap.h index d4922fe3ef..f119444e05 100644 --- a/interface/wx/bitmap.h +++ b/interface/wx/bitmap.h @@ -359,9 +359,6 @@ public: This can be useful to display a cursor as it cannot be drawn directly on a window. - This constructor only exists in wxMSW and wxGTK (where it is - implemented for GTK+ 2.8 or later) only. - @param cursor A valid wxCursor. @since 3.1.0 diff --git a/src/osx/carbon/utilscocoa.mm b/src/osx/carbon/utilscocoa.mm index 9a7c2ceb22..7e27bb21ac 100644 --- a/src/osx/carbon/utilscocoa.mm +++ b/src/osx/carbon/utilscocoa.mm @@ -577,6 +577,11 @@ WX_NSCursor wxMacCocoaCreateStockCursor( int cursor_type ) return cursor; } +WXImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromNSCursor(const WXHCURSOR cursor) +{ + return [(NSCursor *)cursor image]; +} + // C-based style wrapper routines around NSCursor WX_NSCursor wxMacCocoaCreateCursorFromCGImage( CGImageRef cgImageRef, float hotSpotX, float hotSpotY ) { diff --git a/src/osx/core/bitmap.cpp b/src/osx/core/bitmap.cpp index b875ee34f5..cb9f2163e3 100644 --- a/src/osx/core/bitmap.cpp +++ b/src/osx/core/bitmap.cpp @@ -919,6 +919,13 @@ wxBitmap::wxBitmap(WXImage image) (void)Create(image); } +#if wxOSX_USE_COCOA +wxBitmap::wxBitmap(const wxCursor &cursor) +{ + m_refData = new wxBitmapRefData( wxOSXGetNSImageFromNSCursor( cursor.GetHCURSOR() ) ); +} +#endif + bool wxBitmap::Create(WXImage image) { UnRef();