From 3a36580ee4764de941e3441f9d14d630db017806 Mon Sep 17 00:00:00 2001 From: OmegaRogue Date: Wed, 9 Dec 2020 14:56:20 +0100 Subject: [PATCH] Add Icon for Dane Launcher, Improve Icon for Dane add dane_arwes module --- apps.json | 3 +- apps/dane/app-icon.js | 2 +- apps/dane/app.js | 2 +- apps/dane_tcr/app-icon.js | 1 + core | 2 +- modules/dane_arwes.js | 116 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 122 insertions(+), 4 deletions(-) create mode 100644 apps/dane_tcr/app-icon.js create mode 100644 modules/dane_arwes.js diff --git a/apps.json b/apps.json index a7bb44acd..ea05a81fc 100644 --- a/apps.json +++ b/apps.json @@ -1522,7 +1522,8 @@ ], "storage": [ {"name":"dane_tcr.app.js","url":"app.js"}, - {"name":"dane_tcr.settings.js","url":"settings.js"} + {"name":"dane_tcr.settings.js","url":"settings.js"}, + {"name": "dane_tcr.img", "url": "app-icon.js", "evaluate": true} ], "sortorder" : -10 }, diff --git a/apps/dane/app-icon.js b/apps/dane/app-icon.js index 4deb12640..ab5a4d606 100644 --- a/apps/dane/app-icon.js +++ b/apps/dane/app-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("l8wxH+AH4A/AH4A/AFUvl8Cu4AEgUCBQIrfFQMRAAe/Aw4xbDYIlBiUS7AjCAAY5BBYMSiJkBGC4sCicTiRQJHoUSCAIwBF6sv30SikUiRMMMIISD7AvTl/YiYtPF40TF6R4BicVFqAWDF4MViaPRIwQWTF4O/IwiKRCoMRUiZHEDJ5cXJAxeOOQuQhQuShWQJIe/JJkviIuC74tTFwORRqKLD+3cmVLpsLFZtNAANKhXeDYKNOu4uEmdlDwVNBoNlsoDDmoKBhYQChcyFycVFwOTFwJcBpomBhYjCmouBAwYMCmZdBa4d3FyonBKoIoCAwIECLooucEIIjCRIYuFms1Lqq7CFwS7DLQQsDhYrBHIZdHXZkCdQpQDXoIQDFwIDBeoQQCpYuSl8RFwMT70KCRYAIhUSFwMTiMvFxm/CQUSFyp5Did3Fxi8DOBwuLDSEv7ETfoRCNDI13DIMT34ZPIYSgOaxJ3SIgZeTC7COBdgMCC58vOoakWiQvQFoQTBFqgvEiURF5gRDOKIdIDwMRiO/axMCBoMRLQItXF4Z9B7F3BxF37BZBAAQnRIYobDMAKqIl5aDAA5zJFwaCBAA6PBFxQQEAAYKBFxjSCU4IECA4YuJCAoAEFx0UikTAAIEBAwQuKCIoADFxsCI5RdiUAoAEVgIVJABRDHAH4A/AH4A/ADAA=")) \ No newline at end of file +require("heatshrink").decompress(atob("l8w4kA///hFC885ospj+X/+Ow0xkkhlFC8cYvWnsspgkh00x4UjMP4A/gHuAAXgCqOfWwIABzfuCpsOzOZ/wtB9P5zOeGJnn4/JB4cO9PD44XL9M2nIOFBBANFsVnBo3ssVsC5IWB7gMH9khBRBbBsMTBZHriNpBY8OmOC5yVI4WBnwKHyWB3ytJtAjI8cYi5pJ88YKQ/p7GCuCYJyWI644G4OItoWJhZGIIoOL9VVCo1VrXrxBGGM4OIn2kqlQglAglFqtUotenANBEQvmEAIuBqgBColVqoZBHgQuHVwOlgoQBDAQCCr0xxCxGFwdQqlUolFopEBotaFwODFwxPC0oqDI4QuCnDrHRgdFqFQgEFqABBoiMClguG4S7LNYONyAJFg4JBdRV9Io5GCHAwAD9koBg8OywhIBgUxiewBQ/CixGJ20mzwiImXcIxHss3OERELm03BQ8HnYWJgHu4fHCw+XIhBHDzOZI4vpzIWIhIXDv//ZAmf//uCIwAB+AXD92fBQfvzw1DhwiEh4KD93u/wQD/wtDgGXFwn5vwUBAAPvDofvBIfuvJpEhM2mc3u8zvhtDh2cuczu9z21+FwmdiIADaons6IKDjYuFsILDiQjDh1yxAJBjESnwuEzkzAAc5EYeZm1rmc7tZdFT4IAFBRoA/AGg")) \ No newline at end of file diff --git a/apps/dane/app.js b/apps/dane/app.js index 4f08c57c7..841ecdfeb 100644 --- a/apps/dane/app.js +++ b/apps/dane/app.js @@ -1,4 +1,4 @@ -var d = require("https://raw.githubusercontent.com/OmegaVoid/EspruinoDocs/master/modules/dane_arwes.js"); +var d = require("dane_arwes"); var Arwes = d.default(); diff --git a/apps/dane_tcr/app-icon.js b/apps/dane_tcr/app-icon.js new file mode 100644 index 000000000..6c1b97c1c --- /dev/null +++ b/apps/dane_tcr/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEw4kA///885kkh7/vj+Xssp/+GhFCosplFCgkh8cYw0xpNK4Uj00xMf4A/AAPuAAXgCqO7AAnuCx3lCQO+FwPrAoMuFpuy1YQE9eyxQxLh0i5G+BIvqrmCMZXir/KBo0Ol8cEIwMDksRxwLH9EX5YwIguBvkgBY8C491PRHqjsSEZEOw/RC48O3md+RrJl/d/ZrHk/XLxDJCvtyC40C5vR1wXJKgPcqAJH6KbJbQINI8V979WswVGg1mgX9Ho/ovvc+1EokAsdgsdmo1Es1l5vXSA3lzvc81GsgTBs1kowABs0PC4KFGC4dAgwTCDYQvBhwXI9AvDLAIrCGAVgC4RHGL4YrCAAQXCs0FWpCnBR4NEsEGAINmAYIZBgqPBU4yxFCoIDBslgAYMLa5EOrI5Dsk0AYNDow9DuXgC42hQIUGoYXDmgwB9F5/YXGgElu/FgEEmgXDodAgHsuKmGMAX3jXgF48O18cUwxIC18YHQJfGh2P5ZGHNYXMPARzCsg7Cqq9GGAmo1aDH3UrFxIlC3bLH3ZdIhYmDDAwGGGQgXDDAPuC4vuCQcOC4sgC5O7C4nrC4uy9wADC4wAD3YXFxlYwUilGK2QXE1GIBYOF5QXF493AAVxwQLD2sXBYblCC4dXBYd35YLD3l9y4JBy8SC4u4qoACrGrBYe65nFxFV4raFRQIAFBYYKGeRYA/AFwA==")) \ No newline at end of file diff --git a/core b/core index 8bfdeebf7..0389671ba 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 8bfdeebf705ced95699dcbbccfa05a99e7d3f4a9 +Subproject commit 0389671ba6678a12c9f35644ffb96c190bbe0278 diff --git a/modules/dane_arwes.js b/modules/dane_arwes.js new file mode 100644 index 000000000..b24bc008e --- /dev/null +++ b/modules/dane_arwes.js @@ -0,0 +1,116 @@ +/* Copyright (c) 2020 OmegaRogue. See the file LICENSE for copying permission. */ +/* +Graphics Functions based on the React Sci-Fi UI Framework Arwes +*/ + +var C = { + cornerSize: 14, // description + cornerOffset: 3, // description + borderWidth: 1 // description +}; + +function Arwes(cornerSize, cornerOffset) { + this.cornerSize = cornerSize; + this.cornerOffset = cornerOffset; +} + + +/** 'public' constants here */ +Arwes.prototype.C = { + color: { + primary: { + base: "#26dafd", + light: "#8bebfe", + dark: "#029dbb" + }, + secondary: { + base: "#df9527", + light: "#ecc180", + dark: "#8b5c15" + }, + header: { + base: "#a1ecfb", + light: "#fff", + dark: "#3fd8f7" + }, + control: { + base: "#acf9fb", + light: "#fff", + dark: "#4bf2f6" + }, + success: { + base: "#00ff00", + light: "#6f6", + dark: "#090" + }, + alert: { + base: "#ff0000", + light: "#f66", + dark: "#900" + }, + disabled: { + base: "#999999", + light: "#ccc", + dark: "#666" + } + } +}; + + +function drawCorner(obj, x, y, n) { + g.setColor(obj.C.color.primary.base); + let s1 = (n&1)?1:-1, s2 = (n&2)?1:-1; + const x1 = x + obj.cornerOffset * s1; + const y1 = y + obj.cornerOffset * s2; + g.fillRect(x1, y1, x - obj.cornerSize*s1 + obj.cornerOffset*s1, y); + g.fillRect(x1, y1, x, y - obj.cornerSize*s2 + obj.cornerOffset*s2); + +} + +Arwes.prototype.drawFrameNoCorners = function (x1, y1, x2, y2) { + g.setColor(this.C.color.primary.dark); + g.drawRect(x1, y1, x2, y2); +} + +Arwes.prototype.drawFrame = function (x1, y1, x2, y2) { + drawCorner(this, x1, y1, 0); + drawCorner(this, x2, y1, 1); + drawCorner(this, x1, y2, 2); + drawCorner(this, x2, y2, 3); + this.drawFrameNoCorners(x1, y1, x2, y2); +} + +Arwes.prototype.drawFrameBottomCorners = function (x1, y1, x2, y2) { + drawCorner(this, x1, y2, 2); + drawCorner(this, x2, y2, 3); + this.drawFrameNoCorners(x1, y1, x2, y2); +} + +Arwes.prototype.drawFrameTopCorners = function (x1, y1, x2, y2) { + drawCorner(this, x1, y1, 0); + drawCorner(this, x2, y1, 1); + this.drawFrameNoCorners(x1, y1, x2, y2); +} + +Arwes.prototype.drawFrameLeftCorners = function (x1, y1, x2, y2) { + drawCorner(this, x1, y1, 0); + drawCorner(this, x1, y2, 2); + this.drawFrameNoCorners(x1, y1, x2, y2); +} + +Arwes.prototype.drawFrameRightCorners = function (x1, y1, x2, y2) { + drawCorner(this, x2, y1, 1); + drawCorner(this, x2, y2, 3); + this.drawFrameNoCorners(x1, y1, x2, y2); +} + + + + +exports.create = function (cornerSize, cornerOffset) { + return new Arwes(cornerSize, cornerOffset); +}; + +exports.default = function () { + return new Arwes(C.cornerSize, C.cornerOffset); +};