aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/elementary/src/edje_externals/elm_web.c
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/elementary/src/edje_externals/elm_web.c')
-rw-r--r--libraries/elementary/src/edje_externals/elm_web.c208
1 files changed, 0 insertions, 208 deletions
diff --git a/libraries/elementary/src/edje_externals/elm_web.c b/libraries/elementary/src/edje_externals/elm_web.c
deleted file mode 100644
index 64fd373..0000000
--- a/libraries/elementary/src/edje_externals/elm_web.c
+++ /dev/null
@@ -1,208 +0,0 @@
1#include "private.h"
2
3typedef struct _Elm_Params_Web
4{
5 Elm_Params base;
6 const char *uri;
7 double zoom;
8 Elm_Web_Zoom_Mode zoom_mode;
9 Eina_Bool inwin_mode;
10 Eina_Bool zoom_set:1;
11 Eina_Bool inwin_mode_set:1;
12} Elm_Params_Web;
13
14static const char *zoom_choices[] = {"manual", "auto fit", "auto fill", NULL};
15
16static Elm_Web_Zoom_Mode
17_zoom_mode_get(const char *zoom)
18{
19 unsigned int i;
20
21 for (i = 0; i < ELM_WEB_ZOOM_MODE_LAST; i++)
22 if (!strcmp(zoom, zoom_choices[i])) return i;
23
24 return ELM_WEB_ZOOM_MODE_LAST;
25}
26
27static void
28external_web_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
29{
30 const Elm_Params_Web *p;
31
32 if (to_params) p = to_params;
33 else if (from_params) p = from_params;
34 else return;
35
36 if (p->uri)
37 elm_web_uri_set(obj, p->uri);
38 if (p->zoom_mode < ELM_WEB_ZOOM_MODE_LAST)
39 elm_web_zoom_mode_set(obj, p->zoom_mode);
40 if (p->zoom_set)
41 elm_web_zoom_set(obj, p->zoom);
42 if (p->inwin_mode_set)
43 elm_web_inwin_mode_set(obj, p->inwin_mode);
44}
45
46static Eina_Bool
47external_web_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
48{
49 if (!strcmp(param->name, "uri"))
50 {
51 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
52 {
53 elm_web_uri_set(obj, param->s);
54 return EINA_TRUE;
55 }
56 }
57 else if (!strcmp(param->name, "zoom level"))
58 {
59 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
60 {
61 elm_web_zoom_set(obj, param->d);
62 return EINA_TRUE;
63 }
64 }
65 else if (!strcmp(param->name, "zoom mode"))
66 {
67 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
68 {
69 Elm_Web_Zoom_Mode mode = _zoom_mode_get(param->s);
70 if (mode == ELM_WEB_ZOOM_MODE_LAST)
71 return EINA_FALSE;
72 elm_web_zoom_mode_set(obj, mode);
73 return EINA_TRUE;
74 }
75 }
76 else if (!strcmp(param->name, "inwin mode"))
77 {
78 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
79 {
80 elm_web_inwin_mode_set(obj, !!param->i);
81 return EINA_TRUE;
82 }
83 }
84
85 ERR("unknown parameter '%s' of type '%s'",
86 param->name, edje_external_param_type_str(param->type));
87
88 return EINA_FALSE;
89}
90
91static Eina_Bool
92external_web_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
93{
94 if (!strcmp(param->name, "uri"))
95 {
96 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
97 {
98 param->s = elm_web_uri_get(obj);
99 return EINA_TRUE;
100 }
101 }
102 else if (!strcmp(param->name, "zoom level"))
103 {
104 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
105 {
106 param->d = elm_web_zoom_get(obj);
107 return EINA_TRUE;
108 }
109 }
110 else if (!strcmp(param->name, "zoom mode"))
111 {
112 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
113 {
114 Elm_Web_Zoom_Mode mode = elm_web_zoom_mode_get(obj);
115 if (mode == ELM_WEB_ZOOM_MODE_LAST)
116 return EINA_FALSE;
117 param->s = zoom_choices[mode];
118 return EINA_TRUE;
119 }
120 }
121 else if (!strcmp(param->name, "inwin mode"))
122 {
123 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
124 {
125 param->i = elm_web_inwin_mode_get(obj);
126 return EINA_TRUE;
127 }
128 }
129
130 ERR("unknown parameter '%s' of type '%s'",
131 param->name, edje_external_param_type_str(param->type));
132
133 return EINA_FALSE;
134}
135
136static void *
137external_web_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params)
138{
139 Elm_Params_Web *mem;
140 Edje_External_Param *param;
141 const Eina_List *l;
142
143 mem = calloc(1, sizeof(Elm_Params_Web));
144 if (!mem) return NULL;
145
146 mem->zoom_mode = ELM_WEB_ZOOM_MODE_LAST;
147
148 EINA_LIST_FOREACH(params, l, param)
149 {
150 if (!strcmp(param->name, "zoom level"))
151 {
152 mem->zoom = param->d;
153 mem->zoom_set = EINA_TRUE;
154 }
155 else if (!strcmp(param->name, "zoom mode"))
156 mem->zoom_mode = _zoom_mode_get(param->s);
157 else if (!strcmp(param->name, "uri"))
158 mem->uri = eina_stringshare_add(param->s);
159 else if (!strcmp(param->name, "inwin mode"))
160 {
161 mem->inwin_mode = !!param->i;
162 mem->inwin_mode_set = EINA_TRUE;
163 }
164 }
165
166 return mem;
167}
168
169static void
170external_web_params_free(void *params)
171{
172 Elm_Params_Web *mem = params;
173
174 if (mem->uri)
175 eina_stringshare_del(mem->uri);
176 free(mem);
177}
178
179static Evas_Object *
180external_web_content_get(void *data __UNUSED__, const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
181{
182 return NULL;
183}
184
185static Edje_External_Param_Info external_web_params[] =
186{
187 EDJE_EXTERNAL_PARAM_INFO_STRING("uri"),
188 EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT("zoom level", 1.0),
189 EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL("zoom mode", "manual", zoom_choices),
190 EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT("inwin mode", EINA_FALSE),
191 EDJE_EXTERNAL_PARAM_INFO_SENTINEL
192};
193
194static Evas_Object *
195external_web_add(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_Object *edje, const Eina_List *params __UNUSED__, const char *part_name)
196{
197 Evas_Object *parent, *obj;
198 external_elm_init();
199 parent = elm_widget_parent_widget_get(edje);
200 if (!parent) parent = edje;
201 elm_need_web(); /* extra command needed */
202 obj = elm_web_add(parent);
203 external_signals_proxy(obj, edje, part_name);
204 return obj;
205}
206
207DEFINE_EXTERNAL_ICON_ADD(web, "web")
208DEFINE_EXTERNAL_TYPE(web, "Web")