141 lines
4.1 KiB
JavaScript
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;
|
|
}
|
|
|