22
33import Gio from 'gi://Gio' ;
44import Gtk from 'gi://Gtk' ;
5+ import Adw from 'gi://Adw' ;
56
67import { ExtensionPreferences , gettext as _ } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js' ;
78import * as modsListNames from './src/modsListNames.js'
89
910export default class extends ExtensionPreferences {
10- getPreferencesWidget ( ) {
11+ fillPreferencesWindow ( window ) {
1112 const settings = this . getSettings ( )
1213
13- let prefsWidget = new Gtk . Grid ( {
14- margin_top : 18 ,
15- margin_bottom : 18 ,
16- margin_start : 18 ,
17- margin_end : 18 ,
18- column_spacing : 12 ,
19- row_spacing : 22 ,
20- visible : true
14+ const page = new Adw . PreferencesPage ( {
15+ icon_name : 'dialog-information-symbolic' ,
2116 } ) ;
17+ window . add ( page ) ;
2218
23- let title = new Gtk . Label ( {
24- label : `<b>${ _ ( 'settings-mods-list' ) } </b>` ,
25- halign : Gtk . Align . START ,
26- use_markup : true ,
27- visible : true
19+ const group = new Adw . PreferencesGroup ( {
20+ title : _ ( 'settings-mods-list' ) ,
21+ //description: _('settings-mods-list'),
2822 } ) ;
29- prefsWidget . attach ( title , 0 , 0 , 2 , 1 ) ;
23+ page . add ( group ) ;
3024
31- const mods = modsListNames . getNames ( )
25+ const mods_list = modsListNames . getNames ( )
26+ for ( let modNum = 0 ; modNum < mods_list . length ; modNum ++ ) {
27+ const key = mods_list [ modNum ]
3228
33- for ( let modNum = 0 ; modNum < mods . length ; modNum ++ ) {
34- const key = mods [ modNum ]
35-
36- const row = modNum + 1
37-
38- const label = new Gtk . Label ( { label : _ ( key ) , halign : Gtk . Align . START } )
29+ const rowNum = modNum + 1
3930
31+ let row = null
4032 const value = settings . get_value ( key )
41- let toggle = null
4233 switch ( value . get_type_string ( ) ) {
4334 case "s" :
44- toggle = new Gtk . Box ( { halign : Gtk . Align . END , css_classes : [ 'linked' ] } )
35+ row = new Adw . ActionRow ( {
36+ title : _ ( key ) ,
37+ } )
38+ const toggle = new Gtk . Box ( { halign : Gtk . Align . END , css_classes : [ 'linked' ] } )
4539 const value_enum = settings . get_enum ( key )
4640 const value_string = settings . get_string ( key )
4741
@@ -51,26 +45,26 @@ export default class extends ExtensionPreferences {
5145 for ( let v in values ) {
5246 btn = new Gtk . ToggleButton ( {
5347 active : value_string === values [ v ] ,
54- label : values [ v ] ,
55- group : btn
48+ label : values [ v ] ,
49+ group : btn
5650 } )
5751 toggle . append ( btn )
5852 btn . connect ( 'toggled' , button => {
5953 button . active && settings . set_string ( key , values [ v ] )
6054 } )
6155 }
56+ row . add_suffix ( toggle )
6257 break
6358
6459 default :
65- toggle = new Gtk . Switch ( { halign : Gtk . Align . END , active : settings . get_boolean ( key ) } )
66- settings . bind ( key , toggle , 'active' , Gio . SettingsBindFlags . DEFAULT )
60+ row = new Adw . SwitchRow ( {
61+ title : _ ( key ) ,
62+ //subtitle: _(key),
63+ } )
64+ settings . bind ( key , row , 'active' , Gio . SettingsBindFlags . DEFAULT )
6765 }
6866
69- prefsWidget . attach ( label , 0 , row , 1 , 1 ) ;
70- prefsWidget . attach ( toggle , 1 , row , 1 , 1 ) ;
67+ group . add ( row ) ;
7168 }
72-
73-
74- return prefsWidget
7569 }
7670}
0 commit comments