import Toybox.Graphics; import Toybox.Lang; // Resolution-independent layout helpers. All sizes are computed as // fractions of the drawable context so the app adapts to any round // Garmin display. module LayoutMetrics { // --- Menu ring geometry -------------------------------------------- function centerX(dc as Dc) as Number { return dc.getWidth() / 2; } function centerY(dc as Dc) as Number { return dc.getHeight() / 2; } // Radius on which the 10 icons sit. function ringRadius(dc as Dc) as Number { var min = (dc.getWidth() < dc.getHeight()) ? dc.getWidth() : dc.getHeight(); return (min * 0.38).toNumber(); } function iconSize(dc as Dc) as Number { var min = (dc.getWidth() < dc.getHeight()) ? dc.getWidth() : dc.getHeight(); return (min * 0.14).toNumber(); } function selectedIconSize(dc as Dc) as Number { return (iconSize(dc) * 1.3).toNumber(); } // --- History view sections ----------------------------------------- function topSectionHeight(dc as Dc) as Number { return (dc.getHeight() * 0.15).toNumber(); } function midSectionHeight(dc as Dc) as Number { return (dc.getHeight() * 0.70).toNumber(); } function bottomSectionY(dc as Dc) as Number { return (dc.getHeight() * 0.85).toNumber(); } // --- Loading / delete arc radius ------------------------------------ function edgeArcRadius(dc as Dc) as Number { var min = (dc.getWidth() < dc.getHeight()) ? dc.getWidth() : dc.getHeight(); return (min * 0.48).toNumber(); } function edgeArcPenWidth(dc as Dc) as Number { var min = (dc.getWidth() < dc.getHeight()) ? dc.getWidth() : dc.getHeight(); var w = (min * 0.025).toNumber(); return (w < 3) ? 3 : w; } }