| 1 | /* $Id: oslibwin.h,v 1.49 2001-02-19 13:13:04 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
|
|---|
| 18 | typedef 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;
|
|---|
| 30 | #endif
|
|---|
| 31 |
|
|---|
| 32 | //SvL: Must be the same as HWND_DESKTOP/OBJECT in pmwin.h!
|
|---|
| 33 | #define OSLIB_HWND_DESKTOP 1
|
|---|
| 34 | #define OSLIB_HWND_OBJECT 2
|
|---|
| 35 |
|
|---|
| 36 | BOOL OSLibWinSetParent(HWND hwnd, HWND hwndParent, ULONG fRedraw = TRUE);
|
|---|
| 37 | BOOL OSLibWinSetOwner(HWND hwnd, HWND hwndOwner);
|
|---|
| 38 |
|
|---|
| 39 |
|
|---|
| 40 | HWND OSLibWinCreateWindow(HWND hwndParent,ULONG dwWinStyle,
|
|---|
| 41 | char *pszName, HWND Owner, ULONG fBottom,
|
|---|
| 42 | ULONG id, BOOL fTaskList,BOOL fShellPosition, int classStyle);
|
|---|
| 43 |
|
|---|
| 44 | BOOL OSLibWinConvertStyle(ULONG dwStyle, ULONG dwExStyle, ULONG *OSWinStyle);
|
|---|
| 45 | void OSLibSetWindowStyle(HWND hwnd, ULONG dwStyle, BOOL fTaskList);
|
|---|
| 46 | DWORD OSLibQueryWindowStyle(HWND hwnd);
|
|---|
| 47 |
|
|---|
| 48 | #define OSLIB_QWL_USER -4
|
|---|
| 49 |
|
|---|
| 50 | BOOL OSLibWinSetWindowULong(HWND hwnd, ULONG offset, ULONG value);
|
|---|
| 51 | ULONG OSLibWinGetWindowULong(HWND hwnd, ULONG offset);
|
|---|
| 52 | BOOL OSLibSetWindowID(HWND hwnd, ULONG value);
|
|---|
| 53 |
|
|---|
| 54 | #define WAOS_WARNING 0
|
|---|
| 55 | #define WAOS_NOTE 1
|
|---|
| 56 | #define WAOS_ERROR 2
|
|---|
| 57 | #define WAOS_CWINALARMS 13 /* count of valid alarms 53304*/
|
|---|
| 58 |
|
|---|
| 59 | BOOL OSLibWinAlarm(HWND hwndDeskTop,ULONG flStyle);
|
|---|
| 60 | ULONG OSLibDosBeep(ULONG freg,ULONG dur);
|
|---|
| 61 | HWND OSLibWinQueryFocus(HWND hwndDeskTop);
|
|---|
| 62 |
|
|---|
| 63 | #define OSLIB_FID_SYSMENU 0x8002
|
|---|
| 64 | #define OSLIB_FID_TITLEBAR 0x8003
|
|---|
| 65 | #define OSLIB_FID_MINMAX 0x8004
|
|---|
| 66 | #define OSLIB_FID_MENU 0x8005
|
|---|
| 67 | #define OSLIB_FID_VERTSCROLL 0x8006
|
|---|
| 68 | #define OSLIB_FID_HORZSCROLL 0x8007
|
|---|
| 69 | #define OSLIB_FID_CLIENT 0x8008
|
|---|
| 70 |
|
|---|
| 71 | HWND OSLibWinWindowFromID(HWND hwndParent,ULONG id);
|
|---|
| 72 | BOOL OSLibWinSetFocus(HWND hwndDeskTop,HWND hwndNewFocus, BOOL activate);
|
|---|
| 73 | ULONG OSLibGetWindowHeight(HWND hwnd); //for point transformation
|
|---|
| 74 |
|
|---|
| 75 | extern ULONG ScreenHeight, ScreenWidth;
|
|---|
| 76 | inline ULONG OSLibQueryScreenHeight(void) { return (ScreenHeight); }
|
|---|
| 77 | inline ULONG OSLibQueryScreenWidth(void) { return (ScreenWidth); }
|
|---|
| 78 |
|
|---|
| 79 | //reserved deleted
|
|---|
| 80 |
|
|---|
| 81 | #define SVOS_SWAPBUTTON 0
|
|---|
| 82 | #define SVOS_DBLCLKTIME 1
|
|---|
| 83 | #define SVOS_CXDBLCLK 2
|
|---|
| 84 | #define SVOS_CYDBLCLK 3
|
|---|
| 85 | #define SVOS_CXSIZEBORDER 4
|
|---|
| 86 | #define SVOS_CYSIZEBORDER 5
|
|---|
| 87 | #define SVOS_ALARM 6
|
|---|
| 88 | #define SVOS_CURSORRATE 9
|
|---|
| 89 | #define SVOS_FIRSTSCROLLRATE 10
|
|---|
| 90 | #define SVOS_SCROLLRATE 11
|
|---|
| 91 | #define SVOS_NUMBEREDLISTS 12
|
|---|
| 92 | #define SVOS_WARNINGFREQ 13
|
|---|
| 93 | #define SVOS_NOTEFREQ 14
|
|---|
| 94 | #define SVOS_ERRORFREQ 15
|
|---|
| 95 | #define SVOS_WARNINGDURATION 16
|
|---|
| 96 | #define SVOS_NOTEDURATION 17
|
|---|
| 97 | #define SVOS_ERRORDURATION 18
|
|---|
| 98 | #define SVOS_CXSCREEN 20
|
|---|
| 99 | #define SVOS_CYSCREEN 21
|
|---|
| 100 | #define SVOS_CXVSCROLL 22
|
|---|
| 101 | #define SVOS_CYHSCROLL 23
|
|---|
| 102 | #define SVOS_CYVSCROLLARROW 24
|
|---|
| 103 | #define SVOS_CXHSCROLLARROW 25
|
|---|
| 104 | #define SVOS_CXBORDER 26
|
|---|
| 105 | #define SVOS_CYBORDER 27
|
|---|
| 106 | #define SVOS_CXDLGFRAME 28
|
|---|
| 107 | #define SVOS_CYDLGFRAME 29
|
|---|
| 108 | #define SVOS_CYTITLEBAR 30
|
|---|
| 109 | #define SVOS_CYVSLIDER 31
|
|---|
| 110 | #define SVOS_CXHSLIDER 32
|
|---|
| 111 | #define SVOS_CXMINMAXBUTTON 33
|
|---|
| 112 | #define SVOS_CYMINMAXBUTTON 34
|
|---|
| 113 | #define SVOS_CYMENU 35
|
|---|
| 114 | #define SVOS_CXFULLSCREEN 36
|
|---|
| 115 | #define SVOS_CYFULLSCREEN 37
|
|---|
| 116 | #define SVOS_CXICON 38
|
|---|
| 117 | #define SVOS_CYICON 39
|
|---|
| 118 | #define SVOS_CXPOINTER 40
|
|---|
| 119 | #define SVOS_CYPOINTER 41
|
|---|
| 120 | #define SVOS_DEBUG 42
|
|---|
| 121 | #define SVOS_CMOUSEBUTTONS 43
|
|---|
| 122 | #define SVOS_CPOINTERBUTTONS 43
|
|---|
| 123 | #define SVOS_POINTERLEVEL 44
|
|---|
| 124 | #define SVOS_CURSORLEVEL 45
|
|---|
| 125 | #define SVOS_TRACKRECTLEVEL 46
|
|---|
| 126 | #define SVOS_CTIMERS 47
|
|---|
| 127 | #define SVOS_MOUSEPRESENT 48
|
|---|
| 128 | #define SVOS_CXBYTEALIGN 49
|
|---|
| 129 | #define SVOS_CXALIGN 49
|
|---|
| 130 | #define SVOS_CYBYTEALIGN 50
|
|---|
| 131 | #define SVOS_CYALIGN 50
|
|---|
| 132 |
|
|---|
| 133 | /* The following value enables any greater value to be set by WinSetSysValue. */
|
|---|
| 134 | /* This is to enable the setting of SV_EXTRAKEYBEEP by applications. */
|
|---|
| 135 |
|
|---|
| 136 | #define SVOS_NOTRESERVED 56
|
|---|
| 137 | #define SVOS_EXTRAKEYBEEP 57
|
|---|
| 138 |
|
|---|
| 139 | /* The following system value controls whether PM controls the keyboard */
|
|---|
| 140 | /* lights for light key keystrokes (else applications will) */
|
|---|
| 141 | #define SVOS_SETLIGHTS 58
|
|---|
| 142 | #define SVOS_INSERTMODE 59
|
|---|
| 143 |
|
|---|
| 144 | #define SVOS_MENUROLLDOWNDELAY 64
|
|---|
| 145 | #define SVOS_MENUROLLUPDELAY 65
|
|---|
| 146 | #define SVOS_ALTMNEMONIC 66
|
|---|
| 147 | #define SVOS_TASKLISTMOUSEACCESS 67
|
|---|
| 148 | #define SVOS_CXICONTEXTWIDTH 68
|
|---|
| 149 | #define SVOS_CICONTEXTLINES 69
|
|---|
| 150 | #define SVOS_CHORDTIME 70
|
|---|
| 151 | #define SVOS_CXCHORD 71
|
|---|
| 152 | #define SVOS_CYCHORD 72
|
|---|
| 153 | #define SVOS_CXMOTIONSTART 73
|
|---|
| 154 | #define SVOS_CYMOTIONSTART 74
|
|---|
| 155 | #define SVOS_BEGINDRAG 75
|
|---|
| 156 | #define SVOS_ENDDRAG 76
|
|---|
| 157 | #define SVOS_SINGLESELECT 77
|
|---|
| 158 | #define SVOS_OPEN 78
|
|---|
| 159 | #define SVOS_CONTEXTMENU 79
|
|---|
| 160 | #define SVOS_CONTEXTHELP 80
|
|---|
| 161 | #define SVOS_TEXTEDIT 81
|
|---|
| 162 | #define SVOS_BEGINSELECT 82
|
|---|
| 163 | #define SVOS_ENDSELECT 83
|
|---|
| 164 | #define SVOS_BEGINDRAGKB 84
|
|---|
| 165 | #define SVOS_ENDDRAGKB 85
|
|---|
| 166 | #define SVOS_SELECTKB 86
|
|---|
| 167 | #define SVOS_OPENKB 87
|
|---|
| 168 | #define SVOS_CONTEXTMENUKB 88
|
|---|
| 169 | #define SVOS_CONTEXTHELPKB 89
|
|---|
| 170 | #define SVOS_TEXTEDITKB 90
|
|---|
| 171 | #define SVOS_BEGINSELECTKB 91
|
|---|
| 172 | #define SVOS_ENDSELECTKB 92
|
|---|
| 173 | #define SVOS_ANIMATION 93
|
|---|
| 174 | #define SVOS_ANIMATIONSPEED 94
|
|---|
| 175 | #define SVOS_MONOICONS 95
|
|---|
| 176 | #define SVOS_KBDALTERED 96
|
|---|
| 177 | #define SVOS_PRINTSCREEN 97
|
|---|
| 178 | #define SVOS_LOCKSTARTINPUT 98
|
|---|
| 179 | #define SVOS_CSYSVALUES 108
|
|---|
| 180 |
|
|---|
| 181 | LONG OSLibWinQuerySysValue(LONG iSysValue);
|
|---|
| 182 | ULONG OSLibWinQueryDlgItemText(HWND hwndDlg,ULONG idItem,LONG cchBufferMax,char* pchBuffer);
|
|---|
| 183 | BOOL OSLibWinSetDlgItemText(HWND hwndDlg,ULONG idItem,char* pszText);
|
|---|
| 184 | BOOL OSLibWinQueryPointerPos(PPOINT pptlPoint); //pptlPoint == POINTL pointer!
|
|---|
| 185 |
|
|---|
| 186 | #define SWPOS_SIZE 0x0001
|
|---|
| 187 | #define SWPOS_MOVE 0x0002
|
|---|
| 188 | #define SWPOS_ZORDER 0x0004
|
|---|
| 189 | #define SWPOS_SHOW 0x0008
|
|---|
| 190 | #define SWPOS_HIDE 0x0010
|
|---|
| 191 | #define SWPOS_NOREDRAW 0x0020
|
|---|
| 192 | #define SWPOS_NOADJUST 0x0040
|
|---|
| 193 | #define SWPOS_ACTIVATE 0x0080
|
|---|
| 194 | #define SWPOS_DEACTIVATE 0x0100
|
|---|
| 195 | #define SWPOS_EXTSTATECHANGE 0x0200
|
|---|
| 196 | #define SWPOS_MINIMIZE 0x0400
|
|---|
| 197 | #define SWPOS_MAXIMIZE 0x0800
|
|---|
| 198 | #define SWPOS_RESTORE 0x1000
|
|---|
| 199 | #define SWPOS_FOCUSACTIVATE 0x2000
|
|---|
| 200 | #define SWPOS_FOCUSDEACTIVATE 0x4000
|
|---|
| 201 | #define SWPOS_NOAUTOCLOSE 0x8000 /* Valid in PROGDETAILS struct only */
|
|---|
| 202 |
|
|---|
| 203 | #define HWNDOS_TOP (HWND)3
|
|---|
| 204 | #define HWNDOS_BOTTOM (HWND)4
|
|---|
| 205 |
|
|---|
| 206 | BOOL OSLibWinSetMultWindowPos(struct _SWP *pswp, ULONG num);
|
|---|
| 207 | BOOL OSLibWinShowWindow(HWND hwnd, ULONG fl);
|
|---|
| 208 |
|
|---|
| 209 | BOOL OSLibWinDestroyWindow(HWND hwnd);
|
|---|
| 210 |
|
|---|
| 211 | BOOL OSLibWinIsIconic(HWND hwnd);
|
|---|
| 212 | BOOL OSLibWinIsChild (HWND hwnd, HWND hwndOf);
|
|---|
| 213 | BOOL OSLibWinSetActiveWindow(HWND hwnd);
|
|---|
| 214 | BOOL OSLibWinSetFocus(HWND hwnd);
|
|---|
| 215 | BOOL OSLibWinEnableWindow(HWND hwnd, BOOL fEnable);
|
|---|
| 216 | BOOL OSLibWinIsWindowEnabled(HWND hwnd);
|
|---|
| 217 | BOOL OSLibWinIsWindowVisible(HWND hwnd);
|
|---|
| 218 | HWND OSLibWinQueryActiveWindow();
|
|---|
| 219 |
|
|---|
| 220 |
|
|---|
| 221 | #define RELATIVE_TO_WINDOW 0
|
|---|
| 222 | #define RELATIVE_TO_SCREEN 1
|
|---|
| 223 | BOOL OSLibWinQueryWindowRect(Win32BaseWindow *window, PRECT pRect, int RelativeTo = RELATIVE_TO_WINDOW);
|
|---|
| 224 | BOOL OSLibWinCalcFrameRect(HWND hwnd, RECT *pRect, BOOL fClient);
|
|---|
| 225 | BOOL OSLibGetMinMaxInfo(HWND hwndFrame, MINMAXINFO *pMinMax);
|
|---|
| 226 |
|
|---|
| 227 | #define QWOS_NEXT 0
|
|---|
| 228 | #define QWOS_PREV 1
|
|---|
| 229 | #define QWOS_TOP 2
|
|---|
| 230 | #define QWOS_BOTTOM 3
|
|---|
| 231 | #define QWOS_OWNER 4
|
|---|
| 232 | #define QWOS_PARENT 5
|
|---|
| 233 | #define QWOS_NEXTTOP 6
|
|---|
| 234 | #define QWOS_PREVTOP 7
|
|---|
| 235 | #define QWOS_FRAMEOWNER 8
|
|---|
| 236 |
|
|---|
| 237 | HWND OSLibWinQueryWindow(HWND hwnd, ULONG lCode);
|
|---|
| 238 |
|
|---|
| 239 | LONG OSLibWinQueryWindowTextLength(HWND hwnd);
|
|---|
| 240 | LONG OSLibWinQueryWindowText(HWND hwnd, LONG length, LPSTR lpsz);
|
|---|
| 241 | BOOL OSLibWinSetWindowText(HWND hwnd, LPSTR lpsz);
|
|---|
| 242 | BOOL OSLibWinFlashWindow(HWND hwnd, BOOL fFlash);
|
|---|
| 243 | HWND OSLibWinWindowFromPoint(HWND hwnd, PVOID ppoint);
|
|---|
| 244 | BOOL OSLibWinMinimizeWindow(HWND hwnd);
|
|---|
| 245 |
|
|---|
| 246 | BOOL OSLibWinGetBorderSize(HWND hwnd, OSLIBPOINT *pointl);
|
|---|
| 247 | BOOL OSLibWinSetIcon(HWND hwnd, HANDLE hIcon);
|
|---|
| 248 |
|
|---|
| 249 | BOOL OSLibWinQueryWindowPos (HWND hwnd, PSWP pswp);
|
|---|
| 250 | void OSLibMapSWPtoWINDOWPOS(PSWP pswp, PWINDOWPOS pwpos, PSWP pswpOld,
|
|---|
| 251 | int parentHeight, int clientOrgX, int clientOrgY,
|
|---|
| 252 | HWND hwnd);
|
|---|
| 253 | void OSLibMapWINDOWPOStoSWP(struct tagWINDOWPOS *pwpos, PSWP pswp, PSWP pswpOld,
|
|---|
| 254 | int parentHeight, int clientOrgX, int clientOrgY, HWND hFrame);
|
|---|
| 255 |
|
|---|
| 256 | HWND OSLibWinBeginEnumWindows(HWND hwnd);
|
|---|
| 257 | HWND OSLibWinGetNextWindow(HWND hwndEnum);
|
|---|
| 258 | HWND OSLibWinQueryClientWindow(HWND hwndFrame);
|
|---|
| 259 | BOOL OSLibWinEndEnumWindows(HWND hwndEnum);
|
|---|
| 260 | BOOL OSLibWinQueryWindowProcess(HWND hwnd, ULONG *pid, ULONG *tid);
|
|---|
| 261 | BOOL OSLibWinMapWindowPoints (HWND hwndFrom, HWND hwndTo, OSLIBPOINT *pptl, ULONG num);
|
|---|
| 262 |
|
|---|
| 263 | HWND OSLibWinObjectWindowFromID(HWND hwndOwner, ULONG ID);
|
|---|
| 264 |
|
|---|
| 265 | HWND OSLibWinQueryObjectWindow(VOID);
|
|---|
| 266 |
|
|---|
| 267 | PVOID OSLibWinSubclassWindow(HWND hwnd,PVOID newWndProc);
|
|---|
| 268 |
|
|---|
| 269 | BOOL OSLibSetWindowRestoreRect(HWND hwnd, PRECT pRect);
|
|---|
| 270 | BOOL OSLibSetWindowMinPos(HWND hwnd, ULONG x, ULONG y);
|
|---|
| 271 |
|
|---|
| 272 | BOOL OSLibWinGetKeyboardStateTable(unsigned char * PMKeyState);
|
|---|
| 273 | BOOL OSLibWinSetKeyboardStateTable(unsigned char * PMKeyState);
|
|---|
| 274 |
|
|---|
| 275 | #define HTOS_NORMAL 0
|
|---|
| 276 | #define HTOS_TRANSPARENT (-1)
|
|---|
| 277 | #define HTOS_DISCARD (-2)
|
|---|
| 278 | #define HTOS_ERROR (-3)
|
|---|
| 279 |
|
|---|
| 280 | BOOL OSLibWinEnableWindowUpdate(HWND hwnd,BOOL fEnable);
|
|---|
| 281 | ULONG OSLibWinGetLastError();
|
|---|
| 282 |
|
|---|
| 283 | void OSLibWinShowTaskList(HWND hwndFrame);
|
|---|
| 284 |
|
|---|
| 285 | void OSLibWinSetVisibleRegionNotify(HWND hwnd, BOOL fNotify);
|
|---|
| 286 |
|
|---|
| 287 | HWND OSLibWinQueryCapture();
|
|---|
| 288 | BOOL OSLibWinSetCapture(HWND hwnd);
|
|---|
| 289 |
|
|---|
| 290 | BOOL OSLibWinRemoveFromTasklist(HANDLE hTaskList);
|
|---|
| 291 | HANDLE OSLibWinAddToTaskList(HWND hwndFrame, char *title, BOOL fVisible);
|
|---|
| 292 | BOOL OSLibWinChangeTaskList(HANDLE hTaskList, HWND hwndFrame, char *title, BOOL fVisible);
|
|---|
| 293 |
|
|---|
| 294 | inline ULONG GetScreenHeight()
|
|---|
| 295 | {
|
|---|
| 296 | return ScreenHeight;
|
|---|
| 297 | }
|
|---|
| 298 |
|
|---|
| 299 | inline ULONG GetScreenWidth()
|
|---|
| 300 | {
|
|---|
| 301 | return ScreenWidth;
|
|---|
| 302 | }
|
|---|
| 303 |
|
|---|
| 304 | ULONG OSLibGetScreenHeight();
|
|---|
| 305 | ULONG OSLibGetScreenWidth();
|
|---|
| 306 |
|
|---|
| 307 | BOOL OSLibWinLockWindowUpdate(HWND hwnd);
|
|---|
| 308 |
|
|---|
| 309 | #endif //__OSLIBWIN_H__
|
|---|