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_main.c e_shelf.c e_shelf.h Log Message: working on shelves ... and a bit on gadcon. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadcon.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- e_gadcon.c 10 Feb 2006 13:42:56 -0000 1.9 +++ e_gadcon.c 14 Feb 2006 13:09:00 -0000 1.10 @@ -458,6 +458,11 @@ case E_GADCON_ORIENT_RIGHT: e_gadcon_layout_pack_size_set(gcc->o_base, h); break; + case E_GADCON_ORIENT_FLOAT: + case E_GADCON_ORIENT_CORNER_TL: + case E_GADCON_ORIENT_CORNER_TR: + case E_GADCON_ORIENT_CORNER_BL: + case E_GADCON_ORIENT_CORNER_BR: default: break; } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadcon.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- e_gadcon.h 10 Feb 2006 12:21:22 -0000 1.7 +++ e_gadcon.h 14 Feb 2006 13:09:01 -0000 1.8 @@ -12,13 +12,17 @@ typedef enum _E_Gadcon_Orient { /* generic orientations */ - E_GADCON_ORIENT_HORIZ, + E_GADCON_ORIENT_FLOAT, + E_GADCON_ORIENT_HORIZ, E_GADCON_ORIENT_VERT, - /* specific oreintations */ E_GADCON_ORIENT_LEFT, E_GADCON_ORIENT_RIGHT, E_GADCON_ORIENT_TOP, - E_GADCON_ORIENT_BOTTOM + E_GADCON_ORIENT_BOTTOM, + E_GADCON_ORIENT_CORNER_TL, + E_GADCON_ORIENT_CORNER_TR, + E_GADCON_ORIENT_CORNER_BL, + E_GADCON_ORIENT_CORNER_BR } E_Gadcon_Orient; typedef struct _E_Gadcon E_Gadcon; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v retrieving revision 1.151 retrieving revision 1.152 diff -u -3 -r1.151 -r1.152 --- e_main.c 10 Feb 2006 13:42:56 -0000 1.151 +++ e_main.c 14 Feb 2006 13:09:01 -0000 1.152 @@ -683,7 +683,7 @@ E_Shelf *es; zone = l3->data; - es = e_shelf_zone_new(zone, "shelf"); + es = e_shelf_zone_new(zone, "shelf", 0, 200); e_shelf_populate(es); } } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_shelf.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- e_shelf.c 10 Feb 2006 12:21:22 -0000 1.3 +++ e_shelf.c 14 Feb 2006 13:09:01 -0000 1.4 @@ -22,7 +22,7 @@ } EAPI E_Shelf * -e_shelf_zone_new(E_Zone *zone, char *name) +e_shelf_zone_new(E_Zone *zone, char *name, int popup, int layer) { E_Shelf *es; char buf[1024]; @@ -32,21 +32,43 @@ /* FIXME: geometry, layer and style shoudl be loaded from config for this named shelf */ - es->popup = e_popup_new(zone, 0, 0, zone->w, 32); - e_popup_layer_set(es->popup, 255); + es->x = 0; + es->y = 0; + es->w = zone->w; + es->h = 32; + if (popup) + { + es->popup = e_popup_new(zone, es->x, es->y, es->w, es->h); + e_popup_layer_set(es->popup, layer); + es->ee = es->popup->ecore_evas; + es->evas = es->popup->evas; + } + else + { + es->ee = zone->container->bg_ecore_evas; + es->evas = zone->container->bg_evas; + } + es->layer = layer; + es->zone = zone; es->style = strdup("default"); - es->ee = es->popup->ecore_evas; - es->evas = es->popup->evas; es->o_base = edje_object_add(es->evas); es->name = strdup(name); snprintf(buf, sizeof(buf), "shelf/%s/base", es->style); - evas_object_resize(es->o_base, es->popup->w, es->popup->h); + evas_object_resize(es->o_base, es->w, es->h); if (!e_theme_edje_object_set(es->o_base, "base/theme/shelf", buf)) e_theme_edje_object_set(es->o_base, "base/theme/shelf", "shelf/default/base"); + if (es->popup) + { + e_popup_edje_bg_object_set(es->popup, es->o_base); + e_popup_show(es->popup); + } + else + { + evas_object_move(es->o_base, es->zone->x + es->x, es->zone->y + es->y); + evas_object_layer_set(es->o_base, layer); + } evas_object_show(es->o_base); - e_popup_edje_bg_object_set(es->popup, es->o_base); - e_popup_show(es->popup); snprintf(buf, sizeof(buf), "%i", shelf_id); shelf_id++; @@ -67,6 +89,80 @@ e_gadcon_populate(es->gadcon); } +EAPI void +e_shelf_move(E_Shelf *es, int x, int y) +{ + E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_GADMAN_SHELF_TYPE); + es->x = x; + es->y = y; + if (es->popup) + e_popup_move(es->popup, es->x, es->y); + else + evas_object_move(es->o_base, es->zone->x + es->x, es->zone->y + es->y); +} + +EAPI void +e_shelf_resize(E_Shelf *es, int w, int h) +{ + E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_GADMAN_SHELF_TYPE); + es->w = w; + es->h = h; + if (es->popup) + e_popup_resize(es->popup, es->w, es->h); + else + evas_object_resize(es->o_base, es->w, es->h); +} + +EAPI void +e_shelf_move_resize(E_Shelf *es, int x, int y, int w, int h) +{ + E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_GADMAN_SHELF_TYPE); + es->x = x; + es->y = y; + es->w = w; + es->h = h; + if (es->popup) + e_popup_move_resize(es->popup, es->x, es->y, es->w, es->h); + else + { + evas_object_move(es->o_base, es->zone->x + es->x, es->zone->y + es->y); + evas_object_resize(es->o_base, es->w, es->h); + } +} + +EAPI void +e_shelf_layer_set(E_Shelf *es, int layer) +{ + E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_GADMAN_SHELF_TYPE); + es->layer = layer; + if (es->popup) + e_popup_layer_set(es->popup, es->layer); + else + evas_object_layer_set(es->o_base, es->layer); +} + +EAPI void +e_shelf_save(E_Shelf *es) +{ + E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_GADMAN_SHELF_TYPE); + /* FIXME: find or create saved shelf node and then modify and queue a + * save + */ +} + +EAPI void +e_shelf_orient(E_Shelf *es, E_Gadcon_Orient orient) +{ + E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_GADMAN_SHELF_TYPE); + e_gadcon_orient(es->gadcon, orient); +} + /* local subsystem functions */ static void _e_shelf_free(E_Shelf *es) @@ -76,6 +172,6 @@ E_FREE(es->name); E_FREE(es->style); evas_object_del(es->o_base); - e_object_del(E_OBJECT(es->popup)); + if (es->popup) e_object_del(E_OBJECT(es->popup)); free(es); } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_shelf.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_shelf.h 5 Feb 2006 08:17:40 -0000 1.2 +++ e_shelf.h 14 Feb 2006 13:09:01 -0000 1.3 @@ -14,7 +14,10 @@ struct _E_Shelf { E_Object e_obj_inherit; + int x, y, w, h; + int layer; E_Popup *popup; /* NULL if its within an existing canvas */ + E_Zone *zone; Evas_Object *o_base; Ecore_Evas *ee; Evas *evas; @@ -28,8 +31,14 @@ EAPI int e_shelf_init(void); EAPI int e_shelf_shutdown(void); -EAPI E_Shelf *e_shelf_zone_new(E_Zone *zone, char *name); +EAPI E_Shelf *e_shelf_zone_new(E_Zone *zone, char *name, int popup, int layer); EAPI void e_shelf_populate(E_Shelf *es); +EAPI void e_shelf_move(E_Shelf *es, int x, int y); +EAPI void e_shelf_resize(E_Shelf *es, int w, int h); +EAPI void e_shelf_move_resize(E_Shelf *es, int x, int y, int w, int h); +EAPI void e_shelf_layer_set(E_Shelf *es, int layer); +EAPI void e_shelf_save(E_Shelf *es); +EAPI void e_shelf_orient(E_Shelf *es, E_Gadcon_Orient orient); #endif #endif ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs