Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_shelf.h e_shelf.c 


Log Message:
Possible to lock shelf.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- e_shelf.h   22 Nov 2007 21:39:45 -0000      1.26
+++ e_shelf.h   23 Nov 2007 09:18:21 -0000      1.27
@@ -28,9 +28,6 @@
    const char          *name;
    const char          *style;
    E_Config_Shelf      *cfg;
-   unsigned char        fit_along : 1;
-   unsigned char        fit_size  : 1;
-   unsigned char        hidden    : 1;
    int                  size;
    E_Config_Dialog     *config_dialog;
    E_Menu              *menu;
@@ -43,6 +40,11 @@
    float                instant_delay;
    Ecore_Timer         *instant_timer;
    Evas_List           *handlers;
+   unsigned char        fit_along : 1;
+   unsigned char        fit_size  : 1;
+   unsigned char        hidden    : 1;
+   unsigned char        locked    : 1;
+   unsigned char        toggle    : 1;
 };
 
 EAPI int              e_shelf_init(void);
@@ -54,6 +56,7 @@
 EAPI void             e_shelf_populate(E_Shelf *es);
 EAPI void             e_shelf_show(E_Shelf *es);
 EAPI void             e_shelf_hide(E_Shelf *es);
+EAPI void             e_shelf_locked_set(E_Shelf *es, int lock);
 EAPI void             e_shelf_toggle(E_Shelf *es, int show);
 EAPI void             e_shelf_move(E_Shelf *es, int x, int y);
 EAPI void             e_shelf_resize(E_Shelf *es, int w, int h);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -3 -r1.77 -r1.78
--- e_shelf.c   23 Nov 2007 06:38:08 -0000      1.77
+++ e_shelf.c   23 Nov 2007 09:18:21 -0000      1.78
@@ -251,52 +251,68 @@
 }
 
 EAPI void
+e_shelf_locked_set(E_Shelf *es, int lock)
+{
+   printf("Lock shelf: %d\n", lock);
+   if (lock)
+     {
+       e_shelf_toggle(es, 1);
+       es->locked = 1;
+     }
+   else
+     {
+       es->locked = 0;
+       e_shelf_toggle(es, es->toggle);
+     }
+}
+
+EAPI void
 e_shelf_toggle(E_Shelf *es, int show)
 {
-  E_OBJECT_CHECK(es);
-  E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
+   E_OBJECT_CHECK(es);
+   E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
 
-  es->interrupted = -1;
-  if ((show) && (es->hidden))
-    {  
-       es->hidden = 0;
-       edje_object_signal_emit(es->o_base, "e,state,visible", "e");
-       if (es->instant_delay >= 0.0)
-        {
-           _e_shelf_cb_instant_hide_timer(es);
-        }
-       else
-        {
-           if (es->hide_timer)
-             {
-                ecore_timer_del(es->hide_timer);
-                es->hide_timer = NULL;
-             }
-           if (!es->hide_animator)
-             es->hide_animator = ecore_animator_add(_e_shelf_cb_hide_animator, 
es);
-        }
-    }
-  else if ((!show) && (!es->hidden) && (!es->gadcon->editing) && 
(es->cfg->autohide))
-    {
-       edje_object_signal_emit(es->o_base, "e,state,hidden", "e");
-       if (es->instant_delay >= 0.0)
-        {
-           es->hidden = 1; 
-           if (!es->instant_timer)
-             es->instant_timer = ecore_timer_add(es->instant_delay, 
_e_shelf_cb_instant_hide_timer, es);
-        }
-       else
-        {
-           if (es->hide_animator)
-             {
-                es->interrupted = show;
-                return;
-             }
-           es->hidden = 1; 
-           if (es->hide_timer) ecore_timer_del(es->hide_timer);
-           es->hide_timer = ecore_timer_add(es->cfg->hide_timeout, 
_e_shelf_cb_hide_animator_timer, es);
-        }
-    }
+   es->toggle = show;
+   if (es->locked)
+     es->interrupted = -1;
+   if ((show) && (es->hidden))
+     {  
+       es->hidden = 0;
+       edje_object_signal_emit(es->o_base, "e,state,visible", "e");
+       if (es->instant_delay >= 0.0)
+         _e_shelf_cb_instant_hide_timer(es);
+       else
+         {
+            if (es->hide_timer)
+              {
+                 ecore_timer_del(es->hide_timer);
+                 es->hide_timer = NULL;
+              }
+            if (!es->hide_animator)
+              es->hide_animator = 
ecore_animator_add(_e_shelf_cb_hide_animator, es);
+         }
+     }
+   else if ((!show) && (!es->hidden) && (!es->gadcon->editing) && 
(es->cfg->autohide))
+     {
+       edje_object_signal_emit(es->o_base, "e,state,hidden", "e");
+       if (es->instant_delay >= 0.0)
+         {
+            es->hidden = 1; 
+            if (!es->instant_timer)
+              es->instant_timer = ecore_timer_add(es->instant_delay, 
_e_shelf_cb_instant_hide_timer, es);
+         }
+       else
+         {
+            if (es->hide_animator)
+              {
+                 es->interrupted = show;
+                 return;
+              }
+            es->hidden = 1; 
+            if (es->hide_timer) ecore_timer_del(es->hide_timer);
+            es->hide_timer = ecore_timer_add(es->cfg->hide_timeout, 
_e_shelf_cb_hide_animator_timer, es);
+         }
+     }
 }
 
 EAPI void
@@ -609,31 +625,31 @@
 e_shelf_config_new(E_Zone *zone, E_Config_Shelf *cf_es)
 {
    E_Shelf *es;
-   
+
    es = e_shelf_zone_new(zone, cf_es->name, cf_es->style,
-                        cf_es->popup, cf_es->layer, cf_es->id);
+        cf_es->popup, cf_es->layer, cf_es->id);
    if (!es) return NULL;
-   
+
    if (!cf_es->hide_timeout) cf_es->hide_timeout = 1.0; 
    if (!cf_es->hide_duration) cf_es->hide_duration = 1.0; 
    es->cfg = cf_es;
    es->fit_along = cf_es->fit_along;
    es->fit_size = cf_es->fit_size;
-   
+
    e_shelf_orient(es, cf_es->orient);
    e_shelf_position_calc(es);
    e_shelf_populate(es);
-   
+
    if (cf_es->desk_show_mode)
      {
        E_Desk *desk;
        Evas_List *ll;
-       
+
        desk = e_desk_current_get(zone);
        for (ll = cf_es->desk_list; ll; ll = ll->next)
          {
             E_Config_Shelf_Desk *sd;
-            
+
             sd = ll->data;
             if ((desk->x == sd->x) && (desk->y == sd->y))
               {
@@ -644,7 +660,7 @@
      }
    else
      e_shelf_show(es);
-   
+
    e_shelf_toggle(es, 0);
    return es;
 }



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to