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

Reply via email to