Mercurial > urweb
annotate demo/more/conferenceFields.ur @ 1020:dfe34fad749d
RPC uses VM support for call/cc
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 25 Oct 2009 14:07:10 -0400 |
parents | 16f7cb0891b6 |
children | 53a22f46f377 |
rev | line source |
---|---|
adamc@1007 | 1 open Meta |
adamc@1007 | 2 |
adamc@1007 | 3 val title = string "Title" |
adamc@1007 | 4 val abstract = textarea "Abstract" |
adamc@1011 | 5 |
adamc@1011 | 6 fun charIn s = |
adamc@1011 | 7 if String.length s = 0 then |
adamc@1011 | 8 error <xml>Impossible: Empty option value</xml> |
adamc@1011 | 9 else |
adamc@1011 | 10 String.sub s 0 |
adamc@1011 | 11 |
adamc@1011 | 12 con dropdown = (char, string) |
adamc@1011 | 13 fun dropdown name opts = {Nam = name, |
adamc@1011 | 14 Show = txt, |
adamc@1011 | 15 Widget = fn [nm :: Name] => <xml><select{nm}> |
adamc@1011 | 16 {List.mapX (fn x => <xml><option>{[x]}</option></xml>) opts} |
adamc@1011 | 17 </select></xml>, |
adamc@1011 | 18 WidgetPopulated = fn [nm :: Name] v => <xml><select{nm}> |
adamc@1011 | 19 {List.mapX (fn x => <xml><option selected={x = v}>{[x]}</option></xml>) opts} |
adamc@1011 | 20 </select></xml>, |
adamc@1011 | 21 Parse = charIn, |
adamc@1011 | 22 Inject = _} |
adamc@1011 | 23 |