From 95de5b13a223478f6ae5bcffd59994a9871a75f1 Mon Sep 17 00:00:00 2001 From: Davide Andreoli Date: Sun, 29 Mar 2009 15:33:26 +0000 Subject: [PATCH] * e_fm_operation_registry : Add a new api call: EAPI int e_fm2_op_registry_count(void) * Add the new simple module fileman_opinfo The module provide a gadget that show the efm operations in progress. It is just a button with a dynamic label atm, a better interface to come... To compile the module you need to add it to configure.ac and src/modules/Makefile.am ... I have those files too much hacked atm to commit :P k-s: can you commit the 2 files for me please? just add the new module. Hope you like it Dave SVN revision: 39794 --- src/bin/e_fm_op_registry.c | 6 + src/bin/e_fm_op_registry.h | 2 + src/modules/fileman_opinfo/Makefile.am | 28 +++ .../e-module-fileman_opinfo.edj | Bin 0 -> 18521 bytes src/modules/fileman_opinfo/e_mod_main.c | 192 ++++++++++++++++++ src/modules/fileman_opinfo/e_mod_main.h | 13 ++ src/modules/fileman_opinfo/module.desktop.in | 8 + 7 files changed, 249 insertions(+) create mode 100644 src/modules/fileman_opinfo/Makefile.am create mode 100644 src/modules/fileman_opinfo/e-module-fileman_opinfo.edj create mode 100644 src/modules/fileman_opinfo/e_mod_main.c create mode 100644 src/modules/fileman_opinfo/e_mod_main.h create mode 100644 src/modules/fileman_opinfo/module.desktop.in diff --git a/src/bin/e_fm_op_registry.c b/src/bin/e_fm_op_registry.c index fd17d65da..a05fdf9e6 100644 --- a/src/bin/e_fm_op_registry.c +++ b/src/bin/e_fm_op_registry.c @@ -468,6 +468,12 @@ e_fm2_op_registry_is_empty(void) return eina_hash_population(_e_fm2_op_registry) == 0; } +EAPI int +e_fm2_op_registry_count(void) +{ + return eina_hash_population(_e_fm2_op_registry); +} + EAPI unsigned int e_fm2_op_registry_init(void) diff --git a/src/bin/e_fm_op_registry.h b/src/bin/e_fm_op_registry.h index 73cabd0f8..299e1c7cb 100644 --- a/src/bin/e_fm_op_registry.h +++ b/src/bin/e_fm_op_registry.h @@ -53,6 +53,8 @@ EAPI Eina_Iterator *e_fm2_op_registry_iterator_new(void); EAPI Eina_List *e_fm2_op_registry_get_all(void); EAPI void e_fm2_op_registry_get_all_free(Eina_List *list); EAPI Eina_Bool e_fm2_op_registry_is_empty(void); +EAPI int e_fm2_op_registry_count(void); + EAPI unsigned int e_fm2_op_registry_init(void); EAPI unsigned int e_fm2_op_registry_shutdown(void); diff --git a/src/modules/fileman_opinfo/Makefile.am b/src/modules/fileman_opinfo/Makefile.am new file mode 100644 index 000000000..28372fc14 --- /dev/null +++ b/src/modules/fileman_opinfo/Makefile.am @@ -0,0 +1,28 @@ +MAINTAINERCLEANFILES = Makefile.in +MODULE = fileman_opinfo + +# data files for the module +filesdir = $(libdir)/enlightenment/modules/$(MODULE) +files_DATA = \ +e-module-$(MODULE).edj module.desktop + +EXTRA_DIST = $(files_DATA) + +# the module .so file +INCLUDES = -I. \ + -I$(top_srcdir) \ + -I$(top_srcdir)/src/modules/$(MODULE) \ + -I$(top_srcdir)/src/bin \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/modules \ + @e_cflags@ +pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH) +pkg_LTLIBRARIES = module.la +module_la_SOURCES = e_mod_main.c \ + e_mod_main.h +module_la_LIBADD = @e_libs@ @dlopen_libs@ +module_la_LDFLAGS = -module -avoid-version +module_la_DEPENDENCIES = $(top_builddir)/config.h + +uninstall: + rm -rf $(DESTDIR)$(libdir)/enlightenment/modules/$(MODULE) diff --git a/src/modules/fileman_opinfo/e-module-fileman_opinfo.edj b/src/modules/fileman_opinfo/e-module-fileman_opinfo.edj new file mode 100644 index 0000000000000000000000000000000000000000..e7f2d592d1be1f6720d6868c0b300150f05f3b0b GIT binary patch literal 18521 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 H@lX99R`p<- literal 0 HcmV?d00001 diff --git a/src/modules/fileman_opinfo/e_mod_main.c b/src/modules/fileman_opinfo/e_mod_main.c new file mode 100644 index 000000000..a1caef40e --- /dev/null +++ b/src/modules/fileman_opinfo/e_mod_main.c @@ -0,0 +1,192 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ +#include "e.h" +#include "e_mod_main.h" + +typedef struct _Instance Instance; + +struct _Instance +{ + E_Gadcon_Client *gcc; + Evas_Object *o_btn; + Ecore_Event_Handler *fm_op_entry_add_handler; + Ecore_Event_Handler *fm_op_entry_del_handler; +}; + +/* gadcon requirements */ +static E_Gadcon_Client *_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style); +static void _gc_shutdown(E_Gadcon_Client *gcc); +static void _gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient); +static char *_gc_label(E_Gadcon_Client_Class *client_class); +static Evas_Object *_gc_icon(E_Gadcon_Client_Class *client_class, Evas *evas); +static const char *_gc_id_new(E_Gadcon_Client_Class *client_class); +static const E_Gadcon_Client_Class _gadcon_class = { + GADCON_CLIENT_CLASS_VERSION, "efm_info", { + _gc_init, _gc_shutdown, _gc_orient, _gc_label, _gc_icon, _gc_id_new, NULL + }, E_GADCON_CLIENT_STYLE_PLAIN +}; + +/******************** PROTOS *******************************************/ +void _opinfo_button_cb(void *data, void *data2); +static void _opinfo_update_gadget(Instance *inst); + +/******************** GLOBALS ******************************************/ +static E_Module *opinfo_module = NULL; + +/******************** OP_REGISTRY *************************************/ +static int +_opinfo_op_registry_entry_cb(void *data, int type, void *event) +{ + _opinfo_update_gadget(data); + return ECORE_CALLBACK_RENEW; +} + +static void +_opinfo_update_gadget(Instance *inst) +{ + char buf[1024]; + int count; + + count = e_fm2_op_registry_count(); + if (count) + snprintf(buf, sizeof(buf), _("%d operations"), count); + else + snprintf(buf, sizeof(buf), _("idle")); + e_widget_button_label_set(inst->o_btn, buf); + e_widget_disabled_set(inst->o_btn, count ? 0 : 1); +} + +void +_opinfo_button_cb(void *data, void *data2) +{ + Ecore_X_Window win; + Eina_Iterator *itr; + E_Fm2_Op_Registry_Entry *ere; + + itr = e_fm2_op_registry_iterator_new(); + EINA_ITERATOR_FOREACH(itr, ere) + { + win = e_fm2_op_registry_entry_xwin_get(ere); + e_util_dialog_show("TODO","What to show here ?"); + //ecore_x_window_show(win); + } + eina_iterator_free(itr); +} +/******************** GADCON *******************************************/ +static E_Gadcon_Client * +_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) +{ + Evas_Object *o; + E_Gadcon_Client *gcc; + Instance *inst; + + inst = E_NEW(Instance, 1); + + o = e_widget_button_add(gc->evas, "", NULL, _opinfo_button_cb, NULL, NULL); + inst->o_btn = o; + _opinfo_update_gadget(inst); + + gcc = e_gadcon_client_new(gc, name, id, style, o); + gcc->data = inst; + inst->gcc = gcc; + + e_gadcon_client_util_menu_attach(gcc); + + inst->fm_op_entry_add_handler = + ecore_event_handler_add(E_EVENT_FM_OP_REGISTRY_ADD, + _opinfo_op_registry_entry_cb, inst); + inst->fm_op_entry_del_handler = + ecore_event_handler_add(E_EVENT_FM_OP_REGISTRY_DEL, + _opinfo_op_registry_entry_cb, inst); + + return gcc; +} + +static void +_gc_shutdown(E_Gadcon_Client *gcc) +{ + Instance *inst; + + inst = gcc->data; + + if (inst->fm_op_entry_add_handler) + ecore_event_handler_del(inst->fm_op_entry_add_handler); + if (inst->fm_op_entry_del_handler) + ecore_event_handler_del(inst->fm_op_entry_del_handler); + + evas_object_del(inst->o_btn); + free(inst); +} + +static void +_gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient) +{ + Instance *inst; + Evas_Coord mw, mh; + + inst = gcc->data; + + mw = 120, mh = 40; + evas_object_size_hint_min_set(inst->o_btn, mw, mh); + e_gadcon_client_aspect_set(gcc, mw, mh); + e_gadcon_client_min_size_set(gcc, mw, mh); +} + +static char * +_gc_label(E_Gadcon_Client_Class *client_class) +{ + return _("EFM Operation Info"); +} + +static Evas_Object * +_gc_icon(E_Gadcon_Client_Class *client_class, Evas *evas) +{ + Evas_Object *o; + char buf[4096]; + + o = edje_object_add(evas); + snprintf(buf, sizeof(buf), "%s/e-module-fileman_opinfo.edj", + e_module_dir_get(opinfo_module)); + edje_object_file_set(o, buf, "icon"); + return o; +} + +static const char * +_gc_id_new(E_Gadcon_Client_Class *client_class) +{ + return _gadcon_class.name; +} + +/******************** E MODULE ****************************************/ +EAPI E_Module_Api e_modapi = +{ + E_MODULE_API_VERSION, + "EFM Info" +}; + +EAPI void * +e_modapi_init(E_Module *m) +{ + opinfo_module = m; + + e_gadcon_provider_register(&_gadcon_class); + return m; +} + +EAPI int +e_modapi_shutdown(E_Module *m) +{ + opinfo_module = NULL; + + e_gadcon_provider_unregister(&_gadcon_class); + return 1; +} + +EAPI int +e_modapi_save(E_Module *m) +{ + return 1; +} + +/***************************************************************************/ diff --git a/src/modules/fileman_opinfo/e_mod_main.h b/src/modules/fileman_opinfo/e_mod_main.h new file mode 100644 index 000000000..2eb60362e --- /dev/null +++ b/src/modules/fileman_opinfo/e_mod_main.h @@ -0,0 +1,13 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ +#ifndef E_MOD_MAIN_H +#define E_MOD_MAIN_H + +EAPI extern E_Module_Api e_modapi; + +EAPI void *e_modapi_init (E_Module *m); +EAPI int e_modapi_shutdown (E_Module *m); +EAPI int e_modapi_save (E_Module *m); + +#endif diff --git a/src/modules/fileman_opinfo/module.desktop.in b/src/modules/fileman_opinfo/module.desktop.in new file mode 100644 index 000000000..0903f590f --- /dev/null +++ b/src/modules/fileman_opinfo/module.desktop.in @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Link +Name=EFM Operation Info +Name[it]=Informazioni operazioni filemanager +Icon=e-module-fileman_opinfo +Comment=Gadget to show current EFM operations
Can be placed on the desktop or in a shelf. +Comment[it]=Gadget che mostra le operazioni in corso del file manager
Può essere messo sul desktop o su una mensola. +X-Enlightenment-ModuleType=fileman