1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     wxIcon class 
   4 // Author:      Julian Smart 
   8 // Copyright:   (c) Julian Smart 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  16     #pragma interface "icon.h" 
  19 // ---------------------------------------------------------------------------- 
  21 // ---------------------------------------------------------------------------- 
  23 #include "wx/msw/gdiimage.h" 
  25 // --------------------------------------------------------------------------- 
  27 // --------------------------------------------------------------------------- 
  29 // notice that although wxIconRefData inherits from wxBitmapRefData, it is not 
  30 // a valid wxBitmapRefData 
  31 class WXDLLEXPORT wxIconRefData 
: public wxGDIImageRefData
 
  35     virtual ~wxIconRefData() { Free(); } 
  40 // --------------------------------------------------------------------------- 
  42 // --------------------------------------------------------------------------- 
  44 class WXDLLEXPORT wxIcon 
: public wxGDIImage
 
  52     wxIcon(const wxIcon
& icon
) { Ref(icon
); } 
  55     wxIcon(const char bits
[], int width
, int height
); 
  58     wxIcon(const char **data
) { CreateIconFromXpm(data
); } 
  60     wxIcon(char **data
) { CreateIconFromXpm((const char **)data
); } 
  63     wxIcon(const wxString
& name
, 
  64            long type 
= wxBITMAP_TYPE_ICO_RESOURCE
, 
  65            int desiredWidth 
= -1, int desiredHeight 
= -1); 
  67     wxIcon(const wxIconLocation
& loc
); 
  71     virtual bool LoadFile(const wxString
& name
, 
  72                           long type 
= wxBITMAP_TYPE_ICO_RESOURCE
, 
  73                           int desiredWidth 
= -1, int desiredHeight 
= -1); 
  75     wxIcon
& operator = (const wxIcon
& icon
) 
  76         { if ( *this != icon 
) Ref(icon
); return *this; } 
  77     bool operator == (const wxIcon
& icon
) const 
  78         { return m_refData 
== icon
.m_refData
; } 
  79     bool operator != (const wxIcon
& icon
) const 
  80         { return m_refData 
!= icon
.m_refData
; } 
  82     // implementation only from now on 
  83     wxIconRefData 
*GetIconData() const { return (wxIconRefData 
*)m_refData
; } 
  85     void SetHICON(WXHICON icon
) { SetHandle((WXHANDLE
)icon
); } 
  86     WXHICON 
GetHICON() const { return (WXHICON
)GetHandle(); } 
  88     // create from bitmap (which should have a mask unless it's monochrome): 
  89     // there shouldn't be any implicit bitmap -> icon conversion (i.e. no 
  90     // ctors, assignment operators...), but it's ok to have such function 
  91     void CopyFromBitmap(const wxBitmap
& bmp
); 
  94     virtual wxGDIImageRefData 
*CreateData() const 
  96         return new wxIconRefData
; 
  99     // create from XPM data 
 100     void CreateIconFromXpm(const char **data
); 
 103     DECLARE_DYNAMIC_CLASS(wxIcon
)