aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-config.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2004-10-12 15:38:28 +0800
committerMichael Zucci <zucchi@src.gnome.org>2004-10-12 15:38:28 +0800
commitb084903dddf3d529781b5acd29f6623fef64f50f (patch)
treea74f71bf1d02e27dbe1df853c30872964a71328c /e-util/e-config.c
parentc9e20b967bb7e1b679f10cb9d388c94a95c3bf06 (diff)
downloadgsoc2013-evolution-b084903dddf3d529781b5acd29f6623fef64f50f.tar
gsoc2013-evolution-b084903dddf3d529781b5acd29f6623fef64f50f.tar.gz
gsoc2013-evolution-b084903dddf3d529781b5acd29f6623fef64f50f.tar.bz2
gsoc2013-evolution-b084903dddf3d529781b5acd29f6623fef64f50f.tar.lz
gsoc2013-evolution-b084903dddf3d529781b5acd29f6623fef64f50f.tar.xz
gsoc2013-evolution-b084903dddf3d529781b5acd29f6623fef64f50f.tar.zst
gsoc2013-evolution-b084903dddf3d529781b5acd29f6623fef64f50f.zip
(untested, it compiles!).
2004-10-12 Not Zed <NotZed@Ximian.com> * e-config.c (ech_check, ech_config_factory, emph_construct_menu): setup a "check" handler, page-check/validation callback. svn path=/trunk/; revision=27551
Diffstat (limited to 'e-util/e-config.c')
-rw-r--r--e-util/e-config.c17
1 files changed, 17 insertions, 0 deletions
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;