Elm_Tooltip *tt = data;
tt->content = NULL;
tt->visible_lock = EINA_FALSE;
- _elm_tooltip_hide(tt);
+ if (tt->tooltip) _elm_tooltip_hide(tt);
}
static void
static void
_elm_tooltip_hide(Elm_Tooltip *tt)
{
+ Evas_Object *del;
_elm_tooltip_show_timer_stop(tt);
_elm_tooltip_hide_anim_stop(tt);
_elm_tooltip_reconfigure_job_stop(tt);
evas_object_event_callback_del_full
(tt->eventarea, EVAS_CALLBACK_MOUSE_MOVE, _elm_tooltip_obj_mouse_move_cb, tt);
- if (tt->tt_win) evas_object_del(tt->tt_win);
- else evas_object_del(tt->tooltip);
+ del = tt->tt_win ?: tt->tooltip;
tt->tt_win = NULL;
tt->tt_evas = NULL;
tt->tooltip = NULL;
+ evas_object_del(del);
}
static void
return label;
}
+static Evas_Object *
+_elm_tooltip_trans_label_create(void *data, Evas_Object *obj __UNUSED__, Evas_Object *tooltip)
+{
+ Evas_Object *label = elm_label_add(tooltip);
+ const char **text = data;
+ if (!label)
+ return NULL;
+ elm_object_style_set(label, "tooltip");
+ elm_object_domain_translatable_text_set(label, text[0], text[1]);
+ return label;
+}
+
static void
_elm_tooltip_label_del_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
}
static void
+_elm_tooltip_trans_label_del_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+ const char **text = data;
+ eina_stringshare_del(text[0]);
+ eina_stringshare_del(text[1]);
+ free(text);
+}
+
+static void
_elm_tooltip_data_clean(Elm_Tooltip *tt)
{
if (tt->del_cb) tt->del_cb((void *)tt->data, tt->owner, NULL);
}
/**
+ */
+EAPI void
+elm_object_tooltip_domain_translatable_text_set(Evas_Object *obj, const char *domain, const char *text)
+{
+ const char **data;
+ EINA_SAFETY_ON_NULL_RETURN(obj);
+ EINA_SAFETY_ON_NULL_RETURN(text);
+
+ data = malloc(2 * sizeof(char *));
+ if (!data) return;
+ data[0] = eina_stringshare_add(domain);
+ data[1] = eina_stringshare_add(text);
+ elm_object_tooltip_content_cb_set
+ (obj, _elm_tooltip_trans_label_create, data,
+ _elm_tooltip_trans_label_del_cb);
+}
+
+/**
* Set the content to be shown in the tooltip object
*
* Setup the tooltip to object. The object can have only one tooltip,