-
-USING: kernel models namespaces math sequences arrays hashtables gadgets
- gadgets-text gadgets-buttons ;
+USING: kernel models namespaces math sequences arrays hashtables
+gadgets gadgets-text gadgets-buttons generic ;
IN: action-field
+TUPLE: field model ;
+
+C: field ( model -- field )
+<editor> over set-delegate
+[ set-field-model ] keep
+dup dup set-control-self ;
+
+: field-commit ( field -- string )
+[ editor-text ] keep
+[ field-model [ dupd set-model ] when* ] keep
+select-all ;
+
+field "Field commands" {
+ { "Clear input" T{ key-down f { C+ } "k" } [ control-model clear-doc ] }
+ { "Accept input" T{ key-down f f "RETURN" } [ field-commit drop ] }
+} define-commands
+
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
TUPLE: action-field quot ;
contrib/benchmarks contrib/boids contrib/cairo contrib/calendar
contrib/concurrency contrib/coroutines contrib/crypto
contrib/dlists contrib/emacs contrib/embedded contrib/furnace
-contrib/furance-pastebin contrib/gap-buffer contrib/hexdump
+contrib/furnace-pastebin contrib/gap-buffer contrib/hexdump
contrib/http contrib/httpd contrib/http-client contrib/jedit
contrib/jni contrib/json contrib/lambda contrib/lazy-lists
contrib/lindenmayer contrib/match contrib/math
! element in the underlying sequence.
TUPLE: circular start ;
-C: circular ( seq circular -- circular )
+C: circular ( seq -- circular )
0 over set-circular-start [ set-delegate ] keep ;
: circular@ ( n circular -- n seq )
: required-space ( n gb -- n )
tuck gb-expand-factor * ceiling >fixnum swap gb-min-size max ;
-C: gb ( seq gb -- gb )
+C: gb ( seq -- gb )
5 over set-gb-min-size
1.5 over set-gb-expand-factor
[ >r length r> set-gb-gap-start ] 2keep