diff --git a/include/wx/osx/core/colour.h b/include/wx/osx/core/colour.h index cb0ce23367..c8e0bde26e 100644 --- a/include/wx/osx/core/colour.h +++ b/include/wx/osx/core/colour.h @@ -68,6 +68,7 @@ public: // This ctor does not take ownership of the color. explicit wxColour(WX_NSColor color); WX_NSColor OSXGetNSColor() const; + WX_NSImage OSXGetNSPatternImage() const; #endif protected : @@ -102,6 +103,7 @@ public: #if wxOSX_USE_COCOA virtual WX_NSColor GetNSColor() const; + virtual WX_NSImage GetNSPatternImage() const; #endif }; diff --git a/src/osx/cocoa/colour.mm b/src/osx/cocoa/colour.mm index 3ff2f389c7..247da73b03 100644 --- a/src/osx/cocoa/colour.mm +++ b/src/osx/cocoa/colour.mm @@ -35,6 +35,7 @@ public: virtual wxColourRefData* Clone() const wxOVERRIDE { return new wxNSColorRefData(*this); } virtual WX_NSColor GetNSColor() const wxOVERRIDE; + virtual WX_NSImage GetNSPatternImage() const wxOVERRIDE; private: WX_NSColor m_nsColour; @@ -186,15 +187,33 @@ CGColorRef wxNSColorRefData::GetCGColor() const return cgcolor; } +WX_NSImage wxNSColorRefData::GetNSPatternImage() const +{ + NSColor* colPat = [m_nsColour colorUsingColorSpaceName:NSPatternColorSpace]; + if ( colPat ) + { + NSImage* nsimage = [colPat patternImage]; + if ( nsimage ) + { + return nsimage; + } + } + + return NULL; +} + WX_NSColor wxColourRefData::GetNSColor() const { wxOSXEffectiveAppearanceSetter helper; return [NSColor colorWithCalibratedRed:Red() green:Green() blue:Blue() alpha:Alpha() ]; } +WX_NSImage wxColourRefData::GetNSPatternImage() const +{ + return NULL; +} + wxColour::wxColour(WX_NSColor col) { m_refData = new wxNSColorRefData(col); } - - diff --git a/src/osx/core/colour.cpp b/src/osx/core/colour.cpp index 3f71cbe5ed..19982bd6f9 100644 --- a/src/osx/core/colour.cpp +++ b/src/osx/core/colour.cpp @@ -222,6 +222,13 @@ WX_NSColor wxColour::OSXGetNSColor() const return M_COLDATA->GetNSColor(); } + +WX_NSImage wxColour::OSXGetNSPatternImage() const +{ + wxCHECK_MSG( IsOk(), NULL, "invalid colour" ); + + return M_COLDATA->GetNSPatternImage(); +} #endif void wxColour::InitRGBA(ChannelType r, ChannelType g, ChannelType b, ChannelType a)