view examples/togglepanel.ur @ 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 93140c5cc972
children
line wrap: on
line source
open Gui
open TogglePanel

val defaultContent : xbody = <xml><p>Here I am inside the panel.<br/><b>Default format</b></p></xml>
val otherContent : xbody = <xml><p>Here I am inside the panel.<br/><b>Other format</b></p></xml>

val otherFormat = fn [[Dyn] ~ body'] =>
                     {FormatPanel = fn ctl panel => <xml><span>A Custom {ctl} Format</span>{panel}</xml>,
                      OpenCtl = fn behaviour => <xml><a href={bless "http://#"} onclick={behaviour}>View</a></xml>,
                      CloseCtl = fn behaviour => <xml><a href={bless "http://#"} onclick={behaviour}>Hide</a></xml>}

fun main () =

    defaultFormatPanel <- create @defaultFormat defaultContent True;
    otherFormatPanel <- create @otherFormat otherContent False;

    return <xml>
      <head>
        <title>A panel that can be shown or hidden.</title>
      </head>
      <body>
        <h1>Example using the togglePanel widget.</h1>
        <p>
          This is a widget which has a content display panel
          which can be shown or hidden.
        </p>
        <h2>Example of the default format, starting open.</h2>
        <p>
          {toXml defaultFormatPanel}
        </p>
        <h2>Example of another format, starting closed.</h2>
        <p>
          {toXml otherFormatPanel}
        </p>
      </body>
    </xml>