(phixonline)-->
-- demo\rosetta\sleep.exw
with javascript_semantics
include pGUI.e
Ihandle dlg, state, label, slider, snooze, timer
function timer_cb(Ihandle /*timer*/)
IupSetAttribute(state,"TITLE","awake")
IupSetInt(timer,"RUN",false)
return IUP_CONTINUE
end function
function slider_cb(Ihandle /*slider*/)
atom v = IupGetDouble(slider,"VALUE")
IupSetInt(timer,"TIME",v*1000)
IupSetStrAttribute(label,"TITLE","%3.1fs",{v})
return IUP_CONTINUE
end function
function snooze_cb(Ihandle /*snooze*/)
IupSetAttribute(state,"TITLE","asleep")
IupSetInt(timer,"RUN",true)
return IUP_CONTINUE
end function
IupOpen()
state = IupLabel("awake")
label = IupLabel("2.0s")
slider = IupValuator(NULL,"VALUECHANGED_CB",Icallback("slider_cb"),"MIN=1, MAX=15, VALUE=2, EXPAND=HORIZONTAL")
snooze = IupButton("Snooze",Icallback("snooze_cb"),"EXPAND=HORIZONTAL")
dlg = IupDialog(IupVbox({IupHbox({IupLabel("state: "),state},"ALIGNMENT=ACENTER"),
IupHbox({IupLabel("Duration: "),label,slider},"ALIGNMENT=ACENTER"),
IupHbox({snooze})},
"MARGIN=10x10"),
`TITLE="Snooze"`)
IupSetAttributeHandle(dlg,"STARTFOCUS",snooze)
timer = IupTimer(Icallback("timer_cb"),2000,false)
IupShow(dlg)
if platform()!=JS then
IupMainLoop()
IupClose()
end if