freenode/#clim - IRC Chatlog
Search
11:43:30
scymtym
jackdaniel: i like the ability to know where the blank area press/release happened. i don't think a special object the re-purposes the pointer event protocol is the ideal interface, though
11:44:59
scymtym
i don't have a fully formed alternative proposal, but do you think something with two presentation types, say, BLANK-AREA and BLANK-AREA-WITH-POINTER-POSITION where the latter is a subtype of the former and has presentation type arguments for pointer x and y could work?
11:45:38
scymtym
a translator or command could get the position by decoding the arguments (or implicitly binding) in the usual way
12:49:02
loke[m]
I'm confused again. If I want to provide some initial content in a call to ACCEPT, how do I do that?
12:49:23
loke[m]
:DEFAULT is not the right way, as that specifies what value should be returned if the input was empty.
12:52:55
scymtym
loke[m]: in clouseau, i was confused about that as well. a combination of :DEFAULT and :INSERT-DEFAULT did what i wanted. not sure what you want to achieve
12:53:55
scymtym
oh, ACCEPT. i used the above in the argument clause of a command definition. not sure whether ACCEPT also works like that
12:54:23
loke[m]
scymtym: I see. I tried that, I still have problems. I may have misattibuted the issue.
12:55:24
loke[m]
(clim:accept 'maxima-native-expr :stream ... :prompt ... :default X :insert-default t)
12:55:44
loke[m]
Here's the thing, X is either NIL (if the input is empty), or the previous expression.
12:56:46
loke[m]
However, if :DEFAULT is not nil, then no matter what I do, the call to ACCEPT always returns the default value. Even if I change it.
12:57:33
loke[m]
Now, everything works correctly when inputting numbers or strings or whatnot. The issue only happens with MAXIMA-NATIVE-EXPR, which is a class that wraps the internal Maxima representation of an equation.
15:55:53
loke[m]
scymtym: I have built a test case, would you have time to take a look at it and tell me if you know what I'm doing wrong?
15:56:38
scymtym
loke[m]: i can have a quick look, but no promises. if we can't work something out, maybe file a bug with the "question" tag
15:56:53
loke[m]
The two commands at the end of the file are identical with only a single difference: One of them has a default, and the other one don't.
15:57:12
loke[m]
However, in the default case, no matter what I type, it always returns the default.
16:02:48
loke[m]
scymtym: You mean without :DEFAULT? Yes. Then it reads the input, and correctly returns a BAR instance with the typed text.
16:03:56
scymtym
loke[m]: what i mean is i changed the second command (...-VALUES-WITH-DEFAULT) to not use ACCEPTING-VALUES and just call ACCEPT
16:04:08
loke[m]
However, if I use :DEFAULT, then it always returns whatever I passed into default, and doesn't care what I typed. The interesting thing is that if I put a (BREAK) here: https://github.com/lokedhs/clim-test/blob/master/command-input.lisp#L73
16:04:30
scymtym
then submitting the command returned the default value while editing and then submitting returned the edited value
16:04:46
loke[m]
Then that break never triggers. It exits using some kind of non-local exit, but for the life of me I can't find out how it's done. I added a HANDLER-BIND to catch any non-local exits, but it never hits.
16:06:55
scymtym
it encapsulates the stream into a special stream and creates special editing stream for the "input fields"
16:07:34
scymtym
those still ultimately call ACCEPT, but the scanning and re-scanning logic is very different