libera/#clim - IRC Chatlog
Search
21:35:50
mcoll-
I'm guessing the presentation type would allow me to use these "tests" as arguments to commands, and then maybe use the gadget to help me render the presentation type?
21:38:00
scymtym
the hierarchy of gadgets (and generally "panes") can be changed dynamically, but presentations may indeed be the better match
21:41:53
mcoll-
okay! will try it with presentations, it's something I haven't investigated yet. Thanks!
22:14:12
mcoll-
how do I deal with coordiates in presentation methods? is there any way to use relative coordinates?
22:36:07
mcoll-
hmmm, let me try to explain, as I may be misunderstanding how this works. I have a list of test-suite-results, that define a presentation-method to define how they are drawn (in a particular view). Inside this metod I have to draw stuff, let's say I print text with (draw-text* stream text x y), this x y seems to me to be global absolute coordinates. Do I have to work in this global absolute coordinates? Or can I define a size for the
22:36:07
mcoll-
presentation, and then place this as a box somewhere, and within it work in relative coordinates?
22:38:28
scymtym
presentation methods often use the stream abstraction. you can write a string via (format stream …), for example
22:39:24
scymtym
the reader (clim:stream-cursor-position STREAM) returns the cursor position as two values and (setf (clim:stream-cursor-position STREAM) (values X Y)) sets the cursor position
22:40:07
scymtym
PRESENT presentation methods should generally produce their output at the current cursor position and advance the cursor appropriately
22:42:24
mcoll-
oooh, okay, so I shouldn't use these methods that draw something somewhere on the screen, but methods that advance the cursor accordingly? how would I draw a rectangle using the cursor system? I imagine I cannot use the (draw-rectangle*) function for example, as that draws in a particular place without changing the cursor?
22:44:10
mcoll-
or should I just take them from the (clim:stream-cursor-position STREAM) and use them there?
22:49:05
scymtym
your PRESENT presentation method could do (multiple-value-bind (x y) (stream-cursor-position x y) (draw-rectangle* stream x y (+ x 20) (+ y 20))) if you want to present something as a rectangle of size 20x20. the presentation will appear where the cursor happens to be when (present object 'my-rectangle :stream stream) or whatever is called
22:49:28
scymtym
so you could mix things like (write-string "foo" stream) (present object 'my-rectangle :stream stream) (write-string "bar" stream) and it should just work