Bah just digging a deeper hole. going to revert and give myself some time to think about this.

SVN revision: 42847
This commit is contained in:
titan 2009-10-01 22:41:37 +00:00 committed by titan
parent 8e54bffad6
commit d5a8240854
1 changed files with 26 additions and 46 deletions

View File

@ -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)