From 65e89d220f04c509da955593d313479c78123c97 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 4 Nov 2012 12:14:00 +0000 Subject: [PATCH] add missing clock stuff. SVN revision: 78899 --- data/themes/Makefile.am | 50 + data/themes/default.edc | 1 + data/themes/edc/O/clock.edc | 1365 ++++++++++++++++++++++++++ data/themes/img/O/ch-h1-2.png | Bin 0 -> 306 bytes data/themes/img/O/ch-h1-3.png | Bin 0 -> 221 bytes data/themes/img/O/ch-h1.png | Bin 0 -> 377 bytes data/themes/img/O/ch-h2-2.png | Bin 0 -> 295 bytes data/themes/img/O/ch-h2-3.png | Bin 0 -> 188 bytes data/themes/img/O/ch-h2.png | Bin 0 -> 605 bytes data/themes/img/O/ch-m1-2.png | Bin 0 -> 356 bytes data/themes/img/O/ch-m1-3.png | Bin 0 -> 254 bytes data/themes/img/O/ch-m1.png | Bin 0 -> 460 bytes data/themes/img/O/ch-m2-2.png | Bin 0 -> 398 bytes data/themes/img/O/ch-m2-3.png | Bin 0 -> 202 bytes data/themes/img/O/ch-m2.png | Bin 0 -> 810 bytes data/themes/img/O/ch-s1-2.png | Bin 0 -> 278 bytes data/themes/img/O/ch-s1-3.png | Bin 0 -> 215 bytes data/themes/img/O/ch-s1.png | Bin 0 -> 319 bytes data/themes/img/O/ch-s2-2.png | Bin 0 -> 317 bytes data/themes/img/O/ch-s2-3.png | Bin 0 -> 217 bytes data/themes/img/O/ch-s2.png | Bin 0 -> 616 bytes data/themes/img/O/clock_base.png | Bin 0 -> 4452 bytes data/themes/img/O/flip_0b.png | Bin 0 -> 1540 bytes data/themes/img/O/flip_0t.png | Bin 0 -> 1547 bytes data/themes/img/O/flip_1b.png | Bin 0 -> 451 bytes data/themes/img/O/flip_1t.png | Bin 0 -> 666 bytes data/themes/img/O/flip_2b.png | Bin 0 -> 1074 bytes data/themes/img/O/flip_2t.png | Bin 0 -> 1495 bytes data/themes/img/O/flip_3b.png | Bin 0 -> 1408 bytes data/themes/img/O/flip_3t.png | Bin 0 -> 1444 bytes data/themes/img/O/flip_4b.png | Bin 0 -> 705 bytes data/themes/img/O/flip_4t.png | Bin 0 -> 1137 bytes data/themes/img/O/flip_5b.png | Bin 0 -> 1490 bytes data/themes/img/O/flip_5t.png | Bin 0 -> 824 bytes data/themes/img/O/flip_6b.png | Bin 0 -> 1651 bytes data/themes/img/O/flip_6t.png | Bin 0 -> 1569 bytes data/themes/img/O/flip_7b.png | Bin 0 -> 1110 bytes data/themes/img/O/flip_7t.png | Bin 0 -> 996 bytes data/themes/img/O/flip_8b.png | Bin 0 -> 1660 bytes data/themes/img/O/flip_8t.png | Bin 0 -> 1719 bytes data/themes/img/O/flip_9b.png | Bin 0 -> 1512 bytes data/themes/img/O/flip_9t.png | Bin 0 -> 1659 bytes data/themes/img/O/flip_amb.png | Bin 0 -> 963 bytes data/themes/img/O/flip_amt.png | Bin 0 -> 1075 bytes data/themes/img/O/flip_b.png | Bin 0 -> 384 bytes data/themes/img/O/flip_base.png | Bin 0 -> 598 bytes data/themes/img/O/flip_base_shad.png | Bin 0 -> 826 bytes data/themes/img/O/flip_colon.png | Bin 0 -> 403 bytes data/themes/img/O/flip_pmb.png | Bin 0 -> 709 bytes data/themes/img/O/flip_pmt.png | Bin 0 -> 1052 bytes data/themes/img/O/flip_shad.png | Bin 0 -> 918 bytes data/themes/img/O/flip_t.png | Bin 0 -> 442 bytes 52 files changed, 1416 insertions(+) create mode 100644 data/themes/edc/O/clock.edc create mode 100644 data/themes/img/O/ch-h1-2.png create mode 100644 data/themes/img/O/ch-h1-3.png create mode 100644 data/themes/img/O/ch-h1.png create mode 100644 data/themes/img/O/ch-h2-2.png create mode 100644 data/themes/img/O/ch-h2-3.png create mode 100644 data/themes/img/O/ch-h2.png create mode 100644 data/themes/img/O/ch-m1-2.png create mode 100644 data/themes/img/O/ch-m1-3.png create mode 100644 data/themes/img/O/ch-m1.png create mode 100644 data/themes/img/O/ch-m2-2.png create mode 100644 data/themes/img/O/ch-m2-3.png create mode 100644 data/themes/img/O/ch-m2.png create mode 100644 data/themes/img/O/ch-s1-2.png create mode 100644 data/themes/img/O/ch-s1-3.png create mode 100644 data/themes/img/O/ch-s1.png create mode 100644 data/themes/img/O/ch-s2-2.png create mode 100644 data/themes/img/O/ch-s2-3.png create mode 100644 data/themes/img/O/ch-s2.png create mode 100644 data/themes/img/O/clock_base.png create mode 100644 data/themes/img/O/flip_0b.png create mode 100644 data/themes/img/O/flip_0t.png create mode 100644 data/themes/img/O/flip_1b.png create mode 100644 data/themes/img/O/flip_1t.png create mode 100644 data/themes/img/O/flip_2b.png create mode 100644 data/themes/img/O/flip_2t.png create mode 100644 data/themes/img/O/flip_3b.png create mode 100644 data/themes/img/O/flip_3t.png create mode 100644 data/themes/img/O/flip_4b.png create mode 100644 data/themes/img/O/flip_4t.png create mode 100644 data/themes/img/O/flip_5b.png create mode 100644 data/themes/img/O/flip_5t.png create mode 100644 data/themes/img/O/flip_6b.png create mode 100644 data/themes/img/O/flip_6t.png create mode 100644 data/themes/img/O/flip_7b.png create mode 100644 data/themes/img/O/flip_7t.png create mode 100644 data/themes/img/O/flip_8b.png create mode 100644 data/themes/img/O/flip_8t.png create mode 100644 data/themes/img/O/flip_9b.png create mode 100644 data/themes/img/O/flip_9t.png create mode 100644 data/themes/img/O/flip_amb.png create mode 100644 data/themes/img/O/flip_amt.png create mode 100644 data/themes/img/O/flip_b.png create mode 100644 data/themes/img/O/flip_base.png create mode 100644 data/themes/img/O/flip_base_shad.png create mode 100644 data/themes/img/O/flip_colon.png create mode 100644 data/themes/img/O/flip_pmb.png create mode 100644 data/themes/img/O/flip_pmt.png create mode 100644 data/themes/img/O/flip_shad.png create mode 100644 data/themes/img/O/flip_t.png diff --git a/data/themes/Makefile.am b/data/themes/Makefile.am index fed82ebb1..eb4b5c087 100644 --- a/data/themes/Makefile.am +++ b/data/themes/Makefile.am @@ -52,6 +52,7 @@ edc/O/about.edc \ edc/O/backlight.edc \ edc/O/battery.edc \ edc/O/border_icons.edc \ +edc/O/clock.edc \ edc/O/colors.edc \ edc/O/conf_gad.edc \ edc/O/cpufreq.edc \ @@ -206,6 +207,55 @@ img/wifi_sig_2.png \ img/wifi_sig_3.png \ img/win_glow.png \ img/win_shadow.png \ +img/O/ch-h1-2.png \ +img/O/ch-h1-3.png \ +img/O/ch-h1.png \ +img/O/ch-h2-2.png \ +img/O/ch-h2-3.png \ +img/O/ch-h2.png \ +img/O/ch-m1-2.png \ +img/O/ch-m1-3.png \ +img/O/ch-m1.png \ +img/O/ch-m2-2.png \ +img/O/ch-m2-3.png \ +img/O/ch-m2.png \ +img/O/ch-s1-2.png \ +img/O/ch-s1-3.png \ +img/O/ch-s1.png \ +img/O/ch-s2-2.png \ +img/O/ch-s2-3.png \ +img/O/ch-s2.png \ +img/O/clock_base.png \ +img/O/flip_0b.png \ +img/O/flip_0t.png \ +img/O/flip_1b.png \ +img/O/flip_1t.png \ +img/O/flip_2b.png \ +img/O/flip_2t.png \ +img/O/flip_3b.png \ +img/O/flip_3t.png \ +img/O/flip_4b.png \ +img/O/flip_4t.png \ +img/O/flip_5b.png \ +img/O/flip_5t.png \ +img/O/flip_6b.png \ +img/O/flip_6t.png \ +img/O/flip_7b.png \ +img/O/flip_7t.png \ +img/O/flip_8b.png \ +img/O/flip_8t.png \ +img/O/flip_9b.png \ +img/O/flip_9t.png \ +img/O/flip_amb.png \ +img/O/flip_amt.png \ +img/O/flip_base.png \ +img/O/flip_base_shad.png \ +img/O/flip_b.png \ +img/O/flip_colon.png \ +img/O/flip_pmb.png \ +img/O/flip_pmt.png \ +img/O/flip_shad.png \ +img/O/flip_t.png \ img/O/about_bot.png \ img/O/about_mid.png \ img/O/about_top.png \ diff --git a/data/themes/default.edc b/data/themes/default.edc index 8b0673b72..906befd7b 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -42,6 +42,7 @@ collections { #include "edc/O/backlight.edc" #include "edc/O/battery.edc" #include "edc/O/border_icons.edc" +#include "edc/O/clock.edc" #include "edc/O/colors.edc" #include "edc/O/conf_gad.edc" #include "edc/O/cpufreq.edc" diff --git a/data/themes/edc/O/clock.edc b/data/themes/edc/O/clock.edc new file mode 100644 index 000000000..e8da5a8a6 --- /dev/null +++ b/data/themes/edc/O/clock.edc @@ -0,0 +1,1365 @@ +/*** MOD: CLOCK ***/ + group { name: "e/modules/clock/digital"; + min: 56 16; + max: 512 128; + images { + image: "O/flip_base.png" COMP; + image: "O/flip_base_shad.png" COMP; + image: "O/flip_shad.png" COMP; + image: "O/flip_0t.png" COMP; + image: "O/flip_0b.png" COMP; + image: "O/flip_1t.png" COMP; + image: "O/flip_1b.png" COMP; + image: "O/flip_2t.png" COMP; + image: "O/flip_2b.png" COMP; + image: "O/flip_3t.png" COMP; + image: "O/flip_3b.png" COMP; + image: "O/flip_4t.png" COMP; + image: "O/flip_4b.png" COMP; + image: "O/flip_5t.png" COMP; + image: "O/flip_5b.png" COMP; + image: "O/flip_6t.png" COMP; + image: "O/flip_6b.png" COMP; + image: "O/flip_7t.png" COMP; + image: "O/flip_7b.png" COMP; + image: "O/flip_8t.png" COMP; + image: "O/flip_8b.png" COMP; + image: "O/flip_9t.png" COMP; + image: "O/flip_9b.png" COMP; + image: "O/flip_amt.png" COMP; + image: "O/flip_amb.png" COMP; + image: "O/flip_pmt.png" COMP; + image: "O/flip_pmb.png" COMP; + image: "O/flip_colon.png" COMP; + } + script { +#define DIGPRG(nom, ns) \ + public ns ## v0_cur, ns ## v0_pre, ns ## v0_lock, ns ## v0_next; \ + public ns ## animator2(val, Float:pos) { \ + new st1[11], st2[11], v; \ + v = get_int(ns ## v0_cur); \ + snprintf(st1, 10, "%ih", v); \ + snprintf(st2, 10, "%i", v); \ + set_tween_state(PART:nom"bot", pos, st1, 0.0, st2, 0.0); \ + set_tween_state(PART:nom"sh", pos, "half", 0.0, "full", 0.0); \ + if (pos >= 1.0) { \ + set_state(PART:nom"sh", "default", 0.0); \ + set_int(ns ## v0_lock, 0); \ + } \ + } \ + public ns ## animator1(val, Float:pos) { \ + new st1[11], st2[11], v; \ + v = get_int(ns ## v0_pre); \ + snprintf(st1, 10, "%i", v); \ + snprintf(st2, 10, "%ih", v); \ + set_tween_state(PART:nom"top", pos, st1, 0.0, st2, 0.0); \ + set_tween_state(PART:nom"sh", pos, "default", 0.0, "half", 0.0); \ + if (pos >= 1.0) anim(0.1, #ns"animator2", val); \ + } \ + public ns ## valset(value) { \ + new v, buf[11]; \ + v = get_int(ns ## v0_cur); \ + if (v == value) return; \ + if (get_int(ns ## v0_lock) == 1) { \ + set_state(PART:nom"sh", "default", 0.0); \ + } \ + set_int(ns ## v0_pre, v); \ + set_int(ns ## v0_cur, value); \ + set_int(ns ## v0_lock, 1); \ + snprintf(buf, 10, "%i", get_int(ns ## v0_pre)); \ + set_state(PART:nom"bot0", buf, 0.0); \ + snprintf(buf, 10, "%ih", get_int(ns ## v0_cur)); \ + set_state(PART:nom"bot", buf, 0.0); \ + snprintf(buf, 10, "%i", get_int(ns ## v0_cur)); \ + set_state(PART:nom"top0", buf, 0.0); \ + snprintf(buf, 10, "%i", get_int(ns ## v0_pre)); \ + set_state(PART:nom"top", buf, 0.0); \ + set_state(PART:nom"sh", "default", 0.0); \ + anim(0.1, #ns"animator1", 1); \ + } + + DIGPRG("s1", s1) + DIGPRG("s2", s2) + + DIGPRG("m1", m1) + DIGPRG("m2", m2) + + DIGPRG("h1", h1) + DIGPRG("h2", h2) + + DIGPRG("ap", ap) + + public do_seconds, do_24h, tick_timer; + + public clock_cb(val) { + new year, month, day, yearday, weekday, hour, minute; + new Float:second; + new v, dosec, do24h, tim; + + date(year, month, day, yearday, weekday, hour, minute, second); + dosec = get_int(do_seconds); + if (dosec) { + v = round(second); + tim = timer(1.0 - (second - v), "clock_cb", 1); + // set seconds to v + s1valset(v / 10); + s2valset(v % 10); + } + else { + tim = timer(60.0 - (second), "clock_cb", 1); + } + set_int(tick_timer, tim); + + // set minutes to minute + m1valset(minute / 10); + m2valset(minute % 10); + + // set hours to hour + do24h = get_int(do_24h); + if (do24h) { + h1valset(hour / 10); + h2valset(hour % 10); + } + else { + new pm; + + // if 12 or later, its pm + if (hour >= 12) { + pm = 1; + // if we are after 12 (1, 2, 3 etc.) then mod by 12 + if (hour > 12) hour = hour % 12; + } + else { + pm = 0; + // make after midnight be 12:XX AM :) + if (hour == 0) hour = 12; + } + h1valset(hour / 10); + h2valset(hour % 10); + apvalset(pm); + } + } + + public eval_fields() { + new do24h, dosec; + + dosec = get_int(do_seconds); + do24h = get_int(do_24h); + custom_state(PART:"hours1", "default", 0.0); + custom_state(PART:"hours2", "default", 0.0); + custom_state(PART:"mins1", "default", 0.0); + custom_state(PART:"mins2", "default", 0.0); + custom_state(PART:"secs1", "default", 0.0); + custom_state(PART:"secs2", "default", 0.0); + custom_state(PART:"ampm", "default", 0.0); + if ((dosec) && (!do24h)) { // sec + ampm + set_state_val(PART:"hours1", STATE_REL1, (0.0/16.0), 0.0); + set_state_val(PART:"hours1", STATE_REL2, (2.0/16.0), 1.0); + set_state_val(PART:"hours2", STATE_REL1, (2.0/16.0), 0.0); + set_state_val(PART:"hours2", STATE_REL2, (4.0/16.0), 1.0); + set_state_val(PART:"mins1", STATE_REL1, (5.0/16.0), 0.0); + set_state_val(PART:"mins1", STATE_REL2, (7.0/16.0), 1.0); + set_state_val(PART:"mins2", STATE_REL1, (7.0/16.0), 0.0); + set_state_val(PART:"mins2", STATE_REL2, (9.0/16.0), 1.0); + set_state_val(PART:"secs1", STATE_REL1, (10.0/16.0), 0.0); + set_state_val(PART:"secs1", STATE_REL2, (12.0/16.0), 1.0); + set_state_val(PART:"secs2", STATE_REL1, (12.0/16.0), 0.0); + set_state_val(PART:"secs2", STATE_REL2, (14.0/16.0), 1.0); + set_state_val(PART:"ampm", STATE_REL1, (14.0/16.0), 0.0); + set_state_val(PART:"ampm", STATE_REL2, (16.0/16.0), 1.0); + set_min_size(16 * 4, 16); + set_max_size(16 * 32, 128); + } + else if ((dosec) && (do24h)) { // sec + - + set_state_val(PART:"hours1", STATE_REL1, (0.0/14.0), 0.0); + set_state_val(PART:"hours1", STATE_REL2, (2.0/14.0), 1.0); + set_state_val(PART:"hours2", STATE_REL1, (2.0/14.0), 0.0); + set_state_val(PART:"hours2", STATE_REL2, (4.0/14.0), 1.0); + set_state_val(PART:"mins1", STATE_REL1, (5.0/14.0), 0.0); + set_state_val(PART:"mins1", STATE_REL2, (7.0/14.0), 1.0); + set_state_val(PART:"mins2", STATE_REL1, (7.0/14.0), 0.0); + set_state_val(PART:"mins2", STATE_REL2, (9.0/14.0), 1.0); + set_state_val(PART:"secs1", STATE_REL1, (10.0/14.0), 0.0); + set_state_val(PART:"secs1", STATE_REL2, (12.0/14.0), 1.0); + set_state_val(PART:"secs2", STATE_REL1, (12.0/14.0), 0.0); + set_state_val(PART:"secs2", STATE_REL2, (14.0/14.0), 1.0); + set_state_val(PART:"ampm", STATE_REL1, (0.0/1.0), 0.0); + set_state_val(PART:"ampm", STATE_REL2, (0.0/1.0), 1.0); + set_min_size(14 * 4, 16); + set_max_size(14 * 32, 128); + } + else if ((!dosec) && (!do24h)) { // - + ampm + set_state_val(PART:"hours1", STATE_REL1, (0.0/11.0), 0.0); + set_state_val(PART:"hours1", STATE_REL2, (2.0/11.0), 1.0); + set_state_val(PART:"hours2", STATE_REL1, (2.0/11.0), 0.0); + set_state_val(PART:"hours2", STATE_REL2, (4.0/11.0), 1.0); + set_state_val(PART:"mins1", STATE_REL1, (5.0/11.0), 0.0); + set_state_val(PART:"mins1", STATE_REL2, (7.0/11.0), 1.0); + set_state_val(PART:"mins2", STATE_REL1, (7.0/11.0), 0.0); + set_state_val(PART:"mins2", STATE_REL2, (9.0/11.0), 1.0); + set_state_val(PART:"secs1", STATE_REL1, (0.0/1.0), 0.0); + set_state_val(PART:"secs1", STATE_REL2, (0.0/1.0), 1.0); + set_state_val(PART:"secs2", STATE_REL1, (0.0/1.0), 0.0); + set_state_val(PART:"secs2", STATE_REL2, (0.0/1.0), 1.0); + set_state_val(PART:"ampm", STATE_REL1, (9.0/11.0), 0.0); + set_state_val(PART:"ampm", STATE_REL2, (11.0/11.0), 1.0); + set_min_size(11 * 4, 16); + set_max_size(11 * 32, 128); + } + else if ((!dosec) && (do24h)) { // - + - + set_state_val(PART:"hours1", STATE_REL1, (0.0/9.0), 0.0); + set_state_val(PART:"hours1", STATE_REL2, (2.0/9.0), 1.0); + set_state_val(PART:"hours2", STATE_REL1, (2.0/9.0), 0.0); + set_state_val(PART:"hours2", STATE_REL2, (4.0/9.0), 1.0); + set_state_val(PART:"mins1", STATE_REL1, (5.0/9.0), 0.0); + set_state_val(PART:"mins1", STATE_REL2, (7.0/9.0), 1.0); + set_state_val(PART:"mins2", STATE_REL1, (7.0/9.0), 0.0); + set_state_val(PART:"mins2", STATE_REL2, (9.0/9.0), 1.0); + set_state_val(PART:"secs1", STATE_REL1, (0.0/1.0), 0.0); + set_state_val(PART:"secs1", STATE_REL2, (0.0/1.0), 1.0); + set_state_val(PART:"secs2", STATE_REL1, (0.0/1.0), 0.0); + set_state_val(PART:"secs2", STATE_REL2, (0.0/1.0), 1.0); + set_state_val(PART:"ampm", STATE_REL1, (0.0/1.0), 0.0); + set_state_val(PART:"ampm", STATE_REL2, (0.0/1.0), 1.0); + set_min_size(9 * 4, 16); + set_max_size(9 * 32, 128); + } + set_state(PART:"hours1", "custom", 0.0); + set_state(PART:"hours2", "custom", 0.0); + set_state(PART:"mins1", "custom", 0.0); + set_state(PART:"mins2", "custom", 0.0); + set_state(PART:"secs1", "custom", 0.0); + set_state(PART:"secs2", "custom", 0.0); + set_state(PART:"ampm", "custom", 0.0); + emit("e,state,sizing,changed", ""); + } + } + parts { + part { name: "hclip"; type: RECT; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + } + } + part { name: "mclip"; type: RECT; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + } + } + part { name: "sclip"; type: RECT; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + } + } + part { name: "ampmclip"; type: RECT; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + } + } + part { name: "hours1"; type: RECT; + description { state: "default" 0.0; + visible: 0; + rel1.relative: (0/16) 0.0; + rel2.relative: (2/16) 1.0; + } + } + part { name: "hours2"; type: RECT; + description { state: "default" 0.0; + visible: 0; + rel1.relative: (2/16) 0.0; + rel2.relative: (4/16) 1.0; + } + } + part { name: "hcolon1"; + clip_to: "mclip"; + description { state: "default" 0.0; + rel1.to: "hours2"; + rel1.relative: 1.0 0.0; + rel1.offset: 1 1; + rel2.to: "mins1"; + rel2.relative: 0.0 1.0; + rel2.offset: 0 0; + image.normal: "O/flip_colon.png"; + min: 2 4; + aspect: 0.25 0.25; + aspect_preference: BOTH; + } + } + part { name: "hcolon2"; + clip_to: "mclip"; + description { state: "default" 0.0; + rel1.to: "hcolon1"; + rel1.offset: -1 -1; + rel2.to: "hcolon1"; + rel2.offset: -2 -2; + color: 0 0 0 255; + image.normal: "O/flip_colon.png"; + } + } + part { name: "mins1"; type: RECT; + description { state: "default" 0.0; + visible: 0; + rel1.relative: (5/16) 0.0; + rel2.relative: (7/16) 1.0; + } + } + part { name: "mins2"; type: RECT; + description { state: "default" 0.0; + visible: 0; + rel1.relative: (7/16) 0.0; + rel2.relative: (9/16) 1.0; + } + } + part { name: "mcolon1"; + clip_to: "sclip"; + description { state: "default" 0.0; + rel1.to: "mins2"; + rel1.relative: 1.0 0.0; + rel1.offset: 1 1; + rel2.to: "secs1"; + rel2.relative: 0.0 1.0; + rel2.offset: 0 0; + image.normal: "O/flip_colon.png"; + min: 2 4; + aspect: 0.25 0.25; + aspect_preference: BOTH; + } + } + part { name: "mcolon2"; + clip_to: "sclip"; + description { state: "default" 0.0; + rel1.to: "mcolon1"; + rel1.offset: -1 -1; + rel2.to: "mcolon1"; + rel2.offset: -2 -2; + color: 0 0 0 255; + image.normal: "O/flip_colon.png"; + } + } + part { name: "secs1"; type: RECT; + description { state: "default" 0.0; + visible: 0; + rel1.relative: (10/16) 0.0; + rel2.relative: (12/16) 1.0; + } + } + part { name: "secs2"; type: RECT; + description { state: "default" 0.0; + visible: 0; + rel1.relative: (12/16) 0.0; + rel2.relative: (14/16) 1.0; + } + } + part { name: "ampm"; type: RECT; + description { state: "default" 0.0; + visible: 0; + rel1.relative: (14/16) 0.0; + rel2.relative: (16/16) 1.0; + } + } + +#define DIGIT(nom, relto, clipto) \ + part { name: nom"base"; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel1.to: relto; \ + rel1.offset: 1 1; \ + rel2.to: relto; \ + rel2.offset: -2 -2; \ + min: 2 4; \ + aspect: 0.5 0.5; \ + aspect_preference: BOTH; \ + } \ + } \ + part { name: nom"shad"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.offset: -4 -4; \ + rel1.to: nom"base"; \ + rel2.offset: 3 3; \ + rel2.to: nom"base"; \ + image { \ + normal: "O/flip_base_shad.png"; \ + border: 8 8 8 8; \ + } \ + } \ + } \ + part { name: nom"b"; type: RECT; \ + description { state: "default" 0.0; \ + visible: 0; \ + rel1.to: nom"base"; \ + rel1.relative: 0.0 0.5; \ + rel2.to: nom"base"; \ + } \ + } \ + part { name: nom"t"; type: RECT; \ + description { state: "default" 0.0; \ + visible: 0; \ + rel1.to: nom"base"; \ + rel2.to: nom"base"; \ + rel2.relative: 1.0 0.5; \ + } \ + } \ + part { name: nom"bot0"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.to: nom"b"; \ + rel2.to: nom"b"; \ + image.normal: "O/flip_0b.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_0b.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_1b.png"; \ + } \ + description { state: "2" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_2b.png"; \ + } \ + description { state: "3" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_3b.png"; \ + } \ + description { state: "4" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_4b.png"; \ + } \ + description { state: "5" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_5b.png"; \ + } \ + description { state: "6" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_6b.png"; \ + } \ + description { state: "7" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_7b.png"; \ + } \ + description { state: "8" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_8b.png"; \ + } \ + description { state: "9" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_9b.png"; \ + } \ + } \ + part { name: nom"sh"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.to: nom"b"; \ + rel2.to: nom"b"; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_shad.png"; \ + } \ + description { state: "half" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 0.5; \ + } \ + description { state: "full" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + } \ + } \ + part { name: nom"bot"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.to: nom"b"; \ + rel2.to: nom"b"; \ + image.normal: "O/flip_0b.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_0b.png"; \ + } \ + description { state: "0h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_0b.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_1b.png"; \ + } \ + description { state: "1h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_1b.png"; \ + } \ + description { state: "2" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_2b.png"; \ + } \ + description { state: "2h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_2b.png"; \ + } \ + description { state: "3" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_3b.png"; \ + } \ + description { state: "3h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_3b.png"; \ + } \ + description { state: "4" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_4b.png"; \ + } \ + description { state: "4h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_4b.png"; \ + } \ + description { state: "5" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_5b.png"; \ + } \ + description { state: "5h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_5b.png"; \ + } \ + description { state: "6" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_6b.png"; \ + } \ + description { state: "6h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_6b.png"; \ + } \ + description { state: "7" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_7b.png"; \ + } \ + description { state: "7h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_7b.png"; \ + } \ + description { state: "8" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_8b.png"; \ + } \ + description { state: "8h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_8b.png"; \ + } \ + description { state: "9" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_9b.png"; \ + } \ + description { state: "9h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_9b.png"; \ + } \ + } \ + part { name: nom"top0"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.to: nom"t"; \ + rel2.to: nom"t"; \ + image.normal: "O/flip_0t.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_0t.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_1t.png"; \ + } \ + description { state: "2" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_2t.png"; \ + } \ + description { state: "3" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_3t.png"; \ + } \ + description { state: "4" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_4t.png"; \ + } \ + description { state: "5" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_5t.png"; \ + } \ + description { state: "6" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_6t.png"; \ + } \ + description { state: "7" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_7t.png"; \ + } \ + description { state: "8" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_8t.png"; \ + } \ + description { state: "9" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_9t.png"; \ + } \ + } \ + part { name: nom"top"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.to: nom"t"; \ + rel2.to: nom"t"; \ + image.normal: "O/flip_0t.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_0t.png"; \ + } \ + description { state: "0h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_0t.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_1t.png"; \ + } \ + description { state: "1h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_1t.png"; \ + } \ + description { state: "2" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_2t.png"; \ + } \ + description { state: "2h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_2t.png"; \ + } \ + description { state: "3" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_3t.png"; \ + } \ + description { state: "3h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_3t.png"; \ + } \ + description { state: "4" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_4t.png"; \ + } \ + description { state: "4h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_4t.png"; \ + } \ + description { state: "5" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_5t.png"; \ + } \ + description { state: "5h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_5t.png"; \ + } \ + description { state: "6" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_6t.png"; \ + } \ + description { state: "6h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_6t.png"; \ + } \ + description { state: "7" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_7t.png"; \ + } \ + description { state: "7h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_7t.png"; \ + } \ + description { state: "8" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_8t.png"; \ + } \ + description { state: "8h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_8t.png"; \ + } \ + description { state: "9" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_9t.png"; \ + } \ + description { state: "9h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_9t.png"; \ + } \ + } + + DIGIT("h1", "hours1", "hclip"); + DIGIT("h2", "hours2", "hclip"); + + DIGIT("m1", "mins1", "mclip"); + DIGIT("m2", "mins2", "mclip"); + + DIGIT("s1", "secs1", "sclip"); + DIGIT("s2", "secs2", "sclip"); + +#define DIGAP(nom, relto, clipto) \ + part { name: nom"base"; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel1.to: relto; \ + rel1.offset: 1 1; \ + rel2.to: relto; \ + rel2.offset: -2 -2; \ + min: 2 4; \ + aspect: 0.5 0.5; \ + aspect_preference: BOTH; \ + } \ + } \ + part { name: nom"shad"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.offset: -4 -4; \ + rel1.to: nom"base"; \ + rel2.offset: 3 3; \ + rel2.to: nom"base"; \ + image { \ + normal: "O/flip_base_shad.png"; \ + border: 8 8 8 8; \ + } \ + } \ + } \ + part { name: nom"b"; type: RECT; \ + description { state: "default" 0.0; \ + visible: 0; \ + rel1.to: nom"base"; \ + rel1.relative: 0.0 0.5; \ + rel2.to: nom"base"; \ + } \ + } \ + part { name: nom"t"; type: RECT; \ + description { state: "default" 0.0; \ + visible: 0; \ + rel1.to: nom"base"; \ + rel2.to: nom"base"; \ + rel2.relative: 1.0 0.5; \ + } \ + } \ + part { name: nom"bot0"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.to: nom"b"; \ + rel2.to: nom"b"; \ + image.normal: "O/flip_amb.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_amb.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_pmb.png"; \ + } \ + } \ + part { name: nom"sh"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.to: nom"b"; \ + rel2.to: nom"b"; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_shad.png"; \ + } \ + description { state: "half" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 0.5; \ + } \ + description { state: "full" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + } \ + } \ + part { name: nom"bot"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.to: nom"b"; \ + rel2.to: nom"b"; \ + image.normal: "O/flip_amb.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_amb.png"; \ + } \ + description { state: "0h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_amb.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "O/flip_pmb.png"; \ + } \ + description { state: "1h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "O/flip_pmb.png"; \ + } \ + } \ + part { name: nom"top0"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.to: nom"t"; \ + rel2.to: nom"t"; \ + image.normal: "O/flip_amt.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_amt.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "O/flip_pmt.png"; \ + } \ + } \ + part { name: nom"top"; \ + clip_to: clipto; \ + description { state: "default" 0.0; \ + rel1.to: nom"t"; \ + rel2.to: nom"t"; \ + image.normal: "O/flip_amt.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_amt.png"; \ + } \ + description { state: "0h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_amt.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "O/flip_pmt.png"; \ + } \ + description { state: "1h" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 255; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + image.normal: "O/flip_pmt.png"; \ + } \ + } + + DIGAP("ap", "ampm", "ampmclip"); + +/////////////////////////////////////////////////////////////////// + + part { name: "event"; type: RECT; + mouse_events: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + } + } + } + programs { + program { name: "init"; + signal: "load"; + source: ""; + script { + clock_cb(0); + } + } + program { name: "secon"; + signal: "e,state,seconds,on"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "secs1"; + after: "sec2"; + } + program { name: "sec2"; + script { + new tim; + + set_int(do_seconds, 1); + set_state(PART:"sclip", "default", 0.0); + eval_fields(); + tim = get_int(tick_timer); + if (tim) { + cancel_timer(tim); + set_int(tick_timer, 0); + } + clock_cb(0); + } + } + program { name: "secoff"; + signal: "e,state,seconds,off"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "secs1"; + after: "sec3"; + } + program { name: "sec3"; + script { + new tim; + + set_int(do_seconds, 0); + set_state(PART:"sclip", "hidden", 0.0); + eval_fields(); + tim = get_int(tick_timer); + if (tim) { + cancel_timer(tim); + set_int(tick_timer, 0); + } + clock_cb(0); + } + } + program { name: "24h"; + signal: "e,state,24h,on"; + source: "e"; + script { + new tim; + + set_int(do_24h, 1); + set_state(PART:"ampmclip", "hidden", 0.0); + eval_fields(); + tim = get_int(tick_timer); + if (tim) { + cancel_timer(tim); + set_int(tick_timer, 0); + } + clock_cb(0); + } + } + program { name: "12h"; + signal: "e,state,24h,off"; + source: "e"; + script { + new tim; + + set_int(do_24h, 0); + set_state(PART:"ampmclip", "default", 0.0); + eval_fields(); + tim = get_int(tick_timer); + if (tim) { + cancel_timer(tim); + set_int(tick_timer, 0); + } + clock_cb(0); + } + } + } + } + group { name: "e/modules/clock/main"; + images { + image: "O/clock_base.png" COMP; + image: "O/tacho_fg.png" COMP; + image: "O/ch-h1.png" COMP; + image: "O/ch-h2.png" COMP; + image: "O/ch-m1.png" COMP; + image: "O/ch-m2.png" COMP; + image: "O/ch-s1.png" COMP; + image: "O/ch-s2.png" COMP; + image: "O/ch-h1-2.png" COMP; + image: "O/ch-h2-2.png" COMP; + image: "O/ch-m1-2.png" COMP; + image: "O/ch-m2-2.png" COMP; + image: "O/ch-s1-2.png" COMP; + image: "O/ch-s2-2.png" COMP; + image: "O/ch-h1-3.png" COMP; + image: "O/ch-h2-3.png" COMP; + image: "O/ch-m1-3.png" COMP; + image: "O/ch-m2-3.png" COMP; + image: "O/ch-s1-3.png" COMP; + image: "O/ch-s2-3.png" COMP; + } + min: 16 16; + max: 128 128; + script { + public do_seconds, tick_timer; + + public clock_cb(val) { + new year, month, day, yearday, weekday, hour, minute; + new Float:second; + new v, dosec, tim; + new x, y, w, h; + + date(year, month, day, yearday, weekday, hour, minute, second); + get_geometry(PART:"hour", x, y, w, h); + dosec = get_int(do_seconds); + if (dosec) { + v = round(second); + tim = timer(1.0 - (second - v), "clock_cb", 1); + + custom_state(PART:"seconds", "default", 0.0); + set_state_val(PART:"seconds", STATE_MAP_ROT_Z, (v * 360.0) / 60.0); + if (h < 22) + set_state_val(PART:"seconds", STATE_IMAGE, IMAGE:"O/ch-s1-3.png"); + else if (h < 44) + set_state_val(PART:"seconds", STATE_IMAGE, IMAGE:"O/ch-s1-2.png"); + else + set_state_val(PART:"seconds", STATE_IMAGE, IMAGE:"O/ch-s1.png"); + set_state(PART:"seconds", "custom", 0.0); + + custom_state(PART:"seconds-sh", "default", 0.0); + set_state_val(PART:"seconds-sh", STATE_MAP_ROT_Z, (v * 360.0) / 60.0); + if (h < 22) + set_state_val(PART:"seconds-sh", STATE_IMAGE, IMAGE:"O/ch-s2-3.png"); + else if (h < 44) + set_state_val(PART:"seconds-sh", STATE_IMAGE, IMAGE:"O/ch-s2-2.png"); + else + set_state_val(PART:"seconds-sh", STATE_IMAGE, IMAGE:"O/ch-s2.png"); + set_state(PART:"seconds-sh", "custom", 0.0); + } + else { + tim = timer(60.0 - (second), "clock_cb", 1); + } + set_int(tick_timer, tim); + + custom_state(PART:"minutes", "default", 0.0); + set_state_val(PART:"minutes", STATE_MAP_ROT_Z, (float(minute) * 360.0) / 60.0); + if (h < 22) + set_state_val(PART:"minutes", STATE_IMAGE, IMAGE:"O/ch-m1-3.png"); + else if (h < 44) + set_state_val(PART:"minutes", STATE_IMAGE, IMAGE:"O/ch-m1-2.png"); + else + set_state_val(PART:"minutes", STATE_IMAGE, IMAGE:"O/ch-m1.png"); + set_state(PART:"minutes", "custom", 0.0); + + custom_state(PART:"minutes-sh", "default", 0.0); + set_state_val(PART:"minutes-sh", STATE_MAP_ROT_Z, (float(minute) * 360.0) / 60.0); + if (h < 22) + set_state_val(PART:"minutes-sh", STATE_IMAGE, IMAGE:"O/ch-m2-3.png"); + else if (h < 44) + set_state_val(PART:"minutes-sh", STATE_IMAGE, IMAGE:"O/ch-m2-2.png"); + else + set_state_val(PART:"minutes-sh", STATE_IMAGE, IMAGE:"O/ch-m2.png"); + set_state(PART:"minutes-sh", "custom", 0.0); + + custom_state(PART:"hour", "default", 0.0); + set_state_val(PART:"hour", STATE_MAP_ROT_Z, ((float(hour) + (float(minute) / 60.0)) * 360.0) / 12.0); + if (h < 22) + set_state_val(PART:"hour", STATE_IMAGE, IMAGE:"O/ch-h1-3.png"); + else if (h < 44) + set_state_val(PART:"hour", STATE_IMAGE, IMAGE:"O/ch-h1-2.png"); + else + set_state_val(PART:"hour", STATE_IMAGE, IMAGE:"O/ch-h1.png"); + set_state(PART:"hour", "custom", 0.0); + + custom_state(PART:"hour-sh", "default", 0.0); + set_state_val(PART:"hour-sh", STATE_MAP_ROT_Z, ((float(hour) + (float(minute) / 60.0)) * 360.0) / 12.0); + if (h < 22) + set_state_val(PART:"hour-sh", STATE_IMAGE, IMAGE:"O/ch-h2-3.png"); + else if (h < 44) + set_state_val(PART:"hour-sh", STATE_IMAGE, IMAGE:"O/ch-h2-2.png"); + else + set_state_val(PART:"hour-sh", STATE_IMAGE, IMAGE:"O/ch-h2.png"); + set_state(PART:"hour-sh", "custom", 0.0); + } + } + parts { + part { + name: "base"; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + image.normal: "O/clock_base.png"; + } + } + part { + name: "base2"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + visible: 0; + rel1 { + to: "base"; + relative: (2.0/128.0) (2.0/128.0); + } + rel2 { + to: "base"; + relative: (1.0+(2.0/128.0)) (1.0+(2.0/128.0)); + } + } + } + part { + name: "seconds-sh"; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { + to: "base2"; + relative: 0.3125 0.0; + } + rel2 { + to: "base2"; + relative: 0.6875 0.6875; + } + image.normal: "O/ch-s2.png"; + map { + on: 1; + rotation { + center: "base2"; + } + } + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "seconds"; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { + to: "base"; + relative: 0.3125 0.0; + } + rel2 { + to: "base"; + relative: 0.6875 0.6875; + } + image.normal: "O/ch-s1.png"; + map { + on: 1; + rotation { + center: "base"; + } + } + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "minutes-sh"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + to: "base2"; + relative: 0.3125 0.0; + } + rel2 { + to: "base2"; + relative: 0.6875 0.6875; + } + image.normal: "O/ch-m2.png"; + map { + on: 1; + rotation { + center: "base2"; + } + } + } + } + part { + name: "minutes"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + to: "base"; + relative: 0.3125 0.0; + } + rel2 { + to: "base"; + relative: 0.6875 0.6875; + } + image.normal: "O/ch-m1.png"; + map { + on: 1; + rotation { + center: "base"; + } + } + } + } + part { + name: "hour-sh"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + to: "base2"; + relative: 0.3125 0.0; + } + rel2 { + to: "base2"; + relative: 0.6875 0.6875; + } + image.normal: "O/ch-h2.png"; + map { + on: 1; + rotation { + center: "base2"; + } + } + } + } + part { + name: "hour"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + to: "base"; + relative: 0.3125 0.0; + } + rel2 { + to: "base"; + relative: 0.6875 0.6875; + } + image.normal: "O/ch-h1.png"; + map { + on: 1; + rotation { + center: "base"; + } + } + } + } + part { + name: "over"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1.to: "base"; + rel2.to: "base"; + image.normal: "O/tacho_fg.png"; + } + } + } + programs { + program { name: "init"; + signal: "load"; + source: ""; + script { + clock_cb(0); + } + } + program { name: "secon"; + signal: "e,state,seconds,on"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "seconds"; + target: "seconds-sh"; + after: "sec2"; + } + program { name: "sec2"; + script { + new tim; + + set_int(do_seconds, 1); + tim = get_int(tick_timer); + if (tim) { + cancel_timer(tim); + set_int(tick_timer, 0); + } + clock_cb(0); + } + } + program { name: "secoff"; + signal: "e,state,seconds,off"; + source: "e"; + action: STATE_SET "hidden" 0.0; + target: "seconds"; + target: "seconds-sh"; + after: "sec3"; + } + program { name: "sec3"; + script { + new tim; + + set_int(do_seconds, 0); + tim = get_int(tick_timer); + if (tim) { + cancel_timer(tim); + set_int(tick_timer, 0); + } + clock_cb(0); + } + } + } + } diff --git a/data/themes/img/O/ch-h1-2.png b/data/themes/img/O/ch-h1-2.png new file mode 100644 index 0000000000000000000000000000000000000000..779dbcbaf5986fa2b314308a1003655e72b46469 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^5MSxbRJn><|{Ln02p zo$AQdY#`#2zC`_ku*eErXtx8KkdrS xJ4H>^m5S4>o>*7hsB8JNslG^F#q*P_|LJuRt!`3jGl8yW@O1TaS?83{1OOJrc|8CC literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-h1-3.png b/data/themes/img/O/ch-h1-3.png new file mode 100644 index 0000000000000000000000000000000000000000..fc553584d1eea5151f869fca916f595982b925ae GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eQ!3HG1Sky`ZDaPU;cPEB*=VV?2Ic!PZ?k)`f zL2$v|<&%LToCO|{#S9F2yFi%n+P#h9Ktc8rPhVH|Tg)sh?A#fe^Zx>cVm)0PLo80e zo#@Eb;K1QpIwQHHA=2lx-_5B4U3xhsqVL#J!x@qT%GEmLxdY(s3Qe9fKX77WJIwAP!g`DX;Qh{4m< K&t;ucLK6TeVM{Uq literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-h1.png b/data/themes/img/O/ch-h1.png new file mode 100644 index 0000000000000000000000000000000000000000..25dd2688fb3feb4c6dda5ab178344d36be6bfb2f GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^20$Fa!3-o@s#}_X6k~CayA#8@b22Z19L@rd$YKVD zyj>v7cRTawdDaIEF|_zC9Qy)U3e6 zdcfT^P=K-WyM4Ct9EF)L<2Q3#JfBniZu>S~v*V1D3t}17wjNq$dZUL?T1ahT&jyc_ zCRa6Moq3k>5ha@rKT?gCsL`;ya9gu%MeF28JOQgkM5}riIpzoOyeMppdLp!N>JF8R zR6WV4^Gjy%Z?T%rxAtVJ)9M1v0BsRgwpJa3o%t5e{~Z+H|Auq=Kk4=zK<6=dy85}S Ib4q9e0Ghg}5dZ)H literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-h2-2.png b/data/themes/img/O/ch-h2-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ebdc0cebfc132c11f38e896689cf796fe645e0f3 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^5>^JUCvgCUY&=~YLo7}w zCrGd!<}z?J4CBmk;O*+Xwt(@dOZJ7PB%T9J&dq#!=O12L;F+cIHzgtAhiezF?P5)C bP6meVJIuGWuT{PSn#17f>gTe~DWM4f?=?6= literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-h2.png b/data/themes/img/O/ch-h2.png new file mode 100644 index 0000000000000000000000000000000000000000..9edee5795d104e00ce5bb5e24d9c699e8d980321 GIT binary patch literal 605 zcmeAS@N?(olHy`uVBq!ia0vp^20$Fa!3HEZFD=;sq!^2X+?^QKos)S9xaOVFi#|C3d^*Zg8>bP!jZkmp^exW#XdYhQxED?fADgFhV% zirJS~&Z_QrV?HL4++&DD%&!)V^+>*c^)6TCk#$4E0|Rm1*O_uVAjrZjNfV2HnR-^Etj z%YiqiQTXfjE?*}H#rOA_cDo#KN^aNWh+sN?s`g5ppX&i0i%YlTwYLT5lxVMQl35XW zYt1B)ER${WzjIx$gf8B`@50vLHC++!G}yDQuDi-txJYY3L-x?*xn zJjbdtJXp}+zx$q3maV^52JtKjoBNq-P1Wyt3;$j;N@sNMY}gcjN0Dh21LNBR;@ds8 ziA1hvxTW`AS*?oWbzRm8v+yD2W8XvXmtF1zlS;Ozr#zmg{rTCanIoC>gTe~DWM4f(@X*@ literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-m1-2.png b/data/themes/img/O/ch-m1-2.png new file mode 100644 index 0000000000000000000000000000000000000000..18f463a60135f5a10897c69ccc63544b9f4d9707 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^5(tE${KojEUi{g$;{JwP*ZH>(@&z+MdjpW<1Gw;NHpy%m(R)@)KVQ9M_tM>~xuc?wx3#s|%)1>{;bYF)`5Ne722WQ%mvv4FO#o_CjGq7i literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-m1-3.png b/data/themes/img/O/ch-m1-3.png new file mode 100644 index 0000000000000000000000000000000000000000..3a967e4f99e3c0d0026844951f7137f5a1624a3f GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eQ!3HG1Sky`ZDaPU;cPEB*=VV?2Ic!PZ?k)`f zL2$v|<&%LToCO|{#S9F2yFi%n+P#h9Ktc8rPhVH|Tg)sh>~gGMs>Ogpb)GJcAr_~v zPIBaOa^!KIT<3T}zp1OICZ-}L|21Qqop_%6%t($|p_vs^rg-dMe8JjJ8 zGW3+YmR#cXh{}nNI`)dUfaO^pLxfV&ecl`Um|johnfz8_XF$VUkG9!M-kz9#Zkzet tuMBcG?{H>5LgQu&X%Q~loCIFk+T)qGR literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-m1.png b/data/themes/img/O/ch-m1.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3dff499f2af8745a1912407aa9c9b4ab34cfd8 GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^20$Fa!3HEZFD=;sq!^2X+?^QKos)S9+m-mBH3+qJ=Cs--EoS4lfCZF5&+#>^nnMo`~Nzj%REU zaN;S;KTU+WeN_t9!dj z?QaPhF<7TH-W9S+NH}`;{5hG9KW?Y1dcL`L=CS)Q&16|rR%z6@!sZH#-iE)sFI2Ep zS-!9`k6&XQpkZwgu%++fPS&t9mKrAfu5ydF_AQZDob2G%*kNO`(!oV8t4Zv}yqKIy zR<+ptwAy~4%QNBcgO;qz+%`Mc^ekjnYdpi0{Cwd_)???KeGf3* zo-H0D*XYH^b=o;lIYh(ygVRJSxA(`)9;oeO$k471+Eo5v`KLD=Y-o$ wu%^{N<{jC-d%i|@y>b#aFciQ+QT&13L~;(Ft*6ObU{Eu7y85}Sb4q9e0BTLJP5=M^ literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-m2-2.png b/data/themes/img/O/ch-m2-2.png new file mode 100644 index 0000000000000000000000000000000000000000..13f26a75ee68704725ad0204e84d0d6cec63b34d GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^5%~k#Xcih7EeMjSzYR`R>JK!MR|q;zI&1!WuUl8&z5M5lZyMNB z!x?3=nBQeHZDM*N)gZVdxXdDfNi4OUX;(ah>;^Zcv;`+>`q;i)dXYBsed=3lt_dlh zJzXd0@SYcT3~WfsopSPGyI84>c(%P)pO)ULrtYn?_BO-_FSxwPg?W>ezopr01&jA_W%F@ literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-m2-3.png b/data/themes/img/O/ch-m2-3.png new file mode 100644 index 0000000000000000000000000000000000000000..fe0e8f0461dd2b4e1f8f5b790389965333f9b5f1 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eQ!3HG1Sky`ZDaPU;cPEB*=VV?2Ic!PZ?k)`f zL2$v|<&%LToCO|{#S9F2yFi%n+P#h9Ktc8rPhVH|Tg)sh>}tB-4tD^BygXeTLo7}w zCrIpT;O;VH5a#236yURk%~0bQgHAPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L0B*Vf0B*Vg*50uf00007bV*G`2igJ` z2sj0ynXqF300OE>L_t(|+U;6hYt=vyJ^Pi^E9n3KV?OxOqG+joP^7W9?ahr3ou$LD zkqR@q3v(cZY(lbU&zYG`vVgAQFMM zbbN1>jVu-5F)%R&Fk%eMRw>&u3$+M@Q3%u^e!~dl5eNiUg(pT}V$+JCSqrQcIE^8E#ifx^zag{&=<*>qYG7(#*4AW%k8AhEg7EapO~cLf4d zKoTe;SSYY};o50VU?>G<>bQ)7t_eh;z|>G6_DUeIcY!}y2%6Q{LV?UWTnQAbw=!)7 z>P&P`fy}PkdX9mKjX2nG_c0Ke0)^e5AFE~}Z30QeKyJi9>X|?gqn+4uip7*#I|ifz zX-5I{Y@x!oBx0cSZlSm{+SzJCmzDjWUO^yf)&flhqOcIp`Fri%#(K zS?G-C^$CtjXJ#mxFLJo z0r*7cZvlLz{X*Ann$l}m;{$+qc=^%&3&2m>pP;yA$YR+gugX>7YN-{t@90?3=3D!NRNLX2^PLWsFVs)4S@@Edow|g#RtGi(XQi zVQlOBtk6OJ!gNlF61Lc7&nK0vNV~|^eK@G-YF&|0tHAw2_LW5vPxfCt RbOh)^22WQ%mvv4FO#tZCVEq69 literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-s1-3.png b/data/themes/img/O/ch-s1-3.png new file mode 100644 index 0000000000000000000000000000000000000000..75ddbf5472c6449227e2f9325df7de7d95252bd5 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eQ!3HG1Sky`ZDaPU;cPEB*=VV?2Ic!PZ?k)`f zL2$v|<&%LToCO|{#S9F2yFi%n+P#h9Ktc8rPhVH|Tg)sh?D`>E)jB|-a8DP<5R22v z2@*Zi_}G-p!}I32gv5=FCk-D8h$JQ@2q;D|GrJgu@#@@Q`EP8%@wiBjo3F4g z$h5yJ3?vLEWE>85n|17q05e1BE3Tfm@3!^;tzhtU^>bP0l+XkK DRl7nK literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-s1.png b/data/themes/img/O/ch-s1.png new file mode 100644 index 0000000000000000000000000000000000000000..5ef6adc0a0eb5f04a7a2a08fefd35747c333461f GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^20$Fa!3HEZFD=;sq!^2X+?^QKos)S951*YFi6wBOUkF{I+w z+v|>8hYUnqFD~bpd!sQ|{PCkHBCj6(TURn^q6Wt^*L`=G8-v)tOgj zo51$G{LNY3VA)J&ztS5rRxBM1OdKbq4bu4|W-v1Cv-jG-UMFd=i}_BwI!t8`vY9{_t&JpC!BWcnG87+WB{~6Voex_+EN? z_W1VAB~ST#qdioY{JyL)Q`zg<%p0%fLEO-5%OLtmuG@QNZ8%84)78&qol`;+01{Jk Avj6}9 literal 0 HcmV?d00001 diff --git a/data/themes/img/O/ch-s2-2.png b/data/themes/img/O/ch-s2-2.png new file mode 100644 index 0000000000000000000000000000000000000000..bc4ee9e41929f79a71b1b6bee851cdbb177c7c5b GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^5{gcF=N|_OMS8k8hFF|_ zd&!!sA%Mr_;^XDQBCdCPT345=>K*hG$XRnleaYqz(F! zZ)bXY%Q%X(?q9dA?#v7U0oBHgGfE0S|Jy6AZjd%#cSj>-qHBj+O=`>&v$!uB-fyS2&2U~L9%$h5uv4H*B zfxVU=BvOm76jvu4ce%2ntd^5;^?@+n{Drd9x2h?zn_g%<$oXPXlt$D6Y3_ov8VAlh znFg~-JwG6|W;_M##x~a|9LaE ze+rnUcR*j&J^atC=d!zwa%JRv+{9nQaBt_MzkBmmGFc^v|6r1dzPR`;uPkGHBeQVG zG>rwfIOLh+8@KE6S07M+uy^MboxlUfzBSY_?{BdG_OI;qy~lSJ&JI3MB6N9o*iXhe z4EGy?A1vpLUedrW{Z#s2u4Wu#df1=x2Z!u#pRp`Hb5`Wpd9%-V7@i+k+By5{9-UVc z)<3Qcf5*6Eo6ecK8{dVNPZ21wQ-emyBhyMIA!bYYTV)qCfXRTt)78&qol`;+0KKsd AZ2$lO literal 0 HcmV?d00001 diff --git a/data/themes/img/O/clock_base.png b/data/themes/img/O/clock_base.png new file mode 100644 index 0000000000000000000000000000000000000000..79d76d7262e1744e7be13c97db9ed31af35b4ac3 GIT binary patch literal 4452 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 U`$L{*3HPl7=2$CCwTXM|e+P!eLjV8( literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_0t.png b/data/themes/img/O/flip_0t.png new file mode 100644 index 0000000000000000000000000000000000000000..72506aa1b10c716c2a6d26895c4bcfd851ae1c0f GIT binary patch literal 1547 zcmV+m2K4!fP)Pa1J-Um1BDdszU*{ix%g))Sv(~(fz0cO3qZTXX82^~xnsbgZ z=KTL<0FyjDJ^iY^{mt6i`s3^0)bD>1FlzGh^75DV*WYbyY(C+C4fsQY_owzN^X~2r z-z#or2x#EI!NCDr^lR^bF_=c)A6Hjb3LFOkXJ=<@U5WtrwUPHxjXVx|T2s?V{A{Jk z2L+E0o@vZ!y0jljRae^v{h_m~m zsiv?bL#o71VB}ZNWfFuSp@J@ z6efVEf`|k}wFXMSQ)?grJhcWAKva34Bt#WNBmvq;>PxBP&FxD|OR%!C0^8f$`fG1* z4=yh+;rjYoe_^Dg_7QDyYaaC>`e zyuZH}wZW}-c6J6mJv}fwItsJ1vv6~B!)@cOf}^7&#Ky)#YHBKEXJ><_r>B%X9%Xxb z`|k&EYHA7^8yjI{WCR``A9?&_Zi~-uq@|@nad9!k$Hz14i8lN$0GF4Sp|Y|P#>dA+ z{S?wmN=kx?iVBE~j1FGZVJna1D=BDlw zuD{em3b3W61@iLp03VzE(L~EOASWjW+S=MkT_Xe7)zt-MWo4i}kWA_zr7`raw6qj@ zdwa>u8nk59D4SMbgvA`}y*%}aiFaRLA0#9sNP$E<(g1gMc63LudU#Lb>go!Ulat`@ z?=S2&0+gD<&(F_LR8;it;32V#iwh_zDUn`sqyW~|*24V!yznRZe=E++%s_p8y_6fm zQ+RiG7h+;!NXs(q8$%!?BLgxsGxZ9>%gYNNYKG(EV_02Xh5r72{YAOfVlKC^umFC3 ze%v7SHBkGq38RQZ`T6;JXQ%{sRvH=_AS5KjtVzu2aOz>FsU#~aOQ>SP+FJ3acm+3EWdp$5YYq<&!~Xt0uN(X$u&Jp@ z-zBDyxVSjLZ6{HY)qi_ktWrdFj=0W5FxYf5(9lpSa}X95256H?So_KqM6mFt65K+ z{eMcESd}0|7GVk^JW+||qTb%#EX}yuP}^KzU$=OD<{(0SK>jUm0P^tgu-IXq2CRK% zn!*PM2Rzrd*w)?M-C`Tw2GllL`^*IJZF5^8X)U8yE9E;>RW&*wz0mZPko;> xYoD0_vS#J1LyEHSf4wHPO;UiY#(qYCe*;S|O!Eakt z5%>0{p&wHqgKOYSHm|Y;+C{nR4)N|#%w4OY$WpRzFXuC#q!K+**6)vHtLF({QyHC!)GxG1+Ij9Ow2BfXQI&+OYhyd?}=~Wo@qxv&A&6}y>ibRMnW2&|3CKN z_y3=J`VIbZF_UR6k#3y7?)q!%c^hxl-0+=#`f24>rizD$^NMZc-fzGCR(syoQ-4aV zY<+g$eV1GJX@?i%ju(k$Z}#nLeXg$W{JF-?{@~32cCz)K+b(X9N_*U7&p4OKdBT<{ Shh_j{g~8L+&t;ucLK6TFnXCo? literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_1t.png b/data/themes/img/O/flip_1t.png new file mode 100644 index 0000000000000000000000000000000000000000..6c1fba8f0e3a5682079858f86fed8e26b809325f GIT binary patch literal 666 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 literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_3b.png b/data/themes/img/O/flip_3b.png new file mode 100644 index 0000000000000000000000000000000000000000..2eca7d4f24ab432324c846402e3e49c1ea0f98ba GIT binary patch literal 1408 zcmbu9`#%#30L6zH#ymE}#5^K3H$D_Ck48&lmyP5t^IWmQ$UN#c@3~{i^pVjFxi>0J z-qM(ftch;r8F`gkmphNh<>KmZxaadZ=ljb!zn)xz`#A_04h8@K5Em@QbDxACmIv)8 zQ*HI}K7jE~E?)Bcx-K712LNPkTriGaNf(#O0!$l&)cZ#A)+*>aIf@GybcRo9w<%M3?nXVABA z-)IbmqIM;R?1+|Ou~-CeZ_wc2V7TN8RNu3d!^vJMot&ien9SNXBRzE3ty@fHk?;zU*j0&sk1;YbDkv*^ zWWCrjn1zx9fj~~t(a40v#B>%57SD}J-`GfOG6*Gc>%Y&<%@I63rOV69HD#~3W(JF9 zW(-=}+bze`O=R+`L?Tf-n+^XB{T|fW(b3i2ojz_6r!phqj0_K_7Z)Fh@A?eH;c()O zOffnSS{zbcT`iU>g^|f*iwT&fzB9X|r2ilfCFt*0Xt1x4a>igR{3Y7d z)YOmmbQHZw0aD=OCQ*dfUH2^=0>oUs>N|JBmb0#>ny&zfC6RKFXeyN&nd&6da}+!n z*^j#5OKYWcfgyvMaJY!fR3QHHi-VcDxfQ-Li`&+wUH9Zk8(UdXF|4@{sH#{tHa12G z3{+w;7-H56l$g(}smU#F3r^%6dpUj=T>BB>(c9bW6cJ%ejEwRKwbT%gj%s;%d6`}y za|YhLQR97nnPO}r^)DD82=xxlJ>uZNnXvK+L;Lvn42_P;2L%OjUsRFpo^EY#mvq98 z0rE-fD=TRqJ_KU%_?-Lq4^du(M?{=G@+C~bq7G|sPmYYpp-`xsh-s=yw@_$s^r-6> zfj}@Vk*M(beA@RwUyu5RhK!t?oZy|!O|9mZmOBooPpgnfB(Y;Xm^c2sy&arl|JK;C zBs&%K^i&LFZl#exAP{dO7hnFw?oBycQ&XcU6h0us_3P~X{r#~Y>jtD7TUv6Oo2{4E z)>r^P1^o^tQyGiHh27b;p89M#G%x^ZfA-A4-29f33S>0C-jJ?lra8?=cQnnuCmYJF zT!c}pUyH@DStOV?{UKv(D}|nyH-9H#uR)k#l&>*eQDLB^rJb} zGViM^SnPSM79AbUXoUhS&9qqCR0^t~ z`pHtp7;Pw385qe0Vh^EzSZ7Uw(nXN78ylTepU}w>a>u5XKQPV(3zTN%r-V{=86mM zQ8cVO{>eQK=^WYY^FP?=e0sSoC$B)m@(f~6#%-;msUnHrw124pm$UAeIwxZKfAjN# AiU0rr literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_3t.png b/data/themes/img/O/flip_3t.png new file mode 100644 index 0000000000000000000000000000000000000000..4de9804623b7ea0e7d8304f776b87bc2a734976c GIT binary patch literal 1444 zcmV;V1zY-wP)t1f}@Ci83=YQt}## znTd)2z(kSPi1G?~6vgMuV}RuS{Px=2`_K0ee`l|K`aAAkwVm5_);@dx?%r$dwe~s3 z1ZH`BeEf@jY_+wu^|O4Zj{hg{!sPk+`Cs;Jhn<~WAO6>be;B+Gb||^My~WRp+Xn;~ zIB;@u!ZUub&!r~w$m_klyj0*c5O8&M#k2oLfd8zrQ~;Ha0?ieLWv7vV{Y@zP^6BzrWX9w-EqZIu#HQ0PXGVP*hZ;xt|{?p!u+h zWz7EmKGfFMLQ_){pskiERsqlgY-nhR+r`t8;OjMk3)ZdKM5dTNHe4Q^6>DWxgsNZ;rBY{=H>mV9D=;=T#uE;D3MM;n8Yd1pWb=-~0TUNSK;Ap{WFkw+kVZvbRwW%vVI1{f6;#i5m#mxGUwk8lG%t5{lE3ZbE) zP+VLreOhC_QdCUL?z|Z3tsSGIqflL4E!y8V^*lX2VRv^|bDcOt4CjRl3JQMONXs@UMyu z4GpBdV-w4X;d?=)HAv5jFj~mX&E>a;$PkR%agRhae#bn3VMZWkOfYF73m*Oe-QC^7 z@GL)|)O41NQSrJCjL~OjXQ8XB3ub0!q*h;9SqUX2C8Ro~q_apZV9L0r!_97XhXl{E z?Ck9Dzv>gGRnXVhM{*pmuc+V|S= zC7cKa(p$PXMcdliAS5J2cGYjzXJWVD>iQn!KjB0$JS!|LK31Us0000Eakt z5%>1a{&k9pGRHnnZ|mrAQk)nezDVF#F|$VR(?5$DHewxnq4cD7~ zcISGzj>v5v9v1A#xqCDzF)Dmx#GahHC04no{?>l-&Uu)(J^R>aj>8WH9^PH^kMrPx z=!&gTJIi+G&I?+6v0$p#(K*%A92V&Ax&JRbTR1FWdsbxme7}Q^``)a##kFDn(F5dm|1N+PDt*^fSUic_>_dVtRb<^4GiX0Q;e@8_#+aGJO-54(E-|)eY zE1)5O;n-CNMkhvzaAsBx)`S>d5e1QkLQ|*&hs29qo;_|FA3gT+^SHk8WV%a~v4F?T|$5{&)7Bcj#ZiGlU9avr|&3wIb`wl6NOjaxkaO$K;;^XC) zU%2}OZ|>OMJ-=T3e{~A$gF|~`b9UdY^HvdhU$DmGSo!W)&3Qg*_4DlaxCSxk+?rjv z`}Fn?KM(V-ul#rLt)0Z@r;Gp9&oloNcJGY-5B{~9tIQ;i*CqhdB!j1`pUXO@geCw^ CNs4+>rGG)6c2)rPqF(gd?h}Rpa`NU3VY0= zB7!1Bu9{GhMSI@n^)ePYRC)FFWl4vWqyT z(dDXe4aBsFF&3rakpQxbc+{#aOF#iKhk^oBfJ_2Rxta(ApqdB+UQViWAQPejRDetZ zOu3o}1E87+1D=|Q06Yw#Cc*@%0J#8lJIgykH4*RZek-+vnGhAA0%Q_k$lWoC^L!ASe1a%q10H}8&40yVoB>+!dSOB7$2m_+dfed&$2MWN`IZyzi zt^=76)kL@enfebcR~Htz{851zzJxeGKZpAIdbqf_5RWezGqfhs+1cp}Jn5?uN)uUJ zT!f{iCFxwngL@5lc6J604Gq4IKB*EeDk=)!j&w&yhp+IwUf6%> zLNy02EG)qC^0IV}zQzkp37?*xLSthiTwY%KnlJ_zE#a_yE{vsX1D@p73C%)!etsTS zR#qf)vlh#_y}ivmKR;W0!M|T9old)@dv$eX?LA19aA9F#@GcyS#jL`UzDj|*@Z8)S ztgfy~=VUdWV-B0h1o1EbsZ)FtgIyKYzurf5iH%-)>bed8<6sC$_;Oe&~@=KpPIOd93CFR@bEC1 zL3ejIR99D%bwLWmO$1A~rKJV%G+;`@Ij^Uuhaw40U(piA65QV2CMAb%i>`|c=X`8p z01plhU}R*3%mCMWxbDl>CIT>5x{r^KBn}l770}z;OVWg`vxtc#lS$aw*&*eIhX-Tn z78e(jbYbc&Vj}zd`!G5>O3tgjy&Z73CEpvXgkN7@UDu_4Jr4KxaG&ozG!{TC-QC?? z5{F#rW)JiyX~WprGr+yQJs2AsBj?oI-0Xh$`MtDXJm;5nykvVu00000NkvXXu0mjf DlXnSa literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_5b.png b/data/themes/img/O/flip_5b.png new file mode 100644 index 0000000000000000000000000000000000000000..8d9312a12836b65aec6f6eb6aad1d60b32fb70e2 GIT binary patch literal 1490 zcmbtU`#aMM9RAMCozRfm?64N`xDBH^TEhuRqTKCr+QT_WnY++(f!F{yNftbWZzJ2O z)%6)}%UeuQQ1$!N%e}#SQh(f+Gc^zh1WM)f{o;*{oS7M-wY4Js9YPIUr2B;24B6rwjq%a;^MBGc|I{G(COg@Fqj$y0?1=% z!>es=cJTG5JCC$2iiu9jm+TkR`jTcOl0*en)vL9&#(`mBXOo;Q6ZesDI9Nb3+qxhJ z0*i!#U2P<0>Le1W?#$$X@}c2^a9aGv1&f8-+iR7Tl>v>&)YMe3 ze3#j=F~2{~pD&-J>+9?DQxhOksnjPdteGjjK2;%;_C(Lz++5KZ+lM^te>yZY6vzjK zhll$%uC=xnb?1o+zdd_);v+Xuw!gpM8ig{kFAp4e3?hY1T$;Q|rD9W3I%~}mU<3>X zP*G7aU1}~_>bd59OD>PKmO1Y4dCoHe^ufF71)>bE&sgH(Gn#)y4j&cW(^};G{{77k~7Me5(G^ot~bCL$$RtJEE8S79TSh zjFFKMZm6k`yq!31`p($fw;>ObM_#@JO-)UWn%_hga=92&OG|3U;=woDO)(bNK+e?w zv8bTH{q@YwPDUUO=bx0pOx*0sEvGNP=eR^iTLipsahjD`NfPDcaxqNbbyzEyR5%giK{?sU#)zV_clEkKrrK2f->oCoBXv;nH zhZj!<pf~;-M$ zy-t3O*J6LEpwXfqWNi8!P*l(SEqu_sOSv&)Q~%F~oz-5vY_$>Y+V~MtR#S09%2M%eNdq2k-mXk6A@e^4G`bZ4 literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_5t.png b/data/themes/img/O/flip_5t.png new file mode 100644 index 0000000000000000000000000000000000000000..df439296c17c5c79b2ae7517333edc2e4fce22fd GIT binary patch literal 824 zcmV-81IPS{P)8_u>ve6O{T2>~f9QV$`pe+`G@DPS(@7uG?F|6~C(&qB_xNQVe-5~3 z-uJ`dK)5Fa;_$3D;kBFBLsB0~fP1nYfW&J?!r@rRLP zBoYav{J*H(Znx0;V2D6`=9>we()TXNKG3_}y^@zOh)6&Jf&ySULj(Y1hyZw;&a!~V z=`0I~Okog_Ap!t0L;yU7hy^@71T>w6z6W$F34MJV^$ZbEks$&AGDHA8hKL0`-icU1 zWQc%>3=sg3Ap+nrL@eOF`<;lsf#q^31vXtQc23? zvQ(>8$>;Of0UxY33ouGxx7+FBv=5fN-VFux^r8G@9A2uAl=AW z&Xky1QdX>SSPqr&7_mDzNykVUy{TrRh3aP>`_Pk1&v#9B*sRm-G{@dpQ!O%_-G}{3^oA^`W(31G2H=b817K@L&x~AXO z*DLlup)~S?(NIy5NhA_eEr>ooi}NqDm z*85r1P+N=kr%)ocYGwXNOsxIQIdy)19fjHf1EcbCay8Fg z@L8P7zJ-N-qML;&_R&)z594mISggQ`$DXBQy}fCn^mrLP!gww8N3v6C z11wB#%_;*sJ`M=2jC&Ni*{h6as^0-=NROjwqL)YBbHlo0>GWy0&eqkHmHtr`nP&Qy zo#-AiFd$&=g&(AVg2;>G$V$F_(oPgU#hdVwsv3hyScduidZMIX-*=+PB$m! z1*IV2``TVWnUP(qlA8B00|QGwaK1dq#>S?eC+Dfzk2Al-^}pKHfZ4zQMI`44$nH9U z(gwXB)D)i$@=5^meFI4(qv^<|4hGnY-BM%!r1BJ%s(ezJW;kVIZ5`zpf$HOU6_wZ3 z4e`kV0eT=H@LtX~X6>hR3r{Hngl$%`*@SY0YgmE|`}E@KD#zH1m67&|E5w4sE8NiX z8ami3l6zHweSMc>PpC2462qYF;;*2~Mw%3E-h08`|2dEXRlma{ekX>4j* z?6|JjS#Ut5eK0xpV}GGzs9PW``}voK{uM=v4ct9L-e|G z!Vix=mPU*nD7DcTtZ6zyCSMePpM5wqIe7+RaNwz&VOGqE(&FN`y7P~Ys3t$-tX;|11%oU2{NZ6a^4>(O`O?yoiKAmcDev#2f7$kylUHY2 zN|u(+JYccxa#1a}rZLU5y9EWzKKfisHgOzGq$4Q~%RMmT+++f$11OI23SI6AE{>EAC_s#`+nbN~d}&vD d+78tJ37$uGMt1RxCwE>1;O^{6sKSR_`xp2r0nq>e literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_6t.png b/data/themes/img/O/flip_6t.png new file mode 100644 index 0000000000000000000000000000000000000000..3cc4061fcee219b45f1912c207d53eeb8e0d07e7 GIT binary patch literal 1569 zcmV++2HyFJP)~BaIVPN+1a}CYo(QyRW1H&z#j$P-^#}y z2L}iEF1g)6KmkW~c6Qj~ALV2~Gn6M@L8O{U-pfDlN}Twmc2=lwB`c z;+lmbo)Vrmco$)hz|O*;h<0_U!4ilf7D{4~G;|UGI}4q zOd=crWfI|lcd064ASXl#Py*y6z^N{i2nRr!L^$BdBq9JFOvog{2~q;&1t`l|`U%P; zqMzM&O?eA*LX-d{Ku!W2>MRDzB*H;Z_5=Cg$&NHXKRFWNWhi4HCqdbb;Q%N{A{_8! zIZFUMnS}*Flu3jGqKttY@MH`W08hq10T5+BkQ1UzBAfuNIQ50AZ*FeV*w`2?E-upY z@-o{#eE2|Lzka1JU%s%<A2C^+O zGLk|=LrHleORb4(_p`ONH66f#fdOi5ZKXGF-q2k?iHV7jD zsJ6D2PESwoBL^;@j0zA5AuTP9=I7_RoV?G+UG+_P5@~O5r~LeUQl9KKCl0!N6<*FlpDrgS=eK}&NnBVAoSvSh?Ck6ZnQ3oo zoZ*Pxn`}_N} zva&+B8)jx^*tWiomuwhM49Yn4oad2$B#o@BEa4sk5L$I+W+wUh`RTTg>P~-uKlSwV z(7Si<{pzZB#-6wce5!I92+*~RyE+$u3S7CNx2n}U$aFE*C z+I}ixm<(W1Q4uvXGzdFM)bkn}8!0+ETA0o2456<0`t@sSYHA{M`t=A`3tU}YWig58 z_W#jo)a*JsI#@B(Tm%4hCy|<(8e#Cfy}hZkvy3?E8nn2*JB4O|FRX3!DG5{~fja0(6%W>uQI5={Ux zw<|(|f`WcAv$3&3FJ8PLRCiE@x=8>L+sBU|f9Vk*uExj5Q*v@LAxt z5tSUo!Dr8&83o+c<74$%b#*nx#>TRxb0S4Gz_qnCVaLU71&DVo7=9)tB~e{nov=fz z28arbC^6-nF+xR2NeK%dYGVIw=d5}pf-L!v1mOb^c|_Al1pTmwCeNQgClrQxMD;C< z38aT8$j+Fx(<`b0KGaEb+=f_Dv9q(Ii=k?Ord)`w>&!GLAv~3rmut}YZ`XeTzLtU| T`*M`o00000NkvXXu0mjfk5$>U literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_7b.png b/data/themes/img/O/flip_7b.png new file mode 100644 index 0000000000000000000000000000000000000000..9afc419821ea62281fe80f94eb40e7c19998ae9b GIT binary patch literal 1110 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 N0Nl;TmF0Yn^dDJ`AyfbW literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_8t.png b/data/themes/img/O/flip_8t.png new file mode 100644 index 0000000000000000000000000000000000000000..718e484ec3f60b16f320d9d289ebeba0619f1e48 GIT binary patch literal 1719 zcmV;o21xmdP)B3I!88r=p%Q!$H7l}5m0m(o zND-eSy!3R$mwXeX@GfGZq7RCuc0q+OZ>SuPX5_WZQpxlEhyBSprwe;7yEJCO*WTEy znKi#Xv)0U-@B1udm94F9Q2H$ z){!{lV8|aD9v?ib+as`Zuo%Lxt~FQyF~q?LESiQO0kCrr)YWQM0ve#?P|yH1KuH3U z>N0MtQ50-mX=eV`;n4NwD=Bp|7-gNOt`9YiGH=^&y29;(nmL=vP1C<{=hv&0GN zAR^9gM^jH>Nr)Pt1}I5DLY?_Q9YiDu>UE$TJiU;X=cjifvJABklq9H^F%kgvPDBEp zPG>2Ar=zd}h&qT!K-4}^0-pAP3gBrUr~sl~2TDTJK|~Uulcc_o`oh8j4Gj&^`1m+Y zPfxS!-Me?RxVT75OG||3RW>#@*o8>9Z{I$4;rWb1hYr!+9Q}KYtdj!zR5qZ{AQxM+ddHw^LtVAI;3n*rdl>=;+a- z6d4&w7cX925hVcE z*4F6y_3PB#-7RCwPuGo#ilVBjDsp#s7j7E>r54igcUP}o-E;6j?CH~|bmhtwGF+H2 zKqyK9ymRLcGi0yIvuDpJJ3Cv-eBqr4mME2#l~RrG24zfRTq432(uNP)MiAf;4Eyl# zaGIT+7&?gZQ8i5#n*vI}(g8lT1 z7caQFgb~P{OnCL`mEGVWF_4;?O6Sj?r;{g7lBcI98E+9`35KbuDeCR*Wn077uU~U@ z)Rw{%6BC5KojG&Hmf|~QoOt)BND8Qy0|yRJQBe`yym=Fk(SKDvd=xH#MbxaXuVwXqc74o z?kS8z9aSQeN-}Lg6jvoUtl|}Jfd2mK-j27ry2@+sSLIdIVOAD2M5{hB0Pe`2X_!b13o@JbocIEp0>VQ z78w;J1(2q)B{PIFwY9ZOM^!fF-o1O=@XQWb3?uMzS|J$Mu3e+Hwl*Q%Zz%-@1?}Vm zku1Q%7QZqwE|Zg!EFbvr;X@i38Bx|I4%tzsh~V9oQUKq-f6wka>F@6sY5$k&ARrjv9ZxsRVC$OV`B*^e;gaw3m)sI>M4v$hlhu$w6v537c6yt zr66C3bC=A_Ozz!|Ep{sfh=b{pk`gv$cbi}oCMG6QUS1xBgoG$F?;o3sibz_!9hk1m%Y9w1;GtXgOAt^-in9SpJ z3zf{Pd94WZm?RXrYEfM_Q?r`#SIJWx`cp&8M>F~tH#>Npo-*GJc0Z|u)s#~ar z(C1DW8C5)edb|EawK9KZ#w~RaEFT*h7DjvUK&}3Dp+Cc0**OqGFN-3RZLnCVGqtmW zb?@F$Plhj$&0tj2)=J&Id$$gKCnQ+-K;z5%7a0|g9%T(|+U4iw z$`Oe~SK;W&lQa;kp+TL)<;o5q%%jQV4_jNxI2>+XBtjsO$a$dWK3zz7_*tDFf2~8xE$p*&8wq_wu{uvk; za7s8VO9~1Ci&uCD^2^7=)s?+u*CMAdY*9K>T2^K#yHnLaIjO|s@$T$sn}E#F=oGe1 zcxq~@(>K?L{V-oVKJCYkC`xQ>Aad)u{Bjwe&!1mf>Rob-fK#HPz}3~&*7K?@8yk@! zl*}P^PmfLi>(^e~HQ8yNN~PiSq;x}XPtS<1 z#XB^+z7vCf`E*U04TB{lx$*RVqk8Lf+1hko&j2Z4u`p)e9ev-HNU%J#hbk z1?JnWD@0;SNeMi=XRO`P6pcoZF3T>*%!H#Opo=df;^WWt_VtBj@jG`7nlL1$v6-1; z$j>dFgxmuk@s|aLRdtvp*bX$rf66~^9q1k-;fG$KQ_@_@09Dl zC3Ut=F}wh9z!aX=DlQpo*3Ru6_9bjaROYsh&5D zUtt}ahSytUn%1|1O{H?yU>?_o_9{i2+cr4A7#;6jGOe|8b#dFS{y242Ln6oO#Hk>= z@@{db$}KKd`X!ei3I6%qalJg9k$1$Xhq5QZ5288*EP)4t548{ zy3nNy3knv3pa^1CBA>nDLczoWVu%tG#6m1suwd`soWU1R%=4D>@^t7gTN8+l5 zX6_0eAH2I^50IUOK{I}L<)J4K%`CLUqG$*bKz0^_zRK;6fC4CaC@6pmpd~B_S$+3ZNtb33q)AR7pgFpsEAq;Hg4do}aoBk!7gHKuLnCjFAASu0$l@sp%{N zcq$7MKvYRY0-_oNCE%$skN}<<0|_9iI#3d#N+OZ~tt9=0+;?|(VPyuH1_%gYO1zkUsG-n;=jJ3FENshlti z8%|G8Z_m%qsWcze!HzzC`UC?51JK{!4?lkVknYdg+8Tm_f*>j?3Q|*3!QI_mT9a46 z#>U3H0C#qFprxe+nwpwmWo3moKIZoLpg~wz7-VN>LwtNZv!853vjN0YvAVh%K79D_ z>vWV2meoHXAOMPris0?rx2!J0?R0?JcyoJkaUm@7(6P0(74q}*VQ+7bOjATCAt3>( zs;a=**;&M$$>+t37jys-SWZq3baizxb^a$BxwyDMU0oeSM@O5bI|N8l2QDluKtx2u zUj+||;TW8ro(}c(^=1KxqS64Trl$1q2FsDZ(Xaw2C@6s9;$pLeCk61!moJc#k^=kt z`(_D_QnaR~21-gwC?$0*;VTg=OOlh5_2T!rSb2FlG&VMpg{v3R$H&LFmzS4ZqF8w2 zz>HTC&&{xA?C$P{kdP4R(6N{oI)$;$dXDgr7#=n6-@hjtcDMmfPftTbLxc3*`#%Nn z+B+{Vk0b=HQyBMNcz8JZ(dXvo23Yvwuz-^VFJHdYH*R}-8Th}%;>*;`$h&21E{E|;D(2OadC0FFO^|^C}Ye3+uGV>`nl&D92~44MWTkj zI2TA^-@ku{;o)InDQ1A}?d`&yJajB9EW|fn2%d{4Hc)G~I4 ztHgMW=@fqT>J^Ws$+jW`_3s2{XJ^UcG74>NZEqBgSt z3=9k;ixUGJ9UYa{Lk-@IW$BbxlPQVd1SqAImX=D(QD{6C1kXYN<|Km4YjN(4%CO@9 z`0=B#9Quxrj|=;oa^zjD%QOaJhlz=aqygidxS^pTZq32LLH#bCxr}$MBs0LYv^1${ z_=g*efo5iA0A-Yc!_LA2h=IEj+7h{{xZ7ftlQL70(Y)*K0-AbW|YuPgfvP9b&$sTBfDw}3*DC9V-A&iT2y zsd*&~&PAz-C8;S2<(VZJ3hti10pX2&;tUMTa-J@ZAr-gY-thNUN|a&$u>SGEfS3BL zyVXAnXzkv|tEy64q0R?i zzJyq$WoL6+TU+OUd;9)<_}b9bp$ra7gBs62cU~Lzd%2yxJ-=&U+}ef9m$PruNlr*u z@K$b-$J(}Y)>i#|Y zS|yiRjEnWoojV-ae#?aqCIm!qvoIA{$Q+8=8FTFBP02H-jvZ_J&@7&7ba8JitBr+4 zz}i+P#T#$S63^ysR~F%toE4s5V<*3C*|K|k@~f((;?`fEGH+VhxdT~SyEbk#w6V88 z{N_fESxkI<_B_X`bIT`B7S_?%&;Dj(W8KGAQv@9gvM zzaM^DwDMZ4o_Jb%y66t? zFF$|c`R5<^yBh6UtEQ%AU}Ljp_00kk5I^wycXi6<$g7RT#l>w>S-q#z zHm?ZLn$K)7)obC!jEsN34WvIjeagBrtb$HZ*c zZ=S&yr)I#SqQJ;`LSRAzkm2mWBs8Ichmq3*#83oEcsR6yBp4+@5-cekq)3$Utk5{c zEZO54IE8&>h}PW6ha$X|UfTKf<;$1f4;?zhU-aVqw{PG48GcOjQ27?svra{*)0W{r z;{)!7j|CQcqIATHmjs@F{P^*DU;uNsA70IHjIrh~^S(I0Z|s+r>;Yyc22WQ%mvv4F FO#q#UmID9) literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_amt.png b/data/themes/img/O/flip_amt.png new file mode 100644 index 0000000000000000000000000000000000000000..bc6a7154c143b96d5191c3f361cf5c5e0374710d GIT binary patch literal 1075 zcmV-31kC%1P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOS` z2OcM}y;ZgV000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000AyNklf(1$G3k_$s}8|J zOEE%-f{;QGA>u^XxrP*@W-`XanOp5;_s+!poejI3)8%=e%!D7$dC&U>07L*DRaL(f z3Wcv0RaT~HnuS8)tE#GB0C)h10)Vckr>DQWy1HgxUtduwl|Yr3BuVgiJkWLhxUaA8 zvv7BJ_s8(?@L#!Hj&y2JcXv0^>GYq1VHp3szrTOt&5MhYW!URZw6hnj|LJJchMSu(u zh6pW85g-BnLVF-XgcC@B1jvIl#R=q1gcC@B6hnl2AT3OQ6ag|sIDt%IiW5kH3=!^u z6fI1E1jrDf7$USV0TLj^5MhYW!URYWAVY*9LJLy_NPrBH-y%e$MjsN7$1yuQTe0u> z_!!gE({;V0zrVj?kKgad_V#v7&s|+zMI;ib*r#cldluf^-L0x`Z*R}lX^>?ZnM|hY z{>R5h$gRt^q6-iwK26Rrd#jK@^L{)&h)1qtJD|s@_~KhiEkF z>J)}TA-ui4RqQJi3N^uYEktUyrQ0^nWHMDb;^5!_*=)A8Ht-iFh^m9YxqqCpi?*{-ZFE2NIcC1EgYiqVzsZ>HR7_`-Qc6MNzW>wFq z)`^0qX*Cgid3k})=YwGwW%nSj*9%2aFg`x+*wfkBiQC&-^z`&Jd=t?$4Kp({NF)+J z)CUFzaD9D^j*bohKt7+x*w~ouRxvd-g_Dz$itlKeg%1x8%fg$On1I*o1pthUj9_wd z(y`AljHcWIzG;1Z-B!zHv)JF?|L=1o5^)4k@ATCT@FV;E-?rcE?6!^P=H@UsIB2VX ze>ZjtkD;L<%+JsNJbB{klO$N002ovPDHLkV1kV6=qvyL literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_b.png b/data/themes/img/O/flip_b.png new file mode 100644 index 0000000000000000000000000000000000000000..bb7c7e77daff8f0abe895b212947cc0c3e97d7a0 GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg4PB~#SP4UdbEI?BjJY5_^DsH{K zb+EA6K)@mJVC!3@kSDidTBQq|KVB8xuy|qt`^gzH22cJ9-8++Yu_H0|`qqqMWu^uO zMkWylAjzcwBv}Q3Bol|ggJXSPd_GTXIBdXRa)^oJ!*2h-Vy}eP`a`V67 z2ao&N(>M+k$NlwV-0?gxsfCe=g(KiNlg(w`H1Pw*cN2OHFicf&U}WJCSik^M3AC0) z18Vtv)*IFJNjJjY|Fzt9El*?H)u`RPr#IF3UjEYi_^(m1obscIGsR`{AIB;^GMpCV w<#NZkc-_{xi+^gKU5#2l)6)IO-YG$G%iX=3*<FVdQ&MBb@0KSEYpa1{> literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_base.png b/data/themes/img/O/flip_base.png new file mode 100644 index 0000000000000000000000000000000000000000..607fba927270a70be28b5149dc568fe59ddc4eb9 GIT binary patch literal 598 zcmeAS@N?(olHy`uVBq!ia0vp^0YJQfgAGW|ZhpN5NHG=%xjQkeJ16rJ$YD$Jc6VX; z4}uH!E}sk(;VkfoEM{Qf76xHPhFNnYfP(BLp1!W^H#h~^<#bGLDPI5zNtU=qlsM<- z=BDPAFgO>bCYGe8D3oWGWGJ|M`UZqI@`(ej+UV)x7*cWT?R7&xX-A2+hxx~XcN7@f zdVK5*C=v*ICJ-XHlR0<74uOs(g-;J16;swfJ56xXbTyCj)h+Iy-=|O4={3xo{O3lF z+4YO|v!7Sm%|Bm1`OemBb*i3`AL`V9TKNValUQbOVqqq6rll~*SBT!~trrMdJ$M7ZYCE0yy+*Tg>!;gRQ7 zaA=q>eW61_P@P9$K~INZ;UNZAFjuF6!TzH8g^r3w2F72Cy80LF1@%EH@)roRX*9SU z;ofrS6BDD9;C%K(3erP+7+bPG%Mmca8y&>*96< z$kk|IU}O?;0Fqol>ls)DfFu(KkYr@x5Lm###KI8(Q~+c%5>$g>)Pw&F6$du#a`ydn zAhDGHX@yOl=chACp}%ic*LxNne)K4>>b<_HXVrUu&u^Y}MV0?&ZFVdQ&MBb@06tIBWdHyG literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_base_shad.png b/data/themes/img/O/flip_base_shad.png new file mode 100644 index 0000000000000000000000000000000000000000..056997776a4b3f1d7bdf20f688063576aa88856e GIT binary patch literal 826 zcmeAS@N?(olHy`uVBq!ia0vp^5kS0xgAGWguxsi9DaPU;cPEB*=VV?2Ic!PZ?k)`f zL2$v|<&%LToCO|{#S9GG!XV7ZFl&wkP>{XE)7O>#2B#pqy!f0`zqbN~BuiW)N}Tg^ zb5rw57@Uhz6H8K46v{J8G8EiBeFMT9`NSC*n5KHVIEGZ*dVBp~-mL%uhl|Uq3VPOfZc5I-Oi!Qh=BH-GMooef@AC|nq%x~DDvU*V#v-n1_YmL>? zH-ZcA#|n3|d>0X}$z(R?->MH3Kba-4eZS4eNM`>7YGp;7S1OPHi#-~(L$KW7lkbeR zNsGF_oc_i)Z>N}D>zx~>=U3~n=G_zc^u=5H?{eLI{3>sO@ z8d=3|u!uz@2!m0hZvtElCJYio5=K{wYyz56WD`I(Au9#ihiodcQZg;u)%e=NY~L>a z9gb@saoFtBvYaa%!<_y=|mMKD7%3@&PA?uH+vo9@eM2qlYH_y zWg2)t@XlbAH29kML-Czh1;=jZh-;b!#s`n@D3sfwf57OS@Xuea3ufNo{b2m2@1=hI zrH#$oKmKH~VO*Uu%Q&|_Iy7+$vs~lv4b`9jWHqN6t_)5PylmZn{!!fec5k0IitC<# zi;nnq?sp-dNMQ{B-xH~GR=r;OVDZW`Z1=wJ|G)9Y-}@i9u4*?+ZmfEL6PSt_JYD@< J);T3K0RUR;Mh^f0 literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_colon.png b/data/themes/img/O/flip_colon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a674ded75ee2e8adbd3066f53f3a3f32182abae GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^8bG{&gAGX5$?DwzQjEnx?oJHr&dIz4a@dl*-Cck* z5d3uBT@R!<3p^r=85p>QL70(Y)*K0-AbW|YuPgg)HdcOXxr0I1b^wJWOI#yLobz*Y zQ}ap~oQqNuOHxx5$}>wc6x=<11Hv2m#DR+5dAc};RNQ)d!!YlVg8=IVS*aC8Y~hx? z=?%Mgp6y&QNqLF$O10jJ0$o!oc+!^cxgPz`I&S^i`%*xyU=T2EX8ReN)Mu8)$Ir-A zaekZqcXQL;C->)8&AGF7W6}H-ZQARy#RcPw^=_=O`Eh=yc#c;7>!ya??e>o{5AP2X zc5|_@da%=|GwZ-9xti$W%VBC3Tdv*PJvYInMn~dA;acaac#9RqXV+d_Cf{ti?fj2B zy?5JobM2g4x3R7$gMr}!^WOx;8Fd@3=)@cny}nfb3jaOj1$6~4S=yJ$$JBYeW`8dl fWX}O}>;H@9jvo)nUTdBk2omyi^>bP0l+XkKuo9MW literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_pmb.png b/data/themes/img/O/flip_pmb.png new file mode 100644 index 0000000000000000000000000000000000000000..de14fa5ee5abfb3d35e82a57c00a056e7fc96259 GIT binary patch literal 709 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfvP9b(hwxwM8SAas2C9V-A&iT2y zsd*&~&PAz-C8;S2<(VZJ3hti10pX2&;tUK-3Z5>GAr-gYUbD@96~J)pC z;et%NB;K*M`|(+ITCuoj?3=K0-fcvQVdttyf7b z|FibrehnKVc;@;&PuO!e&w0`khi`j6y>_n4cZ13@Nrwn?k8TKPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOS` z2Ou(?rK%tR000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000AbNklBRv( zNF+@N2azBQ(#V)lCasyhZFYCs>5sAK=KD z(sfE&{{;C8$5`1trk6vfZN>FMd0 zhK7c34-XHdlY`33%W-~w{#AH-db)mjdHKZ7%e@nwPUnrF>$8!!Y0=274kv0wln~21pa3iExAokN_!~2u*||On?*t(nM$?9ASz8 z39x|9K$-|UkN^pg7io$e$d?E^kN_!~2+u%{Fac5oNE2ZP(uFB@AOX@ucm`4&VFDyT zng~S`;Rq8T0a7#(ng~aj04V~biO@ti!W01#AWh`IFcDX_$yHTVId4!=Q2|jDQCnLJ zpU;Pmjt=zn^q{1q2ojg6MM8yg$8_uJp!$KKvv+Vw~zf@m~aco*r? z(o#%LPFm({Z*S*ZH`RGJJ3E^;Kh;{MGxNi|L^?Y=E!VHFuXCt*@^`mSt1? z;^G3Eo13Qi;NW0kyhN(2t8HIc|JLZ}s413ACJ_th5lUVD2xT3cHSV}y5hb}ZLxYHISTJ2p0Eip63v ztgNj3`YcIO$_}^NeQyRZ9*<*sdfGC_@Av0bySKL&Ua!{_|NU*8$~@}o>d@EM_pt%0 zs)}$pjPCAk93355=JxmZ=e38+q@K00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOS_ z1|$;E(26wx000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0008JZzzYeSPZvl2>hj02;Yy~Rog;0d&9>j^9oX6v_xy1Y2^+>E!TGR5qsdHC&{@lGv^Oy5MnxI@r0#TZ$nY-m22=}T6krJj4 zysixbU1?+>0i=Yd*9V20vb6A?hk~!t$XNo> zBHbDgQ3;~(9ga zGJfw2bjHswN?S^JhcqTvH);xS?JE?ubE#?I3{0x-Hn&tF+6VqA5OISbIsh{h=?x`Z zYTrwH2PMXpu9v<$$2RT0K`334HsHi_=eQE-gvDCq3+R2V7Q`Bf*7N{NQ5Zdd1AviI zHroW?Kp)r^M9wM^0$Bkd6X_iiX_}z~3=*CRq&+yrG0? z8%da^tVGz2sRxm1ObdAMEqw>zgs-mjfbZ5mEf3!4F~P5X3xqrwFGJ(a)Lzz&8N@e8>*39l=`~F7F( z_mAz5-WT5c?uC%Dd;oay7#)I2hgD>Gix~Oev#`Ho7RJ&&czoVHJ~LLp1i20#xPc5j sW8j#|m%B{K(no;O2c9<&7+klsPtxW(p{{dE$^ZZW07*qoM6N<$f+{zVod5s; literal 0 HcmV?d00001 diff --git a/data/themes/img/O/flip_t.png b/data/themes/img/O/flip_t.png new file mode 100644 index 0000000000000000000000000000000000000000..74ed50d91dd8767d6b5b518d54bf7b0e5318293b GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg4PB~#So|s&5XP_xoo-U3d6}R5r z+33scD8lxz{<^e90ee|s07r|6BS)))zXLm;UPPs*j8aSOrYDE*ixeDuv3G9t%Mw-h zs`vb!^TJkN)%!8g@R)@RU%cnM=0hCx^9N^-k(8y9Xv5m7t*szhs$z@I> zP@#Z^lG=wyUxOb?##}D{c+P>z^@#5gu4W+Z;*!wHsS@C#S8}841kb