2 /////////////////////////////////////////////////////////////////////////////
4 // Purpose: Extra implementation for MicroWindows
5 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
13 #ifndef _WX_MICROWIN_H_
14 #define _WX_MICROWIN_H_
16 /* Implemented by microwin.cpp */
22 BOOL
SetCursorPos(int x
, int y
);
24 HCURSOR
SetCursor(HCURSOR hCursor
);
26 /* Implemented with wrong number of args by MicroWindows */
27 /* so we need to use a different name */
28 int GetScrollPosWX (HWND hWnd
, int iSBar
);
30 BOOL
ScrollWindow(HWND
, int xAmount
, int yAmount
,
31 CONST RECT
* lpRect
, CONST RECT
* lpClipRect
);
33 HWND
WindowFromPoint(POINT pt
);
34 SHORT
GetKeyState(int nVirtKey
);
35 HWND
SetParent(HWND hWndChild
, HWND hWndNewParent
);
36 VOID
DragAcceptFiles(HWND
, BOOL
);
37 BOOL
IsDialogMessage(HWND hWnd
, MSG
* msg
);
38 DWORD
GetMessagePos(VOID
);
39 BOOL
IsIconic(HWND hWnd
);
40 int SetMapMode(HDC hDC
, int mode
);
41 int GetMapMode(HDC hDC
);
42 HCURSOR
LoadCursor(HINSTANCE hInst
, int cursor
);
43 DWORD
GetModuleFileName(HINSTANCE hInst
, LPSTR name
, DWORD sz
);
44 VOID
DestroyIcon(HICON hIcon
);
45 COLORREF
GetTextColor(HDC hdc
);
46 COLORREF
GetBkColor(HDC hdc
);
47 HPALETTE
SelectPalette(HDC hdc
, HPALETTE hPalette
, BOOL b
);
48 BOOL
IntersectClipRect(HDC hdc
, int x
, int y
,
50 BOOL
GetClipBox(HDC hdc
, RECT
* rect
);
51 BOOL
DrawIconEx(HDC hdc
, int x
, int y
, HICON hIcon
, int w
, int h
, UINT istepIfAniCur
, HBRUSH hbrFlickerFreeDraw
, UINT diFlags
);
52 BOOL
SetViewportExtEx(HDC hdc
, int x
, int y
, LPSIZE lpSize
);
53 BOOL
SetViewportOrgEx(HDC hdc
, int x
, int y
, LPPOINT lpPoint
);
54 BOOL
SetWindowExtEx(HDC hdc
, int x
, int y
, LPSIZE lpSize
);
55 BOOL
SetWindowOrgEx(HDC hdc
, int x
, int y
, LPPOINT lpSize
);
56 BOOL
ExtFloodFill(HDC hdc
, int x
, int y
, COLORREF col
, UINT flags
);
57 int SetPolyFillMode(HDC hdc
, int mode
);
58 BOOL
RoundRect(HDC hdc
, int left
, int top
, int right
, int bottom
, int r1
, int r2
);
59 BOOL
MaskBlt(HDC hdc
, int x
, int y
, int w
, int h
,
60 HDC hDCSource
, int xSrc
, int ySrc
, HBITMAP hBitmapMask
, int xMask
, int yMask
, DWORD rop
);
61 UINT
RealizePalette(HDC hDC
);
62 BOOL
SetBrushOrgEx(HDC hdc
, int xOrigin
, int yOrigin
, LPPOINT lpPoint
);
63 int GetObject(HGDIOBJ hObj
, int sz
, LPVOID logObj
);
65 /* For some reason these aren't defined in the headers */
66 BOOL
EnableScrollBar (HWND hWnd
, int iSBar
, BOOL bEnable
) ;
67 BOOL
GetScrollPos (HWND hWnd
, int iSBar
, int* pPos
);
68 BOOL
GetScrollRange (HWND hWnd
, int iSBar
, int* pMinPos
, int* pMaxPos
);
69 BOOL
SetScrollPos (HWND hWnd
, int iSBar
, int iNewPos
);
70 BOOL
SetScrollRange (HWND hWnd
, int iSBar
, int iMinPos
, int iMaxPos
);
71 BOOL
SetScrollInfo (HWND hWnd
, int iSBar
,
72 LPCSCROLLINFO lpsi
, BOOL fRedraw
);
73 BOOL
GetScrollInfo(HWND hWnd
, int iSBar
, LPSCROLLINFO lpsi
);
74 BOOL
ShowScrollBar (HWND hWnd
, int iSBar
, BOOL bShow
);
76 CreateBitmap( int width
, int height
, int nPlanes
, int bPP
, LPCVOID lpData
);
83 * Key State Masks for Mouse Messages
86 #define MK_LBUTTON 0x0001
87 #define MK_RBUTTON 0x0002
88 #define MK_SHIFT 0x0004
89 #define MK_CONTROL 0x0008
90 #define MK_MBUTTON 0x0010
98 #define DI_MASK 0x0001
99 #define DI_IMAGE 0x0002
100 #define DI_NORMAL 0x0003
101 #define DI_COMPAT 0x0004
102 #define DI_DEFAULTSIZE 0x0008
105 /* TODO: May have to fake these message */
106 #ifndef WM_INITDIALOG
107 #define WM_INITDIALOG 0x0110
109 #ifndef WM_QUERYENDSESSION
110 #define WM_QUERYENDSESSION 0x0011
112 #ifndef WM_ENDSESSION
113 #define WM_ENDSESSION 0x0016
116 #define WM_SETCURSOR 0x0020
118 #ifndef WM_GETMINMAXINFO
119 #define WM_GETMINMAXINFO 0x0024
120 typedef struct tagMINMAXINFO
{
124 POINT ptMinTrackSize
;
125 POINT ptMaxTrackSize
;
126 } MINMAXINFO
, *PMINMAXINFO
, *LPMINMAXINFO
;
129 #ifndef WM_SYSCOMMAND
130 #define WM_SYSCOMMAND 0x0112
132 #ifndef WM_SYSCOLORCHANGE
133 #define WM_SYSCOLORCHANGE 0x0015
135 #ifndef WM_QUERYNEWPALETTE
136 #define WM_QUERYNEWPALETTE 0x030F
138 #ifndef WM_PALETTEISCHANGING
139 #define WM_PALETTEISCHANGING 0x0310
141 #ifndef WM_PALETTECHANGED
142 #define WM_PALETTECHANGED 0x0311
145 #define WM_NOTIFY 0x004E
148 #define WM_DROPFILES 0x0233
152 #define PALETTERGB RGB
157 #define MM_LOMETRIC 2
158 #define MM_HIMETRIC 3
159 #define MM_LOENGLISH 4
160 #define MM_HIENGLISH 5
162 #define MM_ISOTROPIC 7
163 #define MM_ANISOTROPIC 8
167 #define SC_MINIMIZE 0xF020
168 #define SC_MAXIMIZE 0xF030
177 * Standard Cursor IDs
179 #ifndef MAKEINTRESOURCE
180 #define MAKEINTRESOURCE(r) r
184 #define IDC_ARROW MAKEINTRESOURCE(32512)
185 #define IDC_IBEAM MAKEINTRESOURCE(32513)
186 #define IDC_WAIT MAKEINTRESOURCE(32514)
187 #define IDC_CROSS MAKEINTRESOURCE(32515)
188 #define IDC_UPARROW MAKEINTRESOURCE(32516)
189 #define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */
190 #define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW */
191 #define IDC_SIZENWSE MAKEINTRESOURCE(32642)
192 #define IDC_SIZENESW MAKEINTRESOURCE(32643)
193 #define IDC_SIZEWE MAKEINTRESOURCE(32644)
194 #define IDC_SIZENS MAKEINTRESOURCE(32645)
195 #define IDC_SIZEALL MAKEINTRESOURCE(32646)
196 #define IDC_NO MAKEINTRESOURCE(32648) /* not in win3.1 */
197 #if(WINVER >= 0x0500)
198 #define IDC_HAND MAKEINTRESOURCE(32649)
199 #endif /* WINVER >= 0x0500 */
200 #define IDC_APPSTARTING MAKEINTRESOURCE(32650) /* not in win3.1 */
201 #if(WINVER >= 0x0400)
202 #define IDC_HELP MAKEINTRESOURCE(32651)
203 #endif /* WINVER >= 0x0400 */
206 /* ExtFloodFill style flags */
207 #define FLOODFILLBORDER 0
208 #define FLOODFILLSURFACE 1
210 /* PolyFill() Modes */
213 #define POLYFILL_LAST 2
215 /* Quaternary raster codes */
216 #define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore))
218 /* Device Parameters for GetDeviceCaps() */
219 #define DRIVERVERSION 0 /* Device driver version */
220 #define TECHNOLOGY 2 /* Device classification */
221 #define HORZSIZE 4 /* Horizontal size in millimeters */
222 #define VERTSIZE 6 /* Vertical size in millimeters */
224 /* Ternary raster operations */
225 /* Now defined by MicroWindows */
227 #define DSTINVERT (DWORD)0x00550009 /* dest = (NOT dest) */
228 #define WHITENESS (DWORD)0x00FF0062 /* dest = WHITE */
229 #define SRCERASE (DWORD)0x00440328 /* dest = source AND (NOT dest ) */
230 #define MERGEPAINT (DWORD)0x00BB0226 /* dest = (NOT source) OR dest */
231 #define SRCPAINT (DWORD)0x00EE0086 /* dest = source OR dest */
232 #define NOTSRCCOPY (DWORD)0x00330008 /* dest = (NOT source) */
235 #endif /* _WX_MICROWIN_H_ */