This reminds me of the Visual Interface Dialect (VID) that is part of Rebol/View - http://rebol.com/docs/easy-vid.html
Here's the buttons examples in VID...
Rebol []
shrink: does []
grow: does []
view layout [
text "Hello Brave New World"
below ; not really needed as this is the default behaviour
button "Press Me" [shrink]
button "No, press me" [grow]
; row
across
button "Press Me" [shrink]
button "No, press me" [grow]
return
]
VID runs on Rebol 2. Its successor (still in beta) is R3GUI which runs on Rebol 3 - http://www.r3gui.com/This is how the buttons work in R3GUI...
button "Press Me" on-action [shrink]
button "No, press me" on-action [grow]
... which is even more similar to posted article.Below is a basic (ie. naive!) boilerplate of the Todos example code in VID:
todos: ["todo 1" "todo 2" "todo 3"]
;; To be defined!
nothing: []
controls: []
input-zone: []
todo-list: does [
compose [text-list (todos)]
]
footer: does [
either empty? todos [nothing] [controls]
]
view layout compose [
label "todos"
(input-zone)
(todo-list)
(footer)
]
NB. Disclaimer - my VID experience is very limited :)