freenode/#clim - IRC Chatlog
Search
10:55:22
john-a-carroll
slyrus: in my application, I synthesize a resize command (leading to a redisplay) from an :after method on allocate-space
10:57:04
john-a-carroll
slyrus: here's a gist - (defmethod allocate-space :after ((pane my-application-pane) width height) <check whether stream-text-margin is significantly different from last redisplay, and if so ...> (with-application-frame (frame) (execute-frame-command frame `(com-resize-panes ,frame))))
11:00:16
john-a-carroll
slyrus: I do this for a resizeable and reflowing file browser pane in a natural language processing research system called LKB - relevant source code at http://svn.delph-in.net/lkb/branches/fos/src/ACL_specific/selectfile.lsp
11:02:20
no-defun-allowed
Interesting technique. I should test it, but if I have scrolling, will the scrolling be reset?
11:02:37
john-a-carroll
In practice it seems to work reasonable well, and it also works in Franz Allegro CLIM
11:11:29
john-a-carroll
For me, the scroll position isn't reset - I'm happy with that behaviour but I don't recall whether I did anything special in that respect
11:14:42
john-a-carroll
I did have to explicitly call change-space-requirements to make the scroller update (either move to the correct position or prevent the pane being scrollable if the content ends up being smaller than the viewable region of the pane)
13:07:02
jackdaniel
regarding text reflow, I've linked a PoC video where text was rewrapped without redisplaying in realtime
13:47:22
jackdaniel
in general if we want to handle resizing gracefully, what we should do is to have outupt record replay more sensitive to its parent / previous sibling position
13:48:08
jackdaniel
also, as for "non-CLIM", we still have handle-event / handle-repaint which is implemented in lower level abstraction
13:48:22
jackdaniel
it is perfectly possible to use these to write applications which have nothing to do with a command loop
14:23:27
scymtym
froggey: i rebuilt and most things seem to work but i got a "Undefined function MEZZANO.COMPILER::%ARRAY-DIMENSION-KNOWN" from within the compiled function SWANK::RECURSIVELY-COMPUTE-MOST-COMPLETIONS
14:57:38
froggey
scymtym: oops, I'll investigate. for now you can just (defun mezzano.compiler::%array-dimension-known (array axis) (array-dimension array axis))
17:27:06
jackdaniel
https://github.com/dwmkerr/hacker-laws#kernighans-law [some cute laws, not necessarily something one should always agree with]
17:30:56
beach
My favorite is Hofstadter's law: It always takes longer than you expect, even if you take into account Hofstadter's law.
17:32:17
jackdaniel
Putt's Corollary is cheeky: "Every technical hierarchy, in time, develops a competence inversion."
17:34:23
jackdaniel
what explains completely and definetely how did I manage to have so much software under maintanance
17:45:36
slyrus_
john-a-carroll doesn't seem to be around at the moment but his approach is pretty much the same as a few variants I tried. The problem is you end up in a loop where the event loop keeps triggering the command loop, but he escapes out of it by checking to see if stream-text-margin hasn't changed. Not the most elegant. Will explore other approaches today.
20:18:04
jackdaniel
I may try to dig it up (I'm not sure where it is) if it is important to you. but it was as hacky as it goes - i.e it only rewrapped when you've grown the window