From b084903dddf3d529781b5acd29f6623fef64f50f Mon Sep 17 00:00:00 2001 From: Not Zed Date: Tue, 12 Oct 2004 07:38:28 +0000 Subject: (untested, it compiles!). 2004-10-12 Not Zed * e-config.c (ech_check, ech_config_factory, emph_construct_menu): setup a "check" handler, page-check/validation callback. svn path=/trunk/; revision=27551 --- e-util/e-config.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'e-util/e-config.c') diff --git a/e-util/e-config.c b/e-util/e-config.c index 25745c587c..b38b760f79 100644 --- a/e-util/e-config.c +++ b/e-util/e-config.c @@ -1196,6 +1196,19 @@ ech_abort(EConfig *ec, GSList *items, void *data) e_plugin_invoke(group->hook->hook.plugin, group->abort, ec->target); } +static gboolean +ech_check(EConfig *ec, const char *pageid, void *data) +{ + struct _EConfigHookGroup *group = data; + EConfigHookPageCheckData hdata; + + hdata.config = ec; + hdata.target = ec->target; + hdata.pageid = pageid?pageid:""; + + return GPOINTER_TO_INT(e_plugin_invoke(group->hook->hook.plugin, group->check, &hdata)); +} + static void ech_config_factory(EConfig *emp, void *data) { @@ -1208,6 +1221,9 @@ ech_config_factory(EConfig *emp, void *data) if (group->items) e_config_add_items(emp, group->items, ech_commit, ech_abort, NULL, group); + + if (group->check) + e_config_add_page_check(emp, NULL, ech_check, group); } static void @@ -1295,6 +1311,7 @@ emph_construct_menu(EPluginHook *eph, xmlNodePtr root) menu->target_type = map->id; menu->id = e_plugin_xml_prop(root, "id"); + menu->check = e_plugin_xml_prop(root, "check"); menu->commit = e_plugin_xml_prop(root, "commit"); menu->abort = e_plugin_xml_prop(root, "abort"); menu->hook = (EConfigHook *)eph; -- cgit v1.2.3