static void _mirrored_set(Evas_Object *obj, Eina_Bool rtl) { ELM_NOTIFY_DATA_GET(obj, sd); edje_object_mirrored_set(sd->notify, rtl); _notify_move_to_orientation(obj); }
/** * Moves notification to orientation. * * This function moves notification to orientation * according to object RTL orientation. * * @param obj notification object. * * @param orient notification orientation. * * @internal **/ static void _notify_move_to_orientation(Evas_Object *obj) { Evas_Coord minw = -1, minh = -1; Evas_Coord x, y, w, h; double ax, ay; ELM_NOTIFY_DATA_GET(obj, sd); evas_object_geometry_get(obj, &x, &y, &w, &h); edje_object_size_min_get(sd->notify, &minw, &minh); edje_object_size_min_restricted_calc(sd->notify, &minw, &minh, minw, minh); ax = sd->horizontal_align; ay = sd->vertical_align; if ((elm_widget_mirrored_get(obj)) && (ax != ELM_NOTIFY_ALIGN_FILL)) ax = 1.0 - ax; if (ax == ELM_NOTIFY_ALIGN_FILL) minw = w; if (ay == ELM_NOTIFY_ALIGN_FILL) minh = h; x = x + ((w - minw) * ax); y = y + ((h - minh) * ay); evas_object_move(sd->notify, x, y); }
static void _block_events_theme_apply(Evas_Object *obj) { ELM_NOTIFY_DATA_GET(obj, sd); const char *style = elm_widget_style_get(obj); if (!elm_layout_theme_set (sd->block_events, "notify", "block_events", style)) CRI("Failed to set layout!"); }
static void _sizing_eval(Evas_Object *obj) { Evas_Coord x, y, w, h; ELM_NOTIFY_DATA_GET(obj, sd); if (!sd->parent) return; evas_object_geometry_get(sd->parent, &x, &y, &w, &h); evas_object_move(obj, x, y); evas_object_resize(obj, w, h); }
static void _notify_theme_apply(Evas_Object *obj) { const char *style = elm_widget_style_get(obj); const char *position; double ax, ay; ELM_NOTIFY_DATA_GET(obj, sd); ax = sd->horizontal_align; ay = sd->vertical_align; if ((elm_widget_mirrored_get(obj)) && (ax != ELM_NOTIFY_ALIGN_FILL)) ax = 1.0 - ax; if (ay == 0.0) { if (ax == 0.0) position = "top_left"; else if (ax == 1.0) position = "top_right"; else position = "top"; } else if (ay == 1.0) { if (ax == 0.0) position = "bottom_left"; else if (ax == 1.0) position = "bottom_right"; else position = "bottom"; } else { if (ax == 0.0) position = "left"; else if (ax == 1.0) position = "right"; else position = "center"; } elm_widget_theme_object_set(obj, sd->notify, "notify", position, style); }
static void _notify_theme_apply(Evas_Object *obj) { const char *style = elm_widget_style_get(obj); double ax, ay; ELM_NOTIFY_DATA_GET(obj, sd); ax = sd->horizontal_align; ay = sd->vertical_align; if ((elm_widget_mirrored_get(obj)) && (ax != ELM_NOTIFY_ALIGN_FILL)) ax = 1.0 - ax; if (ay == 0.0) elm_widget_theme_object_set(obj, sd->notify, "notify", "top", style); else if (ay == 1.0) elm_widget_theme_object_set(obj, sd->notify, "notify", "bottom", style); else if (ax == 0.0) elm_widget_theme_object_set(obj, sd->notify, "notify", "left", style); else if (ax == 1.0) elm_widget_theme_object_set(obj, sd->notify, "notify", "right", style); else elm_widget_theme_object_set(obj, sd->notify, "notify", "center", style); }
static void _calc(Evas_Object *obj) { Evas_Coord minw = -1, minh = -1; Evas_Coord x, y, w, h; ELM_NOTIFY_DATA_GET(obj, sd); _sizing_eval(obj); evas_object_geometry_get(obj, &x, &y, &w, &h); edje_object_size_min_get(sd->notify, &minw, &minh); edje_object_size_min_restricted_calc(sd->notify, &minw, &minh, minw, minh); if (sd->horizontal_align == ELM_NOTIFY_ALIGN_FILL) minw = w; if (sd->vertical_align == ELM_NOTIFY_ALIGN_FILL) minh = h; if (sd->content) { _notify_move_to_orientation(obj); evas_object_resize(sd->notify, minw, minh); } }