A small patch to make the container clipper invisible when no elements are added to the container.
-- Oystein Haare
diff -ur esmart/src/container/container.c esmart-fixed/src/container/container.c --- esmart/src/container/container.c 2003-10-18 21:18:31.000000000 +0200 +++ esmart-fixed/src/container/container.c 2003-11-01 16:49:17.000000000 +0100 @@ -351,6 +351,7 @@ double L; // length of all objects at original size (for nonhomog) int num; // number of elements double error = 0; + int r,g,b; /* FIXME: add a 'changed' flag to prevent excessive recalcs */ @@ -377,6 +378,13 @@ L = _container_elements_orig_length_get(cont); num = evas_list_count(cont->elements); + + + evas_object_color_get(cont->clipper, &r, &g, &b, NULL); + if(num > 0) + evas_object_color_set(cont->clipper, r,g,b, cont->clipper_orig_alpha); + else + evas_object_color_set(cont->clipper, r,g,b, 0); for (l = cont->elements; l; l = l->next) { diff -ur esmart/src/container/container.h esmart-fixed/src/container/container.h --- esmart/src/container/container.h 2003-10-22 00:08:34.000000000 +0200 +++ esmart-fixed/src/container/container.h 2003-11-01 16:27:34.000000000 +0100 @@ -53,6 +53,8 @@ } padding; double x, y, w, h; /* geometry */ + + int clipper_orig_alpha; /* original alpha value of clipper */ int spacing; /* space between elements */ diff -ur esmart/src/container/container_smart.c esmart-fixed/src/container/container_smart.c --- esmart/src/container/container_smart.c 2003-10-22 00:08:34.000000000 +0200 +++ esmart-fixed/src/container/container_smart.c 2003-11-01 16:25:57.000000000 +0100 @@ -75,6 +75,8 @@ data->clipper = evas_object_rectangle_add(data->evas); evas_object_smart_member_add(obj, data->clipper); evas_object_repeat_events_set(data->clipper, 1); + + data->clipper_orig_alpha = 255; data->grabber = evas_object_rectangle_add(data->evas); evas_object_color_set(data->grabber, 40, 40, 255, 0); @@ -279,6 +281,7 @@ data = evas_object_smart_data_get(obj); evas_object_color_set(data->clipper, r, g, b, a); + data->clipper_orig_alpha = a; } void
diff -ur esmart/src/container/container.c esmart-fixed/src/container/container.c --- esmart/src/container/container.c 2003-10-18 21:18:31.000000000 +0200 +++ esmart-fixed/src/container/container.c 2003-11-01 16:49:17.000000000 +0100 @@ -351,6 +351,7 @@ double L; // length of all objects at original size (for nonhomog) int num; // number of elements double error = 0; + int r,g,b; /* FIXME: add a 'changed' flag to prevent excessive recalcs */ @@ -377,6 +378,13 @@ L = _container_elements_orig_length_get(cont); num = evas_list_count(cont->elements); + + + evas_object_color_get(cont->clipper, &r, &g, &b, NULL); + if(num > 0) + evas_object_color_set(cont->clipper, r,g,b, cont->clipper_orig_alpha); + else + evas_object_color_set(cont->clipper, r,g,b, 0); for (l = cont->elements; l; l = l->next) { diff -ur esmart/src/container/container.h esmart-fixed/src/container/container.h --- esmart/src/container/container.h 2003-10-22 00:08:34.000000000 +0200 +++ esmart-fixed/src/container/container.h 2003-11-01 16:27:34.000000000 +0100 @@ -53,6 +53,8 @@ } padding; double x, y, w, h; /* geometry */ + + int clipper_orig_alpha; /* original alpha value of clipper */ int spacing; /* space between elements */ diff -ur esmart/src/container/container_smart.c esmart-fixed/src/container/container_smart.c --- esmart/src/container/container_smart.c 2003-10-22 00:08:34.000000000 +0200 +++ esmart-fixed/src/container/container_smart.c 2003-11-01 16:25:57.000000000 +0100 @@ -75,6 +75,8 @@ data->clipper = evas_object_rectangle_add(data->evas); evas_object_smart_member_add(obj, data->clipper); evas_object_repeat_events_set(data->clipper, 1); + + data->clipper_orig_alpha = 255; data->grabber = evas_object_rectangle_add(data->evas); evas_object_color_set(data->grabber, 40, 40, 255, 0); @@ -279,6 +281,7 @@ data = evas_object_smart_data_get(obj); evas_object_color_set(data->clipper, r, g, b, a); + data->clipper_orig_alpha = a; } void