(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