@setoelkahfi / svara / commits / 3d8ad76

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