Files
BBS-Client-TUI/src/draw_modal.c
T
2026-03-10 18:51:56 +02:00

64 lines
1.6 KiB
C

#include <modals.h>
#include <widget.h>
#include "main.h"
void app_draw_modal(app_t *app) {
if (app->modal.needs_destroy ||
(app->query_args->state == S_WAIT_SERVER && app->modal.is_initiated)) {
destroy_dialogue(&(app->modal), app);
}
if (!app->modal.is_initiated) {
switch (app->query_args->state) {
case S_ASK_SEVER_IP:
init_asa_modal(app);
break;
case S_ASK_LOGIN_TYPE:
init_login_option_modal(app);
break;
case S_ASK_LOGIN_USER:
init_login_credentials_modal(app);
break;
case S_PRINT_SERVER_MESSAGE:
init_server_message_modal(app);
break;
case S_FILE_DOWNLOAD:
init_dwn_pr_modal(app, false);
break;
case S_UPLOAD_FILE:
init_dwn_pr_modal(app, true);
break;
case S_UPLOAD_FILE_SELECT:
init_upload_dialogue_modal(app);
break;
case S_ASK_REGISTER:
init_register_modal(app);
break;
case S_UPLOAD_PARAMS:
init_upload_props_dialogue_modal(app);
break;
case WAIT_SERVER_INIT:
case WAIT_SERVER:
case WAIT_REGISTER:
case WAIT_REGISTER_CONFIRMATION:
case WAIT_CLIENT:
case S_FILE_LIST:
case S_FILE_SELECT:
case S_UPLOAD_REQUESTED:
case S_ASK_USER_BEFORE_LOGIN:
case S_ERR:
case S_WAIT_SERVER:
case S_N_D:
case S_NEXT_ACTION:
if (app->query_args->notification != NULL) {
init_notification_modal(app);
} else {
return;
}
}
app->active_callback = app->modal.w.callback;
app->active_win = app->modal.win;
app->active_win_type = aw_modal;
app->active_widget = &(app->modal);
}
draw_dialogue(&(app->modal));
}