mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
using new events with object argument
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13396 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
cec7bb732c
commit
8fffaf8c7a
16
ChangeLog
16
ChangeLog
@ -1,3 +1,18 @@
|
||||
2006-02-26 Neil Williams <linux@codehelp.co.uk>
|
||||
|
||||
* qof/qof-be-utils.h : Replace macro to restore
|
||||
programme flow.
|
||||
* qof/qofevent.c :
|
||||
* qof/qofevent.h : Outline method to make application
|
||||
events easier to use.
|
||||
|
||||
* qof/deprecated.c : Define deprecated event functions
|
||||
that call new QofEvents with a NULL event_data argument.
|
||||
* qof/qofbook.c : Use new qof_event arguments.
|
||||
* qof/qofevent.c : Allow events to be generated with an
|
||||
optional event_data argument.
|
||||
* qof/qofevent.h : Doxygen tweaks.
|
||||
|
||||
2006-02-26 Joshua Sled <jsled@asynchronous.org>
|
||||
|
||||
* src/report/utility-reports/Makefile.am (SCM_FILE_LINKS):
|
||||
@ -3006,4 +3021,3 @@ r12231 | chris | 2006-01-01 17:26:15 -0500 (Sun, 01 Jan 2006) | 9 lines
|
||||
* lots of control-flow simplification
|
||||
* factor one chunk out into get_any_account()
|
||||
* Comment some things that are bogus or need improvement
|
||||
|
||||
|
@ -76,5 +76,5 @@ void gnc_engine_resume_events (void)
|
||||
}
|
||||
void gnc_engine_gen_event (QofEntity *entity, GNCEngineEventType event_type)
|
||||
{
|
||||
qof_event_gen(entity, event_type);
|
||||
qof_event_gen(entity, event_type, NULL);
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ qof_book_new (void)
|
||||
qof_book_init(book);
|
||||
qof_object_book_begin (book);
|
||||
|
||||
qof_event_gen (&book->inst.entity, QOF_EVENT_CREATE);
|
||||
qof_event_gen (&book->inst.entity, QOF_EVENT_CREATE, NULL);
|
||||
LEAVE ("book=%p", book);
|
||||
return book;
|
||||
}
|
||||
@ -108,7 +108,7 @@ qof_book_destroy (QofBook *book)
|
||||
ENTER ("book=%p", book);
|
||||
|
||||
book->shutting_down = TRUE;
|
||||
qof_event_force (&book->inst.entity, QOF_EVENT_DESTROY);
|
||||
qof_event_force (&book->inst.entity, QOF_EVENT_DESTROY, NULL);
|
||||
|
||||
/* Call the list of finalizers, let them do their thing.
|
||||
* Do this before tearing into the rest of the book.
|
||||
|
@ -30,7 +30,7 @@
|
||||
/* for backwards compatibility - to be moved back to qofevent.c in libqof2 */
|
||||
typedef struct
|
||||
{
|
||||
GNCEngineEventHandler old_handler;
|
||||
GNCEngineEventHandler old_handler; /** \deprecated */
|
||||
QofEventHandler handler;
|
||||
gpointer user_data;
|
||||
|
||||
@ -46,6 +46,6 @@ qof_event_generate (const GUID *guid, QofIdType e_type,
|
||||
QofEventId event_id);
|
||||
|
||||
/* generates an event even when events are suspended! */
|
||||
void qof_event_force (QofEntity *entity, QofEventId event_id);
|
||||
void qof_event_force (QofEntity *entity, QofEventId event_id, gpointer event_data);
|
||||
|
||||
#endif
|
||||
|
@ -125,7 +125,6 @@ qof_event_register_handler (QofEventHandler handler, gpointer user_data)
|
||||
hi->handler_id = handler_id;
|
||||
|
||||
handlers = g_list_prepend (handlers, hi);
|
||||
|
||||
LEAVE ("(handler=%p, data=%p) handler_id=%d", handler, user_data, handler_id);
|
||||
return handler_id;
|
||||
}
|
||||
@ -197,7 +196,8 @@ qof_event_resume (void)
|
||||
}
|
||||
|
||||
static void
|
||||
qof_event_generate_internal (QofEntity *entity, QofEventId event_id)
|
||||
qof_event_generate_internal (QofEntity *entity, QofEventId event_id,
|
||||
gpointer event_data)
|
||||
{
|
||||
GList *node;
|
||||
GList *next_node = NULL;
|
||||
@ -233,8 +233,9 @@ qof_event_generate_internal (QofEntity *entity, QofEventId event_id)
|
||||
}
|
||||
if (hi->handler)
|
||||
{
|
||||
PINFO("id=%d hi=%p han=%p", hi->handler_id, hi, hi->handler);
|
||||
hi->handler (entity, event_id, hi->user_data);
|
||||
PINFO("id=%d hi=%p han=%p data=%p", hi->handler_id, hi,
|
||||
hi->handler, event_data);
|
||||
hi->handler (entity, event_id, hi->user_data, event_data);
|
||||
}
|
||||
}
|
||||
handler_run_level--;
|
||||
@ -261,16 +262,16 @@ qof_event_generate_internal (QofEntity *entity, QofEventId event_id)
|
||||
}
|
||||
|
||||
void
|
||||
qof_event_force (QofEntity *entity, QofEventId event_id)
|
||||
qof_event_force (QofEntity *entity, QofEventId event_id, gpointer event_data)
|
||||
{
|
||||
if (!entity)
|
||||
return;
|
||||
|
||||
qof_event_generate_internal (entity, event_id);
|
||||
qof_event_generate_internal (entity, event_id, event_data);
|
||||
}
|
||||
|
||||
void
|
||||
qof_event_gen (QofEntity *entity, QofEventId event_id)
|
||||
qof_event_gen (QofEntity *entity, QofEventId event_id, gpointer event_data)
|
||||
{
|
||||
if (!entity)
|
||||
return;
|
||||
@ -278,7 +279,7 @@ qof_event_gen (QofEntity *entity, QofEventId event_id)
|
||||
if (suspend_counter)
|
||||
return;
|
||||
|
||||
qof_event_generate_internal (entity, event_id);
|
||||
qof_event_generate_internal (entity, event_id, event_data);
|
||||
}
|
||||
|
||||
/* deprecated */
|
||||
@ -291,7 +292,7 @@ qof_event_generate (const GUID *guid, QofIdType e_type,
|
||||
ent.e_type = e_type;
|
||||
if (suspend_counter) return;
|
||||
/* caution: this is an incomplete entity! */
|
||||
qof_event_generate_internal (&ent, event_id);
|
||||
qof_event_generate_internal (&ent, event_id, NULL);
|
||||
}
|
||||
|
||||
/* =========================== END OF FILE ======================= */
|
||||
|
@ -1,6 +1,7 @@
|
||||
/********************************************************************
|
||||
* qofevent.h -- QOF event handling interface *
|
||||
* Copyright 2000 Dave Peticolas <dave@krondo.com> *
|
||||
* Copyright 2006 Neil Williams <linux@codehelp.co.uk> *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
@ -57,26 +58,27 @@ any process can define their own events.
|
||||
event identifiers must be larger than this. */
|
||||
#define QOF_DEFAULT_EVENT_LIMIT QOF_EVENT__LAST
|
||||
|
||||
/** \brief Handler invoked when an engine event occurs.
|
||||
/** \brief Handler invoked when an event is generated.
|
||||
*
|
||||
* @param ent: Entity generating the event
|
||||
* @param event_type: The name of the event, including additional names and
|
||||
* @param event_type: The id of the event, including additional identifiers and
|
||||
the older defaults.
|
||||
* @param user_data: user_data supplied when handler was registered.
|
||||
* @param handler_data: data supplied when handler was registered.
|
||||
* @param event_data: data to be supplied when handler is invoked.
|
||||
*/
|
||||
typedef void (*QofEventHandler) (QofEntity *ent, QofEventId event_type,
|
||||
gpointer user_data);
|
||||
gpointer handler_data, gpointer event_data);
|
||||
|
||||
/** \brief Register a handler for engine events.
|
||||
/** \brief Register a handler for events.
|
||||
*
|
||||
* @param handler: handler to register
|
||||
* @param user_data: data provided when handler is invoked
|
||||
* @param handler_data: data provided when handler is invoked
|
||||
*
|
||||
* @return id identifying handler
|
||||
*/
|
||||
gint qof_event_register_handler (QofEventHandler handler, gpointer user_data);
|
||||
gint qof_event_register_handler (QofEventHandler handler, gpointer handler_data);
|
||||
|
||||
/** \brief Unregister an engine event handler.
|
||||
/** \brief Unregister an event handler.
|
||||
*
|
||||
* @param handler_id: the id of the handler to unregister
|
||||
*/
|
||||
@ -100,8 +102,11 @@ void qof_event_unregister_handler (gint handler_id);
|
||||
|
||||
@param entity: the entity generating the event
|
||||
@param event_type: the name of the event.
|
||||
@param event_data: Data to be passed to the event handler just for
|
||||
this one event. Can be NULL.
|
||||
*/
|
||||
void qof_event_gen (QofEntity *entity, QofEventId event_type);
|
||||
void qof_event_gen (QofEntity *entity, QofEventId event_type,
|
||||
gpointer event_data);
|
||||
|
||||
/** \brief Suspend all engine events.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user