Qt_EQL: update docu; example 9: tiny fixes
[eql:eql.git] / Qt_EQL / EQL / trafficlight.lisp
1 (progn
2   ;; optional: Lisp server for listening to an editor
3   (load "EQL/eql-local-server.fas")                 ; see example 9: make-local-server-fasl.lisp
4   (eql:qset (eql:qapp) "quitOnLastWindowClosed" t)) ; to exit "local-server"
5
6 (defpackage :trafficlight
7   (:use :common-lisp :eql)
8   (:export
9    #:paint-event))
10
11 (in-package :trafficlight)
12
13 (let ((painter (qnew "QPainter"))
14       (pen (qnew "QPen"))
15       (brush (qnew "QBrush(Qt::BrushStyle)" |Qt.SolidPattern|)))
16   (defun paint-event (widget color width height)
17     ;;(x:d widget (qget widget "objectName") color) ; debug output
18     ;;(local-server:output)                         ; get output buffer (for editor output widget)
19     (qfun brush "setColor(QColor)" color)
20     (qfun pen "setColor" "steelblue")
21     (qfun pen "setWidth" 5)
22     (x:do-with (qfun painter)
23       ("begin(QWidget*)" widget)
24       ("setRenderHint" |QPainter.Antialiasing|)
25       ("setPen(QPen)" pen)
26       ("setBrush(QBrush)" brush)
27       ;;("drawRect(QRect)" (list 5 5 (- width 10) (- height 10))) ; square
28       ("drawEllipse(QRect)" (list 5 5 (- width 10) (- height 10))) ; circle
29       "end")))