]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/gdiimage.cpp
delay setting the window shape until it is realized (slightly modified patch 1935497)
[wxWidgets.git] / src / os2 / gdiimage.cpp
index 1c134658804378a8fbe37f1af246a694b4b6c3a0..94d7e4fb896d2e7ce2e84cfe5e3d630c0a5dfacd 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        msw/gdiimage.cpp
+// Name:        src/os2/gdiimage.cpp
 // Purpose:     wxGDIImage implementation
 // Author:      Vadim Zeitlin
 // Modified by:
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
-    #pragma implementation "gdiimage.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 
 #ifndef WX_PRECOMP
     #include "wx/string.h"
+    #include "wx/app.h"
 #endif // WX_PRECOMP
 
 #include "wx/os2/private.h"
-#include "wx/app.h"
 #include "wx/os2/gdiimage.h"
 
 #include "wx/listimpl.cpp"
-WX_DEFINE_LIST(wxGDIImageHandlerList);
+WX_DEFINE_LIST(wxGDIImageHandlerList)
 
 // ----------------------------------------------------------------------------
 // private classes
@@ -54,20 +50,20 @@ public:
     virtual bool LoadFile( wxBitmap*       pBitmap
                           ,const wxString& rName
                           ,HPS             hPs
-                          ,long            lFlags
+                          ,wxBitmapType    lFlags
                           ,int             nDesiredWidth
                           ,int             nDesiredHeight
                          );
     virtual bool SaveFile( wxBitmap*        pBitmap
                           ,const wxString&  rName
-                          ,int              lType
+                          ,wxBitmapType     lType
                           ,const wxPalette* pPalette = NULL
                          );
 
 private:
     inline virtual bool LoadFile( wxBitmap*       pBitmap
                                  ,int             nId
-                                 ,long            lFlags
+                                 ,wxBitmapType    lFlags
                                  ,int             nDesiredWidth
                                  ,int             nDesiredHeight
                                 )
@@ -93,7 +89,7 @@ public:
 
     virtual bool LoadFile( wxBitmap*       pBitmap
                           ,int             nId
-                          ,long            lFlags
+                          ,wxBitmapType    lFlags
                           ,int             nDesiredWidth
                           ,int             nDesiredHeight
                          );
