linux-presets/gui/gnome/autocustom-gnome-macos/res/extensions/moveclock@kuvaus.org/prefs.js

54 lines
1.8 KiB
JavaScript
Executable File

// Copyright (C) 2024 kuvaus
// License GPLv3
import Gio from 'gi://Gio';
import Adw from 'gi://Adw';
import Gtk from 'gi://Gtk';
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
export default class moveclock_preferences extends ExtensionPreferences {
fillPreferencesWindow(window) {
// Create a preferences page
const page = new Adw.PreferencesPage({
title: _('General'),
icon_name: 'dialog-information-symbolic',
});
window.add(page);
const preferences_group = new Adw.PreferencesGroup({
title: _('Options'),
description: _('Remember to re-enable extension for changes to take effect.'),
});
page.add(preferences_group);
// Create a toggle to move clock before/after statusmenu
const toggleRow = new Adw.SwitchRow({
title: _('Clock before System Menu'),
subtitle: _('Toggle whether clock is moved before (ON) or after (OFF) System Menu.'),
});
preferences_group.add(toggleRow);
// Bind the toggle to the extension's enabled state
const settings = this.getSettings();
settings.bind('clock-before-statusmenu', toggleRow, 'active', Gio.SettingsBindFlags.DEFAULT);
// Create a group for links
const links_group = new Adw.PreferencesGroup({
title: _('Visit extension homepage:'),
});
page.add(links_group);
const linkButton = new Gtk.LinkButton({
label: _('https://github.com/kuvaus/moveclock/'),
uri: 'https://github.com/kuvaus/moveclock/',
halign: Gtk.Align.START,
valign: Gtk.Align.CENTER,
hexpand: true,
});
links_group.add(linkButton);
}
}