diff options
Diffstat (limited to 'Library/UefiShellUfmCommandLib')
| -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 */ | 
