- remove Evry.h
- move local vars into Evry_Window SVN revision: 48871
This commit is contained in:
parent
de3636182d
commit
71bc90e6ce
|
@ -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
|
|
|
@ -21,7 +21,7 @@ pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH
|
||||||
pkg_LTLIBRARIES = module.la
|
pkg_LTLIBRARIES = module.la
|
||||||
# noinst_LTLIBRARIES = libfoo.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) \
|
module_la_SOURCES = $(EVRYHEADERS) \
|
||||||
e_mod_main.c \
|
e_mod_main.c \
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#include "Evry.h"
|
#ifndef EVRY_H
|
||||||
|
#define EVRY_H
|
||||||
|
|
||||||
#ifndef E_MOD_MAIN_H
|
#include "e.h"
|
||||||
#define E_MOD_MAIN_H
|
#include "evry_api.h"
|
||||||
|
|
||||||
#define MOD_CONFIG_FILE_EPOCH 0x0001
|
#define MOD_CONFIG_FILE_EPOCH 0x0001
|
||||||
#define MOD_CONFIG_FILE_GENERATION 0x0002
|
#define MOD_CONFIG_FILE_GENERATION 0x0002
|
||||||
|
@ -9,9 +10,30 @@
|
||||||
((MOD_CONFIG_FILE_EPOCH << 16) | MOD_CONFIG_FILE_GENERATION)
|
((MOD_CONFIG_FILE_EPOCH << 16) | MOD_CONFIG_FILE_GENERATION)
|
||||||
|
|
||||||
|
|
||||||
typedef struct _Evry_Selector Evry_Selector;
|
typedef struct _Evry_State Evry_State;
|
||||||
typedef struct _Tab_View Tab_View;
|
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
|
struct _Evry_Selector
|
||||||
{
|
{
|
||||||
|
@ -43,6 +65,56 @@ struct _Evry_Selector
|
||||||
Ecore_Timer *update_timer;
|
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
|
struct _Tab_View
|
||||||
{
|
{
|
||||||
Evas *evas;
|
Evas *evas;
|
||||||
|
@ -61,50 +133,281 @@ struct _Tab_View
|
||||||
Ecore_Timer *timer;
|
Ecore_Timer *timer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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 */
|
||||||
|
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 extern E_Module_Api e_modapi;
|
Tab_View *evry_tab_view_new(const Evry_State *s, Evas *e);
|
||||||
|
void evry_tab_view_free(Tab_View *v);
|
||||||
|
|
||||||
|
Eina_Bool view_thumb_init(void);
|
||||||
|
void view_thumb_shutdown(void);
|
||||||
|
|
||||||
|
Eina_Bool view_help_init(void);
|
||||||
|
void view_help_shutdown(void);
|
||||||
|
|
||||||
|
Eina_Bool view_preview_init(void);
|
||||||
|
void view_preview_shutdown(void);
|
||||||
|
|
||||||
|
Eina_Bool evry_plug_clipboard_init(void);
|
||||||
|
void evry_plug_clipboard_shutdown(void);
|
||||||
|
|
||||||
|
Eina_Bool evry_plug_text_init(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);
|
||||||
|
|
||||||
|
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();
|
||||||
|
Evry_Plugin *evry_plug_actions_new(Evry_Selector *selector, int type);
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
|
||||||
|
#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)
|
||||||
|
|
||||||
|
/*** 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 void *e_modapi_init (E_Module *m);
|
||||||
EAPI int e_modapi_shutdown (E_Module *m);
|
EAPI int e_modapi_shutdown (E_Module *m);
|
||||||
EAPI int e_modapi_save (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 E_Config_Dialog *evry_config_dialog(E_Container *con, const char *params);
|
||||||
|
|
||||||
Tab_View *evry_tab_view_new(const Evry_State *s, Evas *e);
|
EAPI extern E_Module_Api e_modapi;
|
||||||
void evry_tab_view_free(Tab_View *v);
|
|
||||||
|
|
||||||
Eina_Bool view_thumb_init(void);
|
|
||||||
void view_thumb_shutdown(void);
|
|
||||||
|
|
||||||
Eina_Bool view_help_init(void);
|
|
||||||
void view_help_shutdown(void);
|
|
||||||
|
|
||||||
Eina_Bool view_preview_init(void);
|
|
||||||
void view_preview_shutdown(void);
|
|
||||||
|
|
||||||
Eina_Bool evry_plug_clipboard_init(void);
|
|
||||||
void evry_plug_clipboard_shutdown(void);
|
|
||||||
|
|
||||||
Eina_Bool evry_plug_text_init(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);
|
|
||||||
|
|
||||||
Evry_Plugin *evry_plug_aggregator_new(Evry_Selector *selector, int type);
|
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
EAPI int evry_browse_item(Evry_Selector *sel);
|
|
||||||
EAPI int evry_browse_back(Evry_Selector *sel);
|
|
||||||
|
|
||||||
extern Evry_Selector **selectors;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -13,19 +13,6 @@
|
||||||
/* #undef DBG
|
/* #undef DBG
|
||||||
* #define DBG(...) ERR(__VA_ARGS__) */
|
* #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_matches_update(Evry_Selector *sel, int async);
|
||||||
static void _evry_plugin_action(Evry_Selector *sel, int finished);
|
static void _evry_plugin_action(Evry_Selector *sel, int finished);
|
||||||
static void _evry_plugin_select(Evry_State *s, Evry_Plugin *p);
|
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 Evry_State *_evry_state_new(Evry_Selector *sel, Eina_List *plugins);
|
||||||
static void _evry_state_pop(Evry_Selector *sel);
|
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_free(Evry_Selector *sel);
|
||||||
static void _evry_selector_activate(Evry_Selector *sel);
|
static void _evry_selector_activate(Evry_Selector *sel);
|
||||||
static void _evry_selectors_switch(int dir);
|
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 */
|
/* local subsystem globals */
|
||||||
static Evry_Window *win = NULL;
|
static Evry_Window *win = NULL;
|
||||||
static Ecore_X_Window input_window = 0;
|
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 */
|
/* externally accessible functions */
|
||||||
int
|
int
|
||||||
|
@ -104,7 +85,7 @@ _evry_cb_item_changed(void *data, int type, void *event)
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
sel = selectors[i];
|
sel = win->selectors[i];
|
||||||
|
|
||||||
if (sel->state && sel->state->cur_item == ev->item)
|
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
|
static int
|
||||||
_cb_show_timer(void *data)
|
_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_View *view =evry_conf->views->data;
|
||||||
Evry_State *s = selector->state;
|
Evry_State *s = sel->state;
|
||||||
|
|
||||||
if (evry_conf->first_run)
|
if (evry_conf->first_run)
|
||||||
{
|
{
|
||||||
|
@ -137,13 +120,9 @@ _cb_show_timer(void *data)
|
||||||
s->view = view->create(view, s, win->o_main);
|
s->view = view->create(view, s, win->o_main);
|
||||||
_evry_view_show(s->view);
|
_evry_view_show(s->view);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
_evry_list_win_show();
|
_evry_list_win_show();
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -159,32 +138,31 @@ evry_show(E_Zone *zone, const char *params)
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
Evry_Plugin *p;
|
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);
|
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;
|
if (!strcmp(params, p->name)) break;
|
||||||
|
|
||||||
_evry_plugin_select(selector->state, p);
|
_evry_plugin_select(win->selector->state, p);
|
||||||
_evry_selector_update(selector);
|
_evry_selector_update(win->selector);
|
||||||
_evry_view_update(selector->state, p);
|
_evry_view_update(win->selector->state, p);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
input_window = ecore_x_window_input_new(zone->container->win,
|
input_window = ecore_x_window_input_new(zone->container->win, 0, 0, 1, 1);
|
||||||
zone->x, zone->y,
|
|
||||||
zone->w, zone->h);
|
|
||||||
ecore_x_window_show(input_window);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
win = _evry_window_new(zone);
|
win = _evry_window_new(zone);
|
||||||
if (!win)
|
if (!win)
|
||||||
{
|
{
|
||||||
ecore_x_window_free(input_window);
|
ecore_x_window_free(input_window);
|
||||||
input_window = 0;
|
input_window = 0;
|
||||||
|
@ -198,20 +176,20 @@ evry_show(E_Zone *zone, const char *params)
|
||||||
if (params)
|
if (params)
|
||||||
win->plugin_dedicated = EINA_TRUE;
|
win->plugin_dedicated = EINA_TRUE;
|
||||||
|
|
||||||
selectors = E_NEW(Evry_Selector*, 3);
|
win->selectors = E_NEW(Evry_Selector*, 3);
|
||||||
selectors[0] = _evry_selector_new(EVRY_PLUGIN_SUBJECT);
|
_evry_selector_new(win, EVRY_PLUGIN_SUBJECT);
|
||||||
selectors[1] = _evry_selector_new(EVRY_PLUGIN_ACTION);
|
_evry_selector_new(win, EVRY_PLUGIN_ACTION);
|
||||||
selectors[2] = _evry_selector_new(EVRY_PLUGIN_OBJECT);
|
_evry_selector_new(win, EVRY_PLUGIN_OBJECT);
|
||||||
|
|
||||||
handlers = eina_list_append
|
win->handlers = eina_list_append
|
||||||
(handlers, ecore_event_handler_add
|
(win->handlers, ecore_event_handler_add
|
||||||
(ECORE_EVENT_KEY_DOWN, _evry_cb_key_down, NULL));
|
(ECORE_EVENT_KEY_DOWN, _evry_cb_key_down, NULL));
|
||||||
handlers = eina_list_append
|
win->handlers = eina_list_append
|
||||||
(handlers, ecore_event_handler_add
|
(win->handlers, ecore_event_handler_add
|
||||||
(ECORE_X_EVENT_SELECTION_NOTIFY,
|
(ECORE_X_EVENT_SELECTION_NOTIFY,
|
||||||
_evry_cb_selection_notify, win));
|
_evry_cb_selection_notify, win));
|
||||||
handlers = eina_list_append
|
win->handlers = eina_list_append
|
||||||
(handlers, ecore_event_handler_add
|
(win->handlers, ecore_event_handler_add
|
||||||
(EVRY_EVENT_ITEM_CHANGED,
|
(EVRY_EVENT_ITEM_CHANGED,
|
||||||
_evry_cb_item_changed, NULL));
|
_evry_cb_item_changed, NULL));
|
||||||
|
|
||||||
|
@ -219,14 +197,14 @@ evry_show(E_Zone *zone, const char *params)
|
||||||
e_popup_show(win->popup);
|
e_popup_show(win->popup);
|
||||||
|
|
||||||
_evry_selector_subjects_get(params);
|
_evry_selector_subjects_get(params);
|
||||||
_evry_selector_update(selectors[0]);
|
_evry_selector_update(win->selectors[0]);
|
||||||
_evry_selector_activate(selectors[0]);
|
_evry_selector_activate(win->selectors[0]);
|
||||||
|
|
||||||
if (!evry_conf->hide_input)
|
if (!evry_conf->hide_input)
|
||||||
edje_object_signal_emit(win->o_main, "e,state,entry_show", "e");
|
edje_object_signal_emit(win->o_main, "e,state,entry_show", "e");
|
||||||
|
|
||||||
if (!evry_conf->hide_list)
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -238,33 +216,40 @@ evry_hide(int clear)
|
||||||
|
|
||||||
if (!win) return;
|
if (!win) return;
|
||||||
|
|
||||||
if ((clear && selector) &&
|
if ((clear && win->selector) &&
|
||||||
((eina_list_count(selectors[0]->states) > 1) ||
|
((eina_list_count(win->selectors[0]->states) > 1) ||
|
||||||
(selectors[0]->state && selectors[0]->state->input[0])))
|
((win->selectors[0]->state) &&
|
||||||
|
(win->selectors[0]->state->input[0]))))
|
||||||
{
|
{
|
||||||
int slide = 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);
|
_evry_selectors_switch(-1);
|
||||||
else if (selector == selectors[2])
|
else if (win->selector == win->selectors[2])
|
||||||
_evry_selectors_switch(1);
|
_evry_selectors_switch(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* just to be sure */
|
/* just to be sure */
|
||||||
selector = selectors[0];
|
win->selector = win->selectors[0];
|
||||||
|
|
||||||
while (selector->states->next)
|
while (win->selector->states->next)
|
||||||
{
|
{
|
||||||
slide = 1;
|
slide = 1;
|
||||||
_evry_state_pop(selector);
|
_evry_state_pop(win->selector);
|
||||||
}
|
}
|
||||||
|
|
||||||
_evry_clear(selector);
|
sel = win->selector;
|
||||||
_evry_clear(selector);
|
s = sel->state;
|
||||||
Evry_State *s = selector->state;
|
|
||||||
selector->aggregator->fetch(selector->aggregator, s->input);
|
_evry_clear(sel);
|
||||||
_evry_selector_update(selector);
|
_evry_clear(sel);
|
||||||
|
evry_aggregator_fetch(sel->aggregator, s->input);
|
||||||
|
|
||||||
|
_evry_selector_update(sel);
|
||||||
_evry_update_text_label(s);
|
_evry_update_text_label(s);
|
||||||
_evry_view_show(s->view);
|
_evry_view_show(s->view);
|
||||||
s->view->update(s->view, slide);
|
s->view->update(s->view, slide);
|
||||||
|
@ -272,25 +257,24 @@ evry_hide(int clear)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (show_timer)
|
if (win->show_timer)
|
||||||
ecore_timer_del(show_timer);
|
ecore_timer_del(win->show_timer);
|
||||||
show_timer = NULL;
|
|
||||||
|
|
||||||
win->visible = EINA_FALSE;
|
win->visible = EINA_FALSE;
|
||||||
_evry_selector_free(selectors[0]);
|
_evry_selector_free(win->selectors[0]);
|
||||||
_evry_selector_free(selectors[1]);
|
_evry_selector_free(win->selectors[1]);
|
||||||
_evry_selector_free(selectors[2]);
|
_evry_selector_free(win->selectors[2]);
|
||||||
E_FREE(selectors);
|
E_FREE(win->selectors);
|
||||||
|
|
||||||
selectors = NULL;
|
/* selectors = NULL;
|
||||||
selector = NULL;
|
* selector = NULL; */
|
||||||
|
|
||||||
|
EINA_LIST_FREE(win->handlers, ev)
|
||||||
|
ecore_event_handler_del(ev);
|
||||||
|
|
||||||
_evry_window_free(win);
|
_evry_window_free(win);
|
||||||
win = NULL;
|
win = NULL;
|
||||||
|
|
||||||
EINA_LIST_FREE(handlers, ev)
|
|
||||||
ecore_event_handler_del(ev);
|
|
||||||
|
|
||||||
ecore_x_window_free(input_window);
|
ecore_x_window_free(input_window);
|
||||||
e_grabinput_release(input_window, input_window);
|
e_grabinput_release(input_window, input_window);
|
||||||
input_window = 0;
|
input_window = 0;
|
||||||
|
@ -303,7 +287,7 @@ evry_clear_input(Evry_Plugin *p)
|
||||||
{
|
{
|
||||||
Evry_Selector *sel = _evry_selector_for_plugin_get(p);
|
Evry_Selector *sel = _evry_selector_for_plugin_get(p);
|
||||||
|
|
||||||
if (sel != selector) return;
|
if (sel != win->selector) return;
|
||||||
|
|
||||||
Evry_State *s = sel->state;
|
Evry_State *s = sel->state;
|
||||||
|
|
||||||
|
@ -396,12 +380,12 @@ _evry_selector_for_plugin_get(Evry_Plugin *p)
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
if (p == selectors[i]->aggregator)
|
if (p == win->selectors[i]->aggregator)
|
||||||
return selectors[i];
|
return win->selectors[i];
|
||||||
|
|
||||||
s = selectors[i]->state;
|
s = win->selectors[i]->state;
|
||||||
if (s && eina_list_data_find(s->plugins, p))
|
if (s && eina_list_data_find(s->plugins, p))
|
||||||
return selectors[i];
|
return win->selectors[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -411,7 +395,7 @@ static int
|
||||||
_evry_timer_cb_actions_get(void *data)
|
_evry_timer_cb_actions_get(void *data)
|
||||||
{
|
{
|
||||||
Evry_Item *it = data;
|
Evry_Item *it = data;
|
||||||
Evry_Selector *sel = selectors[1];
|
Evry_Selector *sel = win->selectors[1];
|
||||||
Evry_State *s;
|
Evry_State *s;
|
||||||
|
|
||||||
sel->update_timer = NULL;
|
sel->update_timer = NULL;
|
||||||
|
@ -419,7 +403,7 @@ _evry_timer_cb_actions_get(void *data)
|
||||||
_evry_selector_actions_get(it);
|
_evry_selector_actions_get(it);
|
||||||
_evry_selector_update(sel);
|
_evry_selector_update(sel);
|
||||||
|
|
||||||
if (selector == sel && selector->state)
|
if (win->selector == sel && win->selector->state)
|
||||||
{
|
{
|
||||||
s = sel->state;
|
s = sel->state;
|
||||||
if (s->view)
|
if (s->view)
|
||||||
|
@ -435,7 +419,7 @@ static void
|
||||||
_evry_selector_update_actions(Evry_Selector *sel)
|
_evry_selector_update_actions(Evry_Selector *sel)
|
||||||
{
|
{
|
||||||
Evry_Item *it = sel->state->cur_item;
|
Evry_Item *it = sel->state->cur_item;
|
||||||
sel = selectors[1];
|
sel = win->selectors[1];
|
||||||
if (sel->update_timer)
|
if (sel->update_timer)
|
||||||
ecore_timer_del(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_item_select(const Evry_State *state, Evry_Item *it)
|
||||||
{
|
{
|
||||||
Evry_State *s = (Evry_State *)state;
|
Evry_State *s = (Evry_State *)state;
|
||||||
Evry_Selector *sel = selector;
|
Evry_Selector *sel = win->selector;
|
||||||
|
|
||||||
if (!s && it)
|
if (!s && it)
|
||||||
{
|
{
|
||||||
|
@ -463,7 +447,7 @@ evry_item_select(const Evry_State *state, Evry_Item *it)
|
||||||
if (s == sel->state)
|
if (s == sel->state)
|
||||||
{
|
{
|
||||||
_evry_selector_update(sel);
|
_evry_selector_update(sel);
|
||||||
if (selector == selectors[0])
|
if (win->selector == win->selectors[0])
|
||||||
_evry_selector_update_actions(sel);
|
_evry_selector_update_actions(sel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -554,7 +538,7 @@ evry_plugin_update(Evry_Plugin *p, int action)
|
||||||
/* update aggregator */
|
/* update aggregator */
|
||||||
if ((eina_list_count(s->cur_plugins) > 1 ) ||
|
if ((eina_list_count(s->cur_plugins) > 1 ) ||
|
||||||
/* add aggregator for actions */
|
/* add aggregator for actions */
|
||||||
(sel == selectors[1] &&
|
(sel == win->selectors[1] &&
|
||||||
(eina_list_count(s->cur_plugins) > 0 )))
|
(eina_list_count(s->cur_plugins) > 0 )))
|
||||||
{
|
{
|
||||||
/* add aggregator */
|
/* add aggregator */
|
||||||
|
@ -606,7 +590,7 @@ _evry_list_win_show(void)
|
||||||
if (win->visible) return;
|
if (win->visible) return;
|
||||||
|
|
||||||
win->visible = EINA_TRUE;
|
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,list_show", "e");
|
||||||
edje_object_signal_emit(win->o_main, "e,state,entry_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 (!win->visible) return;
|
||||||
|
|
||||||
if (selector->state)
|
if (win->selector->state)
|
||||||
_evry_view_clear(selector->state);
|
_evry_view_clear(win->selector->state);
|
||||||
|
|
||||||
if (hide)
|
if (hide)
|
||||||
{
|
{
|
||||||
win->visible = EINA_FALSE;
|
win->visible = EINA_FALSE;
|
||||||
edje_object_signal_emit(win->o_main, "e,state,list_hide", "e");
|
edje_object_signal_emit(win->o_main, "e,state,list_hide", "e");
|
||||||
if (evry_conf->hide_input &&
|
if (evry_conf->hide_input &&
|
||||||
(!selector->state || !selector->state->input ||
|
(!win->selector->state || !win->selector->state->input ||
|
||||||
strlen(selector->state->input) == 0))
|
strlen(win->selector->state->input) == 0))
|
||||||
edje_object_signal_emit(win->o_main, "e,state,entry_hide", "e");
|
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;
|
evry_conf->min_h = mh;
|
||||||
if (evry_conf->height > mh)
|
if (evry_conf->height > mh)
|
||||||
mh = evry_conf->height;
|
mh = evry_conf->height;
|
||||||
|
|
||||||
mw += offset_s*2;
|
mw += offset_s*2;
|
||||||
mh += offset_s*2;
|
mh += offset_s*2;
|
||||||
x = (zone->w * evry_conf->rel_x) - (mw / 2);
|
x = (zone->w * evry_conf->rel_x) - (mw / 2);
|
||||||
|
@ -708,7 +692,7 @@ _evry_window_free(Evry_Window *win)
|
||||||
}
|
}
|
||||||
|
|
||||||
static Evry_Selector *
|
static Evry_Selector *
|
||||||
_evry_selector_new(int type)
|
_evry_selector_new(Evry_Window *win, int type)
|
||||||
{
|
{
|
||||||
Plugin_Config *pc;
|
Plugin_Config *pc;
|
||||||
Eina_List *l, *pcs;
|
Eina_List *l, *pcs;
|
||||||
|
@ -719,7 +703,7 @@ _evry_selector_new(int type)
|
||||||
"e/modules/everything/selector_item");
|
"e/modules/everything/selector_item");
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
|
|
||||||
sel->aggregator = evry_plug_aggregator_new(sel, type);
|
sel->aggregator = evry_aggregator_new(win, type);
|
||||||
|
|
||||||
if (type == EVRY_PLUGIN_SUBJECT)
|
if (type == EVRY_PLUGIN_SUBJECT)
|
||||||
{
|
{
|
||||||
|
@ -747,6 +731,8 @@ _evry_selector_new(int type)
|
||||||
sel->plugins = eina_list_append(sel->plugins, pc->plugin);
|
sel->plugins = eina_list_append(sel->plugins, pc->plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
win->selectors[type] = sel;
|
||||||
|
|
||||||
return sel;
|
return sel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -762,7 +748,7 @@ _evry_selector_free(Evry_Selector *sel)
|
||||||
if (sel->o_main)
|
if (sel->o_main)
|
||||||
evas_object_del(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);
|
_evry_view_clear(sel->state);
|
||||||
|
|
||||||
while (sel->states)
|
while (sel->states)
|
||||||
|
@ -784,32 +770,28 @@ _evry_selector_activate(Evry_Selector *sel)
|
||||||
{
|
{
|
||||||
Evry_State *s;
|
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_signal_emit(sel->o_main, "e,state,unselected", "e");
|
||||||
edje_object_part_text_set(selector->o_main, "e.text.plugin", "");
|
edje_object_part_text_set(sel->o_main, "e.text.plugin", "");
|
||||||
|
|
||||||
if (s && s->view)
|
if (sel->state && sel->state->view)
|
||||||
{
|
_evry_view_hide(sel->state->view, 0);
|
||||||
/* s->view->clear(s->view, 0); */
|
|
||||||
_evry_view_hide(s->view, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
_evry_list_win_clear(evry_conf->hide_list);
|
_evry_list_win_clear(evry_conf->hide_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
selector = sel;
|
|
||||||
s = selector->state;
|
|
||||||
|
|
||||||
edje_object_signal_emit(sel->o_main, "e,state,selected", "e");
|
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);
|
_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",
|
edje_object_part_text_set(sel->o_main, "e.text.plugin",
|
||||||
EVRY_ITEM(s->cur_item->plugin)->label);
|
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 */
|
/* no items for this state - clear selector */
|
||||||
edje_object_part_text_set(sel->o_main, "e.text.label", "");
|
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",
|
edje_object_part_text_set(sel->o_main, "e.text.plugin",
|
||||||
EVRY_ITEM(s->plugin)->label);
|
EVRY_ITEM(s->plugin)->label);
|
||||||
else
|
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);
|
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",
|
edje_object_part_text_set(sel->o_main, "e.text.plugin",
|
||||||
EVRY_ITEM(it->plugin)->label);
|
EVRY_ITEM(it->plugin)->label);
|
||||||
else
|
else
|
||||||
|
@ -986,7 +968,7 @@ _evry_selector_update(Evry_Selector *sel)
|
||||||
_evry_selector_item_update(sel);
|
_evry_selector_item_update(sel);
|
||||||
|
|
||||||
|
|
||||||
if (sel == selectors[0])
|
if (sel == win->selectors[0])
|
||||||
{
|
{
|
||||||
if (item_changed)
|
if (item_changed)
|
||||||
{
|
{
|
||||||
|
@ -994,7 +976,7 @@ _evry_selector_update(Evry_Selector *sel)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sel = selectors[1];
|
sel = win->selectors[1];
|
||||||
if (sel->update_timer)
|
if (sel->update_timer)
|
||||||
ecore_timer_del(sel->update_timer);
|
ecore_timer_del(sel->update_timer);
|
||||||
sel->update_timer = NULL;
|
sel->update_timer = NULL;
|
||||||
|
@ -1005,7 +987,7 @@ _evry_selector_update(Evry_Selector *sel)
|
||||||
static void
|
static void
|
||||||
_evry_list_win_update(Evry_State *s)
|
_evry_list_win_update(Evry_State *s)
|
||||||
{
|
{
|
||||||
if (s != selector->state) return;
|
if (s != win->selector->state) return;
|
||||||
if (!win->visible) return;
|
if (!win->visible) return;
|
||||||
|
|
||||||
/* if (s->changed) */
|
/* if (s->changed) */
|
||||||
|
@ -1017,7 +999,7 @@ _evry_selector_subjects_get(const char *plugin_name)
|
||||||
{
|
{
|
||||||
Eina_List *l, *plugins = NULL;
|
Eina_List *l, *plugins = NULL;
|
||||||
Evry_Plugin *p, *pp;
|
Evry_Plugin *p, *pp;
|
||||||
Evry_Selector *sel = selectors[0];
|
Evry_Selector *sel = win->selectors[0];
|
||||||
|
|
||||||
EINA_LIST_FOREACH(sel->plugins, l, p)
|
EINA_LIST_FOREACH(sel->plugins, l, p)
|
||||||
{
|
{
|
||||||
|
@ -1049,7 +1031,7 @@ _evry_selector_actions_get(Evry_Item *it)
|
||||||
{
|
{
|
||||||
Eina_List *l, *plugins = NULL;
|
Eina_List *l, *plugins = NULL;
|
||||||
Evry_Plugin *p, *pp;
|
Evry_Plugin *p, *pp;
|
||||||
Evry_Selector *sel = selectors[1];
|
Evry_Selector *sel = win->selectors[1];
|
||||||
|
|
||||||
while (sel->state)
|
while (sel->state)
|
||||||
_evry_state_pop(sel);
|
_evry_state_pop(sel);
|
||||||
|
@ -1082,13 +1064,13 @@ _evry_selector_objects_get(Evry_Action *act)
|
||||||
{
|
{
|
||||||
Eina_List *l, *plugins = NULL;
|
Eina_List *l, *plugins = NULL;
|
||||||
Evry_Plugin *p, *pp;
|
Evry_Plugin *p, *pp;
|
||||||
Evry_Selector *sel = selectors[2];
|
Evry_Selector *sel = win->selectors[2];
|
||||||
Evry_Item *it;
|
Evry_Item *it;
|
||||||
|
|
||||||
while (sel->state)
|
while (sel->state)
|
||||||
_evry_state_pop(sel);
|
_evry_state_pop(sel);
|
||||||
|
|
||||||
it = selectors[1]->state->cur_item;
|
it = win->selectors[1]->state->cur_item;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(sel->plugins, l, p)
|
EINA_LIST_FOREACH(sel->plugins, l, p)
|
||||||
{
|
{
|
||||||
|
@ -1176,7 +1158,7 @@ _evry_state_pop(Evry_Selector *sel)
|
||||||
int
|
int
|
||||||
evry_browse_item(Evry_Selector *sel)
|
evry_browse_item(Evry_Selector *sel)
|
||||||
{
|
{
|
||||||
if (!sel) sel = selector;
|
if (!sel) sel = win->selector;
|
||||||
Evry_State *s, *new_state;
|
Evry_State *s, *new_state;
|
||||||
Evry_Item *it;
|
Evry_Item *it;
|
||||||
Eina_List *l, *plugins = NULL;
|
Eina_List *l, *plugins = NULL;
|
||||||
|
@ -1284,7 +1266,7 @@ evry_browse_back(Evry_Selector *sel)
|
||||||
_evry_state_pop(sel);
|
_evry_state_pop(sel);
|
||||||
|
|
||||||
s = sel->state;
|
s = sel->state;
|
||||||
sel->aggregator->fetch(sel->aggregator, s->input);
|
evry_aggregator_fetch(sel->aggregator, s->input);
|
||||||
_evry_selector_update(sel);
|
_evry_selector_update(sel);
|
||||||
_evry_update_text_label(s);
|
_evry_update_text_label(s);
|
||||||
_evry_view_show(s->view);
|
_evry_view_show(s->view);
|
||||||
|
@ -1296,61 +1278,61 @@ evry_browse_back(Evry_Selector *sel)
|
||||||
static void
|
static void
|
||||||
_evry_selectors_switch(int dir)
|
_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);
|
_cb_show_timer(NULL);
|
||||||
|
|
||||||
if (selector->update_timer)
|
if (win->selector->update_timer)
|
||||||
{
|
{
|
||||||
if ((selector == selectors[0]) ||
|
if ((win->selector == win->selectors[0]) ||
|
||||||
(selector == selectors[1]))
|
(win->selector == win->selectors[1]))
|
||||||
{
|
{
|
||||||
_evry_matches_update(selector, 0);
|
_evry_matches_update(win->selector, 0);
|
||||||
_evry_selector_update(selector);
|
_evry_selector_update(win->selector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selector == selectors[0] && dir > 0)
|
if (win->selector == win->selectors[0] && dir > 0)
|
||||||
{
|
{
|
||||||
if (s->cur_item)
|
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;
|
int next_selector = 0;
|
||||||
Evry_Item *it;
|
Evry_Item *it;
|
||||||
|
|
||||||
if ((it = s->cur_item) &&
|
if ((it = s->cur_item) &&
|
||||||
(it->plugin == selector->actions))
|
(it->plugin == win->selector->actions))
|
||||||
{
|
{
|
||||||
GET_ACTION(act,it);
|
GET_ACTION(act,it);
|
||||||
if (act->it2.type)
|
if (act->it2.type)
|
||||||
{
|
{
|
||||||
_evry_selector_objects_get(act);
|
_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");
|
edje_object_signal_emit(win->o_main, "e,state,object_selector_show", "e");
|
||||||
next_selector = 2;
|
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");
|
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)
|
while (win->selector->states)
|
||||||
_evry_state_pop(selector);
|
_evry_state_pop(win->selector);
|
||||||
|
|
||||||
edje_object_signal_emit(win->o_main, "e,state,object_selector_hide", "e");
|
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
|
static int
|
||||||
|
@ -1367,13 +1349,13 @@ _evry_input_complete(Evry_State *s)
|
||||||
if (it->plugin->complete)
|
if (it->plugin->complete)
|
||||||
action = it->plugin->complete(it->plugin, it, &input);
|
action = it->plugin->complete(it->plugin, it, &input);
|
||||||
else
|
else
|
||||||
evry_browse_item(selector);
|
evry_browse_item(win->selector);
|
||||||
|
|
||||||
if (input && action == EVRY_COMPLETE_INPUT)
|
if (input && action == EVRY_COMPLETE_INPUT)
|
||||||
{
|
{
|
||||||
snprintf(s->input, INPUTLEN - 1, "%s", input);
|
snprintf(s->input, INPUTLEN - 1, "%s", input);
|
||||||
_evry_update_text_label(s);
|
_evry_update_text_label(s);
|
||||||
_evry_cb_update_timer(selector);
|
_evry_cb_update_timer(win->selector);
|
||||||
evry_item_select(s, it);
|
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 (hi->count < 0) hi->count = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (s->plugin == selector->aggregator)
|
if (s->plugin == win->selector->aggregator)
|
||||||
selector->aggregator->fetch(selector->aggregator, s->input);
|
evry_aggregator_fetch(win->selector->aggregator, s->input);
|
||||||
if (s->view)
|
if (s->view)
|
||||||
s->view->update(s->view, 0);
|
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;
|
return 1;
|
||||||
|
|
||||||
win->request_selection = EINA_FALSE;
|
win->request_selection = EINA_FALSE;
|
||||||
s = selector->state;
|
s = win->selector->state;
|
||||||
old = ev->key;
|
old = ev->key;
|
||||||
|
|
||||||
if (!strcmp(ev->key, "KP_Enter"))
|
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 (!strcmp(key, "u"))
|
||||||
{
|
{
|
||||||
if (!_evry_clear(selector))
|
if (!_evry_clear(win->selector))
|
||||||
evry_browse_back(selector);
|
evry_browse_back(win->selector);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
else if (!strcmp(key, "1"))
|
else if (!strcmp(key, "1"))
|
||||||
_evry_view_toggle(s, NULL);
|
_evry_view_toggle(s, NULL);
|
||||||
else if (!strcmp(key, "Return"))
|
else if (!strcmp(key, "Return"))
|
||||||
_evry_plugin_action(selector, 0);
|
_evry_plugin_action(win->selector, 0);
|
||||||
else if (!strcmp(key, "v"))
|
else if (!strcmp(key, "v"))
|
||||||
{
|
{
|
||||||
win->request_selection = EINA_TRUE;
|
win->request_selection = EINA_TRUE;
|
||||||
|
@ -1595,28 +1577,28 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
goto end;
|
goto end;
|
||||||
else if (!strcmp(key, "Right"))
|
else if (!strcmp(key, "Right"))
|
||||||
{
|
{
|
||||||
if (!evry_browse_item(selector) &&
|
if (!evry_browse_item(win->selector) &&
|
||||||
(selector != selectors[2]))
|
(win->selector != win->selectors[2]))
|
||||||
_evry_selectors_switch(1);
|
_evry_selectors_switch(1);
|
||||||
}
|
}
|
||||||
else if (!strcmp(key, "Left"))
|
else if (!strcmp(key, "Left"))
|
||||||
{
|
{
|
||||||
if (!evry_browse_back(selector))
|
if (!evry_browse_back(win->selector))
|
||||||
_evry_selectors_switch(-1);
|
_evry_selectors_switch(-1);
|
||||||
}
|
}
|
||||||
else if (!strcmp(key, "Return"))
|
else if (!strcmp(key, "Return"))
|
||||||
{
|
{
|
||||||
if (ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT)
|
if (ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT)
|
||||||
_evry_plugin_action(selector, 0);
|
_evry_plugin_action(win->selector, 0);
|
||||||
else /*if (!_evry_browse_item(selector))*/
|
else /*if (!_evry_browse_item(win->selector))*/
|
||||||
_evry_plugin_action(selector, 1);
|
_evry_plugin_action(win->selector, 1);
|
||||||
}
|
}
|
||||||
else if (!strcmp(key, "Tab"))
|
else if (!strcmp(key, "Tab"))
|
||||||
_evry_selectors_switch(1);
|
_evry_selectors_switch(1);
|
||||||
else if (!strcmp(key, "BackSpace"))
|
else if (!strcmp(key, "BackSpace"))
|
||||||
{
|
{
|
||||||
if (!_evry_backspace(selector))
|
if (!_evry_backspace(win->selector))
|
||||||
evry_browse_back(selector);
|
evry_browse_back(win->selector);
|
||||||
}
|
}
|
||||||
else if (_evry_view_key_press(s, ev))
|
else if (_evry_view_key_press(s, ev))
|
||||||
goto end;
|
goto end;
|
||||||
|
@ -1631,7 +1613,7 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
{
|
{
|
||||||
strcat(s->inp, ev->compose);
|
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;
|
Evry_Item *it, *it_subj, *it_act, *it_obj = NULL;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
|
|
||||||
if (selectors[0]->update_timer)
|
if (win->selectors[0]->update_timer)
|
||||||
{
|
{
|
||||||
_evry_matches_update(selectors[0], 0);
|
_evry_matches_update(win->selectors[0], 0);
|
||||||
_evry_selector_update(selectors[0]);
|
_evry_selector_update(win->selectors[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(s_subj = selectors[0]->state))
|
if (!(s_subj = win->selectors[0]->state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!(it_subj = s_subj->cur_item))
|
if (!(it_subj = s_subj->cur_item))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (selector == selectors[0] &&
|
if (win->selector == win->selectors[0] &&
|
||||||
selectors[1]->update_timer)
|
win->selectors[1]->update_timer)
|
||||||
{
|
{
|
||||||
_evry_selector_actions_get(it_subj);
|
_evry_selector_actions_get(it_subj);
|
||||||
|
|
||||||
if (!selectors[1]->state)
|
if (!win->selectors[1]->state)
|
||||||
return;
|
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;
|
return;
|
||||||
|
|
||||||
if (!(it_act = s_act->cur_item))
|
if (!(it_act = s_act->cur_item))
|
||||||
|
@ -1833,14 +1815,14 @@ _evry_plugin_action(Evry_Selector *sel, int finished)
|
||||||
if (act->it2.type)
|
if (act->it2.type)
|
||||||
{
|
{
|
||||||
/* check if object is provided */
|
/* check if object is provided */
|
||||||
if ((s_obj = selectors[2]->state))
|
if ((s_obj = win->selectors[2]->state))
|
||||||
{
|
{
|
||||||
it_obj = s_obj->cur_item;
|
it_obj = s_obj->cur_item;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!it_obj)
|
if (!it_obj)
|
||||||
{
|
{
|
||||||
if (selectors[1] == selector)
|
if (win->selectors[1] == win->selector)
|
||||||
_evry_selectors_switch(1);
|
_evry_selectors_switch(1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2113,7 +2095,7 @@ _evry_matches_update(Evry_Selector *sel, int async)
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(s->plugins, l, p)
|
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))
|
if ((p->config->trigger) && (p->config->trigger_only))
|
||||||
continue;
|
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);
|
_evry_plugin_list_insert(s, sel->aggregator);
|
||||||
|
|
||||||
if (s->plugin_auto_selected ||
|
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;
|
Ecore_X_Event_Selection_Notify *ev;
|
||||||
/* FIXME Evry_Selector *sel = data; */
|
/* FIXME Evry_Selector *sel = data; */
|
||||||
Evry_State *s = selector->state;
|
Evry_State *s = win->selector->state;
|
||||||
|
|
||||||
if (!s || (data != win)) return 1;
|
if (!s || (data != win)) return 1;
|
||||||
if (!win->request_selection) 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;
|
text_data = ev->data;
|
||||||
|
|
||||||
strncat(s->input, text_data->text, (INPUTLEN - strlen(s->input)) - 1);
|
strncat(s->input, text_data->text, (INPUTLEN - strlen(s->input)) - 1);
|
||||||
_evry_update(selector, 1);
|
_evry_update(win->selector, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,9 @@ typedef struct _Plugin Plugin;
|
||||||
struct _Plugin
|
struct _Plugin
|
||||||
{
|
{
|
||||||
Evry_Plugin base;
|
Evry_Plugin base;
|
||||||
Evry_Selector *selector;
|
int type;
|
||||||
|
Evry_Selector **selectors;
|
||||||
|
|
||||||
Evry_Item *warning;
|
Evry_Item *warning;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -24,7 +25,7 @@ _fetch(Evry_Plugin *plugin, const char *input)
|
||||||
Eina_List *items = NULL;
|
Eina_List *items = NULL;
|
||||||
const char *context = NULL;
|
const char *context = NULL;
|
||||||
char buf[128];
|
char buf[128];
|
||||||
Evry_Selector *sel = p->selector;
|
Evry_Selector *sel = p->selectors[p->type];
|
||||||
|
|
||||||
if (input && !input[0]) input = NULL;
|
if (input && !input[0]) input = NULL;
|
||||||
|
|
||||||
|
@ -36,7 +37,7 @@ _fetch(Evry_Plugin *plugin, const char *input)
|
||||||
if (!s->cur_plugins)
|
if (!s->cur_plugins)
|
||||||
{
|
{
|
||||||
/* 'text' and 'actions' are always loaded */
|
/* 'text' and 'actions' are always loaded */
|
||||||
if ((sel == selectors[0]) &&
|
if ((sel == p->selectors[0]) &&
|
||||||
(eina_list_count(s->plugins) == 2))
|
(eina_list_count(s->plugins) == 2))
|
||||||
{
|
{
|
||||||
evry_item_ref(p->warning);
|
evry_item_ref(p->warning);
|
||||||
|
@ -48,9 +49,9 @@ _fetch(Evry_Plugin *plugin, const char *input)
|
||||||
/* get current items' context ... */
|
/* get current items' context ... */
|
||||||
for (i = 1; i < 3; i++)
|
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) context = it->context;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -126,7 +127,7 @@ _fetch(Evry_Plugin *plugin, const char *input)
|
||||||
if (it->fuzzy_match == 0)
|
if (it->fuzzy_match == 0)
|
||||||
it->fuzzy_match = evry_fuzzy_match(it->label, input);
|
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)
|
if (it->usage >= 0)
|
||||||
evry_history_item_usage_set(it, input, context);
|
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 */
|
/* always append items of action or object selector */
|
||||||
else if ((!input) &&
|
else if ((!input) &&
|
||||||
((sel == selectors[1]) ||
|
((sel == p->selectors[1]) ||
|
||||||
(sel == selectors[2])))
|
(sel == p->selectors[2])))
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(lp, l, pp)
|
EINA_LIST_FOREACH(lp, l, pp)
|
||||||
{
|
{
|
||||||
|
@ -245,7 +246,7 @@ _free(Evry_Plugin *plugin)
|
||||||
}
|
}
|
||||||
|
|
||||||
Evry_Plugin *
|
Evry_Plugin *
|
||||||
evry_plug_aggregator_new(Evry_Selector *sel, int type)
|
evry_aggregator_new(Evry_Window *win, int type)
|
||||||
{
|
{
|
||||||
Evry_Plugin *p;
|
Evry_Plugin *p;
|
||||||
|
|
||||||
|
@ -257,10 +258,17 @@ evry_plug_aggregator_new(Evry_Selector *sel, int type)
|
||||||
}
|
}
|
||||||
|
|
||||||
GET_PLUGIN(pa, 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 = evry_item_new(NULL, p, N_("No plugins loaded"), NULL, NULL);
|
||||||
pa->warning->type = EVRY_TYPE_NONE;
|
pa->warning->type = EVRY_TYPE_NONE;
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
evry_aggregator_fetch(Evry_Plugin *p, const char *input)
|
||||||
|
{
|
||||||
|
return p->fetch(p, input);
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "Evry.h"
|
#include "e_mod_main.h"
|
||||||
|
|
||||||
|
|
||||||
static Evry_Action *act;
|
static Evry_Action *act;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "Evry.h"
|
#include "e_mod_main.h"
|
||||||
|
|
||||||
static Evry_View *view;
|
static Evry_View *view;
|
||||||
static Evas_Object *o_text = NULL;
|
static Evas_Object *o_text = NULL;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "Evry.h"
|
#include "e_mod_main.h"
|
||||||
#include "md5.h"
|
#include "md5.h"
|
||||||
|
|
||||||
#define MAX_FUZZ 100
|
#define MAX_FUZZ 100
|
||||||
|
|
Loading…
Reference in New Issue