52 lines
2.0 KiB
Plaintext
52 lines
2.0 KiB
Plaintext
#MiddleX = 90 + 1 ;x,y must be odd numbers, minimum width is 67
|
|
#MiddleY = #MiddleX
|
|
#len_sh = (#MiddleX - 8) * 0.97 ;length of second-hand
|
|
#len_mh = (#MiddleX - 8) * 0.88 ;length of minute-hand
|
|
#len_hh = (#MiddleX - 8) * 0.66 ;length of hour-hand
|
|
#clockFace_img = 0
|
|
#clock_gad = 0
|
|
#clock_win = 0
|
|
|
|
Define cx = #MiddleX, cy = #MiddleY, i, ri.f
|
|
Define c_gray = RGB($CC, $CC, $CC), c_mgray = RGB($99, $99, $99)
|
|
Define c_white = RGB(255, 255, 255), c_black =RGB(0, 0, 0)
|
|
Define c_red = RGB(255, 0, 0), c_blue = RGB(0, 0, 255)
|
|
Define c_dcyan = RGB($27, $BC, $D8), c_lgreen = RGB($60, $E0, $9)
|
|
Define c_yellow = RGB($F4, $D5, $0B)
|
|
|
|
CreateImage(#clockFace_img, cx * 2 - 1, cy * 2 - 1)
|
|
StartDrawing(ImageOutput(#clockFace_img))
|
|
Box(0, 0, cx * 2 - 1, cy * 2 - 1, c_mgray)
|
|
Circle(cx, cy, cx - 2, c_dcyan)
|
|
For i = 0 To 359 Step 30
|
|
ri = Radian(i)
|
|
Circle(cx + Sin(ri) * (cx - 5), cy + Cos(ri) * (cx - 5), 3, c_gray)
|
|
Next
|
|
StopDrawing()
|
|
OpenWindow(#clock_win, 0, 0, cx * 2, cy * 2, "Clock")
|
|
ImageGadget(#clock_gad, 0, 0, cx * 2, cy * 2, ImageID(#clockFace_img))
|
|
|
|
Define x, y, rad_s.f, rad_m.f, rad_h.f, t$
|
|
Repeat
|
|
event = WaitWindowEvent(25)
|
|
If event = 0
|
|
rad_s = Radian(360 - (Second(Date()) * 6) + 180)
|
|
rad_m = Radian(360 - (Minute(Date()) * 6) + 180)
|
|
rad_h = Radian(360 - (((Hour(Date()) - 1) * 30) + 180) - (Minute(Date()) / 2))
|
|
|
|
StartDrawing(ImageOutput(#clockFace_img))
|
|
Circle(cx, cy, cx - 8, c_lgreen)
|
|
t$ = FormatDate("%mm-%dd-%yyyy", Date())
|
|
x = cx - (TextWidth(t$) + 2) / 2
|
|
y = (cy - (TextHeight(t$) + 2) - 4) / 2
|
|
Box(x, y, TextWidth(t$) + 2, TextHeight(t$) + 2, c_black)
|
|
DrawText(x + 2, y + 2, t$, c_black, c_yellow)
|
|
LineXY(cx, cy, cx + Sin(rad_s) * #len_sh, cy + Cos(rad_s) * #len_sh, c_white)
|
|
LineXY(cx, cy, cx + Sin(rad_m) * #len_mh, cy + Cos(rad_m) * #len_mh, c_red)
|
|
LineXY(cx, cy, cx + Sin(rad_h) * #len_hh, cy + Cos(rad_h) * #len_hh, c_black)
|
|
Circle(cx, cy, 4, c_blue)
|
|
StopDrawing()
|
|
SetGadgetState(#clock_gad, ImageID(#clockFace_img))
|
|
EndIf
|
|
Until event = #PB_Event_CloseWindow
|