]>
git.saurik.com Git - wxWidgets.git/blob - src/msw/icon.cpp
   1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     wxIcon class 
   4 // Author:      Julian Smart 
   5 // Modified by: 20.11.99 (VZ): don't derive from wxBitmap any more 
   8 // Copyright:   (c) Julian Smart 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  12 // ============================================================================ 
  14 // ============================================================================ 
  16 // ---------------------------------------------------------------------------- 
  18 // ---------------------------------------------------------------------------- 
  20 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) 
  21     #pragma implementation "icon.h" 
  24 // For compilers that support precompilation, includes "wx.h". 
  25 #include "wx/wxprec.h" 
  37     #include "wx/bitmap.h" 
  41 #include "wx/msw/private.h" 
  43 // ---------------------------------------------------------------------------- 
  45 // ---------------------------------------------------------------------------- 
  47 IMPLEMENT_DYNAMIC_CLASS(wxIcon
, wxGDIObject
) 
  49 // ============================================================================ 
  51 // ============================================================================ 
  53 // ---------------------------------------------------------------------------- 
  55 // ---------------------------------------------------------------------------- 
  57 void wxIconRefData::Free() 
  61 #ifndef __WXMICROWIN__ 
  62         ::DestroyIcon((HICON
) m_hIcon
); 
  69 // ---------------------------------------------------------------------------- 
  71 // ---------------------------------------------------------------------------- 
  73 wxIcon::wxIcon(const char bits
[], int width
, int height
) 
  75     wxBitmap 
bmp(bits
, width
, height
); 
  79 wxIcon::wxIcon(const wxString
& iconfile
, 
  85     LoadFile(iconfile
, flags
, desiredWidth
, desiredHeight
); 
  88 wxIcon::wxIcon(const wxIconLocation
& loc
) 
  90     // wxICOFileHandler accepts names in the format "filename;index" 
  91     wxString fullname 
= loc
.GetFileName(); 
  94         fullname 
<< _T(';') << loc
.GetIndex(); 
  98     LoadFile(fullname
, wxBITMAP_TYPE_ICO
); 
 105 void wxIcon::CopyFromBitmap(const wxBitmap
& bmp
) 
 107 #ifndef __WXMICROWIN__ 
 108     HICON hicon 
= wxBitmapToHICON(bmp
); 
 111         wxLogLastError(wxT("CreateIconIndirect")); 
 115         SetHICON((WXHICON
)hicon
); 
 116         SetSize(bmp
.GetWidth(), bmp
.GetHeight()); 
 118 #endif // __WXMICROWIN__ 
 121 void wxIcon::CreateIconFromXpm(const char **data
) 
 127 bool wxIcon::LoadFile(const wxString
& filename
, 
 129                       int desiredWidth
, int desiredHeight
) 
 133     wxGDIImageHandler 
*handler 
= FindHandler(type
); 
 141     return handler
->Load(this, filename
, type
, desiredWidth
, desiredHeight
);