Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_gadcon.c e_gadcon.h e_shelf.c Log Message: different shelf look - imho much nicer now. work on some mroe shelf stuff - like autofit. i need to add a lot more hooks for things and info. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- e_gadcon.c 3 Apr 2006 14:01:00 -0000 1.13 +++ e_gadcon.c 4 Apr 2006 09:54:50 -0000 1.14 @@ -75,7 +75,13 @@ static void __test3(E_Gadcon_Client *gcc) { - e_gadcon_client_min_size_set(gcc, 80, 20); + e_gadcon_client_min_size_set(gcc, 200, 20); +} + +static void +__test4(E_Gadcon_Client *gcc) +{ + e_gadcon_client_min_size_set(gcc, 32, 20); } /* externally accessible functions */ @@ -101,7 +107,7 @@ GADCON_CLIENT_CLASS_VERSION, "clock", { - __test, __test2, NULL + __test, __test2, __test4 } }; e_gadcon_provider_register(&cc); @@ -155,6 +161,17 @@ } EAPI void +e_gadcon_swallowed_min_size_set(E_Gadcon *gc, Evas_Coord w, Evas_Coord h) +{ + if (gc->edje.o_parent) + { + edje_extern_object_min_size_set(gc->o_container, w, h); + edje_object_part_swallow(gc->edje.o_parent, gc->edje.swallow_name, + gc->o_container); + } +} + +EAPI void e_gadcon_size_request_callback_set(E_Gadcon *gc, void (*func) (void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h), void *data) { E_OBJECT_CHECK(gc); @@ -591,14 +608,6 @@ Evas_Coord w, h; e_gadcon_layout_min_size_get(gc->o_container, &w, &h); - /* FIXME: this needs to be controlled */ - if (gc->edje.o_parent) - { - edje_extern_object_min_size_set(gc->o_container, w, h); - edje_object_part_swallow(gc->edje.o_parent, gc->edje.swallow_name, - gc->o_container); - } - printf("new minh/h\n"); gc->resize_request.func(gc->resize_request.data, gc, w, h); } } =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- e_gadcon.h 2 Apr 2006 11:35:35 -0000 1.10 +++ e_gadcon.h 4 Apr 2006 09:54:50 -0000 1.11 @@ -100,6 +100,7 @@ EAPI void e_gadcon_provider_register(E_Gadcon_Client_Class *cc); EAPI void e_gadcon_provider_unregister(E_Gadcon_Client_Class *cc); EAPI E_Gadcon *e_gadcon_swallowed_new(const char *name, char *id, Evas_Object *obj, char *swallow_name); +EAPI void e_gadcon_swallowed_min_size_set(E_Gadcon *gc, Evas_Coord w, Evas_Coord h); EAPI void e_gadcon_size_request_callback_set(E_Gadcon *gc, void (*func) (void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h), void *data); EAPI void e_gadcon_layout_policy_set(E_Gadcon *gc, E_Gadcon_Layout_Policy layout_policy); EAPI void e_gadcon_populate(E_Gadcon *gc); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- e_shelf.c 3 Apr 2006 14:01:00 -0000 1.10 +++ e_shelf.c 4 Apr 2006 09:54:50 -0000 1.11 @@ -130,7 +130,7 @@ es->ee = zone->container->bg_ecore_evas; es->evas = zone->container->bg_evas; } -// es->fit_along = 1; + es->fit_along = 1; es->layer = layer; es->zone = zone; es->style = evas_stringshare_add(style); @@ -159,6 +159,7 @@ e_gadcon_size_request_callback_set(es->gadcon, _e_shelf_gadcon_size_request, es); e_gadcon_orient(es->gadcon, E_GADCON_ORIENT_TOP); + edje_object_signal_emit(es->o_base, "set_orientation", "top"); e_gadcon_zone_set(es->gadcon, zone); e_gadcon_ecore_evas_set(es->gadcon, es->ee); @@ -353,6 +354,44 @@ E_OBJECT_CHECK(es); E_OBJECT_TYPE_CHECK(es, E_GADMAN_SHELF_TYPE); e_gadcon_orient(es->gadcon, orient); + switch (es->gadcon->orient) + { + case E_GADCON_ORIENT_FLOAT: + edje_object_signal_emit(es->o_base, "set_orientation", "float"); + break; + case E_GADCON_ORIENT_HORIZ: + edje_object_signal_emit(es->o_base, "set_orientation", "horizontal"); + break; + case E_GADCON_ORIENT_VERT: + edje_object_signal_emit(es->o_base, "set_orientation", "vertical"); + break; + case E_GADCON_ORIENT_LEFT: + edje_object_signal_emit(es->o_base, "set_orientation", "left"); + break; + case E_GADCON_ORIENT_RIGHT: + edje_object_signal_emit(es->o_base, "set_orientation", "right"); + break; + case E_GADCON_ORIENT_TOP: + edje_object_signal_emit(es->o_base, "set_orientation", "top"); + break; + case E_GADCON_ORIENT_BOTTOM: + edje_object_signal_emit(es->o_base, "set_orientation", "bottom"); + break; + case E_GADCON_ORIENT_CORNER_TL: + edje_object_signal_emit(es->o_base, "set_orientation", "top_left"); + break; + case E_GADCON_ORIENT_CORNER_TR: + edje_object_signal_emit(es->o_base, "set_orientation", "top_right"); + break; + case E_GADCON_ORIENT_CORNER_BL: + edje_object_signal_emit(es->o_base, "set_orientation", "bottom_left"); + break; + case E_GADCON_ORIENT_CORNER_BR: + edje_object_signal_emit(es->o_base, "set_orientation", "bottom_right"); + break; + default: + break; + } } /* local subsystem functions */ @@ -412,15 +451,51 @@ _e_shelf_gadcon_size_request(void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h) { E_Shelf *es; - Evas_Coord nx, ny, nw, nh; + Evas_Coord nx, ny, nw, nh, ww, hh; es = data; nx = es->x; ny = es->y; nw = es->w; nh = es->h; + ww = hh = 0; + printf("req min = %i %i\n", w, h); + evas_object_geometry_get(gc->o_container, NULL, NULL, &ww, &hh); + switch (gc->orient) + { + case E_GADCON_ORIENT_FLOAT: + break; + case E_GADCON_ORIENT_HORIZ: + break; + case E_GADCON_ORIENT_VERT: + break; + case E_GADCON_ORIENT_LEFT: + break; + case E_GADCON_ORIENT_RIGHT: + break; + case E_GADCON_ORIENT_TOP: + if (!es->fit_along) w = ww; + if (!es->fit_size) h = hh; + break; + case E_GADCON_ORIENT_BOTTOM: + if (!es->fit_along) w = ww; + if (!es->fit_size) h = hh; + break; + case E_GADCON_ORIENT_CORNER_TL: + break; + case E_GADCON_ORIENT_CORNER_TR: + break; + case E_GADCON_ORIENT_CORNER_BL: + break; + case E_GADCON_ORIENT_CORNER_BR: + break; + default: + break; + } + printf("adj min = %i %i\n", w, h); + e_gadcon_swallowed_min_size_set(gc, w, h); edje_object_size_min_calc(es->o_base, &nw, &nh); - printf("new w, h = %i %i\n", nw, nh); + printf("new w, h = %i %i\n", nw, nh); switch (gc->orient) { case E_GADCON_ORIENT_FLOAT: @@ -438,7 +513,7 @@ if (!es->fit_size) nh = es->h; if (nw > es->zone->w) nw = es->zone->w; if (nh > es->zone->h) nh = es->zone->h; - if (nw != es->w) nx = es->x + ((es->w - es->w) / 2); + if (nw != es->w) nx = es->x + ((es->w - nw) / 2); ny = 0; break; case E_GADCON_ORIENT_BOTTOM: @@ -446,7 +521,7 @@ if (!es->fit_size) nh = es->h; if (nw > es->zone->w) nw = es->zone->w; if (nh > es->zone->h) nh = es->zone->h; - if (nw != es->w) nx = es->x + ((es->w - es->w) / 2); + if (nw != es->w) nx = es->x + ((es->w - nw) / 2); ny = es->zone->h - nh; break; case E_GADCON_ORIENT_CORNER_TL: ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs