artmac extended for cocoa

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66775 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor 2011-01-26 16:15:39 +00:00
parent 516e9d1335
commit ca9eebc346
5 changed files with 35 additions and 3 deletions

View File

@ -253,7 +253,7 @@ private:
#if !defined(__WXUNIVERSAL__) && \ #if !defined(__WXUNIVERSAL__) && \
((defined(__WXGTK__) && defined(__WXGTK20__)) || defined(__WXMSW__) || \ ((defined(__WXGTK__) && defined(__WXGTK20__)) || defined(__WXMSW__) || \
(defined(__WXMAC__) && wxOSX_USE_COCOA_OR_CARBON)) defined(__WXMAC__))
// *some* (partial) native implementation of wxArtProvider exists; this is // *some* (partial) native implementation of wxArtProvider exists; this is
// not the same as wxArtProvider::HasNativeProvider()! // not the same as wxArtProvider::HasNativeProvider()!
#define wxHAS_NATIVE_ART_PROVIDER_IMPL #define wxHAS_NATIVE_ART_PROVIDER_IMPL

View File

@ -41,6 +41,7 @@ OSStatus WXDLLIMPEXP_CORE wxMacDrawCGImage(
CGImageRef inImage) ; CGImageRef inImage) ;
WX_NSImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromCGImage( CGImageRef image ); WX_NSImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromCGImage( CGImageRef image );
CGImageRef WXDLLIMPEXP_CORE wxOSXCreateCGImageFromNSImage( WX_NSImage nsimage ); CGImageRef WXDLLIMPEXP_CORE wxOSXCreateCGImageFromNSImage( WX_NSImage nsimage );
wxBitmap WXDLLIMPEXP_CORE wxOSXCreateSystemBitmap(const wxString& id, const wxString &client, const wxSize& size);
class WXDLLIMPEXP_FWD_CORE wxDialog; class WXDLLIMPEXP_FWD_CORE wxDialog;

View File

@ -26,6 +26,7 @@ OSStatus WXDLLIMPEXP_CORE wxMacDrawCGImage(
CGImageRef inImage) ; CGImageRef inImage) ;
WX_UIImage WXDLLIMPEXP_CORE wxOSXGetUIImageFromCGImage( CGImageRef image ); WX_UIImage WXDLLIMPEXP_CORE wxOSXGetUIImageFromCGImage( CGImageRef image );
wxBitmap WXDLLIMPEXP_CORE wxOSXCreateSystemBitmap(const wxString& id, const wxString &client, const wxSize& size);
class WXDLLIMPEXP_CORE wxWidgetIPhoneImpl : public wxWidgetImpl class WXDLLIMPEXP_CORE wxWidgetIPhoneImpl : public wxWidgetImpl
{ {

View File

@ -25,7 +25,7 @@
#include "wx/image.h" #include "wx/image.h"
#endif #endif
#if wxOSX_USE_COCOA_OR_CARBON #include "wx/osx/private.h"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxMacArtProvider // wxMacArtProvider
@ -34,8 +34,18 @@
class wxMacArtProvider : public wxArtProvider class wxMacArtProvider : public wxArtProvider
{ {
protected: protected:
#if wxOSX_USE_COCOA_OR_CARBON
virtual wxIconBundle CreateIconBundle(const wxArtID& id, virtual wxIconBundle CreateIconBundle(const wxArtID& id,
const wxArtClient& client); const wxArtClient& client);
#endif
#if wxOSX_USE_COCOA_OR_IPHONE
virtual wxBitmap CreateBitmap(const wxArtID& id,
const wxArtClient& client,
const wxSize& size)
{
return wxOSXCreateSystemBitmap(id, client, size);
}
#endif
}; };
/* static */ void wxArtProvider::InitNativeProvider() /* static */ void wxArtProvider::InitNativeProvider()
@ -43,6 +53,8 @@ protected:
wxArtProvider::Push(new wxMacArtProvider); wxArtProvider::Push(new wxMacArtProvider);
} }
#if wxOSX_USE_COCOA_OR_CARBON
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// helper macros // helper macros
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@ -103,6 +115,7 @@ wxIconBundle wxMacArtProvider::CreateIconBundle(const wxArtID& id, const wxArtCl
return wxMacArtProvider_CreateIconBundle(id); return wxMacArtProvider_CreateIconBundle(id);
} }
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxArtProvider::GetNativeSizeHint() // wxArtProvider::GetNativeSizeHint()
@ -129,4 +142,3 @@ wxSize wxArtProvider::GetNativeSizeHint(const wxArtClient& client)
return wxDefaultSize; return wxDefaultSize;
} }
#endif // wxOSX_USE_COCOA_CARBON

View File

@ -353,10 +353,28 @@ WX_UIImage wxOSXGetUIImageFromCGImage( CGImageRef image )
return( newImage ); return( newImage );
} }
wxBitmap wxOSXCreateSystemBitmap(const wxString& name, const wxString &client, const wxSize& size)
{
#if 0
// unfortunately this only accesses images in the app bundle, not the system wide globals
wxCFStringRef cfname(name);
return wxBitmap( [[UIImage imageNamed:cfname.AsNSString()] CGImage] );
#else
return wxBitmap();
#endif
}
#endif #endif
#if wxOSX_USE_COCOA #if wxOSX_USE_COCOA
wxBitmap wxOSXCreateSystemBitmap(const wxString& name, const wxString &client, const wxSize& size)
{
wxCFStringRef cfname(name);
wxCFRef<CGImageRef> image( wxOSXCreateCGImageFromNSImage([NSImage imageNamed:cfname.AsNSString()]) );
return wxBitmap( image );
}
// From "Cocoa Drawing Guide:Working with Images" // From "Cocoa Drawing Guide:Working with Images"
WX_NSImage wxOSXGetNSImageFromCGImage( CGImageRef image ) WX_NSImage wxOSXGetNSImageFromCGImage( CGImageRef image )
{ {