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