diff options
Diffstat (limited to 'libraries/elementary/src/edje_externals/elm_map.c')
-rw-r--r-- | libraries/elementary/src/edje_externals/elm_map.c | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/libraries/elementary/src/edje_externals/elm_map.c b/libraries/elementary/src/edje_externals/elm_map.c deleted file mode 100644 index 11c0ece..0000000 --- a/libraries/elementary/src/edje_externals/elm_map.c +++ /dev/null | |||
@@ -1,185 +0,0 @@ | |||
1 | #include <assert.h> | ||
2 | |||
3 | #include "private.h" | ||
4 | |||
5 | typedef struct _Elm_Params_Map | ||
6 | { | ||
7 | Elm_Params base; | ||
8 | const char *map_source; | ||
9 | const char *zoom_mode; | ||
10 | double zoom; | ||
11 | Eina_Bool zoom_set:1; | ||
12 | } Elm_Params_Map; | ||
13 | |||
14 | static const char *zoom_choices[] = {"manual", "auto fit", "auto fill", NULL}; | ||
15 | |||
16 | static const char *source_choices[] = | ||
17 | {"Mapnik", "Osmarender", "CycleMap", "Maplint"}; | ||
18 | |||
19 | static Elm_Map_Zoom_Mode | ||
20 | _zoom_mode_get(const char *map_src) | ||
21 | { | ||
22 | unsigned int i; | ||
23 | |||
24 | assert(sizeof(zoom_choices)/sizeof(zoom_choices[0]) == | ||
25 | ELM_MAP_ZOOM_MODE_LAST + 1); | ||
26 | |||
27 | for (i = 0; i < ELM_MAP_ZOOM_MODE_LAST; i++) | ||
28 | if (!strcmp(map_src, zoom_choices[i])) return i; | ||
29 | |||
30 | return ELM_MAP_ZOOM_MODE_LAST; | ||
31 | } | ||
32 | |||
33 | static void | ||
34 | external_map_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__) | ||
35 | { | ||
36 | const Elm_Params_Map *p; | ||
37 | |||
38 | if (to_params) p = to_params; | ||
39 | else if (from_params) p = from_params; | ||
40 | else return; | ||
41 | |||
42 | if (p->map_source) | ||
43 | { | ||
44 | elm_map_source_set(obj, ELM_MAP_SOURCE_TYPE_TILE, p->map_source); | ||
45 | } | ||
46 | if (p->zoom_mode) | ||
47 | { | ||
48 | Elm_Map_Zoom_Mode set = _zoom_mode_get(p->zoom_mode); | ||
49 | if (set == ELM_MAP_ZOOM_MODE_LAST) return; | ||
50 | elm_map_zoom_mode_set(obj, set); | ||
51 | } | ||
52 | if (p->zoom_set) elm_map_zoom_set(obj, p->zoom); | ||
53 | } | ||
54 | |||
55 | static Eina_Bool | ||
56 | external_map_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param) | ||
57 | { | ||
58 | if (!strcmp(param->name, "map source")) | ||
59 | { | ||
60 | if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE) | ||
61 | { | ||
62 | elm_map_source_set(obj, ELM_MAP_SOURCE_TYPE_TILE, param->s); | ||
63 | return EINA_TRUE; | ||
64 | } | ||
65 | } | ||
66 | else if (!strcmp(param->name, "zoom mode")) | ||
67 | { | ||
68 | if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE) | ||
69 | { | ||
70 | Elm_Map_Zoom_Mode set = _zoom_mode_get(param->s); | ||
71 | if (set == ELM_MAP_ZOOM_MODE_LAST) return EINA_FALSE; | ||
72 | elm_map_zoom_mode_set(obj, set); | ||
73 | return EINA_TRUE; | ||
74 | } | ||
75 | } | ||
76 | else if (!strcmp(param->name, "zoom level")) | ||
77 | { | ||
78 | if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) | ||
79 | { | ||
80 | elm_map_zoom_set(obj, param->d); | ||
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 | |||
91 | static Eina_Bool | ||
92 | external_map_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param) | ||
93 | { | ||
94 | if (!strcmp(param->name, "map source")) | ||
95 | { | ||
96 | if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE) | ||
97 | { | ||
98 | const char *set = elm_map_source_get(obj, ELM_MAP_SOURCE_TYPE_TILE); | ||
99 | param->s = set; | ||
100 | return EINA_TRUE; | ||
101 | } | ||
102 | } | ||
103 | else if (!strcmp(param->name, "zoom mode")) | ||
104 | { | ||
105 | if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE) | ||
106 | { | ||
107 | Elm_Map_Zoom_Mode set = elm_map_zoom_mode_get(obj); | ||
108 | if (set == ELM_MAP_ZOOM_MODE_LAST) return EINA_FALSE; | ||
109 | param->s = zoom_choices[set]; | ||
110 | return EINA_TRUE; | ||
111 | } | ||
112 | } | ||
113 | else if (!strcmp(param->name, "zoom level")) | ||
114 | { | ||
115 | if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) | ||
116 | { | ||
117 | param->d = elm_map_zoom_get(obj); | ||
118 | return EINA_TRUE; | ||
119 | } | ||
120 | } | ||
121 | |||
122 | ERR("unknown parameter '%s' of type '%s'", | ||
123 | param->name, edje_external_param_type_str(param->type)); | ||
124 | |||
125 | return EINA_FALSE; | ||
126 | } | ||
127 | |||
128 | static void * | ||
129 | external_map_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params) | ||
130 | { | ||
131 | Elm_Params_Map *mem; | ||
132 | Edje_External_Param *param; | ||
133 | const Eina_List *l; | ||
134 | |||
135 | mem = calloc(1, sizeof(Elm_Params_Map)); | ||
136 | if (!mem) | ||
137 | return NULL; | ||
138 | |||
139 | EINA_LIST_FOREACH(params, l, param) | ||
140 | { | ||
141 | if (!strcmp(param->name, "map source")) | ||
142 | mem->map_source = eina_stringshare_add(param->s); | ||
143 | if (!strcmp(param->name, "zoom mode")) | ||
144 | mem->zoom_mode = eina_stringshare_add(param->s); | ||
145 | else if (!strcmp(param->name, "zoom level")) | ||
146 | { | ||
147 | mem->zoom = param->d; | ||
148 | mem->zoom_set = EINA_TRUE; | ||
149 | } | ||
150 | } | ||
151 | |||
152 | return mem; | ||
153 | } | ||
154 | |||
155 | static Evas_Object *external_map_content_get(void *data __UNUSED__, | ||
156 | const Evas_Object *obj __UNUSED__, const char *content __UNUSED__) | ||
157 | { | ||
158 | ERR("No content."); | ||
159 | return NULL; | ||
160 | } | ||
161 | |||
162 | static void | ||
163 | external_map_params_free(void *params) | ||
164 | { | ||
165 | Elm_Params_Map *mem = params; | ||
166 | |||
167 | if (mem->map_source) | ||
168 | eina_stringshare_del(mem->map_source); | ||
169 | if (mem->zoom_mode) | ||
170 | eina_stringshare_del(mem->zoom_mode); | ||
171 | free(mem); | ||
172 | } | ||
173 | |||
174 | static Edje_External_Param_Info external_map_params[] = | ||
175 | { | ||
176 | DEFINE_EXTERNAL_COMMON_PARAMS, | ||
177 | EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL("map source", "Mapnik", source_choices), | ||
178 | EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL("zoom mode", "manual", zoom_choices), | ||
179 | EDJE_EXTERNAL_PARAM_INFO_DOUBLE("zoom level"), | ||
180 | EDJE_EXTERNAL_PARAM_INFO_SENTINEL | ||
181 | }; | ||
182 | |||
183 | DEFINE_EXTERNAL_ICON_ADD(map, "map") | ||
184 | DEFINE_EXTERNAL_TYPE_SIMPLE(map, "Map") | ||
185 | |||