forked from enlightenment/efl
elementary: elm_map use now image proxy and do some cleaning in theme, big thx to Bluezery !
SVN revision: 77939
This commit is contained in:
parent
ba316374b9
commit
a1661712da
|
@ -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 \
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 4.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.5 KiB |
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue