Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #DefaultTime = 27
- #ImageGap = 32
- #Offset = 42
- #ClockFramePath = "./Nixie/"
- Macro Pos(string,position)
- Val(Mid(string,position+1,1))
- EndMacro
- HowLong = Val(InputRequester("Tea Timer", "Enter time in minutes (1 - 59):", Str(#DefaultTime)))
- If HowLong < 1
- HowLong = #DefaultTime
- ElseIf HowLong > 59
- MessageRequester("Tea Timer", "That is not a valid time. It must be between 1 and 59 minutes.", #PB_MessageRequester_Warning)
- HowLong = 59
- EndIf
- UsePNGImageDecoder()
- For i = 0 To 9
- LoadImage(i, #ClockFramePath + Str(i) + ".png")
- Next
- LoadImage(10, #ClockFramePath + "blank.png")
- ; IMAGE 11 IS IMAGE FOR DRAWING CLOCK REALTIME
- LoadImage(12, #ClockFramePath + "base.png")
- ;ExamineDesktops()
- SystemParametersInfo_(#SPI_GETWORKAREA, 0, @DesktopWorkArea.RECT, 0)
- OpenWindow(0, 0, DesktopWorkArea\Bottom - (ImageHeight(0) + ImageHeight(12)), ImageWidth(12), ImageHeight(0) + ImageHeight(12), "Tube Timer", #PB_Window_BorderLess)
- SetWindowColor(0, #Magenta)
- SetWindowLong_(WindowID(0), #GWL_EXSTYLE, #WS_EX_LAYERED | #WS_EX_TOPMOST)
- SetLayeredWindowAttributes_(WindowID(0), #Magenta, 0, #LWA_COLORKEY)
- ImageGadget(0, 0, 0, WindowWidth(0), WindowHeight(0), 0)
- CreateImage(11, WindowWidth(0), WindowHeight(0))
- AddWindowTimer(0, 0, 250)
- StartTime = Date()
- EndTime = AddDate(StartTime, #PB_Date_Minute, HowLong)
- FlashDone = #False
- TubePos = ImageWidth(0) + #ImageGap
- Repeat
- Event = WaitWindowEvent(10)
- Select Event
- Case #WM_LBUTTONDOWN
- MouseDown = #True
- OffsetX = WindowMouseX(0)
- OffsetY = WindowMouseY(0)
- Case #WM_LBUTTONUP
- MouseDown = #False
- Case #WM_MOUSEMOVE
- If MouseDown
- ResizeWindow(0, DesktopMouseX() - OffsetX, DesktopMouseY() - OffsetY, #PB_Ignore, #PB_Ignore)
- EndIf
- Case #PB_Event_Timer
- If EventTimer() = 0
- MinutesRemain = Minute(EndTime - Date())
- SecondsRemain = Second(EndTime - Date())
- If MinutesRemain < 1 And SecondsRemain < 1
- Beep_(1200, 100)
- If FlashDone = #False
- StartDrawing(ImageOutput(11))
- Box(0, 0, ImageWidth(11), ImageHeight(11), #Magenta)
- DrawImage(ImageID(12), 0, ImageHeight(11) - ImageHeight(12))
- DrawImage(ImageID(0), #Offset, 0)
- DrawImage(ImageID(0), #Offset + TubePos, 0)
- DrawImage(ImageID(10), #Offset + (TubePos * 2), 0)
- DrawImage(ImageID(0), #Offset + (TubePos * 3), 0)
- DrawImage(ImageID(0), #Offset + (TubePos * 4), 0)
- StopDrawing()
- FlashDone = #True
- Else
- StartDrawing(ImageOutput(11))
- Box(0, 0, ImageWidth(11), ImageHeight(11), #Magenta)
- DrawImage(ImageID(12), 0, ImageHeight(11) - ImageHeight(12))
- For i = 0 To 4
- DrawImage(ImageID(10), #Offset + (TubePos * i), 0)
- Next
- StopDrawing()
- FlashDone = #False
- EndIf
- Else
- ToDispMin.s = Str(MinutesRemain)
- ToDispSec.s = Str(SecondsRemain)
- If MinutesRemain < 10 : ToDispMin = "0" + Str(MinutesRemain) : EndIf
- If SecondsRemain < 10 : ToDispSec = "0" + Str(SecondsRemain) : EndIf
- StartDrawing(ImageOutput(11))
- Box(0, 0, ImageWidth(11), ImageHeight(11), #Magenta)
- DrawImage(ImageID(12), 0, ImageHeight(11) - ImageHeight(12))
- DrawImage(ImageID(Pos(ToDispMin,0)), #Offset, 0)
- DrawImage(ImageID(Pos(ToDispMin,1)), #Offset + TubePos, 0)
- DrawImage(ImageID(10), #Offset + (TubePos * 2), 0)
- DrawImage(ImageID(Pos(ToDispSec,0)), #Offset + (TubePos * 3), 0)
- DrawImage(ImageID(Pos(ToDispSec,1)), #Offset + (TubePos * 4), 0)
- StopDrawing()
- EndIf
- SetGadgetState(0, ImageID(11))
- EndIf
- EndSelect
- Until Event = #PB_Event_CloseWindow
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement