Artifact
9b1370885d4e6b704b76640180802dbbb64de2bb:
0000: 28 72 65 71 75 69 72 65 2d 6c 69 62 72 61 72 79 (require-library
0010: 20 63 61 6e 76 61 73 2d 64 72 61 77 2d 62 61 73 canvas-draw-bas
0020: 65 29 0a 0a 28 6d 6f 64 75 6c 65 20 63 61 6e 76 e)..(module canv
0030: 61 73 2d 64 72 61 77 2d 69 75 70 0a 09 28 63 6f as-draw-iup..(co
0040: 6e 74 65 78 74 3a 69 75 70 20 6d 61 6b 65 2d 63 ntext:iup make-c
0050: 61 6e 76 61 73 2d 61 63 74 69 6f 6e 29 0a 09 28 anvas-action)..(
0060: 69 6d 70 6f 72 74 20 73 63 68 65 6d 65 20 63 68 import scheme ch
0070: 69 63 6b 65 6e 20 66 6f 72 65 69 67 6e 20 63 61 icken foreign ca
0080: 6e 76 61 73 2d 64 72 61 77 2d 62 61 73 65 29 0a nvas-draw-base).
0090: 0a 3b 3b 20 7b 7b 7b 20 44 61 74 61 20 74 79 70 .;; {{{ Data typ
00a0: 65 73 0a 0a 28 66 6f 72 65 69 67 6e 2d 64 65 63 es..(foreign-dec
00b0: 6c 61 72 65 0a 09 22 23 69 6e 63 6c 75 64 65 20 lare.."#include
00c0: 3c 63 64 2e 68 3e 5c 6e 22 0a 09 22 23 69 6e 63 <cd.h>\n".."#inc
00d0: 6c 75 64 65 20 3c 63 64 69 75 70 2e 68 3e 5c 6e lude <cdiup.h>\n
00e0: 22 29 0a 0a 28 69 6e 63 6c 75 64 65 20 22 63 61 ")..(include "ca
00f0: 6e 76 61 73 2d 64 72 61 77 2d 74 79 70 65 73 2e nvas-draw-types.
0100: 73 63 6d 22 29 0a 0a 3b 3b 20 7d 7d 7d 0a 0a 3b scm")..;; }}}..;
0110: 3b 20 7b 7b 7b 20 43 6f 6e 74 65 78 74 20 74 79 ; {{{ Context ty
0120: 70 65 73 0a 0a 28 64 65 66 69 6e 65 20 63 6f 6e pes..(define con
0130: 74 65 78 74 3a 69 75 70 0a 09 28 66 6f 72 65 69 text:iup..(forei
0140: 67 6e 2d 76 61 6c 75 65 20 22 43 44 5f 49 55 50 gn-value "CD_IUP
0150: 22 20 6e 6f 6e 6e 75 6c 6c 2d 63 6f 6e 74 65 78 " nonnull-contex
0160: 74 29 29 0a 0a 3b 3b 20 7d 7d 7d 0a 0a 3b 3b 20 t))..;; }}}..;;
0170: 7b 7b 7b 20 41 75 78 69 6c 69 61 72 79 20 66 75 {{{ Auxiliary fu
0180: 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 66 69 6e 65 nctions..(define
0190: 20 28 6d 61 6b 65 2d 63 61 6e 76 61 73 2d 61 63 (make-canvas-ac
01a0: 74 69 6f 6e 20 70 72 6f 63 29 0a 09 28 6c 65 74 tion proc)..(let
01b0: 20 28 5b 63 61 6e 76 61 73 20 23 66 5d 29 0a 09 ([canvas #f])..
01c0: 09 28 6c 61 6d 62 64 61 20 28 68 61 6e 64 6c 65 .(lambda (handle
01d0: 20 78 20 79 29 0a 09 09 09 28 75 6e 6c 65 73 73 x y)....(unless
01e0: 20 63 61 6e 76 61 73 20 28 73 65 74 21 20 63 61 canvas (set! ca
01f0: 6e 76 61 73 20 28 6d 61 6b 65 2d 63 61 6e 76 61 nvas (make-canva
0200: 73 20 63 6f 6e 74 65 78 74 3a 69 75 70 20 68 61 s context:iup ha
0210: 6e 64 6c 65 29 29 29 0a 09 09 09 28 63 61 6c 6c ndle)))....(call
0220: 2d 77 69 74 68 2d 63 61 6e 76 61 73 20 63 61 6e -with-canvas can
0230: 76 61 73 20 28 63 75 74 20 70 72 6f 63 20 3c 3e vas (cut proc <>
0240: 20 78 20 79 29 29 29 29 29 0a 0a 3b 3b 20 7d 7d x y)))))..;; }}
0250: 7d 0a 0a 29 }..)