# HG changeset patch # User Adam Chlipala # Date 1216912614 14400 # Node ID e2b1853795928329ef5f03aa3b590d572c8bc4ad # Parent cfe6f9db74aa3f2e8845d10dbc1fc086606b9916 HTML select diff -r cfe6f9db74aa -r e2b185379592 lib/basis.lig --- a/lib/basis.lig Thu Jul 24 11:10:23 2008 -0400 +++ b/lib/basis.lig Thu Jul 24 11:16:54 2008 -0400 @@ -72,6 +72,10 @@ val radio : lformTag string radio [] val radioOption : unit -> tag [Value = string] radio [] [] [] +con select = [Select] +val lselect : lformTag string select [] +val loption : unit -> tag [Value = string] select [] [] [] + val submit : ctx ::: {Unit} -> [LForm] ~ ctx -> use ::: {Type} -> unit -> tag [Action = $use -> page] ([LForm] ++ ctx) ([LForm] ++ ctx) use [] diff -r cfe6f9db74aa -r e2b185379592 src/monoize.sml --- a/src/monoize.sml Thu Jul 24 11:10:23 2008 -0400 +++ b/src/monoize.sml Thu Jul 24 11:16:54 2008 -0400 @@ -329,6 +329,20 @@ normal ("input", SOME (L'.EPrim (Prim.String (" type=\"radio\" name=\"" ^ name ^ "\"")), loc))) + | "lselect" => + (case targs of + [_, (L.CName name, _)] => + (L'.EStrcat ((L'.EStrcat (tagStart "select", + (L'.EPrim (Prim.String (" name=\"" ^ name ^ "\">")), loc)), loc), + (L'.EStrcat (monoExp (env, st) xml, + (L'.EPrim (Prim.String ""), + loc)), loc)), + loc) + | _ => (Print.prefaces "Targs" (map (fn t => ("T", CorePrint.p_con env t)) targs); + raise Fail "No name passed to lselect tag")) + + | "loption" => normal ("option", NONE) + | _ => normal (tag, NONE) end diff -r cfe6f9db74aa -r e2b185379592 tests/select.lac --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/select.lac Thu Jul 24 11:16:54 2008 -0400 @@ -0,0 +1,13 @@ +val handler = fn x => + You entered: {cdata x.A} + + +val main = fn () => + + + A + B + + + +