GJS added API for defining GObject classes with ES6 class syntax last cycle, use it to port the remaining Lang.Class classes to the new syntax. Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/30
55 lines
1.8 KiB
JavaScript
55 lines
1.8 KiB
JavaScript
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||
|
||
const GLib = imports.gi.GLib;
|
||
const GObject = imports.gi.GObject;
|
||
const Gio = imports.gi.Gio;
|
||
const Gtk = imports.gi.Gtk;
|
||
|
||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
||
const _ = Gettext.gettext;
|
||
|
||
const ExtensionUtils = imports.misc.extensionUtils;
|
||
const Me = ExtensionUtils.getCurrentExtension();
|
||
const Convenience = Me.imports.convenience;
|
||
|
||
function init() {
|
||
Convenience.initTranslations();
|
||
}
|
||
|
||
const ExamplePrefsWidget = GObject.registerClass(
|
||
class ExamplePrefsWidget extends Gtk.Grid {
|
||
_init(params) {
|
||
super._init(params);
|
||
this.margin = 12;
|
||
this.row_spacing = this.column_spacing = 6;
|
||
this.set_orientation(Gtk.Orientation.VERTICAL);
|
||
|
||
this.add(new Gtk.Label({ label: '<b>' + _("Message") + '</b>',
|
||
use_markup: true,
|
||
halign: Gtk.Align.START }));
|
||
|
||
let entry = new Gtk.Entry({ hexpand: true,
|
||
margin_bottom: 12 });
|
||
this.add(entry);
|
||
|
||
this._settings = Convenience.getSettings();
|
||
this._settings.bind('hello-text', entry, 'text', Gio.SettingsBindFlags.DEFAULT);
|
||
|
||
// TRANSLATORS: Example is the name of the extension, should not be
|
||
// translated
|
||
let primaryText = _("Example aims to show how to build well behaved \
|
||
extensions for the Shell and as such it has little functionality on its own.\n\
|
||
Nevertheless it’s possible to customize the greeting message.");
|
||
|
||
this.add(new Gtk.Label({ label: primaryText,
|
||
wrap: true, xalign: 0 }));
|
||
}
|
||
});
|
||
|
||
function buildPrefsWidget() {
|
||
let widget = new ExamplePrefsWidget();
|
||
widget.show_all();
|
||
|
||
return widget;
|
||
}
|