params->eval.x = ADD(want_x,
MUL(SUB(want_w, params->eval.w),
desc->align.x));
+ /* TIZEN_ONLY(20180102): add part_valign property for internal usage */
+ if (ep->valign != -1.0)
+ params->eval.y = ADD(want_y,
+ MUL(SUB(want_h, params->eval.h),
+ ep->valign));
+ else
+ /* END */
params->eval.y = ADD(want_y,
MUL(SUB(want_h, params->eval.h),
desc->align.y));
return apref;
}
+/* TIZEN_ONLY(20180102): add part_valign property for internal usage
static void
_edje_part_recalc_single_step(Edje_Part_Description_Common *desc,
Edje_Calc_Params *params)
+ */
+static void
+_edje_part_recalc_single_step(Edje_Real_Part *ep,
+ Edje_Part_Description_Common *desc,
+ Edje_Calc_Params *params)
+/* END */
{
if (desc->step.x > 0)
{
new_h = desc->step.y * steps;
if (params->eval.h > FROM_INT(new_h))
{
+ /* TIZEN_ONLY(20180102): add part_valign property for internal usage */
+ if (ep->valign != -1.0)
+ params->eval.y = ADD(params->eval.y, SCALE(ep->valign, SUB(params->eval.h, FROM_INT(new_h))));
+ else
+ /* END */
params->eval.y = ADD(params->eval.y, SCALE(desc->align.y, SUB(params->eval.h, FROM_INT(new_h))));
params->eval.h = FROM_INT(new_h);
}
}
}
+/* TIZEN_ONLY(20180102): add part_valign property for internal usage
static void
_edje_part_recalc_single_min(Edje_Part_Description_Common *desc,
Edje_Calc_Params *params,
int minw, int minh,
Edje_Internal_Aspect aspect)
+ */
+static void
+_edje_part_recalc_single_min(Edje_Real_Part *ep,
+ Edje_Part_Description_Common *desc,
+ Edje_Calc_Params *params,
+ int minw, int minh,
+ Edje_Internal_Aspect aspect)
+/* END */
{
FLOAT_T tmp;
FLOAT_T w;
}
_edje_part_recalc_single_min_length(desc->align.x, ¶ms->eval.x, ¶ms->eval.w, minw);
+ /* TIZEN_ONLY(20180102): add part_valign property for internal usage */
+ if (ep->valign != -1.0)
+ _edje_part_recalc_single_min_length(ep->valign, ¶ms->eval.y, ¶ms->eval.h, minh);
+ else
+ /* END */
_edje_part_recalc_single_min_length(desc->align.y, ¶ms->eval.y, ¶ms->eval.h, minh);
}
}
}
+/* TIZEN_ONLY(20180102): add part_valign property for internal usage
static void
_edje_part_recalc_single_max(Edje_Part_Description_Common *desc,
Edje_Calc_Params *params,
int maxw, int maxh,
Edje_Internal_Aspect aspect)
+ */
+static void
+_edje_part_recalc_single_max(Edje_Real_Part *ep,
+ Edje_Part_Description_Common *desc,
+ Edje_Calc_Params *params,
+ int maxw, int maxh,
+ Edje_Internal_Aspect aspect)
+/* END */
{
FLOAT_T tmp;
FLOAT_T w;
}
_edje_part_recalc_single_max_length(desc->align.x, ¶ms->eval.x, ¶ms->eval.w, maxw);
+ /* TIZEN_ONLY(20180102): add part_valign property for internal usage */
+ if (ep->valign != -1.0)
+ _edje_part_recalc_single_max_length(ep->valign, ¶ms->eval.y, ¶ms->eval.h, maxh);
+ else
+ /* END */
_edje_part_recalc_single_max_length(desc->align.y, ¶ms->eval.y, ¶ms->eval.h, maxh);
}
apref = _edje_part_recalc_single_aspect(ed, ep, desc, params, &minw, &minh, &maxw, &maxh, pos);
/* size step */
+ /* TIZEN_ONLY(20180102): add part_valign property for internal usage
_edje_part_recalc_single_step(desc, params);
+ */
+ _edje_part_recalc_single_step(ep, desc, params);
+ /* END */
/* colors */
if (ep->part->type != EDJE_PART_TYPE_SPACER)
params->req.h = TO_INT(params->eval.h);
/* adjust for min size */
+ /* TIZEN_ONLY(20180102): add part_valign property for internal usage
_edje_part_recalc_single_min(desc, params, minw, minh, apref);
+ */
+ _edje_part_recalc_single_min(ep, desc, params, minw, minh, apref);
+ /* END */
/* adjust for max size */
+ /* TIZEN_ONLY(20180102): add part_valign property for internal usage
_edje_part_recalc_single_max(desc, params, maxw, maxh, apref);
+ */
+ _edje_part_recalc_single_max(ep, desc, params, maxw, maxh, apref);
+ /* END */
/* take care of dragable part */
if (ep->drag)
}
/* END */
+/* TIZEN_ONLY(20180102): add part_valign property for internal usage */
+EOLIAN Eina_Bool
+_edje_object_part_valign_set(Eo *eo_obj EINA_UNUSED, Edje *ed, const char *part, double valign)
+{
+ Edje_Real_Part *rp;
+ FLOAT_T va;
+
+ if (!part) return EINA_FALSE;
+ rp = _edje_real_part_recursive_get(&ed, part);
+ if (!rp) return EINA_FALSE;
+
+ va = FROM_DOUBLE(valign);
+
+ if (rp->valign != va)
+ {
+ rp->valign = va;
+
+ ed->dirty = EINA_TRUE;
+ ed->recalc_call = EINA_TRUE;
+#ifdef EDJE_CALC_CACHE
+ ed->all_part_change = EINA_TRUE;
+#endif
+ _edje_recalc(ed);
+ }
+
+ return EINA_TRUE;
+}
+
+EOLIAN double
+_edje_object_part_valign_get(Eo *eo_obj EINA_UNUSED, Edje *ed, const char *part)
+{
+ Edje_Real_Part *rp;
+
+ if (!part) return -1.0;
+ rp = _edje_real_part_recursive_get(&ed, part);
+ if (!rp) return -1.0;
+
+ if (rp->valign == -1.0)
+ return TO_DOUBLE(rp->chosen_description->align.y);
+
+ return TO_DOUBLE(rp->valign);
+}
+/* END */
+
/* TIZEN_ONLY(20170801): add text marquee duration set/get APIs for internal usages */
EOLIAN Eina_Bool
_edje_object_part_text_marquee_duration_set(Eo *eo_obj EINA_UNUSED, Edje *ed, const char *part, double duration)