]>
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
);