]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cocoa/icon.h
Added experimental async clipboard format query
[wxWidgets.git] / include / wx / cocoa / icon.h
index b1f045c714e4a09b42d13787e7a7d99bebc6ed16..ebeb2975f819dd8810b250cc3b785a0278a6a899 100644 (file)
@@ -1,57 +1,62 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        icon.h
+// Name:        wx/cocoa/icon.h
 // Purpose:     wxIcon class
-// Author:      AUTHOR
+// Author:      David Elliott
 // Modified by:
-// Created:     ??/??/98
+// Created:     2003/08/11
 // RCS-ID:      $Id$
-// Copyright:   (c) AUTHOR
-// Licence:    wxWindows licence
+// Copyright:   (c) 2003 David Elliott
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef _WX_ICON_H_
-#define _WX_ICON_H_
+#ifndef _WX_COCOA_ICON_H__
+#define _WX_COCOA_ICON_H__
 
-#if defined(__GNUG__) && !defined(__APPLE__)
-#pragma interface "icon.h"
-#endif
+#include "wx/gdicmn.h"
+#include "wx/gdiobj.h"
 
-#include "wx/bitmap.h"
-
-// Icon
-class WXDLLEXPORT wxIcon: public wxBitmap
+// ========================================================================
+// wxIcon
+// ========================================================================
+class WXDLLIMPEXP_CORE wxIcon : public wxGDIObject
 {
-  DECLARE_DYNAMIC_CLASS(wxIcon)
-
 public:
-  wxIcon();
-
-  // Copy constructors
-  wxIcon(const wxIcon& icon)
-      : wxBitmap()
-      { Ref(icon); }
-
-  wxIcon(const char **data);
-  wxIcon(char **data);
-  wxIcon(const char bits[], int width , int height );
-  wxIcon(const wxString& name, int flags = wxBITMAP_TYPE_ICON_RESOURCE,
-    int desiredWidth = -1, int desiredHeight = -1);
-  ~wxIcon();
-
-  bool LoadFile(const wxString& name, wxBitmapType flags /* = wxBITMAP_TYPE_ICON_RESOURCE */ ,
-      int desiredWidth /* = -1 */ , int desiredHeight = -1);
-  bool LoadFile(const wxString& name ,wxBitmapType flags = wxBITMAP_TYPE_ICON_RESOURCE )
-       { return LoadFile( name , flags , -1 , -1 ) ; } 
-
-  inline wxIcon& operator = (const wxIcon& icon) { if (*this == icon) return (*this); Ref(icon); return *this; }
-  inline bool operator == (const wxIcon& icon) { return m_refData == icon.m_refData; }
-  inline bool operator != (const wxIcon& icon) { return m_refData != icon.m_refData; }
-  
-  // create from bitmap (which should have a mask unless it's monochrome):
-  // there shouldn't be any implicit bitmap -> icon conversion (i.e. no
-  // ctors, assignment operators...), but it's ok to have such function
-  void CopyFromBitmap(const wxBitmap& bmp);
+    wxIcon();
+
+    wxIcon(const char* const* data) { CreateFromXpm(data); }
+    wxIcon(const char bits[], int width , int height );
+    wxIcon(const wxString& name, int flags = wxICON_DEFAULT_TYPE,
+           int desiredWidth = -1, int desiredHeight = -1);
+    wxIcon(const wxIconLocation& loc)
+    {
+        LoadFile(loc.GetFileName(), wxBITMAP_TYPE_ICON);
+    }
+    virtual ~wxIcon();
+
+    bool LoadFile(const wxString& name, wxBitmapType flags = wxICON_DEFAULT_TYPE,
+                  int desiredWidth=-1, int desiredHeight=-1);
+
+    bool operator==(const wxIcon& icon) const
+    {   return m_refData == icon.m_refData; }
+    bool operator!=(const wxIcon& icon) const { return !(*this == icon); }
+
+    // create from bitmap (which should have a mask unless it's monochrome):
+    // there shouldn't be any implicit bitmap -> icon conversion (i.e. no
+    // ctors, assignment operators...), but it's ok to have such function
+    void CopyFromBitmap(const wxBitmap& bmp);
+
+    int GetWidth() const;
+    int GetHeight() const;
+
+    WX_NSImage GetNSImage() const;
+    bool CreateFromXpm(const char* const* bits);
+
+protected:
+    virtual wxGDIRefData *CreateGDIRefData() const;
+    virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxIcon)
 };
 
-#endif
-    // _WX_ICON_H_
+#endif // _WX_COCOA_ICON_H__