@@ -107,7 +103,7 @@ class WXDLLEXPORT wxIconHandler : public wxGDIImageHandler
 public:
     wxIconHandler( const wxString& rName
                   ,const wxString& rExt
-                  ,long            lType
+                  ,wxBitmapType    lType
                  ) : wxGDIImageHandler( rName
                                        ,rExt
                                        ,lType
@@ -117,33 +113,33 @@ public:
 
     // creating and saving icons is not supported
     virtual bool Create( wxGDIImage* WXUNUSED(pImage)
-                        ,void*       WXUNUSED(pData)
-                        ,long        WXUNUSED(lFlags)
+                        ,const void* WXUNUSED(pData)
+                        ,wxBitmapType WXUNUSED(lFlags)
                         ,int         WXUNUSED(nWidth)
                         ,int         WXUNUSED(nHeight)
                         ,int         WXUNUSED(nDepth) = 1
                        )
     {
-        return(FALSE);
+        return false;
     }
 
-    virtual bool Save( wxGDIImage*     WXUNUSED(pImage)
-                      ,const wxString& WXUNUSED(rName)
-                      ,int             WXUNUSED(nType)
-                     )
+    virtual bool Save( const wxGDIImage* WXUNUSED(pImage)
+                      ,const wxString&   WXUNUSED(rName)
+                      ,wxBitmapType      WXUNUSED(nType)
+                     ) const
     {
-        return(FALSE);
+        return false;
     }
     virtual bool Load( wxGDIImage*     pImage
                       ,const wxString& rName
                       ,HPS             hPs
-                      ,long            lFlags
+                      ,wxBitmapType    lFlags
                       ,int             nDesiredWidth
                       ,int             nDesiredHeight
                      )
     {
         wxIcon*                     pIcon = wxDynamicCast(pImage, wxIcon);
-        wxCHECK_MSG(pIcon, FALSE, _T("wxIconHandler only works with icons"));
+        wxCHECK_MSG(pIcon, false, _T("wxIconHandler only works with icons"));
 
         return LoadIcon( pIcon
                         ,rName
@@ -158,19 +154,18 @@ protected:
     virtual bool LoadIcon( wxIcon*         pIcon
                           ,const wxString& rName
                           ,HPS             hPs
-                          ,long            lFlags
+                          ,wxBitmapType    lFlags
                           ,int             nDesiredWidth = -1
                           ,int             nDesiredHeight = -1
                          ) = 0;
 private:
-    inline virtual bool Load( wxGDIImage*     pImage
-                             ,int             nId
-                             ,long            lFlags
-                             ,int             nDesiredWidth
-                             ,int             nDesiredHeight
-                            )
+    inline virtual bool Load( wxGDIImage* WXUNUSED(pImage),
+                              int         WXUNUSED(nId),
+                              wxBitmapType WXUNUSED(lFlags),
+                              int         WXUNUSED(nDesiredWidth),
+                              int         WXUNUSED(nDesiredHeight) )
     {
-        return FALSE;
+        return false;
     }
 };
 
@@ -186,7 +181,7 @@ public:
     virtual bool LoadIcon( wxIcon *        pIcon
                           ,const wxString& rName
                           ,HPS             hPs
-                          ,long            lFlags
+                          ,wxBitmapType    lFlags
                           ,int             nDesiredWidth = -1
                           ,int             nDesiredHeight = -1
                          );
@@ -207,7 +202,7 @@ public:
     virtual bool LoadIcon( wxIcon*         pIcon
                           ,const wxString& rName
                           ,HPS             hPs
-                          ,long            lFlags
+                          ,wxBitmapType    lFlags
                           ,int             nDesiredWidth = -1
                           ,int             nDesiredHeight = -1
                          );
@@ -220,12 +215,10 @@ private:
 // wxWin macros
 // ----------------------------------------------------------------------------
 
-#if !USE_SHARED_LIBRARIES
-    IMPLEMENT_DYNAMIC_CLASS(wxBMPFileHandler, wxBitmapHandler)
-    IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler)
-    IMPLEMENT_DYNAMIC_CLASS(wxICOFileHandler, wxObject)
-    IMPLEMENT_DYNAMIC_CLASS(wxICOResourceHandler, wxObject)
-#endif
+IMPLEMENT_DYNAMIC_CLASS(wxBMPFileHandler, wxBitmapHandler)
+IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler)
+IMPLEMENT_DYNAMIC_CLASS(wxICOFileHandler, wxObject)
+IMPLEMENT_DYNAMIC_CLASS(wxICOResourceHandler, wxObject)
 
 // ============================================================================
 // implementation
@@ -237,9 +230,7 @@ wxGDIImageHandlerList wxGDIImage::ms_handlers;
 // wxGDIImage functions forwarded to wxGDIImageRefData
 // ----------------------------------------------------------------------------
 
