From d2651c4bc16daa3d6bfcc1f006266a93a5f5640b Mon Sep 17 00:00:00 2001 From: Aleksandr Sokolov Date: Mon, 24 Oct 2022 17:47:23 +0300 Subject: [PATCH] init --- README | 1 + desklet.js | 165 +++++++++++++++++++++++++++++++++++++++++++ icon.png | Bin 0 -> 26270 bytes metadata.json | 9 +++ settings-schema.json | 47 ++++++++++++ stylesheet.css | 25 +++++++ 6 files changed, 247 insertions(+) create mode 100755 README create mode 100755 desklet.js create mode 100644 icon.png create mode 100755 metadata.json create mode 100644 settings-schema.json create mode 100755 stylesheet.css diff --git a/README b/README new file mode 100755 index 0000000..8a9ec2d --- /dev/null +++ b/README @@ -0,0 +1 @@ +Digital Clock With Date And Support Time Zone for Cinnamon Desklets. diff --git a/desklet.js b/desklet.js new file mode 100755 index 0000000..483da17 --- /dev/null +++ b/desklet.js @@ -0,0 +1,165 @@ + +/* +Created: Oct 2022 +Name: Time And Date With TZ Cinnamon Desklet +Author: Alexandr Sokolov +Version: 0.1 +*/ + + +const Gio = imports.gi.Gio; +const St = imports.gi.St; + +const Desklet = imports.ui.desklet; + +const Lang = imports.lang; +const Mainloop = imports.mainloop; +const GLib = imports.gi.GLib; +const PopupMenu = imports.ui.popupMenu; +const Util = imports.misc.util; +const Settings = imports.ui.settings; + +const UUID = "digital-tz-clock@sokol"; + + +function MyDesklet(metadata, desklet_id){ + this._init(metadata, desklet_id); +} + + +MyDesklet.prototype = { + __proto__: Desklet.Desklet.prototype, + + _init: function(metadata, desklet_id){ + Desklet.Desklet.prototype._init.call(this, metadata); + + this._time_format = {"hour": "2-digit", "minute": "2-digit"}; + this._date_format = {}; + + this._load_settings(desklet_id); + this._setup_ui(); + this.on_setting_changed(); + + this._update_date(); + }, + + _load_settings: function(desklet_id) { + this.settings = new Settings.DeskletSettings(this, this.metadata["uuid"], desklet_id); + this.settings.bindProperty(Settings.BindingDirection.IN, "time_size", "__time_size", this.on_setting_changed); + this.settings.bindProperty(Settings.BindingDirection.IN, "date_size", "__date_size", this.on_setting_changed); + this.settings.bindProperty(Settings.BindingDirection.IN, "time_zone", "__time_zone", this.on_setting_changed); + this.settings.bindProperty(Settings.BindingDirection.IN, "is_show_date", "__is_show_date", this.on_repaint_ui); + this.settings.bindProperty(Settings.BindingDirection.IN, "is_show_tz", "__is_show_tz", this.on_repaint_ui); + this.settings.bindProperty(Settings.BindingDirection.IN, "is_show_label", "__is_show_label", this.on_repaint_ui); + this.settings.bindProperty(Settings.BindingDirection.IN, "label", "__label_text", this.on_setting_changed); + }, + + _setup_ui: function() { + this._clockContainer = new St.BoxLayout({vertical:true, style_class: 'clock-container'}); + + this._setup_time_conteiner(); + this._setup_tz_conteiner(); + this._setup_date_conteiner(); + this._setup_label_conteiner(); + + this.setContent(this._clockContainer); + }, + + _setup_time_conteiner: function() { + this._time = new St.Label(); + + this._timeContainer = new St.BoxLayout({vertical:false, style_class: 'time-container'}); + this._timeContainer.add(this._time); + this._clockContainer.add(this._timeContainer, {x_fill: false, x_align: St.Align.MIDDLE}); + }, + + _setup_tz_conteiner: function() { + this._tz = new St.Label(); + + if (this.__is_show_tz) { + this._tzContainer = new St.BoxLayout({vertical: false, style_class: 'tz-container'}); + this._tzContainer.add(this._tz); + this._clockContainer.add(this._tzContainer, {x_fill: false, x_align: St.Align.MIDDLE}); + } + }, + + _setup_date_conteiner: function() { + this._date = new St.Label(); + + if (this.__is_show_date) { + this._dateContainer = new St.BoxLayout({vertical:false, style_class: 'date-container'}); + this._dateContainer.add(this._date); + this._clockContainer.add(this._dateContainer, {x_fill: false, x_align: St.Align.MIDDLE}); + } + }, + + _setup_label_conteiner: function() { + this._label = new St.Label(); + + if (this.__is_show_label) { + this._labelContainer = new St.BoxLayout({vertical:false, style_class: 'label-container'}); + this._labelContainer.add(this._label); + this._clockContainer.add(this._labelContainer, {x_fill: false, x_align: St.Align.MIDDLE}); + } + }, + + on_desklet_removed: function() { + try { + Mainloop.source_remove(this.timeout); + } catch (error) { + global.log("Error with on_desklet_removed: " + error); + } + }, + + on_repaint_ui: function() { + this._clockContainer.destroy(); + this._setup_ui(); + this.on_setting_changed(); + }, + + on_setting_changed: function() { + // https://html-shark.com/HTML/LanguageCodes.htm + this._time_locale = undefined; + + this._date.style="font-size: " + this.__date_size + "pt"; + this._tz.style="font-size: " + this.__date_size + "pt"; + this._label.style="font-size: " + this.__date_size + "pt"; + this._time.style="font-size: " + this.__time_size + "pt"; + + // https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + let time_zone = this.__time_zone || undefined; + + this._time_opts = this._time_format; + this._time_opts['timeZone'] = time_zone; + this._date_opts = this._date_format; + this._date_opts['timeZone'] = time_zone; + + this._label.set_text(this.__label_text); + + global.log("on_setting_changed"); + }, + + _update_date: function(){ + try { + // let timeFormat = '%H:%M'; + // let dateFormat = '%A,%e %B'; + let displayDate = new Date(); + + + this._time.set_text(displayDate.toLocaleTimeString(this._time_locale, this._time_opts)); + this._date.set_text(displayDate.toLocaleDateString(this._time_locale, this._date_opts)); + this._tz.set_text(this.__time_zone || "Local time"); + this.timeout = Mainloop.timeout_add_seconds(1, Lang.bind(this, this._update_date)); + } + catch (error) { + this.timeout = Mainloop.timeout_add_seconds(10, Lang.bind(this, this._update_date)); + global.log("Error with _update_date: " + error); + } + } +} + + +function main(metadata, desklet_id){ + let desklet = new MyDesklet(metadata, desklet_id); + return desklet; +} diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5713baf7bd634066f888a52c1d7161ae4c19952f GIT binary patch literal 26270 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

RMG($RE<2x4SE)f~&<;)rhfd+Lr8hfX*0P|z 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 V8G>TLY&Zk3G`nK@&e$#Ce*m8=a18(e literal 0 HcmV?d00001 diff --git a/metadata.json b/metadata.json new file mode 100755 index 0000000..72a06f9 --- /dev/null +++ b/metadata.json @@ -0,0 +1,9 @@ +{ + "description": "Digital Clock With Date And Time Zone", + "prevent-decorations": false, + "uuid": "digital-tz-clock@sokol", + "name": "Digital Clock", + "author": "Alexandr Sokolov", + "max-instances": "100", + "icon": "icon.png" +} \ No newline at end of file diff --git a/settings-schema.json b/settings-schema.json new file mode 100644 index 0000000..caef884 --- /dev/null +++ b/settings-schema.json @@ -0,0 +1,47 @@ +{ + "time_size": { + "type": "spinbutton", + "default": 40, + "min": 10, + "max": 200, + "units": "pt", + "description" : "Time text size.", + "step": 1 + }, + "date_size": { + "type": "spinbutton", + "default": 15, + "min": 10, + "max": 200, + "units": "pt", + "description" : "Date text size.", + "step": 1 + }, + "is_show_date" : { + "type" : "switch", + "default" : false, + "description": "Is Display Date?" + }, + "is_show_tz" : { + "type" : "switch", + "default" : false, + "description": "Is Display TZ?" + }, + "time_zone": { + "type": "entry", + "default": "", + "description": "Time Zone Name", + "tooltip" : "IANA Timezone Name" + }, + "is_show_label": { + "type" : "switch", + "default" : false, + "description": "Is Display Label?" + }, + "label": { + "type": "entry", + "dependency" : "is_show_label", + "default": "", + "description": "Text." + } +} diff --git a/stylesheet.css b/stylesheet.css new file mode 100755 index 0000000..c56480a --- /dev/null +++ b/stylesheet.css @@ -0,0 +1,25 @@ +.clock-container{ + color:#fff; + text-shadow: 1px 1px 2px #000; + padding: 4px 10px 4px 10px; +} + +.time-container{ + +} + +.date-container{ + +} + +.clock-date-label{ + +} + +.tz-container { + +} + +.label-container { + +}