diff options
| author | AlexanderCurl <alexc@alexc.hu> | 2026-04-18 17:46:06 +0100 |
|---|---|---|
| committer | AlexanderCurl <alexc@alexc.hu> | 2026-04-18 17:46:06 +0100 |
| commit | 70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 (patch) | |
| tree | ab1123d4067c1b086dd6faa7ee4ea643236b565a /raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js | |
| parent | 5d94c0a7d44a2255b81815a52a7056a94a39842d (diff) | |
| download | RaveOS-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.js | 77 |
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; + } +}); |