libdom
Loading...
Searching...
No Matches
Functions
event_target.c File Reference
#include <assert.h>
#include <stdlib.h>
#include "events/event.h"
#include "events/event_listener.h"
#include "events/event_target.h"
#include "core/document.h"
#include "core/node.h"
#include "core/string.h"
#include "utils/utils.h"
#include "utils/validate.h"

Functions

dom_exception _dom_event_target_internal_initialise (dom_event_target_internal *eti)
 
void _dom_event_target_internal_finalise (dom_event_target_internal *eti)
 
dom_exception _dom_event_target_add_event_listener (dom_event_target_internal *eti, dom_string *type, struct dom_event_listener *listener, bool capture)
 
dom_exception _dom_event_target_remove_event_listener (dom_event_target_internal *eti, dom_string *type, struct dom_event_listener *listener, bool capture)
 
dom_exception _dom_event_target_add_event_listener_ns (dom_event_target_internal *eti, dom_string *namespace, dom_string *type, struct dom_event_listener *listener, bool capture)
 
dom_exception _dom_event_target_remove_event_listener_ns (dom_event_target_internal *eti, dom_string *namespace, dom_string *type, struct dom_event_listener *listener, bool capture)
 
dom_exception _dom_event_target_dispatch (dom_event_target *et, dom_event_target_internal *eti, struct dom_event *evt, dom_event_flow_phase phase, bool *success)
 

Function Documentation

◆ _dom_event_target_add_event_listener()

dom_exception _dom_event_target_add_event_listener ( dom_event_target_internal * eti,
dom_string * type,
struct dom_event_listener * listener,
bool capture )

Add an EventListener to the EventTarget

Parameters
etThe EventTarget object
typeThe event type which this event listener listens for
listenerThe event listener object
captureWhether add this listener in the capturing phase
Returns
DOM_NO_ERR on success, appropriate dom_exception on failure.

◆ _dom_event_target_add_event_listener_ns()

dom_exception _dom_event_target_add_event_listener_ns ( dom_event_target_internal * eti,
dom_string * namespace,
dom_string * type,
struct dom_event_listener * listener,
bool capture )

Add an EventListener

Parameters
etThe EventTarget object
namespaceThe namespace of this listener
typeThe event type which this event listener listens for
listenerThe event listener object
captureWhether add this listener in the capturing phase
Returns
DOM_NO_ERR on success, appropriate dom_exception on failure.

We don't support this API now, so it always return DOM_NOT_SUPPORTED_ERR.

◆ _dom_event_target_dispatch()

dom_exception _dom_event_target_dispatch ( dom_event_target * et,
dom_event_target_internal * eti,
struct dom_event * evt,
dom_event_flow_phase phase,
bool * success )

Dispatch an event on certain EventTarget

Parameters
etThe EventTarget object
etiInternal EventTarget object
evtThe event object
successIndicates whether any of the listeners which handled the event called Event.preventDefault(). If Event.preventDefault() was called the returned value is false, else it is true.
Returns
DOM_NO_ERR on success, appropriate dom_exception on failure.

◆ _dom_event_target_internal_finalise()

void _dom_event_target_internal_finalise ( dom_event_target_internal * eti)

◆ _dom_event_target_internal_initialise()

dom_exception _dom_event_target_internal_initialise ( dom_event_target_internal * eti)

Constructor and destructor: Since this object is not intended to be allocated alone, it should be embedded into the Node object, there is no constructor and destructor for it.

◆ _dom_event_target_remove_event_listener()

dom_exception _dom_event_target_remove_event_listener ( dom_event_target_internal * eti,
dom_string * type,
struct dom_event_listener * listener,
bool capture )

Remove an EventListener from the EventTarget

(LibDOM extension: If type is NULL, remove all listener registrations regardless of type and cature)

Parameters
etThe EventTarget object
typeThe event type this listener is registered for
listenerThe listener object
captureWhether the listener is registered at the capturing phase
Returns
DOM_NO_ERR on success, appropriate dom_exception on failure.

◆ _dom_event_target_remove_event_listener_ns()

dom_exception _dom_event_target_remove_event_listener_ns ( dom_event_target_internal * eti,
dom_string * namespace,
dom_string * type,
struct dom_event_listener * listener,
bool capture )

Remove an EventListener

Parameters
etThe EventTarget object
namespaceThe namespace of this listener
typeThe event type which this event listener listens for
listenerThe event listener object
captureWhether add this listener in the capturing phase
Returns
DOM_NO_ERR on success, appropriate dom_exception on failure.

We don't support this API now, so it always return DOM_NOT_SUPPORTED_ERR.