]>
git.proxmox.com Git - rustc.git/blob - src/librustdoc/html/static/js/settings.js
1 // Local js definitions:
2 /* global getSettingValue, getVirtualKey, onEachLazy, updateLocalStorage, updateSystemTheme */
5 function changeSetting(settingName
, value
) {
6 updateLocalStorage("rustdoc-" + settingName
, value
);
9 case "preferred-dark-theme":
10 case "preferred-light-theme":
11 case "use-system-theme":
17 function handleKey(ev
) {
18 // Don't interfere with browser shortcuts
19 if (ev
.ctrlKey
|| ev
.altKey
|| ev
.metaKey
) {
22 switch (getVirtualKey(ev
)) {
26 ev
.target
.checked
= !ev
.target
.checked
;
32 function setEvents() {
33 onEachLazy(document
.getElementsByClassName("slider"), function(elem
) {
34 var toggle
= elem
.previousElementSibling
;
35 var settingId
= toggle
.id
;
36 var settingValue
= getSettingValue(settingId
);
37 if (settingValue
!== null) {
38 toggle
.checked
= settingValue
=== "true";
40 toggle
.onchange = function() {
41 changeSetting(this.id
, this.checked
);
43 toggle
.onkeyup
= handleKey
;
44 toggle
.onkeyrelease
= handleKey
;
46 onEachLazy(document
.getElementsByClassName("select-wrapper"), function(elem
) {
47 var select
= elem
.getElementsByTagName("select")[0];
48 var settingId
= select
.id
;
49 var settingValue
= getSettingValue(settingId
);
50 if (settingValue
!== null) {
51 select
.value
= settingValue
;
53 select
.onchange = function() {
54 changeSetting(this.id
, this.value
);
59 window
.addEventListener("DOMContentLoaded", setEvents
);