1#| -*-Scheme-*- 2 3Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 4 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 5 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Massachusetts 6 Institute of Technology 7 8This file is part of MIT/GNU Scheme. 9 10MIT/GNU Scheme is free software; you can redistribute it and/or modify 11it under the terms of the GNU General Public License as published by 12the Free Software Foundation; either version 2 of the License, or (at 13your option) any later version. 14 15MIT/GNU Scheme is distributed in the hope that it will be useful, but 16WITHOUT ANY WARRANTY; without even the implied warranty of 17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18General Public License for more details. 19 20You should have received a copy of the GNU General Public License 21along with MIT/GNU Scheme; if not, write to the Free Software 22Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, 23USA. 24 25|# 26 27;;;; OS/2 PM Interface -- Primitives 28;;; package: (runtime os2-window-primitives) 29 30(declare (usual-integrations)) 31 32(define-primitives 33 (os2-clipboard-read-text 0) 34 (os2-clipboard-write-text 1) 35 (os2-map-window-point 3) 36 (os2-window-handle-from-id 2) 37 (os2menu-create 3) 38 (os2menu-destroy 1) 39 (os2menu-get-item 3) 40 (os2menu-get-item-attributes 4) 41 (os2menu-insert-item 7) 42 (os2menu-n-items 1) 43 (os2menu-nth-item 2) 44 (os2menu-remove-item 4) 45 (os2menu-set-item-attributes 5) 46 (os2pm-synchronize 0) 47 (os2ps-bitblt 6) 48 (os2ps-clear 5) 49 (os2ps-create-bitmap 3) 50 (os2ps-create-memory-ps 0) 51 (os2ps-destroy-bitmap 1) 52 (os2ps-destroy-memory-ps 1) 53 (os2ps-draw-point 3) 54 (os2ps-get-bitmap 1) 55 (os2ps-get-bitmap-bits 5) 56 (os2ps-get-bitmap-parameters 1) 57 (os2ps-get-font-metrics 1) 58 (os2ps-line 3) 59 (os2ps-move-graphics-cursor 3) 60 (os2ps-poly-line 3) 61 (os2ps-poly-line-disjoint 3) 62 (os2ps-query-capabilities 3) 63 (os2ps-query-capability 2) 64 (os2ps-reset-clip-rectangle 1) 65 (os2ps-set-bitmap 2) 66 (os2ps-set-bitmap-bits 5) 67 (os2ps-set-clip-rectangle 5) 68 (os2ps-set-colors 3) 69 (os2ps-set-font 3) 70 (os2ps-set-line-type 2) 71 (os2ps-set-mix 2) 72 (os2ps-text-width 4) 73 (os2ps-write 6) 74 (os2win-activate 1) 75 (os2win-alarm 1) 76 (os2win-beep 2) 77 (os2win-client-handle 1) 78 (os2win-close 1) 79 (os2win-close-event-qid 1) 80 (os2win-console-wid 0) 81 (os2win-desktop-height 0) 82 (os2win-desktop-width 0) 83 (os2win-destroy-pointer 1) 84 (os2win-event-ready? 2) 85 (os2win-focus? 1) 86 (os2win-font-dialog 2) 87 (os2win-frame-handle 1) 88 (os2win-get-event 2) 89 (os2win-get-frame-size 1) 90 (os2win-get-pos 1) 91 (os2win-get-size 1) 92 (os2win-invalidate 5) 93 (os2win-load-pointer 3) 94 (os2win-load-menu 3) 95 (os2win-move-cursor 3) 96 (os2win-open 2) 97 (os2win-open-event-qid 0) 98 (os2win-popup-menu 7) 99 (os2win-ps 1) 100 (os2win-query-sys-value 2) 101 (os2win-scroll 7) 102 (os2win-set-capture 2) 103 (os2win-set-grid 3) 104 (os2win-set-icon 2) 105 (os2win-set-pos 3) 106 (os2win-set-size 3) 107 (os2win-set-state 2) 108 (os2win-set-title 2) 109 (os2win-shape-cursor 4) 110 (os2win-show 2) 111 (os2win-show-cursor 2) 112 (os2win-track-mouse 2) 113 (os2win-update-frame 2)) 114 115(define-integrable (event-type event) (vector-ref event 0)) 116(define-integrable (event-wid event) (vector-ref event 1)) 117(define-integrable (set-event-wid! event wid) (vector-set! event 1 wid)) 118 119(define-syntax define-event 120 (sc-macro-transformer 121 (lambda (form environment) 122 (let ((name (cadr form)) 123 (type (close-syntax (caddr form) environment)) 124 (slots (cdddr form))) 125 `(BEGIN 126 (DEFINE-INTEGRABLE ,(symbol-append 'EVENT-TYPE: name) ,type) 127 ,@(let loop ((slots slots) (index 2)) 128 (if (pair? slots) 129 (cons `(DEFINE-INTEGRABLE 130 (,(symbol-append name '-EVENT/ (car slots)) EVENT) 131 (VECTOR-REF EVENT ,index)) 132 (loop (cdr slots) (+ index 1))) 133 '()))))))) 134 135;; These must match "microcode/pros2pm.c" 136(define-event button 0 number type x y flags) 137(define-event close 1) 138(define-event focus 2 gained?) 139(define-event key 3 code flags repeat) 140(define-event paint 4 xl xh yl yh) 141(define-event resize 5 width height) 142(define-event visibility 6 shown?) 143(define-event command 7 code source mouse?) 144(define-event help 8 code source mouse?) 145(define-event mousemove 9 x y hit-test flags) 146 147(define-integrable number-of-event-types 10) 148 149(define-integrable button-event-type:down 0) 150(define-integrable button-event-type:up 1) 151(define-integrable button-event-type:click 2) 152(define-integrable button-event-type:double-click 3) 153 154(define-structure (font-metrics (type vector) (conc-name font-metrics/)) 155 (width #f read-only #t) 156 (height #f read-only #t) 157 (descender #f read-only #t)) 158 159;;; Constants from OS/2 header file "pmwin.h": 160 161(define-integrable CURSOR_SOLID #x0000) 162(define-integrable CURSOR_HALFTONE #x0001) 163(define-integrable CURSOR_FRAME #x0002) 164(define-integrable CURSOR_FLASH #x0004) 165 166(define-integrable VK_BUTTON1 #x01) 167(define-integrable VK_BUTTON2 #x02) 168(define-integrable VK_BUTTON3 #x03) 169(define-integrable VK_BREAK #x04) 170(define-integrable VK_BACKSPACE #x05) 171(define-integrable VK_TAB #x06) 172(define-integrable VK_BACKTAB #x07) 173(define-integrable VK_NEWLINE #x08) 174(define-integrable VK_SHIFT #x09) 175(define-integrable VK_CTRL #x0A) 176(define-integrable VK_ALT #x0B) 177(define-integrable VK_ALTGRAF #x0C) 178(define-integrable VK_PAUSE #x0D) 179(define-integrable VK_CAPSLOCK #x0E) 180(define-integrable VK_ESC #x0F) 181(define-integrable VK_SPACE #x10) 182(define-integrable VK_PAGEUP #x11) 183(define-integrable VK_PAGEDOWN #x12) 184(define-integrable VK_END #x13) 185(define-integrable VK_HOME #x14) 186(define-integrable VK_LEFT #x15) 187(define-integrable VK_UP #x16) 188(define-integrable VK_RIGHT #x17) 189(define-integrable VK_DOWN #x18) 190(define-integrable VK_PRINTSCRN #x19) 191(define-integrable VK_INSERT #x1A) 192(define-integrable VK_DELETE #x1B) 193(define-integrable VK_SCRLLOCK #x1C) 194(define-integrable VK_NUMLOCK #x1D) 195(define-integrable VK_ENTER #x1E) 196(define-integrable VK_SYSRQ #x1F) 197(define-integrable VK_F1 #x20) 198(define-integrable VK_F2 #x21) 199(define-integrable VK_F3 #x22) 200(define-integrable VK_F4 #x23) 201(define-integrable VK_F5 #x24) 202(define-integrable VK_F6 #x25) 203(define-integrable VK_F7 #x26) 204(define-integrable VK_F8 #x27) 205(define-integrable VK_F9 #x28) 206(define-integrable VK_F10 #x29) 207(define-integrable VK_F11 #x2A) 208(define-integrable VK_F12 #x2B) 209(define-integrable VK_F13 #x2C) 210(define-integrable VK_F14 #x2D) 211(define-integrable VK_F15 #x2E) 212(define-integrable VK_F16 #x2F) 213(define-integrable VK_F17 #x30) 214(define-integrable VK_F18 #x31) 215(define-integrable VK_F19 #x32) 216(define-integrable VK_F20 #x33) 217(define-integrable VK_F21 #x34) 218(define-integrable VK_F22 #x35) 219(define-integrable VK_F23 #x36) 220(define-integrable VK_F24 #x37) 221(define-integrable VK_ENDDRAG #x38) 222(define-integrable VK_CLEAR #x39) 223(define-integrable VK_EREOF #x3A) 224(define-integrable VK_PA1 #x3B) 225(define-integrable virtual-key-supremum #x3C) 226 227(define-integrable KC_NONE #x0000) 228(define-integrable KC_CHAR #x0001) 229(define-integrable KC_VIRTUALKEY #x0002) 230(define-integrable KC_SCANCODE #x0004) 231(define-integrable KC_SHIFT #x0008) 232(define-integrable KC_CTRL #x0010) 233(define-integrable KC_ALT #x0020) 234(define-integrable KC_KEYUP #x0040) 235(define-integrable KC_PREVDOWN #x0080) 236(define-integrable KC_LONEKEY #x0100) 237(define-integrable KC_DEADKEY #x0200) 238(define-integrable KC_COMPOSITE #x0400) 239(define-integrable KC_INVALIDCOMP #x0800) 240(define-integrable KC_TOGGLE #x1000) 241(define-integrable KC_INVALIDCHAR #x2000) 242 243(define-integrable LINETYPE_DEFAULT 0) 244(define-integrable LINETYPE_DOT 1) 245(define-integrable LINETYPE_SHORTDASH 2) 246(define-integrable LINETYPE_DASHDOT 3) 247(define-integrable LINETYPE_DOUBLEDOT 4) 248(define-integrable LINETYPE_LONGDASH 5) 249(define-integrable LINETYPE_DASHDOUBLEDOT 6) 250(define-integrable LINETYPE_SOLID 7) 251(define-integrable LINETYPE_INVISIBLE 8) 252(define-integrable LINETYPE_ALTERNATE 9) 253 254(define-integrable FM_DEFAULT 0) 255(define-integrable FM_OR 1) 256(define-integrable FM_OVERPAINT 2) 257(define-integrable FM_XOR 4) 258(define-integrable FM_LEAVEALONE 5) 259(define-integrable FM_AND 6) 260(define-integrable FM_SUBTRACT 7) 261(define-integrable FM_MASKSRCNOT 8) 262(define-integrable FM_ZERO 9) 263(define-integrable FM_NOTMERGESRC 10) 264(define-integrable FM_NOTXORSRC 11) 265(define-integrable FM_INVERT 12) 266(define-integrable FM_MERGESRCNOT 13) 267(define-integrable FM_NOTCOPYSRC 14) 268(define-integrable FM_MERGENOTSRC 15) 269(define-integrable FM_NOTMASKSRC 16) 270(define-integrable FM_ONE 17) 271 272(define-integrable window-state:top 0) 273(define-integrable window-state:bottom 1) 274(define-integrable window-state:show 2) 275(define-integrable window-state:hide 3) 276(define-integrable window-state:activate 4) 277(define-integrable window-state:deactivate 5) 278(define-integrable window-state:minimize 6) 279(define-integrable window-state:maximize 7) 280(define-integrable window-state:restore 8) 281 282(define-integrable WS_VISIBLE #x80000000) 283(define-integrable WS_DISABLED #x40000000) 284(define-integrable WS_CLIPCHILDREN #x20000000) 285(define-integrable WS_CLIPSIBLINGS #x10000000) 286(define-integrable WS_PARENTCLIP #x08000000) 287(define-integrable WS_SAVEBITS #x04000000) 288(define-integrable WS_SYNCPAINT #x02000000) 289(define-integrable WS_MINIMIZED #x01000000) 290(define-integrable WS_MAXIMIZED #x00800000) 291(define-integrable WS_ANIMATE #x00400000) 292 293;; codes for OS2PS-QUERY-CAPABILITIES and OS2PS-QUERY-CAPABILITY 294(define-integrable CAPS_FAMILY 0) 295(define-integrable CAPS_IO_CAPS 1) 296(define-integrable CAPS_TECHNOLOGY 2) 297(define-integrable CAPS_DRIVER_VERSION 3) 298(define-integrable CAPS_WIDTH 4) ;pels 299(define-integrable CAPS_HEIGHT 5) ;pels 300(define-integrable CAPS_WIDTH_IN_CHARS 6) 301(define-integrable CAPS_HEIGHT_IN_CHARS 7) 302(define-integrable CAPS_HORIZONTAL_RESOLUTION 8) ;pels per meter 303(define-integrable CAPS_VERTICAL_RESOLUTION 9) ;pels per meter 304(define-integrable CAPS_CHAR_WIDTH 10) ;pels 305(define-integrable CAPS_CHAR_HEIGHT 11) ;pels 306(define-integrable CAPS_SMALL_CHAR_WIDTH 12) ;pels 307(define-integrable CAPS_SMALL_CHAR_HEIGHT 13) ;pels 308(define-integrable CAPS_COLORS 14) 309(define-integrable CAPS_COLOR_PLANES 15) 310(define-integrable CAPS_COLOR_BITCOUNT 16) 311(define-integrable CAPS_COLOR_TABLE_SUPPORT 17) 312(define-integrable CAPS_MOUSE_BUTTONS 18) 313(define-integrable CAPS_FOREGROUND_MIX_SUPPORT 19) 314(define-integrable CAPS_BACKGROUND_MIX_SUPPORT 20) 315(define-integrable CAPS_VIO_LOADABLE_FONTS 21) 316(define-integrable CAPS_WINDOW_BYTE_ALIGNMENT 22) 317(define-integrable CAPS_BITMAP_FORMATS 23) 318(define-integrable CAPS_RASTER_CAPS 24) 319(define-integrable CAPS_MARKER_HEIGHT 25) ;pels 320(define-integrable CAPS_MARKER_WIDTH 26) ;pels 321(define-integrable CAPS_DEVICE_FONTS 27) 322(define-integrable CAPS_GRAPHICS_SUBSET 28) 323(define-integrable CAPS_GRAPHICS_VERSION 29) 324(define-integrable CAPS_GRAPHICS_VECTOR_SUBSET 30) 325(define-integrable CAPS_DEVICE_WINDOWING 31) 326(define-integrable CAPS_ADDITIONAL_GRAPHICS 32) 327(define-integrable CAPS_PHYS_COLORS 33) 328(define-integrable CAPS_COLOR_INDEX 34) 329(define-integrable CAPS_GRAPHICS_CHAR_WIDTH 35) 330(define-integrable CAPS_GRAPHICS_CHAR_HEIGHT 36) 331(define-integrable CAPS_HORIZONTAL_FONT_RES 37) 332(define-integrable CAPS_VERTICAL_FONT_RES 38) 333(define-integrable CAPS_DEVICE_FONT_SIM 39) 334(define-integrable CAPS_LINEWIDTH_THICK 40) 335(define-integrable CAPS_DEVICE_POLYSET_POINTS 41) 336 337;; Constants for CAPS_IO_CAPS 338(define-integrable CAPS_IO_DUMMY 1) 339(define-integrable CAPS_IO_SUPPORTS_OP 2) 340(define-integrable CAPS_IO_SUPPORTS_IP 3) 341(define-integrable CAPS_IO_SUPPORTS_IO 4) 342 343;; Constants for CAPS_TECHNOLOGY 344(define-integrable CAPS_TECH_UNKNOWN 0) 345(define-integrable CAPS_TECH_VECTOR_PLOTTER 1) 346(define-integrable CAPS_TECH_RASTER_DISPLAY 2) 347(define-integrable CAPS_TECH_RASTER_PRINTER 3) 348(define-integrable CAPS_TECH_RASTER_CAMERA 4) 349(define-integrable CAPS_TECH_POSTSCRIPT 5) 350 351;; Constants for CAPS_COLOR_TABLE_SUPPORT 352(define-integrable CAPS_COLTABL_RGB_8 #x0001) 353(define-integrable CAPS_COLTABL_RGB_8_PLUS #x0002) 354(define-integrable CAPS_COLTABL_TRUE_MIX #x0004) 355(define-integrable CAPS_COLTABL_REALIZE #x0008) 356 357;; Constants for CAPS_FOREGROUND_MIX_SUPPORT 358(define-integrable CAPS_FM_OR #x0001) 359(define-integrable CAPS_FM_OVERPAINT #x0002) 360(define-integrable CAPS_FM_XOR #x0008) 361(define-integrable CAPS_FM_LEAVEALONE #x0010) 362(define-integrable CAPS_FM_AND #x0020) 363(define-integrable CAPS_FM_GENERAL_BOOLEAN #x0040) 364 365;; Constants for CAPS_BACKGROUND_MIX_SUPPORT 366(define-integrable CAPS_BM_OR #x0001) 367(define-integrable CAPS_BM_OVERPAINT #x0002) 368(define-integrable CAPS_BM_XOR #x0008) 369(define-integrable CAPS_BM_LEAVEALONE #x0010) 370(define-integrable CAPS_BM_AND #x0020) 371(define-integrable CAPS_BM_GENERAL_BOOLEAN #x0040) 372(define-integrable CAPS_BM_SRCTRANSPARENT #x0080) 373(define-integrable CAPS_BM_DESTTRANSPARENT #x0100) 374 375;; Constants for CAPS_DEVICE_WINDOWING 376(define-integrable CAPS_DEV_WINDOWING_SUPPORT 1) 377 378;; Constants for CAPS_ADDITIONAL_GRAPHICS 379(define-integrable CAPS_VDD_DDB_TRANSFER #x0001) 380(define-integrable CAPS_GRAPHICS_KERNING_SUPPORT #x0002) 381(define-integrable CAPS_FONT_OUTLINE_DEFAULT #x0004) 382(define-integrable CAPS_FONT_IMAGE_DEFAULT #x0008) 383;; bits represented by values #x0010 and #x0020 are reserved 384(define-integrable CAPS_SCALED_DEFAULT_MARKERS #x0040) 385(define-integrable CAPS_COLOR_CURSOR_SUPPORT #x0080) 386(define-integrable CAPS_PALETTE_MANAGER #x0100) 387(define-integrable CAPS_COSMETIC_WIDELINE_SUPPORT #x0200) 388(define-integrable CAPS_DIRECT_FILL #x0400) 389(define-integrable CAPS_REBUILD_FILLS #x0800) 390(define-integrable CAPS_CLIP_FILLS #x1000) 391(define-integrable CAPS_ENHANCED_FONTMETRICS #x2000) 392(define-integrable CAPS_TRANSFORM_SUPPORT #x4000) 393 394;; Constants for CAPS_WINDOW_BYTE_ALIGNMENT 395(define-integrable CAPS_BYTE_ALIGN_REQUIRED 0) 396(define-integrable CAPS_BYTE_ALIGN_RECOMMENDED 1) 397(define-integrable CAPS_BYTE_ALIGN_NOT_REQUIRED 2) 398 399;; Constants for CAPS_RASTER_CAPS 400(define-integrable CAPS_RASTER_BITBLT #x0001) 401(define-integrable CAPS_RASTER_BANDING #x0002) 402(define-integrable CAPS_RASTER_BITBLT_SCALING #x0004) 403(define-integrable CAPS_RASTER_SET_PEL #x0010) 404(define-integrable CAPS_RASTER_FONTS #x0020) 405(define-integrable CAPS_RASTER_FLOOD_FILL #x0040) 406 407;; Constants for OS2PS-BITBLT raster-op argument 408(define-integrable ROP_SRCCOPY #xCC) 409(define-integrable ROP_SRCPAINT #xEE) 410(define-integrable ROP_SRCAND #x88) 411(define-integrable ROP_SRCINVERT #x66) 412(define-integrable ROP_SRCERASE #x44) 413(define-integrable ROP_NOTSRCCOPY #x33) 414(define-integrable ROP_NOTSRCERASE #x11) 415(define-integrable ROP_MERGECOPY #xC0) 416(define-integrable ROP_MERGEPAINT #xBB) 417(define-integrable ROP_PATCOPY #xF0) 418(define-integrable ROP_PATPAINT #xFB) 419(define-integrable ROP_PATINVERT #x5A) 420(define-integrable ROP_DSTINVERT #x55) 421(define-integrable ROP_ZERO #x00) 422(define-integrable ROP_ONE #xFF) 423 424;; Constants for OS2PS-BITBLT options argument 425(define-integrable BBO_OR 0) 426(define-integrable BBO_AND 1) 427(define-integrable BBO_IGNORE 2) 428(define-integrable BBO_PAL_COLORS 4) 429(define-integrable BBO_NO_COLOR_INFO 8) 430 431;; Menu item positions: 432(define-integrable MIT_END #xFFFF) 433(define-integrable MIT_NONE #xFFFF) 434(define-integrable MIT_MEMERROR #xFFFF) 435(define-integrable MIT_ERROR #xFFFF) 436(define-integrable MIT_FIRST #xFFFE) 437(define-integrable MIT_LAST #xFFFD) 438 439;; Menu item styles: 440(define-integrable MIS_TEXT #x0001) 441(define-integrable MIS_BITMAP #x0002) 442(define-integrable MIS_SEPARATOR #x0004) 443(define-integrable MIS_OWNERDRAW #x0008) 444(define-integrable MIS_SUBMENU #x0010) 445(define-integrable MIS_MULTMENU #x0020) ;multiple choice submenu 446(define-integrable MIS_SYSCOMMAND #x0040) 447(define-integrable MIS_HELP #x0080) 448(define-integrable MIS_STATIC #x0100) 449(define-integrable MIS_BUTTONSEPARATOR #x0200) 450(define-integrable MIS_BREAK #x0400) 451(define-integrable MIS_BREAKSEPARATOR #x0800) 452(define-integrable MIS_GROUP #x1000) ;multiple choice group 453;; In multiple choice submenus a style of 'single' denotes the item is 454;; a radiobutton. Absence of this style defaults the item to a 455;; checkbox. 456(define-integrable MIS_SINGLE #x2000) 457 458;; Menu item attributes: 459(define-integrable MIA_NODISMISS #x0020) 460(define-integrable MIA_FRAMED #x1000) 461(define-integrable MIA_CHECKED #x2000) 462(define-integrable MIA_DISABLED #x4000) 463(define-integrable MIA_HILITED #x8000) 464 465(define-integrable FID_SYSMENU #x8002) 466(define-integrable FID_TITLEBAR #x8003) 467(define-integrable FID_MINMAX #x8004) 468(define-integrable FID_MENU #x8005) 469(define-integrable FID_VERTSCROLL #x8006) 470(define-integrable FID_HORZSCROLL #x8007) 471(define-integrable FID_CLIENT #x8008) 472 473;; Menu control styles */ 474(define-integrable MS_ACTIONBAR #x0001) 475(define-integrable MS_TITLEBUTTON #x0002) 476(define-integrable MS_VERTICALFLIP #x0004) 477(define-integrable MS_CONDITIONALCASCADE #x0040) 478 479;; Frame window styles: 480(define-integrable FCF_TITLEBAR #x00000001) 481(define-integrable FCF_SYSMENU #x00000002) 482(define-integrable FCF_MENU #x00000004) 483(define-integrable FCF_SIZEBORDER #x00000008) 484(define-integrable FCF_MINBUTTON #x00000010) 485(define-integrable FCF_MAXBUTTON #x00000020) 486(define-integrable FCF_MINMAX #x00000030) 487(define-integrable FCF_VERTSCROLL #x00000040) 488(define-integrable FCF_HORZSCROLL #x00000080) 489(define-integrable FCF_DLGBORDER #x00000100) 490(define-integrable FCF_BORDER #x00000200) 491(define-integrable FCF_SHELLPOSITION #x00000400) 492(define-integrable FCF_TASKLIST #x00000800) 493(define-integrable FCF_NOBYTEALIGN #x00001000) 494(define-integrable FCF_NOMOVEWITHOWNER #x00002000) 495(define-integrable FCF_ICON #x00004000) 496(define-integrable FCF_ACCELTABLE #x00008000) 497(define-integrable FCF_SYSMODAL #x00010000) 498(define-integrable FCF_SCREENALIGN #x00020000) 499(define-integrable FCF_MOUSEALIGN #x00040000) 500(define-integrable FCF_HIDEBUTTON #x01000000) 501(define-integrable FCF_HIDEMAX #x01000020) 502(define-integrable FCF_AUTOICON #x40000000) 503(define-integrable FCF_STANDARD #x0000CC3F) 504 505;;; Window handles. 506(define-integrable NULLHANDLE 0) 507(define-integrable HWND_DESKTOP 1) 508 509;;; Hit-test values (event-type:mousemove). 510(define-integrable HT_NORMAL 0) 511(define-integrable HT_TRANSPARENT -1) 512(define-integrable HT_DISCARD -2) 513(define-integrable HT_ERROR -3) 514 515;;; Pop-up menu option flags. 516(define-integrable PU_POSITIONONITEM #x0001) 517(define-integrable PU_HCONSTRAIN #x0002) 518(define-integrable PU_VCONSTRAIN #x0004) 519(define-integrable PU_NONE #x0000) 520(define-integrable PU_MOUSEBUTTON1DOWN #x0008) 521(define-integrable PU_MOUSEBUTTON2DOWN #x0010) 522(define-integrable PU_MOUSEBUTTON3DOWN #x0018) 523(define-integrable PU_SELECTITEM #x0020) 524(define-integrable PU_MOUSEBUTTON1 #x0040) 525(define-integrable PU_MOUSEBUTTON2 #x0080) 526(define-integrable PU_MOUSEBUTTON3 #x0100) 527(define-integrable PU_KEYBOARD #x0200) 528 529;;; Alarm types (os2win-alarm). 530(define-integrable WA_WARNING 0) 531(define-integrable WA_NOTE 1) 532(define-integrable WA_ERROR 2) 533 534(define-integrable SPTR_ARROW 1) 535(define-integrable SPTR_TEXT 2) 536(define-integrable SPTR_WAIT 3) 537(define-integrable SPTR_SIZE 4) 538(define-integrable SPTR_MOVE 5) 539(define-integrable SPTR_SIZENWSE 6) 540(define-integrable SPTR_SIZENESW 7) 541(define-integrable SPTR_SIZEWE 8) 542(define-integrable SPTR_SIZENS 9) 543(define-integrable SPTR_APPICON 10) 544(define-integrable SPTR_ICONINFORMATION 11) 545(define-integrable SPTR_ICONQUESTION 12) 546(define-integrable SPTR_ICONERROR 13) 547(define-integrable SPTR_ICONWARNING 14) 548(define-integrable SPTR_ILLEGAL 18) 549(define-integrable SPTR_FILE 19) 550(define-integrable SPTR_FOLDER 20) 551(define-integrable SPTR_MULTFILE 21) 552(define-integrable SPTR_PROGRAM 22) 553 554;;; Constants for use with os2win-load-pointer. 555(define-integrable IDI_BCH 10) 556(define-integrable IDI_COFFEE 11) 557(define-integrable IDI_CONSES 12) 558(define-integrable IDI_EDWIN 13) 559(define-integrable IDI_ENVIR1 14) 560(define-integrable IDI_GRAPHICS 15) 561(define-integrable IDI_LAMBDA 16) 562(define-integrable IDI_LAMBDA2 17) 563(define-integrable IDI_LIAR1 18) 564(define-integrable IDI_LIAR2 19) 565(define-integrable IDI_LIAR3 20) 566(define-integrable IDI_MINCER 21) 567(define-integrable IDI_SHIELD1 22) 568(define-integrable IDI_SHIELD2 23) 569(define-integrable IDI_SHIELD3 24) 570(define-integrable IDI_SHIELD4 25) 571 572(define-integrable SV_SWAPBUTTON 0) 573(define-integrable SV_DBLCLKTIME 1) 574(define-integrable SV_CXDBLCLK 2) 575(define-integrable SV_CYDBLCLK 3) 576(define-integrable SV_CXSIZEBORDER 4) 577(define-integrable SV_CYSIZEBORDER 5) 578(define-integrable SV_ALARM 6) 579;;; 7-8 580(define-integrable SV_CURSORRATE 9) 581(define-integrable SV_FIRSTSCROLLRATE 10) 582(define-integrable SV_SCROLLRATE 11) 583(define-integrable SV_NUMBEREDLISTS 12) 584(define-integrable SV_WARNINGFREQ 13) 585(define-integrable SV_NOTEFREQ 14) 586(define-integrable SV_ERRORFREQ 15) 587(define-integrable SV_WARNINGDURATION 16) 588(define-integrable SV_NOTEDURATION 17) 589(define-integrable SV_ERRORDURATION 18) 590;;; 19 591(define-integrable SV_CXSCREEN 20) 592(define-integrable SV_CYSCREEN 21) 593(define-integrable SV_CXVSCROLL 22) 594(define-integrable SV_CYHSCROLL 23) 595(define-integrable SV_CYVSCROLLARROW 24) 596(define-integrable SV_CXHSCROLLARROW 25) 597(define-integrable SV_CXBORDER 26) 598(define-integrable SV_CYBORDER 27) 599(define-integrable SV_CXDLGFRAME 28) 600(define-integrable SV_CYDLGFRAME 29) 601(define-integrable SV_CYTITLEBAR 30) 602(define-integrable SV_CYVSLIDER 31) 603(define-integrable SV_CXHSLIDER 32) 604(define-integrable SV_CXMINMAXBUTTON 33) 605(define-integrable SV_CYMINMAXBUTTON 34) 606(define-integrable SV_CYMENU 35) 607(define-integrable SV_CXFULLSCREEN 36) 608(define-integrable SV_CYFULLSCREEN 37) 609(define-integrable SV_CXICON 38) 610(define-integrable SV_CYICON 39) 611(define-integrable SV_CXPOINTER 40) 612(define-integrable SV_CYPOINTER 41) 613(define-integrable SV_DEBUG 42) 614(define-integrable SV_CMOUSEBUTTONS 43) 615(define-integrable SV_CPOINTERBUTTONS 43) 616(define-integrable SV_POINTERLEVEL 44) 617(define-integrable SV_CURSORLEVEL 45) 618(define-integrable SV_TRACKRECTLEVEL 46) 619(define-integrable SV_CTIMERS 47) 620(define-integrable SV_MOUSEPRESENT 48) 621(define-integrable SV_CXBYTEALIGN 49) 622(define-integrable SV_CXALIGN 49) 623(define-integrable SV_CYBYTEALIGN 50) 624(define-integrable SV_CYALIGN 50) 625;;; 51-55 626(define-integrable SV_NOTRESERVED 56) 627(define-integrable SV_EXTRAKEYBEEP 57) 628(define-integrable SV_SETLIGHTS 58) 629(define-integrable SV_INSERTMODE 59) 630;;; 60-63 631(define-integrable SV_MENUROLLDOWNDELAY 64) 632(define-integrable SV_MENUROLLUPDELAY 65) 633(define-integrable SV_ALTMNEMONIC 66) 634(define-integrable SV_TASKLISTMOUSEACCESS 67) 635(define-integrable SV_CXICONTEXTWIDTH 68) 636(define-integrable SV_CICONTEXTLINES 69) 637(define-integrable SV_CHORDTIME 70) 638(define-integrable SV_CXCHORD 71) 639(define-integrable SV_CYCHORD 72) 640(define-integrable SV_CXMOTIONSTART 73) 641(define-integrable SV_CYMOTIONSTART 74) 642(define-integrable SV_BEGINDRAG 75) 643(define-integrable SV_ENDDRAG 76) 644(define-integrable SV_SINGLESELECT 77) 645(define-integrable SV_OPEN 78) 646(define-integrable SV_CONTEXTMENU 79) 647(define-integrable SV_CONTEXTHELP 80) 648(define-integrable SV_TEXTEDIT 81) 649(define-integrable SV_BEGINSELECT 82) 650(define-integrable SV_ENDSELECT 83) 651(define-integrable SV_BEGINDRAGKB 84) 652(define-integrable SV_ENDDRAGKB 85) 653(define-integrable SV_SELECTKB 86) 654(define-integrable SV_OPENKB 87) 655(define-integrable SV_CONTEXTMENUKB 88) 656(define-integrable SV_CONTEXTHELPKB 89) 657(define-integrable SV_TEXTEDITKB 90) 658(define-integrable SV_BEGINSELECTKB 91) 659(define-integrable SV_ENDSELECTKB 92) 660(define-integrable SV_ANIMATION 93) 661(define-integrable SV_ANIMATIONSPEED 94) 662(define-integrable SV_MONOICONS 95) 663(define-integrable SV_KBDALTERED 96) 664(define-integrable SV_PRINTSCREEN 97) 665(define-integrable SV_LOCKSTARTINPUT 98) 666;;; 99-104 667(define-integrable SV_CSYSVALUES 105)