]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dibutils.cpp
*** empty log message ***
[wxWidgets.git] / src / msw / dibutils.cpp
index 10a61b9249bf8b2e89688567c38447fcbca6bdae..c14fc71762bf013ab4d4d885da6027e5cdc3d17d 100644 (file)
 
 #include "wx/msw/dibutils.h"
 
 
 #include "wx/msw/dibutils.h"
 
+#ifdef __WXWINE__
+  #include <module.h>
+#endif
+
 #if defined(__WIN32__)
 #if !defined(__MWERKS__) && !defined(__SALFORDC__)
     #include <memory.h>             // for _fmemcpy()
 #if defined(__WIN32__)
 #if !defined(__MWERKS__) && !defined(__SALFORDC__)
     #include <memory.h>             // for _fmemcpy()
@@ -78,7 +82,7 @@ void ClearSystemPalette(void)
   BOOL bOK = FALSE;
   int  nOK = 0;
   
   BOOL bOK = FALSE;
   int  nOK = 0;
   
-  //*** Reset everything in the system palette to black
+  // *** Reset everything in the system palette to black
   for(Counter = 0; Counter < 256; Counter++)
   {
     Palette.aEntries[Counter].peRed = 0;
   for(Counter = 0; Counter < 256; Counter++)
   {
     Palette.aEntries[Counter].peRed = 0;
@@ -87,8 +91,12 @@ void ClearSystemPalette(void)
     Palette.aEntries[Counter].peFlags = PC_NOCOLLAPSE;
   }
 
     Palette.aEntries[Counter].peFlags = PC_NOCOLLAPSE;
   }
 
-  //*** Create, select, realize, deselect, and delete the palette
+  // *** Create, select, realize, deselect, and delete the palette
+#ifdef __WXWINE__
+  ScreenDC = GetDC((HWND)NULL);
+#else
   ScreenDC = GetDC(NULL);
   ScreenDC = GetDC(NULL);
+#endif
   ScreenPalette = CreatePalette((LOGPALETTE *)&Palette);
 
   if (ScreenPalette)
   ScreenPalette = CreatePalette((LOGPALETTE *)&Palette);
 
   if (ScreenPalette)
@@ -99,7 +107,11 @@ void ClearSystemPalette(void)
     bOK = DeleteObject(ScreenPalette);
   }
 
     bOK = DeleteObject(ScreenPalette);
   }
 
+#ifdef __WXWINE__
+  nOK = ReleaseDC((HWND)NULL, ScreenDC);
+#else
   nOK = ReleaseDC(NULL, ScreenDC);
   nOK = ReleaseDC(NULL, ScreenDC);
+#endif
 
   return;
 }
 
   return;
 }
@@ -113,12 +125,12 @@ void ClearSystemPalette(void)
  *   bits....
  */
 
  *   bits....
  */
 
-int DibWriteFile(LPSTR szFile, LPBITMAPINFOHEADER lpbi)
+int DibWriteFile(LPTSTR szFile, LPBITMAPINFOHEADER lpbi)
 {
    HFILE               fh;
    OFSTRUCT            of;
 
 {
    HFILE               fh;
    OFSTRUCT            of;
 
-   fh = OpenFile(szFile, &of, OF_WRITE | OF_CREATE);
+   fh = OpenFile(wxConvFile.cWX2MB(szFile), &of, OF_WRITE | OF_CREATE);
 
   if (!fh) {
 //   printf("la regamos0");
 
   if (!fh) {
 //   printf("la regamos0");
@@ -154,7 +166,7 @@ int DibWriteFile(LPSTR szFile, LPBITMAPINFOHEADER lpbi)
   return 1;
 }
 
   return 1;
 }
 
-PDIB DibOpenFile(LPSTR szFile)
+PDIB DibOpenFile(LPTSTR szFile)
 {
    HFILE               fh;
    DWORD               dwLen;
 {
    HFILE               fh;
    DWORD               dwLen;
@@ -169,7 +181,7 @@ PDIB DibOpenFile(LPSTR szFile)
    #define GetCurrentInstance()    (HINSTANCE)SELECTOROF((LPVOID)&of)
 #endif
 
    #define GetCurrentInstance()    (HINSTANCE)SELECTOROF((LPVOID)&of)
 #endif
 
-   fh = OpenFile(szFile, &of, OF_READ);
+   fh = OpenFile(wxConvFile.cWX2MB(szFile), &of, OF_READ);
 
    if (fh == -1)
    {
 
    if (fh == -1)
    {
@@ -178,6 +190,8 @@ PDIB DibOpenFile(LPSTR szFile)
           // TODO: Unicode version
 #ifdef __WIN16__
       h = FindResource(GetCurrentInstance(), szFile, RT_BITMAP);
           // TODO: Unicode version
 #ifdef __WIN16__
       h = FindResource(GetCurrentInstance(), szFile, RT_BITMAP);
+#elif wxUSE_UNICODE
+      h = FindResourceW(GetCurrentInstance(), szFile, RT_BITMAP);
 #else
       h = FindResourceA(GetCurrentInstance(), szFile, RT_BITMAP);
 #endif
 #else
       h = FindResourceA(GetCurrentInstance(), szFile, RT_BITMAP);
 #endif