Enlightenment CVS committal
Author : atmosphere
Project : misc
Module : eke
Dir : misc/eke/src
Modified Files:
eke_gui_edje.c eke_gui_edje_item.c eke_gui_edje_item.h
Log Message:
add panning
===================================================================
RCS file: /cvsroot/enlightenment/misc/eke/src/eke_gui_edje.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- eke_gui_edje.c 27 Dec 2004 23:31:19 -0000 1.2
+++ eke_gui_edje.c 28 Dec 2004 22:24:35 -0000 1.3
@@ -10,6 +10,8 @@
static void eke_gui_edje_win_del_cb(Ecore_Evas *ee);
static void eke_gui_edje_win_resize_cb(Ecore_Evas *ee);
+static void eke_gui_edje_feed_container_scroll_cb(void *data,
+ Evas_Object *o, const char *src, const char *em);
typedef struct Eke_Gui_Edje_Feed Eke_Gui_Edje_Feed;
struct Eke_Gui_Edje_Feed
@@ -77,7 +79,7 @@
esmart_container_padding_set(o, 0, 0, 0, 0);
esmart_container_spacing_set(o, 0);
esmart_container_move_button_set(o, 2);
- esmart_container_fill_policy_set(o, CONTAINER_FILL_POLICY_NONE);
+ esmart_container_fill_policy_set(o, CONTAINER_FILL_POLICY_FILL_X);
esmart_container_direction_set(o, CONTAINER_DIRECTION_VERTICAL);
edje_object_part_swallow(edje, "feeds.list.items", o);
evas_object_show(o);
@@ -139,18 +141,28 @@
if((part = edje_object_part_swallow_get(eke->gui.edje.edje,
"feed.body"))) {
edje_object_part_unswallow(eke->gui.edje.edje, part);
+ evas_object_hide(part);
}
edje_object_part_swallow(eke->gui.edje.edje, "feed.body", disp->body);
edje_object_part_geometry_get(eke->gui.edje.edje, "feed.body",
NULL, NULL, &w, &h);
+ edje_object_signal_callback_del(eke->gui.edje.edje, "drag",
+ "feed.body.scroll",
+ eke_gui_edje_feed_container_scroll_cb);
+ edje_object_signal_callback_add(eke->gui.edje.edje, "drag",
+ "feed.body.scroll",
+ eke_gui_edje_feed_container_scroll_cb,
+ disp->body);
esmart_container_empty(disp->body);
ecore_list_goto_first(feed->items);
edje_object_file_get(eke->gui.edje.edje, &file, NULL);
while ((item = ecore_list_next(feed->items)) != NULL) {
if((obj = eke_gui_edje_item_new(evas, eke->gui.edje.theme,
"feed.body.item"))) {
- eke_gui_edje_item_init(obj, item->title, item->link, item->desc);
- evas_object_resize(obj, w, 150);
+ eke_gui_edje_item_init(obj, item->title, item->date, item->link,
item->desc);
+ eke_gui_edje_item_size_min_get(obj, &w, &h);
+ if ((w > 0) && (h > 0))
+ evas_object_resize(obj, w, h);
evas_object_show(obj);
esmart_container_element_append(disp->body, obj);
}
@@ -196,3 +208,41 @@
}
+static void
+eke_gui_edje_feed_container_scroll_cb(void *data, Evas_Object *o,
+ const char *em, const char *src)
+{
+ double sx = 0.0, sy = 0.0;
+ double container_length = 0.0;
+ Evas_Object *container = NULL;
+ Evas_Coord cw = (Evas_Coord)0.0, ch = (Evas_Coord)0.0;
+
+ if((container = (Evas_Object*)data)) {
+
+ edje_object_part_geometry_get(o, "feed.body", NULL, NULL, &cw, &ch);
+ container_length = esmart_container_elements_length_get(container);
+ edje_object_part_drag_value_get(o, src, &sx, &sy);
+ switch (esmart_container_direction_get(container))
+ {
+ case CONTAINER_DIRECTION_HORIZONTAL:
+ if(container_length > cw)
+ {
+ container_length -= cw;
+ esmart_container_scroll_offset_set(container,
+ - (int) (sx * container_length));
+ }
+ break;
+ case CONTAINER_DIRECTION_VERTICAL:
+ if(container_length > ch)
+ {
+ container_length -= ch;
+ esmart_container_scroll_offset_set(container,
+ - (int) (sy * container_length));
+ }
+ break;
+ default:
+ fprintf(stderr, "Unknown Container Orientation\n");
+ break;
+ }
+ }
+}
===================================================================
RCS file: /cvsroot/enlightenment/misc/eke/src/eke_gui_edje_item.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- eke_gui_edje_item.c 28 Dec 2004 03:39:36 -0000 1.2
+++ eke_gui_edje_item.c 28 Dec 2004 22:24:35 -0000 1.3
@@ -53,8 +53,19 @@
src = NULL;
}
void
-eke_gui_edje_item_init(Evas_Object *o, const char *label, const char *link,
-const char *body)
+eke_gui_edje_item_size_min_get(Evas_Object *o, Evas_Coord *w, Evas_Coord *h)
+{
+ Eke_Gui_Edje_Item *data;
+
+ if((data = evas_object_smart_data_get(o)))
+ {
+ edje_object_size_min_get(data->obj, w, h);
+ }
+
+}
+void
+eke_gui_edje_item_init(Evas_Object *o, const char *label, const char *date,
+const char *link, const char *body)
{
Eke_Gui_Edje_Item *data;
@@ -76,12 +87,24 @@
edje_object_part_text_set(data->obj, "link", "");
}
}
+ if(edje_object_part_exists(data->obj, "date"))
+ {
+ if(date) {
+ edje_object_part_text_set(data->obj, "date", date);
+ } else {
+ edje_object_part_text_set(data->obj, "date", "");
+ }
+ }
if(edje_object_part_exists(data->obj, "body"))
{
if(body) {
Evas_Object *desc;
Etox_Context *ctx;
-
+
+ if((desc = edje_object_part_swallow_get(data->obj, "body")))
+ {
+ evas_object_del(desc);
+ }
desc = etox_new(evas_object_evas_get(o));
ctx = etox_get_context(desc);
etox_context_set_color(ctx, 0, 0, 0, 255);
@@ -105,24 +128,20 @@
Evas_Object*
eke_gui_edje_item_new(Evas *e, const char *file, const char *group)
{
- char buf[PATH_MAX], buf2[PATH_MAX];
Evas_Object *result = NULL;
Eke_Gui_Edje_Item *data = NULL;
+ Evas_Coord w = (Evas_Coord)0.0, h = (Evas_Coord)0.0;
- snprintf(buf, PATH_MAX, "%s", file);
- snprintf(buf2, PATH_MAX, "%s", group);
-// printf(stderr, "NEW:%s,%s\n", file, group);
if((result = eke_gui_edje_item_object_new(e)))
{
if((data = evas_object_smart_data_get(result)))
{
data->obj = edje_object_add(e);
-// printf("%s\n", buf);
-// printf("%s\n", buf2);
if(edje_object_file_set(data->obj, file, group) == 1)
{
- evas_object_move(data->obj, -250, 80);
- evas_object_resize(data->obj, 350, 80);
+ evas_object_move(data->obj, -9999, -9999);
+ edje_object_size_min_get(data->obj, &w, &h);
+ evas_object_resize(data->obj, w, h);
} else {
fprintf(stderr, "edje_file_set_error %d\n",
edje_object_load_error_get(data->obj));
@@ -196,9 +215,18 @@
_eke_gui_edje_item_object_del(Evas_Object *o)
{
Eke_Gui_Edje_Item *data;
-
+ Evas_Object *obj = NULL;
+
if((data = evas_object_smart_data_get(o)))
{
+ if(data->obj)
+ {
+ if((obj = edje_object_part_swallow_get(data->obj, "body")))
+ {
+ evas_object_del(obj);
+ }
+ evas_object_del(data->obj);
+ }
free(data);
}
}
===================================================================
RCS file: /cvsroot/enlightenment/misc/eke/src/eke_gui_edje_item.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- eke_gui_edje_item.h 27 Dec 2004 22:45:01 -0000 1.1
+++ eke_gui_edje_item.h 28 Dec 2004 22:24:35 -0000 1.2
@@ -11,10 +11,11 @@
Evas_Coord x, y, w, h;
};
-Evas_Object*
-eke_gui_edje_item_new(Evas *e, const char *file, const char *group);
-void
-eke_gui_edje_item_init(Evas_Object *o, const char *label, const char *txt,
-const char *body);
+Evas_Object* eke_gui_edje_item_new(Evas *e,
+ const char *file, const char *group);
+void eke_gui_edje_item_init(Evas_Object *o, const char *label,
+ const char *date, const char *link, const char *body);
+void eke_gui_edje_item_size_min_get(Evas_Object *o,
+ Evas_Coord *w, Evas_Coord *h);
#endif
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs