MCPcopy Create free account
hub / github.com/emasab/shelltile / createStringSetting

Function createStringSetting

prefs.js:89–157  ·  view source on GitHub ↗

Adapted from https://developer.gnome.org/gnome-devel-demos/stable/combobox.js.html.en#combobox * @author Eemil Lagerspetz

(settings, setting)

Source from the content-addressed store, hash-verified

87 * @author Eemil Lagerspetz
88 */
89function createStringSetting(settings, setting){
90
91 let settingsV = settings[setting];
92 let settingsId = setting;
93
94 let hbox = new Gtk.Box({
95 orientation: Gtk.Orientation.HORIZONTAL,
96 margin_top: 5
97 });
98
99 let setting_label = new Gtk.Label({
100 label: settingsV.label,
101 xalign: 0,
102 hexpand: true,
103 margin_right: 20
104 });
105
106 // This is to add the 'combo' filtering options
107 store = new Gtk.ListStore();
108 store.set_column_types([GObject.TYPE_STRING, GObject.TYPE_STRING]);
109 store.set(store.append(), [0], ['Ctrl']);
110 store.set(store.append(), [0], ['Super']);
111 store.set(store.append(), [0], [_('Ctrl or Super')]);
112
113 combo = new Gtk.ComboBox({
114 model: store
115 });
116 renderer = new Gtk.CellRendererText();
117 combo.pack_start(renderer, false);
118 combo.add_attribute(renderer, "text", 0);
119 combo.set_active(0);
120 let previousValue = gsettings.get_string(settingsId);
121 if (previousValue === 'Super')
122 combo.set_active(1);
123 if (previousValue === 'Ctrl or Super')
124 combo.set_active(2);
125
126 combo.connect('changed', (widget) => {
127 let model, active, type, text, filter;
128
129 model = widget.get_model();
130 active = widget.get_active_iter()[1];
131
132 type = model.get_value(active, 0);
133 gsettings.set_string(settingsId, type);
134 });
135
136
137 // Create the combobox
138 /* this.tile_key_setting = new Gtk.ComboBoxText();
139
140 let options = ["Ctrl", "Super", "Ctrl or Super"];
141
142 for (let i = 0; i < options.length; i++ ) {
143 this.tile_key_setting.append_text(options[i]);
144 }
145
146 this.tile_key_setting.set_active(0);*/

Callers 1

buildHboxFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected