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