Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_desk.c e_widget.c e_widget.h e_widget_button.c 
        e_widget_check.c e_widget_radio.c 


Log Message:


some widget work... and maybe a fix for disappearing windows?

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.448
retrieving revision 1.449
diff -u -3 -r1.448 -r1.449
--- e_border.c  16 Oct 2005 04:25:57 -0000      1.448
+++ e_border.c  16 Oct 2005 05:59:18 -0000      1.449
@@ -593,12 +593,13 @@
             if (e_config->focus_revert_on_hide_or_close)
               e_desk_last_focused_focus(bd->desk);
          }
-       if (manage)
+       if (manage == 1)
          {
             /* Make sure that this border isn't deleted */
             bd->await_hide_event++;
          }
-       ecore_x_window_hide(bd->client.win);
+       if (manage != 2)
+         ecore_x_window_hide(bd->client.win);
      }
    
    visible = 0;
@@ -2822,9 +2823,11 @@
      {
        if (bd->await_hide_event > 0)
          bd->await_hide_event--;
-       /* Only hide the border if it is visible */
-       if (bd->visible)
-         e_border_hide(bd, 1);
+       else
+         {
+            /* Only hide the border if it is visible */
+            if (bd->visible) e_border_hide(bd, 1);
+         }
      }
    else
      {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_desk.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -3 -r1.51 -r1.52
--- e_desk.c    5 Sep 2005 23:14:58 -0000       1.51
+++ e_desk.c    16 Oct 2005 05:59:18 -0000      1.52
@@ -232,7 +232,7 @@
                   */
                  if (bd->fullscreen)
                    bd->want_fullscreen = 1;
-                 e_border_hide(bd, 1);
+                 e_border_hide(bd, 2);
               }
          }
      }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_widget.c  12 Oct 2005 16:02:33 -0000      1.2
+++ e_widget.c  16 Oct 2005 05:59:18 -0000      1.3
@@ -18,12 +18,16 @@
    void         (*del_func) (Evas_Object *obj);
    void         (*focus_func) (Evas_Object *obj);
    void         (*activate_func) (Evas_Object *obj);
+   void         (*disable_func) (Evas_Object *obj);
    void         (*on_focus_func) (void *data, Evas_Object *obj);
    void          *on_focus_data;
+   void         (*on_change_func) (void *data, Evas_Object *obj);
+   void          *on_change_data;
    void          *data;
    unsigned char  can_focus : 1;
    unsigned char  child_can_focus : 1;
    unsigned char  focused : 1;
+   unsigned char  disabled : 1;
 }; 
 
 /* local subsystem functions */
@@ -77,6 +81,13 @@
 }
 
 void
+e_widget_disable_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj))
+{
+   API_ENTRY return;
+   sd->disable_func = func;
+}
+
+void
 e_widget_on_focus_hook_set(Evas_Object *obj, void (*func) (void *data, 
Evas_Object *obj), void *data)
 {
    API_ENTRY return;
@@ -85,6 +96,14 @@
 }
 
 void
