Allow elements out of context in GOM.
[gedcom-parse.git] / gom / event.h
index ef799d251d703f6645d69e437c01eeb69f42580d..65fa9671cd36d6da60f36e793094fa1c2d957966 100644 (file)
 #include "gom.h"
 #include "gom_internal.h"
 
+typedef enum _EVT_TYPE {
+  EVT_TYPE_FAMILY,
+  EVT_TYPE_INDIV_ATTR,
+  EVT_TYPE_INDIV_EVT
+} EventType;
+
 void event_subscribe();
-void event_cleanup(struct event* evt);
-void event_add_place(Gom_ctxt ctxt, struct place* place);
-void event_add_address(Gom_ctxt ctxt, struct address* address);
-void event_add_phone(Gom_ctxt ctxt, char *phone);
-void event_add_citation(Gom_ctxt ctxt, struct source_citation* cit);
-void event_add_mm_link(Gom_ctxt ctxt, struct multimedia_link* mm);
-void event_add_note(Gom_ctxt ctxt, struct note_sub* note);
-void event_add_user_data(Gom_ctxt ctxt, struct user_data* data);
+int write_events(Gedcom_write_hndl hndl, int parent, EventType evt_type,
+                struct event* evt);
+
+DECLARE_SUB_MAKEFUNC(event);
+
+DECLARE_UNREFALLFUNC(event);
+DECLARE_CLEANFUNC(event);
+DECLARE_ADDFUNC2(event, source_citation);
+DECLARE_ADDFUNC2(event, multimedia_link);
+DECLARE_ADDFUNC2(event, note_sub);
+DECLARE_ADDFUNC2(event, user_data);
+DECLARE_ADDFUNC2_NOLIST(event, place);
+DECLARE_ADDFUNC2_NOLIST(event, address);
+DECLARE_ADDFUNC2_STRN(event, phone);
 
 #endif /* __EVENT_H */