From bd141e0ac144c1ec2494d5dceeb6ca013f0da58f Mon Sep 17 00:00:00 2001 From: Mole Shang <135e2@135e2.dev> Date: Tue, 8 Aug 2023 13:57:45 +0800 Subject: ui: add about menu --- src/ui.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'src/ui.c') diff --git a/src/ui.c b/src/ui.c index d140207..2c1ab15 100644 --- a/src/ui.c +++ b/src/ui.c @@ -13,12 +13,13 @@ #include "utils/size_info.h" static nk_size pct; +static bool show_app_about; static char *outPath; void load_ui(struct ui_struct *ui) { static char text[USHRT_MAX], box_buffer[UINT16_MAX], status_string[UCHAR_MAX]; float logGroup_height = - nk_window_get_height(ui->ctx) - 80 - 45 - 50 - 35 - 80; + nk_window_get_height(ui->ctx) - 30 - 85 - 45 - 50 - 35 - 80; ui->logger->extend_box = (logGroup_height - 15) < ((ui->logger->box_lines + 1) * (ui->logger->font_height + 2)); @@ -36,6 +37,37 @@ void load_ui(struct ui_struct *ui) { (ui->stat->total) = 0; // To prevent nuklear further updating status_string } + nk_menubar_begin(ui->ctx); + nk_layout_row_begin(ui->ctx, NK_STATIC, 30, 1); + nk_layout_row_push(ui->ctx, 100); + if (nk_menu_begin_label(ui->ctx, "MENU", NK_TEXT_CENTERED, + nk_vec2(100, 200))) { + nk_layout_row_dynamic(ui->ctx, 30, 1); + if (nk_menu_item_label(ui->ctx, "About", NK_TEXT_CENTERED)) + show_app_about = nk_true; + nk_menu_end(ui->ctx); + } + nk_layout_row_end(ui->ctx); + nk_menubar_end(ui->ctx); + + if (show_app_about) { + /* about popup */ + static struct nk_rect s = {100, 100, 600, 300}; + if (nk_popup_begin(ui->ctx, NK_POPUP_STATIC, "About", NK_WINDOW_CLOSABLE, + s)) { + nk_layout_row_dynamic(ui->ctx, 30, 1); + nk_label(ui->ctx, "A cross-platform multi-thread downloader", NK_TEXT_LEFT); + nk_label(ui->ctx, "By Mole Shang", NK_TEXT_LEFT); + SPACER; + nk_label(ui->ctx, "hinata is licensed under LGPL-3.0.", NK_TEXT_LEFT); + nk_label(ui->ctx, "For further information, checkout", NK_TEXT_LEFT); + nk_label(ui->ctx, ".", + NK_TEXT_LEFT); + nk_popup_end(ui->ctx); + } else + show_app_about = nk_false; + } + nk_layout_row_dynamic(ui->ctx, 80, 1); nk_label(ui->ctx, "Hinata", NK_TEXT_CENTERED); -- cgit v1.2.3