<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi, all.
<br>
<br>
First of all, thank you for a good library.
<br>
So far I think LTK is the best CL library for TK.
<br>
That is a good reason to make it even better !
<br>
<br>
I think why does not LTK have support for units of length for canvas
<br>
items? At least, I have not found anyš neitherš from reading the docs
no
<br>
from reading the sources (which are compact, indeed).
<br>
<br>
That is why I tried my own hack for this. The idea is very
<br>
simple: we declare a dynamic variable to hold name of units
<br>
of measure, with reasonable value of "", which should not
<br>
have any effect on the existing applications, and attach it to
<br>
each length or size with is forwarded to WISH. Like this:
<br>
<br>
(defparameter <b class="moz-txt-star"><span class="moz-txt-tag">*</span>canvas-units<span
 class="moz-txt-tag">*</span></b> "")
<br>
<br>
(defun format-number (stream number)
<br>
š(when (and (atom number) (not (vectorp number)))
<br>
šš (format <b class="moz-txt-star"><span class="moz-txt-tag">*</span>debug-io<span
 class="moz-txt-tag">*</span></b> "~%format-number: ~A ~A ~A" number
(type-of number) <b class="moz-txt-star"><span class="moz-txt-tag">*</span>canvas-units<span
 class="moz-txt-tag">*</span></b>))
<br>
š(cond
<br>
š ((complexp number)
<br>
šš (format-number stream (realpart number))
<br>
šš (format-number stream (imagpart number)))
<br>
š ((integerp number)
<br>
šš (format stream " ~d~a" number <b class="moz-txt-star"><span
 class="moz-txt-tag">*</span>canvas-units<span class="moz-txt-tag">*</span></b>))šššššš
š ((typep number 'single-float)
<br>
šš (format stream " ~a~a" number <b class="moz-txt-star"><span
 class="moz-txt-tag">*</span>canvas-units<span class="moz-txt-tag">*</span></b>))
<br>
š ((numberp number)
<br>
šš (format-number stream (coerce number 'single-float)))
<br>
š ((stringp number)
<br>
šš (format stream " ~a" number))
<br>
š ((null number)
<br>
šš )
<br>
š ((listp number)
<br>
šš (format-number stream (car number))
<br>
šš (format-number stream (cdr number)))
<br>
š ((arrayp number)
<br>
šš (dotimes (i (length number))
<br>
šššš (format-number stream (aref number i))))
<br>
š ))ššššš <br>
And I also added a branch for STRING parameters.
<br>
The reason is I spent significant number of time
<br>
trying to figure out why my code using STRING
<br>
parameters to length options. LTK in this case silently
<br>
ignores these parameters so I think either output branch
<br>
or error condition should be added here.
<br>
<br>
To support the tradition, a WITH-like macro also can be added.
<br>
Like :
<br>
<br>
(WITH-CANVAS-UNITS (m)
<br>
š...)
<br>
<br>
I can provide the code in any form, if it is interesting.
<br>
<br>
<span class="moz-txt-tag">--š<br>
</span>----------------------
<br>
Ilya Zvyagin, OOO Rolis.
<br>
e-mail: masterziv AT gmail DOT com
<br>
ICQ# 29427861
<br>
Skype: masterziv1024
<br>
<br>
</body>
</html>