@@ -560,6 +560,11 @@ fn eventListenerGetData(lst: *EventListener) ?*anyopaque {
560560}
561561
562562// EventTarget
563+ pub const EventTargetType = enum (u4 ) {
564+ node = c .DOM_EVENT_TARGET_NODE ,
565+ window = 2 ,
566+ };
567+
563568pub const EventTarget = c .dom_event_target ;
564569
565570pub fn eventTargetToNode (et : * EventTarget ) * Node {
@@ -801,6 +806,14 @@ pub fn eventTargetDispatchEvent(et: *EventTarget, event: *Event) !bool {
801806 return res ;
802807}
803808
809+ pub fn eventTargetGetType (et : * EventTarget ) ! EventTargetType {
810+ var res : c.dom_event_target_type = undefined ;
811+ const err = eventTargetVtable (et ).dom_event_target_get_type .? (et , & res );
812+ try DOMErr (err );
813+
814+ return @enumFromInt (res );
815+ }
816+
804817pub fn eventTargetTBaseFieldName (comptime T : type ) ? []const u8 {
805818 std .debug .assert (@inComptime ());
806819 switch (@typeInfo (T )) {
@@ -824,8 +837,10 @@ pub const EventTargetTBase = extern struct {
824837 .remove_event_listener = remove_event_listener ,
825838 .add_event_listener = add_event_listener ,
826839 .iter_event_listener = iter_event_listener ,
840+ .dom_event_target_get_type = dom_event_target_get_type ,
827841 },
828842 eti : c.dom_event_target_internal = c.dom_event_target_internal { .listeners = null },
843+ et_type : c.dom_event_target_type = @intFromEnum (EventTargetType .node ),
829844
830845 pub fn add_event_listener (et : [* c ]c.dom_event_target , t : [* c ]c.dom_string , l : ? * c.struct_dom_event_listener , capture : bool ) callconv (.C ) c.dom_exception {
831846 const self = @as (* Self , @ptrCast (et ));
@@ -858,6 +873,17 @@ pub const EventTargetTBase = extern struct {
858873 const self = @as (* Self , @ptrCast (et ));
859874 return c ._dom_event_target_iter_event_listener (self .eti , t , capture , cur , next , l );
860875 }
876+
877+ pub fn dom_event_target_get_type (
878+ et : [* c ]c.dom_event_target ,
879+ res : [* c ]c.dom_event_target_type ,
880+ ) callconv (.C ) c.dom_exception {
881+ const self = @as (* Self , @ptrCast (et ));
882+
883+ res .* = self .et_type ;
884+
885+ return c .DOM_NO_ERR ;
886+ }
861887};
862888
863889// NodeType
0 commit comments