(require-library "gui.ss" "gui") (define demo1 (lambda () (let ((frame (make-frame "Demo 1" (make-message "Mike ist doof.")))) (show-frame frame)))) (define demo2 (lambda () (let ((frame (make-frame "Demo 2" (make-button "Drück mich!" (lambda () (display "Dankesehr!") (newline)))))) (show-frame frame)))) (define demo3 (lambda () (let* ((message (make-message "Drück das Knöpfkens")) (button (make-button "Knöpfkens" (lambda () (display "Aua!") (newline)))) (panel (make-vertical-panel (list message button))) (frame (make-frame "Demo 3" panel))) (show-frame frame)))) (define demo4 (lambda () (let* ((message (make-message "Drück das Knöpfkens")) (button (make-button "Knöpfkens" (lambda () (display "Aua!") (newline)))) (panel (make-horizontal-panel (list message button))) (frame (make-frame "Demo 4" panel))) (show-frame frame)))) (define demo5 (lambda () (let* ((message (make-message "Drück ein Knöpfkens")) (button-1 (make-button "Ein Knöpfkens" (lambda () (display "Ein Aua!") (newline)))) (button-2 (make-button "Ein anderes Knöpfkens" (lambda () (display "Ein anderes Aua!") (newline)))) (button-panel (make-horizontal-panel (list button-1 button-2))) (panel (make-vertical-panel (list message button-panel))) (frame (make-frame "Demo 5" panel))) (show-frame frame)))) (define demo6 (lambda () (letrec ((text-field (make-text-field "Tipp was: " (lambda () (display "Getippt: ") (display (text-field-contents text-field)) (newline))))) (let ((frame (make-frame "Demo 6" text-field))) (show-frame frame))))) (define demo7 (lambda () (letrec ((choice (make-choice "Wähl was" (list "Geld" "Liebe") (lambda () (display "Gewählt: ") (display (choice-index choice)) (newline))))) (let ((frame (make-frame "Demo 7" choice))) (show-frame frame))))) (define demo8 (lambda () (let* ((canvas (make-bitmap-canvas 300 200)) (frame (make-frame "Demo 8" canvas))) (show-frame frame) (draw-line canvas 150 10 10 100 red) (draw-line canvas 150 10 290 100 red) (draw-line canvas 10 100 10 190 red) (draw-line canvas 10 100 290 100 red) (draw-line canvas 290 100 290 190 red) (draw-line canvas 10 190 290 190 red) (draw-line canvas 10 100 290 190 red) (draw-line canvas 290 100 10 190 red)))) (define counter (lambda (count) (letrec ((counter-message (make-message "000")) (button (make-button "Inc" (lambda () (set! count (+ 1 count)) (display-count)))) (display-count (lambda () (set-message-text! counter-message (number->string count))))) (let ((frame (make-frame "Counter" (make-horizontal-panel (list counter-message button))))) (show-frame frame) (display-count)))))