use int to identify item type, add function to register new types.
SVN revision: 48396
const char *mime;
- if (!evry_item_type_check(item, EVRY_TYPE_FILE, NULL))
+ if (!CHECK_TYPE(item, EVRY_TYPE_FILE))
return 0;
GET_FILE(file, item);
static int
_exec_app_check_item(Evry_Action *act, const Evry_Item *it)
{
- /* if (!evry_item_type_check(it, EVRY_TYPE_APP, NULL)) return 0; */
+ /* if (!CHECK_TYPE(it, EVRY_TYPE_APP, NULL)) return 0; */
/* ITEM_APP(app, it); */
plug_action = p;
act = EVRY_ACTION_NEW(N_("Launch"),
- EVRY_TYPE_APP, NULL,
+ EVRY_TYPE_APP, 0,
"everything-launch",
_exec_app_action,
_exec_app_check_item);
_actions = eina_list_append(_actions, act);
act = EVRY_ACTION_NEW(N_("Run in Terminal"),
- EVRY_TYPE_APP, NULL,
+ EVRY_TYPE_APP, 0,
"system-run",
_exec_term_action,
_exec_term_check_item);
_actions = eina_list_append(_actions, act);
act = EVRY_ACTION_NEW(N_("Edit Application Entry"),
- EVRY_TYPE_APP, NULL,
+ EVRY_TYPE_APP, 0,
"everything-launch",
_edit_app_action,
_edit_app_check_item);
_actions = eina_list_append(_actions, act);
act = EVRY_ACTION_NEW(N_("New Application Entry"),
- EVRY_TYPE_APP, NULL,
+ EVRY_TYPE_APP, 0,
"everything-launch",
_new_app_action,
_new_app_check_item);
_actions = eina_list_append(_actions, act);
act = EVRY_ACTION_NEW(N_("Run with Sudo"),
- EVRY_TYPE_APP, NULL,
+ EVRY_TYPE_APP, 0,
"system-run",
_exec_sudo_action, NULL);
_actions = eina_list_append(_actions, act);
if (!evry_api_version_check(EVRY_API_VERSION))
return EINA_FALSE;
- p = EVRY_PLUGIN_NEW(Plugin, N_("Spell Checker"),"accessories-dictionary",
- EVRY_TYPE_TEXT, NULL, _cleanup, _fetch, NULL);
+ p = EVRY_PLUGIN_NEW(Plugin, N_("Spell Checker"),
+ "accessories-dictionary",
+ EVRY_TYPE_TEXT,
+ NULL, _cleanup, _fetch, NULL);
p->aggregate = EINA_FALSE;
p->history = EINA_FALSE;
if (!evry_api_version_check(EVRY_API_VERSION))
return EINA_FALSE;
- p1 = EVRY_PLUGIN_NEW(Evry_Plugin, N_("Calculator"), "accessories-calculator", EVRY_TYPE_TEXT,
+ p1 = EVRY_PLUGIN_NEW(Evry_Plugin, N_("Calculator"),
+ "accessories-calculator",
+ EVRY_TYPE_TEXT,
_begin, _cleanup, _fetch, NULL);
p1->view_mode = VIEW_MODE_LIST;
Plugin *p = NULL;
/* is FILE ? */
- if (it && evry_item_type_check(it, EVRY_TYPE_FILE, NULL))
+ if (it && CHECK_TYPE(it, EVRY_TYPE_FILE))
{
GET_FILE(file, it);
EINA_LIST_FOREACH(he->items, l, hi)
{
- if (hi->type != EVRY_TYPE_FILE)
+ if (hi->type != evry_type_get(EVRY_TYPE_FILE))
continue;
if (hi->data)
EINA_LIST_FOREACH(he->items, l, hi)
{
- if (hi->type != EVRY_TYPE_FILE)
+ if (hi->type != evry_type_get(EVRY_TYPE_FILE))
continue;
/* filter out files that we already have from history */
p2->config_path = "extensions/everything-files";
evry_plugin_register(p2, EVRY_PLUGIN_OBJECT, 1);
- act = EVRY_ACTION_NEW(N_("Open Folder (EFM)"), EVRY_TYPE_FILE, NULL, "folder-open",
+ act = EVRY_ACTION_NEW(N_("Open Folder (EFM)"), EVRY_TYPE_FILE, 0, "folder-open",
_open_folder_action, _open_folder_check);
evry_action_register(act, 0);
_actions = eina_list_append(_actions, act);
- act = EVRY_ACTION_NEW(N_("Open Terminal here"), EVRY_TYPE_FILE, NULL, "system-run",
+ act = EVRY_ACTION_NEW(N_("Open Terminal here"), EVRY_TYPE_FILE, 0, "system-run",
_open_term_action, NULL);
evry_action_register(act, 2);
_actions = eina_list_append(_actions, act);
- act = EVRY_ACTION_NEW(N_("Move to Trash"), EVRY_TYPE_FILE, NULL, "edit-delete",
+ act = EVRY_ACTION_NEW(N_("Move to Trash"), EVRY_TYPE_FILE, 0, "edit-delete",
_file_trash_action, NULL);
EVRY_ITEM_DATA_INT_SET(act, ACT_TRASH);
evry_action_register(act, 2);
_actions = eina_list_append(_actions, act);
- act = EVRY_ACTION_NEW(N_("Delete"), EVRY_TYPE_FILE, NULL, "list-remove",
+ act = EVRY_ACTION_NEW(N_("Delete"), EVRY_TYPE_FILE, 0, "list-remove",
_file_trash_action, NULL);
EVRY_ITEM_DATA_INT_SET(act, ACT_DELETE);
evry_action_register(act, 2);
if (!evry_api_version_check(EVRY_API_VERSION))
return EINA_FALSE;
- p = EVRY_PLUGIN_NEW(Evry_Plugin, N_("Settings"), NULL, "E_SETTINGS",
+ p = EVRY_PLUGIN_NEW(Evry_Plugin, N_("Settings"), NULL, evry_type_register("E_SETTINGS"),
NULL, _cleanup, _fetch, NULL);
evry_plugin_register(p, EVRY_PLUGIN_SUBJECT, 10);
- act = EVRY_ACTION_NEW(N_("Show Dialog"), "E_SETTINGS", NULL,
+ act = EVRY_ACTION_NEW(N_("Show Dialog"), evry_type_register("E_SETTINGS"), 0,
"preferences-advanced", _action, NULL);
evry_action_register(act, 0);
static int
_action(Evry_Action *act)
{
- if (!evry_item_type_check(act->it1.item, EVRY_TYPE_FILE, NULL))
+ if (!CHECK_TYPE(act->it1.item, EVRY_TYPE_FILE))
return 0;
GET_FILE(file, act->it1.item);
_item_add(Evry_Item *it, const char *name, int method, const char *icon)
{
Evry_Action *act;
- act = EVRY_ACTION_NEW(name, EVRY_TYPE_FILE, NULL, icon, _action, NULL);
-
+ act = EVRY_ACTION_NEW(name, EVRY_TYPE_FILE, 0, icon, _action, NULL);
EVRY_ITEM_DATA_INT_SET(act, method);
- EVRY_ITEM(act)->subtype = eina_stringshare_add("WALLPAPER");
it->items = eina_list_append(it->items, act);
}
return EINA_FALSE;
_act = EVRY_ACTION_NEW(_("Set as Wallpaper"),
- EVRY_TYPE_FILE, NULL,
+ EVRY_TYPE_FILE, 0,
"preferences-desktop-wallpaper",
NULL, _check);
_act->fetch = _fetch;
if (!evry_api_version_check(EVRY_API_VERSION))
return EINA_FALSE;
- p1 = EVRY_PLUGIN_NEW(Evry_Plugin, N_("Windows"), NULL, "BORDER",
+ p1 = EVRY_PLUGIN_NEW(Evry_Plugin, N_("Windows"), NULL, EVRY_TYPE_BORDER,
_begin, _cleanup, _fetch, NULL);
p1->transient = EINA_TRUE;
act = EVRY_ACTION_NEW(_("Switch to Window"),
- "BORDER", NULL, "go-next",
+ EVRY_TYPE_BORDER, 0, "go-next",
_act_border, _check_border);
EVRY_ITEM_DATA_INT_SET(act, BORDER_SHOW);
evry_action_register(act, 1);
_actions = eina_list_append(_actions, act);
act = EVRY_ACTION_NEW(_("Iconify"),
- "BORDER", NULL, "iconic",
+ EVRY_TYPE_BORDER, 0, "iconic",
_act_border, _check_border);
EVRY_ITEM_DATA_INT_SET(act, BORDER_HIDE);
_actions = eina_list_append(_actions, act);
evry_action_register(act, 2);
act = EVRY_ACTION_NEW(_("Toggle Fullscreen"),
- "BORDER", NULL, "view-fullscreen",
+ EVRY_TYPE_BORDER, 0, "view-fullscreen",
_act_border, _check_border);
EVRY_ITEM_DATA_INT_SET(act, BORDER_FULLSCREEN);
_actions = eina_list_append(_actions, act);
evry_action_register(act, 4);
act = EVRY_ACTION_NEW(_("Close"),
- "BORDER", NULL, "view-fullscreen",
+ EVRY_TYPE_BORDER, 0, "view-fullscreen",
_act_border, _check_border);
EVRY_ITEM_DATA_INT_SET(act, BORDER_CLOSE);
_actions = eina_list_append(_actions, act);
evry_action_register(act, 3);
act = EVRY_ACTION_NEW(_("Send to Desktop"),
- "BORDER", NULL, "go-previous",
+ EVRY_TYPE_BORDER, 0, "go-previous",
_act_border, _check_border);
EVRY_ITEM_DATA_INT_SET(act, BORDER_TODESK);
_actions = eina_list_append(_actions, act);
#include "e.h"
-#define EVRY_API_VERSION 8
+#define EVRY_API_VERSION 9
#define EVRY_ACTION_OTHER 0
#define EVRY_ACTION_FINISHED 1
#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_Plugin Evry_Plugin;
-typedef struct _Evry_Item Evry_Item;
-typedef struct _Evry_Item_App Evry_Item_App;
-typedef struct _Evry_Item_File Evry_Item_File;
-typedef struct _Evry_Action Evry_Action;
-typedef struct _Evry_State Evry_State;
-typedef struct _Evry_View Evry_View;
-typedef struct _History Evry_History;
-typedef struct _History_Entry History_Entry;
-typedef struct _History_Item History_Item;
-typedef struct _Config Evry_Config;
-typedef struct _Plugin_Config Plugin_Config;
-typedef struct _Plugin_Setting Plugin_Setting;
+typedef struct _Evry_Plugin Evry_Plugin;
+typedef struct _Evry_Item Evry_Item;
+typedef struct _Evry_Item_App Evry_Item_App;
+typedef struct _Evry_Item_File Evry_Item_File;
+typedef struct _Evry_Action Evry_Action;
+typedef struct _Evry_State Evry_State;
+typedef struct _Evry_View Evry_View;
+typedef struct _History Evry_History;
+typedef struct _History_Entry History_Entry;
+typedef struct _History_Item History_Item;
+typedef struct _Config Evry_Config;
+typedef struct _Plugin_Config Plugin_Config;
+typedef struct _Plugin_Setting Plugin_Setting;
+typedef struct _Evry_Event_Item_Changed Evry_Event_Item_Changed;
+
+typedef int Evry_Type;
#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 CHECK_TYPE(_item, _type) (((Evry_Item *)_item)->type == _type)
+#define CHECK_SUBTYPE(_item, _type) (((Evry_Item *)_item)->subtype == _type)
+
#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
* was performed on a file with a specific mimetype */
const char *context;
- const char *type;
+ /* is set to type of Evry_Plugin by default */
+ Evry_Type type;
/* optional */
- const char *subtype;
+ Evry_Type subtype;
Eina_List *items;
struct
{
const Evry_Item *item;
- const char *type;
- const char *subtype;
+ Evry_Type type;
+ Evry_Type subtype;
} it1;
struct
{
const Evry_Item *item;
- const char *type;
- const char *subtype;
+ Evry_Type type;
+ Evry_Type subtype;
} it2;
int (*action) (Evry_Action *act);
int priority;
};
+struct _Evry_Event_Item_Changed
+{
+ Evry_Item *item;
+};
/* FIXME this should be exposed.
- add functions to retrieve this stuff */
void (*cb_free) (Evry_Item *item));
EAPI void evry_item_free(Evry_Item *it);
EAPI void evry_item_ref(Evry_Item *it);
-EAPI int evry_item_type_check(const Evry_Item *it, const char *type, const char *subtype);
+
EAPI void evry_plugin_async_update(Evry_Plugin *plugin, int state);
EAPI void evry_clear_input(Evry_Plugin *p);
EAPI int evry_history_item_usage_set(Eina_Hash *hist, Evry_Item *it, const char *input, const char *ctxt);
EAPI Evry_Plugin *evry_plugin_new(Evry_Plugin *base, const char *name, const char *label, const char *icon,
- const char *item_type,
+ 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),
EAPI void evry_plugin_free(Evry_Plugin *p);
EAPI Evry_Action *evry_action_new(const char *name, const char *label,
- const char *type_in1, const char *type_in2,
+ 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 int evry_api_version_check(int version);
-typedef struct _Evry_Event_Item_Changed Evry_Event_Item_Changed;
-
-struct _Evry_Event_Item_Changed
-{
- Evry_Item *item;
-};
+EAPI Evry_Type evry_type_register(const char *type);
+EAPI const char *evry_type_get(Evry_Type type);
EAPI extern int EVRY_EVENT_ITEM_SELECT;
EAPI extern int EVRY_EVENT_ITEM_CHANGED;
EAPI extern int EVRY_EVENT_ITEMS_UPDATE;
-EAPI extern const char *EVRY_TYPE_FILE;
-EAPI extern const char *EVRY_TYPE_APP;
-EAPI extern const char *EVRY_TYPE_ACTION;
-EAPI extern const char *EVRY_TYPE_PLUGIN;
-EAPI extern const char *EVRY_TYPE_NONE;
-EAPI extern const char *EVRY_TYPE_BORDER;
-EAPI extern const char *EVRY_TYPE_TEXT;
+EAPI extern Evry_Type EVRY_TYPE_NONE;
+EAPI extern Evry_Type EVRY_TYPE_FILE;
+EAPI extern Evry_Type EVRY_TYPE_APP;
+EAPI extern Evry_Type EVRY_TYPE_ACTION;
+EAPI extern Evry_Type EVRY_TYPE_PLUGIN;
+EAPI extern Evry_Type EVRY_TYPE_BORDER;
+EAPI extern Evry_Type EVRY_TYPE_TEXT;
EAPI extern Evry_History *evry_hist;
EAPI extern Evry_Config *evry_conf;
EAPI int EVRY_EVENT_ITEM_CHANGED;
EAPI int EVRY_EVENT_ITEMS_UPDATE;
-EAPI const char *EVRY_TYPE_FILE;
-EAPI const char *EVRY_TYPE_APP;
-EAPI const char *EVRY_TYPE_ACTION;
-EAPI const char *EVRY_TYPE_PLUGIN;
-EAPI const char *EVRY_TYPE_NONE;
-EAPI const char *EVRY_TYPE_BORDER;
-EAPI const char *EVRY_TYPE_TEXT;
+EAPI Evry_Type EVRY_TYPE_FILE;
+EAPI Evry_Type EVRY_TYPE_APP;
+EAPI Evry_Type EVRY_TYPE_ACTION;
+EAPI Evry_Type EVRY_TYPE_PLUGIN;
+EAPI Evry_Type EVRY_TYPE_NONE;
+EAPI Evry_Type EVRY_TYPE_BORDER;
+EAPI Evry_Type EVRY_TYPE_TEXT;
/* module setup */
EAPI E_Module_Api e_modapi =
"Everything"
};
+static Eina_List *_evry_types = NULL;
+
+EAPI Evry_Type
+evry_type_register(const char *type)
+{
+ const char *t = eina_stringshare_add(type);
+ Evry_Type ret = 0;
+ const char *i;
+ Eina_List *l;
+
+ EINA_LIST_FOREACH(_evry_types, l, i)
+ {
+ if (i == t) break;
+ ret++;
+ }
+
+ if(!l)
+ {
+ _evry_types = eina_list_append(_evry_types, t);
+ return ret;
+ }
+ eina_stringshare_del(t);
+
+ return ret;
+}
+
+EAPI const char *
+evry_type_get(Evry_Type type)
+{
+ const char *ret = eina_list_nth(_evry_types, type - 1);
+ if (!ret)
+ return eina_stringshare_add("");
+
+ return ret;
+}
+
EAPI void *
e_modapi_init(E_Module *m)
{
return NULL;
}
+ EVRY_TYPE_NONE = evry_type_register("NONE");
+ EVRY_TYPE_FILE = evry_type_register("FILE");
+ EVRY_TYPE_APP = evry_type_register("APPLICATION");
+ EVRY_TYPE_ACTION = evry_type_register("ACTION");
+ EVRY_TYPE_PLUGIN = evry_type_register("PLUGIN");
+ EVRY_TYPE_BORDER = evry_type_register("BORDER");
+ EVRY_TYPE_TEXT = evry_type_register("TEXT");
+
_config_init();
evry_history_init();
if (!EVRY_EVENT_ITEM_CHANGED)
EVRY_EVENT_ITEM_CHANGED = ecore_event_type_new();
- EVRY_TYPE_FILE = eina_stringshare_add("EVRY_FILE");
- EVRY_TYPE_APP = eina_stringshare_add("EVRY_APP");
- EVRY_TYPE_ACTION = eina_stringshare_add("EVRY_ACTN");
- EVRY_TYPE_PLUGIN = eina_stringshare_add("EVRY_PLUG");
- EVRY_TYPE_NONE = eina_stringshare_add("EVRY_NONE");
- EVRY_TYPE_BORDER = eina_stringshare_add("EVRY_BORDER");
- EVRY_TYPE_TEXT = eina_stringshare_add("EVRY_TEXT");
-
e_module_delayed_set(m, 0);
/* make sure module is loaded before others */
e_modapi_shutdown(E_Module *m __UNUSED__)
{
E_Config_Dialog *cfd;
+ const char *t;
+
evry_shutdown();
view_thumb_shutdown();
_config_free();
evry_history_free();
- eina_stringshare_del(EVRY_TYPE_FILE);
- eina_stringshare_del(EVRY_TYPE_APP);
- eina_stringshare_del(EVRY_TYPE_ACTION);
- eina_stringshare_del(EVRY_TYPE_PLUGIN);
- eina_stringshare_del(EVRY_TYPE_NONE);
- eina_stringshare_del(EVRY_TYPE_BORDER);
- eina_stringshare_del(EVRY_TYPE_TEXT);
+ EINA_LIST_FREE(_evry_types, t)
+ eina_stringshare_del(t);
e_configure_registry_item_del("extensions/run_everything");
e_configure_registry_category_del("extensions");
Evry_Plugin *
evry_plugin_new(Evry_Plugin *base, const char *name, const char *label,
- const char *icon, const char *item_type,
+ const char *icon, Evry_Type item_type,
Evry_Plugin *(*begin) (Evry_Plugin *p, const Evry_Item *item),
void (*finish) (Evry_Plugin *p),
int (*fetch) (Evry_Plugin *p, const char *input),
evry_item_new(EVRY_ITEM(p), NULL, label, NULL, _evry_plugin_free);
p->base.icon = icon;
- p->base.type = eina_stringshare_ref(EVRY_TYPE_PLUGIN);
+ p->base.type = EVRY_TYPE_PLUGIN;
if (item_type)
- p->base.subtype = eina_stringshare_add(item_type);
+ p->base.subtype = item_type;
p->name = eina_stringshare_add(name);
p->begin = begin;
}
if (p && EVRY_ITEM(p)->subtype)
- it->type = eina_stringshare_ref(EVRY_ITEM(p)->subtype);
+ it->type = EVRY_ITEM(p)->subtype;
+
it->plugin = p;
if (label) it->label = eina_stringshare_add(label);
it->icon_get = icon_get;
it->ref = 1;
- /* it->usage = -1; */
#ifdef CHECK_REFS
item_cnt++;
if (it->id) eina_stringshare_del(it->id);
if (it->context) eina_stringshare_del(it->context);
if (it->detail) eina_stringshare_del(it->detail);
- if (it->type) eina_stringshare_del(it->type);
if (it->free)
it->free(it);
E_FREE(it);
}
-EAPI int
-evry_item_type_check(const Evry_Item *it, const char *type, const char *subtype)
-{
- int ok = 0;
-
- if (it)
- {
- if (type)
- {
- if (it->type && type)
- ok = (!strcmp(it->type, type));
- }
-
- if (!(type && !ok) || subtype)
- {
- if (it->subtype && subtype)
- ok = (!strcmp(it->subtype, subtype));
- }
- }
-
- return ok;
-}
-
static Evry_Selector *
_evry_selector_for_plugin_get(Evry_Plugin *p)
{
EINA_LIST_FOREACH(sel->plugins, l, p)
{
- if (!evry_item_type_check(EVRY_ITEM(p), NULL, act->it2.type))
+ if (!CHECK_SUBTYPE(p, act->it2.type))
continue;
if (p->begin)
if (!(it_act = s_act->cur_item))
return;
- if (evry_item_type_check(it_act, EVRY_TYPE_ACTION, NULL) ||
- evry_item_type_check(it_act, NULL, EVRY_TYPE_ACTION))
+ if (CHECK_TYPE(it_act, EVRY_TYPE_ACTION) ||
+ CHECK_SUBTYPE(it_act, EVRY_TYPE_ACTION))
{
GET_ACTION(act, it_act);
e_widget_ilist_clear(obj);
EINA_LIST_FOREACH(plugins, l, pc)
- e_widget_ilist_append(obj, NULL, pc->name, NULL, pc, NULL);
-
+ {
+ e_widget_ilist_append(obj, NULL, pc->name, NULL, pc, NULL);
+ }
+
e_widget_ilist_go(obj);
e_widget_size_min_get(obj, &w, NULL);
e_widget_size_min_set(obj, w > 180 ? w : 180, 200);
hi = E_NEW(History_Item, 1);
hi->plugin = eina_stringshare_ref(it->plugin->name);
if (it->type)
- hi->type = eina_stringshare_ref(it->type);
+ hi->type = eina_stringshare_ref(evry_type_get(it->type));
he->items = eina_list_append(he->items, hi);
}
hi->transient = it->plugin->transient;
hi->count += (hi->transient ? 2:1);
- /* XXX can be remove just for update */
- if (it->type && !hi->type)
- hi->type = eina_stringshare_ref(it->type);
-
if (ctxt && !hi->context)
hi->context = eina_stringshare_ref(ctxt);
GET_PLUGIN(p, plugin);
Evry_Action *act;
Eina_List *l;
- const char *type;
+ Evry_Type type;
if (!it || !it->type) return NULL;
type = it->type;
-
if (it->browseable)
{
EINA_LIST_FOREACH(evry_conf->actions, l, act)
{
Evry_Plugin *plugin;
- plugin = EVRY_PLUGIN_NEW(Plugin, N_("Actions"), NULL, NULL, _begin, _finish, _fetch, NULL);
+ plugin = EVRY_PLUGIN_NEW(Plugin, N_("Actions"), NULL, 0, _begin, _finish, _fetch, NULL);
GET_PLUGIN(p, plugin);
p->selector = sel;
int evry_plug_actions_init()
{
- _base_plug = evry_plugin_new(NULL, _("Actions"), NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ _base_plug = evry_plugin_new(NULL, _("Actions"), NULL, NULL,
+ EVRY_TYPE_ACTION, NULL, NULL, NULL, NULL);
return 1;
}
GET_ACTION(act, it);
if (act->name) eina_stringshare_del(act->name);
- if (act->it1.type) eina_stringshare_del(act->it1.type);
- if (act->it2.type) eina_stringshare_del(act->it2.type);
E_FREE(act);
}
EAPI Evry_Action *
evry_action_new(const char *name, const char *label,
- const char *type_in1, const char *type_in2,
+ Evry_Type type_in1, Evry_Type type_in2,
const char *icon,
int (*action) (Evry_Action *act),
int (*check_item) (Evry_Action *act, const Evry_Item *it))
{
- Evry_Action *act = E_NEW(Evry_Action, 1);
-
- evry_item_new(EVRY_ITEM(act), _base_plug, label, NULL, _action_free_cb);
+ Evry_Action *act = EVRY_ITEM_NEW(Evry_Action, _base_plug, label, NULL, _action_free_cb);
act->base.icon = icon;
- act->base.type = eina_stringshare_ref(EVRY_TYPE_ACTION);
act->name = eina_stringshare_add(name);
- act->it1.type = (type_in1 ? eina_stringshare_add(type_in1) : NULL);
- act->it2.type = (type_in2 ? eina_stringshare_add(type_in2) : NULL);
+ act->it1.type = type_in1;
+ act->it2.type = type_in2;
act->action = action;
act->check_item = check_item;
{
Evry_Plugin *p;
- p = EVRY_PLUGIN_NEW(Plugin, N_("All"), NULL, NULL, NULL, _finish, _fetch, NULL);
+ p = EVRY_PLUGIN_NEW(Plugin, N_("All"), NULL, 0, NULL, _finish, _fetch, NULL);
p->history = EINA_FALSE;
evry_plugin_register(p, type, -1);
if (!win) return EINA_FALSE;
//FIXME: Icon name doesnt follow FDO Spec
- act = EVRY_ACTION_NEW(N_("Copy to Clipboard"), EVRY_TYPE_TEXT, NULL, "everything-clipboard",
- _action, _check_item);
+ act = EVRY_ACTION_NEW(N_("Copy to Clipboard"),
+ EVRY_TYPE_TEXT, 0,
+ "everything-clipboard",
+ _action, _check_item);
evry_action_register(act, 10);
if (!o && it->icon)
o = evry_icon_theme_get(it->icon, e);
- if (evry_item_type_check(it, EVRY_TYPE_FILE, NULL))
+ if (CHECK_TYPE(it, EVRY_TYPE_FILE))
o = _file_icon_get(it, e);
/* TODO default type: files, apps */
Tab_View *v = data;
double da;
- double spd = (5.0 / (double)e_config->framerate);
+ double spd = (8.0 / (double)e_config->framerate);
if (spd > 0.9) spd = 0.9;
int wait = 0;