view examples/togglepanel.ur @ 27:5905b56e0cd9

Adapt to new HTML contexts
author Adam Chlipala <adam@chlipala.net>
date Tue, 20 Dec 2011 21:04:21 -0500
parents 554e342665fe
children 93140c5cc972
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 [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>