]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/wince/missing.h
added stock buttons support
[wxWidgets.git] / include / wx / msw / wince / missing.h
index e0b2286e35fdb6a2d577a1fb277453852db9a7ea..50eff7a464b4263ebfff55316e3105ce5c421308 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Marco Cavallini
 // Modified by:
 // Created:     16/11/2002
-// RCS-ID:      
+// RCS-ID:
 // Copyright:   (c) KOAN SAS ( www.koansoftware.com )
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -15,7 +15,7 @@
 #include "wx/msw/private.h"
 #include "shellapi.h"
 
-inline BOOL IsIconic( HWND hWnd )
+inline BOOL IsIconic( HWND WXUNUSED(hWnd) )
 {
     // Probably not right...
 #if 0
@@ -25,7 +25,7 @@ inline BOOL IsIconic( HWND hWnd )
     return FALSE;
 }
 
-#ifdef WIN32_PLATFORM_PSPC
+#ifdef __POCKETPC__
 #define SM_CXCURSOR             13
 #define SM_CYCURSOR             14
 #endif
@@ -39,8 +39,11 @@ inline BOOL IsIconic( HWND hWnd )
 #define TBSTYLE_NO_DROPDOWN_ARROW 0x0080
 #endif
 
-#if _WIN32_WCE >= 400
+#if _WIN32_WCE >= 400 && !defined(SHCMBM_GETMENU)
+
 // aygshell.h missing from eVC 4 for some reason
+// NB not missing from Pocket PC 2003, hence the test for SHCMBM_GETMENU
+
 #define SHCMBM_GETMENU      (WM_USER + 402)
 #define SHCMBM_SETSUBMENU   (WM_USER + 400) // wparam == id of button, lParam == hmenu, return is old hmenu
 #define SHCMBM_GETSUBMENU   (WM_USER + 401) // lParam == ID
@@ -63,168 +66,67 @@ inline BOOL IsIconic( HWND hWnd )
 typedef struct tagSHMENUBARINFO
 {
     DWORD cbSize;               // IN  - Indicates which members of struct are valid
-       HWND hwndParent;            // IN
+    HWND hwndParent;            // IN
     DWORD dwFlags;              // IN  - Some features we want
     UINT nToolBarId;            // IN  - Which toolbar are we using
     HINSTANCE hInstRes;         // IN  - Instance that owns the resources
     int nBmpId;
     int cBmpImages;             // IN  - Count of bitmap images
-       HWND hwndMB;                // OUT
+    HWND hwndMB;                // OUT
     COLORREF clrBk;             // IN  - background color of the menu bar (excluding sip)
 } SHMENUBARINFO, *PSHMENUBARINFO;
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-BOOL SHFullScreen(HWND hwndRequester, DWORD dwState);
-
-WINSHELLAPI BOOL  SHCreateMenuBar(SHMENUBARINFO *pmbi);
+extern "C"
+{
+    BOOL SHFullScreen(HWND hwndRequester, DWORD dwState);
 
-#ifdef __cplusplus
+    WINSHELLAPI BOOL  SHCreateMenuBar(SHMENUBARINFO *pmbi);
 }
-#endif
-
-#endif
 
-/*
-Most of these are in MSVC++6.0   <wx\wince\winuser.h>
-see also                         <wx\msw\gnuwin32\winresrc.h>
-*/
+#endif // _WIN32_WCE >= 400
 
-// ----------------------------------------------------------------------------
 // Used in msgdlg.cpp, evtloop.cpp
-// ----------------------------------------------------------------------------
-
 #ifndef MB_TASKMODAL
 #define MB_TASKMODAL 0x2000
 #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.
+#ifndef HGDI_ERROR
+#define HGDI_ERROR ((HANDLE)(0xFFFFFFFFL))
+#endif
 
-#if 0
+// some windows styles don't exist in CE SDK, replace them with closest
+// equivalents
+#ifndef WS_THICKFRAME
+    #define WS_THICKFRAME WS_BORDER
+#endif
 
-/*
- * 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
+#ifndef WS_MINIMIZE
+    #define WS_MINIMIZE 0
+#endif
 
+#ifndef WS_MAXIMIZE
+    #define WS_MAXIMIZE 0
 #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 *));
 
 #endif // _WX_CE_MISSING_H_
+