aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorverdant <im@verdant.ee>2026-07-23 03:02:19 +0800
committerverdant <im@verdant.ee>2026-07-23 03:02:19 +0800
commit5a557f19848056a388cc6ac8596b8587d98b3860 (patch)
tree68169d4aff93b6623a0237fe2afda41475ca6451
parent6ef3bfdf2f7e19cd74220a2c8c56250a7f13f0ce (diff)
downloadsf-5a557f19848056a388cc6ac8596b8587d98b3860.tar.gz
sf-5a557f19848056a388cc6ac8596b8587d98b3860.zip
Implement keys handling
'q' for quiting, j and k for scrolling up and down in the file manager
-rw-r--r--keys.c29
-rw-r--r--keys.h9
2 files changed, 38 insertions, 0 deletions
diff --git a/keys.c b/keys.c
new file mode 100644
index 0000000..7bfb2df
--- /dev/null
+++ b/keys.c
@@ -0,0 +1,29 @@
+#include "keys.h"
+
+#include <ncurses.h>
+#include <stdlib.h>
+
+#include "fm.h"
+#include "log.h"
+#include "wm.h"
+
+void handling_keys(int ch, terminal *t, fm_info *i)
+{
+ switch (ch) {
+ case KEY_RESIZE:;
+ /* Quit */
+ case 'q':
+ endwin();
+ exit(0);
+ /* Down */
+ case 'j':
+ fm_entries_scrool(t, i, 1);
+ break;
+ case 'k':
+ fm_entries_scrool(t, i, -1);
+ break;
+
+ default:
+ return;
+ }
+}
diff --git a/keys.h b/keys.h
new file mode 100644
index 0000000..9562059
--- /dev/null
+++ b/keys.h
@@ -0,0 +1,9 @@
+#ifndef SF_KEYS_H
+#define SF_KEYS_H
+
+#include "fm.h"
+#include "wm.h"
+
+void handling_keys(int ch, terminal *t, fm_info *i);
+
+#endif /* SF_KEYS_H */