dotfiles/.local/share/gnome-shell/extensions/move-workspaceSwitcherPopup.../prefs.js

141 lines
4.1 KiB
JavaScript

const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk;
const Gettext = imports.gettext.domain('move-workspaceswitcherpopup');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
//------------------------------------------------------------------------------
const WSPSettingsWidget = GObject.registerClass(
class WSPSettingsWidget extends Gtk.Grid {
_init() {
super._init({
row_homogeneous: true,
margin_top: 25,
margin_bottom: 25,
margin_start: 25,
margin_end: 25,
row_spacing: 30,
column_spacing: 20,
halign: Gtk.Align.FILL,
visible: true
});
this.SETTINGS = Convenience.getSettings('org.gnome.shell.extensions.move-workspaceSwitcherPopup');
//----------------------------------------------------------------------
let horizontalPercentageLabel = new Gtk.Label({
label: _("Horizontal position (percentage)"),
use_markup: true,
halign: Gtk.Align.START,
visible: true
});
let horizontalPercentage = new Gtk.Scale({
orientation: Gtk.Orientation.HORIZONTAL,
draw_value: true,
has_origin: false,
digits: 0,
halign: Gtk.Align.FILL,
hexpand: true,
visible: true
});
horizontalPercentage.add_mark(50, Gtk.PositionType.BOTTOM, null);
horizontalPercentage.set_range(0, 100);
horizontalPercentage.set_value(this.SETTINGS.get_int('horizontal'));
horizontalPercentage.set_increments(1, 1);
horizontalPercentage.connect('value-changed', function(w) {
var value = w.get_value();
this.SETTINGS.set_int('horizontal', value);
}.bind(this));
//----------------------------------------------------------------------
let verticalPercentageLabel = new Gtk.Label({
label: _("Vertical position (percentage)"),
use_markup: true,
halign: Gtk.Align.START,
visible: true
});
let verticalPercentage = new Gtk.Scale({
orientation: Gtk.Orientation.VERTICAL,
draw_value: true,
has_origin: false,
value_pos: Gtk.PositionType.LEFT,
digits: 0,
valign: Gtk.Align.FILL,
halign: Gtk.Align.CENTER,
hexpand: false,
vexpand: true,
visible: true
});
verticalPercentage.add_mark(50, Gtk.PositionType.RIGHT, null);
verticalPercentage.set_range(0, 100);
verticalPercentage.set_value(this.SETTINGS.get_int('vertical'));
verticalPercentage.set_increments(1, 1);
verticalPercentage.connect('value-changed', function(w) {
var value = w.get_value();
this.SETTINGS.set_int('vertical', value);
}.bind(this));
//----------------------------------------------------------------------
let hideSwitchLabel = new Gtk.Label({
label: _("Hide Workspace Switcher Popup Window"),
use_markup: true,
halign: Gtk.Align.START,
visible: true
});
let hideSwitch = new Gtk.Switch({
visible: true,
hexpand: true,
halign: Gtk.Align.CENTER,
valign: Gtk.Align.CENTER
});
hideSwitch.set_state(false);
hideSwitch.set_halign(Gtk.Align.START)
hideSwitch.set_state(this.SETTINGS.get_boolean('hide'));
hideSwitch.connect('notify::active', function(widget) {
this.SETTINGS.set_boolean('hide', widget.active);
}.bind(this));
//----------------------------------------------------------------------
this.attach(horizontalPercentageLabel, 0, 0, 1, 1);
this.attach(horizontalPercentage, 1, 0, 1, 1);
this.attach(verticalPercentageLabel, 0, 1, 1, 2);
this.attach(verticalPercentage, 1, 1, 1, 2);
this.attach(hideSwitchLabel, 0, 3, 1, 1);
this.attach(hideSwitch, 1, 3, 1, 1);
}
});
//------------------------------------------------------------------------------
function init() {
Convenience.initTranslations();
}
// This is like the "enable" in extension.js : something called each time the
// user tries to access the settings' window
function buildPrefsWidget() {
let widget = new WSPSettingsWidget();
return widget;
}