From c5b1b7f43fb27075627d6b9e14c5abd32191c7e5 Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Tue, 27 May 2025 20:28:27 +0200 Subject: [PATCH] extend notebook config dialog --- application/window.c | 61 ++++++++++++++++++++++++++++---------------- application/window.h | 2 ++ 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/application/window.c b/application/window.c index bd39ef6..756f610 100644 --- a/application/window.c +++ b/application/window.c @@ -366,32 +366,49 @@ void action_notebook_config(UiEvent *event, void *userdata) { NotebookConfigDialog *wdata = ui_malloc(obj->ctx, sizeof(NotebookConfigDialog)); wdata->groups = ui_list_new(obj->ctx, NULL); - - ui_hbox(obj, .margin = 10, .spacing = 10, .fill = UI_ON) { - ui_vbox(obj, .fill = UI_OFF) { - ui_listview(obj, .list = wdata->groups, .fill = UI_ON); - ui_hbox(obj, .fill = UI_OFF) { - ui_button(obj, .label = "Add"); - ui_button(obj, .label = "Remove"); - ui_button(obj, .label = "Delete"); - ui_button(obj, .label = "Up"); - ui_button(obj, .label = "Down"); + wdata->types = ui_list_new(obj->ctx, NULL); + wdata->repositories = ui_list_new(obj->ctx, NULL); + + ui_grid(obj, .margin = 10, .columnspacing = 10, .rowspacing = 10, .fill = UI_ON) { + ui_tabview(obj, .hfill = TRUE, .hexpand = TRUE, .vfill = TRUE, .vexpand = TRUE) { + ui_tab(obj, "Groups") { + ui_hbox(obj, .margin = 10, .spacing = 10, .fill = UI_ON) { + ui_vbox(obj, .fill = UI_OFF) { + ui_listview(obj, .list = wdata->groups, .fill = UI_ON); + ui_hbox(obj, .fill = UI_OFF) { + ui_button(obj, .icon = UI_ICON_NEW_FOLDER); + ui_button(obj, .icon = UI_ICON_DELETE); + ui_button(obj, .icon = "go-up"); + ui_button(obj, .icon = "go-down"); + } + } + + ui_grid(obj, .columnspacing = 10, .rowspacing = 10, .fill = UI_ON, .def_vfill = TRUE) { + ui_rlabel(obj, .label = "Name"); + ui_textfield(obj, .varname = "todo1"); + ui_newline(obj); + + ui_rlabel(obj, .label = "Type"); + ui_combobox(obj, .list = wdata->types); + ui_newline(obj); + + ui_rlabel(obj, .label = "Repository"); + ui_combobox(obj, .list = wdata->repositories); + ui_newline(obj); + } + } + } + ui_tab(obj, "Notebooks") { + + } + ui_tab(obj, "Repositories") { + } - } - - ui_grid(obj, .columnspacing = 10, .rowspacing = 10, .fill = UI_ON) { - ui_rlabel(obj, .label = "Name"); - ui_textfield(obj, .varname = "todo1"); - ui_newline(obj); - - ui_rlabel(obj, .label = "Type"); - ui_newline(obj); - - ui_rlabel(obj, .label = "Repository"); - ui_newline(obj); } } + + ui_show(obj); } diff --git a/application/window.h b/application/window.h index 1b697a6..97f810c 100644 --- a/application/window.h +++ b/application/window.h @@ -51,6 +51,8 @@ typedef struct NewNotebookDialog { typedef struct NotebookConfigDialog { MainWindow *parent; UiList *groups; + UiList *types; + UiList *repositories; } NotebookConfigDialog; void window_create(); -- 2.43.5