From 5206933399775e5ff46baefbbb3a776c2a9bb84c Mon Sep 17 00:00:00 2001 From: Berke Güzel Date: Mon, 12 Oct 2026 10:53:22 +0300 Subject: feat: add type-safe native platform headers and portable drag support - Add include/yasl/native/{wayland,cocoa,x11}.h with type-safe handle accessors. - Unify drag-and-drop and window carry support across Wayland, X11, and Cocoa. - Preserve full ABI compatibility for capability flags. - Install native headers conditionally based on enabled backend. - Include missing tablet example and backend test suites. --- include/yasl/native/cocoa.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 include/yasl/native/cocoa.h (limited to 'include/yasl/native/cocoa.h') diff --git a/include/yasl/native/cocoa.h b/include/yasl/native/cocoa.h new file mode 100644 index 0000000..9066a19 --- /dev/null +++ b/include/yasl/native/cocoa.h @@ -0,0 +1,30 @@ +#ifndef YASL_NATIVE_COCOA_H +#define YASL_NATIVE_COCOA_H + +#include "yasl/yasl.h" + +#ifdef __OBJC__ +@class NSApplication; +@class NSWindow; +@class NSView; +#else +typedef struct objc_object NSApplication; +typedef struct objc_object NSWindow; +typedef struct objc_object NSView; +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Return borrowed Cocoa handles (expire on display/surface destruction). + * Return NULL / nil if display/surface is not a Cocoa object or destroyed. */ +YASL_API NSApplication *yasl_cocoa_display_get_application(struct yasl_display *d); +YASL_API NSWindow *yasl_cocoa_surface_get_window(struct yasl_surface *s); +YASL_API NSView *yasl_cocoa_surface_get_view(struct yasl_surface *s); + +#ifdef __cplusplus +} +#endif + +#endif /* YASL_NATIVE_COCOA_H */ -- cgit v1.2.3