]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/gdiimage.cpp
check that the version of __sync_sub_and_fetch that returns a value is supported...
[wxWidgets.git] / src / msw / gdiimage.cpp
index f2e84134d0765c6496c2d0d934a720810379e4c4..ff89f0755b43f1f3707d20bff07c9b4ff3a5d97f 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        msw/gdiimage.cpp
+// Name:        src/msw/gdiimage.cpp
 // Purpose:     wxGDIImage implementation
 // Author:      Vadim Zeitlin
 // Modified by:
 // Purpose:     wxGDIImage implementation
 // Author:      Vadim Zeitlin
 // Modified by:
 // headers
 // ----------------------------------------------------------------------------
 
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "gdiimage.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifndef WX_PRECOMP
     #include "wx/string.h"
     #include "wx/log.h"
 #ifndef WX_PRECOMP
     #include "wx/string.h"
     #include "wx/log.h"
+    #include "wx/app.h"
+    #include "wx/bitmap.h"
 #endif // WX_PRECOMP
 
 #include "wx/msw/private.h"
 
 #endif // WX_PRECOMP
 
 #include "wx/msw/private.h"
 
-#include "wx/app.h"
-
-#include "wx/bitmap.h"
 #include "wx/msw/gdiimage.h"
 
 #if wxUSE_WXDIB
 #include "wx/msw/gdiimage.h"
 
 #if wxUSE_WXDIB
@@ -52,7 +47,7 @@
 #include "wx/file.h"
 
 #include "wx/listimpl.cpp"
 #include "wx/file.h"
 
 #include "wx/listimpl.cpp"
-WX_DEFINE_LIST(wxGDIImageHandlerList);
+WX_DEFINE_LIST(wxGDIImageHandlerList)
 
 // ----------------------------------------------------------------------------
 // private classes
 
 // ----------------------------------------------------------------------------
 // private classes
@@ -109,7 +104,7 @@ public:
 
     // creating and saving icons is not supported
     virtual bool Create(wxGDIImage *WXUNUSED(image),
 
     // creating and saving icons is not supported
     virtual bool Create(wxGDIImage *WXUNUSED(image),
-                        void *WXUNUSED(data),
+                        const void* WXUNUSED(data),
                         long WXUNUSED(flags),
                         int WXUNUSED(width),
                         int WXUNUSED(height),
                         long WXUNUSED(flags),
                         int WXUNUSED(width),
                         int WXUNUSED(height),
@@ -328,7 +323,7 @@ bool wxBMPResourceHandler::LoadFile(wxBitmap *bitmap,
                                     int WXUNUSED(desiredHeight))
 {
     // TODO: load colourmap.
                                     int WXUNUSED(desiredHeight))
 {
     // TODO: load colourmap.
-    bitmap->SetHBITMAP((WXHBITMAP)::LoadBitmap(wxGetInstance(), name));
+    bitmap->SetHBITMAP((WXHBITMAP)::LoadBitmap(wxGetInstance(), name.wx_str()));
 
     if ( !bitmap->Ok() )
     {
 
     if ( !bitmap->Ok() )
     {
@@ -443,7 +438,7 @@ bool wxICOFileHandler::LoadIcon(wxIcon *icon,
          desiredHeight == ::GetSystemMetrics(SM_CYICON) )
     {
         // get the specified large icon from file
          desiredHeight == ::GetSystemMetrics(SM_CYICON) )
     {
         // get the specified large icon from file
-        if ( !::ExtractIconEx(nameReal, iconIndex, &hicon, NULL, 1) )
+        if ( !::ExtractIconEx(nameReal.wx_str(), iconIndex, &hicon, NULL, 1) )
         {
             // it is not an error, but it might still be useful to be informed
             // about it optionally
         {
             // it is not an error, but it might still be useful to be informed
             // about it optionally
@@ -456,7 +451,7 @@ bool wxICOFileHandler::LoadIcon(wxIcon *icon,
               desiredHeight == ::GetSystemMetrics(SM_CYSMICON) )
     {
         // get the specified small icon from file
               desiredHeight == ::GetSystemMetrics(SM_CYSMICON) )
     {
         // get the specified small icon from file
-        if ( !::ExtractIconEx(nameReal, iconIndex, NULL, &hicon, 1) )
+        if ( !::ExtractIconEx(nameReal.wx_str(), iconIndex, NULL, &hicon, 1) )
         {
             wxLogTrace(_T("iconload"),
                        _T("No small icons found in the file '%s'."),
         {
             wxLogTrace(_T("iconload"),
                        _T("No small icons found in the file '%s'."),
@@ -469,7 +464,7 @@ bool wxICOFileHandler::LoadIcon(wxIcon *icon,
     if ( !hicon )
     {
         // take any size icon from the file by index
     if ( !hicon )
     {
         // take any size icon from the file by index
-        hicon = ::ExtractIcon(wxGetInstance(), nameReal, iconIndex);
+        hicon = ::ExtractIcon(wxGetInstance(), nameReal.wx_str(), iconIndex);
     }
 #endif
 
     }
 #endif
 
@@ -523,13 +518,13 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon,
     // some icon rescaling internally which results in very ugly 16x16 icons
     if ( hasSize )
     {
     // some icon rescaling internally which results in very ugly 16x16 icons
     if ( hasSize )
     {
-        hicon = (HICON)::LoadImage(wxGetInstance(), name, IMAGE_ICON,
+        hicon = (HICON)::LoadImage(wxGetInstance(), name.wx_str(), IMAGE_ICON,
                                     desiredWidth, desiredHeight,
                                     LR_DEFAULTCOLOR);
     }
     else
     {
                                     desiredWidth, desiredHeight,
                                     LR_DEFAULTCOLOR);
     }
     else
     {
-        hicon = ::LoadIcon(wxGetInstance(), name);
+        hicon = ::LoadIcon(wxGetInstance(), name.wx_str());
     }
 
     // next check if it's not a standard icon
     }
 
     // next check if it's not a standard icon
@@ -570,14 +565,12 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon,
 // private functions
 // ----------------------------------------------------------------------------
 
 // private functions
 // ----------------------------------------------------------------------------
 
-wxSize wxGetHiconSize(HICON hicon)
+wxSize wxGetHiconSize(HICON WXUNUSED_IN_WINCE(hicon))
 {
 {
-    // default icon size on this hardware
-    // usually 32x32 but can be other (smaller) on pocket devices
-    wxSize size(::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON));
+    wxSize size;
 
 #ifndef __WXWINCE__
 
 #ifndef __WXWINCE__
-    if ( hicon && wxGetOsVersion() != wxWIN32S )
+    if ( hicon )
     {
         ICONINFO info;
         if ( !::GetIconInfo(hicon, &info) )
     {
         ICONINFO info;
         if ( !::GetIconInfo(hicon, &info) )
@@ -601,11 +594,16 @@ wxSize wxGetHiconSize(HICON hicon)
                 ::DeleteObject(info.hbmColor);
         }
     }
                 ::DeleteObject(info.hbmColor);
         }
     }
-#else
-    wxUnusedVar(hicon);
-#endif
+
+    if ( !size.x )
+#endif // !__WXWINCE__
+    {
+        // use default icon size on this hardware
+        size.x = ::GetSystemMetrics(SM_CXICON);
+        size.y = ::GetSystemMetrics(SM_CYICON);
+    }
+
     return size;
 }
 
 #endif // __WXMICROWIN__
     return size;
 }
 
 #endif // __WXMICROWIN__
-