freenode/#clim - IRC Chatlog
Search
21:51:58
jackdaniel
drei has this (jokingly schisophrenic) notion of buffers being separated from panes
21:52:48
jackdaniel
what is fine in case of emacs, but complicates enormously (beyond comprehention of a casual user and myself - casual user as well :-) API and usage of the package
21:53:28
jackdaniel
(and libraries mimicing emacs in a way they manage their content of course - like climacs)
21:54:13
jackdaniel
practical implication is that you can't easily create a pane/gadget having text buffer as one of its elements
21:54:40
jackdaniel
from the bright side Drei has some documentation what can't be told about many components we have
21:59:21
p_l
well, tbh, in such case I'd be thinking of making a simpler component for simple cases, but keep one that separated buffer and pane for cases that are equivalent of RichText component in many libraries
22:00:51
p_l
because I'd like to have same keybinds (posibly handled through some common library attached to Drei and Listener?) for whole application
22:01:05
jackdaniel
as I said, I fail to comprehend it. it is written to allow "simpler" cases, but its multi-purpose makes it complicated even more
22:01:30
jackdaniel
I suggest you should try to use it in your component, documentation is in place, and make sense of it
22:02:00
p_l
jackdaniel: might do so, first I'd need to grasp CLIM to the point of being able to write a GUI application ;)
22:02:06
jackdaniel
goatee was somewhat simplier, but it was also inefficient and buggy afair (goatee was a simpler component) - maybe that could be a starting point of the implementation
22:02:50
jackdaniel
of course I'm ready to be proven wrong about necessity of having Drei replacement, that's why I've suggested it here first
22:18:25
jackdaniel
I'd work on improving Listener. nyef has reported quite a few issues with it (it is on the tracker), most of them looked quite easy but important to fix
2:33:05
loke
As for completion, Drei handles that quite well with just a keymap. I did it for Climaxima. Feel free to have a look here:
2:44:55
loke
That said, it's not ideal, and that main problem is caused by precisely what JD raised as the big issue with Drei; the multi-buffer architecture
2:45:46
loke
The problem is that when the TAB key is pressed, there is no way (that I have found) to actually figure out where on the screen the user is typing, since there is no link from buffer→window.
4:36:50
loke
beach`: I decided to implement a font replacement cache, so that I don't have to call out to Fontconfig every time I need to find the correct font for a given character. Drei is still not very efficient, but at least the amplification of its problems due to excessive font lookups have now been dealt with:
5:44:42
loke
I implemented the following function, that has a stable default but which is implemented by the Freetype renderer. The native Truetype renderer could also implement it if someone wanted to, in which case you'd get glyph replacement in Drei there as well:
7:28:00
loke
the pane contains a munch of presentations and stuff, and I just want to clear it all and start over. :-)
7:29:22
jackdaniel
hm, there is also window-clear which resets pane properties like scroll-extent, cursor etc
7:31:03
loke
one weird thing though, if I do window-clear, the contant gets removed, but the new stuff I add isn't painted.
7:35:20
jackdaniel
note-sheet-region-changed is for (suprise suprise) situations when region changes
7:35:55
jackdaniel
not when output-history changes (so it won't necessarily repaint *anything* - for instance if region doesn't change, or it gets smaller)
7:37:28
loke
I want to try :-) Do I have to set the event-timestamp to something, or can I just leave it as NIL?