/* smart callbacks called:
* "anchor,clicked" - achor called was clicked | event_info = Elm_Entry_Anchorblock_Info
*/
-
+
EAPI Evas_Object *elm_bubble_add(Evas_Object *parent);
EAPI void elm_bubble_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_bubble_label_get(const Evas_Object *obj);
EAPI Evas_Object *elm_bubble_icon_get(const Evas_Object *obj);
EAPI void elm_bubble_corner_set(Evas_Object *obj, const char *corner);
/* smart callbacks called:
+ * "sweep,left,right" - when bubble is sweeped from left to right, this signal is sent.
+ * "sweep,right,left" - when bubble is sweeped from right to left, this signal is sent.
*/
EAPI Evas_Object *elm_photo_add(Evas_Object *parent);
ELM_DATEFIELD_LAYOUT_DATE,
ELM_DATEFIELD_LAYOUT_DATEANDTIME
} Elm_Datefield_Layout;
-
+
EAPI Evas_Object *elm_datefield_add(Evas_Object *parent);
EAPI void elm_datefield_layout_set(Evas_Object *obj, Elm_Datefield_Layout layout);
EAPI Elm_Datefield_Layout elm_datefield_layout_get(Evas_Object *obj);
EAPI void elm_datefield_date_format_set(Evas_Object *obj, const char *fmt);
EAPI const char *elm_datefield_date_format_get(Evas_Object *obj);
EAPI void elm_datefield_input_panel_state_callback_add(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value), void *data);
- EAPI void elm_datefield_input_panel_state_callback_del(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value));
-
+ EAPI void elm_datefield_input_panel_state_callback_del(Evas_Object *obj, void (*pEventCallbackFunc) (void *data, Evas_Object *obj, int value));
+ /* smart callbacks called:
+ * "changed" - when datefield entry is changed, this signal is sent.
+ */
+
/* titlebar */
EAPI Evas_Object *elm_titlebar_add(Evas_Object *parent);
EAPI void elm_titlebar_label_set(Evas_Object *obj, const char *label);
Evas_Object *bbl;
Evas_Object *content, *icon;
const char *label, *info;
+
+ Eina_Bool down:1;
+ Evas_Coord_Point down_point;
};
+#define SWEEP_THRESHOLD 100
+
static const char *widtype = NULL;
static void _del_hook(Evas_Object *obj);
static void _theme_hook(Evas_Object *obj);
_sizing_eval(obj);
}
+static void
+_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
+{
+ Widget_Data *wd = elm_widget_data_get(data);
+ Evas_Event_Mouse_Down *ev = event_info;
+
+ wd->down = EINA_TRUE;
+ wd->down_point.x = ev->canvas.x;
+ wd->down_point.y = ev->canvas.y;
+}
+
+static void
+_mouse_up(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
+{
+ Widget_Data *wd = elm_widget_data_get(data);
+ Evas_Event_Mouse_Up *ev = event_info;
+
+ if (!wd->down) return;
+
+ if (ev->canvas.x - wd->down_point.x > SWEEP_THRESHOLD)
+ evas_object_smart_callback_call(data, "sweep,left,right", NULL);
+ else if (wd->down_point.x - ev->canvas.x > SWEEP_THRESHOLD)
+ evas_object_smart_callback_call(data, "sweep,right,left", NULL);
+
+ wd->down = EINA_FALSE;
+ wd->down_point.x = 0;
+ wd->down_point.y = 0;
+}
+
/**
* Add a new bubble to the parent
*
elm_widget_resize_object_set(obj, wd->bbl);
evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
+ evas_object_event_callback_add(wd->bbl, EVAS_CALLBACK_MOUSE_UP, _mouse_up, obj);
+ evas_object_event_callback_add(wd->bbl, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down, obj);
+
+ wd->down = EINA_FALSE;
+ wd->down_point.x = 0;
+ wd->down_point.y = 0;
_sizing_eval(obj);
return obj;
edje_object_signal_emit(wd->base, "elm,state,min,focus,out", "elm");
}
edje_object_signal_emit(wd->base, "elm,state,focus,out", "elm");
+ evas_object_smart_callback_call(data, "changed", NULL);
}
static void