-USING: accessors arrays db.tuples db.sqlite persistency db.queries
-io.files.temp kernel monads sequences ui ui.frp.gadgets
-ui.frp.layout ui.frp.signals ui.gadgets.scrollers ui.gadgets.labels
-colors.constants ui.pens.solid combinators math locals strings
-ui.images db.types sequences.extras ui.tools.inspector ;
+USING: accessors arrays colors.constants combinators db.queries
+db.sqlite db.tuples db.types io.files.temp kernel locals math
+monads persistency sequences sequences.extras ui ui.frp.gadgets
+ui.frp.layout ui.frp.signals ui.gadgets.labels
+ui.gadgets.scrollers ui.pens.solid ;
FROM: sets => prune ;
IN: recipes
+
STORED-TUPLE: recipe { title { VARCHAR 100 } } { votes INTEGER } { txt TEXT } { genre { VARCHAR 100 } } ;
: <recipe> ( title genre text -- recipe ) recipe new swap >>txt swap >>genre swap >>title 0 >>votes ;
"recipes.db" temp-file <sqlite-db> recipe define-db
interface
<frp-table*> :> tbl
"okay" <frp-border-button> BUTTON -> :> ok
- "submit" <image-button> [ store-tuple ] >>value TOOLBAR -> :> submit
- "love" <image-button> 1 >>value TOOLBAR ->
- "hate" <image-button> -1 >>value -> 2array <merge> :> votes
- "back" <image-button> -> [ -30 ] <$
- "more" <image-button> -> [ 30 ] <$ 2array <merge> :> viewed
+ IMAGE-BUTTON: submit [ store-tuple ] >>value TOOLBAR -> :> submit
+ IMAGE-BUTTON: love 1 >>value TOOLBAR ->
+ IMAGE-BUTTON: hate -1 >>value -> 2array <merge> :> votes
+ IMAGE-BUTTON: back -> [ -30 ] <$
+ IMAGE-BUTTON: more -> [ 30 ] <$ 2array <merge> :> viewed
<spacer> <frp-field*> ->% 1 :> search
submit ok [ [ drop ] ] <$ 2array <merge> [ drop ] >>value :> quot
viewed 0 [ + ] <fold> search ok t <basic> "all" <frp-button> ALL ->
--- /dev/null
+Used by ui.frp.signals to combine models
\ No newline at end of file
{ $values { "field" action-field } }
{ $description "Field that updates its model with its contents when the user hits the return key" } ;
-HELP: <image-button>
-{ $syntax "filename <image-button>" }
+HELP: IMAGE-BUTTON:
+{ $syntax "IMAGE-BUTTON: filename" }
{ $description "Creates a button using a tiff image named as specified found in the icons subdirectory of the vocabulary path" } ;
HELP: output-model
-USING: accessors arrays kernel models monads
-sequences ui.frp.signals ui.gadgets ui.gadgets.borders
-ui.gadgets.buttons ui.gadgets.buttons.private
-ui.gadgets.editors ui.gadgets.labels ui.gadgets.scrollers
-ui.gadgets.tables ui.images vocabs.parser ;
+USING: accessors arrays kernel models monads sequences
+ui.frp.signals ui.gadgets ui.gadgets.borders ui.gadgets.buttons
+ui.gadgets.buttons.private ui.gadgets.editors
+ui.gadgets.scrollers ui.gadgets.tables ui.images vocabs.parser lexer ;
IN: ui.frp.gadgets
+
TUPLE: frp-button < button hook value ;
: <frp-button> ( gadget -- button ) [
[ dup hook>> [ call( button -- ) ] [ drop ] if* ]
: <frp-action-field> ( -- field ) f <action-field> dup [ set-control-value ] curry >>quot
f <model> >>model ;
-: image-button ( filename path -- button ) ".tiff" surround <image-name> <frp-button> ;
-SYNTAX: <image-button> current-vocab name>> "vocab:" "/icons/" surround
- [ image-button ] curry over push-all ;
+SYNTAX: IMAGE-BUTTON: scan current-vocab name>> "vocab:" "/icons/" surround ".tiff" surround
+ <image-name> [ <frp-button> ] curry over push-all ;
GENERIC: output-model ( gadget -- model )
M: gadget output-model model>> ;
--- /dev/null
+Gadgets using signals as their models
\ No newline at end of file
-USING: accessors assocs arrays fry kernel make math.parser models
-models.product namespaces sequences ui.frp.gadgets parser lexer
-ui.gadgets ui.gadgets.books ui.gadgets.tracks vectors words
-combinators ui.frp.signals monads sequences.extras ui.tools.inspector ;
+USING: accessors arrays fry kernel lexer make math.parser
+models models.product monads namespaces parser sequences
+sequences.extras ui.frp.gadgets ui.frp.signals ui.gadgets
+ui.gadgets.books ui.gadgets.tracks words ;
QUALIFIED: make
IN: ui.frp.layout
--- /dev/null
+Syntax for easily building GUIs and using templates
\ No newline at end of file
-USING: accessors arrays kernel monads models models.product sequences classes
-sequences.extras ;
+USING: accessors arrays kernel models models.product monads
+sequences sequences.extras ;
FROM: models.product => product ;
IN: ui.frp.signals
--- /dev/null
+Utilities for functional reactive programming in user interfaces
+++ /dev/null
-Utilities for functional reactive programming in user interfaces