import "pkg:/source/utils/misc.bs"
' @fileoverview Clock component to display current time formatted based on user's chosen 12 or 24 hour setting
sub init()
m.top.id = "clock"
if m.global.session.user.settings["ui.design.hideclock"]
' If hideclick setting is enabled, exit without setting any variables
m.hideClock = true
return
end if
m.hideClock = false
m.hours = m.top.findNode("hours")
m.minutes = m.top.findNode("minutes")
m.timeSeperator = m.top.findNode("timeSeperator")
m.dateTimeObject = CreateObject("roDateTime")
m.dateTimeObject.ToLocalTime()
m.currentTimeTimer = m.top.findNode("currentTimeTimer")
m.currentTimeTimer.observeField("fire", "updateTime")
m.currentTimeTimer.control = "start"
end sub
' onCurrentTimeTimerFire: Code that runs every time the currentTimeTimer fires
'
sub updateTime()
if m.hideClock then return
currentTime = CreateObject("roDateTime")
currentTime.ToLocalTime()
m.currentTimeTimer.duration = 60 - currentTime.GetSeconds()
currentHours = currentTime.GetHours()
currentMinutes = currentTime.GetMinutes()
displayedHour = StrI(currentHours).trim()
displayedMinute = StrI(currentMinutes).trim()
if m.global.device.clockFormat = "24h"
if currentHours < 10
displayedHour = "0" + displayedHour
end if
else
if currentHours = 0
displayedHour = "12"
else if currentHours > 12
displayedHour = StrI(currentHours - 12).trim()
end if
end if
if currentMinutes < 10
displayedMinute = "0" + displayedMinute
end if
m.hours.text = displayedHour
m.timeSeperator.visible = true
m.minutes.text = displayedMinute
m.top.hours = currentHours
m.top.minutes = currentMinutes
end sub
sub resetTime()
if m.hideClock then return
m.currentTimeTimer.control = "stop"
m.currentTimeTimer.control = "start"
updateTime()
end sub