]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/icon.mm
new file added
[wxWidgets.git] / src / cocoa / icon.mm
index d8c612aab159f3b7d9be6fce9e20c14a7c6b38c2..3dc3027c4898679ca14291fac98a0b55bc483df8 100644 (file)
@@ -6,14 +6,16 @@
 // Created:     2003/08/11
 // RCS-ID:      $Id$
 // Copyright:   (c) 2003 David Elliott
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #include "wx/wxprec.h"
+
+#include "wx/icon.h"
+
 #ifndef WX_PRECOMP
-    #include "wx/icon.h"
+    #include "wx/bitmap.h"
 #endif //WX_PRECOMP
-#include "wx/bitmap.h"
 
 #include "wx/cocoa/autorelease.h"
 
@@ -30,6 +32,8 @@ public:
     wxIconRefData( const wxIconRefData& data );
     virtual ~wxIconRefData();
 
+    virtual bool IsOk() const { return m_ok; }
+
 protected:
     int                 m_width;
     int                 m_height;
@@ -44,7 +48,7 @@ protected:
 
 wxIconRefData::wxIconRefData()
 {
-    m_ok = FALSE;
+    m_ok = false;
     m_width = 0;
     m_height = 0;
     m_depth = 0;
@@ -96,27 +100,29 @@ wxIcon::~wxIcon()
 {
 }
 
-bool wxIcon::CreateFromXpm(const char **xpm)
+wxGDIRefData *wxIcon::CreateGDIRefData() const
+{
+    return new wxIconRefData;
+}
+
+wxGDIRefData *wxIcon::CloneGDIRefData(const wxGDIRefData *data) const
+{
+    return new wxIconRefData(*static_cast<const wxIconRefData *>(data));
+}
+
+bool wxIcon::CreateFromXpm(const char* const* xpm)
 {
     wxBitmap bitmap(xpm);
     CopyFromBitmap(bitmap);
-    return Ok();
+    return IsOk();
 }
 
 bool wxIcon::LoadFile(const wxString& filename, wxBitmapType type,
     int desiredWidth, int desiredHeight)
 {
-    UnRef();
-
-    m_refData = new wxIconRefData;
-    M_ICONDATA->m_width = 5;
-    M_ICONDATA->m_height = 5;
-    M_ICONDATA->m_cocoaNSImage = [[NSImage alloc] initWithSize:NSMakeSize(5,5)];
-    M_ICONDATA->m_ok = true;
-    M_ICONDATA->m_numColors = 0;
-    M_ICONDATA->m_quality = 0;
-
-    return FALSE;
+    wxBitmap bitmap(filename, type);
+    CopyFromBitmap(bitmap);
+    return bitmap.IsOk();
 }
 
 void wxIcon::CopyFromBitmap(const wxBitmap& bitmap)
@@ -127,16 +133,11 @@ void wxIcon::CopyFromBitmap(const wxBitmap& bitmap)
     M_ICONDATA->m_height = bitmap.GetHeight();
     wxAutoNSAutoreleasePool pool;
     M_ICONDATA->m_cocoaNSImage = [bitmap.GetNSImage(true) retain];
-    M_ICONDATA->m_ok = bitmap.Ok();
+    M_ICONDATA->m_ok = bitmap.IsOk();
     M_ICONDATA->m_numColors = 0;
     M_ICONDATA->m_quality = 0;
 }
 
-bool wxIcon::Ok() const
-{
-    return m_refData && M_ICONDATA->m_ok;
-}
-
 int wxIcon::GetWidth() const
 {
     if(!m_refData)
@@ -157,4 +158,3 @@ WX_NSImage wxIcon::GetNSImage() const
         return nil;
     return M_ICONDATA->m_cocoaNSImage;
 }
-