1
/* ========================================================================================================
2
* prefs.js - preferences
3
* ========================================================================================================
6
const Gio = imports.gi.Gio;
7
const GLib = imports.gi.GLib;
8
const GObject = imports.gi.GObject;
9
const Gtk = imports.gi.Gtk;
10
const Lang = imports.lang;
12
const ExtensionUtils = imports.misc.extensionUtils;
13
const Me = ExtensionUtils.getCurrentExtension();
14
const Convenience = Me.imports.convenience;
16
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
17
const _ = Gettext.gettext;
20
const GnoMenuPreferencesWidget = new GObject.Class({
21
Name: 'GnoMenu.GnoMenuPreferencesWidget',
22
GTypeName: 'GnoMenuPreferencesWidget',
25
_init: function(params) {
27
this.settings = Convenience.getSettings('org.gnome.shell.extensions.gnomenu');
29
let frame = new Gtk.Box({
30
orientation: Gtk.Orientation.VERTICAL
35
let panelSettings = new Gtk.Box({
36
orientation: Gtk.Orientation.VERTICAL,
40
let panelSettingsTitle = new Gtk.Label({
41
label: _("<b>Panel Settings</b>"),
49
let disableHotCornerBox = new Gtk.Box({
51
orientation: Gtk.Orientation.HORIZONTAL,
58
let disableHotCornerLabel = new Gtk.Label({
59
label: _("Disable activities hot corner"),
64
let disableHotCornerSwitch = new Gtk.Switch ({
67
disableHotCornerSwitch.set_active(this.settings.get_boolean('disable-activities-hotcorner'));
68
disableHotCornerSwitch.connect("notify::active", Lang.bind(this, function(check) {
69
this.settings.set_boolean('disable-activities-hotcorner', check.get_active());
72
disableHotCornerBox.add(disableHotCornerLabel);
73
disableHotCornerBox.add(disableHotCornerSwitch);
76
let hidePanelViewBox = new Gtk.Box({
78
orientation: Gtk.Orientation.HORIZONTAL,
85
let hidePanelViewLabel = new Gtk.Label({
86
label: _("Remove View button from panel"),
91
let hidePanelViewSwitch = new Gtk.Switch ({
94
hidePanelViewSwitch.set_active(this.settings.get_boolean('hide-panel-view'));
95
hidePanelViewSwitch.connect("notify::active", Lang.bind(this, function(check) {
96
this.settings.set_boolean('hide-panel-view', check.get_active());
99
hidePanelViewBox.add(hidePanelViewLabel);
100
hidePanelViewBox.add(hidePanelViewSwitch);
102
let panelViewBox = new Gtk.Box({
103
orientation: Gtk.Orientation.VERTICAL
106
let customViewLabelBox = new Gtk.Box({
108
orientation: Gtk.Orientation.HORIZONTAL,
116
let customViewLabel = new Gtk.Label({
117
label: _("Label for View button"),
120
halign: Gtk.Align.START
123
let customViewLabelEntry = new Gtk.Entry({
124
halign: Gtk.Align.END
126
customViewLabelEntry.set_width_chars(15);
127
customViewLabelEntry.set_text(this.settings.get_strv('panel-view-label-text')[0]);
128
customViewLabelEntry.connect('changed', Lang.bind(this, function(entry) {
129
let iconName = entry.get_text();
130
this.settings.set_strv('panel-view-label-text', [iconName]);
133
customViewLabelBox.add(customViewLabel);
134
customViewLabelBox.add(customViewLabelEntry);
136
let customViewIconBox = new Gtk.Box({
138
orientation: Gtk.Orientation.HORIZONTAL,
145
let customViewIcon = new Gtk.CheckButton({
146
label: _("Use icon with View button"),
149
halign: Gtk.Align.START
151
customViewIcon.set_active(this.settings.get_boolean('use-panel-view-icon'));
152
customViewIcon.connect('toggled', Lang.bind(this, function(check) {
153
this.settings.set_boolean('use-panel-view-icon', check.get_active());
156
let customViewIconEntry = new Gtk.Entry({
157
halign: Gtk.Align.END
159
customViewIconEntry.set_width_chars(15);
160
customViewIconEntry.set_text(this.settings.get_strv('panel-view-icon-name')[0]);
161
customViewIconEntry.connect('changed', Lang.bind(this, function(entry) {
162
let iconName = entry.get_text();
163
this.settings.set_strv('panel-view-icon-name', [iconName]);
166
this.settings.bind('use-panel-view-icon', customViewIconEntry, 'sensitive', Gio.SettingsBindFlags.DEFAULT);
167
customViewIconBox.add(customViewIcon);
168
customViewIconBox.add(customViewIconEntry);
170
this.settings.bind('hide-panel-view', panelViewBox, 'sensitive', Gio.SettingsBindFlags.INVERT_BOOLEAN);
171
panelViewBox.add(customViewLabelBox);
172
panelViewBox.add(customViewIconBox);
175
let hidePanelAppsBox = new Gtk.Box({
177
orientation: Gtk.Orientation.HORIZONTAL,
184
let hidePanelAppsLabel = new Gtk.Label({
185
label: _("Remove Apps button from panel"),
190
let hidePanelAppsSwitch = new Gtk.Switch ({
191
halign: Gtk.Align.END
193
hidePanelAppsSwitch.set_active(this.settings.get_boolean('hide-panel-apps'));
194
hidePanelAppsSwitch.connect("notify::active", Lang.bind(this, function(check) {
195
this.settings.set_boolean('hide-panel-apps', check.get_active());
198
hidePanelAppsBox.add(hidePanelAppsLabel);
199
hidePanelAppsBox.add(hidePanelAppsSwitch);
201
let panelAppsBox = new Gtk.Box({
202
orientation: Gtk.Orientation.VERTICAL
205
let customAppsLabelBox = new Gtk.Box({
207
orientation: Gtk.Orientation.HORIZONTAL,
215
let customAppsLabel = new Gtk.Label({
216
label: _("Label for Apps button"),
219
halign: Gtk.Align.START
222
let customAppsLabelEntry = new Gtk.Entry({
223
halign: Gtk.Align.END
225
customAppsLabelEntry.set_width_chars(15);
226
customAppsLabelEntry.set_text(this.settings.get_strv('panel-apps-label-text')[0]);
227
customAppsLabelEntry.connect('changed', Lang.bind(this, function(entry) {
228
let iconName = entry.get_text();
229
this.settings.set_strv('panel-apps-label-text', [iconName]);
232
customAppsLabelBox.add(customAppsLabel);
233
customAppsLabelBox.add(customAppsLabelEntry);
236
let customAppsIconBox = new Gtk.Box({
238
orientation: Gtk.Orientation.HORIZONTAL,
245
let customAppsIcon = new Gtk.CheckButton({
246
label: _("Use icon with Apps button"),
249
halign: Gtk.Align.START
251
customAppsIcon.set_active(this.settings.get_boolean('use-panel-apps-icon'));
252
customAppsIcon.connect('toggled', Lang.bind(this, function(check) {
253
this.settings.set_boolean('use-panel-apps-icon', check.get_active());
256
let customAppsIconEntry = new Gtk.Entry({
257
halign: Gtk.Align.END
259
customAppsIconEntry.set_width_chars(15);
260
customAppsIconEntry.set_text(this.settings.get_strv('panel-apps-icon-name')[0]);
261
customAppsIconEntry.connect('changed', Lang.bind(this, function(entry) {
262
let iconName = entry.get_text();
263
this.settings.set_strv('panel-apps-icon-name', [iconName]);
266
this.settings.bind('use-panel-apps-icon', customAppsIconEntry, 'sensitive', Gio.SettingsBindFlags.DEFAULT);
267
customAppsIconBox.add(customAppsIcon);
268
customAppsIconBox.add(customAppsIconEntry);
271
this.settings.bind('hide-panel-apps', panelAppsBox, 'sensitive', Gio.SettingsBindFlags.INVERT_BOOLEAN);
272
panelAppsBox.add(customAppsLabelBox);
273
panelAppsBox.add(customAppsIconBox);
276
let hidePanelMenuBox = new Gtk.Box({
278
orientation: Gtk.Orientation.HORIZONTAL,
285
let hidePanelMenuLabel = new Gtk.Label({
286
label: _("Remove Menu button from panel"),
291
let hidePanelMenuSwitch = new Gtk.Switch ({
292
halign: Gtk.Align.END
294
hidePanelMenuSwitch.set_active(this.settings.get_boolean('hide-panel-menu'));
295
hidePanelMenuSwitch.connect("notify::active", Lang.bind(this, function(check) {
296
this.settings.set_boolean('hide-panel-menu', check.get_active());
299
hidePanelMenuBox.add(hidePanelMenuLabel);
300
hidePanelMenuBox.add(hidePanelMenuSwitch);
302
let customMenuLabelBox = new Gtk.Box({
304
orientation: Gtk.Orientation.HORIZONTAL,
312
let customMenuLabel = new Gtk.Label({
313
label: _("Label for Menu button"),
316
halign: Gtk.Align.START
319
let customMenuLabelEntry = new Gtk.Entry({
320
halign: Gtk.Align.END
322
customMenuLabelEntry.set_width_chars(15);
323
customMenuLabelEntry.set_text(this.settings.get_strv('panel-menu-label-text')[0]);
324
customMenuLabelEntry.connect('changed', Lang.bind(this, function(entry) {
325
let iconName = entry.get_text();
326
this.settings.set_strv('panel-menu-label-text', [iconName]);
329
customMenuLabelBox.add(customMenuLabel);
330
customMenuLabelBox.add(customMenuLabelEntry);
332
let customMenuIconBox = new Gtk.Box({
334
orientation: Gtk.Orientation.HORIZONTAL,
341
let customMenuIcon = new Gtk.CheckButton({
342
label: _("Use icon with Menu button"),
345
halign: Gtk.Align.START
347
customMenuIcon.set_active(this.settings.get_boolean('use-panel-menu-icon'));
348
customMenuIcon.connect('toggled', Lang.bind(this, function(check) {
349
this.settings.set_boolean('use-panel-menu-icon', check.get_active());
352
let customMenuIconEntry = new Gtk.Entry({
353
halign: Gtk.Align.END
355
customMenuIconEntry.set_width_chars(15);
356
customMenuIconEntry.set_text(this.settings.get_strv('panel-menu-icon-name')[0]);
357
customMenuIconEntry.connect('changed', Lang.bind(this, function(entry) {
358
let iconName = entry.get_text();
359
this.settings.set_strv('panel-menu-icon-name', [iconName]);
362
this.settings.bind('use-panel-menu-icon', customMenuIconEntry, 'sensitive', Gio.SettingsBindFlags.DEFAULT);
363
customMenuIconBox.add(customMenuIcon);
364
customMenuIconBox.add(customMenuIconEntry);
366
let panelMenuBox = new Gtk.Box({
367
orientation: Gtk.Orientation.VERTICAL
370
let disableMenuHotSpotBox = new Gtk.Box({
372
orientation: Gtk.Orientation.HORIZONTAL,
379
let disableMenuHotSpot = new Gtk.CheckButton({
380
label: _("Disable Menu button hot spot"),
383
disableMenuHotSpot.set_active(this.settings.get_boolean('disable-panel-menu-hotspot'));
384
disableMenuHotSpot.connect('toggled', Lang.bind(this, function(check) {
385
this.settings.set_boolean('disable-panel-menu-hotspot', check.get_active());
388
disableMenuHotSpotBox.add(disableMenuHotSpot);
390
let disableMenuKeyboardAccelBox = new Gtk.Box({
392
orientation: Gtk.Orientation.HORIZONTAL,
399
let disableMenuKeyboardAccel = new Gtk.CheckButton({
400
label: _("Disable Menu button shortcut key"),
404
disableMenuKeyboardAccel.set_active(this.settings.get_boolean('disable-panel-menu-keyboard'));
405
disableMenuKeyboardAccel.connect('toggled', Lang.bind(this, function(check) {
406
this.settings.set_boolean('disable-panel-menu-keyboard', check.get_active());
409
let keyboardAccelEntry = new Gtk.Entry({
410
halign: Gtk.Align.END
412
keyboardAccelEntry.set_width_chars(15);
413
keyboardAccelEntry.set_text(this.settings.get_strv('panel-menu-keyboard-accelerator')[0]);
414
keyboardAccelEntry.connect('changed', Lang.bind(this, function(entry) {
415
let [key, mods] = Gtk.accelerator_parse(entry.get_text());
416
if(Gtk.accelerator_valid(key, mods)) {
417
keyboardAccelEntry["secondary-icon-name"] = null;
418
keyboardAccelEntry["secondary-icon-tooltip-text"] = null;
419
let shortcut = Gtk.accelerator_name(key, mods);
420
this.settings.set_strv('panel-menu-keyboard-accelerator', [shortcut]);
422
keyboardAccelEntry["secondary-icon-name"] = "dialog-warning-symbolic";
423
keyboardAccelEntry["secondary-icon-tooltip-text"] = _("Invalid accelerator. Try F12, <Super>space, <Ctrl><Alt><Shift>a, etc.");
427
this.settings.bind('disable-panel-menu-keyboard', keyboardAccelEntry, 'sensitive', Gio.SettingsBindFlags.INVERT_BOOLEAN);
428
disableMenuKeyboardAccelBox.add(disableMenuKeyboardAccel);
429
disableMenuKeyboardAccelBox.add(keyboardAccelEntry);
432
this.settings.bind('hide-panel-menu', panelMenuBox, 'sensitive', Gio.SettingsBindFlags.INVERT_BOOLEAN);
433
panelMenuBox.add(customMenuLabelBox);
434
panelMenuBox.add(customMenuIconBox);
435
panelMenuBox.add(disableMenuHotSpotBox);
436
panelMenuBox.add(disableMenuKeyboardAccelBox);
439
panelSettings.add(panelSettingsTitle);
440
panelSettings.add(disableHotCornerBox);
441
panelSettings.add(hidePanelViewBox);
442
panelSettings.add(panelViewBox);
443
panelSettings.add(hidePanelAppsBox);
444
panelSettings.add(panelAppsBox);
445
panelSettings.add(hidePanelMenuBox);
446
panelSettings.add(panelMenuBox);
451
let appsSettings = new Gtk.Box({
452
orientation: Gtk.Orientation.VERTICAL,
456
let appsSettingsTitle = new Gtk.Label({
457
label: _("<b>Menu Settings</b>"),
464
let hideFavoritesBox = new Gtk.Box({
466
orientation: Gtk.Orientation.HORIZONTAL,
473
let hideFavoritesLabel = new Gtk.Label({
474
label: _("Hide Shortcuts Panel"),
479
let hideFavoritesSwitch = new Gtk.Switch ({
480
halign: Gtk.Align.END
482
hideFavoritesSwitch.set_active(this.settings.get_boolean('hide-shortcuts'));
483
hideFavoritesSwitch.connect("notify::active", Lang.bind(this, function(check) {
484
this.settings.set_boolean('hide-shortcuts', check.get_active());
487
hideFavoritesBox.add(hideFavoritesLabel);
488
hideFavoritesBox.add(hideFavoritesSwitch);
490
let menuLayoutBox = new Gtk.Box({
492
orientation: Gtk.Orientation.HORIZONTAL,
499
let menuLayoutLabel = new Gtk.Label({label: _("Menu layout size"), hexpand:true, xalign:0});
500
let menuLayoutCombo = new Gtk.ComboBoxText({halign:Gtk.Align.END});
501
menuLayoutCombo.set_size_request(120, -1);
502
menuLayoutCombo.append_text(_('Large'));
503
menuLayoutCombo.append_text(_('Medium'));
504
menuLayoutCombo.append_text(_('Small'));
505
menuLayoutCombo.set_active(this.settings.get_enum('menu-layout'));
506
menuLayoutCombo.connect('changed', Lang.bind (this, function(widget) {
507
this.settings.set_enum('menu-layout', widget.get_active());
508
let selected = widget.get_active();
510
favoritesIconSizeCombo.set_active(iconSizes.indexOf(24));
511
appsListIconSizeCombo.set_active(iconSizes.indexOf(16));
512
appsGridIconSizeCombo.set_active(iconSizes.indexOf(32));
513
} else if (selected == 1) {
514
favoritesIconSizeCombo.set_active(iconSizes.indexOf(32));
515
appsListIconSizeCombo.set_active(iconSizes.indexOf(24));
516
appsGridIconSizeCombo.set_active(iconSizes.indexOf(48));
518
favoritesIconSizeCombo.set_active(iconSizes.indexOf(48));
519
appsListIconSizeCombo.set_active(iconSizes.indexOf(32));
520
appsGridIconSizeCombo.set_active(iconSizes.indexOf(64));
524
menuLayoutBox.add(menuLayoutLabel);
525
menuLayoutBox.add(menuLayoutCombo);
527
let shortcutAppsDisplayBox = new Gtk.Box({
529
orientation: Gtk.Orientation.HORIZONTAL,
536
let shortcutAppsDisplayLabel = new Gtk.Label({label: _("Icons to display on Shortcuts Panel"),
537
hexpand:true, xalign:0});
538
let shortcutAppsDisplayCombo = new Gtk.ComboBoxText({halign:Gtk.Align.END});
539
shortcutAppsDisplayCombo.set_size_request(120, -1);
540
shortcutAppsDisplayCombo.append_text(_('Favorites'));
541
shortcutAppsDisplayCombo.append_text(_('Places'));
542
shortcutAppsDisplayCombo.set_active(this.settings.get_enum('shortcuts-display'));
543
shortcutAppsDisplayCombo.connect('changed', Lang.bind (this, function(widget) {
544
this.settings.set_enum('shortcuts-display', widget.get_active());
547
shortcutAppsDisplayBox.add(shortcutAppsDisplayLabel);
548
shortcutAppsDisplayBox.add(shortcutAppsDisplayCombo);
550
let startupAppsDisplayBox = new Gtk.Box({
552
orientation: Gtk.Orientation.HORIZONTAL,
559
let startupAppsDisplayLabel = new Gtk.Label({label: _("Applications to display at startup"),
560
hexpand:true, xalign:0});
561
let startupAppsDisplayCombo = new Gtk.ComboBoxText({halign:Gtk.Align.END});
562
startupAppsDisplayCombo.set_size_request(120, -1);
563
startupAppsDisplayCombo.append_text(_('All'));
564
startupAppsDisplayCombo.append_text(_('Frequent'));
565
startupAppsDisplayCombo.set_active(this.settings.get_enum('startup-apps-display'));
566
startupAppsDisplayCombo.connect('changed', Lang.bind (this, function(widget) {
567
this.settings.set_enum('startup-apps-display', widget.get_active());
570
startupAppsDisplayBox.add(startupAppsDisplayLabel);
571
startupAppsDisplayBox.add(startupAppsDisplayCombo);
573
let startupViewModeBox = new Gtk.Box({
575
orientation: Gtk.Orientation.HORIZONTAL,
582
let startupViewModeLabel = new Gtk.Label({label: _("Default view mode for applications"),
583
hexpand:true, xalign:0});
584
let startupViewModeCombo = new Gtk.ComboBoxText({halign:Gtk.Align.END});
585
startupViewModeCombo.set_size_request(120, -1);
586
startupViewModeCombo.append_text(_('List'));
587
startupViewModeCombo.append_text(_('Grid'));
588
startupViewModeCombo.set_active(this.settings.get_enum('startup-view-mode'));
589
startupViewModeCombo.connect('changed', Lang.bind (this, function(widget) {
590
this.settings.set_enum('startup-view-mode', widget.get_active());
593
startupViewModeBox.add(startupViewModeLabel);
594
startupViewModeBox.add(startupViewModeCombo);
596
let categorySelectMethodBox = new Gtk.Box({
598
orientation: Gtk.Orientation.HORIZONTAL,
605
let categorySelectMethodLabel = new Gtk.Label({label: _("Category selection method"), hexpand:true, xalign:0});
606
let categorySelectMethodCombo = new Gtk.ComboBoxText({halign:Gtk.Align.END});
607
categorySelectMethodCombo.set_size_request(120, -1);
608
categorySelectMethodCombo.append_text(_('Hover'));
609
categorySelectMethodCombo.append_text(_('Click'));
610
categorySelectMethodCombo.set_active(this.settings.get_enum('category-selection-method'));
611
categorySelectMethodCombo.connect('changed', Lang.bind (this, function(widget) {
612
this.settings.set_enum('category-selection-method', widget.get_active());
615
categorySelectMethodBox.add(categorySelectMethodLabel);
616
categorySelectMethodBox.add(categorySelectMethodCombo);
619
let iconSizes = [16, 22, 24, 32, 48, 64];
621
let favoritesIconSizeBox = new Gtk.Box({
623
orientation: Gtk.Orientation.HORIZONTAL,
630
let favoritesIconSizeLabel = new Gtk.Label({label: _("Size of Shortcuts Panel icons"), hexpand:true, xalign:0});
631
let favoritesIconSizeCombo = new Gtk.ComboBoxText({halign:Gtk.Align.END});
632
favoritesIconSizeCombo.set_size_request(120, -1);
633
favoritesIconSizeCombo.append_text('16');
634
favoritesIconSizeCombo.append_text('22');
635
favoritesIconSizeCombo.append_text('24');
636
favoritesIconSizeCombo.append_text('32');
637
favoritesIconSizeCombo.append_text('48');
638
favoritesIconSizeCombo.append_text('64');
639
favoritesIconSizeCombo.set_active(iconSizes.indexOf(this.settings.get_int('shortcuts-icon-size')));
640
favoritesIconSizeCombo.connect('changed', Lang.bind (this, function(widget) {
641
this.settings.set_int('shortcuts-icon-size', iconSizes[widget.get_active()]);
644
favoritesIconSizeBox.add(favoritesIconSizeLabel);
645
favoritesIconSizeBox.add(favoritesIconSizeCombo);
647
let appsListIconSizeBox = new Gtk.Box({
649
orientation: Gtk.Orientation.HORIZONTAL,
656
let appsListIconSizeLabel = new Gtk.Label({label: _("Size of Application List icons"), hexpand:true, xalign:0});
657
let appsListIconSizeCombo = new Gtk.ComboBoxText({halign:Gtk.Align.END});
658
appsListIconSizeCombo.set_size_request(120, -1);
659
appsListIconSizeCombo.append_text('16');
660
appsListIconSizeCombo.append_text('22');
661
appsListIconSizeCombo.append_text('24');
662
appsListIconSizeCombo.append_text('32');
663
appsListIconSizeCombo.append_text('48');
664
appsListIconSizeCombo.append_text('64');
665
appsListIconSizeCombo.set_active(iconSizes.indexOf(this.settings.get_int('apps-list-icon-size')));
666
appsListIconSizeCombo.connect('changed', Lang.bind (this, function(widget) {
667
this.settings.set_int('apps-list-icon-size', iconSizes[widget.get_active()]);
670
appsListIconSizeBox.add(appsListIconSizeLabel);
671
appsListIconSizeBox.add(appsListIconSizeCombo);
673
let appsGridIconSizeBox = new Gtk.Box({
675
orientation: Gtk.Orientation.HORIZONTAL,
682
let appsGridIconSizeLabel = new Gtk.Label({label: _("Size of Application Grid icons"), hexpand:true, xalign:0});
683
let appsGridIconSizeCombo = new Gtk.ComboBoxText({halign:Gtk.Align.END});
684
appsGridIconSizeCombo.set_size_request(120, -1);
685
appsGridIconSizeCombo.append_text('16');
686
appsGridIconSizeCombo.append_text('22');
687
appsGridIconSizeCombo.append_text('24');
688
appsGridIconSizeCombo.append_text('32');
689
appsGridIconSizeCombo.append_text('48');
690
appsGridIconSizeCombo.append_text('64');
691
appsGridIconSizeCombo.set_active(iconSizes.indexOf(this.settings.get_int('apps-grid-icon-size')));
692
appsGridIconSizeCombo.connect('changed', Lang.bind (this, function(widget) {
693
this.settings.set_int('apps-grid-icon-size', iconSizes[widget.get_active()]);
696
appsGridIconSizeBox.add(appsGridIconSizeLabel);
697
appsGridIconSizeBox.add(appsGridIconSizeCombo);
699
appsSettings.add(appsSettingsTitle);
700
appsSettings.add(hideFavoritesBox);
701
appsSettings.add(menuLayoutBox);
702
appsSettings.add(shortcutAppsDisplayBox);
703
appsSettings.add(startupAppsDisplayBox);
704
appsSettings.add(startupViewModeBox);
705
appsSettings.add(categorySelectMethodBox);
706
appsSettings.add(favoritesIconSizeBox);
707
appsSettings.add(appsListIconSizeBox);
708
appsSettings.add(appsGridIconSizeBox);
711
frame.add(panelSettings);
712
frame.add(appsSettings);
717
let scrollWindow = new Gtk.ScrolledWindow({
718
'hscrollbar-policy': Gtk.PolicyType.AUTOMATIC,
719
'vscrollbar-policy': Gtk.PolicyType.AUTOMATIC,
720
'hexpand': true, 'vexpand': true
722
scrollWindow.add_with_viewport(frame);
724
this.add(scrollWindow);
730
Convenience.initTranslations();
733
function buildPrefsWidget() {
734
let widget = new GnoMenuPreferencesWidget({
735
orientation: Gtk.Orientation.VERTICAL,