diff -r d615aa36c98e -r cdad8b7e83db ui/gtk/container.c --- a/ui/gtk/container.c Tue Oct 08 22:19:24 2024 +0200 +++ b/ui/gtk/container.c Tue Oct 08 22:53:27 2024 +0200 @@ -332,10 +332,6 @@ } -void ui_select_tab(UIWIDGET tabview, int tab) { - gtk_notebook_set_current_page(GTK_NOTEBOOK(tabview), tab); -} - void ui_notebook_tab_select(UIWIDGET tabview, int tab) { gtk_notebook_set_current_page(GTK_NOTEBOOK(tabview), tab); } @@ -364,6 +360,28 @@ i->value = gtk_notebook_get_current_page(nb); } + +void ui_stack_tab_select(UIWIDGET tabview, int tab) { + +} + +void ui_stack_tab_remove(UIWIDGET tabview, int tab) { + +} + +void ui_stack_tab_add(UIWIDGET widget, int index, const char *name, UIWIDGET child) { + GtkStackPage *page = gtk_stack_add_titled(GTK_STACK(widget), child, name, name); +} + +int64_t ui_stack_get(UiInteger *i) { + +} + +void ui_stack_set(UiInteger *i, int64_t value) { + +} + + UiGtkTabView* ui_widget_get_tabview_data(UIWIDGET tabview) { return g_object_get_data(G_OBJECT(tabview), "ui_tabview"); } @@ -382,19 +400,37 @@ ui_tabview_set_func setfunc = NULL; GtkWidget *widget = NULL; + GtkWidget *data_widget = NULL; switch(args.tabview) { case UI_TABVIEW_DOC: { // TODO break; } case UI_TABVIEW_NAVIGATION_SIDE: { +#if GTK_CHECK_VERSION(3, 10, 0) + widget = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + GtkWidget *sidebar = gtk_stack_sidebar_new(); + BOX_ADD(widget, sidebar); + GtkWidget *stack = gtk_stack_new(); + gtk_stack_set_transition_type (GTK_STACK(stack), GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN); + gtk_stack_sidebar_set_stack(GTK_STACK_SIDEBAR(sidebar), GTK_STACK(stack)); + BOX_ADD_EXPAND(widget, stack); + data->select_tab = ui_stack_tab_select; + data->remove_tab = ui_stack_tab_remove; + data->add_tab = ui_stack_tab_add; + getfunc = ui_stack_get; + setfunc = ui_stack_set; + data_widget = stack; +#else // TODO +#endif break; } case UI_TABVIEW_DEFAULT: /* fall through */ case UI_TABVIEW_NAVIGATION_TOP: /* fall through */ case UI_TABVIEW_NAVIGATION_TOP2: { widget = gtk_notebook_new(); + data_widget = widget; data->select_tab = ui_notebook_tab_select; data->remove_tab = ui_notebook_tab_remove; data->add_tab = ui_notebook_tab_add; @@ -419,7 +455,7 @@ } g_object_set_data(G_OBJECT(widget), "ui_tabview", data); - data->widget = widget; + data->widget = data_widget; data->subcontainer = args.subcontainer; UI_APPLY_LAYOUT1(current, args); @@ -441,7 +477,7 @@ return; } - UiObject *newobj = ui_tabview_add(data->widget, title, -1); + UiObject *newobj = ui_tabview_add(current->widget, title, -1); current->next = newobj; }