parent
6792e2db2c
commit
d32e700fe3
|
@ -28,6 +28,7 @@ static void
|
|||
_del_hook(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
if (wd->label) eina_stringshare_del(wd->label);
|
||||
if (wd->info) eina_stringshare_del(wd->info);
|
||||
free(wd);
|
||||
|
@ -37,6 +38,7 @@ static void
|
|||
_theme_hook(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
_elm_theme_set(wd->bbl, "bubble", "base", elm_widget_style_get(obj));
|
||||
edje_object_part_text_set(wd->bbl, "elm.text", wd->label);
|
||||
edje_object_part_text_set(wd->bbl, "elm.info", wd->info);
|
||||
|
@ -49,7 +51,7 @@ _sizing_eval(Evas_Object *obj)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
|
||||
|
||||
if (!wd) return;
|
||||
edje_object_size_min_calc(wd->bbl, &minw, &minh);
|
||||
evas_object_size_hint_min_set(obj, minw, minh);
|
||||
evas_object_size_hint_max_set(obj, maxw, maxh);
|
||||
|
@ -59,6 +61,7 @@ static void
|
|||
_changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
_sizing_eval(data);
|
||||
}
|
||||
|
||||
|
@ -67,7 +70,7 @@ _sub_del(void *data, Evas_Object *obj, void *event_info)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Object *sub = event_info;
|
||||
|
||||
if (!wd) return;
|
||||
evas_object_event_callback_del_full(sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
_changed_size_hints, obj);
|
||||
if (sub == wd->content) wd->content = NULL;
|
||||
|
@ -128,6 +131,7 @@ elm_bubble_label_set(Evas_Object *obj, const char *label)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
if (wd->label) eina_stringshare_del(wd->label);
|
||||
if (label) wd->label = eina_stringshare_add(label);
|
||||
else wd->label = NULL;
|
||||
|
@ -138,7 +142,7 @@ elm_bubble_label_set(Evas_Object *obj, const char *label)
|
|||
EAPI const char*
|
||||
elm_bubble_label_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return NULL;
|
||||
return wd->label;
|
||||
|
@ -162,6 +166,7 @@ elm_bubble_info_set(Evas_Object *obj, const char *info)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
if (wd->info) eina_stringshare_del(wd->info);
|
||||
if (info) wd->info = eina_stringshare_add(info);
|
||||
else wd->info = NULL;
|
||||
|
@ -185,6 +190,7 @@ elm_bubble_content_set(Evas_Object *obj, Evas_Object *content)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
if ((wd->content != content) && (wd->content))
|
||||
elm_widget_sub_object_del(obj, wd->content);
|
||||
wd->content = content;
|
||||
|
@ -214,6 +220,7 @@ elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
if ((wd->icon != icon) && (wd->icon))
|
||||
elm_widget_sub_object_del(obj, wd->icon);
|
||||
wd->icon = icon;
|
||||
|
@ -230,7 +237,7 @@ elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon)
|
|||
EAPI Evas_Object *
|
||||
elm_bubble_icon_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return NULL;
|
||||
return wd->icon;
|
||||
|
@ -251,6 +258,7 @@ elm_bubble_corner_set(Evas_Object *obj, const char *corner)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
_elm_theme_set(wd->bbl, "bubble", corner, elm_widget_style_get(obj));
|
||||
if (wd->icon)
|
||||
edje_object_part_swallow(wd->bbl, "elm.swallow.icon", wd->icon);
|
||||
|
|
|
@ -43,6 +43,7 @@ static void
|
|||
_del_hook(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
int i;
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
|
@ -57,6 +58,7 @@ static void
|
|||
_theme_hook(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
wd->cur.am_pm = !wd->cur.am_pm; /* hack - force update */
|
||||
_time_update(obj);
|
||||
}
|
||||
|
@ -69,7 +71,7 @@ _ticker(void *data)
|
|||
struct timeval timev;
|
||||
struct tm *tm;
|
||||
time_t tt;
|
||||
|
||||
if (!wd) return 0;
|
||||
gettimeofday(&timev, NULL);
|
||||
t = ((double)(1000000 - timev.tv_usec)) / 1000000.0;
|
||||
wd->ticker = ecore_timer_add(t, _ticker, data);
|
||||
|
@ -93,7 +95,7 @@ static void
|
|||
_signal_clock_val_up(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
if (!wd->edit) return;
|
||||
if (obj == wd->digit[0])
|
||||
{
|
||||
|
@ -138,7 +140,7 @@ static void
|
|||
_signal_clock_val_down(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
if (!wd->edit) return;
|
||||
if (obj == wd->digit[0])
|
||||
{
|
||||
|
@ -186,7 +188,7 @@ _time_update(Evas_Object *obj)
|
|||
Edje_Message_Int msg;
|
||||
int ampm = 0;
|
||||
const char *style = elm_widget_style_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
if ((wd->cur.seconds != wd->seconds) || (wd->cur.am_pm != wd->am_pm) ||
|
||||
(wd->cur.edit != wd->edit))
|
||||
{
|
||||
|
@ -356,8 +358,6 @@ _time_update(Evas_Object *obj)
|
|||
if (wd->hrs >= 12) ampm = 1;
|
||||
if (ampm != wd->cur.ampm)
|
||||
{
|
||||
int d1, d2, dc1, dc2;
|
||||
|
||||
if (wd->cur.ampm != ampm)
|
||||
{
|
||||
msg.val = ampm;
|
||||
|
@ -428,6 +428,7 @@ elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
wd->hrs = hrs;
|
||||
wd->min = min;
|
||||
wd->sec = sec;
|
||||
|
@ -455,6 +456,7 @@ elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
if (hrs) *hrs = wd->hrs;
|
||||
if (min) *min = wd->min;
|
||||
if (sec) *sec = wd->sec;
|
||||
|
@ -475,6 +477,7 @@ elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
wd->edit = edit;
|
||||
_time_update(obj);
|
||||
}
|
||||
|
@ -498,6 +501,7 @@ elm_clock_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
wd->am_pm = am_pm;
|
||||
_time_update(obj);
|
||||
}
|
||||
|
@ -519,6 +523,7 @@ elm_clock_show_seconds_set(Evas_Object *obj, Eina_Bool seconds)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
wd->seconds = seconds;
|
||||
_time_update(obj);
|
||||
}
|
||||
|
|
|
@ -95,7 +95,6 @@ static void
|
|||
_del_hook(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Eina_List *l;
|
||||
Elm_Entry_Context_Menu_Item *it;
|
||||
|
||||
if ((wd->api) && (wd->api->obj_unhook)) wd->api->obj_unhook(obj); // module - unhook
|
||||
|
@ -154,9 +153,9 @@ static void
|
|||
_elm_win_recalc_job(void *data)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
|
||||
Evas_Coord minw = -1, minh = -1, maxh = -1;
|
||||
Evas_Coord resw, resh, minminw;
|
||||
|
||||
if (!wd) return;
|
||||
wd->deferred_recalc_job = NULL;
|
||||
evas_object_geometry_get(wd->ent, NULL, NULL, &resw, &resh);
|
||||
resh = 0;
|
||||
|
@ -178,8 +177,8 @@ _sizing_eval(Evas_Object *obj)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
|
||||
Evas_Coord resw, resh, minminw;
|
||||
|
||||
Evas_Coord resw, resh;
|
||||
if (!wd) return;
|
||||
if (wd->linewrap || wd->char_linewrap)
|
||||
{
|
||||
evas_object_geometry_get(wd->ent, NULL, NULL, &resw, &resh);
|
||||
|
@ -205,7 +204,7 @@ _on_focus_hook(void *data, Evas_Object *obj)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Object *top = elm_widget_top_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
if (!wd->editable) return;
|
||||
if (elm_widget_focus_get(obj))
|
||||
{
|
||||
|
@ -226,7 +225,7 @@ _hoversel_position(Evas_Object *obj)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord cx, cy, cw, ch, x, y, mw, mh;
|
||||
|
||||
if (!wd) return;
|
||||
evas_object_geometry_get(wd->ent, &x, &y, NULL, NULL);
|
||||
edje_object_part_text_cursor_geometry_get(wd->ent, "elm.text",
|
||||
&cx, &cy, &cw, &ch);
|
||||
|
@ -257,7 +256,7 @@ static void
|
|||
_resize(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->linewrap || wd->char_linewrap)
|
||||
{
|
||||
_sizing_eval(data);
|
||||
|
@ -271,7 +270,7 @@ static void
|
|||
_dismissed(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->hoversel) evas_object_hide(wd->hoversel);
|
||||
if (wd->selmode)
|
||||
edje_object_part_text_select_allow_set(wd->ent, "elm.text", 1);
|
||||
|
@ -282,7 +281,7 @@ static void
|
|||
_select(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
wd->selmode = EINA_TRUE;
|
||||
edje_object_part_text_select_none(wd->ent, "elm.text");
|
||||
edje_object_part_text_select_allow_set(wd->ent, "elm.text", 1);
|
||||
|
@ -294,7 +293,7 @@ static void
|
|||
_paste(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
evas_object_smart_callback_call(data, "selection,paste", NULL);
|
||||
if (wd->sel_notify_handler)
|
||||
{
|
||||
|
@ -318,7 +317,7 @@ _store_selection(Evas_Object *obj)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const char *sel = edje_object_part_text_selection_get(wd->ent, "elm.text");
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->cut_sel) eina_stringshare_del(wd->cut_sel);
|
||||
wd->cut_sel = eina_stringshare_add(sel);
|
||||
}
|
||||
|
@ -341,7 +340,7 @@ static void
|
|||
_copy(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
wd->selmode = EINA_FALSE;
|
||||
edje_object_part_text_select_allow_set(wd->ent, "elm.text", 0);
|
||||
edje_object_signal_emit(wd->ent, "elm,state,select,off", "elm");
|
||||
|
@ -354,7 +353,7 @@ static void
|
|||
_cancel(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
wd->selmode = EINA_FALSE;
|
||||
edje_object_part_text_select_allow_set(wd->ent, "elm.text", 0);
|
||||
edje_object_signal_emit(wd->ent, "elm,state,select,off", "elm");
|
||||
|
@ -367,7 +366,6 @@ _item_clicked(void *data, Evas_Object *obj, void *event_info)
|
|||
{
|
||||
Elm_Entry_Context_Menu_Item *it = data;
|
||||
Evas_Object *obj2 = it->obj;
|
||||
|
||||
if (it->func) it->func(it->data, obj2, NULL);
|
||||
}
|
||||
|
||||
|
@ -378,7 +376,7 @@ _long_press(void *data)
|
|||
Evas_Object *top;
|
||||
const Eina_List *l;
|
||||
const Elm_Entry_Context_Menu_Item *it;
|
||||
|
||||
if (!wd) return 0;
|
||||
if ((wd->api) && (wd->api->obj_longpress))
|
||||
{
|
||||
wd->api->obj_longpress(data);
|
||||
|
@ -449,7 +447,7 @@ _mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Evas_Event_Mouse_Down *ev = event_info;
|
||||
|
||||
if (!wd) return;
|
||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
|
||||
if (ev->button != 1) return;
|
||||
// if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
|
||||
|
@ -464,7 +462,7 @@ _mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Evas_Event_Mouse_Up *ev = event_info;
|
||||
|
||||
if (!wd) return;
|
||||
if (ev->button != 1) return;
|
||||
if (wd->longpress_timer)
|
||||
{
|
||||
|
@ -478,7 +476,7 @@ _mouse_move(void *data, Evas *evas, Evas_Object *obj, void *event_info)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Evas_Event_Mouse_Move *ev = event_info;
|
||||
|
||||
if (!wd) return;
|
||||
if (!wd->selmode)
|
||||
{
|
||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
|
||||
|
@ -528,7 +526,7 @@ static const char *
|
|||
_getbase(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return "base";
|
||||
if (wd->editable)
|
||||
{
|
||||
if (wd->password) return "base-password";
|
||||
|
@ -602,7 +600,7 @@ _mkup_to_text(const char *mkup)
|
|||
{
|
||||
if (tag_end)
|
||||
{
|
||||
char *ttag, *match;
|
||||
char *ttag;
|
||||
|
||||
ttag = malloc(tag_end - tag_start);
|
||||
if (ttag)
|
||||
|
@ -717,7 +715,7 @@ _text_to_mkup(const char *text)
|
|||
for (;;)
|
||||
{
|
||||
pos = pos2;
|
||||
pos2 = evas_string_char_next_get((unsigned char *)(text), pos2, &ch);
|
||||
pos2 = evas_string_char_next_get((char *)(text), pos2, &ch);
|
||||
if ((ch <= 0) || (pos2 <= 0)) break;
|
||||
if (ch == '\n')
|
||||
str = _str_append(str, "<br>", &str_len, &str_alloc);
|
||||
|
@ -745,7 +743,7 @@ static void
|
|||
_signal_entry_changed(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
wd->changed = EINA_TRUE;
|
||||
_sizing_eval(data);
|
||||
if (wd->stripped) eina_stringshare_del(wd->stripped);
|
||||
|
@ -759,7 +757,7 @@ _signal_selection_start(void *data, Evas_Object *obj, const char *emission, cons
|
|||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
const Eina_List *l;
|
||||
Evas_Object *entry;
|
||||
|
||||
if (!wd) return;
|
||||
EINA_LIST_FOREACH(entries, l, entry)
|
||||
{
|
||||
if (entry != data) elm_entry_select_none(entry);
|
||||
|
@ -789,7 +787,7 @@ static void
|
|||
_signal_selection_changed(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
wd->have_selection = EINA_TRUE;
|
||||
evas_object_smart_callback_call(data, "selection,changed", NULL);
|
||||
if (wd->sel_notify_handler)
|
||||
|
@ -815,7 +813,7 @@ static void
|
|||
_signal_selection_cleared(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
if (!wd->have_selection) return;
|
||||
wd->have_selection = EINA_FALSE;
|
||||
evas_object_smart_callback_call(data, "selection,cleared", NULL);
|
||||
|
@ -860,7 +858,7 @@ static void
|
|||
_signal_entry_paste_request(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
evas_object_smart_callback_call(data, "selection,paste", NULL);
|
||||
if (wd->sel_notify_handler)
|
||||
{
|
||||
|
@ -882,7 +880,7 @@ static void
|
|||
_signal_entry_copy_notify(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
evas_object_smart_callback_call(data, "selection,copy", NULL);
|
||||
}
|
||||
|
||||
|
@ -891,7 +889,7 @@ _signal_entry_cut_notify(void *data, Evas_Object *obj, const char *emission, con
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
char *txt;
|
||||
|
||||
if (!wd) return;
|
||||
evas_object_smart_callback_call(data, "selection,cut", NULL);
|
||||
if (wd->cut_sel) eina_stringshare_del(wd->cut_sel);
|
||||
wd->cut_sel = NULL;
|
||||
|
@ -911,7 +909,7 @@ _signal_cursor_changed(void *data, Evas_Object *obj, const char *emission, const
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Evas_Coord cx, cy, cw, ch;
|
||||
|
||||
if (!wd) return;
|
||||
evas_object_smart_callback_call(data, "cursor,changed", NULL);
|
||||
edje_object_part_text_cursor_geometry_get(wd->ent, "elm.text",
|
||||
&cx, &cy, &cw, &ch);
|
||||
|
@ -931,6 +929,7 @@ static void
|
|||
_signal_anchor_down(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -938,9 +937,8 @@ _signal_anchor_up(void *data, Evas_Object *obj, const char *emission, const char
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Elm_Entry_Anchor_Info ei;
|
||||
char *buf, *buf2, *p, *p2, *n;
|
||||
int buflen;
|
||||
|
||||
char *buf2, *p, *p2, *n;
|
||||
if (!wd) return;
|
||||
p = strrchr(emission, ',');
|
||||
if (p)
|
||||
{
|
||||
|
@ -992,24 +990,28 @@ static void
|
|||
_signal_anchor_move(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
}
|
||||
|
||||
static void
|
||||
_signal_anchor_in(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
}
|
||||
|
||||
static void
|
||||
_signal_anchor_out(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
}
|
||||
|
||||
static void
|
||||
_signal_key_enter(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
evas_object_smart_callback_call(data, "activated", NULL);
|
||||
}
|
||||
|
||||
|
@ -1017,6 +1019,7 @@ static void
|
|||
_signal_mouse_down(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
evas_object_smart_callback_call(data, "press", NULL);
|
||||
}
|
||||
|
||||
|
@ -1024,6 +1027,7 @@ static void
|
|||
_signal_mouse_up(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
evas_object_smart_callback_call(data, "clicked", NULL);
|
||||
}
|
||||
|
||||
|
@ -1031,6 +1035,7 @@ static void
|
|||
_signal_mouse_double(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
evas_object_smart_callback_call(data, "clicked,double", NULL);
|
||||
}
|
||||
|
||||
|
@ -1040,7 +1045,7 @@ _event_selection_notify(void *data, int type, void *event)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Ecore_X_Event_Selection_Notify *ev = event;
|
||||
|
||||
if (!wd) return 1;
|
||||
if (!wd->selection_asked) return 1;
|
||||
if ((ev->selection == ECORE_X_SELECTION_CLIPBOARD) ||
|
||||
(ev->selection == ECORE_X_SELECTION_PRIMARY))
|
||||
|
@ -1071,7 +1076,7 @@ _event_selection_clear(void *data, int type, void *event)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Ecore_X_Event_Selection_Clear *ev = event;
|
||||
|
||||
if (!wd) return 1;
|
||||
if (!wd->have_selection) return 1;
|
||||
if ((ev->selection == ECORE_X_SELECTION_CLIPBOARD) ||
|
||||
(ev->selection == ECORE_X_SELECTION_PRIMARY))
|
||||
|
@ -1186,7 +1191,7 @@ elm_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line)
|
|||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const char *t;
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->single_line == single_line) return;
|
||||
wd->single_line = single_line;
|
||||
wd->linewrap = EINA_FALSE;
|
||||
|
@ -1204,7 +1209,7 @@ elm_entry_password_set(Evas_Object *obj, Eina_Bool password)
|
|||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const char *t;
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->password == password) return;
|
||||
wd->password = password;
|
||||
wd->single_line = EINA_TRUE;
|
||||
|
@ -1222,7 +1227,7 @@ elm_entry_entry_set(Evas_Object *obj, const char *entry)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
if (!entry) entry = "<br>";
|
||||
edje_object_part_text_set(wd->ent, "elm.text", entry);
|
||||
wd->changed = EINA_TRUE;
|
||||
|
@ -1232,11 +1237,10 @@ elm_entry_entry_set(Evas_Object *obj, const char *entry)
|
|||
EAPI const char *
|
||||
elm_entry_entry_get(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const char *text, *s = NULL;
|
||||
size_t len;
|
||||
|
||||
if (!wd) return NULL;
|
||||
// Strip ending <br> that is added by the textblock
|
||||
// need to check if <br> is present? seems it is always there
|
||||
|
@ -1263,9 +1267,8 @@ elm_entry_entry_get(const Evas_Object *obj)
|
|||
EAPI const char *
|
||||
elm_entry_selection_get(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return NULL;
|
||||
return edje_object_part_text_selection_get(wd->ent, "elm.text");
|
||||
}
|
||||
|
@ -1275,7 +1278,7 @@ elm_entry_entry_insert(Evas_Object *obj, const char *entry)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
edje_object_part_text_insert(wd->ent, "elm.text", entry);
|
||||
wd->changed = EINA_TRUE;
|
||||
_sizing_eval(obj);
|
||||
|
@ -1287,7 +1290,7 @@ elm_entry_line_wrap_set(Evas_Object *obj, Eina_Bool wrap)
|
|||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const char *t;
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->linewrap == wrap) return;
|
||||
wd->linewrap = wrap;
|
||||
if(wd->linewrap)
|
||||
|
@ -1305,7 +1308,7 @@ elm_entry_line_char_wrap_set(Evas_Object *obj, Eina_Bool wrap)
|
|||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const char *t;
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->char_linewrap == wrap) return;
|
||||
wd->char_linewrap = wrap;
|
||||
if(wd->char_linewrap)
|
||||
|
@ -1323,7 +1326,7 @@ elm_entry_editable_set(Evas_Object *obj, Eina_Bool editable)
|
|||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const char *t;
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->editable == editable) return;
|
||||
wd->editable = editable;
|
||||
t = eina_stringshare_add(elm_entry_entry_get(obj));
|
||||
|
@ -1338,7 +1341,7 @@ elm_entry_select_none(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->selmode)
|
||||
{
|
||||
wd->selmode = EINA_FALSE;
|
||||
|
@ -1354,7 +1357,7 @@ elm_entry_select_all(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->selmode)
|
||||
{
|
||||
wd->selmode = EINA_FALSE;
|
||||
|
@ -1368,32 +1371,36 @@ elm_entry_select_all(Evas_Object *obj)
|
|||
EAPI Eina_Bool
|
||||
elm_entry_cursor_next(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return EINA_FALSE;
|
||||
return edje_object_part_text_cursor_next(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_entry_cursor_prev(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return EINA_FALSE;
|
||||
return edje_object_part_text_cursor_prev(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_entry_cursor_up(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return EINA_FALSE;
|
||||
return edje_object_part_text_cursor_up(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_entry_cursor_down(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return EINA_FALSE;
|
||||
return edje_object_part_text_cursor_down(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
|
@ -1402,6 +1409,7 @@ elm_entry_cursor_begin_set(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
edje_object_part_text_cursor_begin_set(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
|
@ -1410,6 +1418,7 @@ elm_entry_cursor_end_set(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
edje_object_part_text_cursor_end_set(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
|
@ -1418,6 +1427,7 @@ elm_entry_cursor_line_begin_set(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
edje_object_part_text_cursor_line_begin_set(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
|
@ -1426,6 +1436,7 @@ elm_entry_cursor_line_end_set(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
edje_object_part_text_cursor_line_end_set(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
|
@ -1434,6 +1445,7 @@ elm_entry_cursor_selection_begin(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
edje_object_part_text_select_all(wd->ent, "elm.text");
|
||||
edje_object_part_text_cursor_copy(wd->ent, "elm.text", EDJE_CURSOR_MAIN, EDJE_CURSOR_SELECTION_BEGIN);
|
||||
edje_object_part_text_cursor_copy(wd->ent, "elm.text", EDJE_CURSOR_MAIN, EDJE_CURSOR_SELECTION_END);
|
||||
|
@ -1444,30 +1456,34 @@ elm_entry_cursor_selection_end(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
edje_object_part_text_cursor_copy(wd->ent, "elm.text", EDJE_CURSOR_MAIN, EDJE_CURSOR_SELECTION_END);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_entry_cursor_is_format_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return EINA_FALSE;
|
||||
return edje_object_part_text_cursor_is_format_get(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_entry_cursor_is_visible_format_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return EINA_FALSE;
|
||||
return edje_object_part_text_cursor_is_visible_format_get(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
EAPI const char *
|
||||
elm_entry_cursor_content_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return NULL;
|
||||
return edje_object_part_text_cursor_content_get(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
|
||||
}
|
||||
|
||||
|
@ -1476,6 +1492,7 @@ elm_entry_selection_cut(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
_cut(obj, NULL, NULL);
|
||||
}
|
||||
|
||||
|
@ -1484,6 +1501,7 @@ elm_entry_selection_copy(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
_copy(obj, NULL, NULL);
|
||||
}
|
||||
|
||||
|
@ -1492,6 +1510,7 @@ elm_entry_selection_paste(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
_paste(obj, NULL, NULL);
|
||||
}
|
||||
|
||||
|
@ -1500,9 +1519,7 @@ elm_entry_context_menu_clear(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Eina_List *l;
|
||||
Elm_Entry_Context_Menu_Item *it;
|
||||
|
||||
if (!wd) return;
|
||||
EINA_LIST_FREE(wd->items, it)
|
||||
{
|
||||
|
@ -1519,7 +1536,6 @@ elm_entry_context_menu_item_add(Evas_Object *obj, const char *label, const char
|
|||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Elm_Entry_Context_Menu_Item *it;
|
||||
|
||||
if (!wd) return;
|
||||
it = calloc(1, sizeof(Elm_Entry_Context_Menu_Item));
|
||||
if (!it) return;
|
||||
|
@ -1545,7 +1561,7 @@ elm_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled)
|
|||
EAPI Eina_Bool
|
||||
elm_entry_context_menu_disabled_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return EINA_FALSE;
|
||||
return !wd->context_menu;
|
||||
|
|
|
@ -27,6 +27,7 @@ static void
|
|||
_del_hook(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
free(wd);
|
||||
}
|
||||
|
||||
|
@ -34,7 +35,7 @@ static void
|
|||
_theme_hook(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
_elm_theme_set(wd->frm, "frame", "base", elm_widget_style_get(obj));
|
||||
if (wd->content)
|
||||
edje_object_part_swallow(wd->frm, "elm.swallow.content", wd->content);
|
||||
|
@ -47,6 +48,7 @@ _sizing_eval(Evas_Object *obj)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord minw = -1, minh = -1;
|
||||
if (!wd) return;
|
||||
edje_object_size_min_calc(wd->frm, &minw, &minh);
|
||||
evas_object_size_hint_min_set(obj, minw, minh);
|
||||
evas_object_size_hint_max_set(obj, -1, -1);
|
||||
|
@ -58,6 +60,7 @@ _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
// FIXME: why is this needed? how does edje get this unswallowed or
|
||||
// lose its callbacks to edje
|
||||
if (!wd) return;
|
||||
edje_object_part_swallow(wd->frm, "elm.swallow.content", wd->content);
|
||||
_sizing_eval(data);
|
||||
}
|
||||
|
@ -67,7 +70,7 @@ _sub_del(void *data, Evas_Object *obj, void *event_info)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Object *sub = event_info;
|
||||
|
||||
if (!wd) return;
|
||||
if (sub == wd->content)
|
||||
{
|
||||
evas_object_event_callback_del_full(sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
|
@ -125,7 +128,7 @@ elm_frame_label_set(Evas_Object *obj, const char *label)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
edje_object_part_text_set(wd->frm, "elm.text", label);
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
|
@ -139,12 +142,11 @@ elm_frame_label_set(Evas_Object *obj, const char *label)
|
|||
*
|
||||
* @ingroup Frame
|
||||
*/
|
||||
EAPI const char*
|
||||
EAPI const char *
|
||||
elm_frame_label_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if ((!wd) || (!wd->frm)) return NULL;
|
||||
return edje_object_part_text_get(wd->frm, "elm.text");
|
||||
}
|
||||
|
@ -162,7 +164,7 @@ elm_frame_content_set(Evas_Object *obj, Evas_Object *content)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
if ((wd->content != content) && (wd->content))
|
||||
elm_widget_sub_object_del(obj, wd->content);
|
||||
wd->content = content;
|
||||
|
|
|
@ -36,7 +36,7 @@ _del_pre_hook(Evas_Object *obj)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Subinfo *si;
|
||||
|
||||
if (!wd) return;
|
||||
if (evas_object_visible_get(obj))
|
||||
evas_object_smart_callback_call(obj, "clicked", NULL);
|
||||
elm_hover_target_set(obj, NULL);
|
||||
|
@ -57,7 +57,7 @@ static void
|
|||
_del_hook(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
free(wd);
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ static void
|
|||
_theme_hook(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
// FIXME: hover contents doesnt seem to propagate resizes properly
|
||||
_elm_theme_set(wd->cov, "hover", "base", elm_widget_style_get(obj));
|
||||
edje_object_scale_set(wd->cov, elm_widget_scale_get(obj) *
|
||||
|
@ -81,7 +81,7 @@ _sizing_eval(Evas_Object *obj)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord x = 0, y = 0, w = 0, h = 0, x2 = 0, y2 = 0, w2 = 0, h2 = 0;
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->parent) evas_object_geometry_get(wd->parent, &x, &y, &w, &h);
|
||||
if (wd->hov) evas_object_geometry_get(wd->hov, &x2, &y2, &w2, &h2);
|
||||
evas_object_move(wd->cov, x, y);
|
||||
|
@ -98,7 +98,7 @@ _reval_content(Evas_Object *obj)
|
|||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const Eina_List *l;
|
||||
const Subinfo *si;
|
||||
|
||||
if (!wd) return;
|
||||
EINA_LIST_FOREACH(wd->subs, l, si)
|
||||
edje_object_part_swallow(wd->cov, si->swallow, si->obj);
|
||||
}
|
||||
|
@ -110,7 +110,7 @@ _sub_del(void *data, Evas_Object *obj, void *event_info)
|
|||
Evas_Object *sub = event_info;
|
||||
Eina_List *l;
|
||||
Subinfo *si;
|
||||
|
||||
if (!wd) return;
|
||||
EINA_LIST_FOREACH(wd->subs, l, si)
|
||||
{
|
||||
if (si->obj == sub)
|
||||
|
@ -129,7 +129,7 @@ _hov_show_do(Evas_Object *obj)
|
|||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const Eina_List *l;
|
||||
const Subinfo *si;
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->cov)
|
||||
{
|
||||
evas_object_show(wd->cov);
|
||||
|
@ -173,7 +173,7 @@ _hov_hide(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
const Eina_List *l;
|
||||
const Subinfo *si;
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->cov)
|
||||
{
|
||||
edje_object_signal_emit(wd->cov, "elm,action,hide", "elm");
|
||||
|
@ -195,18 +195,16 @@ _hov_hide(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
static void
|
||||
_target_del(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
wd->target = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_signal_dismiss(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
evas_object_hide(data);
|
||||
evas_object_smart_callback_call(data, "clicked", NULL);
|
||||
}
|
||||
|
@ -226,25 +224,21 @@ _parent_resize(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
static void
|
||||
_parent_show(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_parent_hide(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
if (wd) evas_object_hide(wd->cov);
|
||||
}
|
||||
|
||||
static void
|
||||
_parent_del(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
|
||||
if (!wd) return;
|
||||
elm_hover_parent_set(data, NULL);
|
||||
_sizing_eval(data);
|
||||
}
|
||||
|
@ -365,7 +359,7 @@ elm_hover_content_set(Evas_Object *obj, const char *swallow, Evas_Object *conten
|
|||
Subinfo *si;
|
||||
const Eina_List *l;
|
||||
char buf[1024];
|
||||
|
||||
if (!wd) return;
|
||||
snprintf(buf, sizeof(buf), "elm.swallow.slot.%s", swallow);
|
||||
EINA_LIST_FOREACH(wd->subs, l, si)
|
||||
{
|
||||
|
@ -398,11 +392,11 @@ elm_hover_style_set(Evas_Object *obj, const char *style)
|
|||
EAPI const char *
|
||||
elm_hover_best_content_location_get(const Evas_Object *obj, Elm_Hover_Axis pref_axis)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) "left";
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord x = 0, y = 0, w = 0, h = 0, x2 = 0, y2 = 0, w2 = 0, h2 = 0;
|
||||
Evas_Coord spc_l, spc_r, spc_t, spc_b;
|
||||
|
||||
if (!wd) return "left";
|
||||
if (wd->parent) evas_object_geometry_get(wd->parent, &x, &y, &w, &h);
|
||||
if (wd->target) evas_object_geometry_get(wd->target, &x2, &y2, &w2, &h2);
|
||||
spc_l = x2 - x;
|
||||
|
|
|
@ -36,10 +36,9 @@ static void _sub_del(void *data, Evas_Object *obj, void *event_info);
|
|||
static void
|
||||
_del_hook(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Subinfo *si;
|
||||
|
||||
if (!wd) return;
|
||||
EINA_LIST_FREE(wd->subs, si)
|
||||
{
|
||||
eina_stringshare_del(si->swallow);
|
||||
|
@ -51,9 +50,8 @@ _del_hook(Evas_Object *obj)
|
|||
static void
|
||||
_theme_hook(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
edje_object_scale_set(wd->lay, elm_widget_scale_get(obj) *
|
||||
_elm_config->scale);
|
||||
_sizing_eval(obj);
|
||||
|
@ -62,8 +60,8 @@ _theme_hook(Evas_Object *obj)
|
|||
static void
|
||||
_changed_hook(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
if (wd->needs_size_calc)
|
||||
{
|
||||
_sizing_eval(obj);
|
||||
|
@ -74,10 +72,9 @@ _changed_hook(Evas_Object *obj)
|
|||
static void
|
||||
_sizing_eval(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord minw = -1, minh = -1;
|
||||
|
||||
if (!wd) return;
|
||||
edje_object_size_min_calc(wd->lay, &minw, &minh);
|
||||
evas_object_size_hint_min_set(obj, minw, minh);
|
||||
evas_object_size_hint_max_set(obj, -1, -1);
|
||||
|
@ -86,8 +83,8 @@ _sizing_eval(Evas_Object *obj)
|
|||
static void
|
||||
_request_sizing_eval(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
if (wd->needs_size_calc) return;
|
||||
wd->needs_size_calc = 1;
|
||||
evas_object_smart_changed(obj);
|
||||
|
@ -102,12 +99,11 @@ _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
static void
|
||||
_sub_del(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Object *sub = event_info;
|
||||
Eina_List *l;
|
||||
Subinfo *si;
|
||||
|
||||
if (!wd) return;
|
||||
EINA_LIST_FOREACH(wd->subs, l, si)
|
||||
{
|
||||
if (si->obj == sub)
|
||||
|
@ -181,10 +177,10 @@ elm_layout_add(Evas_Object *parent)
|
|||
EAPI Eina_Bool
|
||||
elm_layout_file_set(Evas_Object *obj, const char *file, const char *group)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return EINA_FALSE;
|
||||
Eina_Bool ret = edje_object_file_set(wd->lay, file, group);
|
||||
|
||||
if (ret) _request_sizing_eval(obj);
|
||||
return ret;
|
||||
}
|
||||
|
@ -204,10 +200,10 @@ elm_layout_file_set(Evas_Object *obj, const char *file, const char *group)
|
|||
EAPI Eina_Bool
|
||||
elm_layout_theme_set(Evas_Object *obj, const char *clas, const char *group, const char *style)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return EINA_FALSE;
|
||||
Eina_Bool ret = _elm_theme_set(wd->lay, clas, group, style);
|
||||
|
||||
if (ret) _request_sizing_eval(obj);
|
||||
return ret;
|
||||
}
|
||||
|
@ -228,7 +224,7 @@ elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *conte
|
|||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Subinfo *si;
|
||||
const Eina_List *l;
|
||||
|
||||
if (!wd) return;
|
||||
EINA_LIST_FOREACH(wd->subs, l, si)
|
||||
{
|
||||
if (!strcmp(swallow, si->swallow))
|
||||
|
@ -272,9 +268,9 @@ elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *conte
|
|||
EAPI Evas_Object *
|
||||
elm_layout_edje_get(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return NULL;
|
||||
return wd->lay;
|
||||
}
|
||||
|
||||
|
@ -294,6 +290,5 @@ EAPI void
|
|||
elm_layout_sizing_eval(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
_request_sizing_eval(obj);
|
||||
}
|
||||
|
|
|
@ -157,38 +157,30 @@ _elm_list_unwalk(Widget_Data *wd)
|
|||
static void
|
||||
_del_hook(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Elm_List_Item *it;
|
||||
Eina_List *n;
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->walking != 0)
|
||||
fprintf(stderr, "ERROR: list deleted while walking.\n");
|
||||
|
||||
_elm_list_walk(wd);
|
||||
|
||||
EINA_LIST_FOREACH(wd->items, n, it)
|
||||
_elm_list_item_call_del_cb(it);
|
||||
|
||||
EINA_LIST_FOREACH(wd->items, n, it) _elm_list_item_call_del_cb(it);
|
||||
_elm_list_unwalk(wd);
|
||||
if (wd->to_delete)
|
||||
fprintf(stderr, "ERROR: leaking nodes!\n");
|
||||
|
||||
EINA_LIST_FREE(wd->items, it)
|
||||
_elm_list_item_free(it);
|
||||
if (wd->to_delete) fprintf(stderr, "ERROR: leaking nodes!\n");
|
||||
|
||||
EINA_LIST_FREE(wd->items, it) _elm_list_item_free(it);
|
||||
eina_list_free(wd->selected);
|
||||
|
||||
free(wd);
|
||||
}
|
||||
|
||||
static void
|
||||
_sizing_eval(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
|
||||
|
||||
if (!wd) return;
|
||||
evas_object_size_hint_min_get(wd->scr, &minw, &minh);
|
||||
evas_object_size_hint_max_get(wd->scr, &maxw, &maxh);
|
||||
evas_object_size_hint_min_set(obj, minw, minh);
|
||||
|
@ -198,11 +190,11 @@ _sizing_eval(Evas_Object *obj)
|
|||
static void
|
||||
_theme_hook(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Elm_List_Item *it;
|
||||
Eina_List *n;
|
||||
|
||||
if (!wd) return;
|
||||
elm_smart_scroller_theme_set(wd->scr, "list", "base", elm_widget_style_get(obj));
|
||||
edje_object_scale_set(wd->scr, elm_widget_scale_get(obj) * _elm_config->scale);
|
||||
EINA_LIST_FOREACH(wd->items, n, it)
|
||||
|
@ -216,8 +208,8 @@ _theme_hook(Evas_Object *obj)
|
|||
static void
|
||||
_on_focus_hook(void *data, Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
// if (elm_widget_focus_get(obj))
|
||||
// elm_widget_focus_steal(wd->entry);
|
||||
}
|
||||
|
@ -225,8 +217,8 @@ _on_focus_hook(void *data, Evas_Object *obj)
|
|||
static void
|
||||
_changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
if (!wd) return;
|
||||
// _fix_items(data);
|
||||
// _sizing_eval(data);
|
||||
}
|
||||
|
@ -234,12 +226,12 @@ _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
static void
|
||||
_sub_del(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Object *sub = event_info;
|
||||
const Eina_List *l;
|
||||
Elm_List_Item *it;
|
||||
|
||||
if (!wd) return;
|
||||
EINA_LIST_FOREACH(wd->items, l, it)
|
||||
{
|
||||
if ((sub == it->icon) || (sub == it->end))
|
||||
|
@ -267,6 +259,7 @@ _item_hilight(Elm_List_Item *it)
|
|||
Widget_Data *wd = elm_widget_data_get(it->obj);
|
||||
const char *selectraise;
|
||||
|
||||
if (!wd) return;
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
if (it->hilighted) return;
|
||||
_elm_list_walk(wd);
|
||||
|
@ -284,8 +277,8 @@ static void
|
|||
_item_select(Elm_List_Item *it)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(it->obj);
|
||||
const char *selectraise;
|
||||
|
||||
if (!wd) return;
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
if (it->selected)
|
||||
{
|
||||
|
@ -309,6 +302,7 @@ _item_unselect(Elm_List_Item *it)
|
|||
Widget_Data *wd = elm_widget_data_get(it->obj);
|
||||
const char *stacking, *selectraise;
|
||||
|
||||
if (!wd) return;
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
if (!it->hilighted) return;
|
||||
_elm_list_walk(wd);
|
||||
|
@ -339,8 +333,8 @@ _mouse_move(void *data, Evas *evas, Evas_Object *obj, void *event_info)
|
|||
Widget_Data *wd = elm_widget_data_get(it->obj);
|
||||
Evas_Event_Mouse_Move *ev = event_info;
|
||||
|
||||
if (!wd) return;
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
|
||||
{
|
||||
if (!wd->on_hold)
|
||||
|
@ -362,10 +356,9 @@ _long_press(void *data)
|
|||
Elm_List_Item *it = data;
|
||||
Widget_Data *wd = elm_widget_data_get(it->obj);
|
||||
|
||||
if (!wd) return 0;
|
||||
it->long_timer = NULL;
|
||||
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, 0);
|
||||
|
||||
wd->longpressed = EINA_TRUE;
|
||||
evas_object_smart_callback_call(it->obj, "longpressed", it);
|
||||
return 0;
|
||||
|
@ -378,8 +371,8 @@ _mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info)
|
|||
Widget_Data *wd = elm_widget_data_get(it->obj);
|
||||
Evas_Event_Mouse_Down *ev = event_info;
|
||||
|
||||
if (!wd) return;
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
if (ev->button != 1) return;
|
||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) wd->on_hold = EINA_TRUE;
|
||||
else wd->on_hold = EINA_FALSE;
|
||||
|
@ -400,8 +393,8 @@ _mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info)
|
|||
Widget_Data *wd = elm_widget_data_get(it->obj);
|
||||
Evas_Event_Mouse_Up *ev = event_info;
|
||||
|
||||
if (!wd) return;
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
if (ev->button != 1) return;
|
||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) wd->on_hold = EINA_TRUE;
|
||||
else wd->on_hold = EINA_FALSE;
|
||||
|
@ -461,10 +454,10 @@ _mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info)
|
|||
static Elm_List_Item *
|
||||
_item_new(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *end, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Elm_List_Item *it;
|
||||
|
||||
if (!wd) return NULL;
|
||||
it = calloc(1, sizeof(Elm_List_Item));
|
||||
it->obj = obj;
|
||||
it->label = eina_stringshare_add(label);
|
||||
|
@ -499,7 +492,6 @@ _item_new(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *e
|
|||
static void
|
||||
_fix_items(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const Eina_List *l;
|
||||
Elm_List_Item *it;
|
||||
|
@ -508,6 +500,7 @@ _fix_items(Evas_Object *obj)
|
|||
int i, redo = 0;
|
||||
const char *style = elm_widget_style_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->walking)
|
||||
{
|
||||
wd->fix_pending = EINA_TRUE;
|
||||
|
@ -649,9 +642,7 @@ _fix_items(Evas_Object *obj)
|
|||
static void
|
||||
_hold_on(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
elm_widget_scroll_hold_push(wd->scr);
|
||||
}
|
||||
|
@ -659,9 +650,7 @@ _hold_on(void *data, Evas_Object *obj, void *event_info)
|
|||
static void
|
||||
_hold_off(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
elm_widget_scroll_hold_pop(wd->scr);
|
||||
}
|
||||
|
@ -669,9 +658,7 @@ _hold_off(void *data, Evas_Object *obj, void *event_info)
|
|||
static void
|
||||
_freeze_on(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
elm_widget_scroll_hold_push(wd->scr);
|
||||
}
|
||||
|
@ -679,9 +666,7 @@ _freeze_on(void *data, Evas_Object *obj, void *event_info)
|
|||
static void
|
||||
_freeze_off(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
elm_widget_scroll_hold_pop(wd->scr);
|
||||
}
|
||||
|
@ -732,7 +717,7 @@ elm_list_add(Evas_Object *parent)
|
|||
EAPI Elm_List_Item *
|
||||
elm_list_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *end, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Elm_List_Item *it = _item_new(obj, label, icon, end, func, data);
|
||||
|
||||
|
@ -745,7 +730,7 @@ elm_list_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Eva
|
|||
EAPI Elm_List_Item *
|
||||
elm_list_item_prepend(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *end, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Elm_List_Item *it = _item_new(obj, label, icon, end, func, data);
|
||||
|
||||
|
@ -764,8 +749,9 @@ elm_list_item_insert_before(Evas_Object *obj, Elm_List_Item *before, const char
|
|||
if ((!before) || (!before->node)) return NULL;
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(before, NULL);
|
||||
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
wd = elm_widget_data_get(obj);
|
||||
if (!wd) return NULL;
|
||||
it = _item_new(obj, label, icon, end, func, data);
|
||||
wd->items = eina_list_prepend_relative_list(wd->items, it, before->node);
|
||||
it->node = before->node->prev;
|
||||
|
@ -782,8 +768,9 @@ elm_list_item_insert_after(Evas_Object *obj, Elm_List_Item *after, const char *l
|
|||
if ((!after) || (!after->node)) return NULL;
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(after, NULL);
|
||||
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
wd = elm_widget_data_get(obj);
|
||||
if (!wd) return NULL;
|
||||
it = _item_new(obj, label, icon, end, func, data);
|
||||
wd->items = eina_list_append_relative_list(wd->items, it, after->node);
|
||||
it->node = after->node->next;
|
||||
|
@ -798,8 +785,8 @@ elm_list_clear(Evas_Object *obj)
|
|||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Elm_List_Item *it;
|
||||
|
||||
if (!wd->items)
|
||||
return;
|
||||
if (!wd) return;
|
||||
if (!wd->items) return;
|
||||
|
||||
eina_list_free(wd->selected);
|
||||
wd->selected = NULL;
|
||||
|
@ -810,8 +797,7 @@ elm_list_clear(Evas_Object *obj)
|
|||
Elm_List_Item *it;
|
||||
EINA_LIST_FOREACH(wd->items, n, it)
|
||||
{
|
||||
if (it->deleted)
|
||||
continue;
|
||||
if (it->deleted) continue;
|
||||
it->deleted = EINA_TRUE;
|
||||
wd->to_delete = eina_list_append(wd->to_delete, it);
|
||||
}
|
||||
|
@ -837,7 +823,7 @@ elm_list_go(Evas_Object *obj)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
_fix_items(obj);
|
||||
}
|
||||
|
||||
|
@ -846,16 +832,16 @@ elm_list_multi_select_set(Evas_Object *obj, Eina_Bool multi)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
wd->multi = multi;
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_list_multi_select_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return EINA_FALSE;
|
||||
return wd->multi;
|
||||
}
|
||||
|
||||
|
@ -864,7 +850,7 @@ elm_list_horizontal_mode_set(Evas_Object *obj, Elm_List_Mode mode)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
if (wd->mode == mode) return;
|
||||
wd->mode = mode;
|
||||
if (wd->mode == ELM_LIST_LIMIT)
|
||||
|
@ -876,9 +862,9 @@ elm_list_horizontal_mode_set(Evas_Object *obj, Elm_List_Mode mode)
|
|||
EAPI Elm_List_Mode
|
||||
elm_list_horizontal_mode_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) ELM_LIST_SCROLL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return ELM_LIST_SCROLL;
|
||||
return wd->mode;
|
||||
}
|
||||
|
||||
|
@ -887,25 +873,25 @@ elm_list_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
wd->always_select = always_select;
|
||||
}
|
||||
|
||||
EAPI const Eina_List *
|
||||
elm_list_items_get(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return NULL;
|
||||
return wd->items;
|
||||
}
|
||||
|
||||
EAPI Elm_List_Item *
|
||||
elm_list_selected_item_get(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return NULL;
|
||||
if (wd->selected) return wd->selected->data;
|
||||
return NULL;
|
||||
}
|
||||
|
@ -913,9 +899,9 @@ elm_list_selected_item_get(const Evas_Object *obj)
|
|||
EAPI const Eina_List *
|
||||
elm_list_selected_items_get(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return NULL;
|
||||
return wd->selected;
|
||||
}
|
||||
|
||||
|
@ -923,9 +909,8 @@ EAPI void
|
|||
elm_list_item_selected_set(Elm_List_Item *it, Eina_Bool selected)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(it->obj);
|
||||
|
||||
if (!wd) return;
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
selected = !!selected;
|
||||
if (it->selected == selected) return;
|
||||
|
||||
|
@ -950,8 +935,7 @@ elm_list_item_selected_set(Elm_List_Item *it, Eina_Bool selected)
|
|||
EAPI Eina_Bool
|
||||
elm_list_item_selected_get(Elm_List_Item *it)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, EINA_FALSE);
|
||||
return it->selected;
|
||||
}
|
||||
|
||||
|
@ -963,7 +947,6 @@ elm_list_item_show(Elm_List_Item *it)
|
|||
Evas_Coord x, y, w, h;
|
||||
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
evas_object_geometry_get(wd->box, &bx, &by, &bw, &bh);
|
||||
evas_object_geometry_get(it->base, &x, &y, &w, &h);
|
||||
x -= bx;
|
||||
|
@ -975,7 +958,7 @@ EAPI void
|
|||
elm_list_item_del(Elm_List_Item *it)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(it->obj);
|
||||
|
||||
if (!wd) return;
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
if (it->selected) _item_unselect(it);
|
||||
|
@ -1010,7 +993,6 @@ EAPI void
|
|||
elm_list_item_del_cb_set(Elm_List_Item *it, void (*func)(void *data, Evas_Object *obj, void *event_info))
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
it->del_cb = func;
|
||||
}
|
||||
|
||||
|
@ -1018,7 +1000,6 @@ EAPI void *
|
|||
elm_list_item_data_get(const Elm_List_Item *it)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL);
|
||||
|
||||
return (void *)it->data;
|
||||
}
|
||||
|
||||
|
@ -1026,7 +1007,6 @@ EAPI Evas_Object *
|
|||
elm_list_item_icon_get(const Elm_List_Item *it)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL);
|
||||
|
||||
if (it->dummy_icon) return NULL;
|
||||
return it->icon;
|
||||
}
|
||||
|
@ -1035,7 +1015,6 @@ EAPI void
|
|||
elm_list_item_icon_set(Elm_List_Item *it, Evas_Object *icon)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
if (it->icon == icon) return;
|
||||
if (it->dummy_icon && !icon) return;
|
||||
if (it->dummy_icon) evas_object_del(it->icon);
|
||||
|
@ -1054,7 +1033,6 @@ EAPI Evas_Object *
|
|||
elm_list_item_end_get(const Elm_List_Item *it)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL);
|
||||
|
||||
if (it->dummy_end) return NULL;
|
||||
return it->end;
|
||||
}
|
||||
|
@ -1063,7 +1041,6 @@ EAPI void
|
|||
elm_list_item_end_set(Elm_List_Item *it, Evas_Object *end)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
if (it->end == end) return;
|
||||
if (it->dummy_end && !end) return;
|
||||
if (it->dummy_end) evas_object_del(it->end);
|
||||
|
@ -1082,7 +1059,6 @@ EAPI Evas_Object *
|
|||
elm_list_item_base_get(const Elm_List_Item *it)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL);
|
||||
|
||||
return it->base;
|
||||
}
|
||||
|
||||
|
@ -1090,7 +1066,6 @@ EAPI const char *
|
|||
elm_list_item_label_get(const Elm_List_Item *it)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL);
|
||||
|
||||
return it->label;
|
||||
}
|
||||
|
||||
|
@ -1098,7 +1073,6 @@ EAPI void
|
|||
elm_list_item_label_set(Elm_List_Item *it, const char *text)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
|
||||
|
||||
if (!eina_stringshare_replace(&it->label, text)) return;
|
||||
if (it->base)
|
||||
edje_object_part_text_set(it->base, "elm.text", it->label);
|
||||
|
@ -1108,22 +1082,16 @@ EAPI Elm_List_Item *
|
|||
elm_list_item_prev(const Elm_List_Item *it)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL);
|
||||
|
||||
if (it->node->prev)
|
||||
return it->node->prev->data;
|
||||
else
|
||||
return NULL;
|
||||
if (it->node->prev) return it->node->prev->data;
|
||||
else return NULL;
|
||||
}
|
||||
|
||||
EAPI Elm_List_Item *
|
||||
elm_list_item_next(const Elm_List_Item *it)
|
||||
{
|
||||
ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL);
|
||||
|
||||
if (it->node->next)
|
||||
return it->node->next->data;
|
||||
else
|
||||
return NULL;
|
||||
if (it->node->next) return it->node->next->data;
|
||||
else return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1143,6 +1111,7 @@ elm_list_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
elm_smart_scroller_bounce_allow_set(wd->scr, h_bounce, v_bounce);
|
||||
}
|
||||
|
||||
|
@ -1166,5 +1135,6 @@ elm_list_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
elm_scroller_policy_set(wd->scr, policy_h, policy_v);
|
||||
}
|
||||
|
|
|
@ -31,16 +31,16 @@ static void _mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
|||
static void
|
||||
_del_hook(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
free(wd);
|
||||
}
|
||||
|
||||
static void
|
||||
_theme_hook(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
edje_object_scale_set(wd->frm, elm_widget_scale_get(obj) * _elm_config->scale);
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
|
@ -48,10 +48,9 @@ _theme_hook(Evas_Object *obj)
|
|||
static void
|
||||
_sizing_eval(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
|
||||
|
||||
if (!wd) return;
|
||||
evas_object_size_hint_min_set(wd->img,
|
||||
wd->size * elm_widget_scale_get(obj) * _elm_config->scale,
|
||||
wd->size * elm_widget_scale_get(obj) * _elm_config->scale);
|
||||
|
@ -133,8 +132,9 @@ elm_photo_add(Evas_Object *parent)
|
|||
EAPI Eina_Bool
|
||||
elm_photo_file_set(Evas_Object *obj, const char *file)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) 0;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return 0;
|
||||
if (!_els_smart_icon_file_key_set(wd->img, file, NULL))
|
||||
return 0;
|
||||
_sizing_eval(obj);
|
||||
|
@ -154,6 +154,7 @@ elm_photo_size_set(Evas_Object *obj, int size)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
if (size < 0) size = 0;
|
||||
wd->size = size;
|
||||
_sizing_eval(obj);
|
||||
|
|
|
@ -64,9 +64,8 @@ _item_select(Elm_Toolbar_Item *it)
|
|||
{
|
||||
Elm_Toolbar_Item *it2;
|
||||
Widget_Data *wd = elm_widget_data_get(it->obj);
|
||||
Evas_Object *obj2, *bt, *hv, *bx, *ic;
|
||||
Evas_Object *obj2;
|
||||
const Eina_List *l;
|
||||
Evas_Coord x,y,w,h;
|
||||
|
||||
if (!wd) return;
|
||||
if ((it->selected) || (it->disabled) || (it->separator)) return;
|
||||
|
@ -141,7 +140,6 @@ _item_disable(Elm_Toolbar_Item *it, Eina_Bool disabled)
|
|||
static void
|
||||
_del_pre_hook(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Elm_Toolbar_Item *it;
|
||||
|
||||
|
@ -160,7 +158,6 @@ _del_pre_hook(Evas_Object *obj)
|
|||
static void
|
||||
_del_hook(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
|
@ -170,7 +167,6 @@ _del_hook(Evas_Object *obj)
|
|||
static void
|
||||
_theme_hook(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
const Eina_List *l;
|
||||
Elm_Toolbar_Item *it;
|
||||
|
@ -221,7 +217,6 @@ _theme_hook(Evas_Object *obj)
|
|||
static void
|
||||
_sizing_eval(Evas_Object *obj)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord minw = -1, minh = -1;
|
||||
Evas_Coord vw = 0, vh = 0;
|
||||
|
@ -253,9 +248,8 @@ _sizing_eval(Evas_Object *obj)
|
|||
static void
|
||||
_resize(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Evas_Coord mw, mh, vw, vh, x, y, w, h;
|
||||
Evas_Coord mw, mh, vw, vh, w, h;
|
||||
const Eina_List *l;
|
||||
Elm_Toolbar_Item *it;
|
||||
|
||||
|
@ -287,7 +281,7 @@ static void
|
|||
_layout(Evas_Object *o, Evas_Object_Box_Data *priv, void *data)
|
||||
{
|
||||
Widget_Data *wd = data;
|
||||
|
||||
if (!wd) return;
|
||||
_els_box_layout(o, priv, 1, wd->homogeneous);
|
||||
}
|
||||
|
||||
|
@ -341,7 +335,6 @@ elm_toolbar_icon_size_set(Evas_Object *obj, int icon_size)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
if (icon_size > 48) return;
|
||||
if (wd->icon_size == icon_size) return;
|
||||
|
@ -352,9 +345,8 @@ elm_toolbar_icon_size_set(Evas_Object *obj, int icon_size)
|
|||
EAPI int
|
||||
elm_toolbar_icon_size_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) 0;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return 0;
|
||||
return wd->icon_size;
|
||||
}
|
||||
|
@ -362,7 +354,7 @@ elm_toolbar_icon_size_get(Evas_Object *obj)
|
|||
EAPI Elm_Toolbar_Item *
|
||||
elm_toolbar_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord mw, mh;
|
||||
Elm_Toolbar_Item *it;
|
||||
|
@ -574,15 +566,13 @@ elm_toolbar_item_unselect_all(Evas_Object *obj)
|
|||
EAPI void
|
||||
elm_toolbar_align_set(Evas_Object *obj, double align)
|
||||
{
|
||||
Eina_List *l;
|
||||
Elm_Toolbar_Item *it;
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
|
||||
if (!wd) return;
|
||||
if(wd->align != align)
|
||||
if (wd->align != align)
|
||||
evas_object_size_hint_align_set(wd->bx, align, 0.5);
|
||||
wd->align = align;
|
||||
wd->align = align;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -593,8 +583,7 @@ elm_toolbar_item_menu_set(Elm_Toolbar_Item *item, Eina_Bool menu)
|
|||
if ((!wd) || (!item)) return;
|
||||
if (item->menu == menu) return;
|
||||
item->menu = menu;
|
||||
|
||||
if(menu)
|
||||
if (menu)
|
||||
{
|
||||
item->o_menu = elm_menu_add(item->base);
|
||||
if (wd->menu_parent)
|
||||
|
|
Loading…
Reference in New Issue