Sat, 25 Oct 2025 21:30:41 +0200
add webview (Cocoa)
--- a/make/xcode/toolkit/toolkit.xcodeproj/project.pbxproj Fri Oct 24 15:44:31 2025 +0200 +++ b/make/xcode/toolkit/toolkit.xcodeproj/project.pbxproj Sat Oct 25 21:30:41 2025 +0200 @@ -53,6 +53,7 @@ ED895DAA2EA0CACC00040078 /* TabView.m in Sources */ = {isa = PBXBuildFile; fileRef = ED895DA92EA0CACC00040078 /* TabView.m */; }; ED99F04A2E5CBD2E00A4CC97 /* widget.m in Sources */ = {isa = PBXBuildFile; fileRef = ED99F0492E5CBD2E00A4CC97 /* widget.m */; }; EDB452C32E302C65006FB12D /* image.m in Sources */ = {isa = PBXBuildFile; fileRef = EDB452C22E302C65006FB12D /* image.m */; }; + EDBC4D272EAD4BB0005CDF38 /* webview.m in Sources */ = {isa = PBXBuildFile; fileRef = EDBC4D262EAD4BB0005CDF38 /* webview.m */; }; EDC315A92E9A739300403776 /* json.c in Sources */ = {isa = PBXBuildFile; fileRef = EDC315A62E9A739300403776 /* json.c */; }; EDC315AA2E9A739300403776 /* properties.c in Sources */ = {isa = PBXBuildFile; fileRef = EDC315A72E9A739300403776 /* properties.c */; }; EDC315AB2E9A739300403776 /* streams.c in Sources */ = {isa = PBXBuildFile; fileRef = EDC315A82E9A739300403776 /* streams.c */; }; @@ -178,6 +179,8 @@ ED99F04C2E5CBE5000A4CC97 /* widget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = widget.h; path = /Users/olaf/Projekte/toolkit/ui/ui/widget.h; sourceTree = "<absolute>"; }; EDB452C12E302C65006FB12D /* image.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = image.h; path = /Users/olaf/Projekte/toolkit/ui/cocoa/image.h; sourceTree = "<absolute>"; }; EDB452C22E302C65006FB12D /* image.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = image.m; path = /Users/olaf/Projekte/toolkit/ui/cocoa/image.m; sourceTree = "<absolute>"; }; + EDBC4D252EAD4BB0005CDF38 /* webview.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = webview.h; path = /Users/olaf/Projekte/toolkit/ui/cocoa/webview.h; sourceTree = "<absolute>"; }; + EDBC4D262EAD4BB0005CDF38 /* webview.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = webview.m; path = /Users/olaf/Projekte/toolkit/ui/cocoa/webview.m; sourceTree = "<absolute>"; }; EDC315A32E9A736900403776 /* json.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = json.h; path = /Users/olaf/Projekte/toolkit/ucx/cx/json.h; sourceTree = "<absolute>"; }; EDC315A42E9A736900403776 /* properties.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = properties.h; path = /Users/olaf/Projekte/toolkit/ucx/cx/properties.h; sourceTree = "<absolute>"; }; EDC315A52E9A736900403776 /* streams.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = streams.h; path = /Users/olaf/Projekte/toolkit/ucx/cx/streams.h; sourceTree = "<absolute>"; }; @@ -320,6 +323,8 @@ ED65812E2CFF1A7200F5402F /* cocoa */ = { isa = PBXGroup; children = ( + EDBC4D252EAD4BB0005CDF38 /* webview.h */, + EDBC4D262EAD4BB0005CDF38 /* webview.m */, ED895DA82EA0CACC00040078 /* TabView.h */, ED895DA92EA0CACC00040078 /* TabView.m */, ED83C2BD2E8EA49200054B22 /* BoxContainer.h */, @@ -497,6 +502,7 @@ ED99F04A2E5CBD2E00A4CC97 /* widget.m in Sources */, ED6581252CFF1A3000F5402F /* compare.c in Sources */, ED6581262CFF1A3000F5402F /* hash_key.c in Sources */, + EDBC4D272EAD4BB0005CDF38 /* webview.m in Sources */, ED6581272CFF1A3000F5402F /* iterator.c in Sources */, ED6581282CFF1A3000F5402F /* string.c in Sources */, ED6581312CFF1A8800F5402F /* toolkit.m in Sources */,
--- a/make/xcode/toolkit/toolkit/main.m Fri Oct 24 15:44:31 2025 +0200 +++ b/make/xcode/toolkit/toolkit/main.m Sat Oct 25 21:30:41 2025 +0200 @@ -30,6 +30,8 @@ #include <ui/ui.h> +#include <ui/webview.h> + typedef struct WindowData { UiInteger *tbtoggle; } WindowData; @@ -42,6 +44,7 @@ UiList *sidebar_list; UiList *sidebar_list2; UiString *link; + UiGeneric *webview; } MyDocument; MyDocument* create_doc(void) { @@ -78,6 +81,7 @@ ui_list_append(doc->sidebar_list2, "Item 4"); doc->link = ui_string_new(ctx, "link"); + doc->webview = ui_generic_new(ctx, "webview"); return doc; } @@ -183,7 +187,9 @@ ui_textarea(obj, .fill = TRUE); } ui_tab(obj, "Tab 2") { - ui_button(obj, .label = "Tab 2 Content"); + //ui_button(obj, .label = "Tab 2 Content"); + ui_webview(obj, .fill = TRUE, .value = doc->webview); + ui_webview_load_url(doc->webview, "https://unixwork.de/"); } }
--- a/ui/ui/webview.h Fri Oct 24 15:44:31 2025 +0200 +++ b/ui/ui/webview.h Sat Oct 25 21:30:41 2025 +0200 @@ -63,11 +63,11 @@ #define ui_webview(obj, ...) ui_webview_create(obj, &(UiWebviewArgs){ __VA_ARGS__ } ) -UIWIDGET ui_webview_create(UiObject *obj, UiWebviewArgs *args); +UIEXPORT UIWIDGET ui_webview_create(UiObject *obj, UiWebviewArgs *args); -void ui_webview_load_url(UiGeneric *g, const char *url); +UIEXPORT void ui_webview_load_url(UiGeneric *g, const char *url); -void ui_webview_load_content( +UIEXPORT void ui_webview_load_content( UiGeneric *g, const char *uri, const char *content, @@ -76,15 +76,15 @@ const char *encoding); -void ui_webview_reload(UiGeneric *g); -UiBool ui_webview_can_go_back(UiGeneric *g); -UiBool ui_webview_can_go_forward(UiGeneric *g); -void ui_webview_go_back(UiGeneric *g); -void ui_webview_go_forward(UiGeneric *g); -const char * ui_webview_get_uri(UiGeneric *g); -void ui_webview_enable_javascript(UiGeneric *g, UiBool enable); -void ui_webview_set_zoom(UiGeneric *g, double zoom); -double ui_webview_get_zoom(UiGeneric *g); +UIEXPORT void ui_webview_reload(UiGeneric *g); +UIEXPORT UiBool ui_webview_can_go_back(UiGeneric *g); +UIEXPORT UiBool ui_webview_can_go_forward(UiGeneric *g); +UIEXPORT void ui_webview_go_back(UiGeneric *g); +UIEXPORT void ui_webview_go_forward(UiGeneric *g); +UIEXPORT const char * ui_webview_get_uri(UiGeneric *g); +UIEXPORT void ui_webview_enable_javascript(UiGeneric *g, UiBool enable); +UIEXPORT void ui_webview_set_zoom(UiGeneric *g, double zoom); +UIEXPORT double ui_webview_get_zoom(UiGeneric *g); #ifdef __cplusplus