aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoursoir <chat@joursoir.net>2021-12-01 19:55:57 +0300
committerJoursoir <chat@joursoir.net>2021-12-01 19:55:57 +0300
commit547e80784f8a4ff5fc558870121cb7da591891fb (patch)
tree36e498b311580c1821d0b3db0dd4694da7744766
parent1742773eee5ead8b2a96fc1151c584d24a49d161 (diff)
downloadufm-547e80784f8a4ff5fc558870121cb7da591891fb.tar.gz
ufm-547e80784f8a4ff5fc558870121cb7da591891fb.tar.bz2
ufm-547e80784f8a4ff5fc558870121cb7da591891fb.zip
implement shortcuts and some actions
-rw-r--r--Library/UefiShellUfmCommandLib/actions.c55
-rw-r--r--Library/UefiShellUfmCommandLib/actions.h28
2 files changed, 83 insertions, 0 deletions
diff --git a/Library/UefiShellUfmCommandLib/actions.c b/Library/UefiShellUfmCommandLib/actions.c
new file mode 100644
index 0000000..8c75c67
--- /dev/null
+++ b/Library/UefiShellUfmCommandLib/actions.c
@@ -0,0 +1,55 @@
+#include <Library/UefiLib.h>
+#include <Library/DebugLib.h>
+#include <Library/ShellLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+
+#include "dir.h"
+#include "fs.h"
+
+#include "menu-bar.h"
+#include "command-bar.h"
+#include "panel.h"
+#include "filemanager.h"
+#include "actions.h"
+
+BOOLEAN jump_up(VOID)
+{
+ panel_move_cursor(fm_ctx.curpanel, fm_ctx.curpanel->curline - 1);
+ return TRUE;
+}
+
+BOOLEAN jump_down(VOID)
+{
+ panel_move_cursor(fm_ctx.curpanel, fm_ctx.curpanel->curline + 1);
+ return TRUE;
+}
+
+BOOLEAN change_panel(VOID)
+{
+ panel_set_active(fm_ctx.curpanel, FALSE);
+ fm_ctx.curpanel = (fm_ctx.curpanel == fm_ctx.left) ? fm_ctx.right : fm_ctx.left;
+ panel_set_active(fm_ctx.curpanel, TRUE);
+ return TRUE;
+}
+
+BOOLEAN mark(VOID)
+{
+ panel_mark_file(fm_ctx.curpanel, fm_ctx.curpanel->curline);
+ return TRUE;
+}
+
+BOOLEAN show_filesystems(VOID)
+{
+ return panel_cd_to(fm_ctx.curpanel, NULL);
+}
+
+BOOLEAN do_nothing(VOID)
+{
+ return TRUE;
+}
+
+BOOLEAN quit(VOID)
+{
+ fm_ctx.flag_run = FALSE;
+ return TRUE;
+}
diff --git a/Library/UefiShellUfmCommandLib/actions.h b/Library/UefiShellUfmCommandLib/actions.h
new file mode 100644
index 0000000..4a6b113
--- /dev/null
+++ b/Library/UefiShellUfmCommandLib/actions.h
@@ -0,0 +1,28 @@
+#ifndef UFM_ACTIONS_H
+#define UFM_ACTIONS_H
+
+#include <Uefi.h>
+
+enum ACTION_TYPE {
+ ACTION_ROUTINE = 0,
+ ACTION_CMD,
+ ACTION_LAST
+};
+
+struct shortcut {
+ enum ACTION_TYPE type;
+ EFI_INPUT_KEY key;
+ BOOLEAN (*action)(VOID);
+ CHAR16 *button_name;
+ CHAR16 *cmd_name;
+};
+
+BOOLEAN jump_up(VOID);
+BOOLEAN jump_down(VOID);
+BOOLEAN change_panel(VOID);
+BOOLEAN mark(VOID);
+BOOLEAN show_filesystems(VOID);
+BOOLEAN do_nothing(VOID);
+BOOLEAN quit(VOID);
+
+#endif /* UFM_ACTIONS_H */