update for beta release
[framework/uifw/e17.git] / src / modules / everything / evry_plug_text.c
1 #include "e_mod_main.h"
2
3 typedef struct _Plugin Plugin;
4
5 struct _Plugin
6 {
7    Evry_Plugin base;
8 };
9
10 static Evry_Plugin *p1, *p2;
11
12 static Evry_Plugin *
13 _begin(Evry_Plugin *plugin, const Evry_Item *it __UNUSED__)
14 {
15    Plugin *p;
16
17    EVRY_PLUGIN_INSTANCE(p, plugin);
18
19    return EVRY_PLUGIN(p);
20 }
21
22 static void
23 _finish(Evry_Plugin *plugin)
24 {
25    GET_PLUGIN(p, plugin);
26
27    EVRY_PLUGIN_ITEMS_FREE(p);
28    E_FREE(p);
29 }
30
31 static int
32 _fetch(Evry_Plugin *plugin, const char *input)
33 {
34    Evry_Item *it;
35
36    GET_PLUGIN(p, plugin);
37
38    if (input)
39      {
40         if (!p->base.items)
41           {
42              it = evry_item_new(NULL, EVRY_PLUGIN(p), input, NULL, NULL);
43              it->fuzzy_match = 999;
44              EVRY_PLUGIN_ITEM_APPEND(p, it);
45           }
46         else
47           {
48              it = p->base.items->data;
49              EVRY_ITEM_LABEL_SET(it, input);
50              evry_item_changed(it, 0, 0);
51           }
52         return 1;
53      }
54
55    EVRY_PLUGIN_ITEMS_FREE(p);
56
57    return 0;
58 }
59
60 Eina_Bool
61 evry_plug_text_init(void)
62 {
63    p1 = EVRY_PLUGIN_BASE("Text", "accessories-text-editor",
64                          EVRY_TYPE_TEXT, _begin, _finish, _fetch);
65
66    p2 = EVRY_PLUGIN_BASE("Text", "accessories-text-editor",
67                          EVRY_TYPE_TEXT, _begin, _finish, _fetch);
68
69    if (evry_plugin_register(p1, EVRY_PLUGIN_OBJECT, 999))
70      {
71         p1->config->trigger = eina_stringshare_add(" ");
72         p1->config->aggregate = EINA_FALSE;
73         p1->config->top_level = EINA_FALSE;
74         p1->config->view_mode = VIEW_MODE_LIST;
75      }
76
77    if (evry_plugin_register(p2, EVRY_PLUGIN_SUBJECT, 999))
78      {
79         p2->config->trigger = eina_stringshare_add(" ");
80         p2->config->aggregate = EINA_FALSE;
81         p2->config->top_level = EINA_FALSE;
82         p2->config->view_mode = VIEW_MODE_LIST;
83      }
84
85    return EINA_TRUE;
86 }
87
88 void
89 evry_plug_text_shutdown(void)
90 {
91    EVRY_PLUGIN_FREE(p1);
92    EVRY_PLUGIN_FREE(p2);
93 }
94