parent
54f2079b25
commit
23c3f87508
|
@ -16,10 +16,12 @@ struct _E_Smart_Data
|
|||
unsigned char flowright : 1;
|
||||
unsigned char flowbottom : 1;
|
||||
Eina_List *items;
|
||||
struct {
|
||||
struct
|
||||
{
|
||||
Evas_Coord w, h;
|
||||
} min, max;
|
||||
struct {
|
||||
struct
|
||||
{
|
||||
double x, y;
|
||||
} align;
|
||||
int rows;
|
||||
|
@ -33,10 +35,12 @@ struct _E_Flowlayout_Item
|
|||
unsigned char fill_h : 1;
|
||||
unsigned char expand_w : 1;
|
||||
unsigned char expand_h : 1;
|
||||
struct {
|
||||
struct
|
||||
{
|
||||
Evas_Coord w, h;
|
||||
} min, max;
|
||||
struct {
|
||||
struct
|
||||
{
|
||||
double x, y;
|
||||
} align;
|
||||
Evas_Object *obj;
|
||||
|
@ -202,7 +206,6 @@ e_flowlayout_fill_get(Evas_Object *obj)
|
|||
return sd->fill;
|
||||
}
|
||||
|
||||
|
||||
EAPI int
|
||||
e_flowlayout_pack_start(Evas_Object *obj, Evas_Object *child)
|
||||
{
|
||||
|
@ -395,8 +398,9 @@ e_flowlayout_max_children(Evas_Object *obj)
|
|||
sd = evas_object_smart_data_get(obj);
|
||||
if (!sd) return -1;
|
||||
if (!sd->homogenous) return -1;
|
||||
return (sd->rows * sd->cols);
|
||||
return sd->rows * sd->cols;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_flowlayout_align_get(Evas_Object *obj, double *ax, double *ay)
|
||||
{
|
||||
|
@ -492,7 +496,6 @@ _e_flowlayout_smart_reconfigure(E_Smart_Data *sd)
|
|||
int minw, minh;
|
||||
int count, expand;
|
||||
|
||||
|
||||
if (!sd->changed) return;
|
||||
|
||||
/* local variables */
|
||||
|
@ -585,7 +588,7 @@ _e_flowlayout_smart_reconfigure(E_Smart_Data *sd)
|
|||
hh = h / sd->rows;
|
||||
if (sd->fill)
|
||||
{
|
||||
int num = count - (cr)*(sd->cols);
|
||||
int num = count - (cr) * (sd->cols);
|
||||
if (num < sd->cols)
|
||||
{
|
||||
ww = w / num;
|
||||
|
@ -627,7 +630,6 @@ _e_flowlayout_smart_reconfigure(E_Smart_Data *sd)
|
|||
evas_object_move(obj,
|
||||
xx - ww + (Evas_Coord)(((double)(ww - ow)) * bi->align.x),
|
||||
yy - hh + (Evas_Coord)(((double)(hh - oh)) * bi->align.y));
|
||||
|
||||
}
|
||||
evas_object_resize(obj, ow, oh);
|
||||
xx -= ww;
|
||||
|
@ -662,7 +664,7 @@ _e_flowlayout_smart_reconfigure(E_Smart_Data *sd)
|
|||
hh = h / sd->rows;
|
||||
if (sd->fill)
|
||||
{
|
||||
int num = count - (cc)*(sd->rows);
|
||||
int num = count - (cc) * (sd->rows);
|
||||
if (num < sd->rows)
|
||||
{
|
||||
hh = h / num;
|
||||
|
@ -704,7 +706,6 @@ _e_flowlayout_smart_reconfigure(E_Smart_Data *sd)
|
|||
evas_object_move(obj,
|
||||
xx - ww + (Evas_Coord)(((double)(ww - ow)) * bi->align.x),
|
||||
yy - hh + (Evas_Coord)(((double)(hh - oh)) * bi->align.y));
|
||||
|
||||
}
|
||||
evas_object_resize(obj, ow, oh);
|
||||
yy -= hh;
|
||||
|
@ -723,7 +724,6 @@ _e_flowlayout_smart_reconfigure(E_Smart_Data *sd)
|
|||
else
|
||||
xx -= ww;
|
||||
}
|
||||
|
||||
}
|
||||
/* TODO Nonhomogeneous Vertical */
|
||||
else
|
||||
|
@ -771,11 +771,11 @@ _e_flowlayout_smart_extents_calcuate(E_Smart_Data *sd)
|
|||
}
|
||||
if (sd->horizontal)
|
||||
{
|
||||
sd->rows = sd->h/minh;
|
||||
if (sd->rows<1)
|
||||
sd->rows = sd->h / minh;
|
||||
if (sd->rows < 1)
|
||||
sd->rows = 1;
|
||||
count = eina_list_count(sd->items);
|
||||
sd->cols = sd->w/minw;
|
||||
sd->cols = sd->w / minw;
|
||||
if (count < sd->cols) sd->cols = count;
|
||||
sd->rows = 0;
|
||||
if (sd->cols > 0)
|
||||
|
@ -789,11 +789,11 @@ _e_flowlayout_smart_extents_calcuate(E_Smart_Data *sd)
|
|||
}
|
||||
else
|
||||
{
|
||||
sd->cols = sd->w/minw;
|
||||
if (sd->cols<1)
|
||||
sd->cols = sd->w / minw;
|
||||
if (sd->cols < 1)
|
||||
sd->cols = 1;
|
||||
count = eina_list_count(sd->items);
|
||||
sd->rows = sd->h/minh;
|
||||
sd->rows = sd->h / minh;
|
||||
if (count < sd->cols) sd->rows = count;
|
||||
sd->cols = 0;
|
||||
if (sd->rows > 0)
|
||||
|
@ -821,29 +821,29 @@ _e_flowlayout_smart_extents_calcuate(E_Smart_Data *sd)
|
|||
{
|
||||
if (sd->horizontal)
|
||||
{
|
||||
if (minh < bi->min.h) minh = bi->min.h*sd->rows;
|
||||
if (minh < bi->min.h) minh = bi->min.h * sd->rows;
|
||||
minw += bi->min.w;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (minw < bi->min.w) minw = bi->min.w*sd->cols;
|
||||
if (minw < bi->min.w) minw = bi->min.w * sd->cols;
|
||||
minh += bi->min.h;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (sd->horizontal)
|
||||
{
|
||||
sd->rows = sd->h/minh;
|
||||
sd->rows = sd->h / minh;
|
||||
minh *= sd->rows;
|
||||
sd->cols = -1;
|
||||
minw = minw/sd->cols + 0.2*minw;
|
||||
minw = minw / sd->cols + 0.2 * minw;
|
||||
}
|
||||
else
|
||||
{
|
||||
sd->cols = sd->w/minw;
|
||||
sd->cols = sd->w / minw;
|
||||
minw *= sd->cols;
|
||||
sd->rows = -1;
|
||||
minh = minh/sd->cols + 0.2*minh;
|
||||
minh = minh / sd->cols + 0.2 * minh;
|
||||
}
|
||||
}
|
||||
sd->min.w = minw;
|
||||
|
@ -1017,3 +1017,4 @@ _e_flowlayout_smart_clip_unset(Evas_Object *obj)
|
|||
if (!sd) return;
|
||||
evas_object_clip_unset(sd->clip);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue