660bc02c6e9bb373de4ad2ff120de66baeedcd70
[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    return 0;
55 }
56
57 Eina_Bool
58 evry_plug_text_init(void)
59 {
60    p1 = EVRY_PLUGIN_NEW(Evry_Plugin, N_("Text"),
61                         "accessories-text-editor", EVRY_TYPE_TEXT,
62                         _begin, _finish, _fetch, NULL);
63
64    p2 = EVRY_PLUGIN_NEW(Evry_Plugin, N_("Text"),
65                         "accessories-text-editor", EVRY_TYPE_TEXT,
66                         _begin, _finish, _fetch, NULL);
67
68    if (evry_plugin_register(p1, EVRY_PLUGIN_OBJECT,999))
69      {
70         /* p1->config->trigger_only = 1; */
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_only = 1; */
80         p2->config->trigger = eina_stringshare_add(" ");
81         p2->config->aggregate = EINA_FALSE;
82         p2->config->top_level = EINA_FALSE;
83         p2->config->view_mode = VIEW_MODE_LIST;
84      }
85
86    return EINA_TRUE;
87 }
88
89 void
90 evry_plug_text_shutdown(void)
91 {
92    EVRY_PLUGIN_FREE(p1);
93    EVRY_PLUGIN_FREE(p2);
94 }