[mcclim-cvs] CVS mcclim/Examples
crhodes
crhodes at common-lisp.net
Wed Apr 19 11:43:31 UTC 2006
Update of /project/mcclim/cvsroot/mcclim/Examples
In directory clnet:/tmp/cvs-serv28012/Examples
Modified Files:
text-size-test.lisp
Log Message:
Add text-bounding-rectangle* mode to text-size-test
--- /project/mcclim/cvsroot/mcclim/Examples/text-size-test.lisp 2006/04/17 17:54:58 1.1
+++ /project/mcclim/cvsroot/mcclim/Examples/text-size-test.lisp 2006/04/19 11:43:31 1.2
@@ -37,6 +37,11 @@
(with-radio-box (:type :some-of)
(make-pane 'toggle-button :label "Bold" :id :bold)
(make-pane 'toggle-button :label "Italic" :id :italic)))
+ (rectangle
+ (with-radio-box ()
+ (radio-box-current-selection
+ (make-pane 'toggle-button :label "Text-Size" :id :text-size))
+ (make-pane 'toggle-button :label "Text-Bounding-Rectangle" :id :text-bounding-rectangle)))
(size
(make-pane 'slider
:orientation :horizontal
@@ -49,7 +54,8 @@
(labelling (:label "Text") text)
(horizontally ()
(labelling (:label "Family") family)
- (labelling (:label "Face") face))
+ (labelling (:label "Face") face)
+ (labelling (:label "Rectangle") rectangle))
(labelling (:label "Size") size)
canvas))))
@@ -62,6 +68,7 @@
(family (gadget-id (gadget-value (find-pane-named frame 'family))))
(faces
(mapcar #'gadget-id (gadget-value (find-pane-named frame 'face))))
+ (rectangle (gadget-id (gadget-value (find-pane-named frame 'rectangle))))
(face (if (cdr faces) '(:bold :italic) (car faces)))
(style (make-text-style family face size)))
(multiple-value-bind (width height final-x final-y baseline)
@@ -78,16 +85,26 @@
;;; (setf (stream-cursor-position stream) (values x1 y1))
;;; (with-text-style (stream style)
;;; (write-string str stream))
- (draw-rectangle* stream
- x1 y1
- (+ x1 width) (+ y1 height)
- :ink +red+
- :filled nil)
- (draw-rectangle* stream
- x1 y1
- (+ x1 final-x) (+ y1 final-y)
- :ink +blue+
- :filled nil)))))
+ (ecase rectangle
+ ((:text-size)
+ (draw-rectangle* stream
+ x1 y1
+ (+ x1 width) (+ y1 height)
+ :ink +red+
+ :filled nil)
+ (draw-rectangle* stream
+ x1 y1
+ (+ x1 final-x) (+ y1 final-y)
+ :ink +blue+
+ :filled nil))
+ ((:text-bounding-rectangle)
+ (multiple-value-bind (left top right bottom)
+ (climi::text-bounding-rectangle* (sheet-medium stream) str :text-style style)
+ (draw-rectangle* stream
+ (+ x1 left) (+ y1 baseline top)
+ (+ x1 right) (+ y1 baseline bottom)
+ :ink +purple+
+ :filled nil))))))))
(define-text-size-test-command (com-quit-text-size-test :menu "Quit") ()
(frame-exit *application-frame*))
More information about the Mcclim-cvs
mailing list