diff --git a/TODO.md b/TODO.md index 0a873d9..8df2dc1 100644 --- a/TODO.md +++ b/TODO.md @@ -2,7 +2,7 @@ ## Current: - [ ] Separate common structures in the common.h -- [ ] Bottom panel attach to the windows +- [ ] Fix sizes in upload window - [ ] Testing - [ ] Sorting in the file list - [ ] File upload multiline description (window) diff --git a/src/widget/app.c b/src/app.c similarity index 90% rename from src/widget/app.c rename to src/app.c index fb79822..ab0102d 100644 --- a/src/widget/app.c +++ b/src/app.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: MIT */ /* Copyright (c) 2026 Oleksandr Zhylin */ -#include "app.h" +#include "../app.h" #include #include #include @@ -14,13 +14,13 @@ void ac_file(WINDOW *win, int is_action_w); -w_app_t *w_app_init() { +app_t *app_init() { /* get values from terminal size */ int32_t y_max, x_max; getmaxyx(stdscr, y_max, x_max); /* allocate app struct memory */ - w_app_t *_app = calloc(1, sizeof(w_app_t)); + app_t *_app = calloc(1, sizeof(app_t)); /* associate values for screen size */ _app->coordinates.max_x = _app->coordinates.cur_x = x_max; @@ -34,10 +34,10 @@ w_app_t *w_app_init() { /* print top and bottom bars */ _app->main_ui.b_keys_len = 0; - w_app_draw_bars(_app); + app_draw_bars(_app); /* here goes box borders */ - w_app_draw_borders(_app); + app_draw_borders(_app); /* NULL to main_ui */ MAIN_UI_RESET(_app); @@ -51,7 +51,7 @@ w_app_t *w_app_init() { return _app; } -void w_app_init_nc() { +void app_init_nc() { initscr(); cbreak(); keypad(stdscr, TRUE); @@ -71,7 +71,7 @@ void w_app_init_nc() { } } -void w_app_draw_borders(w_app_t *app) { +void app_draw_borders(app_t *app) { if (app->modal.win != NULL && !app->modal.needs_update) { return; } @@ -93,9 +93,9 @@ int64_t print_bottom_menu_option(WINDOW *win, char *key, char *title, int64_t y, return key_len + title_len; } -void w_app_draw_bbar(w_app_t *app); +void app_draw_bbar(app_t *app); -void w_app_draw_bars(w_app_t *app) { +void app_draw_bars(app_t *app) { char top_text[64] = "Hello!"; wattrset(app->win, A_REVERSE); @@ -119,11 +119,11 @@ void w_app_draw_bars(w_app_t *app) { /* add content to the bottom bar */ if (app->main_ui.b_keys_len > 0) { - w_app_draw_bbar(app); + app_draw_bbar(app); } } -void w_app_draw_bbar(w_app_t *app) { +void app_draw_bbar(app_t *app) { wattrset(app->win, A_REVERSE); int t_margin = 0; /* tab margin */ int c_size = @@ -150,8 +150,8 @@ void w_app_draw_bbar(w_app_t *app) { wattroff(app->win, A_REVERSE); } -void w_app_refresh(w_app_t *app) { - w_app_draw_borders(app); +void app_refresh(app_t *app) { + app_draw_borders(app); wnoutrefresh(app->win); if (app->modal.win != NULL) { if (app->modal.is_initiated != 0) { @@ -164,7 +164,7 @@ void w_app_refresh(w_app_t *app) { doupdate(); } -void w_app_destroy(w_app_t *app, int32_t exit_code) { +void app_destroy(app_t *app, int32_t exit_code) { delwin(app->win); endwin(); app->win = NULL; diff --git a/src/widget/app.h b/src/app.h similarity index 60% rename from src/widget/app.h rename to src/app.h index 0ba7ed4..c79523d 100644 --- a/src/widget/app.h +++ b/src/app.h @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ /* Copyright (c) 2026 Oleksandr Zhylin */ -#ifndef W_APP_H -#define W_APP_H +#ifndef APP_H +#define APP_H #include "../main.h" #include "../common.h" @@ -13,7 +13,7 @@ typedef enum { modal_color_pair = 3, -} w_app_color; +} app_color; typedef struct { WINDOW *win; @@ -25,15 +25,15 @@ typedef struct { void (*active_callback)(w_cb_args_t *args); void *active_widget; main_window_t main_ui; -} w_app_t; +} app_t; -w_app_t *w_app_init(void); -void w_app_init_nc(void); -void w_app_destroy(w_app_t *app, int32_t exit_code); -void w_app_draw_borders(w_app_t *app); -void w_app_draw_bars(w_app_t *app); -void w_app_refresh(w_app_t *app); -void w_app_draw_modal(w_app_t *app); -void w_app_draw_bbar(w_app_t *app); +app_t *app_init(void); +void app_init_nc(void); +void app_destroy(app_t *app, int32_t exit_code); +void app_draw_borders(app_t *app); +void app_draw_bars(app_t *app); +void app_refresh(app_t *app); +void app_draw_modal(app_t *app); +void app_draw_bbar(app_t *app); #endif // N_APP_H \ No newline at end of file diff --git a/src/connection.c b/src/connection.c index e51ed21..cb60967 100644 --- a/src/connection.c +++ b/src/connection.c @@ -15,7 +15,7 @@ #include #include -void connect_to_server(w_app_t *app) { +void connect_to_server(app_t *app) { struct sockaddr_in server; server.sin_family = AF_INET; server.sin_addr.s_addr = app->params->addr; @@ -23,10 +23,10 @@ void connect_to_server(w_app_t *app) { if (-1 == connect(app->params->sd, (struct sockaddr *)&server, sizeof(server))) { perror("connect"); - w_app_destroy(app, 2); + app_destroy(app, 2); } app->params->is_connected = TRUE; - w_app_draw_bars(app); + app_draw_bars(app); } void init_params(params_t *params) { diff --git a/src/connection.h b/src/connection.h index 2336c51..26da6f2 100644 --- a/src/connection.h +++ b/src/connection.h @@ -6,7 +6,7 @@ #include "main.h" #include -void connect_to_server(w_app_t *params); +void connect_to_server(app_t *params); void init_params(params_t *restrict); void clear_params(params_t *params); void get_ip_port(params_t *params, char *ip, char *port); diff --git a/src/draw_modal.c b/src/draw_modal.c index 454df71..2e15c7d 100644 --- a/src/draw_modal.c +++ b/src/draw_modal.c @@ -5,7 +5,7 @@ #include #include "main.h" -void w_app_draw_modal(w_app_t *app) { +void app_draw_modal(app_t *app) { if (app->modal.needs_destroy || (app->query_args->state == S_WAIT_SERVER && app->modal.is_initiated)) { w_dialogue_destroy(&(app->modal), app); diff --git a/src/main.c b/src/main.c index d69cc4f..fbebc15 100644 --- a/src/main.c +++ b/src/main.c @@ -16,25 +16,25 @@ #include #include "main.h" -#include "app.h" +#include "../app.h" #include "connection.h" #include "file_list.h" #include "query.h" uint32_t m_id = 0; -int32_t process_user_input(w_app_t *app, w_cb_args_t *d_args); +int32_t process_user_input(app_t *app, w_cb_args_t *d_args); int main(int argc, char **argv) { - w_app_t *app; + app_t *app; params_t params; query_args_t *q_args = malloc(sizeof(query_args_t)); - app = calloc(1, sizeof(w_app_t)); + app = calloc(1, sizeof(app_t)); - w_app_init_nc(); + app_init_nc(); - app = w_app_init(); + app = app_init(); init_params(¶ms); app->params = ¶ms; analyze_args(argc, argv, ¶ms); @@ -47,7 +47,6 @@ int main(int argc, char **argv) { app->query_args = q_args; main_window_set(app, mw_fl_server); - main_window_draw(app); /* init client to connect to the server */ app->params->sd = init_client(); @@ -64,18 +63,18 @@ int main(int argc, char **argv) { query_loop(app); clear_params(¶ms); - w_app_destroy(app, 0); + app_destroy(app, 0); return OK; } -int32_t process_user_input(w_app_t *app, w_cb_args_t *d_args) { +int32_t process_user_input(app_t *app, w_cb_args_t *d_args) { int32_t c; w_ui_file_list_t *fui = (w_ui_file_list_t *)app->query_args->main_ui->ui; c = wgetch(app->win); switch (c) { case KEY_F(9): - w_app_destroy(app, 0); + app_destroy(app, 0); return OK; case 'U': case 'u': diff --git a/src/modals/ask_server_addr.c b/src/modals/ask_server_addr.c index ed48cdd..88e8368 100644 --- a/src/modals/ask_server_addr.c +++ b/src/modals/ask_server_addr.c @@ -13,7 +13,7 @@ typedef struct { void asa_modal_dialogue_callback(w_cb_args_t *args) { w_cb_args_t d_args; - w_app_t *app = args->app; + app_t *app = args->app; w_dialogue_t *d = (w_dialogue_t *)app->active_widget; memcpy(&d_args, args, sizeof(w_cb_args_t)); d_args.app = NULL; @@ -30,12 +30,12 @@ void asa_modal_dialogue_callback(w_cb_args_t *args) { app->query_args->state = S_WAIT_SERVER; break; case 2: - w_app_destroy(app, 0); + app_destroy(app, 0); } } } -w_dialogue_t *m_asa_init(w_app_t *app) { +w_dialogue_t *m_asa_init(app_t *app) { if (app == NULL) return NULL; w_group_el_init_t content[] = { diff --git a/src/modals/ask_server_addr.h b/src/modals/ask_server_addr.h index 2ac3a6f..86c3d73 100644 --- a/src/modals/ask_server_addr.h +++ b/src/modals/ask_server_addr.h @@ -3,6 +3,6 @@ #include -w_dialogue_t *m_asa_init(w_app_t *app); +w_dialogue_t *m_asa_init(app_t *app); #endif \ No newline at end of file diff --git a/src/modals/load_pr.c b/src/modals/load_pr.c index 7b0e438..7fc1d84 100644 --- a/src/modals/load_pr.c +++ b/src/modals/load_pr.c @@ -8,7 +8,7 @@ void dwn_pr_modal_cb(w_cb_args_t *args) { /* TODO: cancel action */ } -w_dialogue_t *m_load_pr_init(w_app_t *app, bool is_upload) { +w_dialogue_t *m_load_pr_init(app_t *app, bool is_upload) { if (app == NULL) return NULL; w_group_el_init_t content[] = { diff --git a/src/modals/load_pr.h b/src/modals/load_pr.h index bd54fbc..1a6c7e5 100644 --- a/src/modals/load_pr.h +++ b/src/modals/load_pr.h @@ -3,6 +3,6 @@ #include -w_dialogue_t *m_load_pr_init(w_app_t *app, bool is_upload); +w_dialogue_t *m_load_pr_init(app_t *app, bool is_upload); #endif \ No newline at end of file diff --git a/src/modals/login_credentials.c b/src/modals/login_credentials.c index 8bec29d..41dfa85 100644 --- a/src/modals/login_credentials.c +++ b/src/modals/login_credentials.c @@ -15,7 +15,7 @@ typedef struct { void init_login_credentials_modal_cb(w_cb_args_t *args) { w_cb_args_t d_args; - w_app_t *app = args->app; + app_t *app = args->app; w_dialogue_t *d = (w_dialogue_t *)app->active_widget; memcpy(&d_args, args, sizeof(w_cb_args_t)); d_args.app = NULL; @@ -35,7 +35,7 @@ void init_login_credentials_modal_cb(w_cb_args_t *args) { server_send_string(app->query_args, app->params->uname); app->query_args->state = S_WAIT_SERVER; d->needs_destroy = true; - w_app_draw_bars(app); + app_draw_bars(app); break; case 2: app->query_args->state = S_ASK_LOGIN_TYPE; @@ -44,7 +44,7 @@ void init_login_credentials_modal_cb(w_cb_args_t *args) { } } -w_dialogue_t *m_login_credentials_init(w_app_t *app) { +w_dialogue_t *m_login_credentials_init(app_t *app) { if (app == NULL) return NULL; w_group_el_init_t content[] = { diff --git a/src/modals/login_credentials.h b/src/modals/login_credentials.h index 2c788e0..462ca53 100644 --- a/src/modals/login_credentials.h +++ b/src/modals/login_credentials.h @@ -3,6 +3,6 @@ #include -w_dialogue_t *m_login_credentials_init(w_app_t *app); +w_dialogue_t *m_login_credentials_init(app_t *app); #endif \ No newline at end of file diff --git a/src/modals/login_option.c b/src/modals/login_option.c index 1019d4f..6638565 100644 --- a/src/modals/login_option.c +++ b/src/modals/login_option.c @@ -15,7 +15,7 @@ typedef struct { void login_modal_option_cb(w_cb_args_t *args) { w_cb_args_t d_args; - w_app_t *app = args->app; + app_t *app = args->app; w_dialogue_t *d = (w_dialogue_t *)app->active_widget; memcpy(&d_args, args, sizeof(w_cb_args_t)); d_args.app = NULL; @@ -29,7 +29,7 @@ void login_modal_option_cb(w_cb_args_t *args) { strcpy(app->params->uname, "anonymous"); server_send_string(app->query_args, app->params->uname); app->query_args->state = S_WAIT_SERVER; - w_app_draw_bars(app); + app_draw_bars(app); break; case 2: d->needs_destroy = true; @@ -43,7 +43,7 @@ void login_modal_option_cb(w_cb_args_t *args) { } } -w_dialogue_t *m_login_option_init(w_app_t *app) { +w_dialogue_t *m_login_option_init(app_t *app) { if (app == NULL) return NULL; w_group_el_init_t children[] = {{.type = w_button, .label = "Anonymous", .val.num = 1}, diff --git a/src/modals/login_option.h b/src/modals/login_option.h index 06e89c7..0e84a26 100644 --- a/src/modals/login_option.h +++ b/src/modals/login_option.h @@ -3,6 +3,6 @@ #include -w_dialogue_t *m_login_option_init(w_app_t *app); +w_dialogue_t *m_login_option_init(app_t *app); #endif \ No newline at end of file diff --git a/src/modals/notification.c b/src/modals/notification.c index ab2a4ed..ccc6c45 100644 --- a/src/modals/notification.c +++ b/src/modals/notification.c @@ -13,7 +13,7 @@ typedef struct { void init_notification_modal_cb(w_cb_args_t *args) { w_cb_args_t d_args; - w_app_t *app = args->app; + app_t *app = args->app; w_dialogue_t *d = (w_dialogue_t *)app->active_widget; memcpy(&d_args, args, sizeof(w_cb_args_t)); d_args.app = NULL; @@ -24,7 +24,7 @@ void init_notification_modal_cb(w_cb_args_t *args) { d->needs_destroy = true; } -w_dialogue_t *m_notification_init(w_app_t *app) { +w_dialogue_t *m_notification_init(app_t *app) { if (app == NULL) return NULL; diff --git a/src/modals/notification.h b/src/modals/notification.h index dfbfc97..9e72c7e 100644 --- a/src/modals/notification.h +++ b/src/modals/notification.h @@ -3,6 +3,6 @@ #include -w_dialogue_t *m_notification_init(w_app_t *app); +w_dialogue_t *m_notification_init(app_t *app); #endif \ No newline at end of file diff --git a/src/modals/register.c b/src/modals/register.c index 9529e7c..325487b 100644 --- a/src/modals/register.c +++ b/src/modals/register.c @@ -17,7 +17,7 @@ typedef struct { void init_register_modal_cb(w_cb_args_t *args) { w_cb_args_t d_args; - w_app_t *app = args->app; + app_t *app = args->app; w_dialogue_t *d = (w_dialogue_t *)app->active_widget; memcpy(&d_args, args, sizeof(w_cb_args_t)); d_args.app = NULL; @@ -70,7 +70,7 @@ void init_register_modal_cb(w_cb_args_t *args) { } } -w_dialogue_t *m_register_init(w_app_t *app) { +w_dialogue_t *m_register_init(app_t *app) { if (app == NULL) return NULL; diff --git a/src/modals/register.h b/src/modals/register.h index 7c13eb2..18adfb8 100644 --- a/src/modals/register.h +++ b/src/modals/register.h @@ -3,6 +3,6 @@ #include -w_dialogue_t *m_register_init(w_app_t *app); +w_dialogue_t *m_register_init(app_t *app); #endif \ No newline at end of file diff --git a/src/modals/server_message.c b/src/modals/server_message.c index b84c447..b0505e1 100644 --- a/src/modals/server_message.c +++ b/src/modals/server_message.c @@ -13,7 +13,7 @@ typedef struct { void server_message_modal_cb(w_cb_args_t *args) { w_cb_args_t d_args; - w_app_t *app = args->app; + app_t *app = args->app; w_dialogue_t *d = (w_dialogue_t *)app->active_widget; memcpy(&d_args, args, sizeof(w_cb_args_t)); d_args.app = NULL; @@ -34,7 +34,7 @@ void server_message_modal_cb(w_cb_args_t *args) { } } -void *m_server_message_init(w_app_t *app) { +void *m_server_message_init(app_t *app) { if (app == NULL) return NULL; w_group_el_init_t children[] = { diff --git a/src/modals/server_message.h b/src/modals/server_message.h index 89cc60b..93e955c 100644 --- a/src/modals/server_message.h +++ b/src/modals/server_message.h @@ -3,6 +3,6 @@ #include -void *m_server_message_init(w_app_t *app); +void *m_server_message_init(app_t *app); #endif \ No newline at end of file diff --git a/src/modals/upload_dialogue.c b/src/modals/upload_dialogue.c index 2bc920b..42799ba 100644 --- a/src/modals/upload_dialogue.c +++ b/src/modals/upload_dialogue.c @@ -8,7 +8,7 @@ void upload_dialogue_modal_cb(w_cb_args_t *args) { w_cb_args_t d_args; - w_app_t *app = args->app; + app_t *app = args->app; w_dialogue_t *d = (w_dialogue_t *)app->active_widget; memcpy(&d_args, args, sizeof(w_cb_args_t)); d_args.app = NULL; @@ -33,7 +33,7 @@ void upload_dialogue_modal_cb(w_cb_args_t *args) { } } -w_dialogue_t *m_upload_dialogue_init(w_app_t *app) { +w_dialogue_t *m_upload_dialogue_init(app_t *app) { if (app == NULL) return NULL; w_group_el_init_t content[] = { diff --git a/src/modals/upload_dialogue.h b/src/modals/upload_dialogue.h index 7851958..ed05469 100644 --- a/src/modals/upload_dialogue.h +++ b/src/modals/upload_dialogue.h @@ -3,6 +3,6 @@ #include -w_dialogue_t *m_upload_dialogue_init(w_app_t *app); +w_dialogue_t *m_upload_dialogue_init(app_t *app); #endif \ No newline at end of file diff --git a/src/modals/upload_props_dialogue.c b/src/modals/upload_props_dialogue.c index dadf561..2f115d7 100644 --- a/src/modals/upload_props_dialogue.c +++ b/src/modals/upload_props_dialogue.c @@ -13,7 +13,7 @@ void upload_props_dialogue_modal_cb(w_cb_args_t *args) { w_cb_args_t d_args; - w_app_t *app = args->app; + app_t *app = args->app; w_dialogue_t *d = (w_dialogue_t *)app->active_widget; memcpy(&d_args, args, sizeof(w_cb_args_t)); d_args.app = NULL; @@ -57,7 +57,7 @@ void upload_props_dialogue_modal_cb(w_cb_args_t *args) { } } -w_dialogue_t *m_upload_props_dialogue_init(w_app_t *app) { +w_dialogue_t *m_upload_props_dialogue_init(app_t *app) { if (app == NULL) return NULL; w_group_el_init_t content[] = {{.type = w_checkbox, diff --git a/src/modals/upload_props_dialogue.h b/src/modals/upload_props_dialogue.h index 082b476..98a1f7f 100644 --- a/src/modals/upload_props_dialogue.h +++ b/src/modals/upload_props_dialogue.h @@ -3,6 +3,6 @@ #include -w_dialogue_t *m_upload_props_dialogue_init(w_app_t *app); +w_dialogue_t *m_upload_props_dialogue_init(app_t *app); #endif \ No newline at end of file diff --git a/src/query.c b/src/query.c index de44ea3..cb61b8f 100644 --- a/src/query.c +++ b/src/query.c @@ -33,19 +33,19 @@ #include "server.h" #include "types.h" -static int process_command(w_app_t *app, wait_server_cb *cb); +static int process_command(app_t *app, wait_server_cb *cb); void user_request_description(query_args_t *q_args); -int process_query(w_app_t *app); -int32_t process_user_input(w_app_t *app, w_cb_args_t *d_args); +int process_query(app_t *app); +int32_t process_user_input(app_t *app, w_cb_args_t *d_args); #define EXIT_APP(message, app, exit_code) \ { \ w_alert(message); \ close_session(app->params->sd); \ - w_app_destroy(app, exit_code); \ + app_destroy(app, exit_code); \ } -void query_loop(w_app_t *app) { +void query_loop(app_t *app) { query_args_t *query_args = app->query_args; fd_set readfds; int32_t sd = app->params->sd; @@ -61,8 +61,9 @@ void query_loop(w_app_t *app) { for (;;) { /* update screen */ - w_app_draw_modal(app); - w_app_refresh(app); + app_draw_modal(app); + main_window_draw(app); + app_refresh(app); FD_ZERO(&readfds); FD_SET(STDIN_FILENO, &readfds); @@ -135,7 +136,7 @@ void wait_register(query_args_t *q_args) { email); } -int upload_confirm_cb(w_app_t *app, char *query, int q_len) { +int upload_confirm_cb(app_t *app, char *query, int q_len) { if (!strncmp("finished\n", query, sizeof("finished\n") - 1)) { w_ui_file_list_t *fui = (w_ui_file_list_t *)app->query_args->main_ui->ui; w_notification("File upload", dc_normal, @@ -151,7 +152,7 @@ int upload_confirm_cb(w_app_t *app, char *query, int q_len) { return 1; /* TODO: Error case */ } -int process_query(w_app_t *app) { +int process_query(app_t *app) { query_args_t *query_args = app->query_args; file_args_t *file_args = app->file_args; query_args->buf[query_args->buf_used] = 0; @@ -259,7 +260,7 @@ void query_return_to_buf(char *buf, int *buf_used, char *input_line) { buf[*buf_used] = 0; } -static int process_command(w_app_t *app, wait_server_cb *callback) { +static int process_command(app_t *app, wait_server_cb *callback) { query_args_t *q_args = app->query_args; int qlen; char *query = NULL; diff --git a/src/query.h b/src/query.h index 1600670..740e39c 100644 --- a/src/query.h +++ b/src/query.h @@ -4,15 +4,15 @@ #ifndef QUERY_H #define QUERY_H -#include "app.h" +#include "../app.h" #include "main.h" #include -void query_loop(w_app_t *); +void query_loop(app_t *); void wait_register(query_args_t *q_args); -int process_query(w_app_t *app); +int process_query(app_t *app); int query_extract_from_buf(char *buf, int *buf_used, char **output_line); void init_query_args(query_args_t *q_args, params_t *params); -typedef int wait_server_cb(w_app_t *app, char *query, int q_len); +typedef int wait_server_cb(app_t *app, char *query, int q_len); void query_return_to_buf(char *buf, int *buf_used, char *input_line); #endif \ No newline at end of file diff --git a/src/server.c b/src/server.c index c81c325..37a0b7c 100644 --- a/src/server.c +++ b/src/server.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: MIT */ /* Copyright (c) 2026 Oleksandr Zhylin */ -#include "app.h" +#include "../app.h" #include "dialogue.h" #include "main.h" #include "query.h" @@ -33,7 +33,7 @@ void server_send_string(query_args_t *q, const char *fmt, ...) { va_end(args); } -int server_wait_reg_confirm_cb(w_app_t *app, char *line, int l_len) { +int server_wait_reg_confirm_cb(app_t *app, char *line, int l_len) { query_args_t *q_args = app->query_args; char query[INBUFSIZE]; w_ui_file_list_t *fui = (w_ui_file_list_t *)q_args->main_ui->ui; @@ -48,7 +48,7 @@ int server_wait_reg_confirm_cb(w_app_t *app, char *line, int l_len) { "Welcome, %s!", app->params->uname); w_notification("Registration", dc_normal, query); - w_app_draw_bars(app); + app_draw_bars(app); return 0; } else { q_args->state = S_ASK_REGISTER; @@ -57,7 +57,7 @@ int server_wait_reg_confirm_cb(w_app_t *app, char *line, int l_len) { } } -int server_print_message_cb(w_app_t *app, char *line, int l_len) { +int server_print_message_cb(app_t *app, char *line, int l_len) { int64_t new_capacity; query_args_t *q_args = app->query_args; if (q_args->server_message.text == NULL) { @@ -93,7 +93,7 @@ int server_print_message_cb(w_app_t *app, char *line, int l_len) { return 0; } -int process_server_command(char *line, int l_len, w_app_t *app) { +int process_server_command(char *line, int l_len, app_t *app) { int ws_pos = l_len; query_args_t *q_args = app->query_args; params_t *params = q_args->params; diff --git a/src/server.h b/src/server.h index 6fde1eb..e7f63fa 100644 --- a/src/server.h +++ b/src/server.h @@ -4,11 +4,11 @@ #ifndef SERVER_H #define SERVER_H -#include "app.h" +#include "../app.h" #include "main.h" -int process_server_command(char *line, int l_len, w_app_t *app); +int process_server_command(char *line, int l_len, app_t *app); void ask_register(params_t *params, char *email); void server_send_string(query_args_t *q, const char *fmt, ...); -int server_print_message_cb(w_app_t *app, char *line, int l_len); -int server_wait_reg_confirm_cb(w_app_t *app, char *line, int l_len); +int server_print_message_cb(app_t *app, char *line, int l_len); +int server_wait_reg_confirm_cb(app_t *app, char *line, int l_len); #endif \ No newline at end of file diff --git a/src/widget/alert.c b/src/widget/alert.c index a47dac4..64d254a 100644 --- a/src/widget/alert.c +++ b/src/widget/alert.c @@ -7,13 +7,13 @@ /* Short notifications. Prefer using this method to simply notify the client */ -static w_app_t *app; +static app_t *app; void alert_cb(w_cb_args_t *args) { // } -void w_alert_init(w_app_t *_app) { app = _app; } +void w_alert_init(app_t *_app) { app = _app; } void w_alert(const char *message) { w_notification("Alert", dc_alert, message); } @@ -54,7 +54,7 @@ void w_notification(const char *title, enum w_dialogue_color_scheme color, delwin(d->win); free(d); app->active_callback = callback; - w_app_refresh(app); + app_refresh(app); if (app->modal.win != NULL) { app->modal.needs_update = true; } diff --git a/src/widget/alert.h b/src/widget/alert.h index 9b46060..3c66d15 100644 --- a/src/widget/alert.h +++ b/src/widget/alert.h @@ -1,10 +1,10 @@ #ifndef W_ALERT_H #define W_ALERT_H -#include "app.h" +#include "../app.h" #include -void w_alert_init(w_app_t *app); +void w_alert_init(app_t *app); void w_alert(const char *message); void w_notification(const char *title, enum w_dialogue_color_scheme color, const char *f_message, ...); diff --git a/src/widget/button.c b/src/widget/button.c index 0145be2..f7e7dd3 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -8,7 +8,7 @@ #include #include "button.h" -#include "app.h" +#include "../app.h" w_button_t *init_button(WINDOW **win, w_t *w_parent, char *label) { w_button_t *btn = malloc(sizeof(w_button_t)); diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 5db9048..e8703b3 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -6,7 +6,7 @@ #include #include -#include "app.h" +#include "../app.h" #include "checkbox.h" #include diff --git a/src/widget/dialogue.c b/src/widget/dialogue.c index a61255d..62ef358 100644 --- a/src/widget/dialogue.c +++ b/src/widget/dialogue.c @@ -301,7 +301,7 @@ int32_t w_dialogue_draw(w_dialogue_t *d) { } void w_dialogue_destroy(w_dialogue_t *d, void *_app) { - w_app_t *app = (w_app_t *)_app; + app_t *app = (app_t *)_app; if (d->g_content) { w_group_destroy(d->g_content); } @@ -315,5 +315,5 @@ void w_dialogue_destroy(w_dialogue_t *d, void *_app) { app->active_callback = (w_cb_t)app->main_ui.cb_b_press; app->query_args->active_dialogue = NULL; u_d_arr_ptr_free(&(d->id_map)); - w_app_refresh(app); + app_refresh(app); } \ No newline at end of file diff --git a/src/widget/input.c b/src/widget/input.c index c2045e9..c165ca9 100644 --- a/src/widget/input.c +++ b/src/widget/input.c @@ -6,7 +6,7 @@ #include #include -#include "app.h" +#include "../app.h" #include "input.h" #include diff --git a/src/widget/progress_bar.c b/src/widget/progress_bar.c index 60d2e5f..28b5a45 100644 --- a/src/widget/progress_bar.c +++ b/src/widget/progress_bar.c @@ -2,7 +2,7 @@ /* Copyright (c) 2026 Oleksandr Zhylin */ #include "progress_bar.h" -#include "app.h" +#include "../app.h" #include #include #include diff --git a/src/widget/widget.h b/src/widget/widget.h index 1a2cbe3..0fe81b6 100644 --- a/src/widget/widget.h +++ b/src/widget/widget.h @@ -9,7 +9,6 @@ #ifndef WIDGET_H #define WIDGET_H -#include "app.h" #include "button.h" #include "dialogue.h" #include "group.h" diff --git a/src/windows/file_list.c b/src/windows/file_list.c index 5abb0ad..cc3b62c 100644 --- a/src/windows/file_list.c +++ b/src/windows/file_list.c @@ -1,7 +1,12 @@ /* SPDX-License-Identifier: MIT */ /* Copyright (c) 2026 Oleksandr Zhylin */ -#include "app.h" +#include "file_list.h" +#include "../app.h" +#include "../file_processor.h" +#include "../fs.h" +#include "../server.h" +#include "main_window.h" #include #include #include @@ -11,16 +16,11 @@ #include #include #include -#include "main_window.h" -#include "file_list.h" -#include "../file_processor.h" -#include "../fs.h" -#include "../server.h" void w_fl_reset(w_ui_file_list_t *fl_ui); static void w_fl_cb(w_cb_args_t *args) { - w_app_t *app = args->app; + app_t *app = args->app; w_ui_file_list_t *fui = app->query_args->main_ui->ui; int32_t key = *((int32_t *)args->data); char q_prefix[128]; @@ -117,7 +117,7 @@ static void w_fl_cb(w_cb_args_t *args) { } static void w_fl_cb_refresh(void *data) { - w_app_t *app = (w_app_t *)data; + app_t *app = (app_t *)data; if (app->main_ui.type != mw_fl_server) { return; } @@ -133,20 +133,19 @@ static struct action_key action_keys[] = { {.key = "F9", .title = "Quit", .code = KEY_F(9)}, }; -static int32_t process_user_input(w_app_t *app, w_cb_args_t *d_args) { +static int32_t process_user_input(app_t *app, w_cb_args_t *d_args) { int32_t c; w_ui_file_list_t *fui = (w_ui_file_list_t *)app->query_args->main_ui->ui; c = wgetch(app->win); switch (c) { case KEY_F(9): - w_app_destroy(app, 0); + app_destroy(app, 0); return OK; case 'U': case 'u': if (!app->modal.is_initiated && !fui->active_search) { /* app->query_args->state = S_UPLOAD_FILE_SELECT; */ main_window_set(app, mw_fl_local); - main_window_draw(app); d_args->element = app->main_ui.ui; break; } @@ -165,14 +164,14 @@ static int32_t process_user_input(w_app_t *app, w_cb_args_t *d_args) { return OK; } -void *w_fl_init(w_app_t *app) { +void *w_fl_init(app_t *app) { w_ui_file_list_t *fui = malloc(sizeof(w_ui_file_list_t)); app->main_ui.ui = fui; app->main_ui.type = mw_fl_server; app->main_ui.cb_refresh = w_fl_cb_refresh; app->main_ui.b_keys = action_keys; app->main_ui.b_keys_len = 4; - app->main_ui.cb_b_press = (w_cb_press_t) process_user_input; + app->main_ui.cb_b_press = (w_cb_press_t)process_user_input; app->active_callback = w_fl_cb; w_init(&(fui->w), NULL, &(app->win), ""); WINDOW *win_parent = app->win; @@ -245,7 +244,7 @@ void w_fl_draw(w_ui_file_list_t *fui) { } if (fui->activate_last) { - fui->current_idx = fui->current_count - 1; + fui->current_idx = fui->max_lines - 1; fui->activate_last = false; } diff --git a/src/windows/file_list.h b/src/windows/file_list.h index 10680f2..f3310d6 100644 --- a/src/windows/file_list.h +++ b/src/windows/file_list.h @@ -4,7 +4,7 @@ #ifndef W_FILE_LIST_H #define W_FILE_LIST_H -#include "app.h" +#include "../app.h" #include #include #include @@ -27,7 +27,7 @@ typedef struct { } w_ui_file_list_t; void w_fl_draw(w_ui_file_list_t *fl_ui); -void *w_fl_init(w_app_t *app); +void *w_fl_init(app_t *app); void w_fl_reset(w_ui_file_list_t *fl_ui); void w_fl_destroy(w_ui_file_list_t **fui); diff --git a/src/windows/fs_file_list.c b/src/windows/fs_file_list.c index 7bb9acb..587c6d5 100644 --- a/src/windows/fs_file_list.c +++ b/src/windows/fs_file_list.c @@ -276,7 +276,7 @@ w_lfl_ui_t *w_lfl_init(WINDOW **win, w_t *w_parent) { } static void w_lfl_cb_refresh(void *data) { - w_app_t *app = (w_app_t *)data; + app_t *app = (app_t *)data; if (app->main_ui.type != mw_fl_local) { return; } @@ -290,22 +290,21 @@ static struct action_key action_keys[] = { {.key = "F9", .title = "Quit", .code = KEY_F(9)}, }; -static int32_t process_user_input(w_app_t *app, w_cb_args_t *d_args) { +static int32_t process_user_input(app_t *app, w_cb_args_t *d_args) { int32_t c; w_lfl_ui_t *fui = (w_lfl_ui_t *)app->query_args->main_ui->ui; c = wgetch(app->win); switch (c) { case KEY_F(9): - w_app_destroy(app, 0); + app_destroy(app, 0); return OK; case 'D': case 'd': case '\33': /* ESC key */ if (!app->modal.is_initiated) { - main_window_set(app, mw_fl_server); - main_window_draw(app); - server_send_string(app->query_args, "file list %u %u\n", fui->max_lines, + server_send_string(app->query_args, "file list %u %u\n", fui->max_lines-1, 1); + main_window_set(app, mw_fl_server); d_args->element = app->main_ui.ui; break; } @@ -317,7 +316,7 @@ static int32_t process_user_input(w_app_t *app, w_cb_args_t *d_args) { return OK; } -w_lfl_ui_t *w_lfl_init_win(w_app_t *app) { +w_lfl_ui_t *w_lfl_init_win(app_t *app) { w_lfl_ui_t *fui = malloc(sizeof(w_lfl_ui_t)); app->main_ui.ui = fui; app->main_ui.type = mw_fl_local; diff --git a/src/windows/fs_file_list.h b/src/windows/fs_file_list.h index 8a5e34b..b495b39 100644 --- a/src/windows/fs_file_list.h +++ b/src/windows/fs_file_list.h @@ -4,7 +4,7 @@ #ifndef W_LFL_H /* LOCAL FILE LIST */ #define W_LFL_H -#include "app.h" +#include "../app.h" #include #include #include @@ -37,6 +37,6 @@ void w_lfl_draw(w_lfl_ui_t *fl_ui); void w_lfl_destroy(w_lfl_ui_t **fui); void w_lfl_reset(w_lfl_ui_t *fl_ui); w_lfl_ui_t *w_lfl_init(WINDOW **win, w_t *w_parent); -w_lfl_ui_t *w_lfl_init_win(w_app_t *app); +w_lfl_ui_t *w_lfl_init_win(app_t *app); #endif \ No newline at end of file diff --git a/src/windows/main_window.c b/src/windows/main_window.c index 2173976..71d5f41 100644 --- a/src/windows/main_window.c +++ b/src/windows/main_window.c @@ -2,10 +2,10 @@ /* Copyright (c) 2026 Oleksandr Zhylin */ #include "main_window.h" -#include "fs_file_list.h" #include "file_list.h" +#include "fs_file_list.h" -void main_window_set(w_app_t *app, enum main_window_type type) { +void main_window_set(app_t *app, enum main_window_type type) { if (app->main_ui.ui != NULL) { main_window_destroy(app); } @@ -25,7 +25,7 @@ void main_window_set(w_app_t *app, enum main_window_type type) { } } -void main_window_draw(w_app_t *app) { +void main_window_draw(app_t *app) { switch (app->main_ui.type) { case mw_fl_server: w_fl_draw((w_ui_file_list_t *)app->main_ui.ui); @@ -36,16 +36,17 @@ void main_window_draw(w_app_t *app) { case mw_f_desc: break; } - w_app_draw_bbar(app); + app_draw_bbar(app); } -void main_window_destroy(w_app_t *app) { +void main_window_destroy(app_t *app) { switch (app->main_ui.type) { case mw_fl_server: w_fl_destroy((w_ui_file_list_t **)&(app->main_ui.ui)); break; case mw_fl_local: w_lfl_destroy((w_lfl_ui_t **)&(app->main_ui.ui)); + break; case mw_f_desc: break; } diff --git a/src/windows/main_window.h b/src/windows/main_window.h index 600c781..e1b05aa 100644 --- a/src/windows/main_window.h +++ b/src/windows/main_window.h @@ -4,10 +4,10 @@ #ifndef MAIN_WINDOW_H #define MAIN_WINDOW_H -#include +#include "../app.h" -void main_window_set(w_app_t *app, enum main_window_type type); -void main_window_draw(w_app_t *app); -void main_window_destroy(w_app_t *app); +void main_window_set(app_t *app, enum main_window_type type); +void main_window_draw(app_t *app); +void main_window_destroy(app_t *app); #endif \ No newline at end of file