ui/cocoa/container.m

changeset 851
367b2bbbc07e
parent 847
50de0f36973f
child 870
e167cf006213
--- a/ui/cocoa/container.m	Wed Oct 15 18:50:52 2025 +0200
+++ b/ui/cocoa/container.m	Thu Oct 16 10:48:16 2025 +0200
@@ -29,6 +29,7 @@
 #import "Container.h"
 #import "GridLayout.h"
 #import "BoxContainer.h"
+#import "TabView.h"
 
 /* -------------------- public container functions --------------------- */
 
@@ -36,7 +37,6 @@
     BoxContainer *box = [[BoxContainer alloc] init:orientation spacing:args->spacing];
     box.translatesAutoresizingMaskIntoConstraints = false;
     UiContainerX *container = ui_create_container(obj, box);
-    box.container = container;
     
     // add box to the parent
     UiLayout layout = UI_INIT_LAYOUT(args);
@@ -119,6 +119,10 @@
     return (__bridge void*)frame;
 }
 
+UIWIDGET ui_expander_create(UiObject *obj, UiFrameArgs *args) {
+    return ui_frame_create(obj, args); // TODO
+}
+
 UIWIDGET ui_scrolledwindow_create(UiObject *obj, UiFrameArgs *args) {
     int colspacing = args->spacing;
     int rowspacing = args->spacing;
@@ -139,6 +143,50 @@
     return (__bridge void*)scrollview;
 }
 
+UIWIDGET ui_tabview_create(UiObject *obj, UiTabViewArgs *args) {
+    NSView<TabView, Container> *tabview;
+    switch(args->tabview) {
+        default: tabview = [[UiTopTabView alloc]init:obj args:args]; break;
+    }
+    
+    UiLayout layout = UI_ARGS2LAYOUT(args);
+    ui_container_add(obj, tabview, &layout);
+    
+    UiContainerX *container = ui_create_container(obj, tabview);
+    uic_object_push_container(obj, container);
+    
+    return (__bridge void*)tabview;
+}
+
+void ui_tab_create(UiObject *obj, const char* title) {
+    UiContainerX *ctn = obj->container_end;
+    id<TabView> tabview = (__bridge id<TabView>)ctn->container;
+    NSString *s = title ? [[NSString alloc]initWithUTF8String:title] : @"";
+    NSView<Container> *sub = [tabview createTab:-1 title:s];
+    
+    UiContainerX *container = ui_create_container(obj, sub);
+    uic_object_push_container(obj, container);
+}
+
+void ui_tabview_select(UIWIDGET tabview, int tab) {
+    id<TabView> tabv = (__bridge id<TabView>)tabview;
+    [tabv selectTab:tab];
+}
+
+void ui_tabview_remove(UIWIDGET tabview, int tab) {
+    id<TabView> tabv = (__bridge id<TabView>)tabview;
+    [tabv removeTab:tab];
+}
+
+UiObject* ui_tabview_add(UIWIDGET tabview, const char *name, int tab_index) {
+    id<TabView> tabv = (__bridge id<TabView>)tabview;
+    NSString *s = name ? [[NSString alloc]initWithUTF8String:name] : @"";
+    return [tabv addTab:tab_index title:s];
+}
+
+
+
+
 void ui_container_begin_close(UiObject *obj) {
     UiContainerX *ct = obj->container_end;
     ct->close = 1;

mercurial