Merge branch 'master' of git://factorcode.org/git/factor
[factor/jcg.git] / extra / fjsc / resources / bootstrap.factor
blobdb63f15f1c15f3b4692701ea8de26276fd7af654
1 IN: namespaces
2 USE: kernel-internals
3 : bind ( ns quot -- )
4   swap >n call n> drop ;
6 "browser-dom" set-in
8 : elements ( string -- result )
9   #! Call JQuery's $ function
10   window { "result" } "" "$" { "string" } alien-invoke ;
11   
12 : html ( string -- element ) 
13   #! Set the innerHTML of element using jQuery
14   { } "" "html" { "string" } alien-invoke ;
16 : bind-event ( name element quot -- )
17   >function swap { } "" "bind" { "string" "function" } alien-invoke ;
19 "scratchpad" set-in
21 : example1 ( -- )
22   "<button id='test'>Press Me</button>" "#playground" elements html ;
24 : example2 ( -- )
25   "click" "#test" elements [ "clicked" alert ] bind-event ;
27 : example3 ( -- )
28   [
29     [
30       >r "click" "#test" elements r> [ continue ] curry bind-event
31       "Waiting for click on button" alert
32       continue
33     ] callcc0
34     drop "Click done!" alert 
35   ] callcc0 ;
36   
37 : alert ( string -- )
38   #! Display the string in an alert box
39   window { } "" "alert" { "string" } alien-invoke ;