Vom warmen Sommerabend-Stammtisch gibt es zwei Dinge zu berichten.
1. Ort des August Stammtisch mit Capi Workshop
Ulli hatte die FH Wedel angeboten, Stefan seine Firma freiheit. Beide
waren nicht anwesend, so dass wir noch nichts festgezurrt haben und nur
ein Meinungsbild erstellt haben. Dies zeigt eine leichte Präferenz für
freiheit wegen der zentraleren Lage.
Weitere Infos folgen.
2. Für den CAPI Workshop haben wir etwas vorgearbeitet. Hier das
Ergebnis (braucht LispWorks):
(defpackage :taschenrechner
(:use :cl :capi))
(in-package :taschenrechner)
(defun press-button (data interface)
(with-slots (x y) interface
(cond ((numberp data)
(setf x (+ (* 10 x) data)))
((eq data '+)
(setf y x)
(setf x 0))
((eq data '=)
(setf x (+ x y))
(setf y 0)))
(display-tip x interface)))
(defun display-tip (data interface)
(with-slots (tip) interface
(setf (text-input-pane-text tip)
(format nil "~a" data))))
(define-interface taschi ()
((x :initform 0
:documentation "x-Register: Wert im Display")
(y :initform 0
:documentation "y-Register: Zwischenspeicher fuer 1. Summand"))
(:panes
(tip text-input-pane
:enabled nil
:text "0")
(but push-button-panel
:items '(1 2 3 4 5 6 7 8 9 0 + =)
:layout-class 'capi:grid-layout
:layout-args '(:columns 3)
:selection-callback 'press-button))
(:default-initargs :title "Taschi"))
(display (make-instance 'taschi))
Gruss
Jens
PS ich habe auf der Rückfahrt noch ein kleines wenig nachgearbeitet,
aber nur ein klitzekleines bischen.
PS2 offen ist die Frage von Lutz, wie das text-input-pane rechtsbündig
ausgerichtet werden kann.