libera/#clim - IRC Chatlog
Search
8:29:09
jackdaniel
re the document I've linked a few days back, if anyone plans to look into it please don't, I've realized something and the document needs to be updated accordingly
8:52:22
lisp123win
I've been trying to figure this one out by RTFM, but waving the white flag: How should one add a gadget to a running application?
8:52:57
lisp123win
From what I can see, I should use the with-output-to-gadget on a stream and then do some sort of redisplay?
8:54:21
lisp123win
If anybody has an example application that has this scenario, would love to read its code
8:56:16
lisp123win
Drawing is a lot easier. But I would like to NOT specify too much of the panes / layout on initialization (define-application-frame), and rather build / modify it as I go, but from what I can see, its mostly done at the start
8:58:27
jackdaniel
panes may be customized with generate-frame-panes specializable function, pair that with setf frame layout and voila
9:19:37
lisp123win
Yes the whole "output records" thing sort of got me into strange places in the manual, trying to figure it out
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