]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/wince/missing.h
Native wxControl::DoGetBestSize() implementation
[wxWidgets.git] / include / wx / msw / wince / missing.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wince/missing.h
3 // Purpose: Missing things in WinCE
4 // Author: Marco Cavallini
5 // Modified by:
6 // Created: 16/11/2002
7 // RCS-ID:
8 // Copyright: (c) KOAN SAS ( www.koansoftware.com )
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_CE_MISSING_H_
13 #define _WX_CE_MISSING_H_
14
15 #include "wx/msw/private.h"
16 #include "shellapi.h"
17
18 inline BOOL IsIconic( HWND WXUNUSED(hWnd) )
19 {
20 // Probably not right...
21 #if 0
22 long style = GetWindowLong(hWnd, GWL_STYLE);
23 return ((style & WS_MINIMIZE) == 0);
24 #endif
25 return FALSE;
26 }
27
28 #ifdef WIN32_PLATFORM_PSPC
29 #define SM_CXCURSOR 13
30 #define SM_CYCURSOR 14
31 #endif
32
33 // Missing from eVC 4 for some reason
34 #ifndef I_IMAGENONE
35 #define I_IMAGENONE (-2)
36 #endif
37
38 #ifndef TBSTYLE_NO_DROPDOWN_ARROW
39 #define TBSTYLE_NO_DROPDOWN_ARROW 0x0080
40 #endif
41
42 #if _WIN32_WCE >= 400 && !defined(SHCMBM_GETMENU)
43
44 // aygshell.h missing from eVC 4 for some reason
45 // NB not missing from Pocket PC 2003, hence the test for SHCMBM_GETMENU
46
47 #define SHCMBM_GETMENU (WM_USER + 402)
48 #define SHCMBM_SETSUBMENU (WM_USER + 400) // wparam == id of button, lParam == hmenu, return is old hmenu
49 #define SHCMBM_GETSUBMENU (WM_USER + 401) // lParam == ID
50 #define SHCMBM_GETMENU (WM_USER + 402) // get the owning hmenu (as specified in the load resource)
51
52 #define SHIDIF_DONEBUTTON 0x0001
53 #define SHIDIF_SIZEDLG 0x0002
54 #define SHIDIF_SIZEDLGFULLSCREEN 0x0004
55 #define SHIDIF_SIPDOWN 0x0008
56 #define SHIDIF_FULLSCREENNOMENUBAR 0x0010
57 #define SHIDIF_EMPTYMENU 0x0020
58
59 #define SHFS_SHOWTASKBAR 0x0001
60 #define SHFS_HIDETASKBAR 0x0002
61 #define SHFS_SHOWSIPBUTTON 0x0004
62 #define SHFS_HIDESIPBUTTON 0x0008
63 #define SHFS_SHOWSTARTICON 0x0010
64 #define SHFS_HIDESTARTICON 0x0020
65
66 typedef struct tagSHMENUBARINFO
67 {
68 DWORD cbSize; // IN - Indicates which members of struct are valid
69 HWND hwndParent; // IN
70 DWORD dwFlags; // IN - Some features we want
71 UINT nToolBarId; // IN - Which toolbar are we using
72 HINSTANCE hInstRes; // IN - Instance that owns the resources
73 int nBmpId;
74 int cBmpImages; // IN - Count of bitmap images
75 HWND hwndMB; // OUT
76 COLORREF clrBk; // IN - background color of the menu bar (excluding sip)
77 } SHMENUBARINFO, *PSHMENUBARINFO;
78
79 extern "C"
80 {
81 BOOL SHFullScreen(HWND hwndRequester, DWORD dwState);
82
83 WINSHELLAPI BOOL SHCreateMenuBar(SHMENUBARINFO *pmbi);
84 }
85
86 #endif // _WIN32_WCE >= 400
87
88 // Used in msgdlg.cpp, evtloop.cpp
89 #ifndef MB_TASKMODAL
90 #define MB_TASKMODAL 0x2000
91 #endif
92
93 #ifndef HGDI_ERROR
94 #define HGDI_ERROR ((HANDLE)(0xFFFFFFFFL))
95 #endif
96
97 // some windows styles don't exist in CE SDK, replace them with closest
98 // equivalents
99 #ifndef WS_THICKFRAME
100 #define WS_THICKFRAME WS_BORDER
101 #endif
102
103 #ifndef WS_MINIMIZE
104 #define WS_MINIMIZE 0
105 #endif
106
107 #ifndef WS_MAXIMIZE
108 #define WS_MAXIMIZE 0
109 #endif
110
111
112 // global memory functions don't exist under CE (good riddance, of course, but
113 // the existing code still uses them in some places, so make it compile)
114 //
115 // update: they're defined in eVC 4 inside "#ifdef UNDER_CE" block
116 #ifndef UNDER_CE
117 #define GlobalAlloc LocalAlloc
118 #define GlobalFree LocalFree
119 #define GlobalSize LocalSize
120 #define GPTR LPTR
121 #define GHND LPTR
122 #define GMEM_MOVEABLE 0
123 #define GMEM_SHARE 0
124 #endif // !UNDER_CE
125
126 // WinCE RTL doesn't implement bsearch() used in encconv.cpp
127 extern "C" void *
128 bsearch(const void *key, const void *base, size_t num, size_t size,
129 int (wxCMPFUNC_CONV *cmp)(const void *, const void *));
130
131 #endif // _WX_CE_MISSING_H_
132