From c95e5aa13e47aa2420f2ba7c79028fef8261573c Mon Sep 17 00:00:00 2001 From: OliverHannover Date: Mon, 6 Feb 2017 11:20:23 +0100 Subject: [PATCH] reverse build to v 0.5.1 --- Archiv/AviatorlikeView.archiv | 1044 ++++++++++ Archiv/Moon.archiv | 185 ++ Archiv/moon.png | Bin 0 -> 1084 bytes .../drawables/lowerDisplay.xml | 3 + .../drawables/upperDisplay.xml | 3 + .../drawables/lowerDisplay.xml | 3 + .../drawables/upperDisplay.xml | 3 + bin/Aviatorlike.prg | Bin 108388 -> 118628 bytes bin/Aviatorlike.prg.debug.xml | 1695 ++++++++--------- manifest.xml | 4 +- resources-semiround/settings/properties.xml | 36 - resources-semiround/settings/settings.xml | 332 ---- resources-semiround/strings/strings.xml | 144 -- resources/layouts/layout.xml | 2 + .../settings/properties.xml | 0 .../settings/settings.xml | 0 .../strings/strings.xml | 0 source/AviatorlikeView.mc | 156 +- 18 files changed, 2147 insertions(+), 1463 deletions(-) create mode 100644 Archiv/AviatorlikeView.archiv create mode 100644 Archiv/Moon.archiv create mode 100644 Archiv/moon.png create mode 100644 Archiv/resources-round/drawables/lowerDisplay.xml create mode 100644 Archiv/resources-round/drawables/upperDisplay.xml create mode 100644 Archiv/resources-semiround/drawables/lowerDisplay.xml create mode 100644 Archiv/resources-semiround/drawables/upperDisplay.xml delete mode 100644 resources-semiround/settings/properties.xml delete mode 100644 resources-semiround/settings/settings.xml delete mode 100644 resources-semiround/strings/strings.xml create mode 100644 resources/layouts/layout.xml rename {resources-round => resources}/settings/properties.xml (100%) rename {resources-round => resources}/settings/settings.xml (100%) rename {resources-round => resources}/strings/strings.xml (100%) diff --git a/Archiv/AviatorlikeView.archiv b/Archiv/AviatorlikeView.archiv new file mode 100644 index 0000000..0cc9976 --- /dev/null +++ b/Archiv/AviatorlikeView.archiv @@ -0,0 +1,1044 @@ +using Toybox.Graphics as Gfx; +using Toybox.Lang as Lang; +using Toybox.Math as Math; +using Toybox.System as Sys; +using Toybox.Time as Time; +using Toybox.Application as App; +using Toybox.Time.Gregorian as Calendar; +using Toybox.WatchUi as Ui; +using Toybox.Activity as Act; +using Toybox.ActivityMonitor as ActMonitor; + +//develop +class AviatorlikeView extends Ui.WatchFace{ + + + var font1; + var fontDigital; + var fontLabel; + + var isAwake; + var screenShape; + + var clockTime; + + var width; + var height; + // the x coordinate for the center + var center_x; + // the y coordinate for the center + var center_y; + + //Variablen für die digitale Uhr + var ampmStr = "am"; + var timeStr; + var Use24hFormat; + var dualtime = false; + var dualtimeTZ = 0; + var dualtimeDST = 0; + + //variables for secondary displays + //altitude + var altitudeStr; + var altUnit; + + //Battery + var BatteryStr; + + //sunset sunrise + hidden var sunset_sunrise; + //hidden var sunrise; + //hidden var sunset; + hidden var lastLoc; + hidden var sunsetStr; + + //var moon; + + //var upperDisplay, lowerDisplay; + + + function initialize() { + WatchFace.initialize(); + screenShape = Sys.getDeviceSettings().screenShape; + + // upperDisplay = new Rez.Drawables.upperDisplay(); + // lowerDisplay = new Rez.Drawables.lowerDisplay(); + + Sys.println("Screenshape = " + screenShape); + + + } + + + function onLayout(dc) { + setLayout(Rez.Layouts.WatchFace(dc)); + + width = dc.getWidth(); + height = dc.getHeight(); + center_x = dc.getWidth() / 2; + center_y = dc.getHeight() / 2; + + font1 = Ui.loadResource(Rez.Fonts.id_font_fat); + //font1 = Gfx.FONT_SYSTEM_NUMBER_SMALL; + fontDigital = Ui.loadResource(Rez.Fonts.id_font_digital); + fontLabel = Ui.loadResource(Rez.Fonts.id_font_label); + + } + + + + // Draw the hash mark symbols on the watch------------------------------------------------------- + function drawHashMarks(dc) { + + var n; + var alpha, r1, r2; + + //alle 5 minutes + dc.setPenWidth(3); + dc.setColor(App.getApp().getProperty("MinutesColor"), Gfx.COLOR_TRANSPARENT); + r1 = width/2 -5; //inside + r2 = width/2 ; //outside + for (var alpha = Math.PI / 6; alpha <= 13 * Math.PI / 6; alpha += (Math.PI / 30)) { //jede Minute + dc.drawLine(center_x+r1*Math.sin(alpha),center_y-r1*Math.cos(alpha), center_x+r2*Math.sin(alpha),center_y-r2*Math.cos(alpha)); + + } + + //alle 5 minutes + dc.setPenWidth(3); + dc.setColor(App.getApp().getProperty("QuarterNumbersColor"), Gfx.COLOR_TRANSPARENT); + r1 = width/2 -20; //inside + r2 = width/2 ; //outside + //for (var alpha = Math.PI / 6; alpha <= 13 * Math.PI / 6; alpha += (Math.PI / 30)) { //jede Minute + for (var alpha = Math.PI / 6; alpha <= 11 * Math.PI / 6; alpha += (Math.PI / 3)) { //jede 5. Minute + dc.drawLine(center_x+r1*Math.sin(alpha),center_y-r1*Math.cos(alpha), center_x+r2*Math.sin(alpha),center_y-r2*Math.cos(alpha)); + alpha += Math.PI / 6; + dc.drawLine(center_x+r1*Math.sin(alpha),center_y-r1*Math.cos(alpha), center_x+r2*Math.sin(alpha),center_y-r2*Math.cos(alpha)); + } + + } + + + + function drawQuarterHashmarks(dc){ + //12, 3, 6, 9 + var NbrFont = (App.getApp().getProperty("Numbers")); + + if ( NbrFont == 0) { //no number + var n; + var r1, r2, marks, thicknes; + var outerRad = 0; + var lenth=20; + if (screenShape == 1) { //semi round + lenth = 20; + } + if (screenShape == 2) { //semi round + lenth = 30; + } + + var thick = 5; + thicknes = thick * 0.02; + for (var alpha = Math.PI / 2; alpha <= 13 * Math.PI / 2; alpha += (Math.PI / 2)) { //jede 15. Minute + r1 = (width/2 + 3) - outerRad; //outside + r2 = r1 -lenth; //inside + + marks = [[center_x+r1*Math.sin(alpha-thicknes),center_y-r1*Math.cos(alpha-thicknes)], + [center_x+r2*Math.sin(alpha-thicknes),center_y-r2*Math.cos(alpha-thicknes)], + [center_x+r2*Math.sin(alpha+thicknes),center_y-r2*Math.cos(alpha+thicknes)], + [center_x+r1*Math.sin(alpha+thicknes),center_y-r1*Math.cos(alpha+thicknes)] ]; + + dc.setColor(App.getApp().getProperty("QuarterNumbersColor"), Gfx.COLOR_TRANSPARENT); + dc.fillPolygon(marks); + + dc.setPenWidth(1); + dc.setColor(App.getApp().getProperty("BackgroundColor"), Gfx.COLOR_TRANSPARENT); + dc.drawLine(center_x+r2*Math.sin(alpha),center_y-r2*Math.cos(alpha), center_x+r1*Math.sin(alpha),center_y-r1*Math.cos(alpha)); + + } + } + else { + var r1 = width/2 -5; //inside + var r2 = width/2 ; //outside + dc.setPenWidth(8); + dc.setColor(App.getApp().getProperty("QuarterNumbersColor"), Gfx.COLOR_TRANSPARENT); + for (var alpha = Math.PI / 2; alpha <= 13 * Math.PI / 2; alpha += (Math.PI / 2)) { + dc.drawLine(center_x+r1*Math.sin(alpha),center_y-r1*Math.cos(alpha), center_x+r2*Math.sin(alpha),center_y-r2*Math.cos(alpha)); + } + } + } + + + + + + function drawDigitalTime(dc) { + + var now = Time.now(); + + + dualtimeTZ = (App.getApp().getProperty("DualTimeTZ")); + dualtimeDST = (App.getApp().getProperty("DualTimeDST")); + + clockTime = Sys.getClockTime(); + + + var dthour; + var dtmin; + var dtnow = now; + // adjust to UTC/GMT + dtnow = dtnow.add(new Time.Duration(-clockTime.timeZoneOffset)); + // adjust to time zone + dtnow = dtnow.add(new Time.Duration(dualtimeTZ)); + + + + if (dualtimeDST != 0) { + // calculate Daylight Savings Time (DST) + var dtDST; + if (dualtimeDST == -1) { + // Use the current dst value + dtDST = clockTime.dst; + } else { + // Use the configured DST value + dtDST = dualtimeDST; + } + // adjust DST + dtnow = dtnow.add(new Time.Duration(dtDST)); + } + + // create a time info object + var dtinfo = Calendar.info(dtnow, Time.FORMAT_LONG); + + dthour = dtinfo.hour; + dtmin = dtinfo.min; + + var use24hclock; + //var ampmStr = "am "; + + use24hclock = Sys.getDeviceSettings().is24Hour; + if (!use24hclock) { + if (dthour >= 12) { + ampmStr = "pm "; + } + if (dthour > 12) { + dthour = dthour - 12; + } else if (dthour == 0) { + dthour = 12; + ampmStr = "am "; + } + } + + if (dthour < 10) { + timeStr = Lang.format(" 0$1$:", [dthour]); + } else { + timeStr = Lang.format(" $1$:", [dthour]); + } + if (dtmin < 10) { + timeStr = timeStr + Lang.format("0$1$ ", [dtmin]); + } else { + timeStr = timeStr + Lang.format("$1$ ", [dtmin]); + } + + + + + }//End of drawDigitalTime(dc)------- + + + function drawAltitude(dc) { + + var unknownaltitude = true; + var actaltitude = 0; + var actInfo; + var metric = Sys.getDeviceSettings().elevationUnits == Sys.UNIT_METRIC; + altUnit = "Alt m"; + + actInfo = Act.getActivityInfo(); + if (actInfo != null) { + + if (metric) { + altUnit = "m"; + actaltitude = actInfo.altitude; + } else { + altUnit = "ft"; + actaltitude = actInfo.altitude * 3.28084; + } + + + if (actaltitude != null) { + unknownaltitude = false; + } + } + + if (unknownaltitude) { + altitudeStr = Lang.format("unknown"); + } else { + altitudeStr = Lang.format("$1$", [actaltitude.toLong()]); + } + + //dc.drawText(width / 2, (height / 10 * 6.9), fontDigital, altitudeStr, Gfx.TEXT_JUSTIFY_CENTER); + } + + +function drawBattery(dc) { + // Draw battery ------------------------------------------------------------------------- + + var Battery = Toybox.System.getSystemStats().battery; + //BatteryStr = Lang.format("$1$ % ", [ Battery.format ( "%2d" ) ] ); + //dc.drawText(width / 2, (height / 4 * 2.9), fontDigital, BatteryStr, Gfx.TEXT_JUSTIFY_CENTER); + + var alpha, hand; + alpha = 0; + + if (screenShape == 1) { //round + alpha = 2*Math.PI/100*(Battery); + } + if (screenShape == 2) { //semi round + alpha = (Math.PI-1)/100*(Battery)+Math.PI+0.5; + } + + var r1, r2; + var outerRad = 0; + var lenth = 15; + + r1 = width/2 - outerRad; //outside + r2 = r1 -lenth; ////Länge des Bat-Zeigers + + hand = [[center_x+r1*Math.sin(alpha+0.1),center_y-r1*Math.cos(alpha+0.1)], + [center_x+r2*Math.sin(alpha),center_y-r2*Math.cos(alpha)], + [center_x+r1*Math.sin(alpha-0.1),center_y-r1*Math.cos(alpha-0.1)] ]; + + + + + if (Battery >= 25) { + dc.setColor(Gfx.COLOR_ORANGE, Gfx.COLOR_TRANSPARENT); + } + if (Battery < 25) { + dc.setColor(Gfx.COLOR_RED, Gfx.COLOR_TRANSPARENT); + } + if (Battery >= 50) { + dc.setColor(Gfx.COLOR_GREEN, Gfx.COLOR_TRANSPARENT); + } + dc.fillPolygon(hand); + + dc.setColor(App.getApp().getProperty("QuarterNumbersColor"), Gfx.COLOR_TRANSPARENT); + dc.setPenWidth(1); + var n; + for (n=0; n<2; n++) { + dc.drawLine(hand[n][0], hand[n][1], hand[n+1][0], hand[n+1][1]); + } + dc.drawLine(hand[n][0], hand[n][1], hand[0][0], hand[0][1]); + } + + + //StepGoal progress------------------------------- + function drawStepGoal(dc) { + + var actsteps = 0; + var stepGoal = 0; + + stepGoal = ActMonitor.getInfo().stepGoal; + actsteps = ActMonitor.getInfo().steps; + var stepPercent = 100 * actsteps / stepGoal; + + //dc.drawText(width / 2, (height / 4 * 3), fontDigital, stepGoal, Gfx.TEXT_JUSTIFY_CENTER); + //dc.drawText(width / 2, (height / 5), fontDigital, stepPercent, Gfx.TEXT_JUSTIFY_CENTER); + + if (stepPercent >= 100) { + stepPercent = 100; + } + + if (stepPercent > 95) { + dc.setColor(Gfx.COLOR_PURPLE, Gfx.COLOR_TRANSPARENT); + } + if (stepPercent <= 95) { + dc.setColor(Gfx.COLOR_BLUE, Gfx.COLOR_TRANSPARENT); + } + if (stepPercent < 70 ) { + dc.setColor(Gfx.COLOR_GREEN, Gfx.COLOR_TRANSPARENT); + } + if (stepPercent < 29) { + dc.setColor(Gfx.COLOR_ORANGE , Gfx.COLOR_TRANSPARENT); + } + if (stepPercent < 5) { + dc.setColor(Gfx.COLOR_RED, Gfx.COLOR_TRANSPARENT); + } + + + + var alpha, hand; + alpha = 0; + + if (screenShape == 1) { //1=round + alpha = 2*Math.PI/100*(stepPercent); + } + if (screenShape == 2) { //2=semi round + //alpha = (Math.PI-1)/100*(Battery)+Math.PI+0.5; + alpha = (Math.PI-0.5)-(Math.PI-1)/100*(stepPercent); + } + + + var r1, r2; + var outerRad = 0; + var lenth = 15; + + r1 = width/2 - outerRad; //outside + r2 = r1 -lenth; ////Länge des Step-Zeigers + + hand = [[center_x+r2*Math.sin(alpha+0.1),center_y-r2*Math.cos(alpha+0.1)], + [center_x+r1*Math.sin(alpha),center_y-r1*Math.cos(alpha)], + [center_x+r2*Math.sin(alpha-0.1),center_y-r2*Math.cos(alpha-0.1)] ]; + + if (stepPercent < 100) { + + dc.fillPolygon(hand); + dc.setColor(App.getApp().getProperty("QuarterNumbersColor"), Gfx.COLOR_TRANSPARENT); + dc.setPenWidth(1); + var n; + for (n=0; n<2; n++) { + dc.drawLine(hand[n][0], hand[n][1], hand[n+1][0], hand[n+1][1]); + } + dc.drawLine(hand[n][0], hand[n][1], hand[0][0], hand[0][1]); + } + + } + + + function getMoment(now,what) { + return SunCalc.calculate(now, lastLoc[0], lastLoc[1], what); + } + + function momentToString(moment) { + + if (moment == null) { + return "--:--"; + } + + var tinfo = Time.Gregorian.info(new Time.Moment(moment.value() + 30), Time.FORMAT_SHORT); + var text; + if (Sys.getDeviceSettings().is24Hour) { + text = tinfo.hour.format("%02d") + ":" + tinfo.min.format("%02d"); + } else { + var hour = tinfo.hour % 12; + if (hour == 0) { + hour = 12; + } + text = hour.format("%02d") + ":" + tinfo.min.format("%02d"); + + // if (tinfo.hour < 12 || tinfo.hour == 24) { + // text = text + " AM"; + // } else { + // text = text + " PM"; + // } + } + + return text; + } + + + + function builSunsetStr(dc) { + + var moment = Time.now(); + var info_date = Calendar.info(moment, Time.FORMAT_LONG); + var actInfo = Act.getActivityInfo(); + + //sunset or sunrise + if(actInfo.currentLocation!=null){ + lastLoc = actInfo.currentLocation.toRadians(); + var sunrise_moment = getMoment(moment,SUNRISE); + var sunset_moment = getMoment(moment,SUNSET); + var sunrise = momentToString(sunrise_moment); + var sunset = momentToString(sunset_moment); + + if(moment.greaterThan(sunset_moment) || moment.lessThan(sunrise_moment)){ + sunsetStr = sunrise + "/" + sunset; + }else{ + sunsetStr = sunset + "/" + sunrise; + } + }else{ + sunsetStr = Ui.loadResource(Rez.Strings.none); + } + + //sunsetStr = sunrise + "/" + sunset; + //dc.drawText(width/2, height / 10 * 6, Gfx.FONT_SMALL, sunrise + " / " + sunset, Gfx.TEXT_JUSTIFY_CENTER); + + } + + function drawSunMarkers(dc) { + // Draw Sunset / sunrise markers ------------------------------------------------------------------------- + + var alphaSunrise = 0; + var alphaSunset = 0; + var hand; + + var moment = Time.now(); + var info_date = Calendar.info(moment, Time.FORMAT_LONG); + var actInfo = Act.getActivityInfo(); + + + if(actInfo.currentLocation!=null){ + lastLoc = actInfo.currentLocation.toRadians(); + var sunrise_moment = getMoment(moment,SUNRISE); + var sunset_moment = getMoment(moment,SUNSET); + + var sunriseTinfo = Time.Gregorian.info(new Time.Moment(sunrise_moment.value() + 30), Time.FORMAT_SHORT); + var sunsetTinfo = Time.Gregorian.info(new Time.Moment(sunset_moment.value() + 30), Time.FORMAT_SHORT); + + alphaSunrise = Math.PI/6*(1.0*sunriseTinfo.hour+sunriseTinfo.min/60.0); + alphaSunset = Math.PI/6*(1.0*sunsetTinfo.hour+sunsetTinfo.min/60.0); + + var r1, r2; + var outerRad = 0; + var lenth = 10; + + r1 = width/2 - outerRad; //outside + r2 = r1 -lenth; ////Länge des Bat-Zeigers + + dc.setColor(App.getApp().getProperty("QuarterNumbersColor"), Gfx.COLOR_TRANSPARENT); + dc.setPenWidth(2); + dc.drawLine(center_x+r1*Math.sin(alphaSunrise),center_y-r1*Math.cos(alphaSunrise), center_x+r2*Math.sin(alphaSunrise),center_y-r2*Math.cos(alphaSunrise)); + dc.drawLine(center_x+r1*Math.sin(alphaSunset),center_y-r1*Math.cos(alphaSunset), center_x+(r2-10)*Math.sin(alphaSunset),center_y-(r2-10)*Math.cos(alphaSunset)); + + dc.setPenWidth(1); + dc.drawCircle(center_x+(r1-15)*Math.sin(alphaSunrise),center_y-(r1-15)*Math.cos(alphaSunrise),6); + dc.drawCircle(center_x+(r1-5)*Math.sin(alphaSunset),center_y-(r1-5)*Math.cos(alphaSunset),6); + + dc.setColor(Gfx.COLOR_YELLOW, Gfx.COLOR_TRANSPARENT); + dc.fillCircle(center_x+(r1-15)*Math.sin(alphaSunrise),center_y-(r1-15)*Math.cos(alphaSunrise),5); + dc.fillCircle(center_x+(r1-5)*Math.sin(alphaSunset),center_y-(r1-5)*Math.cos(alphaSunset),5); + + + + } + + + } + + + +// Handle the update event----------------------------------------------------------------------- + function onUpdate(dc) { + + //Sys.println("width = " + width); + //Sys.println("height = " + height); + + var LDInfo = (App.getApp().getProperty("LDInfo")); + var UDInfo = (App.getApp().getProperty("UDInfo")); + + + // Clear the screen-------------------------------------------- + //dc.setColor(App.getApp().getProperty("BackgroundColor"), Gfx.COLOR_TRANSPARENT)); + dc.setColor(Gfx.COLOR_TRANSPARENT, App.getApp().getProperty("BackgroundColor")); + dc.clear(); + + + + // Draw the hash marks --------------------------------------------------------------------------- + drawHashMarks(dc); + drawQuarterHashmarks(dc); + + + +// Draw moon ------------------------------------------------------------------------------ +// var moonx = 160; +// var moony = height / 2 -20; +// moon = new Moon(Ui.loadResource(Rez.Drawables.moon), 40, moonx, moony); +// var time_sec = Time.now(); +// var dateinfo = Calendar.info(time_sec, Time.FORMAT_SHORT); +// var clockTime = Sys.getClockTime(); +// moon.updateable_calcmoonphase(dc, dateinfo, clockTime.hour); +// +// dc.setColor((App.getApp().getProperty("QuarterNumbersColor")), Gfx.COLOR_TRANSPARENT); +// dc.setPenWidth(1); +// dc.drawCircle(moonx+20,moony+20,19); + + +//Draw Digital Elements ------------------------------------------------------------------ + + var digiFont = (App.getApp().getProperty("DigiFont")); + //Sys.println("digiFont="+ digiFont); + fontDigital = null; + + //font for display + if ( digiFont == 1) { //!digital + fontDigital = Ui.loadResource(Rez.Fonts.id_font_digital); + //fontDigital = Gfx.FONT_SYSTEM_MEDIUM ; + //Sys.println("set digital"); + } + if ( digiFont == 2) { //!classik + fontDigital = Ui.loadResource(Rez.Fonts.id_font_classicklein); + //fontDigital = Gfx.FONT_SYSTEM_MEDIUM ; + //Sys.println("set classic"); + } + if ( digiFont == 3) { //!simple + if (screenShape == 1) { // round + fontDigital = Gfx.FONT_SYSTEM_SMALL ; + } + if (screenShape == 2) { // semi round + fontDigital = Gfx.FONT_SYSTEM_MEDIUM ; + } + } + + //Texthöhen + var UDTextwidth = 0; + var UDTextHeight = 0; + + var UDobereZeile = 0; + var UDuntereZeile = 0; + var UDExtraTextWidth = 0; + //------- + var LDTextwidth = 0; + var LDTextHeight = 0; + + var LDobereZeile = 0; + var LDuntereZeile = 0; + var LDExtraTextWidth = 0; + + if (screenShape == 1) { // round + //Upper display + UDTextwidth = width / 2; + UDTextHeight = height / 10 * 2.5; + //upper displax extra text + UDobereZeile = height / 10 * 2.4; + UDuntereZeile = height / 10 * 3; + UDExtraTextWidth = width / 2 + 60; + //lower display + LDTextwidth = width / 2; + LDTextHeight = height / 10 * 6.6; + //lower display extra text + LDobereZeile = height / 10 * 6.5; + LDuntereZeile = height / 10 * 7.1; + LDExtraTextWidth = width / 2 + 60; + } + + if (screenShape == 2) { // semi round + UDTextwidth = width / 2; // + UDTextHeight = height / 10 * 2.2; + + UDobereZeile = height / 10 * 2; + UDuntereZeile = height / 10 * 2.8; + UDExtraTextWidth = width / 2 + 60; // + //------ + LDTextwidth = width / 2; + LDTextHeight = height / 10 * 6.2; + + LDobereZeile = height / 10 * 6.1; + LDuntereZeile = height / 10 * 6.9; + LDExtraTextWidth = width / 2 + 60;// + + } + + + + + + var UpperDispEnable = (App.getApp().getProperty("UpperDispEnable")); + var LowerDispEnable = (App.getApp().getProperty("LowerDispEnable")); + + //upper display + if (UpperDispEnable) { + + //background for upper display + dc.setColor(App.getApp().getProperty("DigitalBackgroundColor"), Gfx.COLOR_TRANSPARENT); + //upperDisplay.draw(dc); + + if (screenShape == 1) { // round + dc.fillRoundedRectangle(width / 2 -72 , height / 10 * 2.4 , 144 , 35, 5); + } + if (screenShape == 2) { // semi round + dc.fillRoundedRectangle(width / 2 -72 , height / 10 * 2 , 144 , 35, 5); + } + + + + + dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); + + //Draw date--------------------------------- + if (UDInfo == 1) { + date.buildDateString(dc); + dc.drawText(UDTextwidth, UDTextHeight, fontDigital, date.dateStr, Gfx.TEXT_JUSTIFY_CENTER); + } + + //Draw Steps -------------------------------------- + if (UDInfo == 2) { + var actsteps = 0; + var stepGoal = 0; + stepGoal = ActMonitor.getInfo().stepGoal; + actsteps = ActMonitor.getInfo().steps; + var stepsStr = Lang.format("$1$", [actsteps]); + dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); + dc.drawText(UDTextwidth + 15, UDTextHeight, fontDigital, stepsStr, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDobereZeile, fontLabel, stepGoal, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDuntereZeile, fontLabel, "steps", Gfx.TEXT_JUSTIFY_RIGHT); + + } + + //Draw Steps to go -------------------------------------- + if (UDInfo == 3) { + var actsteps = 0; + var stepGoal = 0; + var stepstogo = 0; + stepGoal = ActMonitor.getInfo().stepGoal; + actsteps = ActMonitor.getInfo().steps; + dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); + + if (actsteps <= stepGoal) { + stepstogo = stepGoal - actsteps; + stepstogo = Lang.format("$1$", [stepstogo]); + dc.drawText(UDTextwidth + 15, UDTextHeight, fontDigital, stepstogo, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDobereZeile, fontLabel, "steps", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDuntereZeile, fontLabel, "to go", Gfx.TEXT_JUSTIFY_RIGHT); + } + if (actsteps > stepGoal) { + stepstogo = actsteps - stepGoal; + stepstogo = Lang.format("$1$", [stepstogo]); + dc.drawText(UDTextwidth + 15, UDTextHeight, fontDigital, stepstogo, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDobereZeile, fontLabel, "since", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDuntereZeile, fontLabel, "goal", Gfx.TEXT_JUSTIFY_RIGHT); + } + } + //Draw DigitalTime--------------------------------- + if (UDInfo == 4) { + drawDigitalTime(dc); + dc.drawText(UDTextwidth, UDTextHeight, fontDigital, timeStr, Gfx.TEXT_JUSTIFY_CENTER); + if (!Sys.getDeviceSettings().is24Hour) { + dc.drawText(UDExtraTextWidth, UDuntereZeile, fontLabel, ampmStr, Gfx.TEXT_JUSTIFY_RIGHT); + } + } + + + // Draw Altitude------------------------------ + if (UDInfo == 5) { + drawAltitude(dc); + dc.drawText(UDTextwidth, UDTextHeight, fontDigital, altitudeStr, Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(UDExtraTextWidth, UDobereZeile, fontLabel, "Alt", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDuntereZeile, fontLabel, altUnit, Gfx.TEXT_JUSTIFY_RIGHT); + } + + // Draw Calories------------------------------ + if (UDInfo == 6) { + dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); + var actInfo = ActMonitor.getInfo(); + var actcals = actInfo.calories; + var calStr = Lang.format(" $1$ kCal ", [actcals]); + dc.drawText(UDTextwidth, UDTextHeight, fontDigital, calStr, Gfx.TEXT_JUSTIFY_CENTER); + } + + //Draw distance + if (UDInfo == 7) { + distance.drawDistance(dc); + dc.drawText(UDTextwidth + 20 , UDTextHeight, fontDigital, distance.distStr, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDobereZeile, fontLabel, "Dist", Gfx.TEXT_JUSTIFY_RIGHT); + //draw unit-String + dc.drawText(UDExtraTextWidth, UDuntereZeile, fontLabel, distance.distUnit, Gfx.TEXT_JUSTIFY_RIGHT); + } + + + //Draw battery + if (UDInfo == 8) { + var Battery = Toybox.System.getSystemStats().battery; + BatteryStr = Lang.format("$1$ % ", [ Battery.format ( "%2d" ) ] ); + dc.drawText(UDTextwidth + 20 , UDTextHeight, fontDigital, BatteryStr, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDuntereZeile, fontLabel, "Bat", Gfx.TEXT_JUSTIFY_RIGHT); + } + + //Draw Day an d week of year + if (UDInfo == 9) { + date.builddayWeekStr(); + dc.drawText(UDTextwidth + 15 , UDTextHeight, fontDigital, date.dayWeekStr, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDobereZeile, fontLabel, "day /", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(UDExtraTextWidth, UDuntereZeile, fontLabel, "week", Gfx.TEXT_JUSTIFY_RIGHT); + } + + //Draw Day an d week of year + if (UDInfo == 10) { + builSunsetStr(dc); + //sunsetStr = "test"; + dc.drawText(UDTextwidth, UDTextHeight, fontDigital, sunsetStr, Gfx.TEXT_JUSTIFY_CENTER); + //dc.drawText(LDExtraTextWidth, LDobereZeile, fontLabel, "day /", Gfx.TEXT_JUSTIFY_RIGHT); + //dc.drawText(LDExtraTextWidth, LDuntereZeile, fontLabel, "week", Gfx.TEXT_JUSTIFY_RIGHT); + } + + + + } + + + + //Anzeige unteres Display-------------------------- + if (LowerDispEnable) { + + //background for lower display + dc.setColor(App.getApp().getProperty("DigitalBackgroundColor"), Gfx.COLOR_TRANSPARENT); + //lowerDisplay.draw(dc); + + if (screenShape == 1) { // round + dc.fillRoundedRectangle(width / 2 -70 , height / 10 * 6.5 , 140 , 35, 5); + } + if (screenShape == 2) { // semi round + dc.fillRoundedRectangle(width / 2 -70 , height / 10 * 6.1 , 140 , 35, 5); + } + + dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); + + + if (LDInfo == 1) { + date.buildDateString(dc); + dc.drawText(LDTextwidth, LDTextHeight, fontDigital, date.dateStr, Gfx.TEXT_JUSTIFY_CENTER); + } + + //Draw Steps -------------------------------------- + if (LDInfo == 2) { + var actsteps = 0; + var stepGoal = 0; + stepGoal = ActMonitor.getInfo().stepGoal; + actsteps = ActMonitor.getInfo().steps; + var stepsStr = Lang.format("$1$", [actsteps]); + dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); + dc.drawText(LDTextwidth + 15, LDTextHeight, fontDigital, stepsStr, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDobereZeile, fontLabel, stepGoal, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDuntereZeile, fontLabel, "steps", Gfx.TEXT_JUSTIFY_RIGHT); + } + + //Draw Steps to go -------------------------------------- + if (LDInfo == 3) { + var actsteps = 0; + var stepGoal = 0; + var stepstogo = 0; + stepGoal = ActMonitor.getInfo().stepGoal; + actsteps = ActMonitor.getInfo().steps; + dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); + + if (actsteps <= stepGoal) { + stepstogo = stepGoal - actsteps; + stepstogo = Lang.format("$1$", [stepstogo]); + dc.drawText(LDTextwidth + 15, LDTextHeight, fontDigital, stepstogo, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDobereZeile, fontLabel, "steps", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDuntereZeile, fontLabel, "to go", Gfx.TEXT_JUSTIFY_RIGHT); + } + if (actsteps > stepGoal) { + stepstogo = actsteps - stepGoal; + stepstogo = Lang.format("$1$", [stepstogo]); + dc.drawText(LDTextwidth + 15, LDTextHeight, fontDigital, stepstogo, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDobereZeile, fontLabel, "since", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDuntereZeile, fontLabel, "goal", Gfx.TEXT_JUSTIFY_RIGHT); + } + } + + //Draw DigitalTime--------------------------------- + if (LDInfo == 4) { + drawDigitalTime(dc); + dc.drawText(LDTextwidth, LDTextHeight, fontDigital, timeStr, Gfx.TEXT_JUSTIFY_CENTER); + if (!Sys.getDeviceSettings().is24Hour) { + dc.drawText(LDExtraTextWidth, LDuntereZeile, fontLabel, ampmStr, Gfx.TEXT_JUSTIFY_RIGHT); + } + } + + + // Draw Altitude------------------------------ + if (LDInfo == 5) { + drawAltitude(dc); + dc.drawText(LDTextwidth, LDTextHeight, fontDigital, altitudeStr, Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(LDExtraTextWidth, LDobereZeile, fontLabel, "Alt", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDuntereZeile, fontLabel, altUnit, Gfx.TEXT_JUSTIFY_RIGHT); + } + + // Draw Calories------------------------------ + if (LDInfo == 6) { + dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); + var actInfo = ActMonitor.getInfo(); + var actcals = actInfo.calories; + var calStr = Lang.format(" $1$ kCal ", [actcals]); + dc.drawText(LDTextwidth, LDTextHeight, fontDigital, calStr, Gfx.TEXT_JUSTIFY_CENTER); + } + + //Draw distance + if (LDInfo == 7) { + distance.drawDistance(dc); + dc.drawText(LDTextwidth + 20 , LDTextHeight, fontDigital, distance.distStr, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDobereZeile, fontLabel, "Dist", Gfx.TEXT_JUSTIFY_RIGHT); + //draw unit-String + dc.drawText(LDExtraTextWidth, LDuntereZeile, fontLabel, distance.distUnit, Gfx.TEXT_JUSTIFY_RIGHT); + } + + //Draw battery + if (LDInfo == 8) { + var Battery = Toybox.System.getSystemStats().battery; + BatteryStr = Lang.format("$1$ % ", [ Battery.format ( "%2d" ) ] ); + dc.drawText(LDTextwidth + 20, LDTextHeight, fontDigital, BatteryStr, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDuntereZeile, fontLabel, "Bat", Gfx.TEXT_JUSTIFY_RIGHT); + } + + //Draw Day an d week of year + if (LDInfo == 9) { + date.builddayWeekStr(); + dc.drawText(LDTextwidth + 15, LDTextHeight, fontDigital, date.dayWeekStr, Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDobereZeile, fontLabel, "day /", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(LDExtraTextWidth, LDuntereZeile, fontLabel, "week", Gfx.TEXT_JUSTIFY_RIGHT); + } + //Draw Day an d week of year + if (LDInfo == 10) { + builSunsetStr(dc); + //sunsetStr = "test"; + dc.drawText(LDTextwidth, LDTextHeight, fontDigital, sunsetStr, Gfx.TEXT_JUSTIFY_CENTER); + //dc.drawText(LDExtraTextWidth, LDobereZeile, fontLabel, "day /", Gfx.TEXT_JUSTIFY_RIGHT); + //dc.drawText(LDExtraTextWidth, LDuntereZeile, fontLabel, "week", Gfx.TEXT_JUSTIFY_RIGHT); + } + + } + + + + + + //!progress battery------------ + var BatProgressEnable = (App.getApp().getProperty("BatProgressEnable")); + if (BatProgressEnable) { + drawBattery(dc); + } + //!progress steps-------------- + var StepProgressEnable = (App.getApp().getProperty("StepProgressEnable")); + if (StepProgressEnable) { + drawStepGoal(dc); + } + //! Markers for sunrire and sunset + var SunmarkersEnable = (App.getApp().getProperty("SunMarkersEnable")); + if (SunmarkersEnable && screenShape == 1) { + //Sys.println("sunmarkers "+ SunmarkersEnable); + drawSunMarkers(dc); + } + + + + // Draw the numbers -------------------------------------------------------------------------------------- + var NbrFont = (App.getApp().getProperty("Numbers")); + dc.setColor((App.getApp().getProperty("QuarterNumbersColor")), Gfx.COLOR_TRANSPARENT); + font1 = null; + + if (screenShape == 1) { // round + if ( NbrFont == 1) { //fat + font1 = Ui.loadResource(Rez.Fonts.id_font_fat); + dc.drawText((width / 2), 5, font1, "12", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(width - 16, (height / 2) - 26, font1, "3", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(width / 2, height - 54, font1, "6", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(16, (height / 2) - 26, font1, "9", Gfx.TEXT_JUSTIFY_LEFT); + } + if ( NbrFont == 2) { //race + font1 = Ui.loadResource(Rez.Fonts.id_font_race); + dc.drawText((width / 2), 5, font1, "12", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(width - 16, (height / 2) - 26, font1, "3", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(width / 2, height - 52, font1, "6", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(16, (height / 2) - 26, font1, "9", Gfx.TEXT_JUSTIFY_LEFT); + } + if ( NbrFont == 3) { //classic + font1 = Ui.loadResource(Rez.Fonts.id_font_classic); + dc.drawText((width / 2), 15, font1, "12", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(width - 16, (height / 2) - 18, font1, "3", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(width / 2, height - 48, font1, "6", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(16, (height / 2) - 18, font1, "9", Gfx.TEXT_JUSTIFY_LEFT); + } + if ( NbrFont == 4) { //roman + font1 = Ui.loadResource(Rez.Fonts.id_font_roman); + dc.drawText((width / 2), 9, font1, "}", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(width - 16, (height / 2) - 22, font1, "3", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(width / 2, height - 50, font1, "6", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(16, (height / 2) - 22, font1, "9", Gfx.TEXT_JUSTIFY_LEFT); + } + if ( NbrFont == 5) { //simple + dc.drawText((width / 2), 10, Gfx.FONT_SYSTEM_LARGE , "12", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(width - 16, (height / 2) - 22, Gfx.FONT_SYSTEM_LARGE , "3", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(width / 2, height - 45, Gfx.FONT_SYSTEM_LARGE , "6", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(16, (height / 2) - 22, Gfx.FONT_SYSTEM_LARGE , "9", Gfx.TEXT_JUSTIFY_LEFT); + } + } + + + if (screenShape == 2) { //semi round + if ( NbrFont == 1) { //fat + font1 = Ui.loadResource(Rez.Fonts.id_font_fat); + dc.drawText((width / 2), -12, font1, "12", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(width - 16, (height / 2) - 26, font1, "3", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(width / 2, height - 41, font1, "6", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(16, (height / 2) - 26, font1, "9", Gfx.TEXT_JUSTIFY_LEFT); + } + if ( NbrFont == 2) { //race + font1 = Ui.loadResource(Rez.Fonts.id_font_race); + dc.drawText((width / 2), -12, font1, "12", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(width - 16, (height / 2) - 26, font1, "3", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(width / 2, height - 39, font1, "6", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(16, (height / 2) - 26, font1, "9", Gfx.TEXT_JUSTIFY_LEFT); + } + if ( NbrFont == 3) { //classic + font1 = Ui.loadResource(Rez.Fonts.id_font_classic); + dc.drawText((width / 2), 0, font1, "12", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(width - 16, (height / 2) - 18, font1, "3", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(width / 2, height - 33, font1, "6", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(16, (height / 2) - 18, font1, "9", Gfx.TEXT_JUSTIFY_LEFT); + } + if ( NbrFont == 4) { //roman + font1 = Ui.loadResource(Rez.Fonts.id_font_roman); + dc.drawText((width / 2), -4, font1, "}", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(width - 16, (height / 2) - 22, font1, "3", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(width / 2, height - 40, font1, "6", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(16, (height / 2) - 22, font1, "9", Gfx.TEXT_JUSTIFY_LEFT); + } + if ( NbrFont == 5) { //simple + dc.drawText((width / 2), -3, Gfx.FONT_SYSTEM_LARGE , "12", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(width - 16, (height / 2) - 17, Gfx.FONT_SYSTEM_LARGE , "3", Gfx.TEXT_JUSTIFY_RIGHT); + dc.drawText(width / 2, height - 30, Gfx.FONT_SYSTEM_LARGE , "6", Gfx.TEXT_JUSTIFY_CENTER); + dc.drawText(16, (height / 2) - 17, Gfx.FONT_SYSTEM_LARGE , "9", Gfx.TEXT_JUSTIFY_LEFT); + } + } + + +//Indicators------------------------------------------------------------- + //messages + var messages = Sys.getDeviceSettings().notificationCount; + if (messages > 0) { + dc.setColor((App.getApp().getProperty("QuarterNumbersColor")), Gfx.COLOR_TRANSPARENT); + dc.fillCircle(width / 2 + 30, height / 2 -7, 5); + } + dc.setPenWidth(2); + dc.setColor((App.getApp().getProperty("QuarterNumbersColor")), Gfx.COLOR_TRANSPARENT); + dc.drawCircle(width / 2 + 30, height / 2 -7, 5); + dc.drawText(width / 2 + 30, height / 2 -2, fontLabel, "Msg", Gfx.TEXT_JUSTIFY_CENTER); + //dc.drawText(width / 3 + 7, height / 2, fontLabel, messages, Gfx.TEXT_JUSTIFY_CENTER); + + //Alarm is set + var alarm = Sys.getDeviceSettings().alarmCount; + if (alarm > 0) { + dc.setColor((App.getApp().getProperty("QuarterNumbersColor")), Gfx.COLOR_TRANSPARENT); + dc.fillCircle(width / 2 - 30, height / 2 -7, 5); + } + dc.setPenWidth(2); + dc.setColor((App.getApp().getProperty("QuarterNumbersColor")), Gfx.COLOR_TRANSPARENT); + dc.drawCircle(width / 2 - 30, height / 2 -7, 5); + dc.drawText(width / 2 - 30, height / 2 -2, fontLabel, "Alm", Gfx.TEXT_JUSTIFY_CENTER); + //dc.drawText(width / 3 + 7, height / 2, fontLabel, messages, Gfx.TEXT_JUSTIFY_CENTER); + + + // Draw hands ------------------------------------------------------------------ + hands.drawHands(dc); + + if (isAwake) { + var SecHandEnable = (App.getApp().getProperty("SecHandEnable")); + if (SecHandEnable) { + hands.drawSecondHands(dc); + } + } + +} + + + + function onEnterSleep() { + isAwake = false; + Ui.requestUpdate(); + } + + function onExitSleep() { + isAwake = true; + } +} diff --git a/Archiv/Moon.archiv b/Archiv/Moon.archiv new file mode 100644 index 0000000..1433154 --- /dev/null +++ b/Archiv/Moon.archiv @@ -0,0 +1,185 @@ +using Toybox.Math as Math; +using Toybox.System as Sys; +using Toybox.WatchUi as Ui; +using Toybox.Graphics as Gfx; +using Toybox.Application as App; + +// By using updateable_calcmoonphase, the moon phase picture will be drawn, +// but it will be only recomputed once a day. +class Moon { + var moon_width; + var moon_bitmap; + var moonx, moony; + + var c_phase, t_phase; // day of month when last updated + var c_moon_label, c_moon_y; // y1, y2, y1, y2, ... for the moon shadow + + function initialize(bitmap, width, x, y) { + moon_bitmap = bitmap; // Ui.loadResource(Rez.Drawables.moon); + moon_width = width; + moonx = x; + moony = y; + t_phase = -1; + } + + + function calcmoonphase(day, month, year) { + var r = (year % 100); + r = (r % 19); + if (r>9) { + r = r - 19; + } + r = ((r * 11) % 30) + month + day; + if (month<3) { + r = r + 2; + } + r = 1.0*r - 8.3 + 0.5; + r = (r.toNumber() % 30); + if (r < 0) { + r = r + 30; + } + return r; + } + + function updateable_calcmoonphase(dc, dateinfo, hour) { + if (t_phase != dateinfo.day) { + t_phase = dateinfo.day; + + c_phase = calcmoonphase(dateinfo.day, dateinfo.month, dateinfo.year); + if (hour > 12) { // change it at noon + c_phase = (c_phase + 1) % 30; + } + + calc_drawmoon(c_phase);// updates c_moon_label and c_moon_y + + } + + drawmoon(dc, moonx, moony); // uses c_moon_y + + return c_phase; + } + + function drawmoon(dc, moonx, moony) { + dc.drawBitmap(moonx, moony, moon_bitmap); + var x, xby2; + dc.setColor(App.getApp().getProperty("BackgroundColor"), Gfx.COLOR_TRANSPARENT); + // dc.setColor(Gfx.COLOR_RED, Gfx.COLOR_WHITE); + for (x=1; x= 0) { + dc.drawLine(moonx+x, moony+c_moon_y[xby2], moonx+x, moony+c_moon_y[xby2+1]); + } else { + dc.drawLine(moonx+x, moony+1, moonx+x, moony-c_moon_y[xby2]); + dc.drawLine(moonx+x, moony-c_moon_y[xby2+1], moonx+x, moony+moon_width); + } + } + } + + function calc_drawmoon(moonphase) { + var mw = moon_width; // image width + var c = mw/2; // image center + var intc = c.toNumber(); + var r = (mw-2)*0.5-0.5; // radius depends on image + c_moon_label = ""; + var step = 1; + var r1edge= -1; + var rSedge= 0; + var r1rest= -1; + var rSrest= 0; + var edgelight = false; + if (moonphase <= 8) { + c_moon_label = "wax."; + r1edge = intc; rSedge = step; + r1rest = intc; rSrest = -step; + edgelight = true; + if (moonphase == 8) { + r1edge = -1; rSedge = 0; + } else { + if (moonphase == 0) { + c_moon_label = "new"; + } + } + } else { + if (moonphase <=16) { + c_moon_label = "wax."; + r1rest = -1; rSrest = 0; + r1edge = intc; rSedge = -step; + edgelight = false; + if (moonphase == 16) { + c_moon_label = "full"; + r1edge = -1; rSedge = 0; + } + } else { + c_moon_label = "wan."; + if (moonphase <=23) { + r1rest = -1; rSrest = 0; + r1edge = intc; rSedge = step; + edgelight = false; + if (moonphase == 23) { + r1edge = -1; rSedge = 0; + r1rest = intc; rSrest = step; + } + } else { + r1edge = intc; rSedge = -step; + r1rest = intc; rSrest = step; + edgelight = true; + } + } + } + + var a; + if (moonphase > 16) { + a = 1.0 - (moonphase - 16.0) / 7.0; + } else { + a = 1.0 - moonphase/8.0; + } + + + c_moon_y = new [mw*2+2]; + var i; + for (i = 0; i=1; x+=rSrest) { + //dc.drawLine(moonx+x, moony+1, moonx+x, moony+mw); + xby2 = 2*x; + c_moon_y[xby2] = 1; + c_moon_y[xby2+1] = mw; + } + for (x=r1edge; x<=mw && x>=1; x+=rSedge) { + xx = (x-c)/a; + ra = r*r - xx*xx; + xby2 = 2*x; + + if (ra > 0) { + sq = Math.sqrt(ra); + y1 = c - sq + 0.5; + y1 = y1.toNumber(); + y2 = c + sq + 0.5; + y2 = y2.toNumber(); + if (edgelight) { +// dc.drawLine(moonx+x, moony+y1, moonx+x, moony+y2); + c_moon_y[xby2] = y1; + c_moon_y[xby2+1] = y2; + } else { + //dc.drawLine(moonx+x, moony+1, moonx+x, moony+y1); + //dc.drawLine(moonx+x, moony+y2, moonx+x, moony+mw); + c_moon_y[xby2] = -y1; + c_moon_y[xby2+1] = -y2; + } + } else { + if (!edgelight) { +// dc.drawLine(moonx+x, moony+1, moonx+x, moony+mw); + c_moon_y[xby2] = 1; + c_moon_y[xby2+1] = mw; + } + } + } + + return c_moon_label; + } + + +} diff --git a/Archiv/moon.png b/Archiv/moon.png new file mode 100644 index 0000000000000000000000000000000000000000..3c07374d6767ff329f27393724f936f29521f440 GIT binary patch literal 1084 zcmV-C1jGA@P)OSAqWk zaA8$UU_xg?FY#5-F95zelTC^NT>vhSUGQ91@#-_so6q5jLp+upf?XF-qtPg%)#|-G ze}myK=Sh(ix$+q#J;n&apfhM|e6OWn0siw`B!j(d)=KCk4A@n{TX&ukb`AO68g4I1 zvK=@{iW1@r!8t2BDKbCe<@qU=E5P>=`kfhVY`*X;wR8#&l1?W%#9^N$<=J^OnmvY$ z<-IkaNRrtcj}}?BGh#3~tdbLeKc0^Y_OkZs#4NklDOzom(d^M)wsX+g>P&t)UrGL0 z>+1s6+Bj8_dsCz)$yLGZz2^o)RBC1T;=DwtMRC+?ak7aR9%OsDLY?a4$z&(%6#qU~ zhNs|l??df_4SE!#Y%s`XgCslQWWcDCJ?ahXERXT!LkR5M>#Deu)}6tmi}y<~p35P2 zti7}ui9R?>GgF#YE`l{o>DBIaa z>F0>z&C={ol1KXrnX#$eqQ+@iivwM{d=;ZcbqTEs1#)tTaUS>%^> zVK4Q67tYt>*3qrmAWM#TbYI)+BJ~oa&S)1L<4*bMT*CbrJUS|##Q{fb{cx3O!T3^4 z+32@s)yth?*4o6jf}?F@G8tBIPaJbV=4vn1vEMX{-9LE1y%cR&@Z9&Gz;#s(gRIEG zZ`FFw?c(pjpp|XRlGap<`AKrFEDt8xo!>vbq+U1ovYmazadGR1+W6Ni1;>M8wDGR_ z!YJ}FaItU^d&V?&alrm{u81k>$6|pBy-UJd1%O)hUrdXAINI-ZXz< z#(vlE)A?c)DFhyB`MmzCBeAO?Z(Rxh$I$-2t^WdW>X9CdQ#pwM0000 + + diff --git a/Archiv/resources-round/drawables/upperDisplay.xml b/Archiv/resources-round/drawables/upperDisplay.xml new file mode 100644 index 0000000..80ad01c --- /dev/null +++ b/Archiv/resources-round/drawables/upperDisplay.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Archiv/resources-semiround/drawables/lowerDisplay.xml b/Archiv/resources-semiround/drawables/lowerDisplay.xml new file mode 100644 index 0000000..7d83680 --- /dev/null +++ b/Archiv/resources-semiround/drawables/lowerDisplay.xml @@ -0,0 +1,3 @@ + + + diff --git a/Archiv/resources-semiround/drawables/upperDisplay.xml b/Archiv/resources-semiround/drawables/upperDisplay.xml new file mode 100644 index 0000000..b9d1f8a --- /dev/null +++ b/Archiv/resources-semiround/drawables/upperDisplay.xml @@ -0,0 +1,3 @@ + + + diff --git a/bin/Aviatorlike.prg b/bin/Aviatorlike.prg index a9b84187c46f6903a3da5bb19de5c8c8a80f9ebb..360aec82f93ce24d102cbc43d4fde23ab26c9fac 100644 GIT binary patch literal 118628 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�pR(M7Pn&y3U5S$*INV4^k+%dsJSQdMUL;?cuM&3}lOogjJ@Hn9MEB zNwH0Zs9pkL!#^0sFvS%_ZXA>J_DgZa3bi)eoF)&el14mXs&r%O+yk-RjNv$_HM#b* zIJtGi1uW2q=w>2s_03iv$sh_az4`IhrZfup#1Y=?*MaZaA@JyHQbA zMpdHD`_!u3r6TrBla19%m##Y!wIM_|&d3j&tEW@2tF?+Vq!vu6AyS*I6B~?3(Ke@rQku{U;T?Zo3Y|kF3w6Hlv7zKlF;srf04YRE7)Z& zOx6;rEYe;%o*FI-zgI4e_ezSusIGB&Q@O5$((&3!Fx7c2iJ<%d4i_;YD}nQP3EmqkYv#g_na+%@+gGh|!gU(znxR5>(b3QKYlaKaHR*YO^w=}Jj#78Whb z#j$4GCOIeXQkD%xHu#~g*o|VE!J3!$rbM5K%F%LB;IuKq3nq<=<+dz6XJTTOO@Hba z%c9QC-b|!9Z5=CdAU;SqbtFw%32+3j%M0ptJMNbQ*#d?PsASzu`VB$(hOPJ zG`x6O45k@}SBwj6pS}Z+hYp zqkGOQj<3Actb*~8kLn}>Rm;c53h#84^dF;wo-Xf-_Mn%tXO#!xLBdL%y>UyEFrc^{ z)uUJ7xY8(90u)Myf|Ox2hsf%5>o5FPDPB(^rc{c24O6;9L6}j%Xe{(}X(x9ZoMCeK zv7$R~scshwo=MA0)%Wrz!KksxL zO>QCjVKW6RhSHQ$6{EUFbfYef8HQ#pxlE#9*c(PCz1!4I0J^v9uQRqO4rWmUPZY}P z&EH6laaq|XiZqOUD`Th{SGgIbuM2+KmXhZRX7G7>sk`j|<%AfdQ+!urE$q_!6coV= zhOA~2H->K1i*p{v`jb?V46822FCVo!q8EyE<*-Xqd;6&@W3Badi-IaruAr2}CPc0dnx!UOuPc-jTS6wMxu2)bDtf+<7VSEt3U`!6cBfFwMv)t0NB`9p8Q$Pv z`9%C8C(E^cYBNK7G|wMF#h2?-@upj+>(pYi$4qY-nxV$(rfEf6TQtu)Hl}TNRur4g zAb9w@ekm%`&Al*2`DvTEp+~Hn*k;A&V~qi_;{@G;pXd*@s(LOIcbG}F{BQ8Q>Y`IzB%yarF*zzLBBEdFq)tcI%FCM8pfVbgN}!5F zX{h1~MYV9D;hULTu=<9S$-n_ofBT9C8x5{vC787nB8x?SpBdIRSS!-3-bK>v0}VJA zr_zcEJov^lXAkKFJU`g`HSPF2k~(}GZ~8SMuPpLdYe^;-N7~x%Umj=CgAE@~ol<*0bc3>4>;kKf#iUer9Z~j9jM8j+X#bv3+G#Y@PY{(&#cbt6%EaiiB|| zCNP2^aeTMlOulB536<9jv&D^+3m>uflF;K*jWCY4Zxt>e@&BOuF(;EbQ*KkAWEW4N z)}ybm)%Mg+9l7M!%%kUEPhCFwYQl0p4Lc(R!zcdy=t7U_L$`z>;05?bs zIyzdZP3f(Lgygb-s5rqs80O=BGCXF_h`5Qc6)(=&?_XADs)JrYIzLa(Q75osAx9k>BV*U6j8` zm+I$_=th$i8TMq9KVwy)g|s$HfR?RtKKxOdmLdx6c%#BCX@zp7Q;gB5^&lhn&NGIi zr^}Juxgpl)wH|I9mEsw_=vEi47OD&i{!C+*rH;NKAu!1nIJb+;az^ht@Tff+SPWxz z$&pC+iKiqeE2yqy!LqnAdG?+vm04{Rs1z-r5}p0DBU3R{SWzlWUUIIo9Oc$^3aP*q z8>|QxNOi^6^0&x&!jyxeV9G89f@(22u0EDA^d6bAf{!&;eiu#IogSSIsY;p|J0l{m zAMIj__eG;_YEjIbo*^NsyJHO7!!-FR8c|zixqYoqREd32Ga6p+uI&3C(wBUqv+(A^>FZGNglY#6xygOR3Pam#jRW7V-z$#aXh z(;Jd0bS^-1iZqWaGJnfxzr`6I;%|y`%al!%9j)!b6+YPBALwKkucX?n+M-SBWb4)X zBy6P8(k!K^d_lt|f3wo;s8(EN<*%`#$aW9wieinKXD%*OmXn_(I3@kT8!P!^!NZtp z;bgwnr3VI(U974_oU60yFJeak`2*Q~Y=7F`vJ4X`I$XYSE*#LL334kNkMU@mZ}^e>f7Mp3_6 zgrPnC#?AcQP?Lg&m#Ayps&oijTss-364*ig_fAJGNmb+_S)oK}qE;@dN}7@hs)|Ew z3^q;q=-t@S4a?8#r%erEEs$|XxP70BzS!`skD{xP3!C@-y&$Gxd zmF+E(kCeUf#!7G%h4Z+{#agyP1%?rGl`C=^`5R-4xG7BL5^-ysArbP&d-LQ3ctO2o zlVs63wv$ljM`setB(yX$c+DX)87)#YWGv#C9+jblWs%EpHi_qqKaHDEQ`0DG`J)rs zMP6mKK=xJoB6vGt-q&clPO{}}leP6t${AHfq-1Z&xyz#}V<~+oteaK!bgB|3oh;*) ziAM5A?PoH#3i$lS_N)5h+NQ-9sE7EL`eS2p*Ie~9=g7S}PT2}|>AaeOJxdn=TEIcMWTwBPE8_Pgk8&?b*+Pz&735Jbg*eyp%`6df=b9wYvZ;-sz zuihZ$R29ouw>yhZ^Q%wI;)XJ|Xz2>kU%gdgreD25LMdUO(UIY=J|bz=YDy_b?-^?} z{Y42-j2f@Gvzt|k7X?M|iK;oMG3=wo9M%;V#li#{dedo*bt8&Ck;AR?L#j^5Qm#V| zG0>&X+@N2ULSS<{3Rm?)n#zsyjkQT@*o(~ir6$rW6Lt?5OF$**q{2C&quSrw`7z^(5t=;D>Iy|)oLt4WvwKdX00LK8*%ab*uR_N3?$0`TLEO3|7RbxA46~|=A z(H<>Jmg!>WF-8Bp)# zA=haq!@{k#mK6iD7P(S;Hf9afm{F_SEodTDI_9L7M=g-MqNLGv_Q46OsQsWd68;Zj z8d6YGmzg;Gj1Rw7G|FxrIyEXG*%4T-2yfjI(85xCup=T0Xfu~Z?QG_<=#|Y}7T({? zW#N3~*+~4_K~1UHluFrUPLZXt*5FF_<iX(=CZ6Cni>Jk+$j@y@1ZoWd%dK z#b#E!ENkVG2@rqBsInMWELN19WkT(2QX4TGIeoyB9Y>HCNa>8}ak?n9O7ttvD34|a z^AZ9GJ;zBJ-t&p-g8L{j$wwAip zayXG3V5N3L7{y4EBUHwo#YG+&Z3zrXp?1MfrHb;3t(<`$ICDm1wit+-E-9wK6%iuw%#!ih3}-D{cZ}60qPR{Kh1to6ap!mmNsR=+CIy+* zW*th8D$e3&GlM4!)tW%&GL>2aXX%5)%nDVj;#@pq{_di7CJI5!g~I+#^Qb2Cs{qHN z_C*zgrW(tZPh&5LTUN6=7KOsJ%%)Fvb@0JMt%AzmgmmtP<9gO8c2Z?8fs`DaqY{0F zJ>aN5*^0%JV`Ytl<&F$R!m_|z2=-jYq5}7n=?nv(D%g0`x5{*K%E*+()f`oD3_zxk z5Uw=Ol^~eop>lPa;F@$oZTF|%CRWI*R2qjm5Qxbz>a1JH%;I%RAjCOh?8PsfmL=jH z)kd^}d~7kRI(GC?2F0Bu%FDHS!d5FQTbJpC#ZT*|qQS>eAhJNWP0=gG0W2Ohv8>H6 zN1Lf_)bg|}JrowS3e+@n5XQ3d*k9~~iRc`#&Z6qlolUIR+!>L1ik<$Cju?yRJ=Rj7 zEs8-Tbs2h-i)HQ2sdD}Fns}plrU2jdx-Xu$e6|Q>Q$c-OHw}%Bq+L1#E9%E6-d*Nx zH*|P;Z#zeF8I=_)EEPy#YN>wU zR(-IJk94by%H35A)jXzQHmnH?MMFwwS+*L4DQHw%4GMWe;}oZw-aL6ipSECzGA^!b z8P2S8K`O0IPO36z$yBeKb&{;rep2@-D`?`RsPhTwJR9hwaH+Vx(Ab?}+E%rm6DgdR zp-LWliYZK5aFUBr=OXIFwYfI4h2^}mO}sFn{`lgSS22y&iVj%-)k}G%rPeYsTdl>_ z>H-B$Ym@>HzcPQ7W^UiG{4!yMlM1EG(41qVxWg#J;OMZlVjTOh^2-}=g$?IL&Z;Ra z?0HaUA?Sa&!h&`PVp0;s5Aqu+(MGFuN!FCA#JG9@)E4 z*e{VzkvtQ5*;2xuHVm=8Q9=%G8k!GI=#dp21Q`Fh(bsr>a9!2ZMD(XzN5N;eyYn;w2D{+=7 z&=!Qr`S(X&E zm+UHPcXx6{K_ctT0TS67he*=6Sx2k972(sdMe0jWibvJTF$WTMjoKzA$9|fA_xQ~O z+r|lD=Awm&e%^Y7CDyH2{2FRir$o{Tb7@p<=riceWphjY=rUYcUqw48r7%|LVQl3I zs&Y|iBExcKV(V43V4S5}NZrVjs(8g*jcwJ3SMrRxCeRhlE0x!{xz&a)CWd<{%A#mW z_V)9oP8H0kWr5<+Pi5L3@^e|C-r6AtyKu!Q<1loroG)mcLr_j)y>RADmF8+H=2`I( z1yGl=92RQoP^aW1CB;*Q(jw)@Cs)5Z8dm5~ZSi$bJ6v%j*~%?9$=Wx?D}1cWo4fZc z>yobF^su>wR?nEQ8*Xdi1dwGSI!yN`Oz_QH>FAHNG!5+U0tfjk`XoPS4=IaQ~+6p>yx~iB}BT)fn?Z3G~QrIlF#yButl zw_Kn1tE2D=ET^#{kt2r-kJ^(V#5usj=exK`g0TuP~%H8R-S1YPvKjDqQB$Tqw{77|c;~X-}#| zdKu!#)wD#Q**mdu$n7B|NmOBrUKoeioi0jQH?N2QyrbwX|yEc>F=YtoRz zr(FnF(H&4JLB&bMlpq6D2f4LV)WlPS5V+-r$UCB%NjI4xb&9p*E;e0J=J|1(UtW-b zNhV2HUhU!Qj0ywPSZuYSN6Uu@q0HK&Dy5t)HNs<)t$2BD)GDoq38INWO4NtE*EE#I zl66O#_+6h0!*=7*TZQHLN;$yQ$adF_I(Wo9KeMYRTsYv8G?;R%^(Hr0vS6OA$1brj z>SGPS{3`(B9~gF6hiNkO31&H|!Eb8$P5FQPSUgCUG-x4aq>QMr6Kkxp=7k*<#fc^9 zrO%8v1E0d4=?R++YmGe?ZuW_oJms;TwM=g+bt=`2xf-lh<}I8ZFQ@Kvn_Kp*7{^1^ zj>>Q9pxwg;klecBa$S|mgNWbP%xT*+U}tZTyiOLZiawB&Kt*Y~Dl^VBXUn-5M^};s z6s{W4s$L)C(*LXLN~5Bv>RbAaWf4bpy?aO=L z{qA?aXTv}KpTL-Q!h^}Ps8|fkv)mG>X-ve8LUfW29zf7f5IF}l@raij2L!|`xNPuO z7zY}NH;IFtod(g)sb&P%YVrmItRkcQIzfu9J0(Ryq|TN={7@LGiJ2^8iMK4@AqeOX z3dY&&M{NFfLf|LRe*x1KvWI-)ymh_2YJ`tuuRSj%GO3fhQFGKpq3g&Ajw1?0rdV)*D zA0L4Ya;NgWjkc$HUo(;H9ZAf$o=j7TjCV%{+!oFU!NWYY3puf5w51`wc9N4? zZD^6EYIh$)0EF|ADB>oIF~AxUQacWNB%p^!_xPLz6WC=#jE^iIyDhMC@()XQcF$fla2`#-W(9m5*bHYSA+xuwwQsW z7#SlxYhi8<76%Fz&)tNh?xA-8wF?o!8jArw3HIqFAtq}q0!)*Dk3a#7&$xxUx(-k* zhSvlz0F|T8X>iQDK;;+^T*!G*8{i$`vqgGb={jr}jDJN;JY+1^k(+BsMMM~jkm!d+ zyvO1ws*CI|2DDi4EY#dti@_oK9ts7BECzAX6^eLBVBt1`;DeH?8o5BYOQi6^T$F2> z4`ehrRKW@s1WSQN4qTT-NXkseNQqc4P#*`8x)WH>T#MnSBc5(5r>BP4QbGNlMf?%& z4o*#dT^I6^fw54yE9eCuLiz;*n8*#SUayxS}6hdBI+jg5hzAVV~@fR&_EIf4vw zbRtTHI&jWaq)@v}D>|(WKn0wMhZ1zewH5)WSi?!~K0dg@i^a!})*8Nxki!T2;~6A< zrYBDgMpT4rfq(<~(Byayau1mv;sfpQg<=w9YWU&-X!3?8um?jq3}Odp@q({WTF_Tu zsg|q7s<0@AW@`6C+S!5xb2$WNP<=+~v|%X>+sG(2OF{4uc*BZKZQxg$K!IKx{x(%V z3gB)?{fkW&kZM@a^uYvDv_?V{KTMwkvk(L`%hD}j$~v8b%Ern@hGB~s*$P3f$uQCh z?i1ZT7)HppfvF3_&3J=Q2WA&EgYgYjFhJ>3ki-B>61$RsHahHr^iUHi!{`jifWdGIW-tJ2=8p*T+nKK5EyQ8-rq*eySy z^2YOrj+iS>V~l2r#QtzDiKr1S+ zVI8hW7KdZv7E+S7N7WC_8Ac+BwHVR)-0EacW7>JuKjwLd<>mX!pS@u^B8$9tH4JRd zdE&2VdcS&$OW0tD>+frxCl=@2RBgTVVT?^t=<)u=ejU}VPi!X4^Sb;pFzlBnJ}T-)@}`ZLgw4pI_RZe-m!UjTGmnbRgR%1%By$uWv};dGRFkI$^0 zQGPBwGT`=#q`Q-MMSQRCP=5cdZN9~sWk$*4J)=D*zBF8E;jU;py(hKEdvS3`Rot&q zc~8@@cBW6FtO<9kx7s~&-}Zqw#jjHmhg*LcrQ9DUD^Jer4c=LHW&}Ud% zMBw^2v${-o1}1c5z6msvwSzqAXDgSC zH!AdvZh3YnH7qH+;$cTrx61Opf0TE)+kR>Lrd_Rp5w8zNnP+W_sr}F6kP}&1Yaew_ zn!oFMMR2FRyJw00(vkU&j|VeUh0|(I0rKbIJX`S{rM{aVsC|MP+5%-ZLd z&mQXe@6|ltI}2Yl*Xfs4ZLKJrGRbOrpzX=+%J@_A$aQuaP+kJ#O` zKK+!JK~`;D<&Vm;52HtR9qT_GGKG15tJpba;^E3A?;u5~lbb&2Ma_|ce4U!#*6*Gr z@3>WyV!x@+KPB$rnS;5l>b!lXUBJaG^N7*r@drN?HO(?!maWJ-9C|WV zb~^O@uS+~RVvZg7WwVb)`x)_VnEcJ=4at?HE7%$pWE zRabZ4PwDc!S8ip0zHqVkxR1#;XZzjC>ga*OTR)Afv5T&7$hqKpVD?}`;?VbRr#IWA z#Ld<%zH%hGF3rC(_pg7E4}bixoeAZoUAfcU_9kCFSaf>h)f+>vT<`GtGA?7qBgY+a z8MW-7_p8o1tLvjLxkP#NB#k*RwB~fll77YfW2*{Wwi-Kkx__ZOF%V?s|JjHQCuM(3 zwcMUrShJ`3(72?9;gc~nhhN9sRQ_;HId*58S?+jA`HVTQWPOtM N?J&5J&IS9P{{cUF=FtEE literal 108388 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 diff --git a/bin/Aviatorlike.prg.debug.xml b/bin/Aviatorlike.prg.debug.xml index e76be82..5fd7029 100644 --- a/bin/Aviatorlike.prg.debug.xml +++ b/bin/Aviatorlike.prg.debug.xml @@ -418,799 +418,780 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - + - - - - - + + + + + - - - - - + + + + + - + - - + + - - - + + + - - + + - - - + + + + - - + + - - - - - - - - + + + + + + + + - - + + + - - - + + - + - - + + - - + + - + - - - - - - + + + + + + + - - - - - - - - + + + + + + + + - - - - + + + + - - - - + + + + - + - - - - + + + + - - - + + + - - + + - - + + - - - - - + + + + + - + - - - - + + + + + - - + + - - - - - + + + + + - + + - - - - - - - - - + + + + + + + + + - - + + - - - - - - + + + + + + - - + + - - - - - - + + + + + + + - - - - - + + + + + + - - - - - - - + + + + + + + - + - - + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + @@ -1270,134 +1251,114 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1495,10 +1456,6 @@ - - - - @@ -1526,5 +1483,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Draw the layout
param The context
]]>
+
diff --git a/manifest.xml b/manifest.xml index fbd90dc..b57d818 100644 --- a/manifest.xml +++ b/manifest.xml @@ -1,9 +1,7 @@ - + - - diff --git a/resources-semiround/settings/properties.xml b/resources-semiround/settings/properties.xml deleted file mode 100644 index b1ec562..0000000 --- a/resources-semiround/settings/properties.xml +++ /dev/null @@ -1,36 +0,0 @@ - - 0.5.1 - - true - true - - 0xFFFFFF - - 0xAAAAAA - 0x000000 - - 1 - 0x000000 - 0x00AAFF - - 1 - 0xFF0000 - 0xAA0000 - - true - 0xFFFFFF - - true - 0x00AAFF - - 1 - 1 - true - 1 - true - 2 - - 0 - 0 - - diff --git a/resources-semiround/settings/settings.xml b/resources-semiround/settings/settings.xml deleted file mode 100644 index f403081..0000000 --- a/resources-semiround/settings/settings.xml +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - - - - - - - - - - - - @Strings.ColorBlack - @Strings.ColorDarkGray - @Strings.ColorLightGray - @Strings.ColorWhite - @Strings.ColorRed - @Strings.ColorDarkRed - @Strings.ColorOrange - @Strings.ColorYellow - @Strings.ColorGreen - @Strings.ColorDarkGreen - @Strings.ColorBlue - @Strings.ColorDarkBlue - @Strings.ColorPurple - @Strings.ColorPink - - - - - - @Strings.ColorBlack - @Strings.ColorDarkGray - @Strings.ColorLightGray - @Strings.ColorWhite - @Strings.ColorRed - @Strings.ColorDarkRed - @Strings.ColorOrange - @Strings.ColorYellow - @Strings.ColorGreen - @Strings.ColorDarkGreen - @Strings.ColorBlue - @Strings.ColorDarkBlue - @Strings.ColorPurple - @Strings.ColorPink - - - - - - - @Strings.ColorBlack - @Strings.ColorDarkGray - @Strings.ColorLightGray - @Strings.ColorWhite - @Strings.ColorRed - @Strings.ColorDarkRed - @Strings.ColorOrange - @Strings.ColorYellow - @Strings.ColorGreen - @Strings.ColorDarkGreen - @Strings.ColorBlue - @Strings.ColorDarkBlue - @Strings.ColorPurple - @Strings.ColorPink - - - - - - - @Strings.NbrNo - @Strings.NbrFat - @Strings.NbrRace - @Strings.NbrClassic - @Strings.NbrRoman - @Strings.NbrSimple - - - - - - - @Strings.ColorBlack - @Strings.ColorDarkGray - @Strings.ColorLightGray - @Strings.ColorWhite - @Strings.ColorRed - @Strings.ColorDarkRed - @Strings.ColorOrange - @Strings.ColorYellow - @Strings.ColorGreen - @Strings.ColorDarkGreen - @Strings.ColorBlue - @Strings.ColorDarkBlue - @Strings.ColorPurple - @Strings.ColorPink - - - - - - - - - - @Strings.ColorBlack - @Strings.ColorDarkGray - @Strings.ColorLightGray - @Strings.ColorWhite - @Strings.ColorRed - @Strings.ColorDarkRed - @Strings.ColorOrange - @Strings.ColorYellow - @Strings.ColorGreen - @Strings.ColorDarkGreen - @Strings.ColorBlue - @Strings.ColorDarkBlue - @Strings.ColorPurple - @Strings.ColorPink - - - - - - - @Strings.HandsRace - @Strings.HandsPilot - @Strings.HandsDiver - @Strings.HandsClassic - @Strings.HandsSimple - - - - - - - - @Strings.ColorBlack - @Strings.ColorDarkGray - @Strings.ColorLightGray - @Strings.ColorWhite - @Strings.ColorRed - @Strings.ColorDarkRed - @Strings.ColorOrange - @Strings.ColorYellow - @Strings.ColorGreen - @Strings.ColorDarkGreen - @Strings.ColorBlue - @Strings.ColorDarkBlue - @Strings.ColorPurple - @Strings.ColorPink - - - - - - @Strings.ColorBlack - @Strings.ColorDarkGray - @Strings.ColorLightGray - @Strings.ColorWhite - @Strings.ColorRed - @Strings.ColorDarkRed - @Strings.ColorOrange - @Strings.ColorYellow - @Strings.ColorGreen - @Strings.ColorDarkGreen - @Strings.ColorBlue - @Strings.ColorDarkBlue - @Strings.ColorPurple - @Strings.ColorPink - - - - - - - - - - @Strings.ColorBlack - @Strings.ColorDarkGray - @Strings.ColorLightGray - @Strings.ColorWhite - @Strings.ColorRed - @Strings.ColorDarkRed - @Strings.ColorOrange - @Strings.ColorYellow - @Strings.ColorGreen - @Strings.ColorDarkGreen - @Strings.ColorBlue - @Strings.ColorDarkBlue - @Strings.ColorPurple - @Strings.ColorPink - - - - - - - - - - @Strings.ColorBlack - @Strings.ColorWhite - @Strings.ColorRed - @Strings.ColorGreen - @Strings.ColorBlue - @Strings.ColorOrange - - - - - - @Strings.DFDigital - @Strings.DFClassic - @Strings.DFSimple - - - - - - @Strings.DF1 - @Strings.DF2 - @Strings.DF3 - @Strings.DF4 - @Strings.DF5 - @Strings.DF6 - - - - - - - - - - @Strings.UDDate - @Strings.UDSteps - @Strings.UDStepstogo - @Strings.UDDigitalClock - @Strings.UDAltitude - @Strings.UDCalories - @Strings.UDDistance - @Strings.UDBattery - @Strings.UDDayWeek - @Strings.UDSunsetRise - - - - - - - - - - @Strings.LDDate - @Strings.LDSteps - @Strings.LDStepstogo - @Strings.LDDigitalClock - @Strings.LDAltitude - @Strings.LDCalories - @Strings.LDDistance - @Strings.LDBattery - @Strings.LDDayWeek - @Strings.LDSunsetRise - - - - - - - @Strings.TZValm1200 - @Strings.TZValm1100 - @Strings.TZValm1000 - @Strings.TZValm900 - @Strings.TZValm930 - @Strings.TZValm800 - @Strings.TZValm700 - @Strings.TZValm600 - @Strings.TZValm500 - @Strings.TZValm400 - @Strings.TZValm330 - @Strings.TZValm300 - @Strings.TZValm200 - @Strings.TZValm100 - @Strings.TZVal000 - @Strings.TZVal100 - @Strings.TZVal200 - @Strings.TZVal300 - @Strings.TZVal330 - @Strings.TZVal400 - @Strings.TZVal430 - @Strings.TZVal500 - @Strings.TZVal530 - @Strings.TZVal545 - @Strings.TZVal600 - @Strings.TZVal630 - @Strings.TZVal700 - @Strings.TZVal800 - @Strings.TZVal830 - @Strings.TZVal845 - @Strings.TZVal900 - @Strings.TZVal930 - @Strings.TZVal1000 - @Strings.TZVal1030 - @Strings.TZVal1100 - @Strings.TZVal1200 - @Strings.TZVal1245 - @Strings.TZVal1300 - @Strings.TZVal1400 - - - - - - @Strings.DSTValm100 - @Strings.DSTVal000 - @Strings.DSTVal030 - @Strings.DSTVal100 - @Strings.DSTValCurrent - - - - - - diff --git a/resources-semiround/strings/strings.xml b/resources-semiround/strings/strings.xml deleted file mode 100644 index 4c32dc1..0000000 --- a/resources-semiround/strings/strings.xml +++ /dev/null @@ -1,144 +0,0 @@ - - Aviatorlike - Version - - None - - Background color - Display background color - Display foreground color - Number font - Color of numbers and 5 minutes marks - Color of minutes marks - Kind of hands - First color of hands - Second color of hands - Hands outline color - Color of second hand - - Font of displays - Date format - Enable upper display - Info upper display - Enable lower display - Info lower display - Enable second hand - - Enable battery progress marker - Enable step progress marker - Enable outline around some hands - - - Black - Dark Gray - Light Gray - White - Red - Dark Red - Orange - Yellow - Green - Dark Green - Blue - Dark Blue - Purple - Pink - - No numbers - Race - Fat - Classic - Roman - Simple - - Digital - Classic - Simple - - Weekday DD Month - Weekday Month DD - DD.MM.YYYY - YYYY-MM-DD - DD/MM/YYYY - MM/DD/YYYY - - - Date - Steps - Steps to go - Dual time - Elevation - Calories - Distance - Battery - Day and week of year - next/over next sun event - - - Date - Steps - Steps to go - Dual time - Elevation - Calories - Distance - Battery - Day and week of year - next/over next sun event - - Race - Pilot - Diver - Classic - Simple - - Time zone for dual time - Dual time daylight savings time - - -1:00 - 0:00 - 0:30 - 1:00 - Current - - -12:00 Baker Island, Howland Island - -11:00 Jarvis Island, Kingman Reef - -10:00 Papeete, Honolulu - -9:30 Marquesas Islands - -9:00 Anchorage - -8:00 Los Angeles, Vancouver, Tijuana - -7:00 Phoenix, Calgary, Ciudad Juárezr - -6:00 Chicago, Guatemala City, Mexico City, San José, San Salvador - -5:00 New York, Lima, Toronto, Bogotá, Havana, Kingston - -4:00 Santiago, La Paz, Manaus, Halifax - -3:30 Canada (Newfoundland Time Zone) - -3:00 Buenos Aires, Montevideo, São Paulo - -2:00 Fernando de Noronha, South Georgia and the South Sandwich Islands - -1:00 Cape Verde, Greenland, Azore - 0:00 Accra, Casablanca, Dakar, Dublin, Lisbon, London - 1:00 Berlin, Lagos, Madrid, Paris, Rome, Tunis, Vienna, Warsaw - 2:00 Athens, Bucharest, Cairo, Helsinki, Jerusalem, Johannesburg, Kiev - 3:00 Istanbul, Moscow, Nairobi, Baghdad, Doha, Khartoum, Minsk, Riyadh - 3:30 Tehran - 4:00 Baku, Dubai, Samara, Muscat - 4:30 Kabul - 5:00 Karachi, Tashkent, Yekaterinburg - 5:30 Delhi, Colombo - 5:45 Kathmandu - 6:00 Almaty, Dhaka, Omsk - 6:30 Yangon - 7:00 Jakarta, Bangkok, Novosibirsk, Hanoi - 8:00 Beijing, Taipei, Singapore, Kuala Lumpur, Perth, Manila, Denpasar - 8:30 North Korea - 8:45 Western Australia - 9:00 Seoul, Tokyo, Ambon, Yakutsk - 9:30 Adelaide, Broken Hill, Darwin - 10:00 Canberra, Vladivostok, Port Moresby - 10:30 New South Wales - 11:00 Noumea - 12:00 Auckland, Suva - 12:45 Chatham Islands - 13:00 Phoenix Islands, Samoa, Tonga - 14:00 Line Islands - - diff --git a/resources/layouts/layout.xml b/resources/layouts/layout.xml new file mode 100644 index 0000000..db41c07 --- /dev/null +++ b/resources/layouts/layout.xml @@ -0,0 +1,2 @@ + + diff --git a/resources-round/settings/properties.xml b/resources/settings/properties.xml similarity index 100% rename from resources-round/settings/properties.xml rename to resources/settings/properties.xml diff --git a/resources-round/settings/settings.xml b/resources/settings/settings.xml similarity index 100% rename from resources-round/settings/settings.xml rename to resources/settings/settings.xml diff --git a/resources-round/strings/strings.xml b/resources/strings/strings.xml similarity index 100% rename from resources-round/strings/strings.xml rename to resources/strings/strings.xml diff --git a/source/AviatorlikeView.mc b/source/AviatorlikeView.mc index c088487..a3bd4aa 100644 --- a/source/AviatorlikeView.mc +++ b/source/AviatorlikeView.mc @@ -22,7 +22,8 @@ class AviatorlikeView extends Ui.WatchFace{ var clockTime; - //Variablen für die analoge Uhr + var width; + var height; // the x coordinate for the center var center_x; // the y coordinate for the center @@ -50,21 +51,33 @@ class AviatorlikeView extends Ui.WatchFace{ //hidden var sunset; hidden var lastLoc; hidden var sunsetStr; + + //var moon; - + //var upperDisplay, lowerDisplay; function initialize() { WatchFace.initialize(); - screenShape = Sys.getDeviceSettings().screenShape; - + screenShape = Sys.getDeviceSettings().screenShape; + + // upperDisplay = new Rez.Drawables.upperDisplay(); + // lowerDisplay = new Rez.Drawables.lowerDisplay(); + Sys.println("Screenshape = " + screenShape); } - function onLayout(dc) { + function onLayout(dc) { + setLayout(Rez.Layouts.WatchFace(dc)); + + width = dc.getWidth(); + height = dc.getHeight(); + center_x = dc.getWidth() / 2; + center_y = dc.getHeight() / 2; + font1 = Ui.loadResource(Rez.Fonts.id_font_fat); //font1 = Gfx.FONT_SYSTEM_NUMBER_SMALL; fontDigital = Ui.loadResource(Rez.Fonts.id_font_digital); @@ -76,13 +89,6 @@ class AviatorlikeView extends Ui.WatchFace{ // Draw the hash mark symbols on the watch------------------------------------------------------- function drawHashMarks(dc) { - - var width = dc.getWidth(); - var height = dc.getHeight(); - center_x = dc.getWidth() / 2; - center_y = dc.getHeight() / 2; - - //if (Sys.SCREEN_SHAPE_ROUND == screenShape) { var n; var alpha, r1, r2; @@ -116,10 +122,6 @@ class AviatorlikeView extends Ui.WatchFace{ function drawQuarterHashmarks(dc){ //12, 3, 6, 9 var NbrFont = (App.getApp().getProperty("Numbers")); - var width = dc.getWidth(); - var height = dc.getHeight(); - center_x = dc.getWidth() / 2; - center_y = dc.getHeight() / 2; if ( NbrFont == 0) { //no number var n; @@ -169,9 +171,7 @@ class AviatorlikeView extends Ui.WatchFace{ function drawDigitalTime(dc) { - - var width = dc.getWidth(); - var height = dc.getHeight(); + var now = Time.now(); @@ -281,10 +281,6 @@ class AviatorlikeView extends Ui.WatchFace{ function drawBattery(dc) { // Draw battery ------------------------------------------------------------------------- - var width = dc.getWidth(); - var height = dc.getHeight(); - center_x = dc.getWidth() / 2; - center_y = dc.getHeight() / 2; var Battery = Toybox.System.getSystemStats().battery; //BatteryStr = Lang.format("$1$ % ", [ Battery.format ( "%2d" ) ] ); @@ -337,10 +333,7 @@ function drawBattery(dc) { //StepGoal progress------------------------------- function drawStepGoal(dc) { - var width = dc.getWidth(); - var height = dc.getHeight(); - //var outerRad = width / 2; - //var innerRad = outerRad - 15; //Länge des Step-Zeigers + var actsteps = 0; var stepGoal = 0; @@ -390,7 +383,7 @@ function drawBattery(dc) { var lenth = 15; r1 = width/2 - outerRad; //outside - r2 = r1 -lenth; ////Länge des Bat-Zeigers + r2 = r1 -lenth; ////Länge des Step-Zeigers hand = [[center_x+r2*Math.sin(alpha+0.1),center_y-r2*Math.cos(alpha+0.1)], [center_x+r1*Math.sin(alpha),center_y-r1*Math.cos(alpha)], @@ -472,69 +465,16 @@ function drawBattery(dc) { } - function drawSunMarkers(dc) { - // Draw Sunset / sunrise markers ------------------------------------------------------------------------- - var width = dc.getWidth(); - var height = dc.getHeight(); - center_x = dc.getWidth() / 2; - center_y = dc.getHeight() / 2; - - var alphaSunrise = 0; - var alphaSunset = 0; - var hand; - - var moment = Time.now(); - var info_date = Calendar.info(moment, Time.FORMAT_LONG); - var actInfo = Act.getActivityInfo(); - - - if(actInfo.currentLocation!=null){ - lastLoc = actInfo.currentLocation.toRadians(); - var sunrise_moment = getMoment(moment,SUNRISE); - var sunset_moment = getMoment(moment,SUNSET); - - var sunriseTinfo = Time.Gregorian.info(new Time.Moment(sunrise_moment.value() + 30), Time.FORMAT_SHORT); - var sunsetTinfo = Time.Gregorian.info(new Time.Moment(sunset_moment.value() + 30), Time.FORMAT_SHORT); - - alphaSunrise = Math.PI/6*(1.0*sunriseTinfo.hour+sunriseTinfo.min/60.0); - alphaSunset = Math.PI/6*(1.0*sunsetTinfo.hour+sunsetTinfo.min/60.0); - - var r1, r2; - var outerRad = 0; - var lenth = 10; - - r1 = width/2 - outerRad; //outside - r2 = r1 -lenth; ////Länge des Bat-Zeigers - - dc.setColor(App.getApp().getProperty("QuarterNumbersColor"), Gfx.COLOR_TRANSPARENT); - dc.setPenWidth(3); - dc.drawLine(center_x+r1*Math.sin(alphaSunrise),center_y-r1*Math.cos(alphaSunrise), center_x+r2*Math.sin(alphaSunrise),center_y-r2*Math.cos(alphaSunrise)); - dc.fillCircle(center_x+(r1-15)*Math.sin(alphaSunrise),center_y-(r1-15)*Math.cos(alphaSunrise),6); - dc.drawLine(center_x+r1*Math.sin(alphaSunset),center_y-r1*Math.cos(alphaSunset), center_x+(r2-10)*Math.sin(alphaSunset),center_y-(r2-10)*Math.cos(alphaSunset)); - dc.fillCircle(center_x+(r1-5)*Math.sin(alphaSunset),center_y-(r1-5)*Math.cos(alphaSunset),6); - - dc.setColor(Gfx.COLOR_YELLOW, Gfx.COLOR_TRANSPARENT); - dc.fillCircle(center_x+(r1-15)*Math.sin(alphaSunrise),center_y-(r1-15)*Math.cos(alphaSunrise),4); - dc.fillCircle(center_x+(r1-5)*Math.sin(alphaSunset),center_y-(r1-5)*Math.cos(alphaSunset),4); - } - - - } - - // Handle the update event----------------------------------------------------------------------- function onUpdate(dc) { - + //Sys.println("width = " + width); + //Sys.println("height = " + height); + var LDInfo = (App.getApp().getProperty("LDInfo")); var UDInfo = (App.getApp().getProperty("UDInfo")); - - var width = dc.getWidth(); - var height = dc.getHeight(); - //Sys.println("width = " + width); - //Sys.println("height = " + height); - + // Clear the screen-------------------------------------------- //dc.setColor(App.getApp().getProperty("BackgroundColor"), Gfx.COLOR_TRANSPARENT)); @@ -545,8 +485,22 @@ function drawBattery(dc) { // Draw the hash marks --------------------------------------------------------------------------- drawHashMarks(dc); - drawQuarterHashmarks(dc); - + drawQuarterHashmarks(dc); + + + +// Draw moon ------------------------------------------------------------------------------ +// var moonx = 160; +// var moony = height / 2 -20; +// moon = new Moon(Ui.loadResource(Rez.Drawables.moon), 40, moonx, moony); +// var time_sec = Time.now(); +// var dateinfo = Calendar.info(time_sec, Time.FORMAT_SHORT); +// var clockTime = Sys.getClockTime(); +// moon.updateable_calcmoonphase(dc, dateinfo, clockTime.hour); +// +// dc.setColor((App.getApp().getProperty("QuarterNumbersColor")), Gfx.COLOR_TRANSPARENT); +// dc.setPenWidth(1); +// dc.drawCircle(moonx+20,moony+20,19); //Draw Digital Elements ------------------------------------------------------------------ @@ -635,14 +589,20 @@ function drawBattery(dc) { if (UpperDispEnable) { //background for upper display - dc.setColor(App.getApp().getProperty("DigitalBackgroundColor"), Gfx.COLOR_TRANSPARENT); - if (screenShape == 1) { // round + dc.setColor(App.getApp().getProperty("DigitalBackgroundColor"), Gfx.COLOR_TRANSPARENT); + //upperDisplay.draw(dc); + + if (screenShape == 1) { // round dc.fillRoundedRectangle(width / 2 -72 , height / 10 * 2.4 , 144 , 35, 5); - } - if (screenShape == 2) { // semi round + } + if (screenShape == 2) { // semi round dc.fillRoundedRectangle(width / 2 -72 , height / 10 * 2 , 144 , 35, 5); - } - dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); + } + + + + + dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); //Draw date--------------------------------- if (UDInfo == 1) { @@ -760,13 +720,16 @@ function drawBattery(dc) { if (LowerDispEnable) { //background for lower display - dc.setColor(App.getApp().getProperty("DigitalBackgroundColor"), Gfx.COLOR_TRANSPARENT); - if (screenShape == 1) { // round + dc.setColor(App.getApp().getProperty("DigitalBackgroundColor"), Gfx.COLOR_TRANSPARENT); + //lowerDisplay.draw(dc); + + if (screenShape == 1) { // round dc.fillRoundedRectangle(width / 2 -70 , height / 10 * 6.5 , 140 , 35, 5); } if (screenShape == 2) { // semi round dc.fillRoundedRectangle(width / 2 -70 , height / 10 * 6.1 , 140 , 35, 5); } + dc.setColor((App.getApp().getProperty("ForegroundColor")), Gfx.COLOR_TRANSPARENT); @@ -876,6 +839,7 @@ function drawBattery(dc) { } + //!progress battery------------ @@ -1002,7 +966,7 @@ function drawBattery(dc) { dc.drawCircle(width / 2 - 30, height / 2 -7, 5); dc.drawText(width / 2 - 30, height / 2 -2, fontLabel, "Alm", Gfx.TEXT_JUSTIFY_CENTER); //dc.drawText(width / 3 + 7, height / 2, fontLabel, messages, Gfx.TEXT_JUSTIFY_CENTER); - + // Draw hands ------------------------------------------------------------------ hands.drawHands(dc);