42 lines
1 KiB
Text
42 lines
1 KiB
Text
#!/usr/local/bin/newlisp
|
|
;;
|
|
; move-resize-demo.lsp - demonstrate gs:window-moved and hs:window-resized events
|
|
|
|
;;;; initialization
|
|
(load (append (env "NEWLISPDIR") "/guiserver.lsp"))
|
|
|
|
(gs:init)
|
|
;(gs:set-trace true)
|
|
|
|
;;;; describe the GUI
|
|
(gs:frame 'EventDemo 100 100 300 100 "Move or resize window")
|
|
(gs:set-border-layout 'EventDemo)
|
|
(gs:label 'Position "")
|
|
(gs:label 'Size "")
|
|
(gs:set-font 'Position "Mono Spaced" 24 "bold")
|
|
(gs:set-foreground 'Position 0 0 0.5 )
|
|
(gs:set-font 'Size "Mono Spaced" 24 "bold")
|
|
(gs:set-foreground 'Size 0 0 0.5 )
|
|
|
|
(gs:add-to 'EventDemo 'Position "north")
|
|
(gs:add-to 'EventDemo 'Size "south")
|
|
|
|
(gs:window-moved 'EventDemo 'move-action)
|
|
(gs:window-resized 'EventDemo 'resize-action)
|
|
|
|
;;;; define actions
|
|
|
|
(define (move-action id x y)
|
|
(gs:set-text 'Position (string "Position " x ":" y)))
|
|
|
|
(define (resize-action id width height)
|
|
(gs:set-text 'Size (string "Size " width ":" height)))
|
|
|
|
|
|
(gs:set-visible 'EventDemo true)
|
|
|
|
;;;; listen for incoming action requests and dispatch
|
|
(gs:listen)
|
|
|
|
;; eof
|
|
|