From aedbc1128857575f48df12497885411430eb16b2 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 5 Jun 2011 16:09:23 +0000 Subject: [PATCH] DIGITAL CLOCK!!!!! see clock settings for how to turn it on blah blah blah. SVN revision: 59973 --- data/themes/default.edc | 1009 ++++++++++++++++++++++++- data/themes/images/Makefile.am | 32 +- data/themes/images/flip_0b.png | Bin 0 -> 1540 bytes data/themes/images/flip_0t.png | Bin 0 -> 1547 bytes data/themes/images/flip_1b.png | Bin 0 -> 451 bytes data/themes/images/flip_1t.png | Bin 0 -> 666 bytes data/themes/images/flip_2b.png | Bin 0 -> 1074 bytes data/themes/images/flip_2t.png | Bin 0 -> 1495 bytes data/themes/images/flip_3b.png | Bin 0 -> 1408 bytes data/themes/images/flip_3t.png | Bin 0 -> 1444 bytes data/themes/images/flip_4b.png | Bin 0 -> 705 bytes data/themes/images/flip_4t.png | Bin 0 -> 1137 bytes data/themes/images/flip_5b.png | Bin 0 -> 1490 bytes data/themes/images/flip_5t.png | Bin 0 -> 824 bytes data/themes/images/flip_6b.png | Bin 0 -> 1651 bytes data/themes/images/flip_6t.png | Bin 0 -> 1569 bytes data/themes/images/flip_7b.png | Bin 0 -> 1110 bytes data/themes/images/flip_7t.png | Bin 0 -> 996 bytes data/themes/images/flip_8b.png | Bin 0 -> 1660 bytes data/themes/images/flip_8t.png | Bin 0 -> 1719 bytes data/themes/images/flip_9b.png | Bin 0 -> 1512 bytes data/themes/images/flip_9t.png | Bin 0 -> 1659 bytes data/themes/images/flip_amb.png | Bin 0 -> 963 bytes data/themes/images/flip_amt.png | Bin 0 -> 1075 bytes data/themes/images/flip_b.png | Bin 0 -> 384 bytes data/themes/images/flip_base.png | Bin 0 -> 598 bytes data/themes/images/flip_base_shad.png | Bin 0 -> 826 bytes data/themes/images/flip_colon.png | Bin 0 -> 403 bytes data/themes/images/flip_pmb.png | Bin 0 -> 709 bytes data/themes/images/flip_pmt.png | Bin 0 -> 1052 bytes data/themes/images/flip_shad.png | Bin 0 -> 918 bytes data/themes/images/flip_t.png | Bin 0 -> 442 bytes src/modules/clock/e_mod_main.c | 17 + 33 files changed, 1051 insertions(+), 7 deletions(-) create mode 100644 data/themes/images/flip_0b.png create mode 100644 data/themes/images/flip_0t.png create mode 100644 data/themes/images/flip_1b.png create mode 100644 data/themes/images/flip_1t.png create mode 100644 data/themes/images/flip_2b.png create mode 100644 data/themes/images/flip_2t.png create mode 100644 data/themes/images/flip_3b.png create mode 100644 data/themes/images/flip_3t.png create mode 100644 data/themes/images/flip_4b.png create mode 100644 data/themes/images/flip_4t.png create mode 100644 data/themes/images/flip_5b.png create mode 100644 data/themes/images/flip_5t.png create mode 100644 data/themes/images/flip_6b.png create mode 100644 data/themes/images/flip_6t.png create mode 100644 data/themes/images/flip_7b.png create mode 100644 data/themes/images/flip_7t.png create mode 100644 data/themes/images/flip_8b.png create mode 100644 data/themes/images/flip_8t.png create mode 100644 data/themes/images/flip_9b.png create mode 100644 data/themes/images/flip_9t.png create mode 100644 data/themes/images/flip_amb.png create mode 100644 data/themes/images/flip_amt.png create mode 100644 data/themes/images/flip_b.png create mode 100644 data/themes/images/flip_base.png create mode 100644 data/themes/images/flip_base_shad.png create mode 100644 data/themes/images/flip_colon.png create mode 100644 data/themes/images/flip_pmb.png create mode 100644 data/themes/images/flip_pmt.png create mode 100644 data/themes/images/flip_shad.png create mode 100644 data/themes/images/flip_t.png diff --git a/data/themes/default.edc b/data/themes/default.edc index 42b67c5ea..86b27fec3 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -11886,13 +11886,950 @@ collections { #define CLOCK_SECONDS 1 /*** MOD: CLOCK ***/ -/* group { name: "e/modules/clock/digital"; + min: 56 16; + max: 512 128; + images { + image: "flip_base.png" COMP; + image: "flip_base_shad.png" COMP; + image: "flip_shad.png" COMP; + image: "flip_0t.png" COMP; + image: "flip_0b.png" COMP; + image: "flip_1t.png" COMP; + image: "flip_1b.png" COMP; + image: "flip_2t.png" COMP; + image: "flip_2b.png" COMP; + image: "flip_3t.png" COMP; + image: "flip_3b.png" COMP; + image: "flip_4t.png" COMP; + image: "flip_4b.png" COMP; + image: "flip_5t.png" COMP; + image: "flip_5b.png" COMP; + image: "flip_6t.png" COMP; + image: "flip_6b.png" COMP; + image: "flip_7t.png" COMP; + image: "flip_7b.png" COMP; + image: "flip_8t.png" COMP; + image: "flip_8b.png" COMP; + image: "flip_9t.png" COMP; + image: "flip_9b.png" COMP; + image: "flip_amt.png" COMP; + image: "flip_amb.png" COMP; + image: "flip_pmt.png" COMP; + image: "flip_pmb.png" COMP; + image: "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); \ + v = get_int(ns ## v0_next); \ + if (v >= 0) { \ + set_int(ns ## v0_next, -1); \ + } \ + } \ + } \ + 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]; \ + if (get_int(ns ## v0_lock) == 1) { \ + set_int(ns ## v0_next, value); \ + return; \ + } \ + v = get_int(ns ## v0_cur); \ + if (v == value) return; \ + 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 (hour > 12) pm = 1; + else pm = 0; + hour = hour % 12; + h1valset(hour / 10); + h2valset(hour % 10); + if (pm) + hour = 0; + else + hour = 0; + } + } + + 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: "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: "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: "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: "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: "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: "flip_0b.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_0b.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_1b.png"; \ + } \ + description { state: "2" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_2b.png"; \ + } \ + description { state: "3" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_3b.png"; \ + } \ + description { state: "4" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_4b.png"; \ + } \ + description { state: "5" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_5b.png"; \ + } \ + description { state: "6" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_6b.png"; \ + } \ + description { state: "7" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_7b.png"; \ + } \ + description { state: "8" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_8b.png"; \ + } \ + description { state: "9" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "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: "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: "flip_0b.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_0b.png"; \ + } \ + description { state: "0h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "flip_0b.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_1b.png"; \ + } \ + description { state: "1h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "flip_1b.png"; \ + } \ + description { state: "2" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_2b.png"; \ + } \ + description { state: "2h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "flip_2b.png"; \ + } \ + description { state: "3" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_3b.png"; \ + } \ + description { state: "3h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "flip_3b.png"; \ + } \ + description { state: "4" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_4b.png"; \ + } \ + description { state: "4h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "flip_4b.png"; \ + } \ + description { state: "5" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_5b.png"; \ + } \ + description { state: "5h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "flip_5b.png"; \ + } \ + description { state: "6" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_6b.png"; \ + } \ + description { state: "6h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "flip_6b.png"; \ + } \ + description { state: "7" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_7b.png"; \ + } \ + description { state: "7h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "flip_7b.png"; \ + } \ + description { state: "8" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_8b.png"; \ + } \ + description { state: "8h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "flip_8b.png"; \ + } \ + description { state: "9" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_9b.png"; \ + } \ + description { state: "9h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "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: "flip_0t.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_0t.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_1t.png"; \ + } \ + description { state: "2" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_2t.png"; \ + } \ + description { state: "3" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_3t.png"; \ + } \ + description { state: "4" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_4t.png"; \ + } \ + description { state: "5" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_5t.png"; \ + } \ + description { state: "6" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_6t.png"; \ + } \ + description { state: "7" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_7t.png"; \ + } \ + description { state: "8" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_8t.png"; \ + } \ + description { state: "9" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "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: "flip_0t.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "flip_0t.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "flip_1t.png"; \ + } \ + description { state: "2" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "flip_2t.png"; \ + } \ + description { state: "3" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "flip_3t.png"; \ + } \ + description { state: "4" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "flip_4t.png"; \ + } \ + description { state: "5" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "flip_5t.png"; \ + } \ + description { state: "6" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "flip_6t.png"; \ + } \ + description { state: "7" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "flip_7t.png"; \ + } \ + description { state: "8" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "flip_8t.png"; \ + } \ + description { state: "9" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "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: "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: "flip_amb.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_amb.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "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: "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: "flip_amb.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_amb.png"; \ + } \ + description { state: "0h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "flip_amb.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + image.normal: "flip_pmb.png"; \ + } \ + description { state: "1h" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + image.normal: "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: "flip_amt.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "flip_amt.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "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: "flip_amt.png"; \ + } \ + description { state: "0" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "flip_amt.png"; \ + } \ + description { state: "1" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + image.normal: "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: "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"; + program { name: "init"; signal: "load"; source: ""; script { @@ -11902,22 +12839,83 @@ collections { 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: "clock_base.png" COMP; @@ -12214,8 +13212,7 @@ collections { } } programs { - program { - name: "init"; + program { name: "init"; signal: "load"; source: ""; script { diff --git a/data/themes/images/Makefile.am b/data/themes/images/Makefile.am index a0855f6c6..2e55c21bb 100644 --- a/data/themes/images/Makefile.am +++ b/data/themes/images/Makefile.am @@ -423,4 +423,34 @@ connman-connecting-4.png \ comp-sh1.png \ shelf_alt_vert_bg.png \ icon_look.png \ -icon_gadget.png +icon_gadget.png \ +flip_0b.png \ +flip_0t.png \ +flip_1b.png \ +flip_1t.png \ +flip_2b.png \ +flip_2t.png \ +flip_3b.png \ +flip_3t.png \ +flip_4b.png \ +flip_4t.png \ +flip_5b.png \ +flip_5t.png \ +flip_6b.png \ +flip_6t.png \ +flip_7b.png \ +flip_7t.png \ +flip_8b.png \ +flip_8t.png \ +flip_9b.png \ +flip_9t.png \ +flip_amb.png \ +flip_amt.png \ +flip_base.png \ +flip_base_shad.png \ +flip_b.png \ +flip_pmb.png \ +flip_pmt.png \ +flip_shad.png \ +flip_t.png \ +flip_colon.png diff --git a/data/themes/images/flip_0b.png b/data/themes/images/flip_0b.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6ae9e1ce289a6b118bbbefd221965754c853c6 GIT binary patch literal 1540 zcmc(f`8(7J9LK-o7{Xv2$xICzA;&5s6RmqjW5~)q;|Mv2Wpiu?3b{(!A>}6HoE(cB zIU`q784SiPi%O0OV;sra>95$&^SnQ==lML(>v{k7d0=gI86pG|0ssJFj>Fh+Y5g;T zVD5el-Kye(FVw``PLMm1f?i1gz~5?)F}Azqww_BQrIjajU)qv&tuU~_1_TC!w?1FD*W@~DD=T=?BM=Bg zHY^uTOiVQ8YQ4SuTrDFbqvkl2qH78uk;qgXkAbgW&sJjNm6estr5IQ&)>u!_9fRRR zoe&|LVzy<0K{}mWs*p15=VhZdG&c5>UqHY#1xYzPjKcJlOioWPGMpt76B4wjlKv$1 z^XIP;qgz{B8If71*4Nf>Y}ymG(fG4jf-e~=sF;Ba`OqRZ>D;^NLbC)~rrv`v*WaH|y+6-gqDx7*l?U&8oG=iQ^V zg=D0pjE*T#CMO9Pu)mLwkNm0As_N=X**7`?>gK|Nry>}KLZkb=0#%1#w>&&RBuVJz z=ePXlG&E9ZdUA!vUY?#jG};TF$VitdE0H{EacOBtZx272Zlo> zsJYg?_PnJfTUSpnWPgzdm%qBY+RTD7DFin+pOKLf7m)KqYV7#0oc)%VM$I z3yROcv*3bZ3Y^F=P;rUqH$QKUi!f|xXy_!9`E1~1V^b5i6XERQQcuP5dwYAU8yFy- z9#K&8zbQp7Wij*Xmu^Qzjg4(wHmeu5v9s&JTUZbR1J&8PyXe{A!NI{RyDh1yP#ql| zC5}iY*sMh+F)nWTohjOgRMp;|7akV2Oqy_eL?ja9g3L_->i3Y4kcp|O?DmcMhxdc9 zwzjq(y1HWCvoeOAgJpCs6;|iw=hH6;E4yY zTluAbTUqgxmX>DB2t!WGVbAO7k%+9QK3>de!bmf{vom^BL)YJRLaR0{O+rUkm*z+F z)hwu~IcICBwTmj@D#jGT;g27`R#2(?eB1Fq9ZOnKO<( z#ek5F10Zc=%oF?h1<(IOv-PTlFR=!9D|Ks8q+sBP-7g_-nL8m{KQ15;@a^5S%r*x( z&~U_?aH8Re@S`Lub=Rs)E;cO_dTB(ZGD=oCd+JE%-#vx>Rs0jy?VcnjC@N%2EP=Pb U`$L{*3HPl7=2$CCwTXM|e+P!eLjV8( literal 0 HcmV?d00001 diff --git a/data/themes/images/flip_0t.png b/data/themes/images/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/images/flip_1t.png b/data/themes/images/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/images/flip_3b.png b/data/themes/images/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/images/flip_3t.png b/data/themes/images/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/images/flip_5b.png b/data/themes/images/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/images/flip_5t.png b/data/themes/images/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/images/flip_6t.png b/data/themes/images/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/images/flip_7b.png b/data/themes/images/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/images/flip_8t.png b/data/themes/images/flip_8t.png new file mode 100644 index 0000000000000000000000000000000000000000..718e484ec3f60b16f320d9d289ebeba0619f1e48 GIT binary patch literal 1719 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 FO#q#UmID9) literal 0 HcmV?d00001 diff --git a/data/themes/images/flip_amt.png b/data/themes/images/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/images/flip_b.png b/data/themes/images/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/images/flip_base.png b/data/themes/images/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/images/flip_base_shad.png b/data/themes/images/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/images/flip_colon.png b/data/themes/images/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/images/flip_pmb.png b/data/themes/images/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/images/flip_t.png b/data/themes/images/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}841kbtimestamp, NULL); } } +static void +_clock_sizing_changed_cb(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) +{ + Instance *inst = data; + Evas_Coord mw, mh; + + mw = 0, mh = 0; + edje_object_size_min_get(inst->o_clock, &mw, &mh); + if ((mw < 1) || (mh < 1)) + edje_object_size_min_calc(inst->o_clock, &mw, &mh); + if (mw < 4) mw = 4; + if (mh < 4) mh = 4; + e_gadcon_client_aspect_set(inst->gcc, mw, mh); + e_gadcon_client_min_size_set(inst->gcc, mw, mh); +} static E_Gadcon_Client * _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) @@ -424,6 +439,8 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) inst = E_NEW(Instance, 1); o = edje_object_add(gc->evas); + edje_object_signal_callback_add(o, "e,state,sizing,changed", "*", + _clock_sizing_changed_cb, inst); if (clock_cfg->digital_clock) e_theme_edje_object_set(o, "base/theme/modules/clock", "e/modules/clock/digital");