[ 1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 11 11 11 113
]
- prettier printing of hashtable literals, alists, cond, ...
-- the editor should fill up the interior of the scroller completely
- ui quick start doc
- x11: scroll up/down wiggles caret
- slider needs to be modelized
+ ui:
+- [ ] write in the UI breaks stuff
- some way of intercepting all gestures
- pane output in UI should use less memory
- variable width word wrap
+ module system:
+- reloading source files manually should update their mod time in the
+ module system
- convention for main entry point of a module
- convention for main help article of a module
- track a list of assets loaded from each module's file
r> set-slider ;
: position-viewport ( scroller -- )
- dup scroller-origin vneg
+ dup scroller-origin vneg viewport-gap v+
swap scroller-viewport gadget-child
set-rect-loc ;
position-viewport ;
: (scroll>rect) ( rect scroller -- )
- [ scroller-origin vneg offset-rect viewport-rect ] keep
+ [
+ scroller-origin vneg offset-rect
+ viewport-gap offset-rect
+ ] keep
[
scroller-viewport 2rect-extent
>r >r v- { 0 0 } vmin r> r> v- { 0 0 } vmax v+
2drop
] if ;
-: scroll>bottom ( gadget -- )
- t swap scroll>rect ;
+: scroll>bottom ( gadget -- ) t swap scroll>rect ;
: (scroll>bottom) ( scroller -- )
dup scroller-viewport viewport-dim { 0 1 } v* scroll ;
dup hand-click-rel >r find-slider r>
over gadget-orientation v.
over screen>slider over slider-value - sgn
- swap slide-by-page ;
+ [ swap slide-by-page ] curry start-timer-gadget ;
elevator H{
- { T{ button-down } [ [ elevator-click ] start-timer-gadget ] }
+ { T{ button-down } [ elevator-click ] }
{ T{ button-up } [ stop-timer-gadget ] }
} set-gestures
USING: arrays gadgets gadgets-borders generic kernel math
namespaces sequences ;
+: viewport-gap { 3 3 } ;
+
TUPLE: viewport ;
: find-viewport [ viewport? ] find-parent ;
-: viewport-dim ( viewport -- dim ) gadget-child pref-dim ;
+: viewport-dim ( viewport -- dim )
+ gadget-child pref-dim viewport-gap 2 v*n v+ ;
C: viewport ( content -- viewport )
dup delegate>gadget
- [ >r 3 <border> r> add-gadget ] keep
+ [ add-gadget ] keep
t over set-gadget-clipped? ;
-M: viewport layout* gadget-child prefer ;
+M: viewport layout*
+ dup rect-dim over gadget-child pref-dim vmax
+ swap gadget-child set-layout-dim ;
M: viewport focusable-child*
gadget-child ;
M: viewport pref-dim* viewport-dim ;
-
-: viewport-rect ( rect -- rect ) { 3 3 } offset-rect ;