X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/16ff355beecc7c166a22797ea835475b58edbcb8..9c54e4ae1f401a9c337b97b588e5a356d79cbe82:/src/os2/icon.cpp diff --git a/src/os2/icon.cpp b/src/os2/icon.cpp index fe662a13f8..afc541b13f 100644 --- a/src/os2/icon.cpp +++ b/src/os2/icon.cpp @@ -22,6 +22,7 @@ #include "wx/utils.h" #include "wx/app.h" #include "wx/icon.h" + #include "wx/log.h" #endif #include "wx/os2/private.h" @@ -50,6 +51,7 @@ void wxIconRefData::Free() // ---------------------------------------------------------------------------- wxIcon::wxIcon() +: m_bIsXpm(FALSE) { } @@ -58,6 +60,7 @@ wxIcon::wxIcon( , int WXUNUSED(nWidth) , int WXUNUSED(nHeight) ) +: m_bIsXpm(FALSE) { } @@ -67,6 +70,7 @@ wxIcon::wxIcon( , int nDesiredWidth , int nDesiredHeight ) +: m_bIsXpm(FALSE) { // // A very poor hack, but we have to have separate icon files from windows @@ -94,6 +98,11 @@ void wxIcon::CreateIconFromXpm( wxBitmap vBmp(ppData); CopyFromBitmap(vBmp); + if (GetHICON()) + { + m_bIsXpm = TRUE; + m_vXpmSrc = vBmp; + } } // end of wxIcon::CreateIconFromXpm void wxIcon::CopyFromBitmap( @@ -126,11 +135,11 @@ void wxIcon::CopyFromBitmap( HDC hDCDst = ::DevOpenDC(vHabmain, OD_MEMORY, "*", 5L, (PDEVOPENDATA)&vDop, NULLHANDLE); HPS hPSSrc = ::GpiCreatePS(vHabmain, hDCSrc, &vSize, PU_PELS | GPIA_ASSOC); HPS hPSDst = ::GpiCreatePS(vHabmain, hDCDst, &vSize, PU_PELS | GPIA_ASSOC); - POINTL vPoint[4] = { 0, 0, rBmp.GetWidth(), rBmp.GetHeight(), - 0, 0, rBmp.GetWidth(), rBmp.GetHeight() + POINTL vPoint[4] = { {0, 0}, {rBmp.GetWidth(), rBmp.GetHeight()}, + {0, 0}, {rBmp.GetWidth(), rBmp.GetHeight()} }; - POINTL vPointMask[4] = { 0, 0, rBmp.GetWidth(), rBmp.GetHeight(), - 0, 0, rBmp.GetWidth(), rBmp.GetHeight() + POINTL vPointMask[4] = { {0, 0}, {rBmp.GetWidth(), rBmp.GetHeight() * 2}, + {0, 0}, {rBmp.GetWidth(), rBmp.GetHeight()} }; POINTERINFO vIconInfo; @@ -185,7 +194,7 @@ void wxIcon::CopyFromBitmap( } vIconInfo.hbmColor = hBmp; - vHeader.cy = (ULONG)rBmp.GetHeight(); + vHeader.cy = (ULONG)rBmp.GetHeight() * 2; hBmpMask = ::GpiCreateBitmap( hPSDst ,&vHeader ,0L