]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cocoa/icon.h
set eol-style and keywords properties on new files
[wxWidgets.git] / include / wx / cocoa / icon.h
index 90414c8441870676cda394c0962b81f5932e804b..3d1f3f86153e133f1f18135a8e32090fe75d4ed7 100644 (file)
@@ -1,62 +1,64 @@
 /////////////////////////////////////////////////////////////////////////////
 // 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(NO_GCC_PRAGMA)
-#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(const wxIconLocation& loc)
-  {
-      LoadFile(loc.GetFileName(), wxBITMAP_TYPE_ICON);
-  }
-  ~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 ) ; }
-
-  wxIcon& operator=(const wxIcon& icon)
-    { if (this != &icon) Ref(icon); return *this; }
-  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);
+    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;
+
+    wxSize GetSize() const { return wxSize(GetWidth(), GetHeight()); }
+
+    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__