+e_widget_on_change_hook_set(Evas_Object *obj, void (*func) (void *data, 
Evas_Object *obj), void *data)
+{
+   API_ENTRY return;
+   sd->on_change_func = func;
+   sd->on_change_data = data;
+}
+
+void
 e_widget_data_set(Evas_Object *obj, void *data)
 {
    API_ENTRY return;
@@ -183,7 +202,10 @@
 e_widget_focus_jump(Evas_Object *obj, int forward)
 {
    API_ENTRY return 0;
-   if (!e_widget_can_focus_get(obj)) return 0;
+   if ((!e_widget_can_focus_get(obj)) ||
+       (e_widget_disabled_get(obj)))
+     return 0;
+       
    /* if it has a focus func its an end-point widget like a button */
    if (sd->focus_func)
      {
@@ -213,7 +235,8 @@
               {
                  for (l = sd->subobjs; l; l = l->next)
                    {
-                      if (e_widget_can_focus_get(l->data))
+                      if ((e_widget_can_focus_get(l->data)) &&
+                          (!e_widget_disabled_get(l->data)))
                         {
                            if (focus_next)
                              {
@@ -239,7 +262,8 @@
               {
                  for (l = evas_list_last(sd->subobjs); l; l = l->prev)
                    {
-                      if (e_widget_can_focus_get(l->data))
+                      if ((e_widget_can_focus_get(l->data)) &&
+                          (!e_widget_disabled_get(l->data)))
                         {
                            if (focus_next)
                              {
@@ -290,7 +314,8 @@
          {
             for (l = sd->subobjs; l; l = l->next)
               {
-                 if (e_widget_can_focus_get(l->data))
+                 if ((e_widget_can_focus_get(l->data)) &&
+                     (!e_widget_disabled_get(l->data)))
                    {
                       e_widget_focus_set(l->data, first);
                       break;
@@ -301,7 +326,8 @@
          {
             for (l = evas_list_last(sd->subobjs); l; l = l->prev)
               {
-                 if (e_widget_can_focus_get(l->data))
+                 if ((e_widget_can_focus_get(l->data)) &&
+                     (!e_widget_disabled_get(l->data)))
                    {
                       e_widget_focus_set(l->data, first);
                       break;
@@ -342,6 +368,7 @@
    Evas_Object *parent, *o;
    API_ENTRY return;
    if (sd->focused) return;
+   if (sd->disabled) return;
    parent = obj;
    for (;;)
      {
@@ -370,6 +397,29 @@
 {
    API_ENTRY return;
    if (sd->activate_func) sd->activate_func(obj);
+   e_widget_change(obj);
+}
+
+void
+e_widget_change(Evas_Object *obj)
+{
+   API_ENTRY return;
+   if (sd->on_change_func) sd->on_change_func(sd->on_change_data, obj);
+}
+
+void
+e_widget_disabled_set(Evas_Object *obj, int disabled)
+{
+   API_ENTRY return;
+   sd->disabled = disabled;
+   if (sd->disable_func) sd->disable_func(obj);
+}
+
+int
+e_widget_disabled_get(Evas_Object *obj)
+{
+   API_ENTRY return 0;
+   return sd->disabled;
 }
 
 /* local subsystem functions */
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_widget.h  12 Oct 2005 16:02:33 -0000      1.2
+++ e_widget.h  16 Oct 2005 05:59:18 -0000      1.3
@@ -10,7 +10,9 @@
 EAPI void e_widget_del_hook_set(Evas_Object *obj, void (*func) (Evas_Object 
*obj));
 EAPI void e_widget_focus_hook_set(Evas_Object *obj, void (*func) (Evas_Object 
*obj));
 EAPI void e_widget_activate_hook_set(Evas_Object *obj, void (*func) 
(Evas_Object *obj));
+EAPI void e_widget_disable_hook_set(Evas_Object *obj, void (*func) 
(Evas_Object *obj));
 EAPI void e_widget_on_focus_hook_set(Evas_Object *obj, void (*func) (void 
*data, Evas_Object *obj), void *data);
+EAPI void e_widget_on_change_hook_set(Evas_Object *obj, void (*func) (void 
*data, Evas_Object *obj), void *data);
 EAPI void e_widget_data_set(Evas_Object *obj, void *data);
 EAPI void *e_widget_data_get(Evas_Object *obj);
 EAPI void e_widget_min_size_set(Evas_Object *obj, Evas_Coord minw, Evas_Coord 
minh);
@@ -27,6 +29,9 @@
 EAPI Evas_Object *e_widget_parent_get(Evas_Object *obj);
 EAPI void e_widget_focus_steal(Evas_Object *obj);
 EAPI void e_widget_activate(Evas_Object *obj);
-
+EAPI void e_widget_change(Evas_Object *obj);
+EAPI void e_widget_disabled_set(Evas_Object *obj, int disabled);
+EAPI int  e_widget_disabled_get(Evas_Object *obj);
+    
 #endif
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_button.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_widget_button.c   12 Oct 2005 23:00:45 -0000      1.3
+++ e_widget_button.c   16 Oct 2005 05:59:18 -0000      1.4
@@ -110,6 +110,7 @@
 {
    e_widget_focus_steal(data);
    _e_wid_activate_hook(data);
+   e_widget_change(data);
 }
 
 static void
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_check.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- e_widget_check.c    12 Oct 2005 23:00:45 -0000      1.5
+++ e_widget_check.c    16 Oct 2005 05:59:18 -0000      1.6
@@ -115,6 +115,7 @@
 _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const 
char *source)
 {
    _e_wid_do(data);
+   e_widget_change(data);
 }
 
 static void
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_radio.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_widget_radio.c    12 Oct 2005 23:00:45 -0000      1.4
+++ e_widget_radio.c    16 Oct 2005 05:59:18 -0000      1.5
@@ -155,6 +155,7 @@
 _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const 
char *source)
 {
    _e_wid_do(data);
+   e_widget_change(data);
 }
 
 static void




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to