#include "wx/app.h"
-#ifndef __WXMICROWIN__
-#include "wx/msw/dib.h"
-#endif
-
-#include "wx/msw/bitmap.h"
-#include "wx/msw/gdiimage.h"
#include "wx/bitmap.h"
+#include "wx/msw/gdiimage.h"
+#include "wx/msw/dib.h"
#include "wx/listimpl.cpp"
WX_DEFINE_LIST(wxGDIImageHandlerList);
-
-#ifdef __WIN16__
-# include "wx/msw/curico.h"
-#endif // __WIN16__
-
// ----------------------------------------------------------------------------
// private classes
// ----------------------------------------------------------------------------
int WXUNUSED(desiredWidth),
int WXUNUSED(desiredHeight))
{
-#if wxUSE_IMAGE_LOADING_IN_MSW
- wxPalette *palette = NULL;
- bool success = wxLoadIntoBitmap(WXSTRINGCAST name, bitmap, &palette) != 0;
-
-#if wxUSE_PALETTE
- if ( success && palette )
- {
- bitmap->SetPalette(*palette);
- }
+ wxCHECK_MSG( bitmap, false, _T("NULL bitmap in LoadFile") );
- // it was copied by the bitmap if it was loaded successfully
- delete palette;
-#endif // wxUSE_PALETTE
+ wxDIB dib(name);
- return success;
-#else
- return false;
-#endif
+ return dib.IsOk() && bitmap->CopyFromDIB(dib);
}
bool wxBMPFileHandler::SaveFile(wxBitmap *bitmap,
const wxString& name,
int WXUNUSED(type),
- const wxPalette *pal)
+ const wxPalette * WXUNUSED(pal))
{
-#if wxUSE_IMAGE_LOADING_IN_MSW
-
-#if wxUSE_PALETTE
- wxPalette *actualPalette = (wxPalette *)pal;
- if ( !actualPalette )
- actualPalette = bitmap->GetPalette();
-#else
- wxPalette *actualPalette = NULL;
-#endif // wxUSE_PALETTE
-
- return wxSaveBitmap(WXSTRINGCAST name, bitmap, actualPalette) != 0;
-#else
- return false;
-#endif
+ wxCHECK_MSG( bitmap, false, _T("NULL bitmap in SaveFile") );
+
+ wxDIB dib(*bitmap);
+
+ return dib.Save(name);
}
// ----------------------------------------------------------------------------
long WXUNUSED(flags),
int desiredWidth, int desiredHeight)
{
-#if wxUSE_RESOURCE_LOADING_IN_MSW
icon->UnRef();
// actual size
wxSize size;
-#ifdef __WIN32__
HICON hicon = NULL;
// Parse the filename: it may be of the form "filename;n" in order to
}
size = wxGetHiconSize(hicon);
-#else // Win16
- HICON hicon = ReadIconFile((wxChar *)name.c_str(),
- wxGetInstance(),
- &size.x, &size.y);
- HICON hIcon = 0;
- HANDLE hDIB = 0;
-
- // Read the icon DIB from file
- if( (hDIB = ReadIcon((wxChar *)name.c_str(), &size.x, &size.y)) == (HANDLE) NULL)
- return false;
-
- // Create an icon from DIB
- hicon = MakeIcon( hDIB, wxGetInstance());
- GlobalFree( hDIB);
-#endif // Win32/Win16
if ( (desiredWidth != -1 && desiredWidth != size.x) ||
(desiredHeight != -1 && desiredHeight != size.y) )
icon->SetSize(size.x, size.y);
return icon->Ok();
-#else
- return false;
-#endif
}
bool wxICOResourceHandler::LoadIcon(wxIcon *icon,
// note that we can't just always call LoadImage() because it seems to do
// some icon rescaling internally which results in very ugly 16x16 icons
-#if defined(__WIN32__) && !defined(__SC__)
if ( hasSize )
{
hicon = (HICON)::LoadImage(wxGetInstance(), name, IMAGE_ICON,
LR_DEFAULTCOLOR);
}
else
-#endif // Win32/!Win32
{
hicon = ::LoadIcon(wxGetInstance(), name);
}
{
wxSize size(32, 32); // default
-#ifdef __WIN32__
- // Win32s doesn't have GetIconInfo function...
if ( hicon && wxGetOsVersion() != wxWIN32S )
{
ICONINFO info;
::DeleteObject(info.hbmColor);
}
}
-#endif
return size;
}
-#endif
- // __WXMICROWIN__
+
+#endif // __WXMICROWIN__
+