diff datebox.ur @ 20:554e342665fe

Add a new parameter to Gui.gui
author Adam Chlipala <adam@chlipala.net>
date Sat, 24 Sep 2011 15:47:00 -0400
parents 3a303df9ae92
children 5905b56e0cd9
line wrap: on
line diff
--- a/datebox.ur	Fri Sep 23 13:30:01 2011 +0200
+++ b/datebox.ur	Sat Sep 24 15:47:00 2011 -0400
@@ -1,5 +1,5 @@
-con t other_ctx = {Cal : Calendar.t,
-          Panel : TogglePanel.togglePanel Calendar.t other_ctx}
+type t = {Cal : Calendar.t,
+          Panel : TogglePanel.togglePanel Calendar.t []}
 
 type date = Calendar.date
 val date_eq = Calendar.date_eq
@@ -7,16 +7,15 @@
 val time = Calendar.time
 val date = Calendar.date
 
-(* : other_ctx:::{Unit} -> [other_ctx ~ body] => formatCtl other_ctx  *)
-
-val format  = TogglePanel.defaultFormat 
-                 --#OpenCtl -- #CloseCtl
-                 ++ {OpenCtl = fn behaviour => <xml><button value="Choose" onclick={behaviour}/></xml>,
-                     CloseCtl = fn behaviour => <xml><button value="Hide" onclick={behaviour}/></xml>}
+val format : TogglePanel.formatCtl [] = fn [body ~ []] =>
+    TogglePanel.defaultFormat
+        -- #OpenCtl -- #CloseCtl
+        ++ {OpenCtl = fn behaviour => <xml><button value="Choose" onclick={behaviour}/></xml>,
+            CloseCtl = fn behaviour => <xml><button value="Hide" onclick={behaviour}/></xml>}
 
 fun create tm =
     cal <- Calendar.create tm;
-    panel <- TogglePanel.create format cal False;
+    panel <- TogglePanel.create @format cal False;
 
     return {Cal = cal,
             Panel = panel}
@@ -29,9 +28,9 @@
 
 fun value db = Calendar.value db.Cal
 
-fun render db = 
+val gui_t = Gui.mkGui (fn [body ~ []] db =>
     <xml>
       <dyn signal={date <- Calendar.value db.Cal;
                    return <xml>{[date.Year]}-{[date.Month]}-{[date.Day]}</xml>}/>
       {Gui.toXml db.Panel}
-    </xml>
+    </xml>)