]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/wince/missing.h
Get SetLabel working again for wxStaticText by overriding SetLabel so that we can...
[wxWidgets.git] / include / wx / msw / wince / missing.h
index 7c4ca560d0f020051bb6acd23df8e4c374caccf7..4e50b0d87df3be7e6ee0c88de36c09dc3dec3857 100644 (file)
@@ -1,10 +1,10 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        wince/missing.h
-// Purpose:     Missing things in WinCE 3.0
+// Purpose:     Missing things in WinCE
 // Author:      Marco Cavallini
 // Modified by:
 // Created:     16/11/2002
-// RCS-ID:      
+// RCS-ID:      $Id$
 // Copyright:   (c) KOAN SAS ( www.koansoftware.com )
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 #ifndef _WX_CE_MISSING_H_
 #define _WX_CE_MISSING_H_
 
-inline BOOL IsIconic( HWND hWnd )
+#include "wx/msw/private.h"
+#include "shellapi.h"
+
+inline BOOL IsIconic( HWND WXUNUSED(hWnd) )
 {
     // Probably not right...
 #if 0
@@ -22,149 +25,116 @@ inline BOOL IsIconic( HWND hWnd )
     return FALSE;
 }
 
-#ifdef WIN32_PLATFORM_PSPC
+#ifdef __POCKETPC__
 #define SM_CXCURSOR             13
 #define SM_CYCURSOR             14
 #endif
 
-/*
-Most of these are in MSVC++6.0   <wx\wince\winuser.h>
-see also                         <wx\msw\gnuwin32\winresrc.h>
-*/
+// Missing from eVC 4 for some reason
+#ifndef I_IMAGENONE
+#define I_IMAGENONE (-2)
+#endif
 
-// ----------------------------------------------------------------------------
-// Used in msgdlg.cpp, evtloop.cpp
-// ----------------------------------------------------------------------------
+#ifndef TBSTYLE_NO_DROPDOWN_ARROW
+#define TBSTYLE_NO_DROPDOWN_ARROW 0x0080
+#endif
+
+#ifndef SHCMBM_GETMENU
+#define SHCMBM_GETMENU      (WM_USER + 402)
+#endif
+
+#ifndef SHCMBM_SETSUBMENU
+#define SHCMBM_SETSUBMENU   (WM_USER + 400) // wparam == id of button, lParam == hmenu, return is old hmenu
+#endif
+
+#ifndef SHCMBM_GETSUBMENU
+#define SHCMBM_GETSUBMENU   (WM_USER + 401) // lParam == ID
+#endif
+
+#ifndef LVS_EX_FULLROWSELECT
+    #define LVS_EX_FULLROWSELECT 0x00000020
+#endif
+
+#ifndef TVS_FULLROWSELECT
+    #define TVS_FULLROWSELECT       0x1000
+#endif
+
+#ifndef TVM_SETBKCOLOR
+    #define TVM_SETBKCOLOR          (TV_FIRST + 29)
+    #define TVM_SETTEXTCOLOR        (TV_FIRST + 30)
+#endif
 
+// Used in msgdlg.cpp, evtloop.cpp
 #ifndef MB_TASKMODAL
 #define MB_TASKMODAL 0x2000
 #endif
 
-////////////////////////////////////////////////////////
+#ifndef HGDI_ERROR
+#define HGDI_ERROR ((HANDLE)(0xFFFFFFFFL))
+#endif
 
-// JACS: I've commented these out in order to start from
-// scratch. I don't think we should simply add styles,
-// classes etc. when we don't know if they're supported
-// by WinCE libraries.
+// some windows styles don't exist in CE SDK, replace them with closest
+// equivalents
+#ifndef WS_THICKFRAME
+    #define WS_THICKFRAME WS_BORDER
+#endif
+
+#ifndef WS_MINIMIZE
+    #define WS_MINIMIZE 0
+#endif
+
+#ifndef WS_MAXIMIZE
+    #define WS_MAXIMIZE 0
+#endif
 
-#if 0
 
