From b28bcfc9e5c9febb0f4c6702e3a0426bd5e087c6 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Fri, 13 May 2005 11:08:46 +0000 Subject: if we have a factory method supplied, call that as well. More flexible 2005-05-13 Not Zed * e-popup.c (emph_popup_factory): if we have a factory method supplied, call that as well. More flexible popup building. (emph_construct_menu): load factory def. svn path=/trunk/; revision=29352 --- e-util/e-popup.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'e-util/e-popup.c') diff --git a/e-util/e-popup.c b/e-util/e-popup.c index cb505e0cb2..d812e01d31 100644 --- a/e-util/e-popup.c +++ b/e-util/e-popup.c @@ -685,7 +685,7 @@ e_popup_target_free(EPopup *ep, void *o) description="IMAP4 and IMAP4v1 mail store"> - + + activate="ep_view_emacs"/> * @@ -735,6 +735,9 @@ emph_popup_factory(EPopup *emp, void *data) if (menu->items) e_popup_add_items(emp, menu->items, menu->hook->hook.plugin->domain, NULL, menu->hook); + + if (menu->factory) + e_plugin_invoke(menu->hook->hook.plugin, menu->factory, emp->target); } static void @@ -753,6 +756,7 @@ emph_free_menu(struct _EPopupHookMenu *menu) g_slist_foreach(menu->items, (GFunc)emph_free_item, NULL); g_slist_free(menu->items); + g_free(menu->factory); g_free(menu->id); g_free(menu); } @@ -817,6 +821,9 @@ emph_construct_menu(EPluginHook *eph, xmlNodePtr root) ((EPluginHookClass *)G_OBJECT_GET_CLASS(eph))->id); goto error; } + + menu->factory = e_plugin_xml_prop(root, "factory"); + node = root->children; while (node) { if (0 == strcmp(node->name, "item")) { -- cgit v1.2.3