Enlightenment CVS committal
Author : atmosphere
Project : e17
Module : proto
Dir : e17/proto/esmart/src/container/layout/entice
Modified Files:
entice.c
Log Message:
horizontal mode for entice container, also spacing should look better for
all modes.
===================================================================
RCS file:
/cvsroot/enlightenment/e17/proto/esmart/src/container/layout/entice/entice.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- entice.c 15 Jan 2004 19:22:48 -0000 1.4
+++ entice.c 22 Jan 2004 20:19:37 -0000 1.5
@@ -12,108 +12,206 @@
Container_Element *el;
Evas_List *center_el = NULL;
Evas_List *l;
- int i, im_no, list_length;
- Evas_Coord center = cont->y + (cont->h / 2.0) + cont->padding.t;
+ double sc;
+ double space;
+ int d;
+ int i = 0, im_no = 0, list_length;
+ Evas_Coord center;
double w, h;
- double ey = 0.0;
+ double ey = 0.0, ex = 0.0;
evas_object_color_set (cont->clipper, 255, 255, 255, 255);
if (!(center_el = evas_list_nth_list (cont->elements, _entice_current)))
return;
- el = (Container_Element *) center_el->data;
- w = cont->w - (cont->padding.l + cont->padding.r);
- h = w * el->orig_h / el->orig_w;
- evas_object_resize (el->obj, w, h);
- evas_object_move (el->obj, cont->x + ((cont->w - w) / 2), center - 24);
-
-
- i = im_no = _entice_current - 1;
- ey = center - 24;
- for (l = center_el->prev; l && (i >= 0); l = l->prev, i--)
- {
- double sc;
- double space;
- int d;
-
- el = l->data;
- if (!el->obj)
- continue;
-
+ if (cont->direction)
+ {
+ center = cont->y + (cont->h / 2.0) + cont->padding.t;
+ el = (Container_Element *) center_el->data;
w = cont->w - (cont->padding.l + cont->padding.r);
h = w * el->orig_h / el->orig_w;
+ evas_object_resize (el->obj, w, h);
+ evas_object_show (el->obj);
+ evas_object_move (el->obj, cont->x + ((cont->w - w) / 2),
+ center - (h / 2));
- d = im_no - i;
- if (d < 0)
- d = -d;
- sc = 1.0 / (1.0 + (((double) d) * 0.2));
- if (sc < 0.333333)
- sc = 0.333333;
- w *= sc;
- h *= sc;
- space = 48 * sc;
- evas_object_resize (el->obj, w, h);
- if (!strcmp (evas_object_type_get (el->obj), "image"))
- evas_object_image_fill_set (el->obj, 0, 0, w, h);
+ i = im_no = _entice_current - 1;
+ ey = center - (h / 2);
+ for (l = center_el->prev; l && (i >= 0); l = l->prev, i--)
+ {
- ey -= h + cont->spacing;
- evas_object_move (el->obj, cont->x + ((cont->w - w) / 2), ey);
+ el = l->data;
+ if (!el->obj)
+ continue;
+
+ w = cont->w - (cont->padding.l + cont->padding.r);
+ h = w * el->orig_h / el->orig_w;
+
+ d = im_no - i;
+ if (d < 0)
+ d = -d;
+ sc = 1.0 / (1.0 + (((double) d) * 0.2));
+ if (sc < 0.333333)
+ sc = 0.333333;
+ space = h * sc;
+ w *= sc;
+ h *= sc;
+
+ evas_object_resize (el->obj, w, h);
+ if (!strcmp (evas_object_type_get (el->obj), "image"))
+ evas_object_image_fill_set (el->obj, 0, 0, w, h);
+
+ ey -= cont->spacing + space;
+ evas_object_move (el->obj, cont->x + ((cont->w - w) / 2), ey);
+ evas_object_show (el->obj);
- if (ey < cont->y)
+ if (ey < cont->y)
+ {
+ for (l = l->prev; l; l = l->prev)
+ {
+ el = (Container_Element *) l->data;
+ evas_object_hide (el->obj);
+ }
+ break;
+ }
+ }
+ i = im_no = _entice_current + 1;
+ ey = center + 24;
+ list_length = evas_list_count (cont->elements);
+ for (l = center_el->next; l && (i <= list_length); l = l->next, i++)
{
- for (l = l->prev; l; l = l->prev)
+
+ el = l->data;
+ if (!el->obj)
+ continue;
+
+ w = cont->w - (cont->padding.l + cont->padding.r);
+ h = w * el->orig_h / el->orig_w;
+
+ d = i - im_no;
+ sc = 1.0 / (1.0 + (((double) d) * 0.2));
+ if (sc < 0.333333)
+ sc = 0.333333;
+ space = h * sc;
+ w *= sc;
+ h *= sc;
+
+ evas_object_resize (el->obj, w, h);
+ if (!strcmp (evas_object_type_get (el->obj), "image"))
+ evas_object_image_fill_set (el->obj, 0, 0, w, h);
+
+ evas_object_move (el->obj, cont->x + ((cont->w - w) / 2), ey);
+ evas_object_show (el->obj);
+ ey += cont->spacing + space;
+
+ if (ey > cont->y + cont->h)
{
- el = (Container_Element *) l->data;
- evas_object_move (el->obj, -400, -400);
+ for (l = l->next; l; l = l->next)
+ {
+ el = (Container_Element *) l->data;
+ evas_object_hide (el->obj);
+ }
+ break;
}
- break;
}
}
- i = im_no = _entice_current + 1;
- ey = center + 24;
- list_length = evas_list_count (cont->elements);
- for (l = center_el->next; l && (i <= list_length); l = l->next, i++)
- {
- Container_Element *el;
- double w, h;
- double sc;
- double space;
- int d;
-
- el = l->data;
- if (!el->obj)
- continue;
-
- w = cont->w - (cont->padding.l + cont->padding.r);
- h = w * el->orig_h / el->orig_w;
+ else
+ {
+ center = cont->x + (cont->w / 2.0) + cont->padding.l;
+ el = (Container_Element *) center_el->data;
+ h = cont->h - (cont->padding.t + cont->padding.b);
+ w = h * el->orig_w / el->orig_h;
+ evas_object_resize (el->obj, w, h);
+ evas_object_move (el->obj, center - (h / 2),
+ cont->y + ((cont->h - h) / 2));
+ evas_object_show (el->obj);
- d = i - im_no;
- sc = 1.0 / (1.0 + (((double) d) * 0.2));
- if (sc < 0.333333)
- sc = 0.333333;
- w *= sc;
- h *= sc;
- space = 48 * sc;
- evas_object_resize (el->obj, w, h);
- if (!strcmp (evas_object_type_get (el->obj), "image"))
- evas_object_image_fill_set (el->obj, 0, 0, w, h);
+ i = im_no = _entice_current - 1;
+ ex = center - (w / 2);
+ for (l = center_el->prev; l && (i >= 0); l = l->prev, i--)
+ {
- evas_object_move (el->obj, cont->x + ((cont->w - w) / 2), ey);
- ey += h + cont->spacing;
+ el = l->data;
+ if (!el->obj)
+ continue;
+
+ h = cont->h - (cont->padding.t + cont->padding.b);
+ w = h * el->orig_w / el->orig_h;
+
+ d = im_no - i;
+ if (d < 0)
+ d = -d;
+ sc = 1.0 / (1.0 + (((double) d) * 0.2));
+ if (sc < 0.333333)
+ sc = 0.333333;
+ space = w * sc;
+ w *= sc;
+ h *= sc;
+
+ evas_object_resize (el->obj, w, h);
+ if (!strcmp (evas_object_type_get (el->obj), "image"))
+ evas_object_image_fill_set (el->obj, 0, 0, w, h);
+
+ ex -= cont->spacing + space;
+ evas_object_move (el->obj, ex, cont->y + ((cont->h - h) / 2));
+ evas_object_show (el->obj);
- if (ey > cont->y + cont->h)
+ if (ex < cont->x)
+ {
+ for (l = l->prev; l; l = l->prev)
+ {
+ el = (Container_Element *) l->data;
+ evas_object_hide (el->obj);
+ }
+ break;
+ }
+ }
+ i = im_no = _entice_current + 1;
+ center = cont->x + (cont->w / 2.0) + cont->padding.l;
+ el = (Container_Element *) center_el->data;
+ h = cont->h - (cont->padding.t + cont->padding.b);
+ w = h * el->orig_w / el->orig_h;
+ ex = center + (w / 2);
+ list_length = evas_list_count (cont->elements);
+ for (l = center_el->next; l && (i <= list_length); l = l->next, i++)
{
- for (l = l->next; l; l = l->next)
+
+ el = l->data;
+ if (!el->obj)
+ continue;
+
+ h = cont->h - (cont->padding.t + cont->padding.b);
+ w = h * el->orig_w / el->orig_h;
+
+ d = i - im_no;
+ sc = 1.0 / (1.0 + (((double) d) * 0.2));
+ if (sc < 0.333333)
+ sc = 0.333333;
+ space = w * sc;
+ w *= sc;
+ h *= sc;
+
+ evas_object_resize (el->obj, w, h);
+ if (!strcmp (evas_object_type_get (el->obj), "image"))
+ evas_object_image_fill_set (el->obj, 0, 0, w, h);
+
+ evas_object_move (el->obj, ex, cont->y + ((cont->h - h) / 2));
+ evas_object_show (el->obj);
+ ex += cont->spacing + space;
+
+ if (ex > cont->x + cont->w)
{
- el = (Container_Element *) l->data;
- evas_object_move (el->obj, -400, -400);
+ for (l = l->next; l; l = l->next)
+ {
+ el = (Container_Element *) l->data;
+ evas_object_hide (el->obj);
+ }
+ break;
}
- break;
}
}
-
}
void
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs