view demo/buffer.ur @ 2062:795b5b75453c

Add 'role' data attribute. Note, that 'role' attribute is a part of reach ARIA API described here: http://www.w3.org/TR/wai-aria/ Among 'role', it defines lots of aria-* attributes
author Sergey Mironov <grrwlf@gmail.com>
date Mon, 07 Jul 2014 10:05:04 +0400
parents 755a71c99be5
children
line wrap: on
line source
datatype lines = End | Line of string * source lines

type t = { Head : source lines, Tail : source (source lines) }

val create =
    head <- source End;
    tail <- source head;
    return {Head = head, Tail = tail}

fun renderL lines =
    case lines of
        End => <xml/>
      | Line (line, linesS) => <xml>{[line]}<br/><dyn signal={renderS linesS}/></xml>

and renderS linesS =
    lines <- signal linesS;
    return (renderL lines)

fun render t = renderS t.Head

fun write t s =
    oldTail <- get t.Tail;
    newTail <- source End;
    set oldTail (Line (s, newTail));
    set t.Tail newTail