]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/qt/icon.h
merged in the commit from the 2.2 branch
[wxWidgets.git] / include / wx / qt / icon.h
index a79e4906efbcd2ae00a4d9305feb91ac715e8cc7..f68c23154b755734659dd4de24320a078aa4cb98 100644 (file)
 /////////////////////////////////////////////////////////////////////////////
 // Name:        icon.h
-// Purpose:
-// Author:      Robert Roebling
-// Created:     01/02/97
-// Id:
-// Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
+// Purpose:     wxIcon class
+// Author:      AUTHOR
+// Modified by:
+// Created:     ??/??/98
+// RCS-ID:      $Id$
+// Copyright:   (c) AUTHOR
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-
-#ifndef __GTKICONH__
-#define __GTKICONH__
+#ifndef _WX_ICON_H_
+#define _WX_ICON_H_
 
 #ifdef __GNUG__
-#pragma interface
+#pragma interface "icon.h"
 #endif
 
-#include "wx/defs.h"
-#include "wx/object.h"
 #include "wx/bitmap.h"
 
-//-----------------------------------------------------------------------------
-// classes
-//-----------------------------------------------------------------------------
+class WXDLLEXPORT wxIconRefData: public wxBitmapRefData
+{
+    friend class WXDLLEXPORT wxBitmap;
+    friend class WXDLLEXPORT wxIcon;
+public:
+    wxIconRefData();
+    ~wxIconRefData();
 
-class wxIcon;
+public:
+/* TODO: whatever your actual icon handle is
+  WXHICON m_hIcon;
+*/
+};
 
-//-----------------------------------------------------------------------------
-// wxIcon
-//-----------------------------------------------------------------------------
+#define M_ICONDATA ((wxIconRefData *)m_refData)
+#define M_ICONHANDLERDATA ((wxIconRefData *)bitmap->GetRefData())
 
-class wxIcon: public wxBitmap
+// Icon
+class WXDLLEXPORT wxIcon: public wxBitmap
 {
   DECLARE_DYNAMIC_CLASS(wxIcon)
 
 public:
+  wxIcon();
 
-  wxIcon(void) {};
-
+  // Copy constructors
   inline wxIcon(const wxIcon& icon) { Ref(icon); }
   inline wxIcon(const wxIcon* icon) { if (icon) Ref(*icon); }
-  wxIcon( char **bits, int width=-1, int height=-1 );
-  
+
+  wxIcon(const char bits[], int width, int height);
+  wxIcon(const wxString& name, long flags = wxBITMAP_TYPE_ICO_RESOURCE,
+    int desiredWidth = -1, int desiredHeight = -1);
+  ~wxIcon();
+
+  bool LoadFile(const wxString& name, long flags = wxBITMAP_TYPE_ICO_RESOURCE,
+      int desiredWidth = -1, int desiredHeight = -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; }
+
+/* TODO: implementation
+  void SetHICON(WXHICON ico);
+  inline WXHICON GetHICON() const { return (M_ICONDATA ? M_ICONDATA->m_hIcon : 0); }
+*/
+
+/* TODO */
+  virtual bool Ok() const { return (m_refData != NULL) ; }
+};
+
+/* Example handlers. TODO: write your own handlers for relevant types.
+
+class WXDLLEXPORT wxICOFileHandler: public wxBitmapHandler
+{
+  DECLARE_DYNAMIC_CLASS(wxICOFileHandler)
+public:
+  inline wxICOFileHandler()
+  {
+       m_name = "ICO icon file";
+       m_extension = "ico";
+       m_type = wxBITMAP_TYPE_ICO;
+  };
+
+  virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
+      int desiredWidth = -1, int desiredHeight = -1);
+};
+
+class WXDLLEXPORT wxICOResourceHandler: public wxBitmapHandler
+{
+  DECLARE_DYNAMIC_CLASS(wxICOResourceHandler)
+public:
+  inline wxICOResourceHandler()
+  {
+       m_name = "ICO resource";
+       m_extension = "ico";
+       m_type = wxBITMAP_TYPE_ICO_RESOURCE;
+  };
+
+  virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
+      int desiredWidth = -1, int desiredHeight = -1);
+
 };
 
+*/
 
-#endif // __GTKICONH__
+#endif
+    // _WX_ICON_H_