Enlightenment CVS committal Author : xcomputerman Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.c e_border.h Log Message: - Disregard that, restore the object refs - Add a few more events, generate events for resize, shade, etc. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.57 retrieving revision 1.58 diff -u -3 -r1.57 -r1.58 --- e_border.c 11 Jan 2005 07:19:31 -0000 1.57 +++ e_border.c 11 Jan 2005 08:00:04 -0000 1.58 @@ -70,20 +70,26 @@ static void _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_border_event_border_resize_free(void *data, void *ev); -static void _e_border_event_border_move_free(void *data, void *ev); static void _e_border_event_border_add_free(void *data, void *ev); static void _e_border_event_border_remove_free(void *data, void *ev); +static void _e_border_event_border_desk_set_free(void *data, void *ev); +static void _e_border_event_border_resize_free(void *data, void *ev); +static void _e_border_event_border_move_free(void *data, void *ev); +static void _e_border_event_border_show_free(void *data, void *ev); +static void _e_border_event_border_hide_free(void *data, void *ev); /* local subsystem globals */ static Evas_List *handlers = NULL; static Evas_List *borders = NULL; static E_Border *focused = NULL; -int E_EVENT_BORDER_RESIZE = 0; -int E_EVENT_BORDER_MOVE = 0; int E_EVENT_BORDER_ADD = 0; int E_EVENT_BORDER_REMOVE = 0; +int E_EVENT_BORDER_DESK_SET = 0; +int E_EVENT_BORDER_RESIZE = 0; +int E_EVENT_BORDER_MOVE = 0; +int E_EVENT_BORDER_SHOW = 0; +int E_EVENT_BORDER_HIDE = 0; #define GRAV_SET(bd, grav) \ printf("GRAV TO %i\n", grav); \ @@ -113,10 +119,12 @@ handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _e_border_cb_client_message, NULL)); ecore_x_passive_grab_replay_func_set(_e_border_cb_grab_replay, NULL); - E_EVENT_BORDER_RESIZE = ecore_event_type_new(); - E_EVENT_BORDER_MOVE = ecore_event_type_new(); E_EVENT_BORDER_ADD = ecore_event_type_new(); E_EVENT_BORDER_REMOVE = ecore_event_type_new(); + E_EVENT_BORDER_RESIZE = ecore_event_type_new(); + E_EVENT_BORDER_MOVE = ecore_event_type_new(); + E_EVENT_BORDER_SHOW = ecore_event_type_new(); + E_EVENT_BORDER_HIDE = ecore_event_type_new(); return 1; } @@ -268,6 +276,7 @@ ev = calloc(1, sizeof(E_Event_Border_Add)); ev->border = bd; + e_object_ref(E_OBJECT(bd)); ecore_event_add(E_EVENT_BORDER_ADD, ev, _e_border_event_border_add_free, NULL); return bd; } @@ -275,17 +284,28 @@ void e_border_desk_set(E_Border *bd, E_Desk *desk) { + E_Event_Border_Desk_Set *ev; + E_OBJECT_CHECK(bd); E_OBJECT_CHECK(desk); if (bd->desk == desk) return; bd->desk->clients = evas_list_remove(bd->desk->clients, bd); desk->clients = evas_list_append(desk->clients, bd); bd->desk = desk; + + ev = calloc(1, sizeof(E_Event_Border_Desk_Set)); + e_object_ref(E_OBJECT(bd)); + e_object_ref(E_OBJECT(desk)); + ev->border = bd; + ev->desk = desk; + ecore_event_add(E_EVENT_BORDER_DESK_SET, ev, _e_border_event_border_desk_set_free, NULL); } void e_border_show(E_Border *bd) { + E_Event_Border_Show *ev; + E_OBJECT_CHECK(bd); if (bd->visible) return; e_container_shape_show(bd->shape); @@ -294,11 +314,18 @@ bd->visible = 1; bd->changed = 1; bd->changes.visible = 1; + + ev = calloc(1, sizeof(E_Event_Border_Show)); + e_object_ref(E_OBJECT(bd)); + ev->border = bd; + ecore_event_add(E_EVENT_BORDER_SHOW, ev, _e_border_event_border_show_free, NULL); } void e_border_hide(E_Border *bd) { + E_Event_Border_Hide *ev; + E_OBJECT_CHECK(bd); if (!bd->visible) return; @@ -313,6 +340,11 @@ bd->visible = 0; bd->changed = 1; bd->changes.visible = 1; + + ev = calloc(1, sizeof(E_Event_Border_Hide)); + e_object_ref(E_OBJECT(bd)); + ev->border = bd; + ecore_event_add(E_EVENT_BORDER_HIDE, ev, _e_border_event_border_hide_free, NULL); } void @@ -332,7 +364,8 @@ bd->client.w, bd->client.h); - ev = calloc(1, sizeof(E_Event_Border_Resize)); + ev = calloc(1, sizeof(E_Event_Border_Move)); + e_object_ref(E_OBJECT(bd)); ev->border = bd; ecore_event_add(E_EVENT_BORDER_MOVE, ev, _e_border_event_border_move_free, NULL); } @@ -356,6 +389,7 @@ bd->client.h); ev = calloc(1, sizeof(E_Event_Border_Resize)); + e_object_ref(E_OBJECT(bd)); ev->border = bd; ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL); } @@ -384,10 +418,12 @@ bd->client.h); mev = calloc(1, sizeof(E_Event_Border_Move)); + e_object_ref(E_OBJECT(bd)); mev->border = bd; ecore_event_add(E_EVENT_BORDER_MOVE, mev, _e_border_event_border_move_free, NULL); rev = calloc(1, sizeof(E_Event_Border_Resize)); + e_object_ref(E_OBJECT(bd)); rev->border = bd; ecore_event_add(E_EVENT_BORDER_RESIZE, rev, _e_border_event_border_resize_free, NULL); } @@ -495,6 +531,8 @@ void e_border_shade(E_Border *bd, E_Direction dir) { + E_Event_Border_Resize *ev; + E_OBJECT_CHECK(bd); if (bd->maximized) return; if (!bd->shaded) @@ -550,12 +588,19 @@ bd->changed = 1; edje_object_signal_emit(bd->bg_object, "shaded", ""); } + + ev = calloc(1, sizeof(E_Event_Border_Resize)); + e_object_ref(E_OBJECT(bd)); + ev->border = bd; + ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL); } } void e_border_unshade(E_Border *bd, E_Direction dir) { + E_Event_Border_Resize *ev; + E_OBJECT_CHECK(bd); if (bd->maximized) return; if (bd->shaded) @@ -619,6 +664,11 @@ bd->changed = 1; edje_object_signal_emit(bd->bg_object, "unshaded", ""); } + + ev = calloc(1, sizeof(E_Event_Border_Resize)); + e_object_ref(E_OBJECT(bd)); + ev->border = bd; + ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL); } } @@ -752,7 +802,7 @@ ev = calloc(1, sizeof(E_Event_Border_Remove)); ev->border = bd; - ecore_event_add(E_EVENT_BORDER_REMOVE, ev, _e_border_event_border_remove_free, NULL); + ecore_event_add(E_EVENT_BORDER_HIDE, ev, _e_border_event_border_remove_free, NULL); if (focused == bd) focused = NULL; while (bd->handlers) @@ -2688,6 +2738,7 @@ E_Event_Border_Resize *e; e = ev; + e_object_unref(E_OBJECT(e->border)); free(e); } @@ -2697,6 +2748,7 @@ E_Event_Border_Resize *e; e = ev; + e_object_unref(E_OBJECT(e->border)); free(e); } @@ -2706,6 +2758,7 @@ E_Event_Border_Add *e; e = ev; + e_object_unref(E_OBJECT(e->border)); free(e); } @@ -2718,3 +2771,35 @@ free(e); } +static void +_e_border_event_border_show_free(void *data, void *ev) +{ + E_Event_Border_Show *e; + + e = ev; + e_object_unref(E_OBJECT(e->border)); + free(e); +} + +static void +_e_border_event_border_hide_free(void *data, void *ev) +{ + E_Event_Border_Show *e; + + e = ev; + e_object_unref(E_OBJECT(e->border)); + free(e); +} + + +static void +_e_border_event_border_desk_set_free(void *data, void *ev) +{ + E_Event_Border_Desk_Set *e; + + e = ev; + e_object_unref(E_OBJECT(e->border)); + e_object_unref(E_OBJECT(e->desk)); + free(e); +} + =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- e_border.h 11 Jan 2005 02:40:50 -0000 1.18 +++ e_border.h 11 Jan 2005 08:00:05 -0000 1.19 @@ -21,11 +21,6 @@ }; typedef enum _E_Transition E_Transition; -typedef struct _E_Event_Border_Resize E_Event_Border_Resize; -typedef struct _E_Event_Border_Move E_Event_Border_Move; -typedef struct _E_Event_Border_Add E_Event_Border_Add; -typedef struct _E_Event_Border_Remove E_Event_Border_Remove; - struct _E_Border { E_Object e_obj_inherit; @@ -188,6 +183,14 @@ } changes; }; +typedef struct _E_Event_Border_Resize E_Event_Border_Resize; +typedef struct _E_Event_Border_Move E_Event_Border_Move; +typedef struct _E_Event_Border_Add E_Event_Border_Add; +typedef struct _E_Event_Border_Remove E_Event_Border_Remove; +typedef struct _E_Event_Border_Show E_Event_Border_Show; +typedef struct _E_Event_Border_Hide E_Event_Border_Hide; +typedef struct _E_Event_Border_Desk_Set E_Event_Border_Desk_Set; + struct _E_Event_Border_Resize { E_Border *border; @@ -208,6 +211,22 @@ E_Border *border; }; +struct _E_Event_Border_Show +{ + E_Border *border; +}; + +struct _E_Event_Border_Hide +{ + E_Border *border; +}; + +struct _E_Event_Border_Desk_Set +{ + E_Border *border; + E_Desk *desk; +}; + EAPI int e_border_init(void); EAPI int e_border_shutdown(void); @@ -244,6 +263,9 @@ extern EAPI int E_EVENT_BORDER_RESIZE; extern EAPI int E_EVENT_BORDER_MOVE; extern EAPI int E_EVENT_BORDER_ADD; +extern EAPI int E_EVENT_BORDER_SHOW; +extern EAPI int E_EVENT_BORDER_HIDE; extern EAPI int E_EVENT_BORDER_REMOVE; +extern EAPI int E_EVENT_BORDER_DESK_SET; #endif ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs