diff options
| author | Aakarsh Kashyap <[email protected]> | 2026-06-29 12:19:45 +0530 |
|---|---|---|
| committer | Aakarsh Kashyap <[email protected]> | 2026-06-29 12:19:45 +0530 |
| commit | 119e47338ef9b0adea7b584239f9f6911e4da5cb (patch) | |
| tree | 89a91d60c68f0a2265fc2ccec753f98972908f98 | |
| parent | 19df8e77977f634064aed3c0332d1b0fc56e158b (diff) | |
Added screen centering feature
| -rw-r--r-- | include/reader.h | 1 | ||||
| -rwxr-xr-x | run | bin | 0 -> 57080 bytes | |||
| -rw-r--r-- | src/main.cpp | 3 | ||||
| -rw-r--r-- | src/reader.cpp | 16 |
4 files changed, 18 insertions, 2 deletions
diff --git a/include/reader.h b/include/reader.h index 27b7a90..365500c 100644 --- a/include/reader.h +++ b/include/reader.h @@ -59,6 +59,7 @@ void init_editor(editor_cfg *cfg); void die(const char *s); void disable_raw(editor_cfg *cfg); void enable_raw(editor_cfg *cfg); +void window_size_callback(editor_cfg *cfg); void editor_refresh_scrn(editor_cfg *cfg); char editor_readkey(); Binary files differdiff --git a/src/main.cpp b/src/main.cpp index 10c3df6..97e9dce 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,4 +1,4 @@ -#include "reader.h" +#include "../include/reader.h" int main(int argc, char *argv[]) { try { @@ -44,6 +44,7 @@ int main(int argc, char *argv[]) { while(1) { for (std::string &k: data) { if (k.empty()) continue; + window_size_callback(cfg); editor_refresh_scrn(cfg); int mid = k.size() / 2; diff --git a/src/reader.cpp b/src/reader.cpp index 508205d..1d49d4e 100644 --- a/src/reader.cpp +++ b/src/reader.cpp @@ -1,5 +1,7 @@ -#include "reader.h" +#include "../include/reader.h" #include <csignal> +#include <iostream> + void die(const char *s) { write(STDOUT_FILENO, "\x1b[2J", 4); @@ -103,6 +105,18 @@ int get_window_size(int *rows, int *cols) { return 0; } +void window_size_callback(editor_cfg *cfg) { + int a{}; + int b{}; + + if (get_window_size(&a, &b) != 0) + std::cout << "[err]: window_size_callback: get_window_size\n"; + if ((cfg->screencols != a) || (cfg->screencols != b)) { + cfg->screenrows = a; + cfg->screencols = b; + } +} + void editor_refresh_scrn(editor_cfg *cfg) { append_buffer::instance().append("\x1b[2J", 4); char buff[32]; |
