reset()
var b = component("button", "Hello World (mouse event)")
var c = component("checkbox", "Singkong?")
var r = component("radio", "Radio Button")
var m = component("combobox", "Singkong,Programming,Language")
var t = component("table", "A,B", true)
var tm = component("table", "TYPE, X, Y, CLICK COUNT", true)
var tk = component("table", "TYPE, CHAR, CODE, KEY, ACTION, MODIFIER, LOCATION, ALT, ALT GRAPH, CONTROL, META, SHIFT", true)
var tf = component("table", "TYPE, WIDTH, HEIGHT, X, Y", true)
var pm = component("panel", "Mouse")
var pk = component("panel", "Keyboard")
var pf = component("panel", "Frame")
var ta = component("tab", "")
var e = component("edit", "")
var p = component("password", "")
var x = component("text", "")
var v = component("view", "")

panel_add(pm, tm, 10, 10, 300, 500)
tab_add(ta, pm)
panel_add(pk, tk, 10, 10, 300, 500)
tab_add(ta, pk)
panel_add(pf, tf, 10, 10, 300, 500)
tab_add(ta, pf)

var bb = fn() {
    message(get(b,"text"))
}
event(b, bb)

var cc = fn() {
    message(get(c,"active"))
}
event(c, cc)

var rr = fn() {
    message(get(r,"active"))
}
event(r, rr)

var mm = fn() {
    message(get(m, "text"))
}
event(m, mm)

config(t, "contents", [[1,2],[3,4],[5,6]])
var tt = fn() {
    message(get(t, "contents")[get(t, "active")])
}
event(t, tt)

var ee = fn() {
    var content = get(e, "contents")
    config(v, "contents", content)
}
event(e, ee)

var pp = fn() {
    message(get(p, "contents"))
}
event(p, pp)

var xx = fn() {
    message(get(x, "contents"))
}
event(x, xx)

event_mouse(b, fn(m) {
  table_add(tm, [m])
  if (m[0] == "EXITED") {
    var c = len(get(tm, "contents"))
    table_scroll(tm, c-1)
  }
})

event_keyboard_frame(fn(m) {
  table_add(tk, [m])
})

event_frame(fn(m) {
  table_add(tf, [m])
})

event(ta, fn() {
  message(get(ta, "active"))
})

add_n([p, x])
add_s([b, c, r, m])
add([t, e, v, ta])
closing("Are you sure you want to quit this application?", 
  "Please confirm")
show()

