48 lines
1.4 KiB
MonkeyC
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 rad = (angle - 90) * Math.PI / 180.0;
|
|
var color = getColor(handType);
|
|
length *= getLenght(handType);
|
|
|
|
dc.setColor(color, color);
|
|
dc.drawLine(x, y, x + length * Math.cos(rad), y + length * Math.sin(rad));
|
|
}
|
|
|
|
private function getColor(handType as IHands.HandType) as ColorType {
|
|
switch (handType) {
|
|
case IHands.SECONDS:
|
|
return SecondsColor;
|
|
default:
|
|
return Color;
|
|
}
|
|
}
|
|
|
|
private function getLenght(handType as IHands.HandType) as Float {
|
|
switch (handType) {
|
|
case IHands.HOURS:
|
|
return 0.7;
|
|
default:
|
|
return 1.0;
|
|
}
|
|
}
|
|
} |