diff options
-rw-r--r-- | Library/UefiShellUfmCommandLib/actions.c | 55 | ||||
-rw-r--r-- | Library/UefiShellUfmCommandLib/actions.h | 28 |
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 */ |