source: trunk/src/user32/oslibwin.h@ 9072

Last change on this file since 9072 was 9072, checked in by sandervl, 23 years ago

PF: Added OSLibWinControlWindow; fixed OSLibWinSetSysValue

File size: 15.5 KB
Line 
1/* $Id: oslibwin.h,v 1.66 2002-08-21 12:32:41 sandervl Exp $ */
2/*
3 * Window API wrappers for OS/2
4 *
5 *
6 * Copyright 1999 Sander van Leeuwen (sandervl@xs4all.nl)
7 * Copyright 1999 Daniela Engert (dani@ngrt.de)
8 *
9 *
10 * Project Odin Software License can be found in LICENSE.TXT
11 *
12 */
13#ifndef __OSLIBWIN_H__
14#define __OSLIBWIN_H__
15#include <oslibgdi.h>
16
17#ifndef WIN_INCLUDED
18typedef struct _SWP /* swp */
19{
20 ULONG fl;
21 LONG cy;
22 LONG cx;
23 LONG y;
24 LONG x;
25 HWND hwndInsertBehind;
26 HWND hwnd;
27 ULONG ulReserved1;
28 ULONG ulReserved2;
29} SWP, *PSWP;
30typedef POINTL *PPOINTL;
31#endif
32
33//SvL: Must be the same as HWND_DESKTOP/OBJECT in pmwin.h!
34#define OSLIB_HWND_DESKTOP 1
35#define OSLIB_HWND_OBJECT 2
36
37BOOL OSLibWinSetParent(HWND hwnd, HWND hwndParent, ULONG fRedraw = TRUE);
38BOOL OSLibWinSetOwner(HWND hwnd, HWND hwndOwner);
39
40
41HWND OSLibWinCreateWindow(HWND hwndParent,ULONG dwWinStyle, ULONG dwOSFrameStyle,
42 char *pszName, HWND Owner, ULONG fBottom,
43 ULONG id, BOOL fTaskList,BOOL fShellPosition,
44 int classStyle, HWND *hwndFrame);
45
46BOOL OSLibWinConvertStyle(ULONG dwStyle, ULONG dwExStyle, ULONG *OSWinStyle, ULONG *OSFrameStyle);
47void OSLibSetWindowStyle(HWND hwndFrame, HWND hwndClient, ULONG dwStyle, ULONG dwExStyle);
48DWORD OSLibQueryWindowStyle(HWND hwnd);
49
50BOOL OSLibWinPositionFrameControls(HWND hwndFrame, RECTLOS2 *pRect, DWORD dwStyle, DWORD dwExStyle, HICON hSysMenuIcon);
51
52#define OSLIB_QWL_USER -4
53
54BOOL OSLibWinSetWindowULong(HWND hwnd, ULONG offset, ULONG value);
55ULONG OSLibWinGetWindowULong(HWND hwnd, ULONG offset);
56BOOL OSLibSetWindowID(HWND hwnd, ULONG value);
57
58#define WAOS_WARNING 0
59#define WAOS_NOTE 1
60#define WAOS_ERROR 2
61#define WAOS_CWINALARMS 13 /* count of valid alarms 53304*/
62
63BOOL OSLibWinAlarm(HWND hwndDeskTop,ULONG flStyle);
64ULONG OSLibDosBeep(ULONG freg,ULONG dur);
65HWND OSLibWinQueryFocus(HWND hwndDeskTop);
66
67#define OSLIB_FID_SYSMENU 0x8002
68#define OSLIB_FID_TITLEBAR 0x8003
69#define OSLIB_FID_MINMAX 0x8004
70#define OSLIB_FID_MENU 0x8005
71#define OSLIB_FID_VERTSCROLL 0x8006
72#define OSLIB_FID_HORZSCROLL 0x8007
73#define OSLIB_FID_CLIENT 0x8008
74
75HWND OSLibWinWindowFromID(HWND hwndParent,ULONG id);
76BOOL OSLibWinSetFocus(HWND hwndDeskTop,HWND hwndNewFocus, BOOL activate);
77
78extern ULONG ScreenHeight, ScreenWidth;
79inline ULONG OSLibQueryScreenHeight(void) { return (ScreenHeight); }
80inline ULONG OSLibQueryScreenWidth(void) { return (ScreenWidth); }
81
82//reserved deleted
83
84#define SVOS_SWAPBUTTON 0
85#define SVOS_DBLCLKTIME 1
86#define SVOS_CXDBLCLK 2
87#define SVOS_CYDBLCLK 3
88#define SVOS_CXSIZEBORDER 4
89#define SVOS_CYSIZEBORDER 5
90#define SVOS_ALARM 6
91#define SVOS_CURSORRATE 9
92#define SVOS_FIRSTSCROLLRATE 10
93#define SVOS_SCROLLRATE 11
94#define SVOS_NUMBEREDLISTS 12
95#define SVOS_WARNINGFREQ 13
96#define SVOS_NOTEFREQ 14
97#define SVOS_ERRORFREQ 15
98#define SVOS_WARNINGDURATION 16
99#define SVOS_NOTEDURATION 17
100#define SVOS_ERRORDURATION 18
101#define SVOS_CXSCREEN 20
102#define SVOS_CYSCREEN 21
103#define SVOS_CXVSCROLL 22
104#define SVOS_CYHSCROLL 23
105#define SVOS_CYVSCROLLARROW 24
106#define SVOS_CXHSCROLLARROW 25
107#define SVOS_CXBORDER 26
108#define SVOS_CYBORDER 27
109#define SVOS_CXDLGFRAME 28
110#define SVOS_CYDLGFRAME 29
111#define SVOS_CYTITLEBAR 30
112#define SVOS_CYVSLIDER 31
113#define SVOS_CXHSLIDER 32
114#define SVOS_CXMINMAXBUTTON 33
115#define SVOS_CYMINMAXBUTTON 34
116#define SVOS_CYMENU 35
117#define SVOS_CXFULLSCREEN 36
118#define SVOS_CYFULLSCREEN 37
119#define SVOS_CXICON 38
120#define SVOS_CYICON 39
121#define SVOS_CXPOINTER 40
122#define SVOS_CYPOINTER 41
123#define SVOS_DEBUG 42
124#define SVOS_CMOUSEBUTTONS 43
125#define SVOS_CPOINTERBUTTONS 43
126#define SVOS_POINTERLEVEL 44
127#define SVOS_CURSORLEVEL 45
128#define SVOS_TRACKRECTLEVEL 46
129#define SVOS_CTIMERS 47
130#define SVOS_MOUSEPRESENT 48
131#define SVOS_CXBYTEALIGN 49
132#define SVOS_CXALIGN 49
133#define SVOS_CYBYTEALIGN 50
134#define SVOS_CYALIGN 50
135#define SVOS_DESKTOPWORKAREAYTOP 51
136#define SVOS_DESKTOPWORKAREAYBOTTOM 52
137#define SVOS_DESKTOPWORKAREAXRIGHT 53
138#define SVOS_DESKTOPWORKAREAXLEFT 54
139
140/* The following value enables any greater value to be set by WinSetSysValue. */
141/* This is to enable the setting of SV_EXTRAKEYBEEP by applications. */
142
143#define SVOS_NOTRESERVED 56
144#define SVOS_EXTRAKEYBEEP 57
145
146/* The following system value controls whether PM controls the keyboard */
147/* lights for light key keystrokes (else applications will) */
148#define SVOS_SETLIGHTS 58
149#define SVOS_INSERTMODE 59
150
151#define SVOS_MENUROLLDOWNDELAY 64
152#define SVOS_MENUROLLUPDELAY 65
153#define SVOS_ALTMNEMONIC 66
154#define SVOS_TASKLISTMOUSEACCESS 67
155#define SVOS_CXICONTEXTWIDTH 68
156#define SVOS_CICONTEXTLINES 69
157#define SVOS_CHORDTIME 70
158#define SVOS_CXCHORD 71
159#define SVOS_CYCHORD 72
160#define SVOS_CXMOTIONSTART 73
161#define SVOS_CYMOTIONSTART 74
162#define SVOS_BEGINDRAG 75
163#define SVOS_ENDDRAG 76
164#define SVOS_SINGLESELECT 77
165#define SVOS_OPEN 78
166#define SVOS_CONTEXTMENU 79
167#define SVOS_CONTEXTHELP 80
168#define SVOS_TEXTEDIT 81
169#define SVOS_BEGINSELECT 82
170#define SVOS_ENDSELECT 83
171#define SVOS_BEGINDRAGKB 84
172#define SVOS_ENDDRAGKB 85
173#define SVOS_SELECTKB 86
174#define SVOS_OPENKB 87
175#define SVOS_CONTEXTMENUKB 88
176#define SVOS_CONTEXTHELPKB 89
177#define SVOS_TEXTEDITKB 90
178#define SVOS_BEGINSELECTKB 91
179#define SVOS_ENDSELECTKB 92
180#define SVOS_ANIMATION 93
181#define SVOS_ANIMATIONSPEED 94
182#define SVOS_MONOICONS 95
183#define SVOS_KBDALTERED 96
184#define SVOS_PRINTSCREEN 97
185#define SVOS_LOCKSTARTINPUT 98
186#define SVOS_DYNAMICDRAG 99
187#define SVOS_ALTTABWINDOW 100
188#define SVOS_VIOMOUSEACTIONS 101
189#define SVOS_ASYNCFOCUSCHANGE 102
190#define SVOS_AFCSENSITIVITY 103
191#define SVOS_CLOSEVIOWITHOUTCONFIRM 104
192#define SVOS_CXCURSOR 106
193#define SVOS_CYCURSOR 107
194#define SVOS_CSYSVALUES 108
195
196LONG OSLibWinQuerySysValue(LONG iSysValue);
197BOOL OSLibWinSetSysValue(LONG iSysValue, ULONG val);
198ULONG OSLibWinQueryDlgItemText(HWND hwndDlg,ULONG idItem,LONG cchBufferMax,char* pchBuffer);
199BOOL OSLibWinSetDlgItemText(HWND hwndDlg,ULONG idItem,char* pszText);
200BOOL OSLibWinQueryPointerPos(PPOINT pptlPoint); //pptlPoint == POINTL pointer!
201BOOL OSLibWinGetMinPosition(HWND hwndDlg,PSWP swp, PPOINTL pointl);
202BOOL OSLibWinSetPointerPos(int x, int y);
203
204#define SWPOS_SIZE 0x0001
205#define SWPOS_MOVE 0x0002
206#define SWPOS_ZORDER 0x0004
207#define SWPOS_SHOW 0x0008
208#define SWPOS_HIDE 0x0010
209#define SWPOS_NOREDRAW 0x0020
210#define SWPOS_NOADJUST 0x0040
211#define SWPOS_ACTIVATE 0x0080
212#define SWPOS_DEACTIVATE 0x0100
213#define SWPOS_EXTSTATECHANGE 0x0200
214#define SWPOS_MINIMIZE 0x0400
215#define SWPOS_MAXIMIZE 0x0800
216#define SWPOS_RESTORE 0x1000
217#define SWPOS_FOCUSACTIVATE 0x2000
218#define SWPOS_FOCUSDEACTIVATE 0x4000
219#define SWPOS_NOAUTOCLOSE 0x8000 /* Valid in PROGDETAILS struct only */
220
221#define HWNDOS_TOP (HWND)3
222#define HWNDOS_BOTTOM (HWND)4
223
224BOOL OSLibWinSetMultWindowPos(struct _SWP *pswp, ULONG num);
225BOOL OSLibWinShowWindow(HWND hwnd, ULONG fl);
226
227BOOL OSLibWinDestroyWindow(HWND hwnd);
228
229BOOL OSLibWinIsIconic(HWND hwnd);
230BOOL OSLibWinIsChild (HWND hwnd, HWND hwndOf);
231BOOL OSLibWinSetActiveWindow(HWND hwnd);
232BOOL OSLibWinSetFocus(HWND hwnd);
233BOOL OSLibWinEnableWindow(HWND hwnd, BOOL fEnable);
234BOOL OSLibWinIsWindowEnabled(HWND hwnd);
235BOOL OSLibWinIsWindowVisible(HWND hwnd);
236HWND OSLibWinQueryActiveWindow();
237
238
239#define RELATIVE_TO_WINDOW 0
240#define RELATIVE_TO_SCREEN 1
241BOOL OSLibWinQueryWindowRect(Win32BaseWindow *window, PRECT pRect, int RelativeTo = RELATIVE_TO_WINDOW);
242BOOL OSLibQueryWindowRectAbsolute (HWND hwndOS2, PRECT pRect);
243ULONG OSLibGetWindowHeight(HWND hwnd); //for point transformation
244
245BOOL OSLibWinQueryWindowClientRect(HWND hwnd, PRECT pRect);
246
247BOOL OSLibWinCalcFrameRect(HWND hwnd, RECT *pRect, BOOL fClient);
248BOOL OSLibGetMinMaxInfo(HWND hwndFrame, MINMAXINFO *pMinMax);
249
250#define QWOS_NEXT 0
251#define QWOS_PREV 1
252#define QWOS_TOP 2
253#define QWOS_BOTTOM 3
254#define QWOS_OWNER 4
255#define QWOS_PARENT 5
256#define QWOS_NEXTTOP 6
257#define QWOS_PREVTOP 7
258#define QWOS_FRAMEOWNER 8
259
260HWND OSLibWinQueryWindow(HWND hwnd, ULONG lCode);
261HWND OSLibWinControlWindow(HWND hwndWindow, INT controlID, HWND hwndControl);
262
263LONG OSLibWinQueryWindowTextLength(HWND hwnd);
264LONG OSLibWinQueryWindowText(HWND hwnd, LONG length, LPSTR lpsz);
265BOOL OSLibWinSetWindowText(HWND hwnd, LPSTR lpsz);
266BOOL OSLibWinSetTitleBarText(HWND hwnd, LPSTR lpsz);
267BOOL OSLibWinFlashWindow(HWND hwnd, BOOL fFlash);
268HWND OSLibWinWindowFromPoint(HWND hwnd, PVOID ppoint);
269BOOL OSLibWinMinimizeWindow(HWND hwnd);
270
271BOOL OSLibWinGetBorderSize(HWND hwnd, OSLIBPOINT *pointl);
272BOOL OSLibWinSetIcon(HWND hwnd, HANDLE hIcon);
273
274BOOL OSLibWinQueryWindowPos (HWND hwnd, PSWP pswp);
275void OSLibMapSWPtoWINDOWPOS(PSWP pswp, PWINDOWPOS pwpos, PSWP pswpOld,
276 int parentHeight, HWND hwnd);
277void OSLibMapWINDOWPOStoSWP(struct tagWINDOWPOS *pwpos, PSWP pswp, PSWP pswpOld,
278 int parentHeight, HWND hFrame);
279
280void OSLibWinSetClientPos(HWND hwnd, int x, int y, int cx, int cy, int parentHeight);
281
282HWND OSLibWinBeginEnumWindows(HWND hwnd);
283HWND OSLibWinGetNextWindow(HWND hwndEnum);
284HWND OSLibWinQueryClientWindow(HWND hwndFrame);
285BOOL OSLibWinEndEnumWindows(HWND hwndEnum);
286BOOL OSLibWinQueryWindowProcess(HWND hwnd, ULONG *pid, ULONG *tid);
287BOOL OSLibWinMapWindowPoints (HWND hwndFrom, HWND hwndTo, OSLIBPOINT *pptl, ULONG num);
288
289HWND OSLibWinObjectWindowFromID(HWND hwndOwner, ULONG ID);
290
291HWND OSLibWinQueryObjectWindow(VOID);
292
293PVOID OSLibWinSubclassWindow(HWND hwnd,PVOID newWndProc);
294
295BOOL OSLibSetWindowRestoreRect(HWND hwnd, PRECT pRect);
296BOOL OSLibSetWindowMinPos(HWND hwnd, ULONG x, ULONG y);
297
298BOOL OSLibWinGetKeyboardStateTable(unsigned char * PMKeyState);
299BOOL OSLibWinSetKeyboardStateTable(unsigned char * PMKeyState);
300
301#define TCF_LSHIFT 0x0001
302#define TCF_RSHIFT 0x0002
303#define TCF_SHIFT (TCF_LSHIFT | TCF_RSHIFT)
304#define TCF_LCONTROL 0x0004
305#define TCF_RCONTROL 0x0008
306#define TCF_CONTROL (TCF_LCONTROL | TCF_RCONTROL)
307#define TCF_ALT 0x0010
308#define TCF_ALTGR 0x0020
309#define TCF_CAPSLOCK 0x0040
310#define TCF_NUMLOCK 0x0080
311#define TCF_OEMSCANCODE 0x0100
312#define TCF_EXTENDEDKEY 0x0200
313
314#define TC_CHARTOSCANCODE 0
315#define TC_SCANCODETOCHAR 1
316#define TC_VIRTUALKEYTOSCANCODE 2
317#define TC_SCANCODETOVIRTUALKEY 3
318#define TC_SCANTOOEMSCAN 4
319#define TC_OEMSCANTOSCAN 5
320
321USHORT OSLibWinTranslateChar(USHORT usScanCode, ULONG type, USHORT shiftstate);
322
323#define HTOS_NORMAL 0
324#define HTOS_TRANSPARENT (-1)
325#define HTOS_DISCARD (-2)
326#define HTOS_ERROR (-3)
327
328BOOL OSLibWinEnableWindowUpdate(HWND hwndFrame, HWND hwndClient ,BOOL fEnable);
329ULONG OSLibWinGetLastError();
330
331void OSLibWinShowTaskList(HWND hwndFrame);
332
333void OSLibWinSetVisibleRegionNotify(HWND hwnd, BOOL fNotify);
334
335HWND OSLibWinQueryCapture();
336BOOL OSLibWinSetCapture(HWND hwnd);
337
338BOOL OSLibWinRemoveFromTasklist(HANDLE hTaskList);
339HANDLE OSLibWinAddToTaskList(HWND hwndFrame, char *title, BOOL fVisible);
340BOOL OSLibWinChangeTaskList(HANDLE hTaskList, HWND hwndFrame, char *title, BOOL fVisible);
341
342inline ULONG GetScreenHeight()
343{
344 return ScreenHeight;
345}
346
347inline ULONG GetScreenWidth()
348{
349 return ScreenWidth;
350}
351
352ULONG OSLibGetScreenHeight();
353ULONG OSLibGetScreenWidth();
354
355BOOL OSLibWinLockWindowUpdate(HWND hwnd);
356BOOL OSLibWinGetMaxPosition(HWND hwndOS2, RECT *rect);
357
358BOOL OSLibWinShowPointer(BOOL fShow);
359
360
361 #define PMSYSCLR_SHADOWHILITEBGND (-50L)
362 #define PMSYSCLR_SHADOWHILITEFGND (-49L)
363 #define PMSYSCLR_SHADOWTEXT (-48L)
364 #define PMSYSCLR_ENTRYFIELD (-47L)
365 #define PMSYSCLR_MENUDISABLEDTEXT (-46L)
366 #define PMSYSCLR_MENUHILITE (-45L)
367 #define PMSYSCLR_MENUHILITEBGND (-44L)
368 #define PMSYSCLR_PAGEBACKGROUND (-43L)
369 #define PMSYSCLR_FIELDBACKGROUND (-42L)
370 #define PMSYSCLR_BUTTONLIGHT (-41L)
371 #define PMSYSCLR_BUTTONMIDDLE (-40L)
372 #define PMSYSCLR_BUTTONDARK (-39L)
373 #define PMSYSCLR_BUTTONDEFAULT (-38L)
374 #define PMSYSCLR_TITLEBOTTOM (-37L)
375 #define PMSYSCLR_SHADOW (-36L)
376 #define PMSYSCLR_ICONTEXT (-35L)
377 #define PMSYSCLR_DIALOGBACKGROUND (-34L)
378 #define PMSYSCLR_HILITEFOREGROUND (-33L)
379 #define PMSYSCLR_HILITEBACKGROUND (-32L)
380 #define PMSYSCLR_INACTIVETITLETEXTBGND (-31L)
381 #define PMSYSCLR_ACTIVETITLETEXTBGND (-30L)
382 #define PMSYSCLR_INACTIVETITLETEXT (-29L)
383 #define PMSYSCLR_ACTIVETITLETEXT (-28L)
384 #define PMSYSCLR_OUTPUTTEXT (-27L)
385 #define PMSYSCLR_WINDOWSTATICTEXT (-26L)
386 #define PMSYSCLR_SCROLLBAR (-25L)
387 #define PMSYSCLR_BACKGROUND (-24L)
388 #define PMSYSCLR_ACTIVETITLE (-23L)
389 #define PMSYSCLR_INACTIVETITLE (-22L)
390 #define PMSYSCLR_MENU (-21L)
391 #define PMSYSCLR_WINDOW (-20L)
392 #define PMSYSCLR_WINDOWFRAME (-19L)
393 #define PMSYSCLR_MENUTEXT (-18L)
394 #define PMSYSCLR_WINDOWTEXT (-17L)
395 #define PMSYSCLR_TITLETEXT (-16L)
396 #define PMSYSCLR_ACTIVEBORDER (-15L)
397 #define PMSYSCLR_INACTIVEBORDER (-14L)
398 #define PMSYSCLR_APPWORKSPACE (-13L)
399 #define PMSYSCLR_HELPBACKGROUND (-12L)
400 #define PMSYSCLR_HELPTEXT (-11L)
401 #define PMSYSCLR_HELPHILITE (-10L)
402
403 #define PMSYSCLR_CSYSCOLORS 41L
404 #define PMSYSCLR_BASE 50L
405
406#define CONVERT_RGB(colorRef) ( ((colorRef) & 0x0000FF00 ) | \
407 (((colorRef) & 0x00FF0000)>>16) | \
408 (((colorRef) & 0x000000FF)<<16) )
409
410ULONG OSLibWinQuerySysColor(int index);
411
412#endif //__OSLIBWIN_H__
Note: See TracBrowser for help on using the repository browser.