diff --git a/legacy/elementary/data/themes/Makefile.am b/legacy/elementary/data/themes/Makefile.am index 89d2ad213a..b8bfddbfd1 100644 --- a/legacy/elementary/data/themes/Makefile.am +++ b/legacy/elementary/data/themes/Makefile.am @@ -285,7 +285,6 @@ emo-wink.png \ emo-worried.png \ emo-wtf.png \ map_item.png \ -map_item_2.png \ shadow.png \ black.png \ tooltip-corner-top-left-tip.png \ diff --git a/legacy/elementary/data/themes/map_item.png b/legacy/elementary/data/themes/map_item.png index 9e9015921c..b83e5527d3 100644 Binary files a/legacy/elementary/data/themes/map_item.png and b/legacy/elementary/data/themes/map_item.png differ diff --git a/legacy/elementary/data/themes/map_item_1.png b/legacy/elementary/data/themes/map_item_1.png deleted file mode 100644 index da9b580c37..0000000000 Binary files a/legacy/elementary/data/themes/map_item_1.png and /dev/null differ diff --git a/legacy/elementary/data/themes/map_item_2.png b/legacy/elementary/data/themes/map_item_2.png deleted file mode 100644 index f92ebfac5d..0000000000 Binary files a/legacy/elementary/data/themes/map_item_2.png and /dev/null differ diff --git a/legacy/elementary/data/themes/widgets/map.edc b/legacy/elementary/data/themes/widgets/map.edc index 367147d54a..a4edd896e2 100644 --- a/legacy/elementary/data/themes/widgets/map.edc +++ b/legacy/elementary/data/themes/widgets/map.edc @@ -497,7 +497,7 @@ group { name: "elm/map/marker/radio/default"; item: size_max_h 58; } images { - image: "radio2.png" COMP; + image: "map_item.png" COMP; } parts { part { name: "whole"; @@ -508,7 +508,8 @@ group { name: "elm/map/marker/radio/default"; part { name: "base"; ignore_flags: ON_HOLD; description { state: "default" 0.0; - image.normal: "radio2.png"; + image.normal: "map_item.png"; + min: 24 24; } } part { name: "elm.icon"; @@ -518,6 +519,7 @@ group { name: "elm/map/marker/radio/default"; description { state: "default" 0.0; rel1.relative: 0.27 0.27; rel2.relative: 0.73 0.73; + min: 24 24; } } part { name: "elm.text"; @@ -553,56 +555,7 @@ group { name: "elm/map/marker/radio/default"; } } } -group { name: "elm/map/marker/radio2/default"; - data { - item: size_w 24; - item: size_h 24; - item: size_max_w 58; - item: size_max_h 58; - } - images { - image: "map_item_2.png" COMP; - } - parts { - part { name: "base"; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - image.normal: "map_item_2.png"; - } - } - part { name: "elm.text"; - type: TEXT; - effect: SOFT_SHADOW; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - align: 0.5 0.5; - color: 224 224 224 255; - color3: 0 0 0 64; - rel1.relative: 0.28 0.25; - rel2.relative: 0.75 0.75; - text { - font: "Sans,Edje-Vera"; - size: 10; - min: 0 0; - align: 0.5 0.5; - } - } - } - } - programs { - program { name: "open"; - signal: "mouse,clicked,1"; - source: "base"; - action: SIGNAL_EMIT "open" "elm"; - } - program { name: "bringin"; - signal: "mouse,down,1,double"; - source: "base"; - action: SIGNAL_EMIT "bringin" "elm"; - } - } -} + group { name: "elm/map/marker/empty/default"; data { item: size_w 22; @@ -627,6 +580,7 @@ group { name: "elm/map/marker/empty/default"; clip_to: "whole"; mouse_events: 0; description { state: "default" 0.0; + min: 24 24; } } part { name: "elm.text"; @@ -718,7 +672,7 @@ group { name: "elm/map/marker_bubble/default"; part { name: "shine"; mouse_events: 0; clip_to: "clipper"; - description { state: "default" 0.0; + description { state: "default" 0.0; rel1 { to: "base0"; } diff --git a/legacy/elementary/src/bin/test_map.c b/legacy/elementary/src/bin/test_map.c index 69842c2001..2076c7192a 100644 --- a/legacy/elementary/src/bin/test_map.c +++ b/legacy/elementary/src/bin/test_map.c @@ -117,6 +117,7 @@ _label_get(Evas_Object *obj) Evas_Object *label; label = elm_label_add(obj); elm_object_text_set(label, "Here is a parking lot."); + evas_object_show(label); return label; } diff --git a/legacy/elementary/src/lib/elm_map.c b/legacy/elementary/src/lib/elm_map.c index da5a8b9375..b83391754c 100644 --- a/legacy/elementary/src/lib/elm_map.c +++ b/legacy/elementary/src/lib/elm_map.c @@ -1372,29 +1372,25 @@ _region_max_min_get(Eina_List *overlays, } static Evas_Object * -_icon_dup(const Evas_Object *icon, +_icon_dup(Evas_Object *icon, Evas_Object *parent) { - // Evas_Object do not support object duplication?? - const char *file = NULL, *group = NULL; - Eina_Bool size_up, size_down; Evas_Object *dupp; + Evas_Coord w, h; if (!icon || !parent) return NULL; - - dupp = elm_icon_add(parent); - elm_image_file_get(icon, &file, &group); - elm_image_file_set(dupp, file, group); - elm_image_animated_set(dupp, elm_image_animated_get(icon)); - elm_image_animated_play_set(dupp, elm_image_animated_play_get(icon)); - elm_icon_standard_set(dupp, elm_icon_standard_get(icon)); - elm_icon_order_lookup_set(dupp, elm_icon_order_lookup_get(icon)); - elm_image_no_scale_set(dupp, elm_image_no_scale_get(icon)); - elm_image_resizable_get(icon, &size_up, &size_down); - elm_image_resizable_set(dupp, size_up, size_down); - elm_image_fill_outside_set(dupp, elm_image_fill_outside_get(icon)); - elm_image_prescale_set(dupp, elm_image_prescale_get(icon)); - elm_image_aspect_fixed_set(dupp, elm_image_aspect_fixed_get(icon)); + dupp = evas_object_image_filled_add(evas_object_evas_get(parent)); + evas_object_image_source_set(dupp, icon); + // Set size as origin' sizse for proxy + evas_object_geometry_get(icon, NULL, NULL, &w, &h); + if (w <= 0 || h <= 0) + { + evas_object_size_hint_min_get(icon, &w, &h); + evas_object_size_hint_min_set(dupp, w, h); + } + else evas_object_resize(dupp, w, h); + // Original should have size for proxy + evas_object_resize(icon, w, h); return dupp; } @@ -1441,6 +1437,8 @@ _overlay_default_show(Overlay_Default *ovl) disp = ovl->content; evas_object_geometry_get(disp, NULL, NULL, &w, &h); if (w <= 0 || h <= 0) evas_object_size_hint_min_get(disp, &w, &h); + ovl->w = w; + ovl->h = h; } else if (!(ovl->icon) && ovl->clas_content) { @@ -1521,17 +1519,6 @@ _overlay_default_content_update(Overlay_Default *ovl, _overlay_clicked_cb, overlay); } -static void -_overlay_default_class_content_update(Overlay_Default *ovl, - const Evas_Object *content __UNUSED__) -{ - EINA_SAFETY_ON_NULL_RETURN(ovl); - - if (ovl->clas_content) evas_object_del(ovl->clas_content); - // Evas_Object can not be duplicated. - //ovl->clas_content = _content_dup(content); -} - static void _overlay_default_layout_update(Overlay_Default *ovl) { @@ -1563,6 +1550,17 @@ _overlay_default_layout_update(Overlay_Default *ovl) } } +static void +_overlay_default_class_content_update(Overlay_Default *ovl, + Evas_Object *content) +{ + EINA_SAFETY_ON_NULL_RETURN(ovl); + + if (ovl->clas_content) evas_object_del(ovl->clas_content); + ovl->clas_content = _icon_dup(content, ovl->layout); + _overlay_default_layout_update(ovl); +} + static void _overlay_default_icon_update(Overlay_Default *ovl, Evas_Object *icon) @@ -1578,7 +1576,7 @@ _overlay_default_icon_update(Overlay_Default *ovl, static void _overlay_default_class_icon_update(Overlay_Default *ovl, - const Evas_Object *icon) + Evas_Object *icon) { EINA_SAFETY_ON_NULL_RETURN(ovl); @@ -1682,7 +1680,7 @@ _overlay_group_coord_member_update(Overlay_Group *grp, static void _overlay_group_icon_update(Overlay_Group *grp, - const Evas_Object *icon) + Evas_Object *icon) { EINA_SAFETY_ON_NULL_RETURN(grp); @@ -1692,13 +1690,15 @@ _overlay_group_icon_update(Overlay_Group *grp, } static void -_overlay_group_content_update(Overlay_Group *grp __UNUSED__, - const Evas_Object *content __UNUSED__) +_overlay_group_content_update(Overlay_Group *grp, + Evas_Object *content, + Elm_Map_Overlay *overlay) { EINA_SAFETY_ON_NULL_RETURN(grp); - // Evas_Object can not be duplicated. - //_overlay_default_content_update(grp->ovl, _content_dup(content)); + _overlay_default_content_update + (grp->ovl, _icon_dup(content, ELM_WIDGET_DATA(grp->wsd)->obj), overlay); + return; } @@ -1778,6 +1778,10 @@ _overlay_class_icon_update(Overlay_Class *ovl, if (ovl->icon == icon) return; if (ovl->icon) evas_object_del(ovl->icon); ovl->icon = icon; + // For using proxy, it should have size and be shown but moved away to hide. + evas_object_resize(icon, 32, 32); + evas_object_move(icon, -9999, -9999); + evas_object_show(icon); // Update class members' class icons EINA_LIST_FOREACH(ovl->members, l, overlay) @@ -1801,11 +1805,14 @@ _overlay_class_content_update(Overlay_Class *ovl, if (ovl->content == content) return; if (ovl->content) evas_object_del(ovl->content); ovl->content = content; + // For using proxy, it should have size and be shown but moved away to hide. + // content should have it's own size + evas_object_move(content, -9999, -9999); // Update class members' class contents EINA_LIST_FOREACH(ovl->members, l, overlay) { - _overlay_group_content_update(overlay->grp, content); + _overlay_group_content_update(overlay->grp, content, overlay); if (overlay->type == ELM_MAP_OVERLAY_TYPE_DEFAULT) _overlay_default_class_content_update(overlay->ovl, content); @@ -1838,7 +1845,7 @@ _overlay_class_free(Overlay_Class *clas) EINA_LIST_FOREACH(clas->members, l, overlay) { overlay->grp->klass = NULL; - _overlay_group_content_update(overlay->grp, NULL); + _overlay_group_content_update(overlay->grp, NULL, NULL); _overlay_group_icon_update(overlay->grp, NULL); if (overlay->type == ELM_MAP_OVERLAY_TYPE_DEFAULT) @@ -5661,7 +5668,7 @@ elm_map_overlay_class_append(Elm_Map_Overlay *klass, // Update group by class overlay->grp->klass = klass; _overlay_group_icon_update(overlay->grp, class_ovl->icon); - _overlay_group_content_update(overlay->grp, class_ovl->content); + _overlay_group_content_update(overlay->grp, class_ovl->content, overlay); _overlay_group_color_update(overlay->grp, klass->c); _overlay_group_cb_set(overlay->grp, klass->cb, klass->data); if (overlay->type == ELM_MAP_OVERLAY_TYPE_DEFAULT) @@ -5696,7 +5703,7 @@ elm_map_overlay_class_remove(Elm_Map_Overlay *klass, overlay->grp->klass = NULL; _overlay_group_icon_update(overlay->grp, NULL); - _overlay_group_content_update(overlay->grp, NULL); + _overlay_group_content_update(overlay->grp, NULL, NULL); if (overlay->type == ELM_MAP_OVERLAY_TYPE_DEFAULT) { _overlay_default_class_icon_update(overlay->ovl, NULL);