From 68a8c89baadebb650357868fc4ed9b64a55e1657 Mon Sep 17 00:00:00 2001 From: David Elliott Date: Tue, 11 Jan 2005 14:55:24 +0000 Subject: [PATCH] Implement CopyFromIcon git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31314 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/cocoa/bitmap.mm | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/cocoa/bitmap.mm b/src/cocoa/bitmap.mm index ae1d40c1f0..adcf08c262 100644 --- a/src/cocoa/bitmap.mm +++ b/src/cocoa/bitmap.mm @@ -355,9 +355,28 @@ bool wxBitmap::SaveFile(const wxString& filename, wxBitmapType type, const wxPal return false; } -bool wxBitmap::CopyFromIcon(const wxIcon& icno) +bool wxBitmap::CopyFromIcon(const wxIcon& icon) { - return false; + UnRef(); + if(!icon.GetNSImage()); + [icon.GetNSImage() lockFocus]; + NSRect imageRect; + imageRect.origin.x = imageRect.origin.y = 0.0; + imageRect.size = [icon.GetNSImage() size]; + NSBitmapImageRep *newBitmapRep = [[NSBitmapImageRep alloc] initWithFocusedViewRect:imageRect]; + [icon.GetNSImage() unlockFocus]; + if(!newBitmapRep) + return false; + m_refData = new wxBitmapRefData; + M_BITMAPDATA->m_cocoaNSBitmapImageRep = newBitmapRep; + M_BITMAPDATA->m_width = [newBitmapRep pixelsWide]; + M_BITMAPDATA->m_height = [newBitmapRep pixelsHigh]; + M_BITMAPDATA->m_depth = [newBitmapRep bitsPerSample]; + M_BITMAPDATA->m_ok = true; + M_BITMAPDATA->m_numColors = 0; + M_BITMAPDATA->m_quality = 0; + M_BITMAPDATA->m_bitmapMask = NULL; + return true; } wxBitmap wxBitmap::GetSubBitmap(wxRect const&) const -- 2.45.2