]> git.saurik.com Git - wxWidgets.git/blame - include/wx/msw/microwin.h
native wxBitmapComboBox implementation for MSW (patch 1941399)
[wxWidgets.git] / include / wx / msw / microwin.h
CommitLineData
04ef50df
JS
1/*
2/////////////////////////////////////////////////////////////////////////////
3// Name: microwin.h
4// Purpose: Extra implementation for MicroWindows
5// Author: Julian Smart
6// Created: 2001-05-31
7// RCS-ID: $Id$
8// Copyright: (c) Julian Smart
65571936 9// Licence: wxWindows licence
04ef50df
JS
10/////////////////////////////////////////////////////////////////////////////
11*/
12
13#ifndef _WX_MICROWIN_H_
14#define _WX_MICROWIN_H_
15
04ef50df
JS
16/* Implemented by microwin.cpp */
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22BOOL SetCursorPos(int x, int y);
23
24HCURSOR SetCursor(HCURSOR hCursor);
25
26/* Implemented with wrong number of args by MicroWindows */
27/* so we need to use a different name */
28int GetScrollPosWX (HWND hWnd, int iSBar);
29
30BOOL ScrollWindow(HWND, int xAmount, int yAmount,
598ddd96 31 CONST RECT* lpRect, CONST RECT* lpClipRect);
04ef50df
JS
32
33HWND WindowFromPoint(POINT pt);
34SHORT GetKeyState(int nVirtKey);
35HWND SetParent(HWND hWndChild, HWND hWndNewParent);
36VOID DragAcceptFiles(HWND, BOOL);
37BOOL IsDialogMessage(HWND hWnd, MSG* msg);
38DWORD GetMessagePos(VOID);
39BOOL IsIconic(HWND hWnd);
40int SetMapMode(HDC hDC, int mode);
41int GetMapMode(HDC hDC);
42HCURSOR LoadCursor(HINSTANCE hInst, int cursor);
43DWORD GetModuleFileName(HINSTANCE hInst, LPSTR name, DWORD sz);
44VOID DestroyIcon(HICON hIcon);
45COLORREF GetTextColor(HDC hdc);
46COLORREF GetBkColor(HDC hdc);
47HPALETTE SelectPalette(HDC hdc, HPALETTE hPalette, BOOL b);
48BOOL IntersectClipRect(HDC hdc, int x, int y,
598ddd96 49 int w, int h);
04ef50df
JS
50BOOL GetClipBox(HDC hdc, RECT* rect);
51BOOL DrawIconEx(HDC hdc, int x, int y, HICON hIcon, int w, int h, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags);
52BOOL SetViewportExtEx(HDC hdc, int x, int y, LPSIZE lpSize);
53BOOL SetViewportOrgEx(HDC hdc, int x, int y, LPPOINT lpPoint);
54BOOL SetWindowExtEx(HDC hdc, int x, int y, LPSIZE lpSize);
55BOOL SetWindowOrgEx(HDC hdc, int x, int y, LPPOINT lpSize);
56BOOL ExtFloodFill(HDC hdc, int x, int y, COLORREF col, UINT flags);
57int SetPolyFillMode(HDC hdc, int mode);
58BOOL RoundRect(HDC hdc, int left, int top, int right, int bottom, int r1, int r2);
59BOOL 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);
61UINT RealizePalette(HDC hDC);
62BOOL SetBrushOrgEx(HDC hdc, int xOrigin, int yOrigin, LPPOINT lpPoint);
63int GetObject(HGDIOBJ hObj, int sz, LPVOID logObj);
64
65/* For some reason these aren't defined in the headers */
66BOOL EnableScrollBar (HWND hWnd, int iSBar, BOOL bEnable) ;
67BOOL GetScrollPos (HWND hWnd, int iSBar, int* pPos);
68BOOL GetScrollRange (HWND hWnd, int iSBar, int* pMinPos, int* pMaxPos);
69BOOL SetScrollPos (HWND hWnd, int iSBar, int iNewPos);
70BOOL SetScrollRange (HWND hWnd, int iSBar, int iMinPos, int iMaxPos);
598ddd96
WS
71BOOL SetScrollInfo (HWND hWnd, int iSBar,
72 LPCSCROLLINFO lpsi, BOOL fRedraw);
04ef50df
JS
73BOOL GetScrollInfo(HWND hWnd, int iSBar, LPSCROLLINFO lpsi);
74BOOL ShowScrollBar (HWND hWnd, int iSBar, BOOL bShow);
62e1ba75
JS
75HBITMAP WINAPI
76CreateBitmap( int width, int height, int nPlanes, int bPP, LPCVOID lpData);
04ef50df
JS
77
78#ifdef __cplusplus
79}
80#endif
81
82/*
83 * Key State Masks for Mouse Messages
84 */
85#ifndef MK_LBUTTON
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
91#endif
92
93/*
94 * DrawIcon flags
95 */
96
97#ifndef DI_MASK
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
103#endif
104
105/* TODO: May have to fake these message */
106#ifndef WM_INITDIALOG
107#define WM_INITDIALOG 0x0110
108#endif
109#ifndef WM_QUERYENDSESSION
110#define WM_QUERYENDSESSION 0x0011
111#endif
112#ifndef WM_ENDSESSION
113#define WM_ENDSESSION 0x0016
114#endif
115#ifndef WM_SETCURSOR
116#define WM_SETCURSOR 0x0020
117#endif
118#ifndef WM_GETMINMAXINFO
119#define WM_GETMINMAXINFO 0x0024
120typedef struct tagMINMAXINFO {
121 POINT ptReserved;
122 POINT ptMaxSize;
123 POINT ptMaxPosition;
124 POINT ptMinTrackSize;
125 POINT ptMaxTrackSize;
126} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;
127
128#endif
129#ifndef WM_SYSCOMMAND
130#define WM_SYSCOMMAND 0x0112
131#endif
132#ifndef WM_SYSCOLORCHANGE
133#define WM_SYSCOLORCHANGE 0x0015
134#endif
135#ifndef WM_QUERYNEWPALETTE
136#define WM_QUERYNEWPALETTE 0x030F
137#endif
138#ifndef WM_PALETTEISCHANGING
139#define WM_PALETTEISCHANGING 0x0310
140#endif
141#ifndef WM_PALETTECHANGED
142#define WM_PALETTECHANGED 0x0311
143#endif
144#ifndef WM_NOTIFY
145#define WM_NOTIFY 0x004E
146#endif
147#ifndef WM_DROPFILES
148#define WM_DROPFILES 0x0233
149#endif
150
151#ifndef PALETTERGB
152#define PALETTERGB RGB
153#endif
154
155#ifndef MM_TEXT
156#define MM_TEXT 1
157#define MM_LOMETRIC 2
158#define MM_HIMETRIC 3
159#define MM_LOENGLISH 4
160#define MM_HIENGLISH 5
161#define MM_TWIPS 6
162#define MM_ISOTROPIC 7
163#define MM_ANISOTROPIC 8
164#endif
165
166#ifndef SC_MAXIMIZE
167#define SC_MINIMIZE 0xF020
168#define SC_MAXIMIZE 0xF030
169#endif
170
171// TODO: all of them
172#ifndef IDC_ARROW
173#define IDC_ARROW 1
174#endif
175
176/*
177 * Standard Cursor IDs
178 */
179#ifndef MAKEINTRESOURCE
180#define MAKEINTRESOURCE(r) r
181#endif
182
183#ifndef IDC_ARROW
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 */
204#endif
205
206/* ExtFloodFill style flags */
207#define FLOODFILLBORDER 0
208#define FLOODFILLSURFACE 1
209
210/* PolyFill() Modes */
211#define ALTERNATE 1
212#define WINDING 2
213#define POLYFILL_LAST 2
214
215/* Quaternary raster codes */
216#define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore))
217
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 */
223
224/* Ternary raster operations */
c67d6888
JS
225/* Now defined by MicroWindows */
226#if 0
04ef50df
JS
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) */
c67d6888 233#endif
04ef50df
JS
234
235#endif /* _WX_MICROWIN_H_ */