libera/#clim - IRC Chatlog
Search
9:35:32
jackdaniel
if you want to use w-o-a-g then that is like other "drawing" operations, must be called on a stream
9:37:28
lisp123
Would you have an example somewhere? I'm quite stuck on this whole stream / output record / redisplay thing. OTOH, "simpler" drawings work pretty easily: (draw-line* clim-user::*test-pane* 200 10 10 200)
9:38:29
lisp123
*test-pane* came from: (setq *test-pane* (get-frame-pane *test-frame* 'display)). Perhaps there's another verison to get an object that W-O-A-G accepts?
9:40:48
lisp123
#<STANDARD-GENERIC-FUNCTION CLIM:MAKE-PANE-1 (5)> when called with arguments (NIL #<CLIM-INTERNALS::DEFAULT-APPLICATION {100332F0F3}> :PUSH-BUTTON :LABEL "hello").
9:41:20
lisp123
That's where I get stuck when I pass *test-frame* as stream to with-output-as-gadget
9:51:55
jackdaniel
i.e when you have (:pane :application :display-function 'foo), then foo is the display function
9:53:35
jackdaniel
you may execute the command from another repl by calling (execute-frame-command ...) - this will ensure the right context
9:54:42
jackdaniel
asynchronous stream access is technically possible (by scheduling the operation as an event if called in a wrong thread) but it is not implemented (nor required by the spec)
9:55:21
jackdaniel
there are other ways, but I'd stick to implementing your body in the display function
10:39:43
lisp123win
jackdaniel: many thanks, will try in the evening when I get back to my (lisp) machine
14:58:17
lisp123
(let ((*application-frame* *test-frame*)) (with-output-as-gadget (*test-pane*) (make-pane :push-button :label "hello"))))))))))
15:29:22
jackdaniel
lisp123: this is asynchronous acceas, you open yourself to races - i.e output history corruption
15:32:29
lisp123
I have started writing my notes on (Mc)Clim. If you guys want to review later, happy to add it to the repo under documentation