From ca596ca67b0b1ff6d3deee5df221273810cce04f Mon Sep 17 00:00:00 2001 From: synonym24 Date: Tue, 21 Dec 2021 10:58:01 +0000 Subject: [PATCH] add padding options for notification banner (#1) Co-authored-by: synonym24 --- extension.js | 12 ++++--- metadata.json | 3 +- prefs.js | 30 +++++++++++++++++- schemas/gschemas.compiled | Bin 656 -> 760 bytes ...s.notification-banner-reloaded.gschema.xml | 14 ++++++++ utils.js | 4 ++- 6 files changed, 56 insertions(+), 7 deletions(-) diff --git a/extension.js b/extension.js index 0167aff..d51ce7c 100644 --- a/extension.js +++ b/extension.js @@ -30,6 +30,8 @@ let ANIMATION_TIME = 200; let ANIMATION_DIRECTION = 2; let ANCHOR_VERTICAL = 0; let ANCHOR_HORIZONTAL = 2; +let PADDING_VERTICAL = 0; +let PADDING_HORIZONTAL = 0; function patcher(obj, method, original, patch) { const body = eval(`${obj}.prototype.${method}.toString()`); @@ -47,10 +49,10 @@ function calcTarget(self) { let x = 0, y = 0; switch (ANCHOR_HORIZONTAL) { case 0: // left - x = 0; + x = 0 + PADDING_HORIZONTAL; break; case 1: // right - x = getMessageTraySize().width - self._banner.width; + x = getMessageTraySize().width - self._banner.width - PADDING_HORIZONTAL; break; case 2: // center x = (getMessageTraySize().width - self._banner.width) / 2.0; @@ -58,10 +60,10 @@ function calcTarget(self) { } switch (ANCHOR_VERTICAL) { case 0: // top - y = 0; + y = 0 + PADDING_VERTICAL; break; case 1: // bottom - y = getMessageTraySize().height - self._banner.height; + y = getMessageTraySize().height - self._banner.height - PADDING_VERTICAL; break; case 2: // center y = (getMessageTraySize().height - self._banner.height) / 2.0; @@ -154,6 +156,8 @@ class Extension { _fetchSettings() { ANCHOR_VERTICAL = this._settings.get_int(Utils.PrefFields.ANCHOR_VERTICAL); ANCHOR_HORIZONTAL = this._settings.get_int(Utils.PrefFields.ANCHOR_HORIZONTAL); + PADDING_VERTICAL = this._settings.get_int(Utils.PrefFields.PADDING_VERTICAL); + PADDING_HORIZONTAL = this._settings.get_int(Utils.PrefFields.PADDING_HORIZONTAL); ANIMATION_DIRECTION = this._settings.get_int(Utils.PrefFields.ANIMATION_DIRECTION); ANIMATION_TIME = this._settings.get_int(Utils.PrefFields.ANIMATION_TIME); } diff --git a/metadata.json b/metadata.json index cfca28e..00cbee6 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,7 @@ { "name": "Notification Banner Reloaded", - "version": 4, + "version": 5, + "_generated": "Generated by SweetTooth, do not edit", "description": "Configure notification banner position and animation to your liking", "uuid": "notification-banner-reloaded@marcinjakubowski.github.com", "shell-version": [ diff --git a/prefs.js b/prefs.js index bf0df77..2e20b8d 100644 --- a/prefs.js +++ b/prefs.js @@ -51,6 +51,20 @@ class Preferences { row_homogeneous: false }); + this.paddingHorizontal = new Gtk.SpinButton({ + adjustment: new Gtk.Adjustment({ + lower: 0, + upper: 1000, + step_increment: 1 + }) + }); + this.paddingVertical = new Gtk.SpinButton({ + adjustment: new Gtk.Adjustment({ + lower: 0, + upper: 1000, + step_increment: 1 + }) + }); this.animationTime = new Gtk.SpinButton({ adjustment: new Gtk.Adjustment({ lower: 100, @@ -84,6 +98,16 @@ class Preferences { hexpand: true, halign: Gtk.Align.START }); + let paddingHorizontalLabel = new Gtk.Label({ + label: _("Horizontal Padding"), + hexpand: true, + halign: Gtk.Align.START + }); + let paddingVerticalLabel = new Gtk.Label({ + label: _("Vertial Padding"), + hexpand: true, + halign: Gtk.Align.START + }); let animationDirectionLabel = new Gtk.Label({ label: _("Animation Direction"), hexpand: true, @@ -119,12 +143,16 @@ class Preferences { addRow(anchorHorizontalLabel, this.anchorHorizontal); addRow(anchorVerticalLabel, this.anchorVertical); + addRow(paddingHorizontalLabel, this.paddingHorizontal); + addRow(paddingVerticalLabel, this.paddingVertical); addRow(animationDirectionLabel, this.animationDirection); addRow(animationTimeLabel, this.animationTime); - + const settings = ExtensionUtils.getSettings(); settings.bind(Utils.PrefFields.ANCHOR_HORIZONTAL, this.anchorHorizontal, 'active', Gio.SettingsBindFlags.DEFAULT); settings.bind(Utils.PrefFields.ANCHOR_VERTICAL, this.anchorVertical, 'active', Gio.SettingsBindFlags.DEFAULT); + settings.bind(Utils.PrefFields.PADDING_HORIZONTAL, this.paddingHorizontal, 'value', Gio.SettingsBindFlags.DEFAULT); + settings.bind(Utils.PrefFields.PADDING_VERTICAL, this.paddingVertical, 'value', Gio.SettingsBindFlags.DEFAULT); settings.bind(Utils.PrefFields.ANIMATION_DIRECTION, this.animationDirection, 'active', Gio.SettingsBindFlags.DEFAULT); settings.bind(Utils.PrefFields.ANIMATION_TIME, this.animationTime, 'value', Gio.SettingsBindFlags.DEFAULT); } diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index e023309f48ef07a8ab88a57009a8f842a073615b..03cbd83cdf14adac776ff678d4eedac0e324f1c7 100644 GIT binary patch literal 760 zcmaJ;Jxjw-6unieg5XDsRqzj_LlVKEKS9CHD!TY=p6!G5rKF+M`hhOu=->}w(l&<>{)Wy+CcNf(Y1XJai6NxO!M+o%@X-h49e~VW&anHO;iy;TmAg}HvItaoT4HC literal 656 zcmaJ;yH3ME5Zn*~1ro1_z$e&3w#&41Adwm&LUW0a_$22Xolg-&0*Maskn#x>H2eV# z5@iYsO8$TXDt-WFFF}q{u+n(evwOSt-0p!eN@z=y*a9Dpb8l{a<5g z@G*qS2GI}V#x*zS7CZzp(+N8|>&h@sWSWNZ)JmPJOy{A_tU6I`VeuBUgx1moMy8pF zWsIrhE%I|FcsH+@2VTxEmUySzPkl;Id;spQ%ll>2IbVVP1bzmprCN=3mqUMp_6hub zJLg0V`eMeCkJtNe?&qB6tb(_JOF3F+o%3brJK!czf81=a&iNYj9+>?Id%`9>2NA)L z$QcqjL!!cv=s!auqFidxN@WnsRI+DoUWvSxFSP28ZH$$XZ7yOh8P`GN{=rk;nWvQR z`?LU^{o|erz`rYWJIPGYm&W2sQYgiF?xW&-vCXQk + + 0 + Vertical padding of the banner + + + + + + 0 + Horizontal padding of the banner + + + + 2 Animation direction diff --git a/utils.js b/utils.js index 55d3755..fc788c6 100644 --- a/utils.js +++ b/utils.js @@ -1,6 +1,8 @@ var PrefFields = { ANCHOR_VERTICAL : 'anchor-vertical', ANCHOR_HORIZONTAL : 'anchor-horizontal', + PADDING_VERTICAL : 'padding-vertical', + PADDING_HORIZONTAL : 'padding-horizontal', ANIMATION_TIME : 'animation-time', ANIMATION_DIRECTION : 'animation-direction', -}; \ No newline at end of file +};