implement splitview window functions (Cocoa) default tip

Thu, 09 Apr 2026 20:28:59 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Thu, 09 Apr 2026 20:28:59 +0200
changeset 1085
e31d5aa8b466
parent 1084
cce6dad72164

implement splitview window functions (Cocoa)

make/xcode/toolkit/toolkit.xcodeproj/project.pbxproj file | annotate | diff | comparison | revisions
ui/cocoa/window.m file | annotate | diff | comparison | revisions
--- a/make/xcode/toolkit/toolkit.xcodeproj/project.pbxproj	Fri Apr 03 14:22:52 2026 +0200
+++ b/make/xcode/toolkit/toolkit.xcodeproj/project.pbxproj	Thu Apr 09 20:28:59 2026 +0200
@@ -38,7 +38,7 @@
 		ED6581392CFF287300F5402F /* EventData.m in Sources */ = {isa = PBXBuildFile; fileRef = ED6581362CFF287300F5402F /* EventData.m */; };
 		ED6581432CFF3BCE00F5402F /* window.m in Sources */ = {isa = PBXBuildFile; fileRef = ED6581422CFF3BCE00F5402F /* window.m */; };
 		ED6581442CFF3BCE00F5402F /* button.m in Sources */ = {isa = PBXBuildFile; fileRef = ED65813C2CFF3BCE00F5402F /* button.m */; };
-		ED6581452CFF3BCE00F5402F /* Container.m in Sources */ = {isa = PBXBuildFile; fileRef = ED65813E2CFF3BCE00F5402F /* Container.m */; };
+		ED6581452CFF3BCE00F5402F /* container.m in Sources */ = {isa = PBXBuildFile; fileRef = ED65813E2CFF3BCE00F5402F /* container.m */; };
 		ED6581462CFF3BCE00F5402F /* GridLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = ED6581402CFF3BCE00F5402F /* GridLayout.m */; };
 		ED65815C2CFF3EE900F5402F /* MainWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED65815B2CFF3EE900F5402F /* MainWindow.m */; };
 		ED65815F2CFF4BF200F5402F /* WindowManager.m in Sources */ = {isa = PBXBuildFile; fileRef = ED65815E2CFF4BF200F5402F /* WindowManager.m */; };
@@ -130,8 +130,8 @@
 		ED6581362CFF287300F5402F /* EventData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = EventData.m; path = /Users/olaf/Projekte/toolkit/ui/cocoa/EventData.m; sourceTree = "<absolute>"; };
 		ED65813B2CFF3BCE00F5402F /* button.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = button.h; path = /Users/olaf/Projekte/toolkit/ui/cocoa/button.h; sourceTree = "<absolute>"; };
 		ED65813C2CFF3BCE00F5402F /* button.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = button.m; path = /Users/olaf/Projekte/toolkit/ui/cocoa/button.m; sourceTree = "<absolute>"; };
-		ED65813D2CFF3BCE00F5402F /* Container.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Container.h; path = /Users/olaf/Projekte/toolkit/ui/cocoa/Container.h; sourceTree = "<absolute>"; };
-		ED65813E2CFF3BCE00F5402F /* Container.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = Container.m; path = /Users/olaf/Projekte/toolkit/ui/cocoa/Container.m; sourceTree = "<absolute>"; };
+		ED65813D2CFF3BCE00F5402F /* container.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = container.h; path = /Users/olaf/Projekte/toolkit/ui/cocoa/container.h; sourceTree = "<absolute>"; };
+		ED65813E2CFF3BCE00F5402F /* container.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = container.m; path = /Users/olaf/Projekte/toolkit/ui/cocoa/container.m; sourceTree = "<absolute>"; };
 		ED65813F2CFF3BCE00F5402F /* GridLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GridLayout.h; path = /Users/olaf/Projekte/toolkit/ui/cocoa/GridLayout.h; sourceTree = "<absolute>"; };
 		ED6581402CFF3BCE00F5402F /* GridLayout.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = GridLayout.m; path = /Users/olaf/Projekte/toolkit/ui/cocoa/GridLayout.m; sourceTree = "<absolute>"; };
 		ED6581412CFF3BCE00F5402F /* window.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = window.h; path = /Users/olaf/Projekte/toolkit/ui/cocoa/window.h; sourceTree = "<absolute>"; };
@@ -371,8 +371,8 @@
 				ED65815B2CFF3EE900F5402F /* MainWindow.m */,
 				ED65813B2CFF3BCE00F5402F /* button.h */,
 				ED65813C2CFF3BCE00F5402F /* button.m */,
-				ED65813D2CFF3BCE00F5402F /* Container.h */,
-				ED65813E2CFF3BCE00F5402F /* Container.m */,
+				ED65813D2CFF3BCE00F5402F /* container.h */,
+				ED65813E2CFF3BCE00F5402F /* container.m */,
 				ED65813F2CFF3BCE00F5402F /* GridLayout.h */,
 				ED6581402CFF3BCE00F5402F /* GridLayout.m */,
 				ED6581412CFF3BCE00F5402F /* window.h */,
@@ -529,7 +529,7 @@
 				ED52BFB02D86FC5D00FD8BE5 /* text.m in Sources */,
 				ED6581432CFF3BCE00F5402F /* window.m in Sources */,
 				ED6581442CFF3BCE00F5402F /* button.m in Sources */,
-				ED6581452CFF3BCE00F5402F /* Container.m in Sources */,
+				ED6581452CFF3BCE00F5402F /* container.m in Sources */,
 				ED6581462CFF3BCE00F5402F /* GridLayout.m in Sources */,
 				ED6581392CFF287300F5402F /* EventData.m in Sources */,
 				ED65812B2CFF1A3000F5402F /* buffer.c in Sources */,
--- a/ui/cocoa/window.m	Fri Apr 03 14:22:52 2026 +0200
+++ b/ui/cocoa/window.m	Thu Apr 09 20:28:59 2026 +0200
@@ -96,6 +96,35 @@
     window_default_height = height;
 }
 
+/* ------------------------------- SplitView Window-------------------------------- */
+
+void ui_splitview_window_set_pos(UiObject *obj, int pos) {
+    MainWindow *window = (__bridge MainWindow*)obj->wobj;
+    int divider = window.sidebar != nil ? 1 : 0;
+    [window.splitview setPosition:pos ofDividerAtIndex:divider];
+}
+
+int ui_splitview_window_get_pos(UiObject *obj) {
+    MainWindow *window = (__bridge MainWindow*)obj->wobj;
+    int divider = window.sidebar != nil ? 1 : 0;
+    return window.splitview.subviews[divider].frame.size.width;
+}
+
+void ui_splitview_window_set_default_pos(int pos) {
+    splitview_window_default_pos = pos;
+}
+
+void ui_splitview_window_use_property(UiBool enable) {
+    splitview_window_use_prop = enable;
+}
+
+void ui_splitview_window_set_visible(UiObject *obj, int pane, UiBool visible) {
+    MainWindow *window = (__bridge MainWindow*)obj->wobj;
+    if(pane >= 0 && pane < 2) {
+        window.splitview.subviews[pane].hidden = visible;
+    }
+}
+
 /* --------------------------------- File Dialogs --------------------------------- */
 
 void ui_openfiledialog(UiObject *obj, unsigned int mode, ui_callback file_selected_callback, void *cbdata) {

mercurial