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

Reply via email to