+++ /dev/null
-#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
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 \
-#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
((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
{
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;
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
/* #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);
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);
/* 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
for (i = 0; i < 3; i++)
{
- sel = selectors[i];
+ sel = win->selectors[i];
if (sel->state && sel->state->cur_item == ev->item)
{
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)
{
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;
}
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;
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));
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;
}
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);
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;
{
Evry_Selector *sel = _evry_selector_for_plugin_get(p);
- if (sel != selector) return;
+ if (sel != win->selector) return;
Evry_State *s = sel->state;
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;
_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;
_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)
_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);
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)
{
if (s == sel->state)
{
_evry_selector_update(sel);
- if (selector == selectors[0])
+ if (win->selector == win->selectors[0])
_evry_selector_update_actions(sel);
}
}
/* 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 */
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");
{
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");
}
}
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);
}
static Evry_Selector *
-_evry_selector_new(int type)
+_evry_selector_new(Evry_Window *win, int type)
{
Plugin_Config *pc;
Eina_List *l, *pcs;
"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)
{
sel->plugins = eina_list_append(sel->plugins, pc->plugin);
}
+ win->selectors[type] = sel;
+
return 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)
{
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);
{
/* 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
{
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
_evry_selector_item_update(sel);
- if (sel == selectors[0])
+ if (sel == win->selectors[0])
{
if (item_changed)
{
}
else
{
- sel = selectors[1];
+ sel = win->selectors[1];
if (sel->update_timer)
ecore_timer_del(sel->update_timer);
sel->update_timer = NULL;
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) */
{
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)
{
{
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);
{
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)
{
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;
_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);
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
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);
}
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);
}
}
- 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"))
{
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;
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;
{
strcat(s->inp, ev->compose);
- _evry_update(selector, 1);
+ _evry_update(win->selector, 1);
}
}
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))
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;
}
{
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;
}
}
- 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 ||
{
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;
text_data = ev->data;
strncat(s->input, text_data->text, (INPUTLEN - strlen(s->input)) - 1);
- _evry_update(selector, 1);
+ _evry_update(win->selector, 1);
}
}
struct _Plugin
{
Evry_Plugin base;
- Evry_Selector *selector;
-
+ int type;
+ Evry_Selector **selectors;
+
Evry_Item *warning;
};
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;
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);
/* 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;
}
}
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);
}
/* 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)
{
}
Evry_Plugin *
-evry_plug_aggregator_new(Evry_Selector *sel, int type)
+evry_aggregator_new(Evry_Window *win, int type)
{
Evry_Plugin *p;
}
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);
+}
-#include "Evry.h"
+#include "e_mod_main.h"
static Evry_Action *act;
-#include "Evry.h"
+#include "e_mod_main.h"
static Evry_View *view;
static Evas_Object *o_text = NULL;
-#include "Evry.h"
+#include "e_mod_main.h"
#include "md5.h"
#define MAX_FUZZ 100