Update of /project/pal/cvsroot/pal-gui In directory clnet:/tmp/cvs-serv32566
Modified Files: gob.lisp gui.lisp package.lisp present.lisp widgets.lisp Log Message: GET-MIN-HEIGHT/WIDTH didn't work under CLisp, fixed. Widgets now use PAL:COLOR structure where appropriate.
--- /project/pal/cvsroot/pal-gui/gob.lisp 2007/10/30 00:20:41 1.13 +++ /project/pal/cvsroot/pal-gui/gob.lisp 2007/10/30 20:44:46 1.14 @@ -1,5 +1,8 @@ (in-package :pal-gui)
+(declaim (optimize (speed 3))) + + (defvar *root* nil) (defvar *drag-start-pos* nil) (defvar *relative-drag-start-pos* nil) @@ -181,9 +184,10 @@ (pack parent))
(defmethod min-width-of ((g v-packing)) - (+ (loop for c in (childs-of g) maximizing (min-width-of c)) - (gap-of g) - (* 2 (x-pad-of g)))) + (let ((childs-min (loop for c in (childs-of g) maximizing (min-width-of c)))) + (+ (if childs-min childs-min 0) + (gap-of g) + (* 2 (x-pad-of g)))))
(defmethod min-height-of ((g v-packing)) (+ (* (1- (length (childs-of g))) (gap-of g)) @@ -218,9 +222,10 @@ ())
(defmethod min-height-of ((g h-packing)) - (+ (loop for c in (childs-of g) maximizing (min-height-of c)) - (gap-of g) - (* 2 (y-pad-of g)))) + (let ((childs-min (loop for c in (childs-of g) maximizing (min-height-of c)))) + (+ (if childs-min childs-min 0) + (gap-of g) + (* 2 (y-pad-of g)))))
(defmethod min-width-of ((g h-packing)) (+ (* (1- (length (childs-of g))) (gap-of g)) --- /project/pal/cvsroot/pal-gui/gui.lisp 2007/10/30 00:20:41 1.9 +++ /project/pal/cvsroot/pal-gui/gui.lisp 2007/10/30 20:44:46 1.10 @@ -1,5 +1,56 @@ (in-package :pal-gui)
+(declaim (optimize (speed 3))) + + + +(defun config-gui (&key (font *gui-font*) (window-color *window-color*) (widget-color *widget-color*) + (paper-color *paper-color*) (tooltip-delay *tooltip-delay*) (text-color *text-color*)) + (setf *gui-font* font + *window-color* window-color + *widget-color* widget-color + *text-color* text-color + *paper-color* paper-color + *tooltip-delay* tooltip-delay + *m* (truncate (* (get-font-height *gui-font*) 1.5)) + *text-offset* (let ((fh (get-font-height *gui-font*))) + (v (truncate fh 2) (truncate fh 4))))) + +(defun update-gui () + "Like PAL:UPDATE but also updates the GUI" + (pal::close-quads) + (reset-blend) + (pal-ffi:gl-load-identity) + (repaint *root*) + (update-screen)) + + +(defun active-gobs-at-point (point parent) + (let ((c (find-if (lambda (c) + (point-inside-p c point)) + (reverse (childs-of parent))))) + (if c + (if (activep c) + (cons c (active-gobs-at-point point c)) + (active-gobs-at-point point c)) + nil))) + +(defun init-gui () + (setf *root* (make-instance 'root :parent nil) + *gui-font* (tag 'pal::default-font) + *drag-start-pos* nil + *relative-drag-start-pos* nil + *focused-gob* nil + *pointed-gob* nil + *armed-gob* nil) + (config-gui :font (tag 'pal::default-font) + :window-color (color 140 140 140 160) + :widget-color (color 180 180 180 128) + :text-color (color 0 0 0 255) + :paper-color (color 255 255 200 255) + :tooltip-delay 1)) + +
(defmacro gui-loop ((&key key-up-fn key-down-fn mouse-motion-fn quit-fn) &body redraw) "Same as PAL:EVENT-LOOP but with added GUI event handling" @@ -58,36 +109,4 @@ (init-gui) (unwind-protect (progn ,@body) - (close-pal)))) - - -(defun active-gobs-at-point (point parent) - (let ((c (find-if (lambda (c) - (point-inside-p c point)) - (reverse (childs-of parent))))) - (if c - (if (activep c) - (cons c (active-gobs-at-point point c)) - (active-gobs-at-point point c)) - nil))) - -(defun init-gui () - (setf *root* (make-instance 'root :parent nil) - *gui-font* (tag 'pal::default-font) - *drag-start-pos* nil - *relative-drag-start-pos* nil - *focused-gob* nil - *pointed-gob* nil - *armed-gob* nil)) - -(defun update-gui () - "Like PAL:UPDATE but also updates the GUI" - (pal::close-quads) - (reset-blend) - (pal-ffi:gl-load-identity) - (repaint *root*) - (update-screen)) - -(defun set-gui-font (font) - (assert (font-p font)) - (setf *gui-font* font)) \ No newline at end of file + (close-pal)))) \ No newline at end of file --- /project/pal/cvsroot/pal-gui/package.lisp 2007/10/30 00:20:41 1.4 +++ /project/pal/cvsroot/pal-gui/package.lisp 2007/10/30 20:44:46 1.5 @@ -1,6 +1,6 @@ (defpackage #:pal-gui (:use :common-lisp :pal) - (:export #:with-gui #:init-gui #:update-gui #:gui-loop #:set-gui-font + (:export #:with-gui #:init-gui #:update-gui #:gui-loop #:config-gui
#:present
--- /project/pal/cvsroot/pal-gui/present.lisp 2007/10/29 20:06:01 1.2 +++ /project/pal/cvsroot/pal-gui/present.lisp 2007/10/30 20:44:46 1.3 @@ -1,12 +1,9 @@ (in-package :pal-gui)
-(defgeneric present (object gob width height)) - - (defmethod present (object (g widget) width height) (with-blend (:color *text-color*) - (draw-text (format nil "~a" object) (v (vx (get-text-offset)) + (draw-text (format nil "~a" object) (v (vx *text-offset*) (- (truncate height 2) (truncate (get-font-height *gui-font*) 2) 1)))))
@@ -20,33 +17,33 @@ (draw-polygon (list (v 3 (- height 3)) (v (/ width 2) 3) (v (- width 3) (- height 3))) - (first *text-color*) (second *text-color*) (third *text-color*)(fourth *text-color*) :smoothp t)) + (color-r *text-color*) (color-g *text-color*) (color-b *text-color*)(color-a *text-color*) :smoothp t))
(defmethod present ((s (eql :down-arrow)) (g widget) width height) (draw-polygon (list (v 3 3) (v (/ width 2) (- height 3)) (v (- width 3) 3)) - (first *text-color*) (second *text-color*) (third *text-color*)(fourth *text-color*) :smoothp t)) + (color-r *text-color*) (color-g *text-color*) (color-b *text-color*)(color-a *text-color*) :smoothp t))
(defmethod present ((s (eql :right-arrow)) (g widget) width height) (draw-polygon (list (v 3 3) (v (- width 3) (/ height 2)) (v 3 (- height 3))) - (first *text-color*) (second *text-color*) (third *text-color*)(fourth *text-color*) :smoothp t)) + (color-r *text-color*) (color-g *text-color*) (color-b *text-color*)(color-a *text-color*) :smoothp t))
(defmethod present ((s (eql :left-arrow)) (g widget) width height) (draw-polygon (list (v (- width 3) 3) (v 3 (/ height 2)) (v (- width 3) (- height 3))) - (first *text-color*) (second *text-color*) (third *text-color*)(fourth *text-color*) :smoothp t)) + (color-r *text-color*) (color-g *text-color*) (color-b *text-color*)(color-a *text-color*) :smoothp t))
(defmethod present ((s (eql :box)) (g widget) width height) - (draw-rectangle (v 3 3) (- width 6) (- height 6) (first *text-color*) (second *text-color*) (third *text-color*)(fourth *text-color*) :smoothp t)) + (draw-rectangle (v 3 3) (- width 6) (- height 6) (color-r *text-color*) (color-g *text-color*) (color-b *text-color*)(color-a *text-color*) :smoothp t))
(defmethod present ((s (eql :circle)) (g widget) width height) - (draw-circle (v (/ width 2) (/ height 2)) (/ (min width height) pi) (first *text-color*) (second *text-color*) (third *text-color*)(fourth *text-color*) :smoothp t)) + (draw-circle (v (/ width 2) (/ height 2)) (/ (min width height) pi) (color-r *text-color*) (color-g *text-color*) (color-b *text-color*)(color-a *text-color*) :smoothp t)) --- /project/pal/cvsroot/pal-gui/widgets.lisp 2007/10/30 00:20:41 1.13 +++ /project/pal/cvsroot/pal-gui/widgets.lisp 2007/10/30 20:44:46 1.14 @@ -1,35 +1,35 @@ (in-package :pal-gui)
+;; (declaim (optimize (speed 3)))
-(defparameter *window-color* '(140 140 140 160)) -(defparameter *widget-color* '(180 180 180 128)) -(defparameter *text-color* '(0 0 0 255)) -(defparameter *paper-color* '(255 255 200 255)) -(defparameter *tooltip-delay* 1) + +(defparameter *window-color* nil) +(defparameter *widget-color* nil) +(defparameter *text-color* nil) +(defparameter *paper-color* nil) +(defparameter *tooltip-delay* nil) (defparameter *widget-enter-time* nil) +(defparameter *m* nil) +(defparameter *text-offset* nil) (defvar *gui-font* nil)
-(defun get-m () - (truncate (* (get-font-height *gui-font*) 1.5))) +
(defun get-text-bounds (string) (let ((fh (get-font-height *gui-font*))) (values (max (truncate (* 1.5 fh)) (+ (get-text-size string *gui-font*) fh)) (truncate (* fh 1.5)))))
-(defun get-text-offset () - (let ((fh (get-font-height *gui-font*))) - (v (truncate fh 2) (truncate fh 4))))
(defun draw-frame (pos width height color &key style (border 1) (fill t)) (let ((pos (v-floor pos)) (width (truncate width)) (height (truncate height)) - (r (first color)) - (g (second color)) - (b (third color)) - (a (fourth color))) + (r (color-r color)) + (g (color-g color)) + (b (color-b color)) + (a (color-a color))) (when (> border 0) (draw-rectangle (v- pos (v border border)) (+ width (* 2 border) ) (+ height (* 2 border)) 0 0 0 a)) (when fill @@ -48,6 +48,7 @@
+(defgeneric present (object gob width height))
@@ -62,10 +63,10 @@ (on-key-down :accessor on-key-down-of :initarg :on-key-down :initform (lambda (widget char) (declare (ignore widget char)) nil)) (on-enter :accessor on-enter-of :initarg :on-enter :initform (lambda (widget) (declare (ignore widget)) nil)) (on-leave :accessor on-leave-of :initarg :on-leave :initform (lambda (widget) (declare (ignore widget)) nil))) - (:default-initargs :width (get-m) :height (get-m))) + (:default-initargs :width *m* :height *m*))
-(defmethod on-inspect ((g widget)) +(defmethod on-inspect ((g gob)) (message g))
(defmethod on-drag :around ((g widget) pos d) @@ -120,39 +121,38 @@
(defmethod repaint ((g box)) (when (label-of g) - (let ((text-offset (get-text-offset))) - (with-accessors ((width width-of) (height height-of) (label label-of)) g + (with-accessors ((width width-of) (height height-of) (label label-of)) g
- (draw-line (v 0 0) (v 0 height) 0 0 0 160) - (draw-line (v width 0) (v width height) 0 0 0 160) - (draw-line (v 0 height) (v width height) 0 0 0 160) + (draw-line (v 0 0) (v 0 height) 0 0 0 160) + (draw-line (v width 0) (v width height) 0 0 0 160) + (draw-line (v 0 height) (v width height) 0 0 0 160)
- (draw-line (v 0 0) (v (vx text-offset) 0) 0 0 0 160) - (draw-line (v (- (get-text-bounds label) (vx text-offset)) 0) (v width 0) 0 0 0 160) + (draw-line (v 0 0) (v (vx *text-offset*) 0) 0 0 0 160) + (draw-line (v (- (get-text-bounds label) (vx *text-offset*)) 0) (v width 0) 0 0 0 160)
- (with-blend (:color *text-color*) - (draw-text label (v- text-offset (v 0 (truncate (get-m) 2))) *gui-font*)))))) + (with-blend (:color *text-color*) + (draw-text label (v- *text-offset* (v 0 (truncate *m* 2))) *gui-font*)))))
(defclass v-box (box v-packing) () - (:default-initargs :x-pad 0 :y-pad 0 :gap (truncate (get-m) 3))) + (:default-initargs :x-pad 0 :y-pad 0 :gap (truncate *m* 3)))
(defmethod initialize-instance :after ((g v-box) &key label) (when label - (setf (y-pad-of g) (truncate (get-m) 2) - (x-pad-of g) (truncate (get-m) 2)))) + (setf (y-pad-of g) (truncate *m* 2) + (x-pad-of g) (truncate *m* 2))))
(defclass h-box (box h-packing) () - (:default-initargs :x-pad 0 :y-pad 0 :gap (truncate (get-m) 2))) + (:default-initargs :x-pad 0 :y-pad 0 :gap (truncate *m* 2)))
(defmethod initialize-instance :after ((g h-box) &key label) (when label - (setf (y-pad-of g) (truncate (get-m) 2) - (x-pad-of g) (truncate (get-m) 2)))) + (setf (y-pad-of g) (truncate *m* 2) + (x-pad-of g) (truncate *m* 2))))
@@ -169,29 +169,29 @@ (defclass window (v-box sliding clipping) ((filler :accessor filler-of) (label :accessor label-of :initarg :label :initform "Untitled")) - (:default-initargs :activep t :width 100 :height 100 :x-pad (truncate (get-m) 2) :y-pad (truncate (get-m) 3) :gap (truncate (get-m) 3) :pos (v 10 10))) + (:default-initargs :activep t :width 100 :height 100 :x-pad (truncate *m* 2) :y-pad (truncate *m* 3) :gap (truncate *m* 3) :pos (v 10 10)))
(defmethod initialize-instance :after ((g window) &key &allow-other-keys) (setf (filler-of g) (make-instance 'filler :parent g :x-expand-p t)))
(defmethod on-drag :around ((g window) start d) (declare (ignore d)) - (when (< (vy start) (get-m)) + (when (< (vy start) *m*) (call-next-method)))
(defmethod on-button-down ((g window) pos) - (when (< (vy pos) (get-m)) + (when (< (vy pos) *m*) (raise g)))
(defmethod repaint ((g window)) (with-accessors ((width width-of) (height height-of) (label label-of)) g (draw-frame (v 0 0) width height *window-color* :style :raised) - (draw-rectangle (v 0 0) width (get-m) 0 0 0 128) - (draw-line (v 0 (get-m)) (v width (get-m)) 0 0 0 160) - (draw-line (v 0 (1+ (get-m))) (v width (1+ (get-m))) 0 0 0 64) - (draw-line (v 0 (+ (get-m) 2)) (v width (+ (get-m) 2)) 0 0 0 32) - (with-blend (:color '(255 255 255 255)) - (draw-text label (get-text-offset) *gui-font*)))) + (draw-rectangle (v 0 0) width *m* 0 0 0 128) + (draw-line (v 0 *m*) (v width *m*) 0 0 0 160) + (draw-line (v 0 (1+ *m*)) (v width (1+ *m*)) 0 0 0 64) + (draw-line (v 0 (+ *m* 2)) (v width (+ *m* 2)) 0 0 0 32) + (with-blend (:color (color 255 255 255 255)) + (draw-text label *text-offset* *gui-font*))))
@@ -213,16 +213,14 @@
(defclass pin (label sliding highlighted constrained) - ((r :accessor r-of :initarg :r :initform 255) - (g :accessor g-of :initarg :g :initform 255) - (b :accessor b-of :initarg :b :initform 255) - (a :accessor a-of :initarg :a :initform 255)) + ((color :accessor color-of :initarg :color :initform *paper-color*)) (:default-initargs :activep t))
(defmethod repaint ((g pin)) - (draw-rectangle (v 0 0) (width-of g) (height-of g) (r-of g) (g-of g) (b-of g) (a-of g)) - (call-next-method) - (draw-rectangle (v 0 0) (width-of g) (height-of g) 0 0 0 (a-of g) :fill nil)) + (let ((c (color-of g))) + (draw-rectangle (v 0 0) (width-of g) (height-of g) (color-r c) (color-g c) (color-b c) (color-a c)) + (call-next-method) + (draw-rectangle (v 0 0) (width-of g) (height-of g) 0 0 0 (color-a c) :fill nil)))
@@ -273,15 +271,14 @@ (with-accessors ((width width-of) (height height-of) (value value-of) (min-value min-value-of) (max-value max-value-of)) g (let* ((vt (princ-to-string value)) (sw (get-text-bounds vt)) - (m (get-m)) (k (truncate (* (/ (width-of g) (abs (- min-value max-value))) (- value min-value)))) (kpos (v (- k (truncate sw 2)) 0))) - (draw-frame (v 0 (truncate m 3)) width (truncate height 2) *window-color* :style :sunken) - (draw-frame kpos sw m *widget-color* :style :raised) - (draw-frame (v+ kpos (v (truncate sw 2) 0)) 3 (/ m 4) '(0 0 0 0) :style :sunken :fill nil) - (draw-frame (v+ kpos (v (truncate sw 2) m)) 3 (- (/ m 4)) '(0 0 0 0) :style :sunken :fill nil) + (draw-frame (v 0 (truncate *m* 3)) width (truncate height 2) *window-color* :style :sunken) + (draw-frame kpos sw *m* *widget-color* :style :raised) + (draw-frame (v+ kpos (v (truncate sw 2) 0)) 3 (/ *m* 4) (color 0 0 0 0) :style :sunken :fill nil) + (draw-frame (v+ kpos (v (truncate sw 2) *m*)) 3 (- (/ *m* 4)) (color 0 0 0 0) :style :sunken :fill nil) (with-blend (:color *text-color*) - (draw-text vt (v+ kpos (get-text-offset)) *gui-font*))))) + (draw-text vt (v+ kpos *text-offset*) *gui-font*)))))
@@ -315,7 +312,7 @@ *widget-color* :style :raised) (draw-frame (v+ kpos (v 1 (1- (truncate (min height (- height (* (- units ps) usize))) 2)))) (- width 2) - 3 '(255 255 255 0) :style :sunken)))) + 3 (color 255 255 255 0) :style :sunken))))
@@ -337,19 +334,19 @@ (with-accessors ((width width-of) (height height-of) (min-value min-value-of) (max-value max-value-of) (value value-of)) g (let* ( (k (truncate (* (/ width (abs (- min-value max-value))) (- value min-value)))) ) (draw-frame (v 0 0) width height *window-color* :style :sunken) - (loop for x from 1 to (- k 3) by 2 do + (loop for x from 1 to (- k 3) by 3 do (draw-line (v x 1) (v x (1- height)) 148 148 148 255)) (with-blend (:color *widget-color*) - (draw-text (princ-to-string value) (v+ (v 1 1) (get-text-offset)) *gui-font*)) + (draw-text (princ-to-string value) (v+ (v 1 1) *text-offset*) *gui-font*)) (with-blend (:color *text-color*) - (draw-text (princ-to-string value) (get-text-offset) *gui-font*))))) + (draw-text (princ-to-string value) *text-offset* *gui-font*)))))
(defclass list-view (widget) - ((items :accessor items-of :initarg :items :initform '()) - (item-height :reader item-height-of :initarg :item-height :initform (get-m)) + ((items :accessor items-of :initarg :items :initform nil) + (item-height :reader item-height-of :initarg :item-height :initform *m*) (multip :reader multip :initarg :multip :initform nil) (selected :accessor selected-of :initform nil) (scroll :reader scroll-of :initform 0)) @@ -405,8 +402,8 @@ (slider :accessor slider-of)) (:default-initargs :gap 3))
-(defmethod initialize-instance :after ((g list-widget) &key items (item-height (get-m)) (multip nil) &allow-other-keys) - (let* ((w (truncate (get-m) 1.5)) +(defmethod initialize-instance :after ((g list-widget) &key items (item-height *m*) (multip nil) &allow-other-keys) + (let* ((w (truncate *m* 1.5)) (list-view (make-instance 'list-view :multip multip :items items @@ -471,23 +468,23 @@
(defmethod repaint ((g radio-item)) (with-accessors ((height height-of) (width width-of) (value value-of)) g - (let* ((m/2 (truncate (get-m) 2)) + (let* ((m/2 (truncate *m* 2)) (m/4 (truncate m/2 2)) (ypos (truncate height 2))) (draw-circle (v m/4 ypos) (1+ (truncate m/2 2)) 0 0 0 255 - :smoothp t) + :smoothp t :segments 10) (draw-circle (v m/4 ypos) (truncate m/2 2) - (first *paper-color*) (second *paper-color*) (third *paper-color*) (fourth *paper-color*) - :smoothp t) + (color-r *paper-color*) (color-g *paper-color*) (color-b *paper-color*) (color-a *paper-color*) + :smoothp t :segments 10) (when (state-of g) (draw-circle (v m/4 ypos) (- (truncate m/2 2) 2) 0 0 0 255 - :smoothp t)) - (with-transformation (:pos (v (truncate (get-m) 1.5) 0)) - (present value g (- width (get-m)) height))))) + :smoothp t :segments 10)) + (with-transformation (:pos (v (truncate *m* 1.5) 0)) + (present value g (- width *m*) height)))))
(defclass choice-item (button) @@ -495,7 +492,7 @@
(defmethod repaint ((g choice-item)) (with-accessors ((height height-of) (width width-of) (value value-of)) g - (let* ((m/2 (truncate (get-m) 2)) + (let* ((m/2 (truncate *m* 2)) (ypos (- (truncate height 2) (truncate m/2 2)))) (draw-frame (v 0 ypos) m/2 m/2 @@ -506,17 +503,17 @@ (- m/2 1) (- m/2 1) *widget-color* :style :raised)) - (with-transformation (:pos (v (truncate (get-m) 1.5) 0)) - (present value g (- width (get-m)) height))))) + (with-transformation (:pos (v (truncate *m* 1.5) 0)) + (present value g (- width *m*) height)))))
(defclass choice-widget (v-box) ((multip :accessor multip :initarg :multip :initform nil) - (items :accessor items-of :initarg :items :initform '()))) + (items :accessor items-of :initarg :items :initform nil)))
-(defmethod initialize-instance :after ((g choice-widget) &key items multip (item-height (get-m)) &allow-other-keys) +(defmethod initialize-instance :after ((g choice-widget) &key items multip (item-height *m*) &allow-other-keys) (setf (items-of g) (mapcar (lambda (i) (make-instance (if multip 'choice-item 'radio-item) :parent g @@ -556,14 +553,13 @@ (defmethod repaint ((g text-widget)) (with-accessors ((width width-of) (height height-of) (text text-of) (point point-of)) g (draw-frame (v 0 0) width height *widget-color* :fill nil :style :raised) - (draw-rectangle (v 1 1) (1- width) (1- height) (first *paper-color*) (second *paper-color*) (third *paper-color*) (fourth *paper-color*)) - (let* ((offset (get-text-offset)) - (point-x (+ (vx offset) (get-text-size (subseq text 0 point))))) + (draw-rectangle (v 1 1) (1- width) (1- height) (color-r *paper-color*) (color-g *paper-color*) (color-b *paper-color*) (color-a *paper-color*)) + (let ( (point-x (+ (vx *text-offset*) (get-text-size (subseq text 0 point))))) (with-blend (:color *text-color*) - (draw-text text offset *gui-font*) + (draw-text text *text-offset* *gui-font*) (when (focusedp g) - (draw-rectangle (v point-x (vy offset)) - 2 (- height (* 2 (vy offset))) + (draw-rectangle (v point-x (vy *text-offset*)) + 2 (- height (* 2 (vy *text-offset*))) 0 0 0 255))))))
(defmethod on-key-down ((g text-widget) char) @@ -576,7 +572,7 @@ (defclass tooltip (gob) ((host :accessor host-of :initarg :host) (text :reader text-of :initarg :text :initform "")) - (:default-initargs :activep nil :width 100 :height (get-m) :pos (get-mouse-pos))) + (:default-initargs :activep nil :width 100 :height *m* :pos (get-mouse-pos)))
(defmethod initialize-instance :after ((g tooltip) &key text &allow-other-keys) (setf (width-of g) (get-text-bounds text)) @@ -586,7 +582,7 @@ (defmethod repaint ((g tooltip)) (unless (pointedp (host-of g)) (setf (parent-of g) nil)) - (draw-rectangle (v 0 0) (width-of g) (height-of g) (first *paper-color*) (second *paper-color*) (third *paper-color*) (fourth *paper-color*)) + (draw-rectangle (v 0 0) (width-of g) (height-of g) (color-r *paper-color*) (color-g *paper-color*) (color-b *paper-color*) (color-a *paper-color*)) (draw-rectangle (v 0 0) (width-of g) (height-of g) 0 0 0 255 :fill nil) (with-blend (:color *text-color*) - (draw-text (text-of g) (get-text-offset) *gui-font*))) \ No newline at end of file + (draw-text (text-of g) *text-offset* *gui-font*))) \ No newline at end of file