From d5a82408549c7bfcd02fb6178686894ceae9f4ac Mon Sep 17 00:00:00 2001 From: titan Date: Thu, 1 Oct 2009 22:41:37 +0000 Subject: [PATCH] Bah just digging a deeper hole. going to revert and give myself some time to think about this. SVN revision: 42847 --- src/bin/ephoto_table.c | 72 +++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 46 deletions(-) diff --git a/src/bin/ephoto_table.c b/src/bin/ephoto_table.c index 3a52d3e..4f413ed 100644 --- a/src/bin/ephoto_table.c +++ b/src/bin/ephoto_table.c @@ -11,8 +11,6 @@ struct _Smart_Data int visibleh; int paddingw; int paddingh; - int startx; - int starty; int tw; int th; int x; @@ -44,7 +42,6 @@ static void _table_smart_color_set(Evas_Object *obj, int r, int g, int b, int a) static void _table_smart_clip_set(Evas_Object *obj, Evas_Object *clip); static void _table_smart_clip_unset(Evas_Object *obj); -static void browser_shown(void *data, Evas *e, Evas_Object *obj, void *event_info); static void move_left(void *data, Evas_Object *obj, const char *emission, const char *source); static void move_right(void *data, Evas_Object *obj, const char *emission, const char *source); static void connect_callback(void *data, Ethumb_Client *client, Eina_Bool success); @@ -169,6 +166,7 @@ void ephoto_table_padding_set(Evas_Object *obj, int paddingw, int paddingh) return; sd->paddingw = paddingw; sd->paddingh = paddingh; + sd->items_per_page = (sd->visiblew / sd->item_w) * (sd->visibleh / sd->item_h); } void ephoto_table_pack(Evas_Object *obj, char *image) @@ -233,10 +231,10 @@ void ephoto_table_pack(Evas_Object *obj, char *image) sd->items = eina_list_append(sd->items, img); - if (sd->tw+sd->item_w >= sd->visiblew) + if (sd->tw+(sd->item_w + sd->paddingw) >= sd->visiblew) { sd->th += (sd->item_h + sd->paddingh); - sd->tw = sd->startx; + sd->tw = 60; } } @@ -251,7 +249,8 @@ void ephoto_table_viewport_set(Evas_Object *obj, int w, int h) return; sd->visiblew = w; sd->visibleh = h; - sd->items_per_page = (sd->visiblew / (sd->item_w+sd->paddingw+3)) * (sd->visibleh / (sd->item_h+sd->paddingh)); + sd->items_per_page = (sd->visiblew / sd->item_w) * (sd->visibleh / sd->item_h); + evas_object_resize(sd->obj, sd->visiblew, sd->visibleh); if (!eina_list_count(sd->items)) return; @@ -380,8 +379,8 @@ static void _table_smart_change_page(Smart_Data *sd, int direction) } } - sd->tw = sd->startx; - sd->th = sd->starty; + sd->tw = 60; + sd->th = 75; sd->visible_items = 0; for(j =0; j <= sd->items_per_page && eina_list_data_get(iterator) != NULL; j++) @@ -396,10 +395,10 @@ static void _table_smart_change_page(Smart_Data *sd, int direction) sd->tw += (sd->item_w+sd->paddingw); - if (sd->tw+sd->item_w >= sd->visiblew) + if (sd->tw+(sd->item_w+sd->paddingw) >= sd->visiblew) { sd->th += (sd->item_h+sd->paddingh); - sd->tw = sd->startx; + sd->tw = 60; } iterator = eina_list_next(iterator); @@ -449,10 +448,10 @@ static void _table_smart_change_page(Smart_Data *sd, int direction) sd->items = eina_list_append(sd->items, img); - if (sd->tw+sd->item_w >= sd->visiblew) + if (sd->tw+(sd->item_w + sd->paddingw) >= sd->visiblew) { sd->th += (sd->item_h + sd->paddingh); - sd->tw = sd->startx; + sd->tw = 60; } iteratorb = eina_list_next(iteratorb); } @@ -481,8 +480,8 @@ static void _table_smart_reconfigure(Smart_Data *sd) iteratorb = eina_list_nth_list(sd->images, sd->current_head); } - sd->tw = sd->startx; - sd->th = sd->starty; + sd->tw = 60; + sd->th = 75; sd->visible_items = 0; @@ -511,10 +510,10 @@ static void _table_smart_reconfigure(Smart_Data *sd) sd->tw += (sd->item_w+sd->paddingw); - if (sd->tw+sd->item_w >= sd->visiblew) + if (sd->tw+(sd->item_w+sd->paddingw) >= sd->visiblew) { sd->th += (sd->item_h+sd->paddingh); - sd->tw = sd->startx; + sd->tw = 60; } } iterator = eina_list_next(iterator); @@ -564,10 +563,10 @@ static void _table_smart_reconfigure(Smart_Data *sd) sd->items = eina_list_append(sd->items, img); - if (sd->tw+sd->item_w >= sd->visiblew) + if (sd->tw+(sd->item_w + sd->paddingw) >= sd->visiblew) { sd->th += (sd->item_h + sd->paddingh); - sd->tw = sd->startx; + sd->tw = 60; } iteratorb = eina_list_next(iteratorb); } @@ -603,6 +602,7 @@ static void _table_smart_init(void) static void _table_smart_add(Evas_Object *obj) { Smart_Data *sd; + Evas_Object *img; int w, h; sd = calloc(1, sizeof(Smart_Data)); @@ -629,35 +629,18 @@ static void _table_smart_add(Evas_Object *obj) sd->obj = edje_object_add(em->e); edje_object_file_set(sd->obj, PACKAGE_DATA_DIR "/themes/default/ephoto.edj", "/ephoto/image/browser"); evas_object_smart_data_set(obj, sd); - evas_object_event_callback_add(sd->obj, EVAS_CALLBACK_SHOW, browser_shown, sd); -} - -static void browser_shown(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Object *img; - Smart_Data *sd; - int ibx, iby, ibw, ibh; - - sd = data; edje_object_signal_callback_add(sd->obj, "mouse,up,1", "ephoto.move.left", move_left, NULL); edje_object_signal_callback_add(sd->obj, "mouse,up,1", "ephoto.move.right", move_right, NULL); - edje_object_part_geometry_get(sd->obj, "ephoto.thumb.area", &ibx, &iby, &ibw, &ibh); - - sd->visiblew = ibw; - sd->visibleh = ibh; - sd->startx = ibx; - sd->starty = iby; - - img = edje_object_add(em->e); + img = edje_object_add(em->e); edje_object_file_set(img, PACKAGE_DATA_DIR "/themes/default/ephoto.edj", "/ephoto/thumb/shadow"); edje_object_size_min_get(img, &sd->item_w, &sd->item_h); - evas_object_del(img); + evas_object_del(img); - sd->items_per_page = (sd->visiblew / (sd->item_w+sd->paddingw+3)) * (sd->visibleh / (sd->item_h+sd->paddingh)); - em->thumb_cli = ethumb_client_connect(connect_callback, NULL, NULL); + sd->items_per_page = (sd->visiblew / sd->item_w) * (sd->visibleh / sd->item_h); + em->thumb_cli = ethumb_client_connect(connect_callback, NULL, NULL); } static void _table_smart_del(Evas_Object *obj) @@ -699,13 +682,13 @@ static void _table_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) static void _table_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) { Smart_Data *sd; - int ibw, ibh, ibx, iby; + int ibw, ibh; sd = evas_object_smart_data_get(obj); if (!sd) return; - edje_object_part_geometry_get(sd->obj, "ephoto.thumb.area", &ibx, &iby, &ibw, &ibh); + evas_object_geometry_get(sd->obj, 0, 0, &ibw, &ibh); if ((w == sd->w) && (h == sd->h)) return; @@ -714,13 +697,10 @@ static void _table_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) evas_object_resize(sd->obj, w, h); if (!eina_list_count(sd->images)) return; - if ((ibw == sd->visiblew) && (ibh == sd->visibleh) && - (ibx == sd->startx) && (iby == sd->starty)) + if ((ibw == sd->visiblew) && (ibh == sd->visibleh)) return; else - sd->startx = ibx; - sd->starty = iby; - ephoto_table_viewport_set(obj, ibw, ibh); + ephoto_table_viewport_set(obj, w, h); } static void _table_smart_show(Evas_Object *obj)