]> gitweb.factorcode.org Git - factor.git/blobdiff - contrib/action-field.factor
Contrib fixes
[factor.git] / contrib / action-field.factor
index 0cf0fdace6455f9691ab2737e3d6860414a68ae5..f1f01e9ad6deb2a78ae2d58beaec87fcdb9963a6 100644 (file)
@@ -1,8 +1,24 @@
-
-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 ;