home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mitsch75.zip / scheme-7_5_17-src.zip / scheme-7.5.17 / src / runtime / os2winp.scm < prev    next >
Text File  |  1999-01-02  |  27KB  |  657 lines

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