-bool wxGDIImage::FreeResource(
-  bool                              WXUNUSED(bForce)
-)
+bool wxGDIImage::FreeResource( bool WXUNUSED(bForce) )
 {
     if ( !IsNull() )
     {
@@ -247,10 +238,10 @@ bool wxGDIImage::FreeResource(
         GetGDIImageData()->m_hHandle = 0;
     }
 
-    return(TRUE);
+    return true;
 }
 
-WXHANDLE wxGDIImage::GetResourceHandle()
+WXHANDLE wxGDIImage::GetResourceHandle() const
 {
     return GetHandle();
 }
@@ -259,33 +250,27 @@ WXHANDLE wxGDIImage::GetResourceHandle()
 // wxGDIImage handler stuff
 // ----------------------------------------------------------------------------
 
-void wxGDIImage::AddHandler(
-  wxGDIImageHandler*                pHandler
-)
+void wxGDIImage::AddHandler( wxGDIImageHandler* pHandler )
 {
     ms_handlers.Append(pHandler);
 }
 
-void wxGDIImage::InsertHandler(
-  wxGDIImageHandler*                pHandler
-)
+void wxGDIImage::InsertHandler( wxGDIImageHandler* pHandler )
 {
     ms_handlers.Insert(pHandler);
 }
 
-bool wxGDIImage::RemoveHandler(
-  const wxString&                   rName
-)
+bool wxGDIImage::RemoveHandler( const wxString& rName )
 {
     wxGDIImageHandler*              pHandler = FindHandler(rName);
 
     if (pHandler)
     {
         ms_handlers.DeleteObject(pHandler);
-        return(TRUE);
+        return true;
     }
     else
-        return(FALSE);
+        return false;
 }
 
 wxGDIImageHandler* wxGDIImage::FindHandler(
@@ -307,7 +292,7 @@ wxGDIImageHandler* wxGDIImage::FindHandler(
 
 wxGDIImageHandler* wxGDIImage::FindHandler(
   const wxString&                   rExtension
-, long                              lType
+, wxBitmapType                      lType
 )
 {
     wxGDIImageHandlerList::compatibility_iterator   pNode = ms_handlers.GetFirst();
@@ -315,7 +300,7 @@ wxGDIImageHandler* wxGDIImage::FindHandler(
     {
         wxGDIImageHandler*          pHandler = pNode->GetData();
 
-        if ( (pHandler->GetExtension() = rExtension) &&
+        if ( (pHandler->GetExtension() == rExtension) &&
              (lType == -1 || pHandler->GetType() == lType) )
         {
             return pHandler;
@@ -326,7 +311,7 @@ wxGDIImageHandler* wxGDIImage::FindHandler(
 }
 
 wxGDIImageHandler* wxGDIImage::FindHandler(
-  long                              lType
+  wxBitmapType                           lType
 )
 {
     wxGDIImageHandlerList::compatibility_iterator   pNode = ms_handlers.GetFirst();
@@ -369,13 +354,11 @@ void wxGDIImage::InitStandardHandlers()
 // wxBitmap handlers
 // ----------------------------------------------------------------------------
 
-bool wxBMPResourceHandler::LoadFile(
-  wxBitmap*                         pBitmap
-, int                               nId
-, long                              lFlags
-, int                               nDesiredWidth
-, int                               nDesiredHeight
-)
+bool wxBMPResourceHandler::LoadFile( wxBitmap* pBitmap,
+                                     int       nId,
+                                     wxBitmapType WXUNUSED(lFlags),
+                                     int       WXUNUSED(nDesiredWidth),
+                                     int       WXUNUSED(nDesiredHeight) )
 {
     SIZEL                               vSize = {0, 0};
     DEVOPENSTRUC                        vDop  = {0L, "DISPLAY", NULL, 0L, 0L, 0L, 0L, 0L, 0L};
@@ -405,22 +388,20 @@ bool wxBMPResourceHandler::LoadFile(
     return(pBitmap->Ok());
 } // end of wxBMPResourceHandler::LoadFile
 
-bool wxBMPFileHandler::LoadFile(
-  wxBitmap*                         pBitmap
-, const wxString&                   rName
-, HPS                               hPs
-, long                              WXUNUSED(lFlags)
-, int                               WXUNUSED(nDesiredWidth)
-, int                               WXUNUSED(nDesiredHeight)
-)
+bool wxBMPFileHandler::LoadFile( wxBitmap*       pBitmap,
+                                 const wxString& WXUNUSED(rName),
+                                 HPS             WXUNUSED(hPs),
+                                 wxBitmapType    WXUNUSED(lFlags),
+                                 int             WXUNUSED(nDesiredWidth),
+                                 int             WXUNUSED(nDesiredHeight) )
 {
-#if wxUSE_IMAGE_LOADING_IN_OS2
-    wxPalette*                      pPalette = NULL;
+#if defined(wxUSE_IMAGE_LOADING_IN_OS2) && wxUSE_IMAGE_LOADING_IN_OS2
+    wxPalette* pPalette = NULL;
 
-    bool                            bSuccess = FALSE; /* wxLoadIntoBitmap( WXSTRINGCAST rName
-                                                                ,pBitmap
-                                                                ,&pPalette
-                                                               ) != 0; */
+    bool bSuccess = false; /* wxLoadIntoBitmap( WXSTRINGCAST rName
+                                               ,pBitmap
+                                               ,&pPalette
+                                              ) != 0; */
     if (bSuccess && pPalette)
     {
         pBitmap->SetPalette(*pPalette);
@@ -431,19 +412,18 @@ bool wxBMPFileHandler::LoadFile(
 
     return(bSuccess);
 #else
-    return(FALSE);
+    wxUnusedVar(pBitmap);
+    return false;
 #endif
 }
 
-bool wxBMPFileHandler::SaveFile(
-  wxBitmap*                         pBitmap
-, const wxString&                   rName
-, int                               WXUNUSED(nType)
-, const wxPalette*                  pPal
-)
+bool wxBMPFileHandler::SaveFile( wxBitmap*        pBitmap,
+                                 const wxString&  WXUNUSED(rName),
+                                 wxBitmapType     WXUNUSED(nType),
+                                 const wxPalette* pPal )
 {
-#if wxUSE_IMAGE_LOADING_IN_OS2
-    wxPalette*                      pActualPalette = (wxPalette *)pPal;
+#if defined(wxUSE_IMAGE_LOADING_IN_OS2) && wxUSE_IMAGE_LOADING_IN_OS2
+    wxPalette* pActualPalette = (wxPalette *)pPal;
 
     if (!pActualPalette)
         pActualPalette = pBitmap->GetPalette();
@@ -451,9 +431,11 @@ bool wxBMPFileHandler::SaveFile(
                         ,pBitmap
                         ,pActualPalette
                        ) != 0); */
-    return(FALSE);
+    return false;
 #else
-    return(FALSE);
+    wxUnusedVar(pBitmap);
+    wxUnusedVar(pPal);
+    return false;
 #endif
 }
 
@@ -461,47 +443,39 @@ bool wxBMPFileHandler::SaveFile(
 // wxIcon handlers
 // ----------------------------------------------------------------------------
 
-bool wxICOFileHandler::LoadIcon(
-  wxIcon*                           pIcon
-, const wxString&                   rName
-, HPS                               hPs
-, long                              lFlags
-, int                               nDesiredWidth
-, int                               nDesiredHeight
-)
+bool wxICOFileHandler::LoadIcon( wxIcon*         pIcon,
+                                 const wxString& WXUNUSED(rName),
+                                 HPS             WXUNUSED(hPs),
+                                 wxBitmapType    WXUNUSED(lFlags),
+                                 int             WXUNUSED(nDesiredWidth),
+                                 int             WXUNUSED(nDesiredHeight) )
 {
-#if wxUSE_RESOURCE_LOADING_IN_OS2
+#if defined(wxUSE_RESOURCE_LOADING_IN_OS2) && wxUSE_RESOURCE_LOADING_IN_OS2
     pIcon->UnRef();
 
-    // actual size
-    wxSize                          vSize;
-
-    return(FALSE);
+    return false;
 #else
-    return(FALSE);
+    wxUnusedVar(pIcon);
+    return false;
 #endif
 }
 
-bool wxICOResourceHandler::LoadIcon(
-  wxIcon*                           pIcon
-, const wxString&                   rName
-, HPS                               hPs
-, long                              lFlags
-, int                               WXUNUSED(nDesiredWidth)
-, int                               WXUNUSED(nDesiredHeight)
-)
+bool wxICOResourceHandler::LoadIcon( wxIcon*         pIcon,
+                                     const wxString& rName,
+                                     HPS             WXUNUSED(hPs),
+                                     wxBitmapType    WXUNUSED(lFlags),
+                                     int             WXUNUSED(nDesiredWidth),
+                                     int             WXUNUSED(nDesiredHeight) )
 {
     HPOINTER                        hIcon;
 
-    hIcon = ::WinLoadFileIcon( (PSZ)rName.c_str()
+    hIcon = ::WinLoadFileIcon( rName.c_str()
                               ,TRUE // load for private use
                              );
 
     pIcon->SetSize(32, 32); // all OS/2 icons are 32 x 32
 
-
     pIcon->SetHICON((WXHICON)hIcon);
 
     return pIcon->Ok();
 } // end of wxICOResourceHandler::LoadIcon
-