view examples/togglepanel.ur @ 33:2e7f8f7d71d4

Update for Ur/Web's new tag name resolution
author Adam Chlipala <adam@chlipala.net>
date Thu, 21 Nov 2013 16:12:17 -0500
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>