- the editor should fill up the interior of the scroller completely
- hide empty command groups in $commands
- ui quick start doc
-- page scrolling should be timer-based too
- x11: scroll up/down wiggles caret
- slider needs to be modelized
- more compact relocation info
>r gadget-children r> each-with ; inline
: set-gadget-delegate ( delegate gadget -- )
- dup pick [ set-gadget-parent ] each-child-with set-delegate ;
+ over [ dup pick [ set-gadget-parent ] each-child-with ] when
+ set-delegate ;
: with-gadget ( gadget quot -- )
[ swap gadget set call ] with-scope ; inline
M: timer-gadget tick nip timer-gadget-quot call ;
: start-timer-gadget ( gadget quot -- )
+ 2dup call
over >r curry r>
[ set-timer-gadget-quot ] keep
- 100 add-timer ;
+ 100 add-timer ; inline
: stop-timer-gadget ( gadget -- )
dup remove-timer f swap set-timer-gadget-quot ;
repeat-button H{
{ T{ button-down } [ [ button-clicked ] start-timer-gadget ] }
- { T{ button-up } [ stop-timer-gadget ] }
+ { T{ button-up } [ dup stop-timer-gadget button-update ] }
} set-gestures
C: repeat-button ( gadget quot -- button )
over screen>slider over slider-value - sgn
swap slide-by-page ;
-elevator H{ { T{ button-down } [ elevator-click ] } }
-set-gestures
+elevator H{
+ { T{ button-down } [ [ elevator-click ] start-timer-gadget ] }
+ { T{ button-up } [ stop-timer-gadget ] }
+} set-gestures
C: elevator ( vector -- elevator )
- dup delegate>gadget
- dup elevator-theme
- [ set-gadget-orientation ] keep ;
+ <gadget> <timer-gadget> over set-gadget-delegate
+ [ set-gadget-orientation ] keep
+ dup elevator-theme ;
: (layout-thumb) ( slider n -- n thumb )
over gadget-orientation n*v swap slider-thumb ;
"This world has been deactivated to prevent cascading errors." print
delegate error. ;
-: draw-world? ( world -- )
+: draw-world? ( world -- ? )
#! We don't draw deactivated worlds, or those with 0 size.
#! On Windows, the latter case results in GL errors.
dup world-active? swap rect-dim [ zero? not ] all? and ;