skrivert/src/modules/keyboard.ts

179 lines
3.4 KiB
TypeScript

import { goto } from '$app/navigation';
import { PUBLIC_TAURI } from '$env/static/public';
import type { ExpanderType } from "./index.d.ts";
import { getCurrentWindow } from "@tauri-apps/api/window";
import { incTextSize, decTextSize, selectNextColor, toggleMenuOpen, appState } from "$lib/stores.svelte"
let fullscreen = true;
export const defaultExpanders: Map<string, ExpanderType> = new Map();
export const hotkeys: Map<string, any> = new Map();
defaultExpanders.set("\n", {
key: { keyCode: 188, shiftKey: false },
symbol: "\n",
fullstop: true,
});
defaultExpanders.set(" ", {
key: { keyCode: 190, shiftKey: false },
symbol: " ",
fullstop: false,
});
defaultExpanders.set(".", {
key: { keyCode: 190, shiftKey: false },
symbol: ".",
fullstop: true,
});
defaultExpanders.set("!", {
key: { keyCode: 49, shiftKey: true },
symbol: "!",
fullstop: true,
});
defaultExpanders.set("?", {
key: { keyCode: 187, shiftKey: true },
symbol: "?",
fullstop: true,
});
defaultExpanders.set("+", {
key: { keyCode: 187, shiftKey: false },
symbol: "+",
fullstop: false,
});
defaultExpanders.set(",", {
key: { keyCode: 188, shiftKey: false },
symbol: ",",
fullstop: false,
});
defaultExpanders.set("(", {
key: { keyCode: 56, shiftKey: true },
symbol: "(",
fullstop: false,
});
defaultExpanders.set(")", {
key: { keyCode: 57, shiftKey: true },
symbol: ")",
fullstop: false,
});
defaultExpanders.set('"', {
key: { keyCode: 50, shiftKey: true },
symbol: '"',
fullstop: false,
});
defaultExpanders.set("'", {
key: { keyCode: 191, shiftKey: false },
symbol: "'",
fullstop: false,
});
defaultExpanders.set("-", {
key: { keyCode: 189, shiftKey: false },
symbol: "-",
fullstop: false,
});
defaultExpanders.set(":", {
key: { keyCode: 190, shiftKey: true },
symbol: ":",
fullstop: false,
});
defaultExpanders.set(",", {
key: { keyCode: 188, shiftKey: false },
symbol: ",",
fullstop: false,
});
defaultExpanders.set(";", {
key: { keyCode: 188, shiftKey: true },
symbol: ":",
fullstop: false,
});
hotkeys.set("Home", {
action: (e) => {
e.preventDefault()
appState.debug = !appState.debug;
}
})
hotkeys.set("F4", {
action: (e) => {
e.preventDefault()
console.log("Clear text", appState.text)
appState.text = ""
}
})
hotkeys.set("F5", {
action: (e) => {
e.preventDefault()
toggleMenuOpen()
console.log("Menu open", appState.menuOpen)
}
})
hotkeys.set("F6", {
action: (e) => {
e.preventDefault()
console.log("Decrease text size")
decTextSize()
}
})
hotkeys.set("F7", {
action: (e) => {
e.preventDefault()
console.log("Increase text size")
incTextSize()
}
})
hotkeys.set("F8", {
action: (e) => {
e.preventDefault()
console.log("Increase text size")
selectNextColor()
}
})
hotkeys.set("F2", {
action: (e) => {
e.preventDefault()
toggleMenuOpen(false)
appState.open = "create"
}
})
hotkeys.set("F11", {
action: (e) => {
console.log("Toggle fullscreen")
console.log(PUBLIC_TAURI)
if (PUBLIC_TAURI == true) {
e.preventDefault()
if (fullscreen) {
getCurrentWindow().setFullscreen(false).then(() => {
fullscreen = false
});
} else {
getCurrentWindow().setFullscreen(true).then(() => {
fullscreen = true
});
}
}
}
})
hotkeys.set("F12", {
action: (e) => {
e.preventDefault()
console.log("Open import page")
goto("/import")
}
})
hotkeys.set("Escape", {
action: (e) => {
e.preventDefault()
console.log("Close stuff")
appState.open = ""
}
})