freenode/#clim - IRC Chatlog
Search
19:07:11
jackdaniel
you suggest, that we should /always/ return presentation of that subtype of a blank-area, not that we should *conditionally* return it depending on the input context?
19:07:26
scymtym
i suggested adding a presentation type roughly like (define-presentation-type blank-area-with-pointer-position (x y) :inherit-from (blank-area))
19:09:21
jackdaniel
also, what would be a practical purpose of adding "extra" presentation type instead of providing additional information in the blank-area presentation object?
19:10:19
scymtym
the idea was that it would appear to the client program as if a presentation created with (present ... `(blank-area-with-pointer-position ,x ,y)) had been clicked
19:11:37
jackdaniel
yes, but what is an advantage over appearing to the client program as if a presentation created with (present … `(blank-area ,x ,y)) had been clicked?
19:11:41
scymtym
it would also allow making translators for blank area with and without pointer position, unless i'm missing something
19:12:35
scymtym
one advantage is not having to invent a protocol to get the pointer position out of a special object
19:14:03
jackdaniel
this still may be encapsulated in a blank-area presentation, ie like (define-presentation-type blank-area (&key sheet x y)), that said how would you query x and y in the translator?
19:18:06
scymtym
yeah, i didn't implement it or anything. i just assumed there would be a way to get at the parameters in the relevant contexts
19:20:38
jackdaniel
I still don't think that there is a need to have a separate presentation type, especially that we'll always return one kind of object
19:21:34
jackdaniel
presentation-object could be fixed to a single value if we encode everything in the presentation type (I think)
19:21:34
scymtym
clients that optionally use the position can extract the parameters and check for NIL
19:22:36
jackdaniel
only *null-presentation* object will have nil,nil,nil (system won't return it though)
19:25:26
scymtym
i will have to look at that more. i just mentioned immediate ideas without much investigation
19:27:29
scymtym
"If frame-input-context-button-press-handler is called when the pointer is not over any applicable presentation, throw-highlighted-presentation must be called with a presentation of *null-presentation*" probably allows EQ-based tests. so we can't use it there?
19:28:46
jackdaniel
if we stick to the spec with this regard, then afaik we can't incorporate position into the blank-area
19:29:03
scymtym
we can make *NULL-PRESENTATION* a symbol-macro that disables the feature when used :)
19:29:07
jackdaniel
(we could modify slots in the "null object", but that won't work for translators that have source and destination as blank area)
19:31:07
scymtym
i'm mostly fine with violating/changing the spec in that regard since 1) relying on the object identity seems odd 2) this looks like something that was done based on performance considerations that may no longer apply
19:31:58
scymtym
if consing becomes an issue, we can cache and destructively update one or two objects of this kind
19:33:48
jackdaniel
right. I think that it is a nice-to-have feature and I came up with it because I needed to select regions on streams (for copy-area), but I don't have a dire need to have it in master; backend-manual branches are piling though :) will you find time to review the first pr upcoming week?
19:37:41
scymtym
yes, i think i was also embarrassed by the inability to do "drag rectangle to select" in that way. i think did blank-area-click -> command-with-tracking-pointer -> actual command as a workaround
4:25:38
beach
It would have to be a bit longer than this one and it would need to have more basic Climaxima features as well.
4:51:16
loke[m]
I see. That is certainly doable. I guess I could do an introduction to the Maxima project, as it's a high profile CL project that most of the CL community is mostly unaware of.
4:51:22
beach
phoe has usually decided on 13:00 central European time. But the day can vary. And the time is not set in stone either.
4:52:37
loke[m]
Perhaps some history, and some explanation how it works on the Lisp level. Then explain how the Maxima internal representation (plain Lisp lists) is mapped to CLIM presentations.