enlightenment/src/modules/everything/evry_plug_text.c

95 lines
1.9 KiB
C

#include "e_mod_main.h"
typedef struct _Plugin Plugin;
struct _Plugin
{
Evry_Plugin base;
};
static Evry_Plugin *p1, *p2;
static Evry_Plugin *
_begin(Evry_Plugin *plugin, const Evry_Item *it __UNUSED__)
{
Plugin *p;
EVRY_PLUGIN_INSTANCE(p, plugin);
return EVRY_PLUGIN(p);
}
static void
_finish(Evry_Plugin *plugin)
{
GET_PLUGIN(p, plugin);
EVRY_PLUGIN_ITEMS_FREE(p);
E_FREE(p);
}
static int
_fetch(Evry_Plugin *plugin, const char *input)
{
Evry_Item *it;
GET_PLUGIN(p, plugin);
if (input)
{
if (!p->base.items)
{
it = evry_item_new(NULL, EVRY_PLUGIN(p), input, NULL, NULL);
it->fuzzy_match = 999;
EVRY_PLUGIN_ITEM_APPEND(p, it);
}
else
{
it = p->base.items->data;
EVRY_ITEM_LABEL_SET(it, input);
evry_item_changed(it, 0, 0);
}
return 1;
}
EVRY_PLUGIN_ITEMS_FREE(p);
return 0;
}
Eina_Bool
evry_plug_text_init(void)
{
p1 = EVRY_PLUGIN_BASE(N_("Text"), "accessories-text-editor",
EVRY_TYPE_TEXT, _begin, _finish, _fetch);
p2 = EVRY_PLUGIN_BASE(N_("Text"), "accessories-text-editor",
EVRY_TYPE_TEXT, _begin, _finish, _fetch);
if (evry_plugin_register(p1, EVRY_PLUGIN_OBJECT, 999))
{
p1->config->trigger = eina_stringshare_add(" ");
p1->config->aggregate = EINA_FALSE;
p1->config->top_level = EINA_FALSE;
p1->config->view_mode = VIEW_MODE_LIST;
}
if (evry_plugin_register(p2, EVRY_PLUGIN_SUBJECT, 999))
{
p2->config->trigger = eina_stringshare_add(" ");
p2->config->aggregate = EINA_FALSE;
p2->config->top_level = EINA_FALSE;
p2->config->view_mode = VIEW_MODE_LIST;
}
return EINA_TRUE;
}
void
evry_plug_text_shutdown(void)
{
EVRY_PLUGIN_FREE(p1);
EVRY_PLUGIN_FREE(p2);
}