00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00033 #ifndef GNC_EVENT_H
00034 #define GNC_EVENT_H
00035
00036 #include <glib.h>
00037
00038 #include "guid.h"
00039 #include "qofid.h"
00040
00041 typedef enum
00042 {
00043 GNC_EVENT_NONE = 0,
00044 GNC_EVENT_CREATE = 1 << 0,
00045 GNC_EVENT_MODIFY = 1 << 1,
00046 GNC_EVENT_DESTROY = 1 << 2,
00047 GNC_EVENT_ADD = 1 << 3,
00048 GNC_EVENT_REMOVE = 1 << 4,
00049 GNC_EVENT_ALL = 0xff
00050 } GNCEngineEventType;
00051
00052
00062 typedef void (*GNCEngineEventHandler) (GUID *entity, QofIdType type,
00063 GNCEngineEventType event_type,
00064 gpointer user_data);
00065
00075 gint gnc_engine_register_event_handler (GNCEngineEventHandler handler,
00076 gpointer user_data);
00077
00084 void gnc_engine_unregister_event_handler (gint handler_id);
00085
00101 void gnc_engine_gen_event (QofEntity *entity,
00102 GNCEngineEventType event_type);
00110 void gnc_engine_suspend_events (void);
00111
00116 void gnc_engine_resume_events (void);
00117
00118 #endif
00119