let button = fn f_id size content -> {
let btn_id = create_button (f_id, size);
let aux = fn (label << content) ->
draw_button (f_id, btn_id, label) << @(aux !@content);
(btn_id, aux content)
}
let vgroup = fn f_id size elems alignment -> {
let grp_id = create_vgroup (f_id, size, alignment);
let aux = fn (es_now << es_later) ->
draw_vgroup (f_id, grp_id, es_now) << @(aux !@es_later);
(grp_id, aux elems)
}
let hgroup = fn f_id size elems alignment -> {
let grp_id = create_hgroup (f_id, size, alignment);
let aux = fn (es_now << es_later) ->
draw_hgroup (f_id, grp_id, es_now) << @(aux !@es_later);
(grp_id, aux elems)
}
let checkbox = fn f_id size -> {
let cbx_id = create_checkbox (f_id, size);
let aux = draw_checkbox (f_id, cbx_id) << @aux;
(cbx_id, aux)
}
let label = fn f_id size content -> {
let lab_id = create_label (f_id, size);
let aux = fn (cnt_now << cnt_later) ->
draw_label (f_id, lab_id, cnt_now) << @(aux !@cnt_later);
(lab_id, aux content)
}
let separator = fn f_id -> {
let sep_id = create_separator f_id;
let aux = draw_separator (f_id, sep_id) << @aux;
(sep_id, aux)
}
let textbox = fn f_id size -> {
let tbx_id = create_textbox (f_id, size);
let aux = draw_textbox (f_id, tbx_id) << @aux;
(tbx_id, aux)
}
let image = fn f_id size img_stream -> {
let img_id = create_guimage (f_id, size);
let aux = fn (img_now << img_later) ->
draw_guimage (f_id, img_id, img_now) << @(aux !@img_later);
(img_id, aux img_stream)
}