ui/ui/container.h

branch
newapi
changeset 198
f2332d0d3318
parent 195
0f2e69873875
child 201
7f67ebbb0c1c
--- a/ui/ui/container.h	Mon Oct 02 19:56:18 2023 +0200
+++ b/ui/ui/container.h	Tue Oct 03 12:36:57 2023 +0200
@@ -41,6 +41,15 @@
     UI_CONTAINER_GRID
 } UiSubContainerType;
 
+typedef enum UiTabViewType {
+    UI_TABVIEW_DEFAULT = 0,
+    UI_TABVIEW_DOC,
+    UI_TABVIEW_NAVIGATION_SIDE,
+    UI_TABVIEW_NAVIGATION_TOP,
+    UI_TABVIEW_NAVIGATION_TOP2,
+    UI_TABVIEW_INVISIBLE
+} UiTabViewType;
+
 typedef struct UiContainerArgs {
     UiTri fill;
     UiBool hexpand;
@@ -72,6 +81,27 @@
     UiBool isexpanded;
 } UiFrameArgs;
 
+typedef struct UiTabViewArgs {
+    UiTri fill;
+    UiBool hexpand;
+    UiBool vexpand;
+    int colspan;
+    int rowspan;
+
+    UiTabViewType tabview;
+
+    UiSubContainerType subcontainer;
+
+    int margin;
+    int spacing;
+    int columnspacing;
+    int rowspacing;
+
+    const char* label;
+    UiBool isexpanded;
+} UiTabViewArgs;
+
+
 
 #define UI_CTN(obj, ctn) for(ctn;ui_container_finish(obj);ui_container_begin_close(obj))
 
@@ -81,6 +111,7 @@
 #define ui_frame(obj, ...) for(ui_frame_create(obj, (UiFrameArgs){ __VA_ARGS__ });ui_container_finish(obj);ui_container_begin_close(obj))
 #define ui_expander(obj, ...) for(ui_expander_create(obj, (UiFrameArgs){ __VA_ARGS__ });ui_container_finish(obj);ui_container_begin_close(obj))
 #define ui_scrolledwindow(obj, ...) for(ui_scrolledwindow_create(obj, (UiFrameArgs){ __VA_ARGS__ });ui_container_finish(obj);ui_container_begin_close(obj))
+#define ui_tabview(obj, ...) for(ui_tabview_create(obj, (UiTabViewArgs){ __VA_ARGS__ });ui_container_finish(obj);ui_container_begin_close(obj))
 
 #define ui_vbox0(obj) for(ui_vbox_create(obj, (UiContainerArgs){ 0 });ui_container_finish(obj);ui_container_begin_close(obj))
 #define ui_hbox0(obj) for(ui_hbox_create(obj, (UiContainerArgs){ 0 });ui_container_finish(obj);ui_container_begin_close(obj))
@@ -88,6 +119,9 @@
 #define ui_frame0(obj) for(ui_frame_create(obj, (UiFrameArgs){ 0 });ui_container_finish(obj);ui_container_begin_close(obj))
 #define ui_expander0(obj) for(ui_expande_create(obj, (UiFrameArgs){ 0 });ui_container_finish(obj);ui_container_begin_close(obj))
 #define ui_scrolledwindow0(obj) for(ui_scrolledwindow_create(obj, (UiFrameArgs){ 0 });ui_container_finish(obj);ui_container_begin_close(obj))
+#define ui_tabview0(obj) for(ui_tabview_create(obj, (UiTabViewArgs){ 0 });ui_container_finish(obj);ui_container_begin_close(obj))
+
+#define ui_tab(obj, label) for(ui_tab_create(obj, label);ui_container_finish(obj);ui_container_begin_close(obj))
 
 void ui_end(UiObject *obj);
     
@@ -97,7 +131,9 @@
 UIWIDGET ui_frame_create(UiObject* obj, UiFrameArgs args);
 UIWIDGET ui_expander_create(UiObject* obj, UiFrameArgs args);
 UIWIDGET ui_scrolledwindow_create(UiObject* obj, UiFrameArgs args);
+UIWIDGET ui_tabview_create(UiObject* obj, UiTabViewArgs args);
 
+void ui_tab_create(UiObject* obj, const char* title);
 
 UIWIDGET ui_scrolledwindow_deprecated(UiObject *obj);
 
@@ -106,8 +142,8 @@
 UIWIDGET ui_hsplitpane(UiObject *obj, int max);
 UIWIDGET ui_vsplitpane(UiObject *obj, int max);
 
-UIWIDGET ui_tabview(UiObject *obj);
-void ui_tab(UiObject *obj, char *title);
+UIWIDGET ui_tabview_deprecated(UiObject *obj);
+
 void ui_select_tab(UIWIDGET tabview, int tab);
 
 // box container layout functions

mercurial