freenode/#clim - IRC Chatlog
Search
11:49:26
jackdaniel
is there any reason why gadgets were explicitly excluded from input-context-wait-test? there is explicit: `(not (gadgetp sheet))` – I can't find any reason for that
11:49:47
jackdaniel
usually gadgets are not output recording streams so the earlier codition will trigger (output-recording-stream-p …) anyway
11:50:24
jackdaniel
but I can imagine situation, when we would want to accept presentations which are drawn on sheets which are both gadget and a recording stream
11:52:25
jackdaniel
nb: I was going through the code for a few hours before I've found this innocent piece (I was looking for method specializations on handle-event and such)
12:48:39
jackdaniel
OK, I think I know why, this function "snatches" all events and handle-event specialized on the gadget would be never called (even if no presentation is present there)
12:49:38
jackdaniel
so important conclusion from this time: gadgets doesn't blend with input streams and presentations
15:03:39
beach
jackdaniel: Gadgets are strange. They were meant to be a fit for existing gadgets in foreign toolkits.
16:53:34
jackdaniel
beach: simplicity of gadgets is quite appealing (and conceptually simpler) – you have to implement only handle-repaint and handle-event and you are good to go
16:53:57
jackdaniel
but looking at their implementation and how it plays with other stuff they were indeed treated as a second-class citizen in codebase
17:22:42
beach
I see. I suppose that could be fixed, since we are not targeting foreign toolkits anyway.
17:48:05
jackdaniel
ideally it would be possible to use presentations in gadgets (that doesn't work well though)
17:49:29
wmannis
I was thinking of taking on this issue, if there aren’t any concerns about it: https://github.com/robert-strandh/McCLIM/issues/381
17:50:15
nyef
wmannis: If you start digging into it, I'm sure that you'll find further problems with DESCRIBE.
17:51:41
jackdaniel
the reason I'm diving into these parts of code is that I'm writing a simplistic tree-gadget
17:54:23
jackdaniel
wmannis: not in gadgets. as I have mentioned earlier, there is implementation quirk which makes them unusable with presentations
17:55:19
wmannis
Sorry, I was responding to something else. It does seem sad that gadgets can’t cope with presentations.
17:55:25
jackdaniel
so either we just accept the fact that gadgets doesn't blend with streams and presentations or refactor huge chunks of code
18:34:28
nyef
My understanding is that you should be able to embed a gadget as a presentation, but embedding a presentation within a gadget doesn't make sense because the gadget isn't a stream.
18:35:30
nyef
And it is highly unlikely that a host window system will have a "stream-type gadget" in the first place.
18:43:25
jackdaniel
in my understanding user panes are application specific while gadgets are universal (in a sense that they display data and allow some interaction with it - for instance a list gadget)
18:44:28
jackdaniel
if we map directly to other toolkit, then it is this other toolkit responsibility to handle highlighting etc, but if we use CLIM generic implementation, then I don't see (conceptually) a problem, to have them being subclass of both gadget and a stream
18:45:10
jackdaniel
but it looks like none of the implementers of McCLIM shared this view and I'm not very much interested in "fixing" it to match my understanding
18:46:42
jackdaniel
btw, if I do (clim:with-output-as-presentation (...) (clim:with-output-as-gadget (...) ...) I should have a gadget being a presentation, no?
18:54:08
nyef
Technically, the gadget-presentation-record or whatever it's called is the interface between the presentation system and the gadget, mediating between the presentation and sheet/pane protocols.
19:24:28
oleo
that :display-app option together with :display-time :no-clear and :incremental-redisplay t was what i was looking for for getting the maxima-init.mac displayed in it properly
19:26:06
oleo
and when i try to load it there i get the maxima-init.mac contents displayed everytime together with the maxima-prompt
19:26:45
oleo
if i was more advanced i could have used something like catch-throw stuff to get around it maybe but.....
19:27:21
oleo
it's a hassle that when you have to do stuff prior to main-loops and afterwards that you almost can't
19:29:30
oleo
trying to use the initial-contents slot and/or the listener-funcall resulted in it being drawin into the *standard-output* of the clim-listener rather and not the maxima-repl instance
19:50:57
nyef
Last time I tried, a goodly portion of the output was dumped to the terminal that I started SBCL from, and a lot of newlines without other text were output to the Listener.