Restructured header menus
mellobacon committed
Nov 25, 2022 at 14:02 UTC
3d8ad7666127bdf8038ff8080ce034b2abb3bd4c
4 files changed
+70
-2
src/components/Header/Header.svelte
+1
-2
@@ -1,7 +1,7 @@
1
<script lang="ts">
2
import Menu from "../Menu/Menu.svelte";
3
import "../../overrides.css";
4
- import { filemenu, editmenu, viewmenu, runmenu, helpmenu} from "../Menu/menu";
4
+ import { filemenu, editmenu, viewmenu, runmenu, helpmenu} from "./menu";
5
import { appWindow } from "@tauri-apps/api/window";
6
import { workspacename } from "../FileTree/scripts/TreeStore";
7
</script>
@@ -45,7 +45,6 @@
45
#header {
46
width: 100%;
47
display: flex;
48
- height: 2rem;
48
align-items: center;
49
border-bottom: 1px solid #393939;
50
}
src/components/Header/header_menus/EditMenu.ts
new
+1
@@ -0,0 +1 @@
1
+export {}
\ No newline at end of file
src/components/Header/header_menus/FileMenu.ts
new
+22
@@ -0,0 +1,22 @@
1
+import { filetree, workspacename } from "../../FileTree/scripts/TreeStore";
2
+import { data, workspace } from "../../FileTree/scripts/TreeData";
3
+import { addFileTab } from "../../Tabs/scripts/Tab";
4
+import { getFile, saveFile } from "../../../scripts/EditorFile";
5
+
6
+export async function addNewFile() {
7
+ await addFileTab();
8
+}
9
+export async function openFile() {
10
+ let path = await getFile();
11
+ if (path === undefined) return;
12
+ await addFileTab(path);
13
+}
14
+export async function openFolder() {
15
+ let treedata = await data();
16
+ if (treedata === undefined) return;
17
+ filetree.set(treedata);
18
+ workspacename.set(workspace());
19
+}
20
+export async function saveOpenFile() {
21
+ await saveFile();
22
+}
\ No newline at end of file
src/components/Header/menu.ts
new
+46
@@ -0,0 +1,46 @@
1
+import { appWindow } from "@tauri-apps/api/window";
2
+import { addNewFile, openFile, openFolder, saveOpenFile } from "./header_menus/FileMenu";
3
+export const filemenu = [
4
+ { option: "New File...", shortcut: "Ctrl + N", onclick: addNewFile },
5
+ { option: "Open File...", shortcut: "Ctrl + O", onclick: openFile },
6
+ { option: "Open Folder", shortcut: "Ctrl + K", onclick: openFolder },
7
+ { option: "Open Recent", onclick: () => { console.log("click"); } },
8
+ { option: "Save File", shortcut: "Ctrl + S", onclick: saveOpenFile, divider: true },
9
+ { option: "Save File As...", shortcut: "Ctrl + Shift + S", onclick: saveOpenFile },
10
+ { option: "Save All", shortcut: "Ctrl + Shift + K", onclick: () => { console.log("click"); } },
11
+ { option: "Settings", onclick: () => { console.log("click"); }, divider: true },
12
+ { option: "Exit", onclick: async () => { await appWindow.close(); } }
13
+];
14
+export const editmenu = [
15
+ { option: "Undo", shortcut: "Ctrl + Z", onclick: () => { console.log("click"); } },
16
+ { option: "Redo", shortcut: "Ctrl + Y", onclick: () => { console.log("click"); } },
17
+ { option: "Delete", shortcut: "Delete", onclick: () => { console.log("click"); } },
18
+ { option: "Cut", shortcut: "Ctrl + X", onclick: () => { console.log("click"); }, divider: true },
19
+ { option: "Copy", shortcut: "Ctrl + C", onclick: () => { console.log("click"); } },
20
+ { option: "Paste", shortcut: "Ctrl + V", onclick: () => { console.log("click"); } },
21
+ { option: "Find", shortcut: "Ctrl + F", onclick: () => { console.log("click"); }, divider: true },
22
+ { option: "Select All", shortcut:"Ctrl + A", onclick: () => { console.log("click"); } }
23
+];
24
+export const viewmenu = [
25
+ { option: "Layout", onclick: () => { console.log("click"); } },
26
+ { option: "Appearance", onclick: () => { console.log("click"); } },
27
+ { option: "Plugins", onclick: () => { console.log("click"); } },
28
+ { option: "Toggle Theme", shortcut: "Ctrl + Alt + T", onclick: () => { console.log("click"); }, divider: true },
29
+ { option: "Toggle Windows", onclick: () => { console.log("click"); } }
30
+];
31
+export const runmenu = [
32
+ { option: "Build", shortcut: "Ctrl + B", onclick: () => { console.log("click"); } },
33
+ { option: "Run", shortcut: "Ctrl + F5", onclick: () => { console.log("click"); } },
34
+ { option: "Run without debugging", shortcut: "F5", onclick: () => { console.log("click"); } },
35
+ { option: "Add configuration", onclick: () => { console.log("click"); }, divider: true },
36
+ { option: "Edit configuration", onclick: () => { console.log("click"); } },
37
+ { option: "Install debugger...", onclick: () => { console.log("click"); } },
38
+];
39
+export const helpmenu = [
40
+ { option: "Documentation", onclick: () => { console.log("click"); } },
41
+ { option: "View Commands", onclick: () => { console.log("click"); } },
42
+ { option: "Toggle developer tools", onclick: () => { console.log("click"); } },
43
+ { option: "Release Notes", onclick: () => { console.log("click"); }, divider: true },
44
+ { option: "Check for Updates", onclick: async() => { console.log("click"); } },
45
+ { option: "About Editor", onclick: async() => { console.log("click"); } },
46
+];
\ No newline at end of file