#define EFL_ACCESS_COMPONENT_PROTECTED
#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
#define EFL_LAYOUT_CALC_PROTECTED
+#define EFL_UI_CLICKABLE_PROTECTED
#include <Elementary.h>
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
if (!wd->still_in) return;
- if (elm_widget_is_legacy(obj))
- evas_object_smart_callback_call(data, "clicked", NULL);
- else
- efl_event_callback_call(data, EFL_UI_EVENT_CLICKED, NULL);
+ evas_object_smart_callback_call(data, "clicked", NULL);
}
static Eina_Bool
evas_object_show(priv->hit_rect);
evas_object_repeat_events_set(priv->hit_rect, EINA_TRUE);
- evas_object_event_callback_add
- (priv->hit_rect, EVAS_CALLBACK_MOUSE_UP, _on_mouse_up, obj);
+ if (elm_widget_is_legacy(obj))
+ {
+ evas_object_event_callback_add
+ (priv->hit_rect, EVAS_CALLBACK_MOUSE_UP, _on_mouse_up, obj);
+ }
+ else
+ {
+ efl_ui_clickable_util_bind_to_object(priv->hit_rect, obj);
+ }
priv->smooth = EINA_TRUE;
priv->fill_inside = EINA_TRUE;
#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
#define EFL_UI_SCROLL_MANAGER_PROTECTED
#define EFL_UI_SCROLLBAR_PROTECTED
+#define EFL_UI_CLICKABLE_PROTECTED
#include <Elementary.h>
}
}
-static Eina_Bool
-_long_press_cb(void *data)
-{
- EFL_UI_IMAGE_ZOOMABLE_DATA_GET(data, sd);
-
- sd->long_timer = NULL;
- sd->longpressed = EINA_TRUE;
- efl_event_callback_legacy_call
- (data, EFL_UI_EVENT_LONGPRESSED, NULL);
-
- return ECORE_CALLBACK_CANCEL;
-}
-
static void
_mouse_down_cb(void *data,
Evas *evas EINA_UNUSED,
if (ev->button != 1) return;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) sd->on_hold = EINA_TRUE;
else sd->on_hold = EINA_FALSE;
+
if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
{
if (elm_widget_is_legacy(data))
evas_object_smart_callback_call(data, "clicked,double", NULL);
- else
- {
- Efl_Ui_Clickable_Clicked clicked;
- clicked.repeated = 1;
- clicked.button = 1;
- efl_event_callback_call(data, EFL_UI_EVENT_CLICKED, &clicked);
- }
}
else
efl_event_callback_legacy_call(data, EFL_UI_IMAGE_ZOOMABLE_EVENT_PRESS, NULL);
- sd->longpressed = EINA_FALSE;
- ecore_timer_del(sd->long_timer);
- sd->long_timer = ecore_timer_add
- (_elm_config->longpress_timeout, _long_press_cb, data);
}
static void
if (ev->button != 1) return;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) sd->on_hold = EINA_TRUE;
else sd->on_hold = EINA_FALSE;
- ELM_SAFE_FREE(sd->long_timer, ecore_timer_del);
+
if (!sd->on_hold)
{
if (elm_widget_is_legacy(data))
evas_object_smart_callback_call(data, "clicked", NULL);
- else
- efl_event_callback_call(data, EFL_UI_EVENT_CLICKED, NULL);
}
sd->on_hold = EINA_FALSE;
}
(priv->img, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, obj);
evas_object_event_callback_add
(priv->img, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb, obj);
+ efl_ui_clickable_util_bind_to_object(priv->img, obj);
evas_object_image_scale_hint_set(priv->img, EVAS_IMAGE_SCALE_HINT_STATIC);
/* XXX: mmm... */
eina_stringshare_del(sd->file);
ecore_job_del(sd->calc_job);
ecore_timer_del(sd->scr_timer);
- ecore_timer_del(sd->long_timer);
efl_event_callback_del(obj, EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK, _zoom_anim_cb, obj);
efl_event_callback_del(obj, EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK, _bounce_eval, obj);
efl_event_callback_del(obj, EFL_UI_EVENT_SCROLL, _scroll_cb, obj);
/* spec-meta-start
{"test-interface":"Efl.Ui.Clickable",
- "test-widgets": ["Efl.Ui.Button"]
+ "test-widgets": ["Efl.Ui.Button", "Efl.Ui.Image"]
}
spec-meta-end
*/
pos->x = 30;
pos->y = 30;
+ if (efl_isa(widget, EFL_UI_IMAGE_CLASS))
+ {
+ efl_gfx_hint_size_min_set(widget, EINA_SIZE2D(200, 200));
+ efl_file_simple_load(widget, ELM_IMAGE_DATA_DIR"/images/bubble.png", NULL);
+ pos->x = 100;
+ pos->y = 100;
+ }
+
evas_smart_objects_calculate(evas_object_evas_get(win));
evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_RENDER_POST, prepare_window_norendered, pos);
efl_loop_begin(efl_app_main_get());