165 lines
15 KiB
JavaScript
165 lines
15 KiB
JavaScript
Graphics.prototype.setFontLECO1976Regular42 = function(scale) {
|
|
// Actual height 30 (31 - 2)
|
|
// 1 BPP
|
|
return this.setFontCustom(
|
|
atob('AAAAAAAAAAAHgAAAAAHwAAAAAPwAAAAAPwAAAAAHwAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAABwAAAAAHwAAAAAfwAAAAA/wAAAAD/wAAAAH/wAAAAf/AAAAA/+AAAAD/4AAAAP/wAAAAf/AAAAB/+AAAAD/4AAAAP/gAAAA//AAAAB/8AAAAH/4AAAAP/gAAAAP+AAAAAP8AAAAAPwAAAAAPgAAAAAOAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//AAAAP//wAAAf//8AAA///+AAB////AAD////AAD/gH/gAH+AP/gAH8Af/wAH4Af/wAP4A/vwAPwB/vwAPwB/PwAPwD/PwAPwH+PwAPwH8PwAPwP8PwAPwf4PwAPwfwPwAPw/wPwAPx/gPwAPx/APwAPz/APwAPz+APwAP/8APwAH78AfwAH/4AfwAH/wA/gAD////gAD////AAB////AAA///+AAAf//8AAAP//wAAAB//AAAAAAAAAAAAAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAP////wAP////wAP////wAP////wAP////wAP////wAAAAAAAAAAAAAAAAAAf/wAAAB//wAHwD//wAPwH//wAPwH//wAPwH//wAPwP//wAPwP4PwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAP4fwPwAP//wPwAH//wPwAH//gPwAD//gPwAB//APwAAf8APwAAAAAAAAAAAAAAAAAAAAAAHwHwHwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAP4PwfwAP////wAH////wAH////gAD////gAB////AAAf//8AAAAAAAAAAAAAAAAP//gAAAP//wAAAP//wAAAP//wAAAP//wAAAP//wAAAH//wAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAP////wAP////wAP////wAP////wAP////wAP////wAAAAAAAAAAAAAAAAAAAAAAP/8APwAP/+APwAP//gPwAP//gPwAP//wPwAP//wPwAP//wPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwP//wAPwH//wAPwH//wAPwH//gAHwD//AAAAB/+AAAAAf8AAAAAAAAAAAAAAAAAAAAAAAAP//wAAA///8AAB///+AAD////AAD////gAH////gAH+Px/wAH4PwfwAP4PwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwP4PwAPwP//wAPwH//wAPwH//wAAAD//gAAAD//AAAAB/+AAAAAf4AAAAAAAAAAAAAAAAPwAAAAAPwAAAAAPwAAAAAPwAAAQAPwAABwAPwAADwAPwAAPwAPwAA/wAPwAD/wAPwAH/wAPwAf/wAPwB//AAPwD/+AAPwP/4AAPw//gAAPz/+AAAP3/8AAAP//wAAAP//AAAAP/+AAAAP/4AAAAP/gAAAAP+AAAAAP8AAAAAHwAAAAADAAAAAAAAAAAAAAAAAAAAAAAHwAAAAA/+AAAAB//AAAf///gAB////gAD////wAH////wAH//4PwAH//wPwAP//wPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAP//wPwAP//wPwAH//4PwAH////wAD////wAB////wAAf///gAAAB//AAAAA/+AAAAAPwAAAAAAAAAAAAAAAAAf8AAAAB/+AAAAD//AAAAH//gAAAH//wPwAH//wPwAP//wPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAPwPwPwAP4PwPwAH8PwfwAH////wAH////gAD////gAD////AAB///+AAAf//8AAAP//wAAAAAAAAAAAAAAAAAAAAAAAAD4AHgAAD4AHwAAH8APwAAD8APwAAD4AHwAABwAHgAAAAAAAA'),
|
|
46,
|
|
atob("CBwmDR4dHh8fHB8eCQ=="),
|
|
42|65536
|
|
// 60+(scale<<8)+(1<<16)
|
|
);
|
|
}
|
|
|
|
Graphics.prototype.setFontLECO1976Regular22 = function(scale) {
|
|
// Actual height 22 (21 - 0)
|
|
// 1 BPP
|
|
return this.setFontCustom(
|
|
atob('AAAAAAAAAAAAAAAAAAAAAAAAAB/wQH//gf/+B/+4DgAAAAAAAAAD8AAPwAA/AADgAAPwAA/AAD8AAAAAAADAAEcAB5+AH/4A//gP/+A//AD+dgN7+AH/4D//gP/4A/3AD+cAB5AADAAAAAAAIAAD4AAf+AD/4A//4H7/gfv+B+/4A7+ADvwAO+AADwAAAAAPgAB/AAH+AAd4IB3jgH++AP34A//AAfwAH8AA/+AH78Aef4BhzgEHOAAf4AA/AAB8AAAAAAAAD/8Af/4B//gH/+Ac44BzjgHOOAc44BzHgHB+AcP4AA/AADgAAGAAAAAOAAA/AAD8AAPwAAAAAABgAA/4AP/4D//wf//z+A/vgA+4AB7AADgAAAwAAbgADvAA+/AP7/n/D//4H/+AH/gADwAAAAAIgAB3AAHcAAfwAH/wAf/AB/8AB/AAHcAAdwAAiAAAAAAA4AADgAAOAAH/AA/+AD/4AP/gADgAAOAAA4AADgAAAAAAAeAAH4AAfgAB8AAGAAAAAAAAADgAAOAAA4AADgAAOAAA4AADgAAOAAA4AADgAAOAAAAAAAAAAAOAAA4AADgAAEAAAAAAAgAAOAAB4AAfgAH8AA/gAP4AB/AAfwAD8AAfgAB4AAHAAAQAAAAAAAHwAD/wAf/gD//AP/+B8P4Hh/geHuB4+4HnzgeeOB744H/Dgf4OB/h4D//gP/8Af/gA/8AAfAAAAADAAAeAAB4AAH//gf/+B//4H//gAAAAAAAAB/geP+B4/4Hj/geeOB544HnjgeeOB544HnjgeeOB/44D/jgP8OAfg4AAAAMOOB544HnjgeeOB544HnjgeeOB544HnjgeeOB//4H//gP/+Af/wAf4AAAAB/4AH/gAf+AB/4AAHgAAeAAB4AAHgAAeAAB4AAHgAP/+B//4H//gf/+A//4AAAAAAAB/g4H/Dgf+OB/44HnjgeeOB544HnjgeeOB544HnjgeP+B4/4Hj/gAH4AAAAAAAAD/4Af/wD//gP/+B554HnjgeeOB544HnjgeeOB544Hj/geP+AA/wAA+AAAAB4AAHgAAeAGB4B4HgfgeD+B4/wHv8Af/AB/4AH+AAfgAB8AADAAAAAAAAHAAZ/AH/+A//4D//gf+OB544HnjgeeOB544H/jgf+OA//4B//gBn8AAPgAAAAH4AA/wAD/jgf+OB544HnjgeeOB544HnjgeeOB554D//gP/+Af/wA/+AAAAAAAQAcDgB4OAHA4AABAAAAACA+AcH4B4fgHB4AAAAAOAAB8AAP4AB/gAP/AB8+AHh4AcDgBwGAGAIAAAAAAAABzgAHOAAc4ABzgAHOAAc4ABzgAHOAAc4ABzgAHOAAAAAAAAAYAgBwGAHA4AeHgB8+AD/wAH/AAP4AAfAAA4AAAAAMAAB4AAHgAAeAAB4eQHj/gef+B5/4Hn4AeeAB54AH/gAP+AA/wAA8AAAAAAAAAAH+AB/+AH/4Ac/gB/+AH/4Af+AB/4AH/gAf+AB/4AH/gAP8AAAAAAAAAP/gD/+Af/4D//gPjwA8PAHg8AeDwB4PAHg8AeDwB4PAH//gf/+B//4D//gAAAAf/wH//gf/+B//4H//geeOB544HnjgeeOB544HnjgeeOB/84D//gP/+Aff4AA/AAAAAP/gD//AP/+B//4HgDgeAOB4A4HgDgeAOB4A4HgDgeAOB4A4HgDgeAOAwA4AAAAH/8B//4H//gf/+B//4HgDgeAOB4A4HgDgeAOB4A4HgHgPAeA//4B//AH/4AH/AAAAAAAAA//gH//Af/+B//4HnjgeeOB544HnjgeeOB544HnjgeeOB544HjjgeAOAAAAAAAAP/+B//4H//gf/+B//4HngAeeAB54AHngAeeAB54AHngAeeAB54AHgAAAAAAAAAB//AP/+B//4H//geAOB544HnjgeeOB544HnjgeeOB544Hn/gef+B5/4Hj/gAAAA//4H//gf/+B//4D//gAeAAB4AAHgAAeAAB4AAHgAAeAAB4AH//gf/+B//4H//gAAAA//4H//gf/+B//4D//gAAAAAA4AADgAAOAAA4AADgAAOAAA4AADgAAOAAA4AADgf/+B//4H//AP/4AAAAAAAAP/+B//4H//gf/+A//4AHgAAeAAD8AAf4AD/wAfvgD8fAfg+B8B4HgDgcAGBgAIAAAAAAAA//wH//gf/+B//4D//gAAOAAA4AADgAAOAAA4AADgAAOAAA4AADgAAOAAAAAAAAf/+B//4H//gP/+Af4AAf4AAf4AAfwAA/gAA/AAP4AD/AAfwAH+AB/gAf/+B//4H//gP/+AAAAAAAAf/+B//4H//gP/+AfAAA+AAB8AAD4AAHwAAPgAAfgAA/AP/+B//4H//wf/+A//wAAAAB/gAf/gD//AP/+B8B4HgDgeAPB4A8HgDweAPB4A8HgDweAOB8D4D//gH/8AP/gAf4AAAAAH/4B//gP/+B//4H//geDwB4PAHg8AeDwB4PAHg8AeDwB4eAD/4AP/gAf8AA/gAAAAAH+AB/+AP/8A//4HwHgeAOB4A8HgDweAPB4A8HgDweAPh4A/HwP8P//wf/zA/+EB/gAAAAAAAAP/+B//4H//gf/+B4cAHhwAeHgB4fAHh+AeH4B4fwHj/gf/eB/84D/hgP8GAHAIAAAAAAAAfg4D/DgP+OB/44HnjgeeOB544HnjgeeOB544HnjgeeOB4/4Hj/geH8AAPgAAAAeAAB4AAHgAAeAAB4AAH//gf/+B//4H//gf/+B4AAHgAAeAAB4AAHgAAMAAAAAAAAAAf/AB//AH/+Af/8AAH4AAHgAAeAAA4AADgAAOAAA4AADgAAOB//4H//gf/+A//wAAAAcAAB8AAH+AAP+AAf+AAP+AAP+AAP4AAfwAH+AB/wAf8AH/AB/wAH8AAfAABwAAAAAAfgAB/8AH//gf/+AD/8AA/gAP8AB/AAf4AD+AAPgAA/gAB/gAD/AAD/AAD+AD/8H//gf/+B/+AH4AAAAABAAIHABgeAOB8B4H4fgPz+Af/gA/8AA/gAD+AA/8AH/4A/P4H4fgfAeB4A4HABgAAAB/gAH/AAf+AB/8AADwAAHAAAf4AB/gAH+AAf4AB/gAHAAA8AH/wAf+AB/4AH+AAAAAB4A4HgHgeA+B4H4Hg/geH+B4/4Hnzgf+OB/w4H+DgfwOB+A4HwDgOAOAAAAH//8///7///v//+///7gAHuAAeYAAAAAAEAAAcAAB4AAH4AAPwAAfwAAfwAA/gAA/gAB/AAB+AAB4AADgAACAAAAGAAM4AB7gAHv//+///7///v//+f//wAAAAfAAH4AA/AAH4AAfAAB+AAD8AAH4AAHwAAAAAAAAAAADgAAOAAA4AADgAAOAAA4AADgAAOAAA4AADgAAOAAA4AADgAAAAAAAAAAOAAA8AADwAAHAAAeAAA4AADAAAAAAAADgAA/AAH+AHf4AdzgB3OAHc4AdzgB3OAHc4Af/gB/+AD/4AH/AAAAD//AP//A//+D//4H//gB4OAHg4AeDgB4OAHg4Af/gB/+AD/4AP/AAPwAAAAAB8AA/8AD/4Af/gB/+AHg4AeDgB4OAHg4AeDgB4OAHg4AeDgAAAAA/AAP/AA/+AH/4Af/gB4OAHg4AeDgB4OAHg4H//g//+D//4P//Af/wAAAAAAAAAf8AD/4Af/gB/+AHO4Ac7gBzuAHO4Ac7gB7uAH+AAf4AA/AAAAAA//gf/+B//4P//g//+D3gAPeAA94AD3gAPeAA94AD3gAAAAAAf4AD/wAf/gB/+AHg5weDnB4OcHg5weDnB4OcH//wf//A//4B//AAAAf/+D//4P//g//+D//4AeAAB4AAHgAAeAAB4AAHgAAf/gA/+AD/4AD/gAAABj/4Of/g5/+Dn/4Of/gAAABj//+f//5///n//uf/4AAAAAAAP//g//+D//4P//gAHAAA+AAH8AAf4AD/wAfPgB4eAHA4AYBgBgGAAAAAAAA//4D//wP//g//+AAA4AADgAAAAB/4Af/gB/+AH/4Af/gB4AAHgAAeAAB/+AH/4Af/gB/+AHgAAeAAB/+AH/4AP/gAf+AAf4AAAAAAAAD/4Af/gB/+AH/4AeAAB4AAHgAAeAAB4AAHgAAf/gA/+AB/4AD/gAAAAA/AAP/AA/+AH/4Af/gB4OAHg4AeDgB4OAHg4Af/gB/+AD/4AP/AAPwAAAAAD/+A//4D//gf/+B//wHg4AeDgB4OAHg4AeDgB/+AH/4AP/gA/8AA/AAAAAAHwAD/wAP/gB/+AH/4AeDgB4OAHg4AeDgB4OAH//Af/+A//4D//gD/+AAAAAP4AH/gA/+AH/4Af/gB4AAHgAAeAAB4AAHgAAeAAB4AAAAAAAAAA+OAD84AfzgB/OAH84AfzgB/OAH84Af/gB/+AH/4AA/AAAAAHgAAeAAB4AA//4H//gf/+B//4D//gB4AAHgAAeAAB4AAAAAAf4AB/4AH/wAf/gA/+AAA4AADgAAOAAA4AADgB/+AH/4Af/gB/+AD/wAAAAAAAAH/4Af/gB/+AH/4AADgAAeAAD4AAfAAD4AAfgAH8AB/gAH4AAeAAAAAAAAAAf/gB/+AH/4Af/gAD4AA/AAH4AA/4AH/4Af/gB/+AD/4AAfAAH8AA/AAP4AB/AAHwAAeAAAAAAEAIAYBgBwOAHj4AffgA/8AB/gAD8AAf4AD/wAf/gB8+AHB4AYDgBAGAAAAAf8AB/8AH/4Af/gA/+cAA5wADnAAOcAA5wADnA//8H//wf//B//4H/+AAAAAAEAHg4AeHgB4+AHn4Ae/gB/+AH+4AfzgB+OAHw4AeDgBwOAAAAABwAAHAAf/4H//4f//z///v+P+4AB7gAHgAAA///7///v//+///7///AAAAYAAzgAHuAAe/4/7///n//8f//gf/4ABwAAAAAAcAADwAAOAAB4AAHgAAOAAA4AADwAAPAAA8AADwAAPAAB4AAAAAA='),
|
|
32,
|
|
atob("BwYJEQ0TEAUKCgwMBg0GDxUIERAREREPERAGBQsNDBAPEhIREhEREhIGEBMRFRMTEhMTEhETEhYSEhAJDwkKDwoPEA4QDw0PEAYGEAgUEBAQEA0ODRAQFRAQDgoGCg4="),
|
|
// 22|65536
|
|
22+(scale<<8)+(1<<16)
|
|
);
|
|
}
|
|
|
|
Graphics.prototype.setFontLECO1976Regular14 = function() {
|
|
// Actual height 14 (13 - 0)
|
|
// 1 BPP
|
|
return this.setFontCustom(
|
|
atob('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'),
|
|
32,
|
|
atob("BQUGCwgNCgQHBwkIBAgECg4FCwsMCwsKCwsEBAgJCAoKDAwLDQsLDA0FCwwLDg0NDA0NDAsNDA8MDAsGCgYHCwcKCgkKCgkKCwUFCwUNCwoKCgkJCQoKDgsLCQcEBwk="),
|
|
14|65536
|
|
);
|
|
}
|
|
|
|
{
|
|
const SETTINGS_FILE = "pebblepp.json";
|
|
let settings = Object.assign({'theme':'System', 'showdate':true, 'clkinfoborder': false}, require("Storage").readJSON(SETTINGS_FILE,1)||{});
|
|
let background = require("clockbg");
|
|
let theme;
|
|
let drawTimeout;
|
|
|
|
const h = g.getHeight();
|
|
const w = g.getWidth();
|
|
//const ha = 2*h/5 - 4;
|
|
const h2 = Math.round(3*h/5) - 10;
|
|
const h3 = Math.round(7*h/8);
|
|
|
|
let draw = function() {
|
|
let locale = require("locale");
|
|
let date = new Date();
|
|
let time = locale.time(date, 1);
|
|
|
|
g.reset();
|
|
g.setBgColor(theme.bg).clearRect(0, h2, w, h3); // clear area where clock is
|
|
if (settings.showdate) {
|
|
g.setColor(theme.fg).fillRect(w / 2 - 30, h3 + 5, w / 2 + 30, h); // refresh date background
|
|
g.setFontLECO1976Regular22().setFontAlign(0, -1);
|
|
g.setColor(theme.bg).drawString(date.getDate() + "." + (date.getMonth() + 1), w / 2, h3 + 5);
|
|
}
|
|
g.setFontLECO1976Regular42().setFontAlign(0, -1);
|
|
g.setColor(theme.fg);
|
|
g.drawString(time, w/2, h2 + 8);
|
|
|
|
// queue next draw
|
|
if (drawTimeout) clearTimeout(drawTimeout);
|
|
drawTimeout = setTimeout(function() {
|
|
drawTimeout = undefined;
|
|
draw();
|
|
}, 60000 - (Date.now() % 60000));
|
|
};
|
|
|
|
let loadThemeColors = function() {
|
|
theme = {fg: g.theme.fg, bg: g.theme.bg };
|
|
if (settings.theme === "Dark") {
|
|
theme.fg = g.toColor(1,1,1);
|
|
theme.bg = g.toColor(0,0,0);
|
|
} else if (settings.theme === "Light") {
|
|
theme.fg = g.toColor(0,0,0);
|
|
theme.bg = g.toColor(1,1,1);
|
|
}
|
|
};
|
|
loadThemeColors();
|
|
|
|
// Load the clock infos
|
|
let clockInfoW = 0|(w/2);
|
|
let clockInfoH = 0|(h/2);
|
|
let clockInfoG = Graphics.createArrayBuffer(26, 26, 2, {msb:true});
|
|
clockInfoG.transparent = 3;
|
|
clockInfoG.palette = new Uint16Array([g.theme.bg, g.theme.fg, g.toColor("#888"), g.toColor("#888")]);
|
|
let clockInfoItems = require("clock_info").load();
|
|
let clockInfoDraw = (itm, info, options) => {
|
|
// itm: the item containing name/hasRange/etc
|
|
// info: data returned from itm.get() containing text/img/etc
|
|
// options: options passed into addInteractive
|
|
// Clear the background - if focussed, add a border
|
|
g.reset().setBgColor(theme.bg).setColor(theme.fg);
|
|
var y,b = 0; // border
|
|
if (options.focus) { // white border
|
|
b = 4;
|
|
g.clearRect(options.x, options.y, options.x+options.w-1, options.y+options.h-1);
|
|
}
|
|
background.fillRect(options.x+b, options.y+b, options.x+options.w-1-b, options.y+options.h-1-b);
|
|
// we're drawing center-aligned here
|
|
var midx = options.x+options.w/2;
|
|
if (info.img) { // draw the image
|
|
// TODO: we could replace certain images with our own ones here...
|
|
y = options.y+8;
|
|
if (settings.clkinfoborder)
|
|
require("clock_info").drawBorderedImage(info.img,midx-24,y,{scale:2});
|
|
else
|
|
require("clock_info").drawFilledImage(info.img,midx-24,y,{scale:2});
|
|
}
|
|
g.setFontLECO1976Regular22().setFontAlign(0, 0);
|
|
var txt = info.text.toString().toUpperCase();
|
|
if (g.stringWidth(txt) > options.w) // if too big, smaller font
|
|
g.setFontLECO1976Regular14();
|
|
if (g.stringWidth(txt) > options.w) {// if still too big, split to 2 lines
|
|
var l = g.wrapString(txt, options.w);
|
|
txt = l.slice(0,2).join("\n") + (l.length>2)?"...":"";
|
|
}
|
|
y = options.y+options.h-12;
|
|
if (settings.clkinfoborder) {
|
|
g.setColor(theme.bg)
|
|
g.drawString(txt, midx-2, y).drawString(txt, midx+2, y).drawString(txt, midx, y-2).drawString(txt, midx, y+2);
|
|
g.setColor(theme.fg);
|
|
}
|
|
g.drawString(txt, midx, y); // draw the text
|
|
};
|
|
|
|
let clockInfoMenuA = require("clock_info").addInteractive(clockInfoItems, {
|
|
app:"pebblepp",
|
|
x : 0, y: 0, w: clockInfoW, h:clockInfoH,
|
|
draw : clockInfoDraw
|
|
});
|
|
let clockInfoMenuB = require("clock_info").addInteractive(clockInfoItems, {
|
|
app:"pebblepp",
|
|
x : w/2, y: 0, w: clockInfoW, h:clockInfoH,
|
|
draw : clockInfoDraw
|
|
});
|
|
|
|
// Show launcher when middle button pressed
|
|
Bangle.setUI({
|
|
mode : "clock",
|
|
redraw : draw,
|
|
remove : function() {
|
|
// Called to unload all of the clock app
|
|
if (drawTimeout) clearTimeout(drawTimeout);
|
|
drawTimeout = undefined;
|
|
clockInfoMenuA.remove();
|
|
clockInfoMenuB.remove();
|
|
delete Graphics.prototype.setFontLECO1976Regular22;
|
|
delete Graphics.prototype.setFontLECO1976Regular42;
|
|
delete Graphics.prototype.setFontLECO1976Regular14;
|
|
require("widget_utils").show(); // re-show widgets
|
|
}});
|
|
|
|
Bangle.loadWidgets();
|
|
require("widget_utils").swipeOn(); // hide widgets, make them visible with a swipe
|
|
background.fillRect(Bangle.appRect); // start off with completely clear background
|
|
// background contrast bar
|
|
g.setColor(theme.fg).fillRect(0, h2 - 6, w, h3 + 6);
|
|
|
|
draw();
|
|
} |