From 47f5ce53d6b7bbc57eaaaceda794a10acc5f4b56 Mon Sep 17 00:00:00 2001 From: Max <51083570+DRdrProfessor@users.noreply.github.com> Date: Sun, 28 Jan 2024 01:10:59 +0100 Subject: [PATCH] Testing ncurses for TUI --- src/net/netex.c | 2 +- src/server/CMakeLists.txt | 3 ++- src/server/main.c | 2 ++ src/server/server.c | 3 ++- src/server/server.h | 2 ++ src/server/srv_tui.c | 40 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 src/server/srv_tui.c diff --git a/src/net/netex.c b/src/net/netex.c index 3772020..20e2dab 100644 --- a/src/net/netex.c +++ b/src/net/netex.c @@ -21,7 +21,7 @@ void netex_init(void) if (has_colors() && can_change_color()) { start_color(); - PRINT_LINE("%i colors available, %i color pairs available.", COLORS, COLOR_PAIRS); + //PRINT_LINE("%i colors available, %i color pairs available.", COLORS, COLOR_PAIRS); //TODO: Make color pairs } // OpenSSL diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index 7b9a2f7..576cbcf 100644 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -1,7 +1,8 @@ add_executable(netex_svr "main.c" "server.c" - server.h) + "srv_tui.c" + "server.h") target_include_directories(netex_svr PRIVATE ${CMAKE_SOURCE_DIR}/src/net/include) target_link_libraries(netex_svr netex) \ No newline at end of file diff --git a/src/server/main.c b/src/server/main.c index 24abb37..3729e95 100644 --- a/src/server/main.c +++ b/src/server/main.c @@ -12,6 +12,8 @@ int main(int argc, char *argv[]) { netex_init(); + setup_windows(); + getch(); const int init_result = initialize_server(argc, argv); if (init_result) { diff --git a/src/server/server.c b/src/server/server.c index 42bd752..15de8ed 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -1,3 +1,5 @@ +#include "server.h" + #include #include #include @@ -40,7 +42,6 @@ int initialize_server(int argc, char* argv[]) WARN("Failed to save configuration to disk, default config is only available in memory!"); } } - // Socket const int64_t portnum = config_get_int(srv_configuration, "Connection.Port"); char* hostname = config_get_string(srv_configuration, "Connection.BindIP"); diff --git a/src/server/server.h b/src/server/server.h index 116ab9d..5fc4584 100644 --- a/src/server/server.h +++ b/src/server/server.h @@ -4,4 +4,6 @@ int initialize_server(int argc, char* argv[]); int server_execute(void); +int setup_windows(void); + #endif //SERVER_H diff --git a/src/server/srv_tui.c b/src/server/srv_tui.c new file mode 100644 index 0000000..8232d86 --- /dev/null +++ b/src/server/srv_tui.c @@ -0,0 +1,40 @@ +// +// Created by max on 28-1-24. +// + +#include + +#include "server.h" + +// INFO +// https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ +// + +WINDOW *info_win, *log_win; + +int setup_windows(void) +{ + int ymax,xmax; + getmaxyx(stdscr, ymax, xmax); + info_win = newwin(15, xmax-1, 1, 1); + /*int half_scr = xmax * 100 / 50; = add 50 percent of num -> 100 + 50% = 150 + half_scr = xmax * 50 / 100; = get 50 percent of num -> 100 - 50% = 50 + */ + log_win = newwin(ymax-16, xmax * 50 / 100, 16, 1); + refresh(); + box(info_win, 0, 0); + box(log_win, 0, 0); + mvwprintw(info_win, 0, 1, " Info window "); + mvwprintw(log_win, 0, 1, " Log window "); + for (int i = 0; i != 15; i++) + { + mvwprintw(log_win, i + 1, 1, "Test!"); + } + wrefresh(info_win); + wrefresh(log_win); + return 0; +} +void calculate_wind_sizes(void) +{ + //TODO: calculate the size of the windows on the screen, called when first start and on screen resize. +} \ No newline at end of file