initialize
Parameters
- self:*AccessKit
- *AccessKit
Source
Implementation
pub fn initialize(self: *AccessKit) void {
const window: *dvui.Window = @alignCast(@fieldParentPtr("accesskit", self));
if (builtin.os.tag == .windows) {
if (dvui.backend.kind == .dx11) {
self.adapter = c.accesskit_windows_adapter_new(
windowsHWND(window),
// If the window currently has focus.
// TODO: We currently assume we always have focus as this initialization is performed
// at program startup so we are most likely focused. This should be verified in some way
true,
doAction,
self,
) orelse @panic("null");
} else {
self.adapter = c.accesskit_windows_subclassing_adapter_new(
windowsHWND(window),
initialTreeUpdate,
self,
doAction,
self,
) orelse @panic("null");
}
} else if (builtin.os.tag.isDarwin()) {
// TODO: This results in a null pointer unwrap. I assume the window class is wrong?
//ak.accesskit_macos_add_focus_forwarder_to_window_class("SDLWindow");
self.adapter = c.accesskit_macos_subclassing_adapter_for_window(macOSWinPtr(window), initialTreeUpdate, self, doAction, self) orelse @panic("null");
} else if (builtin.os.tag == .linux) {
self.adapter = c.accesskit_unix_adapter_new(initialTreeUpdate, self, doAction, self, deactivateAccessibility, self) orelse @panic("null");
} else {
@panic("Accesskit initialization failed: no supported adapter found");
}
log.info("initialized successfully", .{});
}