Mercurial > gui
view datebox.ur @ 19:3a303df9ae92
Partial generalize togglePanel solution (breaks build)
author | Ron de Bruijn <rmbruijn@gmail.com> |
---|---|
date | Fri, 23 Sep 2011 13:30:01 +0200 |
parents | 8300d5f0dc19 |
children | 554e342665fe |
line wrap: on
line source
con t other_ctx = {Cal : Calendar.t, Panel : TogglePanel.togglePanel Calendar.t other_ctx} type date = Calendar.date val date_eq = Calendar.date_eq val date_ord = Calendar.date_ord 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>} fun create tm = cal <- Calendar.create tm; panel <- TogglePanel.create format cal False; return {Cal = cal, Panel = panel} fun onChange db f = Calendar.onChange db.Cal f fun set db day = Calendar.set db.Cal day fun value db = Calendar.value db.Cal fun render db = <xml> <dyn signal={date <- Calendar.value db.Cal; return <xml>{[date.Year]}-{[date.Month]}-{[date.Day]}</xml>}/> {Gui.toXml db.Panel} </xml>