Enlightenment CVS committal

Author  : devilhorns
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_shelf.c 


Log Message:
Some convenience functions for setting shelf properties without restarting
the shelf.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -3 -r1.32 -r1.33
--- e_shelf.c   27 Jul 2006 05:13:30 -0000      1.32
+++ e_shelf.c   27 Jul 2006 06:21:15 -0000      1.33
@@ -274,6 +274,7 @@
 {
    E_OBJECT_CHECK(es);
    E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
+
    es->layer = layer;
    if (es->popup)
      e_popup_layer_set(es->popup, es->layer);
@@ -446,6 +447,58 @@
        break;
      }
    e_shelf_move_resize(es, es->x, es->y, es->w, es->h);
+}
+
+EAPI void 
+e_shelf_style_set(E_Shelf *es, const char *style) 
+{
+   char buf[1024];
+   
+   E_OBJECT_CHECK(es);
+   E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
+
+   if (!es->o_base) return;
+
+   if (es->style)
+     evas_stringshare_del(es->style);
+   es->style = evas_stringshare_add(style);
+   
+   if (style)
+     snprintf(buf, sizeof(buf), "shelf/%s/base", style);
+   else
+     snprintf(buf, sizeof(buf), "shelf/%s/base", "default");
+     
+   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");
+}
+
+EAPI void 
+e_shelf_popup_set(E_Shelf *es, int popup) 
+{
+   E_OBJECT_CHECK(es);
+   E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
+
+   if (!es->cfg) return;
+   if (es->popup)
+     e_object_del(E_OBJECT(es->popup));
+   if (popup) 
+     {
+       es->popup = e_popup_new(es->zone, es->x, es->y, es->w, es->h);
+       e_popup_layer_set(es->popup, es->cfg->layer);
+       es->ee = es->popup->ecore_evas;
+       es->evas = es->popup->evas;
+       evas_object_show(es->o_event);
+       evas_object_show(es->o_base);
+       e_popup_edje_bg_object_set(es->popup, es->o_base);
+     }
+   else 
+     {
+       evas_object_move(es->o_event, es->zone->x + es->x, es->zone->y + es->y);
+       evas_object_move(es->o_base, es->zone->x + es->x, es->zone->y + es->y);
+       evas_object_layer_set(es->o_event, es->cfg->layer);
+       evas_object_layer_set(es->o_base, es->cfg->layer);
+     }
 }
 
 /* local subsystem functions */



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to