EEventHook

EEventHook

Types and Values

Object Hierarchy

    GObject
    ├── EPluginHook
       ╰── EEventHook
    ╰── EEvent

Description

Functions

EEventItemsFunc ()

void
(*EEventItemsFunc) (EEvent *ee,
                    GSList *items,
                    gpointer data);

EEventFunc ()

void
(*EEventFunc) (EEvent *ee,
               EEventItem *item,
               gpointer data);

EEventFactoryFunc ()

void
(*EEventFactoryFunc) (EEvent *ee,
                      gpointer Param2);

e_event_construct ()

EEvent *
e_event_construct (EEvent *event,
                   const gchar *id);

Construct the base event instance with standard parameters.

Parameters

event

An instantiated but uninitialised EEvent.

 

id

Event manager id.

 

Returns

the event


e_event_add_items ()

gpointer
e_event_add_items (EEvent *event,
                   GSList *items,
                   EEventItemsFunc freefunc,
                   gpointer data);

Adds items to the list of events listened to on the event manager event .

Parameters

event

An initialised EEvent structure.

 

items

A list of EEventItems event listeners to register on this event manager.

 

freefunc

A function called when the items list is no longer needed.

 

data

callback data for freefunc and for item event handlers.

 

Returns

An opaque key which can later be passed to remove_items.


e_event_remove_items ()

void
e_event_remove_items (EEvent *event,
                      gpointer handle);

Remove items previously added. They MUST have been previously added, and may only be removed once.

Parameters

event

an EEvent

 

handle

an opaque key returned by e_event_add_items()

 

e_event_emit ()

void
e_event_emit (EEvent *event,
              const gchar *id,
              EEventTarget *target);

Emit an event. target will automatically be freed once its emission is complete.

Parameters

id

Event name. This will be compared against EEventItem.id.

 

target

The target describing the event context. This will be implementation defined.

 

e_event_target_new ()

gpointer
e_event_target_new (EEvent *event,
                    gint type,
                    gsize size);

Allocate a new event target suitable for this class. It is up to the implementation to define the available target types and their structure.

Parameters

event

An initialised EEvent instance.

 

type

type, up to implementor

 

size

The size of memory to allocate. This must be >= sizeof(EEventTarget).

 

e_event_target_free ()

void
e_event_target_free (EEvent *event,
                     gpointer target);

Free a target. This invokes the virtual free method on the EEventClass.

Parameters

event

An initialised EEvent instance on which this target was allocated.

 

target

The target to free.

 

EEventHookFunc ()

void
(*EEventHookFunc) (EPlugin *plugin,
                   EEventTarget *target);

e_event_hook_class_add_target_map ()

void
e_event_hook_class_add_target_map (EEventHookClass *hook_class,
                                   const EEventHookTargetMap *map);

Add a target map to a concrete derived class of EEvent. The target map enumerates a single target type and th eenable mask bit names, so that the type can be loaded automatically by the base EEvent class.

Parameters

hook_class

The derived EEventHook class.

 

map

A map used to describe a single EEventTarget type for this class.

 

Types and Values

enum e_event_t

Members

E_EVENT_INVALID

   

E_EVENT_PASS

   

E_EVENT_SINK

   

struct EEventItem

struct EEventItem {
	enum _e_event_t type;
	gint priority;		/* priority of event */
	const gchar *id;		/* event id */
	gint target_type;
	EEventFunc handle;
	gpointer user_data;
	guint32 enable;		/* enable mask */
};

struct EEventTarget

struct EEventTarget {
	EEvent *event; /* used for virtual methods */

	guint32 type;		/* targe type, for implementors */
	guint32 mask;		/* depends on type, enable mask */

	/* implementation fields follow */
};

EEventHookTargetMap

typedef struct _EPluginHookTargetMap EEventHookTargetMap;

EEventHookTargetMask

typedef struct _EPluginHookTargetKey EEventHookTargetMask;

EEventFactory

typedef struct _EEventFactory EEventFactory;