projects
/
framework
/
uifw
/
elementary.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
34a998a
)
[box] applied horizontal weight value to extended box
author
Myungjae Lee
<mjae.lee@samsung.com>
Sun, 22 Aug 2010 11:00:19 +0000
(20:00 +0900)
committer
Myungjae Lee
<mjae.lee@samsung.com>
Sun, 22 Aug 2010 11:00:19 +0000
(20:00 +0900)
src/lib/els_box.c
patch
|
blob
|
history
diff --git
a/src/lib/els_box.c
b/src/lib/els_box.c
index
419341b
..
b7683fe
100644
(file)
--- a/
src/lib/els_box.c
+++ b/
src/lib/els_box.c
@@
-4,10
+4,11
@@
static void
_smart_extents_calculate(Evas_Object *box, Evas_Object_Box_Data *priv, int horizontal, int homogeneous, int extended)
{
static void
_smart_extents_calculate(Evas_Object *box, Evas_Object_Box_Data *priv, int horizontal, int homogeneous, int extended)
{
- Evas_Coord minw, minh, maxw, maxh, mnw, mnh;
+ Evas_Coord minw, minh, maxw, maxh, mnw, mnh
, ww
;
Evas_Coord w, h, cal_w = 0, cal_h = 0, cur_line_max_h = 0;
const Eina_List *l;
Evas_Object_Box_Option *opt;
Evas_Coord w, h, cal_w = 0, cal_h = 0, cur_line_max_h = 0;
const Eina_List *l;
Evas_Object_Box_Option *opt;
+ double wx;
/* FIXME: need to calc max */
minw = 0;
/* FIXME: need to calc max */
minw = 0;
@@
-39,17
+40,29
@@
_smart_extents_calculate(Evas_Object *box, Evas_Object_Box_Data *priv, int horiz
EINA_LIST_FOREACH(priv->children, l, opt)
{
evas_object_size_hint_min_get(opt->obj, &mnw, &mnh);
EINA_LIST_FOREACH(priv->children, l, opt)
{
evas_object_size_hint_min_get(opt->obj, &mnw, &mnh);
+ evas_object_size_hint_weight_get(opt->obj, &wx, NULL);
+
if (horizontal)
{
if (extended)
{
if (horizontal)
{
if (extended)
{
+ if(wx)
+ {
+ if (mnw != -1 && (w - cal_w) >= mnw)
+ ww = w - cal_w;
+ else
+ ww = w;
+ }
+ else
+ ww = mnw;
+
if ((cal_w + mnw) > w)
{
minh += cur_line_max_h;
cal_w = 0;
cur_line_max_h = 0;
}
if ((cal_w + mnw) > w)
{
minh += cur_line_max_h;
cal_w = 0;
cur_line_max_h = 0;
}
- cal_w +=
mn
w;
+ cal_w +=
w
w;
if (cur_line_max_h < mnh) cur_line_max_h = mnh;
}
else
if (cur_line_max_h < mnh) cur_line_max_h = mnh;
}
else
@@
-78,18
+91,30
@@
_smart_extents_calculate(Evas_Object *box, Evas_Object_Box_Data *priv, int horiz
static Evas_Coord
_smart_extents_calculate_max_height(Evas_Object *box, Evas_Object_Box_Data *priv, int obj_index)
{
static Evas_Coord
_smart_extents_calculate_max_height(Evas_Object *box, Evas_Object_Box_Data *priv, int obj_index)
{
- Evas_Coord mnw, mnh,
box_w, cal_w = 0, cur_line_max_h = 0
;
+ Evas_Coord mnw, mnh,
cal_w = 0, cur_line_max_h = 0, w, ww
;
const Eina_List *l;
Evas_Object_Box_Option *opt;
int index = 0;
const Eina_List *l;
Evas_Object_Box_Option *opt;
int index = 0;
+ double wx;
- evas_object_geometry_get(box, NULL, NULL, &
box_
w, NULL);
+ evas_object_geometry_get(box, NULL, NULL, &w, NULL);
EINA_LIST_FOREACH(priv->children, l, opt)
{
evas_object_size_hint_min_get(opt->obj, &mnw, &mnh);
EINA_LIST_FOREACH(priv->children, l, opt)
{
evas_object_size_hint_min_get(opt->obj, &mnw, &mnh);
+ evas_object_size_hint_weight_get(opt->obj, &wx, NULL);
- if ((cal_w + mnw) > box_w)
+ if(wx)
+ {
+ if (mnw != -1 && (w - cal_w) >= mnw)
+ ww = w - cal_w;
+ else
+ ww = w;
+ }
+ else
+ ww = mnw;
+
+ if ((cal_w + ww) > w)
{
if (index > obj_index )
{
{
if (index > obj_index )
{
@@
-99,7
+124,7
@@
_smart_extents_calculate_max_height(Evas_Object *box, Evas_Object_Box_Data *priv
cur_line_max_h = 0;
}
cur_line_max_h = 0;
}
- cal_w +=
mn
w;
+ cal_w +=
w
w;
if (cur_line_max_h < mnh) cur_line_max_h = mnh;
index++;
if (cur_line_max_h < mnh) cur_line_max_h = mnh;
index++;
@@
-222,7
+247,15
@@
_els_box_layout_ex(Evas_Object *o, Evas_Object_Box_Data *priv, int horizontal, i
if (extended)
{
Evas_Coord ww, hh, ow, oh;
if (extended)
{
Evas_Coord ww, hh, ow, oh;
- ww = mnw;
+ if(wx)
+ {
+ if (mnw != -1 && (w - cal_w) >= mnw)
+ ww = w - cal_w;
+ else
+ ww = w;
+ }
+ else
+ ww = mnw;
hh = _smart_extents_calculate_max_height(o, priv, obj_index);
ow = mnw;
hh = _smart_extents_calculate_max_height(o, priv, obj_index);
ow = mnw;
@@
-232,6
+265,7
@@
_els_box_layout_ex(Evas_Object *o, Evas_Object_Box_Data *priv, int horizontal, i
if (fh) oh = hh;
if ((mxh >= 0) && (mxh < oh)) oh = mxh;
if (fh) oh = hh;
if ((mxh >= 0) && (mxh < oh)) oh = mxh;
+ printf( "index(%d), w(%d), ww(%d), cal_w(%d), hh(%d), ow(%d), oh(%d), cur_line_max_h(%d) \n", obj_index+1, w, ww, cal_w, hh, ow, oh, cur_line_max_h );
if ((cal_w + ww) > w)
{
cal_h += cur_line_max_h;
if ((cal_w + ww) > w)
{
cal_h += cur_line_max_h;