From da36120d5c1ac76b0bced11139f2efa3132e7697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Sun, 13 Feb 2011 01:52:44 +0100 Subject: [PATCH] Un peu de refactor. --- grunt.rkt | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/grunt.rkt b/grunt.rkt index 6a8c7f8..ad0bbec 100644 --- a/grunt.rkt +++ b/grunt.rkt @@ -1,8 +1,20 @@ #lang racket/gui +;; Prepare a canvas +(define (get-my-canvas on-mouse on-key on-paint) + (define canvas '()) + (define my-canvas% (class canvas% + (define/override (on-event ev) (on-mouse ev canvas)) + (define/override (on-char ev) (on-key ev canvas)) + (super-new))) + (define frame (new frame% [label "Grunt"] [width 200] [height 200])) + (set! canvas (new my-canvas% [parent frame] [paint-callback on-paint])) + (lambda () + (send frame show #t))) + +;; Pens (define black-pen (make-object pen% "BLACK" 1 'solid)) (define transparent-brush (make-object brush% "BLACK" 'transparent)) - (define bloc-border-pen black-pen) (define bloc-fill-brush transparent-brush) @@ -13,26 +25,19 @@ (send dc set-brush bloc-fill-brush) (send dc draw-rectangle 100 test-block-y 10 10)) -(define (mouse-ev ev) +(define (mouse-ev ev canvas) (display (send ev get-event-type)) (display " ") (display (send ev get-x)) (display " ") (displayln (send ev get-y))) -(define (keyboard-ev ev) +(define (keyboard-ev ev canvas) (when (eq? (send ev get-key-code) 'down) (set! test-block-y (+ test-block-y 10)) (send (send canvas get-dc) clear) (send canvas on-paint))) - -(define my-canvas% (class canvas% - (define/override (on-event ev) (mouse-ev ev)) - (define/override (on-char ev) (keyboard-ev ev)) - (super-new))) -(define frame (new frame% [label "Grunt"] [width 200] [height 200])) -(define canvas (new my-canvas% [parent frame] [paint-callback redraw])) +(define grunt (get-my-canvas mouse-ev keyboard-ev redraw)) -(define (grunt) - (send frame show #t)) \ No newline at end of file +(define world '()) \ No newline at end of file