From: Hannes Janetzek Date: Fri, 14 May 2010 22:06:06 +0000 (+0000) Subject: - remove Evry.h X-Git-Tag: submit/efl/20131021.015651~7492 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=71bc90e6ce31c66eb62b4d7021886bcd7a1ed79a;p=platform%2Fupstream%2Fenlightenment.git - remove Evry.h - move local vars into Evry_Window SVN revision: 48871 --- diff --git a/src/modules/everything/Evry.h b/src/modules/everything/Evry.h deleted file mode 100644 index beb885b..0000000 --- a/src/modules/everything/Evry.h +++ /dev/null @@ -1,303 +0,0 @@ -#ifndef EVRY_H -#define EVRY_H - -#include "e.h" -#include "evry_api.h" -#include "evry_types.h" - -extern int _e_module_evry_log_dom; - -#ifndef EINA_LOG_DEFAULT_COLOR -#define EINA_LOG_DEFAULT_COLOR EINA_COLOR_CYAN -#endif - -#undef DBG -#undef INF -#undef WRN -#undef ERR - -#define DBG(...) EINA_LOG_DOM_DBG(_e_module_evry_log_dom , __VA_ARGS__) -#define INF(...) EINA_LOG_DOM_INFO(_e_module_evry_log_dom , __VA_ARGS__) -#define WRN(...) EINA_LOG_DOM_WARN(_e_module_evry_log_dom , __VA_ARGS__) -#define ERR(...) EINA_LOG_DOM_ERR(_e_module_evry_log_dom , __VA_ARGS__) - -typedef struct _Evry_State Evry_State; -typedef struct _Evry_View Evry_View; -typedef struct _History Evry_History; -typedef struct _Config Evry_Config; - -#define EVRY_ITEM(_item) ((Evry_Item *)_item) -#define EVRY_ACTN(_item) ((Evry_Action *) _item) -#define EVRY_PLUGIN(_plugin) ((Evry_Plugin *) _plugin) -#define EVRY_VIEW(_view) ((Evry_View *) _view) -#define EVRY_FILE(_it) ((Evry_Item_File *) _it) - -#define CHECK_TYPE(_item, _type) \ - (((Evry_Item *)_item)->type && ((Evry_Item *)_item)->type == _type) - -#define CHECK_SUBTYPE(_item, _type) \ - (((Evry_Item *)_item)->subtype && ((Evry_Item *)_item)->subtype == _type) - -#define IS_BROWSEABLE(_item) \ - ((Evry_Item *)_item)->browseable - -#define GET_APP(_app, _item) Evry_Item_App *_app = (Evry_Item_App *) _item -#define GET_FILE(_file, _item) Evry_Item_File *_file = (Evry_Item_File *) _item -#define GET_EVRY_PLUGIN(_p, _plugin) Evry_Plugin *_p = (Evry_Plugin*) _plugin -#define GET_VIEW(_v, _view) View *_v = (View*) _view -#define GET_ACTION(_act, _item) Evry_Action *_act = (Evry_Action *) _item -#define GET_PLUGIN(_p, _plugin) Plugin *_p = (Plugin*) _plugin -#define GET_ITEM(_it, _any) Evry_Item *_it = (Evry_Item *) _any - -#define EVRY_ITEM_DATA_INT_SET(_item, _data) ((Evry_Item *)_item)->data = (void*)(long) _data -#define EVRY_ITEM_DATA_INT_GET(_item) (long) ((Evry_Item *)_item)->data -#define EVRY_ITEM_ICON_SET(_item, _icon) ((Evry_Item *)_item)->icon = _icon - -#define EVRY_ITEM_DETAIL_SET(_it, _detail) \ - if (EVRY_ITEM(_it)->detail) eina_stringshare_del(EVRY_ITEM(_it)->detail); \ - EVRY_ITEM(_it)->detail = eina_stringshare_add(_detail); - -#define EVRY_ITEM_LABEL_SET(_it, _label) \ - if (EVRY_ITEM(_it)->label) eina_stringshare_del(EVRY_ITEM(_it)->label); \ - EVRY_ITEM(_it)->label = eina_stringshare_add(_label); - -#define EVRY_ITEM_CONTEXT_SET(_it, _context) \ - if (EVRY_ITEM(_it)->context) eina_stringshare_del(EVRY_ITEM(_it)->context); \ - EVRY_ITEM(_it)->context = eina_stringshare_add(_context); - -#define EVRY_ITEM_NEW(_base, _plugin, _label, _icon_get, _free) \ - (_base *) evry_item_new(EVRY_ITEM(E_NEW(_base, 1)), EVRY_PLUGIN(_plugin), \ - _label, _icon_get, _free) - -#define EVRY_ITEM_FREE(_item) evry_item_free((Evry_Item *)_item) -#define EVRY_ITEM_REF(_item) evry_item_ref((Evry_Item *)_item) - -#define EVRY_PLUGIN_NEW(_base, _name, _icon, _item_type, _begin, _cleanup, _fetch, _free) \ - evry_plugin_new(EVRY_PLUGIN(E_NEW(_base, 1)), _name, _(_name), _icon, _item_type, \ - _begin, _cleanup, _fetch, _free) - - -#define EVRY_ACTION_NEW(_name, _in1, _in2, _icon, _action, _check) \ - evry_action_new(_name, _(_name), _in1, _in2, _icon, _action, _check) - - -#define EVRY_PLUGIN_FREE(_p) \ - if (_p) evry_plugin_free(EVRY_PLUGIN(_p)) - -#define EVRY_PLUGIN_UPDATE(_p, _action) \ - if (_p) evry_plugin_update(EVRY_PLUGIN(_p), _action) - - -#define EVRY_PLUGIN_ITEMS_CLEAR(_p) { \ - Evry_Item *it; \ - EINA_LIST_FREE(EVRY_PLUGIN(_p)->items, it) \ - it->fuzzy_match = 0; } - -#define EVRY_PLUGIN_ITEMS_FREE(_p) { \ - Evry_Item *it; \ - EINA_LIST_FREE(EVRY_PLUGIN(_p)->items, it) \ - evry_item_free(it); } - - -#define EVRY_PLUGIN_ITEMS_SORT(_p, _sortcb) \ - EVRY_PLUGIN(_p)->items = eina_list_sort \ - (EVRY_PLUGIN(_p)->items, eina_list_count(EVRY_PLUGIN(_p)->items), _sortcb) - -#define EVRY_PLUGIN_ITEM_APPEND(_p, _item) \ - EVRY_PLUGIN(_p)->items = eina_list_append(EVRY_PLUGIN(_p)->items, EVRY_ITEM(_item)) - -#define EVRY_PLUGIN_ITEMS_ADD(_plugin, _items, _input, _match_detail, _set_usage) \ - evry_util_plugin_items_add(EVRY_PLUGIN(_plugin), _items, _input, _match_detail, _set_usage) - -#define IF_RELEASE(x) do { \ - if (x) { \ - const char *__tmp; __tmp = (x); (x) = NULL; eina_stringshare_del(__tmp); \ - } \ - (x) = NULL; \ - } while (0) - - -struct _Evry_State -{ - char *inp; /* alloced input */ - - char *input; /* pointer to input + trigger */ - /* all available plugins for current state */ - Eina_List *plugins; - - /* currently active plugins, i.e. those that provide items */ - Eina_List *cur_plugins; - - /* active plugin */ - Evry_Plugin *plugin; - - /* selected item */ - Evry_Item *cur_item; - - /* marked items */ - Eina_List *sel_items; - - Eina_Bool plugin_auto_selected; - Eina_Bool item_auto_selected; - - /* current view instance */ - Evry_View *view; - - Eina_Bool changed; - Eina_Bool trigger_active; - - unsigned int request; -}; - -struct _Evry_View -{ - Evry_View *id; - const char *name; - const char *trigger; - int active; - Evas_Object *o_list; - Evas_Object *o_bar; - - Evry_View *(*create) (Evry_View *view, const Evry_State *s, const Evas_Object *swallow); - void (*destroy) (Evry_View *view); - int (*cb_key_down) (Evry_View *view, const Ecore_Event_Key *ev); - int (*update) (Evry_View *view, int slide); - void (*clear) (Evry_View *view, int slide); - - int priority; -}; - -/* FIXME this should be exposed. - - add functions to retrieve this stuff */ -struct _Config -{ - int version; - /* position */ - double rel_x, rel_y; - /* size */ - int width, height; - - Eina_List *modules; - - /* generic plugin config */ - Eina_List *conf_subjects; - Eina_List *conf_actions; - Eina_List *conf_objects; - Eina_List *conf_views; - - int scroll_animate; - double scroll_speed; - - int hide_input; - int hide_list; - - /* quick navigation mode */ - int quick_nav; - - /* default view mode */ - int view_mode; - int view_zoom; - - int history_sort_mode; - - /* use up/down keys for prev/next in thumb view */ - int cycle_mode; - - unsigned char first_run; - - /* not saved data */ - Eina_List *actions; - Eina_List *views; - - int min_w, min_h; -}; - -struct _History -{ - int version; - Eina_Hash *subjects; - double begin; - - Eina_Bool changed; -}; - - -/* evry.c */ -EAPI void evry_item_select(const Evry_State *s, Evry_Item *it); -EAPI void evry_item_mark(const Evry_State *state, Evry_Item *it, Eina_Bool mark); -EAPI void evry_plugin_select(const Evry_State *s, Evry_Plugin *p); -EAPI int evry_list_win_show(void); -EAPI void evry_list_win_hide(void); -EAPI Evry_Item *evry_item_new(Evry_Item *base, Evry_Plugin *p, const char *label, - Evas_Object *(*icon_get) (Evry_Item *it, Evas *e), - void (*cb_free) (Evry_Item *item)); -EAPI void evry_item_free(Evry_Item *it); -EAPI void evry_item_ref(Evry_Item *it); - -EAPI void evry_plugin_update(Evry_Plugin *plugin, int state); -EAPI void evry_clear_input(Evry_Plugin *p); - -/* evry_util.c */ -EAPI Evas_Object *evry_icon_mime_get(const char *mime, Evas *e); -EAPI Evas_Object *evry_icon_theme_get(const char *icon, Evas *e); -EAPI int evry_fuzzy_match(const char *str, const char *match); -EAPI Eina_List *evry_fuzzy_match_sort(Eina_List *items); -EAPI int evry_util_exec_app(const Evry_Item *it_app, const Evry_Item *it_file); -EAPI char *evry_util_url_escape(const char *string, int inlength); -EAPI char *evry_util_url_unescape(const char *string, int length); -EAPI void evry_util_file_detail_set(Evry_Item_File *file); -EAPI int evry_util_module_config_check(const char *module_name, int conf, int epoch, int version); -EAPI Evas_Object *evry_util_icon_get(Evry_Item *it, Evas *e); -EAPI int evry_util_plugin_items_add(Evry_Plugin *p, Eina_List *items, const char *input, int match_detail, int set_usage); -EAPI int evry_items_sort_func(const void *data1, const void *data2); -EAPI void evry_item_changed(Evry_Item *it, int change_icon, int change_selected); -EAPI char *evry_util_md5_sum(const char *str); - -EAPI const char *evry_file_path_get(Evry_Item_File *file); -EAPI const char *evry_file_url_get(Evry_Item_File *file); - -/* e_mod_main.c */ -/* returns 1 when a new plugin config was created. in this case you can - set defaults of p->config */ -EAPI int evry_plugin_register(Evry_Plugin *p, int type, int priority); -EAPI void evry_plugin_unregister(Evry_Plugin *p); -EAPI void evry_action_register(Evry_Action *act, int priority); -EAPI void evry_action_unregister(Evry_Action *act); -EAPI void evry_view_register(Evry_View *view, int priority); -EAPI void evry_view_unregister(Evry_View *view); -EAPI Evry_Action *evry_action_find(const char *name); - - -EAPI void evry_history_load(void); -EAPI void evry_history_unload(void); -EAPI History_Item *evry_history_item_add(Evry_Item *it, const char *ctxt, const char *input); -EAPI int evry_history_item_usage_set(Evry_Item *it, const char *input, const char *ctxt); -EAPI History_Types *evry_history_types_get(Evry_Type type); - -EAPI Evry_Plugin *evry_plugin_new(Evry_Plugin *base, const char *name, const char *label, const char *icon, - Evry_Type item_type, - Evry_Plugin *(*begin) (Evry_Plugin *p, const Evry_Item *item), - void (*cleanup) (Evry_Plugin *p), - int (*fetch) (Evry_Plugin *p, const char *input), - void (*free) (Evry_Plugin *p)); - -EAPI void evry_plugin_free(Evry_Plugin *p); - -EAPI Evry_Action *evry_action_new(const char *name, const char *label, - Evry_Type type1, Evry_Type type2, - const char *icon, - int (*action) (Evry_Action *act), - int (*check_item) (Evry_Action *act, const Evry_Item *it)); - -EAPI void evry_action_free(Evry_Action *act); - -EAPI int evry_api_version_check(int version); - -EAPI Evry_Type evry_type_register(const char *type); -EAPI const char *evry_type_get(Evry_Type type); - - -EAPI extern Evry_History *evry_hist; -EAPI extern Evry_Config *evry_conf; - -#endif diff --git a/src/modules/everything/Makefile.am b/src/modules/everything/Makefile.am index 5d9700d..941d49d 100644 --- a/src/modules/everything/Makefile.am +++ b/src/modules/everything/Makefile.am @@ -21,7 +21,7 @@ pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH pkg_LTLIBRARIES = module.la # noinst_LTLIBRARIES = libfoo.la -EVRYHEADERS = Evry.h evry_api.h evry_types.h +EVRYHEADERS = evry_api.h evry_types.h module_la_SOURCES = $(EVRYHEADERS) \ e_mod_main.c \ diff --git a/src/modules/everything/e_mod_main.h b/src/modules/everything/e_mod_main.h index 0a66258..e4d16c0 100644 --- a/src/modules/everything/e_mod_main.h +++ b/src/modules/everything/e_mod_main.h @@ -1,7 +1,8 @@ -#include "Evry.h" +#ifndef EVRY_H +#define EVRY_H -#ifndef E_MOD_MAIN_H -#define E_MOD_MAIN_H +#include "e.h" +#include "evry_api.h" #define MOD_CONFIG_FILE_EPOCH 0x0001 #define MOD_CONFIG_FILE_GENERATION 0x0002 @@ -9,9 +10,30 @@ ((MOD_CONFIG_FILE_EPOCH << 16) | MOD_CONFIG_FILE_GENERATION) -typedef struct _Evry_Selector Evry_Selector; -typedef struct _Tab_View Tab_View; +typedef struct _Evry_State Evry_State; +typedef struct _Evry_View Evry_View; +typedef struct _History Evry_History; +typedef struct _Config Evry_Config; +typedef struct _Evry_Selector Evry_Selector; +typedef struct _Tab_View Tab_View; +typedef struct _Evry_Window Evry_Window; +struct _Evry_Window +{ + E_Popup *popup; + Evas_Object *o_main; + + Eina_Bool request_selection; + Eina_Bool plugin_dedicated; + + Eina_Bool visible; + Ecore_Timer *show_timer; + + Eina_List *handlers; + + Evry_Selector *selector; + Evry_Selector **selectors; +}; struct _Evry_Selector { @@ -43,6 +65,56 @@ struct _Evry_Selector Ecore_Timer *update_timer; }; +struct _Evry_State +{ + char *inp; /* alloced input */ + + char *input; /* pointer to input + trigger */ + /* all available plugins for current state */ + Eina_List *plugins; + + /* currently active plugins, i.e. those that provide items */ + Eina_List *cur_plugins; + + /* active plugin */ + Evry_Plugin *plugin; + + /* selected item */ + Evry_Item *cur_item; + + /* marked items */ + Eina_List *sel_items; + + Eina_Bool plugin_auto_selected; + Eina_Bool item_auto_selected; + + /* current view instance */ + Evry_View *view; + + Eina_Bool changed; + Eina_Bool trigger_active; + + unsigned int request; +}; + +struct _Evry_View +{ + Evry_View *id; + const char *name; + const char *trigger; + int active; + Evas_Object *o_list; + Evas_Object *o_bar; + + Evry_View *(*create) (Evry_View *view, const Evry_State *s, const Evas_Object *swallow); + void (*destroy) (Evry_View *view); + int (*cb_key_down) (Evry_View *view, const Ecore_Event_Key *ev); + int (*update) (Evry_View *view, int slide); + void (*clear) (Evry_View *view, int slide); + + int priority; +}; + struct _Tab_View { Evas *evas; @@ -61,50 +133,281 @@ struct _Tab_View Ecore_Timer *timer; }; +struct _Config +{ + int version; + /* position */ + double rel_x, rel_y; + /* size */ + int width, height; + Eina_List *modules; -EAPI extern E_Module_Api e_modapi; + /* generic plugin config */ + Eina_List *conf_subjects; + Eina_List *conf_actions; + Eina_List *conf_objects; + Eina_List *conf_views; + + int scroll_animate; + double scroll_speed; + + int hide_input; + int hide_list; + + /* quick navigation mode */ + int quick_nav; + + /* default view mode */ + int view_mode; + int view_zoom; + + int history_sort_mode; + + /* use up/down keys for prev/next in thumb view */ + int cycle_mode; + + unsigned char first_run; + + /* not saved data */ + Eina_List *actions; + Eina_List *views; + + int min_w, min_h; +}; + +struct _History +{ + int version; + Eina_Hash *subjects; + double begin; + + Eina_Bool changed; +}; + +/* evry.c */ +void evry_item_select(const Evry_State *s, Evry_Item *it); +void evry_item_mark(const Evry_State *state, Evry_Item *it, Eina_Bool mark); +void evry_plugin_select(const Evry_State *s, Evry_Plugin *p); +int evry_list_win_show(void); +void evry_list_win_hide(void); +Evry_Item *evry_item_new(Evry_Item *base, Evry_Plugin *p, const char *label, + Evas_Object *(*icon_get) (Evry_Item *it, Evas *e), + void (*cb_free) (Evry_Item *item)); +void evry_item_free(Evry_Item *it); +void evry_item_ref(Evry_Item *it); + +void evry_plugin_update(Evry_Plugin *plugin, int state); +void evry_clear_input(Evry_Plugin *p); + +/* evry_util.c */ +Evas_Object *evry_icon_mime_get(const char *mime, Evas *e); +Evas_Object *evry_icon_theme_get(const char *icon, Evas *e); +int evry_fuzzy_match(const char *str, const char *match); +Eina_List *evry_fuzzy_match_sort(Eina_List *items); +int evry_util_exec_app(const Evry_Item *it_app, const Evry_Item *it_file); +char *evry_util_url_escape(const char *string, int inlength); +char *evry_util_url_unescape(const char *string, int length); +void evry_util_file_detail_set(Evry_Item_File *file); +int evry_util_module_config_check(const char *module_name, int conf, int epoch, int version); +Evas_Object *evry_util_icon_get(Evry_Item *it, Evas *e); +int evry_util_plugin_items_add(Evry_Plugin *p, Eina_List *items, const char *input, int match_detail, int set_usage); +int evry_items_sort_func(const void *data1, const void *data2); +void evry_item_changed(Evry_Item *it, int change_icon, int change_selected); +char *evry_util_md5_sum(const char *str); + +const char *evry_file_path_get(Evry_Item_File *file); +const char *evry_file_url_get(Evry_Item_File *file); + +int evry_plugin_register(Evry_Plugin *p, int type, int priority); +void evry_plugin_unregister(Evry_Plugin *p); +void evry_action_register(Evry_Action *act, int priority); +void evry_action_unregister(Evry_Action *act); +void evry_view_register(Evry_View *view, int priority); +void evry_view_unregister(Evry_View *view); +Evry_Action *evry_action_find(const char *name); + +void evry_history_load(void); +void evry_history_unload(void); +History_Item *evry_history_item_add(Evry_Item *it, const char *ctxt, const char *input); +int evry_history_item_usage_set(Evry_Item *it, const char *input, const char *ctxt); +History_Types *evry_history_types_get(Evry_Type type); + +Evry_Plugin *evry_plugin_new(Evry_Plugin *base, const char *name, const char *label, const char *icon, + Evry_Type item_type, + Evry_Plugin *(*begin) (Evry_Plugin *p, const Evry_Item *item), + void (*cleanup) (Evry_Plugin *p), + int (*fetch) (Evry_Plugin *p, const char *input), + void (*free) (Evry_Plugin *p)); + +void evry_plugin_free(Evry_Plugin *p); + +Evry_Action *evry_action_new(const char *name, const char *label, + Evry_Type type1, Evry_Type type2, + const char *icon, + int (*action) (Evry_Action *act), + int (*check_item) (Evry_Action *act, const Evry_Item *it)); + +void evry_action_free(Evry_Action *act); + +int evry_api_version_check(int version); + +Evry_Type evry_type_register(const char *type); +const char *evry_type_get(Evry_Type type); -EAPI void *e_modapi_init (E_Module *m); -EAPI int e_modapi_shutdown (E_Module *m); -EAPI int e_modapi_save (E_Module *m); -EAPI E_Config_Dialog *evry_config_dialog(E_Container *con, const char *params); Tab_View *evry_tab_view_new(const Evry_State *s, Evas *e); -void evry_tab_view_free(Tab_View *v); +void evry_tab_view_free(Tab_View *v); Eina_Bool view_thumb_init(void); -void view_thumb_shutdown(void); +void view_thumb_shutdown(void); Eina_Bool view_help_init(void); -void view_help_shutdown(void); +void view_help_shutdown(void); Eina_Bool view_preview_init(void); -void view_preview_shutdown(void); +void view_preview_shutdown(void); Eina_Bool evry_plug_clipboard_init(void); -void evry_plug_clipboard_shutdown(void); +void evry_plug_clipboard_shutdown(void); Eina_Bool evry_plug_text_init(void); -void evry_plug_text_shutdown(void); +void evry_plug_text_shutdown(void); -int evry_init(void); -int evry_shutdown(void); -int evry_show(E_Zone *zone, const char *params); -void evry_hide(int clear); +int evry_init(void); +int evry_shutdown(void); +int evry_show(E_Zone *zone, const char *params); +void evry_hide(int clear); -Evry_Plugin *evry_plug_aggregator_new(Evry_Selector *selector, int type); +Evry_Plugin *evry_aggregator_new(Evry_Window *win, int type); +int evry_aggregator_fetch(Evry_Plugin *p, const char *input); -int evry_plug_actions_init(); -void evry_plug_actions_shutdown(); +int evry_plug_actions_init(); +void evry_plug_actions_shutdown(); Evry_Plugin *evry_plug_actions_new(Evry_Selector *selector, int type); -void evry_history_init(void); -void evry_history_free(void); +void evry_history_init(void); +void evry_history_free(void); + +int evry_browse_item(Evry_Selector *sel); +int evry_browse_back(Evry_Selector *sel); + +extern Evry_History *evry_hist; +extern Evry_Config *evry_conf; + +#define EVRY_ITEM(_item) ((Evry_Item *)_item) +#define EVRY_ACTN(_item) ((Evry_Action *) _item) +#define EVRY_PLUGIN(_plugin) ((Evry_Plugin *) _plugin) +#define EVRY_VIEW(_view) ((Evry_View *) _view) +#define EVRY_FILE(_it) ((Evry_Item_File *) _it) + +#define CHECK_TYPE(_item, _type) \ + (((Evry_Item *)_item)->type && ((Evry_Item *)_item)->type == _type) + +#define CHECK_SUBTYPE(_item, _type) \ + (((Evry_Item *)_item)->subtype && ((Evry_Item *)_item)->subtype == _type) + +#define IS_BROWSEABLE(_item) \ + ((Evry_Item *)_item)->browseable + +#define GET_APP(_app, _item) Evry_Item_App *_app = (Evry_Item_App *) _item +#define GET_FILE(_file, _item) Evry_Item_File *_file = (Evry_Item_File *) _item +#define GET_EVRY_PLUGIN(_p, _plugin) Evry_Plugin *_p = (Evry_Plugin*) _plugin +#define GET_VIEW(_v, _view) View *_v = (View*) _view +#define GET_ACTION(_act, _item) Evry_Action *_act = (Evry_Action *) _item +#define GET_PLUGIN(_p, _plugin) Plugin *_p = (Plugin*) _plugin +#define GET_ITEM(_it, _any) Evry_Item *_it = (Evry_Item *) _any + +#define EVRY_ITEM_DATA_INT_SET(_item, _data) ((Evry_Item *)_item)->data = (void*)(long) _data +#define EVRY_ITEM_DATA_INT_GET(_item) (long) ((Evry_Item *)_item)->data +#define EVRY_ITEM_ICON_SET(_item, _icon) ((Evry_Item *)_item)->icon = _icon + +#define EVRY_ITEM_DETAIL_SET(_it, _detail) \ + if (EVRY_ITEM(_it)->detail) eina_stringshare_del(EVRY_ITEM(_it)->detail); \ + EVRY_ITEM(_it)->detail = eina_stringshare_add(_detail); + +#define EVRY_ITEM_LABEL_SET(_it, _label) \ + if (EVRY_ITEM(_it)->label) eina_stringshare_del(EVRY_ITEM(_it)->label); \ + EVRY_ITEM(_it)->label = eina_stringshare_add(_label); + +#define EVRY_ITEM_CONTEXT_SET(_it, _context) \ + if (EVRY_ITEM(_it)->context) eina_stringshare_del(EVRY_ITEM(_it)->context); \ + EVRY_ITEM(_it)->context = eina_stringshare_add(_context); + +#define EVRY_ITEM_NEW(_base, _plugin, _label, _icon_get, _free) \ + (_base *) evry_item_new(EVRY_ITEM(E_NEW(_base, 1)), EVRY_PLUGIN(_plugin), \ + _label, _icon_get, _free) + +#define EVRY_ITEM_FREE(_item) evry_item_free((Evry_Item *)_item) +#define EVRY_ITEM_REF(_item) evry_item_ref((Evry_Item *)_item) + +#define EVRY_PLUGIN_NEW(_base, _name, _icon, _item_type, _begin, _cleanup, _fetch, _free) \ + evry_plugin_new(EVRY_PLUGIN(E_NEW(_base, 1)), _name, _(_name), _icon, _item_type, \ + _begin, _cleanup, _fetch, _free) + + +#define EVRY_ACTION_NEW(_name, _in1, _in2, _icon, _action, _check) \ + evry_action_new(_name, _(_name), _in1, _in2, _icon, _action, _check) + -EAPI int evry_browse_item(Evry_Selector *sel); -EAPI int evry_browse_back(Evry_Selector *sel); +#define EVRY_PLUGIN_FREE(_p) \ + if (_p) evry_plugin_free(EVRY_PLUGIN(_p)) -extern Evry_Selector **selectors; +#define EVRY_PLUGIN_UPDATE(_p, _action) \ + if (_p) evry_plugin_update(EVRY_PLUGIN(_p), _action) + + +#define EVRY_PLUGIN_ITEMS_CLEAR(_p) { \ + Evry_Item *it; \ + EINA_LIST_FREE(EVRY_PLUGIN(_p)->items, it) \ + it->fuzzy_match = 0; } + +#define EVRY_PLUGIN_ITEMS_FREE(_p) { \ + Evry_Item *it; \ + EINA_LIST_FREE(EVRY_PLUGIN(_p)->items, it) \ + evry_item_free(it); } + + +#define EVRY_PLUGIN_ITEMS_SORT(_p, _sortcb) \ + EVRY_PLUGIN(_p)->items = eina_list_sort \ + (EVRY_PLUGIN(_p)->items, eina_list_count(EVRY_PLUGIN(_p)->items), _sortcb) + +#define EVRY_PLUGIN_ITEM_APPEND(_p, _item) \ + EVRY_PLUGIN(_p)->items = eina_list_append(EVRY_PLUGIN(_p)->items, EVRY_ITEM(_item)) + +#define EVRY_PLUGIN_ITEMS_ADD(_plugin, _items, _input, _match_detail, _set_usage) \ + evry_util_plugin_items_add(EVRY_PLUGIN(_plugin), _items, _input, _match_detail, _set_usage) + +#define IF_RELEASE(x) do { \ + if (x) { \ + const char *__tmp; __tmp = (x); (x) = NULL; eina_stringshare_del(__tmp); \ + } \ + (x) = NULL; \ + } while (0) + +/*** Common Logging ***/ +extern int _e_module_evry_log_dom; + +#ifndef EINA_LOG_DEFAULT_COLOR +#define EINA_LOG_DEFAULT_COLOR EINA_COLOR_CYAN +#endif + +#undef DBG +#undef INF +#undef WRN +#undef ERR + +#define DBG(...) EINA_LOG_DOM_DBG(_e_module_evry_log_dom , __VA_ARGS__) +#define INF(...) EINA_LOG_DOM_INFO(_e_module_evry_log_dom , __VA_ARGS__) +#define WRN(...) EINA_LOG_DOM_WARN(_e_module_evry_log_dom , __VA_ARGS__) +#define ERR(...) EINA_LOG_DOM_ERR(_e_module_evry_log_dom , __VA_ARGS__) + +/*** E Module ***/ +EAPI void *e_modapi_init (E_Module *m); +EAPI int e_modapi_shutdown (E_Module *m); +EAPI int e_modapi_save (E_Module *m); +EAPI E_Config_Dialog *evry_config_dialog(E_Container *con, const char *params); + +EAPI extern E_Module_Api e_modapi; #endif diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c index 460f4aa..8d2cd7a 100644 --- a/src/modules/everything/evry.c +++ b/src/modules/everything/evry.c @@ -13,19 +13,6 @@ /* #undef DBG * #define DBG(...) ERR(__VA_ARGS__) */ -typedef struct _Evry_Window Evry_Window; - -struct _Evry_Window -{ - E_Popup *popup; - Evas_Object *o_main; - - Eina_Bool request_selection; - Eina_Bool plugin_dedicated; - - Eina_Bool visible; -}; - static void _evry_matches_update(Evry_Selector *sel, int async); static void _evry_plugin_action(Evry_Selector *sel, int finished); static void _evry_plugin_select(Evry_State *s, Evry_Plugin *p); @@ -39,7 +26,7 @@ static int _evry_cb_update_timer(void *data); static Evry_State *_evry_state_new(Evry_Selector *sel, Eina_List *plugins); static void _evry_state_pop(Evry_Selector *sel); -static Evry_Selector *_evry_selector_new(int type); +static Evry_Selector *_evry_selector_new(Evry_Window *win, int type); static void _evry_selector_free(Evry_Selector *sel); static void _evry_selector_activate(Evry_Selector *sel); static void _evry_selectors_switch(int dir); @@ -73,12 +60,6 @@ static int _evry_cb_selection_notify(void *data, int type, void *event); /* local subsystem globals */ static Evry_Window *win = NULL; static Ecore_X_Window input_window = 0; -static Eina_List *handlers = NULL; - -static Evry_Selector *selector = NULL; -static Ecore_Timer *show_timer = NULL; - -Evry_Selector **selectors = NULL; /* externally accessible functions */ int @@ -104,7 +85,7 @@ _evry_cb_item_changed(void *data, int type, void *event) for (i = 0; i < 3; i++) { - sel = selectors[i]; + sel = win->selectors[i]; if (sel->state && sel->state->cur_item == ev->item) { @@ -120,12 +101,14 @@ _evry_cb_item_changed(void *data, int type, void *event) static int _cb_show_timer(void *data) { - show_timer = NULL; + Evry_Selector *sel = win->selector; - if (evry_conf->views && selector->state) + win->show_timer = NULL; + + if (evry_conf->views && sel->state) { Evry_View *view =evry_conf->views->data; - Evry_State *s = selector->state; + Evry_State *s = sel->state; if (evry_conf->first_run) { @@ -137,13 +120,9 @@ _cb_show_timer(void *data) s->view = view->create(view, s, win->o_main); _evry_view_show(s->view); } - } - else - { - return 0; - } - _evry_list_win_show(); + _evry_list_win_show(); + } return 0; } @@ -159,32 +138,31 @@ evry_show(E_Zone *zone, const char *params) Eina_List *l; Evry_Plugin *p; - if (!(params && eina_list_count(selectors[0]->states) == 1)) + if (!(params && eina_list_count(win->selectors[0]->states) == 1)) evry_hide(1); - if (selector && params) + if (win->selector && params) { - EINA_LIST_FOREACH(selectors[0]->plugins, l, p) + EINA_LIST_FOREACH(win->selectors[0]->plugins, l, p) if (!strcmp(params, p->name)) break; - _evry_plugin_select(selector->state, p); - _evry_selector_update(selector); - _evry_view_update(selector->state, p); + _evry_plugin_select(win->selector->state, p); + _evry_selector_update(win->selector); + _evry_view_update(win->selector->state, p); } return 1; } - input_window = ecore_x_window_input_new(zone->container->win, - zone->x, zone->y, - zone->w, zone->h); + input_window = ecore_x_window_input_new(zone->container->win, 0, 0, 1, 1); + ecore_x_window_show(input_window); - if (!e_grabinput_get(input_window, 1, input_window)) + if (!e_grabinput_get(input_window, 0, input_window)) { return 0; } - + win = _evry_window_new(zone); - if (!win) + if (!win) { ecore_x_window_free(input_window); input_window = 0; @@ -198,20 +176,20 @@ evry_show(E_Zone *zone, const char *params) if (params) win->plugin_dedicated = EINA_TRUE; - selectors = E_NEW(Evry_Selector*, 3); - selectors[0] = _evry_selector_new(EVRY_PLUGIN_SUBJECT); - selectors[1] = _evry_selector_new(EVRY_PLUGIN_ACTION); - selectors[2] = _evry_selector_new(EVRY_PLUGIN_OBJECT); + win->selectors = E_NEW(Evry_Selector*, 3); + _evry_selector_new(win, EVRY_PLUGIN_SUBJECT); + _evry_selector_new(win, EVRY_PLUGIN_ACTION); + _evry_selector_new(win, EVRY_PLUGIN_OBJECT); - handlers = eina_list_append - (handlers, ecore_event_handler_add + win->handlers = eina_list_append + (win->handlers, ecore_event_handler_add (ECORE_EVENT_KEY_DOWN, _evry_cb_key_down, NULL)); - handlers = eina_list_append - (handlers, ecore_event_handler_add + win->handlers = eina_list_append + (win->handlers, ecore_event_handler_add (ECORE_X_EVENT_SELECTION_NOTIFY, _evry_cb_selection_notify, win)); - handlers = eina_list_append - (handlers, ecore_event_handler_add + win->handlers = eina_list_append + (win->handlers, ecore_event_handler_add (EVRY_EVENT_ITEM_CHANGED, _evry_cb_item_changed, NULL)); @@ -219,14 +197,14 @@ evry_show(E_Zone *zone, const char *params) e_popup_show(win->popup); _evry_selector_subjects_get(params); - _evry_selector_update(selectors[0]); - _evry_selector_activate(selectors[0]); + _evry_selector_update(win->selectors[0]); + _evry_selector_activate(win->selectors[0]); if (!evry_conf->hide_input) edje_object_signal_emit(win->o_main, "e,state,entry_show", "e"); if (!evry_conf->hide_list) - show_timer = ecore_timer_add(0.01, _cb_show_timer, NULL); + win->show_timer = ecore_timer_add(0.01, _cb_show_timer, win); return 1; } @@ -238,33 +216,40 @@ evry_hide(int clear) if (!win) return; - if ((clear && selector) && - ((eina_list_count(selectors[0]->states) > 1) || - (selectors[0]->state && selectors[0]->state->input[0]))) + if ((clear && win->selector) && + ((eina_list_count(win->selectors[0]->states) > 1) || + ((win->selectors[0]->state) && + (win->selectors[0]->state->input[0])))) { int slide = 0; - if (selector != selectors[0]) + Evry_Selector *sel; + Evry_State *s; + + if (win->selector != win->selectors[0]) { - if (selector == selectors[1]) + if (win->selector == win->selectors[1]) _evry_selectors_switch(-1); - else if (selector == selectors[2]) + else if (win->selector == win->selectors[2]) _evry_selectors_switch(1); } /* just to be sure */ - selector = selectors[0]; + win->selector = win->selectors[0]; - while (selector->states->next) + while (win->selector->states->next) { slide = 1; - _evry_state_pop(selector); + _evry_state_pop(win->selector); } - _evry_clear(selector); - _evry_clear(selector); - Evry_State *s = selector->state; - selector->aggregator->fetch(selector->aggregator, s->input); - _evry_selector_update(selector); + sel = win->selector; + s = sel->state; + + _evry_clear(sel); + _evry_clear(sel); + evry_aggregator_fetch(sel->aggregator, s->input); + + _evry_selector_update(sel); _evry_update_text_label(s); _evry_view_show(s->view); s->view->update(s->view, slide); @@ -272,25 +257,24 @@ evry_hide(int clear) return; } - if (show_timer) - ecore_timer_del(show_timer); - show_timer = NULL; + if (win->show_timer) + ecore_timer_del(win->show_timer); win->visible = EINA_FALSE; - _evry_selector_free(selectors[0]); - _evry_selector_free(selectors[1]); - _evry_selector_free(selectors[2]); - E_FREE(selectors); + _evry_selector_free(win->selectors[0]); + _evry_selector_free(win->selectors[1]); + _evry_selector_free(win->selectors[2]); + E_FREE(win->selectors); + + /* selectors = NULL; + * selector = NULL; */ - selectors = NULL; - selector = NULL; + EINA_LIST_FREE(win->handlers, ev) + ecore_event_handler_del(ev); _evry_window_free(win); win = NULL; - EINA_LIST_FREE(handlers, ev) - ecore_event_handler_del(ev); - ecore_x_window_free(input_window); e_grabinput_release(input_window, input_window); input_window = 0; @@ -303,7 +287,7 @@ evry_clear_input(Evry_Plugin *p) { Evry_Selector *sel = _evry_selector_for_plugin_get(p); - if (sel != selector) return; + if (sel != win->selector) return; Evry_State *s = sel->state; @@ -396,12 +380,12 @@ _evry_selector_for_plugin_get(Evry_Plugin *p) for (i = 0; i < 3; i++) { - if (p == selectors[i]->aggregator) - return selectors[i]; + if (p == win->selectors[i]->aggregator) + return win->selectors[i]; - s = selectors[i]->state; + s = win->selectors[i]->state; if (s && eina_list_data_find(s->plugins, p)) - return selectors[i]; + return win->selectors[i]; } return NULL; @@ -411,7 +395,7 @@ static int _evry_timer_cb_actions_get(void *data) { Evry_Item *it = data; - Evry_Selector *sel = selectors[1]; + Evry_Selector *sel = win->selectors[1]; Evry_State *s; sel->update_timer = NULL; @@ -419,7 +403,7 @@ _evry_timer_cb_actions_get(void *data) _evry_selector_actions_get(it); _evry_selector_update(sel); - if (selector == sel && selector->state) + if (win->selector == sel && win->selector->state) { s = sel->state; if (s->view) @@ -435,7 +419,7 @@ static void _evry_selector_update_actions(Evry_Selector *sel) { Evry_Item *it = sel->state->cur_item; - sel = selectors[1]; + sel = win->selectors[1]; if (sel->update_timer) ecore_timer_del(sel->update_timer); @@ -446,7 +430,7 @@ EAPI void evry_item_select(const Evry_State *state, Evry_Item *it) { Evry_State *s = (Evry_State *)state; - Evry_Selector *sel = selector; + Evry_Selector *sel = win->selector; if (!s && it) { @@ -463,7 +447,7 @@ evry_item_select(const Evry_State *state, Evry_Item *it) if (s == sel->state) { _evry_selector_update(sel); - if (selector == selectors[0]) + if (win->selector == win->selectors[0]) _evry_selector_update_actions(sel); } } @@ -554,7 +538,7 @@ evry_plugin_update(Evry_Plugin *p, int action) /* update aggregator */ if ((eina_list_count(s->cur_plugins) > 1 ) || /* add aggregator for actions */ - (sel == selectors[1] && + (sel == win->selectors[1] && (eina_list_count(s->cur_plugins) > 0 ))) { /* add aggregator */ @@ -606,7 +590,7 @@ _evry_list_win_show(void) if (win->visible) return; win->visible = EINA_TRUE; - _evry_list_win_update(selector->state); + _evry_list_win_update(win->selector->state); edje_object_signal_emit(win->o_main, "e,state,list_show", "e"); edje_object_signal_emit(win->o_main, "e,state,entry_show", "e"); @@ -617,16 +601,16 @@ _evry_list_win_clear(int hide) { if (!win->visible) return; - if (selector->state) - _evry_view_clear(selector->state); + if (win->selector->state) + _evry_view_clear(win->selector->state); if (hide) { win->visible = EINA_FALSE; edje_object_signal_emit(win->o_main, "e,state,list_hide", "e"); if (evry_conf->hide_input && - (!selector->state || !selector->state->input || - strlen(selector->state->input) == 0)) + (!win->selector->state || !win->selector->state->input || + strlen(win->selector->state->input) == 0)) edje_object_signal_emit(win->o_main, "e,state,entry_hide", "e"); } } @@ -677,7 +661,7 @@ _evry_window_new(E_Zone *zone) evry_conf->min_h = mh; if (evry_conf->height > mh) mh = evry_conf->height; - + mw += offset_s*2; mh += offset_s*2; x = (zone->w * evry_conf->rel_x) - (mw / 2); @@ -708,7 +692,7 @@ _evry_window_free(Evry_Window *win) } static Evry_Selector * -_evry_selector_new(int type) +_evry_selector_new(Evry_Window *win, int type) { Plugin_Config *pc; Eina_List *l, *pcs; @@ -719,7 +703,7 @@ _evry_selector_new(int type) "e/modules/everything/selector_item"); evas_object_show(o); - sel->aggregator = evry_plug_aggregator_new(sel, type); + sel->aggregator = evry_aggregator_new(win, type); if (type == EVRY_PLUGIN_SUBJECT) { @@ -747,6 +731,8 @@ _evry_selector_new(int type) sel->plugins = eina_list_append(sel->plugins, pc->plugin); } + win->selectors[type] = sel; + return sel; } @@ -762,7 +748,7 @@ _evry_selector_free(Evry_Selector *sel) if (sel->o_main) evas_object_del(sel->o_main); - if (win->visible && (sel == selector)) + if (win->visible && (sel == win->selector)) _evry_view_clear(sel->state); while (sel->states) @@ -784,32 +770,28 @@ _evry_selector_activate(Evry_Selector *sel) { Evry_State *s; - if (selector) + if (win->selector) { - s = selector->state; + Evry_Selector *sel = win->selector; - edje_object_signal_emit(selector->o_main, "e,state,unselected", "e"); - edje_object_part_text_set(selector->o_main, "e.text.plugin", ""); + edje_object_signal_emit(sel->o_main, "e,state,unselected", "e"); + edje_object_part_text_set(sel->o_main, "e.text.plugin", ""); - if (s && s->view) - { - /* s->view->clear(s->view, 0); */ - _evry_view_hide(s->view, 0); - } + if (sel->state && sel->state->view) + _evry_view_hide(sel->state->view, 0); _evry_list_win_clear(evry_conf->hide_list); } - selector = sel; - s = selector->state; - edje_object_signal_emit(sel->o_main, "e,state,selected", "e"); - if (s) + win->selector = sel; + + if ((s = sel->state)) { _evry_update_text_label(s); - if (sel->state->cur_item) + if (s->cur_item) edje_object_part_text_set(sel->o_main, "e.text.plugin", EVRY_ITEM(s->cur_item->plugin)->label); @@ -896,7 +878,7 @@ _evry_selector_item_update(Evry_Selector *sel) { /* no items for this state - clear selector */ edje_object_part_text_set(sel->o_main, "e.text.label", ""); - if (sel == selector && s && s->plugin) + if (sel == win->selector && s && s->plugin) edje_object_part_text_set(sel->o_main, "e.text.plugin", EVRY_ITEM(s->plugin)->label); else @@ -909,7 +891,7 @@ _evry_selector_item_update(Evry_Selector *sel) { edje_object_part_text_set(sel->o_main, "e.text.label", it->label); - if (sel == selector) + if (sel == win->selector) edje_object_part_text_set(sel->o_main, "e.text.plugin", EVRY_ITEM(it->plugin)->label); else @@ -986,7 +968,7 @@ _evry_selector_update(Evry_Selector *sel) _evry_selector_item_update(sel); - if (sel == selectors[0]) + if (sel == win->selectors[0]) { if (item_changed) { @@ -994,7 +976,7 @@ _evry_selector_update(Evry_Selector *sel) } else { - sel = selectors[1]; + sel = win->selectors[1]; if (sel->update_timer) ecore_timer_del(sel->update_timer); sel->update_timer = NULL; @@ -1005,7 +987,7 @@ _evry_selector_update(Evry_Selector *sel) static void _evry_list_win_update(Evry_State *s) { - if (s != selector->state) return; + if (s != win->selector->state) return; if (!win->visible) return; /* if (s->changed) */ @@ -1017,7 +999,7 @@ _evry_selector_subjects_get(const char *plugin_name) { Eina_List *l, *plugins = NULL; Evry_Plugin *p, *pp; - Evry_Selector *sel = selectors[0]; + Evry_Selector *sel = win->selectors[0]; EINA_LIST_FOREACH(sel->plugins, l, p) { @@ -1049,7 +1031,7 @@ _evry_selector_actions_get(Evry_Item *it) { Eina_List *l, *plugins = NULL; Evry_Plugin *p, *pp; - Evry_Selector *sel = selectors[1]; + Evry_Selector *sel = win->selectors[1]; while (sel->state) _evry_state_pop(sel); @@ -1082,13 +1064,13 @@ _evry_selector_objects_get(Evry_Action *act) { Eina_List *l, *plugins = NULL; Evry_Plugin *p, *pp; - Evry_Selector *sel = selectors[2]; + Evry_Selector *sel = win->selectors[2]; Evry_Item *it; while (sel->state) _evry_state_pop(sel); - it = selectors[1]->state->cur_item; + it = win->selectors[1]->state->cur_item; EINA_LIST_FOREACH(sel->plugins, l, p) { @@ -1176,7 +1158,7 @@ _evry_state_pop(Evry_Selector *sel) int evry_browse_item(Evry_Selector *sel) { - if (!sel) sel = selector; + if (!sel) sel = win->selector; Evry_State *s, *new_state; Evry_Item *it; Eina_List *l, *plugins = NULL; @@ -1284,7 +1266,7 @@ evry_browse_back(Evry_Selector *sel) _evry_state_pop(sel); s = sel->state; - sel->aggregator->fetch(sel->aggregator, s->input); + evry_aggregator_fetch(sel->aggregator, s->input); _evry_selector_update(sel); _evry_update_text_label(s); _evry_view_show(s->view); @@ -1296,61 +1278,61 @@ evry_browse_back(Evry_Selector *sel) static void _evry_selectors_switch(int dir) { - Evry_State *s = selector->state; + Evry_State *s = win->selector->state; - if (show_timer) + if (win->show_timer) _cb_show_timer(NULL); - if (selector->update_timer) + if (win->selector->update_timer) { - if ((selector == selectors[0]) || - (selector == selectors[1])) + if ((win->selector == win->selectors[0]) || + (win->selector == win->selectors[1])) { - _evry_matches_update(selector, 0); - _evry_selector_update(selector); + _evry_matches_update(win->selector, 0); + _evry_selector_update(win->selector); } } - if (selector == selectors[0] && dir > 0) + if (win->selector == win->selectors[0] && dir > 0) { if (s->cur_item) - _evry_selector_activate(selectors[1]); + _evry_selector_activate(win->selectors[1]); } - else if (selector == selectors[1] && dir > 0) + else if (win->selector == win->selectors[1] && dir > 0) { int next_selector = 0; Evry_Item *it; if ((it = s->cur_item) && - (it->plugin == selector->actions)) + (it->plugin == win->selector->actions)) { GET_ACTION(act,it); if (act->it2.type) { _evry_selector_objects_get(act); - _evry_selector_update(selectors[2]); + _evry_selector_update(win->selectors[2]); edje_object_signal_emit(win->o_main, "e,state,object_selector_show", "e"); next_selector = 2; } } - _evry_selector_activate(selectors[next_selector]); + _evry_selector_activate(win->selectors[next_selector]); } - else if (selector == selectors[1] && dir < 0) + else if (win->selector == win->selectors[1] && dir < 0) { - _evry_selector_activate(selectors[0]); + _evry_selector_activate(win->selectors[0]); edje_object_signal_emit(win->o_main, "e,state,object_selector_hide", "e"); } - else if (selector == selectors[2] && dir > 0) + else if (win->selector == win->selectors[2] && dir > 0) { - while (selector->states) - _evry_state_pop(selector); + while (win->selector->states) + _evry_state_pop(win->selector); edje_object_signal_emit(win->o_main, "e,state,object_selector_hide", "e"); - _evry_selector_activate(selectors[0]); + _evry_selector_activate(win->selectors[0]); } - else if (selector == selectors[2] && dir < 0) + else if (win->selector == win->selectors[2] && dir < 0) { - _evry_selector_activate(selectors[1]); + _evry_selector_activate(win->selectors[1]); } } static int @@ -1367,13 +1349,13 @@ _evry_input_complete(Evry_State *s) if (it->plugin->complete) action = it->plugin->complete(it->plugin, it, &input); else - evry_browse_item(selector); + evry_browse_item(win->selector); if (input && action == EVRY_COMPLETE_INPUT) { snprintf(s->input, INPUTLEN - 1, "%s", input); _evry_update_text_label(s); - _evry_cb_update_timer(selector); + _evry_cb_update_timer(win->selector); evry_item_select(s, it); } @@ -1423,8 +1405,8 @@ _evry_cheat_history(Evry_State *s, int promote, int delete) if (hi->count < 0) hi->count = 1; } } - if (s->plugin == selector->aggregator) - selector->aggregator->fetch(selector->aggregator, s->input); + if (s->plugin == win->selector->aggregator) + evry_aggregator_fetch(win->selector->aggregator, s->input); if (s->view) s->view->update(s->view, 0); @@ -1481,11 +1463,11 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event) } } - if (!selector || !selector->state) + if (!win->selector || !win->selector->state) return 1; win->request_selection = EINA_FALSE; - s = selector->state; + s = win->selector->state; old = ev->key; if (!strcmp(ev->key, "KP_Enter")) @@ -1569,14 +1551,14 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event) { if (!strcmp(key, "u")) { - if (!_evry_clear(selector)) - evry_browse_back(selector); + if (!_evry_clear(win->selector)) + evry_browse_back(win->selector); goto end; } else if (!strcmp(key, "1")) _evry_view_toggle(s, NULL); else if (!strcmp(key, "Return")) - _evry_plugin_action(selector, 0); + _evry_plugin_action(win->selector, 0); else if (!strcmp(key, "v")) { win->request_selection = EINA_TRUE; @@ -1595,28 +1577,28 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event) goto end; else if (!strcmp(key, "Right")) { - if (!evry_browse_item(selector) && - (selector != selectors[2])) + if (!evry_browse_item(win->selector) && + (win->selector != win->selectors[2])) _evry_selectors_switch(1); } else if (!strcmp(key, "Left")) { - if (!evry_browse_back(selector)) + if (!evry_browse_back(win->selector)) _evry_selectors_switch(-1); } else if (!strcmp(key, "Return")) { if (ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT) - _evry_plugin_action(selector, 0); - else /*if (!_evry_browse_item(selector))*/ - _evry_plugin_action(selector, 1); + _evry_plugin_action(win->selector, 0); + else /*if (!_evry_browse_item(win->selector))*/ + _evry_plugin_action(win->selector, 1); } else if (!strcmp(key, "Tab")) _evry_selectors_switch(1); else if (!strcmp(key, "BackSpace")) { - if (!_evry_backspace(selector)) - evry_browse_back(selector); + if (!_evry_backspace(win->selector)) + evry_browse_back(win->selector); } else if (_evry_view_key_press(s, ev)) goto end; @@ -1631,7 +1613,7 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event) { strcat(s->inp, ev->compose); - _evry_update(selector, 1); + _evry_update(win->selector, 1); } } @@ -1792,30 +1774,30 @@ _evry_plugin_action(Evry_Selector *sel, int finished) Evry_Item *it, *it_subj, *it_act, *it_obj = NULL; Eina_List *l; - if (selectors[0]->update_timer) + if (win->selectors[0]->update_timer) { - _evry_matches_update(selectors[0], 0); - _evry_selector_update(selectors[0]); + _evry_matches_update(win->selectors[0], 0); + _evry_selector_update(win->selectors[0]); } - if (!(s_subj = selectors[0]->state)) + if (!(s_subj = win->selectors[0]->state)) return; if (!(it_subj = s_subj->cur_item)) return; - if (selector == selectors[0] && - selectors[1]->update_timer) + if (win->selector == win->selectors[0] && + win->selectors[1]->update_timer) { _evry_selector_actions_get(it_subj); - if (!selectors[1]->state) + if (!win->selectors[1]->state) return; - _evry_selector_update(selectors[1]); + _evry_selector_update(win->selectors[1]); } - if (!(s_act = selectors[1]->state)) + if (!(s_act = win->selectors[1]->state)) return; if (!(it_act = s_act->cur_item)) @@ -1833,14 +1815,14 @@ _evry_plugin_action(Evry_Selector *sel, int finished) if (act->it2.type) { /* check if object is provided */ - if ((s_obj = selectors[2]->state)) + if ((s_obj = win->selectors[2]->state)) { it_obj = s_obj->cur_item; } if (!it_obj) { - if (selectors[1] == selector) + if (win->selectors[1] == win->selector) _evry_selectors_switch(1); return; } @@ -2113,7 +2095,7 @@ _evry_matches_update(Evry_Selector *sel, int async) { EINA_LIST_FOREACH(s->plugins, l, p) { - if ((p->config->top_level) && (sel == selectors[0])) + if ((p->config->top_level) && (sel == win->selectors[0])) { if ((p->config->trigger) && (p->config->trigger_only)) continue; @@ -2138,7 +2120,7 @@ _evry_matches_update(Evry_Selector *sel, int async) } } - if (sel->aggregator->fetch(sel->aggregator, input)) + if (evry_aggregator_fetch(sel->aggregator, input)) _evry_plugin_list_insert(s, sel->aggregator); if (s->plugin_auto_selected || @@ -2243,7 +2225,7 @@ _evry_cb_selection_notify(void *data, int type, void *event) { Ecore_X_Event_Selection_Notify *ev; /* FIXME Evry_Selector *sel = data; */ - Evry_State *s = selector->state; + Evry_State *s = win->selector->state; if (!s || (data != win)) return 1; if (!win->request_selection) return 1; @@ -2261,7 +2243,7 @@ _evry_cb_selection_notify(void *data, int type, void *event) text_data = ev->data; strncat(s->input, text_data->text, (INPUTLEN - strlen(s->input)) - 1); - _evry_update(selector, 1); + _evry_update(win->selector, 1); } } diff --git a/src/modules/everything/evry_plug_aggregator.c b/src/modules/everything/evry_plug_aggregator.c index 01d4217..e4e1ac0 100644 --- a/src/modules/everything/evry_plug_aggregator.c +++ b/src/modules/everything/evry_plug_aggregator.c @@ -7,8 +7,9 @@ typedef struct _Plugin Plugin; struct _Plugin { Evry_Plugin base; - Evry_Selector *selector; - + int type; + Evry_Selector **selectors; + Evry_Item *warning; }; @@ -24,7 +25,7 @@ _fetch(Evry_Plugin *plugin, const char *input) Eina_List *items = NULL; const char *context = NULL; char buf[128]; - Evry_Selector *sel = p->selector; + Evry_Selector *sel = p->selectors[p->type]; if (input && !input[0]) input = NULL; @@ -36,7 +37,7 @@ _fetch(Evry_Plugin *plugin, const char *input) if (!s->cur_plugins) { /* 'text' and 'actions' are always loaded */ - if ((sel == selectors[0]) && + if ((sel == p->selectors[0]) && (eina_list_count(s->plugins) == 2)) { evry_item_ref(p->warning); @@ -48,9 +49,9 @@ _fetch(Evry_Plugin *plugin, const char *input) /* get current items' context ... */ for (i = 1; i < 3; i++) { - if (sel == selectors[i]) + if (sel == p->selectors[i]) { - it = selectors[i-1]->state->cur_item; + it = p->selectors[i-1]->state->cur_item; if (it) context = it->context; } } @@ -126,7 +127,7 @@ _fetch(Evry_Plugin *plugin, const char *input) if (it->fuzzy_match == 0) it->fuzzy_match = evry_fuzzy_match(it->label, input); - if (it->fuzzy_match || sel == selectors[2]) + if (it->fuzzy_match || sel == p->selectors[2]) { if (it->usage >= 0) evry_history_item_usage_set(it, input, context); @@ -138,8 +139,8 @@ _fetch(Evry_Plugin *plugin, const char *input) } /* always append items of action or object selector */ else if ((!input) && - ((sel == selectors[1]) || - (sel == selectors[2]))) + ((sel == p->selectors[1]) || + (sel == p->selectors[2]))) { EINA_LIST_FOREACH(lp, l, pp) { @@ -245,7 +246,7 @@ _free(Evry_Plugin *plugin) } Evry_Plugin * -evry_plug_aggregator_new(Evry_Selector *sel, int type) +evry_aggregator_new(Evry_Window *win, int type) { Evry_Plugin *p; @@ -257,10 +258,17 @@ evry_plug_aggregator_new(Evry_Selector *sel, int type) } GET_PLUGIN(pa, p); - pa->selector = sel; - + pa->selectors = win->selectors; + pa->type = type; + pa->warning = evry_item_new(NULL, p, N_("No plugins loaded"), NULL, NULL); pa->warning->type = EVRY_TYPE_NONE; return p; } + +int +evry_aggregator_fetch(Evry_Plugin *p, const char *input) +{ + return p->fetch(p, input); +} diff --git a/src/modules/everything/evry_plug_clipboard.c b/src/modules/everything/evry_plug_clipboard.c index f4a765c..9c14506 100644 --- a/src/modules/everything/evry_plug_clipboard.c +++ b/src/modules/everything/evry_plug_clipboard.c @@ -1,4 +1,4 @@ -#include "Evry.h" +#include "e_mod_main.h" static Evry_Action *act; diff --git a/src/modules/everything/evry_plug_view_help.c b/src/modules/everything/evry_plug_view_help.c index b710d1b..d719720 100644 --- a/src/modules/everything/evry_plug_view_help.c +++ b/src/modules/everything/evry_plug_view_help.c @@ -1,4 +1,4 @@ -#include "Evry.h" +#include "e_mod_main.h" static Evry_View *view; static Evas_Object *o_text = NULL; diff --git a/src/modules/everything/evry_util.c b/src/modules/everything/evry_util.c index cc8b254..aa56090 100644 --- a/src/modules/everything/evry_util.c +++ b/src/modules/everything/evry_util.c @@ -1,4 +1,4 @@ -#include "Evry.h" +#include "e_mod_main.h" #include "md5.h" #define MAX_FUZZ 100