-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathprefs.js
41 lines (35 loc) · 1.34 KB
/
prefs.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import Adw from 'gi://Adw';
import Gtk from 'gi://Gtk';
import { ExtensionPreferences } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
export default class extends ExtensionPreferences {
fillPreferencesWindow(window) {
let settings = window._settings = this.getSettings();
const page = new Adw.PreferencesPage();
const group = new Adw.PreferencesGroup({ title: "General settings" });
let hbox = new Gtk.Box({ orientation: Gtk.Orientation.HORIZONTAL, spacing: 20 })
let label = new Gtk.Label({ label: '', use_markup: true })
function updateLabel(val) { label.set_markup(`Border radius:\n<small>${val}px</small>`) }
let scale = new Gtk.Scale({
orientation: Gtk.Orientation.HORIZONTAL,
hexpand: true,
digits: 0,
adjustment: new Gtk.Adjustment({ lower: 4, upper: 32, step_increment: 1 }),
value_pos: Gtk.PositionType.RIGHT,
round_digits: 0
})
scale.connect('value-changed', (sw) => {
let newVal = sw.get_value()
if (newVal == settings.get_int('corner-radius')) return
settings.set_int('corner-radius', newVal)
updateLabel(newVal);
})
let val = settings.get_int('corner-radius')
updateLabel(val)
scale.set_value(val)
hbox.append(label)
hbox.append(scale)
group.add(hbox)
page.add(group)
window.add(page)
}
}