annotate gui.urs @ 32:d32fb0f7b137

Update for Ur/Web's new type class handling
author Adam Chlipala <adam@chlipala.net>
date Sun, 29 Jul 2012 12:28:46 -0400
parents 5905b56e0cd9
children
rev   line source
kkallio@8 1 (* Gui framework elements common across individual components. *)
kkallio@8 2
kkallio@8 3 (* Types of this class describe gui components. *)
adam@20 4 class gui :: Type (* The type of an object to render *)
adam@27 5 -> {Unit} (* The HTML context to render it for (minus [Dyn]) *)
adam@20 6 -> Type
rmbruijn@18 7
rmbruijn@18 8 (* How to add components to the gui class. *)
adam@27 9 val mkGui : t ::: Type -> ctx ::: {Unit} -> ([[Dyn] ~ ctx] => t -> xml ([Dyn] ++ ctx) [] []) -> gui t ctx
rmbruijn@18 10
adam@20 11 (* XML itself can be a gui component. *)
adam@27 12 val gui_xbody : gui xbody body'
adam@27 13 val gui_xtable : gui xtable tabl'
rmbruijn@18 14
kkallio@8 15 (* Currently the only thing a gui component can do is be
kkallio@8 16 * pretty printed to a piece of xml. *)
adam@27 17 val toXml : t ::: Type -> ctx ::: {Unit} -> [[Dyn] ~ ctx] => gui t ctx -> t -> xml ([Dyn] ++ ctx) [] []