]> git.saurik.com Git - wxWidgets.git/commitdiff
Implement CopyFromIcon
authorDavid Elliott <dfe@tgwbd.org>
Tue, 11 Jan 2005 14:55:24 +0000 (14:55 +0000)
committerDavid Elliott <dfe@tgwbd.org>
Tue, 11 Jan 2005 14:55:24 +0000 (14:55 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31314 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/cocoa/bitmap.mm

index ae1d40c1f0a6a184ce709a4b52a8a0e9881ace4a..adcf08c262ddbf8219b6a8f29b4214ba0bc4f896 100644 (file)
@@ -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