X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8ecff18117f8cabc0f515ad81aa4ad265e5e17d3..ad653fa23069c5d9378247084f03c9a718c3ad62:/src/msw/icon.cpp diff --git a/src/msw/icon.cpp b/src/msw/icon.cpp index 67f83d31f6..dccefc51cc 100644 --- a/src/msw/icon.cpp +++ b/src/msw/icon.cpp @@ -72,12 +72,12 @@ wxIcon::wxIcon(const char bits[], int width, int height) } wxIcon::wxIcon(const wxString& iconfile, - long flags, + wxBitmapType type, int desiredWidth, int desiredHeight) { - LoadFile(iconfile, flags, desiredWidth, desiredHeight); + LoadFile(iconfile, type, desiredWidth, desiredHeight); } wxIcon::wxIcon(const wxIconLocation& loc) @@ -86,7 +86,7 @@ wxIcon::wxIcon(const wxIconLocation& loc) wxString fullname = loc.GetFileName(); if ( loc.GetIndex() ) { - fullname << _T(';') << loc.GetIndex(); + fullname << wxT(';') << loc.GetIndex(); } //else: 0 is default @@ -100,7 +100,7 @@ wxIcon::~wxIcon() wxObjectRefData *wxIcon::CloneRefData(const wxObjectRefData *dataOrig) const { const wxIconRefData * - data = wx_static_cast(const wxIconRefData *, dataOrig); + data = static_cast(dataOrig); if ( !data ) return NULL; @@ -128,14 +128,14 @@ void wxIcon::CopyFromBitmap(const wxBitmap& bmp) #endif // __WXMICROWIN__ } -void wxIcon::CreateIconFromXpm(const char **data) +void wxIcon::CreateIconFromXpm(const char* const* data) { wxBitmap bmp(data); CopyFromBitmap(bmp); } bool wxIcon::LoadFile(const wxString& filename, - long type, + wxBitmapType type, int desiredWidth, int desiredHeight) { UnRef(); @@ -144,9 +144,26 @@ bool wxIcon::LoadFile(const wxString& filename, if ( !handler ) { - // say something? - return false; + // load via wxBitmap which, in turn, uses wxImage allowing us to + // support more formats + wxBitmap bmp; + if ( !bmp.LoadFile(filename, type) ) + return false; + + CopyFromBitmap(bmp); + return true; } return handler->Load(this, filename, type, desiredWidth, desiredHeight); } + +bool wxIcon::CreateFromHICON(WXHICON icon) +{ + SetHICON(icon); + if ( !IsOk() ) + return false; + + SetSize(wxGetHiconSize(icon)); + + return true; +}