Files
wf/source/Hands/SimpleHands.mc
2025-11-03 14:37:02 +02:00

48 lines
1.4 KiB
MonkeyC

import Toybox.Graphics;
import Toybox.Lang;
class SimpleHands extends IHands {
var Color as ColorType;
var SecondsColor as ColorType;
typedef SimpleHandsParams as {
:HandsParams as IHands.HandsParams,
:Color as ColorType,
:SecondsColor as ColorType,
};
function initialize(options as SimpleHandsParams) {
IHands.initialize(getOrElse(options[:HandsParams], {}));
Color = getOrElse(options[:Color], Graphics.COLOR_WHITE);
SecondsColor = getOrElse(options[:SecondsColor], Graphics.COLOR_RED);
}
function drawHand(dc as Dc, x as Float, y as Float, angle as Float, length as Float, handType as IHands.HandType) as Void {
var color = getColor(handType);
angle = Math.toRadians(angle - 90);
length *= getLenght(handType);
dc.setColor(color, color);
dc.drawLine(x, y, x + length * Math.cos(angle), y + length * Math.sin(angle));
}
private function getColor(handType as IHands.HandType) as ColorType {
switch (handType) {
case SECONDS_HAND:
return SecondsColor;
default:
return Color;
}
}
private function getLenght(handType as IHands.HandType) as Float {
switch (handType) {
case HOURS_HAND:
return 0.7;
default:
return 1.0;
}
}
}