-/*
- * Extended Window Styles
- */
-#define WS_EX_DLGMODALFRAME     0x00000001L
-#define WS_EX_NOPARENTNOTIFY    0x00000004L
-#define WS_EX_TOPMOST           0x00000008L
-#define WS_EX_ACCEPTFILES       0x00000010L
-#define WS_EX_TRANSPARENT       0x00000020L
-
-#define WS_EX_MDICHILD          0x00000040L
-#define WS_EX_TOOLWINDOW        0x00000080L
-#define WS_EX_WINDOWEDGE        0x00000100L
-#define WS_EX_CLIENTEDGE        0x00000200L
-#define WS_EX_CONTEXTHELP       0x00000400L
-
-#define WS_EX_RIGHT             0x00001000L
-#define WS_EX_LEFT              0x00000000L
-#define WS_EX_RTLREADING        0x00002000L
-#define WS_EX_LTRREADING        0x00000000L
-#define WS_EX_LEFTSCROLLBAR     0x00004000L
-#define WS_EX_RIGHTSCROLLBAR    0x00000000L
-
-#define WS_EX_CONTROLPARENT     0x00010000L
-#define WS_EX_STATICEDGE        0x00020000L
-#define WS_EX_APPWINDOW         0x00040000L
-
-
-#define WS_EX_OVERLAPPEDWINDOW  (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
-#define WS_EX_PALETTEWINDOW     (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)
-
-
-/*
- * Flags for TrackPopupMenu
- */
-#define TPM_LEFTBUTTON  0x0000L
-#define TPM_RIGHTBUTTON 0x0002L
-#define TPM_LEFTALIGN   0x0000L
-#define TPM_CENTERALIGN 0x0004L
-#define TPM_RIGHTALIGN  0x0008L
-
-#define TPM_TOPALIGN        0x0000L
-#define TPM_VCENTERALIGN    0x0010L
-#define TPM_BOTTOMALIGN     0x0020L
-
-#define TPM_HORIZONTAL      0x0000L     /* Horz alignment matters more */
-#define TPM_VERTICAL        0x0040L     /* Vert alignment matters more */
-#define TPM_NONOTIFY        0x0080L     /* Don't send any notification msgs */
-#define TPM_RETURNCMD       0x0100L
-
-#define TPM_RECURSE         0x0001L
-
-
-
-////////////////////////////////////////////////////////
-// Missing declarations into WinCE include files (MCK)
-////////////////////////////////////////////////////////
-
-HCURSOR WINAPI 
-DestroyCursor(HCURSOR hCursor);
-
-HCURSOR WINAPI 
-CreateCursor(HINSTANCE hInst, 
-    int xHotSpot, 
-    int yHotSpot, 
-    int nWidth, 
-    int nHeight, 
-    CONST VOID *pvANDPlane, 
-    CONST VOID *pvXORPlane ); 
-
-////////////////////////////////////////////////////////
-
-int WINAPI
-GetScrollPos(
-    HWND hWnd,
-    int nBar);
-
-bool WINAPI
-GetScrollRange(
-    HWND hWnd,
-    int nBar,
-    LPINT lpMinPos,
-    LPINT lpMaxPos);
-
-bool WINAPI
-ScrollWindow(
-    HWND hWnd,
-    int XAmount,
-    int YAmount,
-    CONST RECT *lpRect,
-    CONST RECT *lpClipRect);
-
-LRESULT WINAPI
-CallWindowProcA(
-    WNDPROC lpPrevWndFunc,
-    HWND hWnd,
-    UINT Msg,
-    WPARAM wParam,
-    LPARAM lParam);
-
-LRESULT WINAPI
-CallWindowProcW(
-    WNDPROC lpPrevWndFunc,
-    HWND hWnd,
-    UINT Msg,
-    WPARAM wParam,
-    LPARAM lParam);
-
-#ifdef UNICODE
-#define CallWindowProc  CallWindowProcW
-#else
-#define CallWindowProc  CallWindowProcA
-#endif // !UNICODE
-
-#endif
- // 0
-
-////////////////////////////////////////////////////////
+// global memory functions don't exist under CE (good riddance, of course, but
+// the existing code still uses them in some places, so make it compile)
+//
+// update: they're defined in eVC 4 inside "#ifdef UNDER_CE" block
+#ifndef UNDER_CE
+    #define GlobalAlloc LocalAlloc
+    #define GlobalFree LocalFree
+    #define GlobalSize LocalSize
+    #define GPTR LPTR
+    #define GHND LPTR
+    #define GMEM_MOVEABLE 0
+    #define GMEM_SHARE 0
+#endif // !UNDER_CE
+
+// WinCE RTL doesn't implement bsearch() used in encconv.cpp
+extern "C" void *
+bsearch(const void *key, const void *base, size_t num, size_t size,
+        int (wxCMPFUNC_CONV *cmp)(const void *, const void *));
+
+#define O_RDONLY       0x0000  /* open for reading only */
+#define O_WRONLY       0x0001  /* open for writing only */
+#define O_RDWR         0x0002  /* open for reading and writing */
+#define O_APPEND       0x0008  /* writes done at eof */
+
+#define O_CREAT        0x0100  /* create and open file */
+#define O_TRUNC        0x0200  /* open and truncate */
+#define O_EXCL         0x0400  /* open only if file doesn't already exist */
+
+#define O_TEXT         0x4000  /* file mode is text (translated) */
+#define O_BINARY       0x8000  /* file mode is binary (untranslated) */
+
+#ifndef SS_SUNKEN
+    #define SS_SUNKEN 0x00001000L
+#endif
+
+// unsupported flags for WINDOWPOS structure
+#ifndef SWP_NOCOPYBITS
+    #define SWP_NOCOPYBITS 0
+#endif
+
+#ifndef SWP_NOOWNERZORDER
+    #define SWP_NOOWNERZORDER 0
+#endif
+
+#ifndef SWP_NOSENDCHANGING
+    #define SWP_NOSENDCHANGING 0
+#endif
 
 #endif // _WX_CE_MISSING_H_
+