Beispiel #1
0
static void
_mirroredness_change_eval(Evas_Object *obj)
{
   double pos;
   char *left;

   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);

   left = (char *)elm_layout_text_get(obj, "elm.text.left");
   if (left) left = strdup(left);

   elm_layout_text_set
     (obj, "elm.text.left", elm_layout_text_get(obj, "elm.text.right"));
   elm_layout_text_set(obj, "elm.text.right", left);

   free(left);

   edje_object_part_drag_value_get
     (wd->resize_obj, "elm.drag_button_base", &pos, NULL);
   edje_object_part_drag_value_set
     (wd->resize_obj, "elm.drag_button_base", 1.0 - pos, 0.5);
}
EOLIAN static void
_elm_flipselector_elm_layout_sizing_eval(Eo *obj, Elm_Flipselector_Data *sd)
{
    char *tmp = NULL;
    Evas_Coord minw = -1, minh = -1, w, h;

    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);

    if (sd->evaluating) return;

    elm_coords_finger_size_adjust(1, &minw, 2, &minh);

    sd->evaluating = EINA_TRUE;

    if (sd->sentinel)
    {
        const char *label = elm_object_item_text_get(DATA_GET(sd->sentinel));
        const char *src = elm_layout_text_get(obj, "elm.top");

        if (src)
            tmp = strdup(src);
        elm_layout_text_set(obj, "elm.top", label);
    }

    edje_object_size_min_restricted_calc
    (wd->resize_obj, &minw, &minh, minw, minh);
    elm_coords_finger_size_adjust(1, &minw, 2, &minh);
    evas_object_size_hint_min_get(obj, &w, &h);

    if (sd->sentinel)
    {
        elm_layout_text_set(obj, "elm.top", tmp);
        free(tmp);
    }

    if (w > minw) minw = w;
    if (h > minh) minh = h;

    sd->evaluating = EINA_FALSE;

    evas_object_size_hint_min_set(obj, minw, minh);
}