summaryrefslogtreecommitdiff
path: root/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js
diff options
context:
space:
mode:
authorAlexanderCurl <alexc@alexc.hu>2026-04-18 17:46:06 +0100
committerAlexanderCurl <alexc@alexc.hu>2026-04-18 17:46:06 +0100
commit70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 (patch)
treeab1123d4067c1b086dd6faa7ee4ea643236b565a /raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js
parent5d94c0a7d44a2255b81815a52a7056a94a39842d (diff)
downloadRaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.tar.gz
RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.zip
Replaced file structures for themes in the correct format
Diffstat (limited to 'raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js')
-rw-r--r--raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js77
1 files changed, 77 insertions, 0 deletions
diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js
new file mode 100644
index 0000000..cf112ab
--- /dev/null
+++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js
@@ -0,0 +1,77 @@
+import Clutter from 'gi://Clutter';
+import GObject from 'gi://GObject';
+import St from 'gi://St'
+import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
+
+export const MenuItem = GObject.registerClass({
+
+ Signals: {
+ 'toggle': { param_types: [Clutter.Event.$gtype] },
+ },
+
+}, class MenuItem extends PopupMenu.PopupBaseMenuItem {
+
+ _init(icon, key, label, value, checked) {
+ super._init({ reactive: true });
+
+ this._checked = checked;
+ this._updateOrnament();
+
+ this._key = key;
+ this._gIcon = icon;
+
+ // add icon
+ this.add_child(new St.Icon({ style_class: 'popup-menu-icon', gicon : this._gIcon }));
+
+ // add label
+ this._labelActor = new St.Label({ text: label });
+ this.add_child(this._labelActor);
+
+ // add value
+ this._valueLabel = new St.Label({ text: value });
+ this._valueLabel.set_x_align(Clutter.ActorAlign.END);
+ this._valueLabel.set_x_expand(true);
+ this._valueLabel.set_y_expand(true);
+ this.add_child(this._valueLabel);
+
+ this.actor._delegate = this;
+ }
+
+ get checked() {
+ return this._checked;
+ }
+
+ get key() {
+ return this._key;
+ }
+
+ get gicon() {
+ return this._gIcon;
+ }
+
+ set value(value) {
+ this._valueLabel.text = value;
+ }
+
+ get value() {
+ return this._valueLabel.text;
+ }
+
+ // prevents menu from being closed
+ activate(event) {
+ this._checked = !this._checked;
+ this._updateOrnament();
+ this.emit('toggle', event);
+ }
+
+ _updateOrnament() {
+ if (this._checked)
+ this.setOrnament(PopupMenu.Ornament.CHECK);
+ else
+ this.setOrnament(PopupMenu.Ornament.NONE);
+ }
+
+ get label() {
+ return this._labelActor.text;
+ }
+});