#include <Elementary.h>
typedef struct _Overlay_Data
{
const char *name;
const char *file;
} Overlay_Data;
Overlay_Data data_argentina = {"Argentina", NULL};
Overlay_Data data_chile = {"Chile", NULL};
Overlay_Data data_sampa = {"São Paulo", NULL};
Overlay_Data data_rio = {"Rio de Janeiro", NULL};
Overlay_Data data_brasilia = {"Brasília", NULL};
const char *data_dir;
static Evas_Object *
_icon_get(Evas_Object *obj, const char *file)
{
evas_object_show(icon);
return icon;
}
static Evas_Object *
_city_icon_get(Evas_Object *obj)
{
char buf[256];
snprintf(buf, sizeof(buf), "%s/images/icon_07.png", data_dir);
return _icon_get(obj, buf);
}
static Evas_Object *
_clas_city_icon_get(Evas_Object *obj)
{
char buf[256];
snprintf(buf, sizeof(buf), "%s/images/icon_05.png", data_dir);
return _icon_get(obj, buf);
}
static Evas_Object *
_country_icon_get(Evas_Object *obj)
{
char buf[256];
snprintf(buf, sizeof(buf), "%s/images/icon_06.png", data_dir);
return _icon_get(obj, buf);
}
static Evas_Object *
_clas_country_icon_get(Evas_Object *obj)
{
char buf[256];
snprintf(buf, sizeof(buf), "%s/images/icon_04.png", data_dir);
return _icon_get(obj, buf);
}
static Evas_Object *
_box_get(Evas_Object *obj, Overlay_Data *data)
{
Evas_Object *bx, *img, *label;
evas_object_show(bx);
img = evas_object_image_add(evas_object_evas_get(obj));
evas_object_image_file_set(img, data->file, NULL);
evas_object_image_filled_set(img, EINA_TRUE);
evas_object_size_hint_min_set(img, 64, 64);
evas_object_show(img);
elm_object_text_set(label, data->name);
evas_object_show(label);
return bx;
}
static void
_overlay_cb(void *data, Evas_Object *map, void *ev)
{
printf("Overlay clicked\n");
Evas_Object *bx;
}
static void
_bt_zoom_in(void *data, Evas_Object *obj, void *ev)
{
Evas_Object *map = data;
int zoom;
}
static void
_bt_zoom_out(void *data, Evas_Object *obj, void *ev)
{
Evas_Object *map = data;
int zoom;
}
static void
_bt_zoom_fit(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *map = data;
}
static void
_bt_zoom_fill(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *map = data;
}
static Eina_Bool
_nasty_hack(void *data)
{
Evas_Object *o = data;
Evas *e = evas_object_evas_get(o);
evas_smart_objects_calculate(e);
return ECORE_CALLBACK_CANCEL;
}
EAPI_MAIN int
elm_main(int argc, char **argv)
{
Evas_Object *win, *map, *box, *bt;
Eina_List *ovls = NULL;
char buf[255];
snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", "sdf");
data_argentina.file = strdup(buf);
snprintf(buf, sizeof(buf), "%s/images/rock_02.jpg", "sdf");
data_chile.file = strdup(buf);
snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", "sdf");
data_sampa.file = strdup(buf);
snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", "sdf");
data_rio.file = strdup(buf);
snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", "sdf");
data_brasilia.file = strdup(buf);
evas_object_size_hint_weight_set(map, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(map);
evas_object_show(box);
elm_object_text_set(bt, "+");
evas_object_show(bt);
evas_object_smart_callback_add(bt, "clicked", _bt_zoom_in, map);
elm_object_text_set(bt, "-");
evas_object_show(bt);
evas_object_smart_callback_add(bt, "clicked", _bt_zoom_out, map);
elm_object_text_set(bt, "X");
evas_object_show(bt);
evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fit, map);
elm_object_text_set(bt, "#");
evas_object_show(bt);
evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fill, map);
evas_object_smart_callback_add(map, "overlay,clicked", _overlay_cb, NULL);
ovls = eina_list_append(ovls, ovl);
ovls = eina_list_append(ovls, ovl);
ovls = eina_list_append(ovls, ovl);
ovls = eina_list_append(ovls, ovl);
ovls = eina_list_append(ovls, ovl);
evas_object_resize(win, 512, 512);
evas_object_show(win);
ecore_timer_add(1, _nasty_hack, win);
return 0;
}