Enlightenment CVS committal Author : chaos Project : e17 Module : proto
Dir : e17/proto/entropy/src Modified Files: entropy_core.c entropy_gui_event_handlers.c Log Message: * More gui_event migration. * Bug fixes to EWL layout =================================================================== RCS file: /cvs/e/e17/proto/entropy/src/entropy_core.c,v retrieving revision 1.66 retrieving revision 1.67 diff -u -3 -r1.66 -r1.67 --- entropy_core.c 31 Mar 2006 13:45:59 -0000 1.66 +++ entropy_core.c 1 Apr 2006 02:36:36 -0000 1.67 @@ -258,6 +258,9 @@ /*Register GUI event handlers*/ entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_FILE_CREATE, entropy_event_handler_file_create_handler); entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_FILE_REMOVE, entropy_event_handler_file_remove_handler); + entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_FILE_STAT, entropy_event_handler_file_stat_handler); + entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_ACTION_FILE, entropy_event_handler_file_action_handler); + entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_FILE_STAT_AVAILABLE, entropy_event_handler_file_stat_available_handler); @@ -943,7 +946,7 @@ if (iter->active) { (*iter->plugin->gui_event_callback_p) (data->notify, - iter, + instance, data->notify->data, /*An entropy_generic_file*/ iter); } @@ -1049,28 +1052,6 @@ entropy_notify_event_destroy(ev); - } else if (!strcmp(event->event_type,ENTROPY_GUI_EVENT_ACTION_FILE)) { - entropy_notify_event* ev = entropy_notify_event_new(); - ev->event_type = ENTROPY_NOTIFY_FILE_ACTION; - ev->key = event->key; - ev->processed = 1; - - - //printf ("Requested an action execute\n"); - - /*Call the requestors*/ - ecore_list_goto_first(el); - while ( (iter = ecore_list_next(el)) ) { - //printf( "Calling callback at : %p\n", iter->plugin->gui_event_callback_p); - - if (iter->active) (*iter->plugin->gui_event_callback_p) - (ev, - instance, /*We use instance here, because the action runner needs to know the caller*/ - event->data, /*An entropy_generic_file*/ - instance); - } - entropy_notify_event_destroy(ev); - } else if (!strcmp(event->event_type,ENTROPY_GUI_EVENT_FILE_METADATA)) { entropy_notify_event* ev = entropy_notify_event_new(); ev->event_type = ENTROPY_NOTIFY_FILE_METADATA_REQUEST; @@ -1091,58 +1072,6 @@ } entropy_notify_event_destroy(ev); - } else if (!strcmp(event->event_type,ENTROPY_GUI_EVENT_FILE_STAT)) { - entropy_notify_event *ev = entropy_notify_event_new(); - entropy_file_request* request = entropy_malloc(sizeof(entropy_file_request)); - - /*Set up the request..*/ - request->file = event->data; - request->core = instance->core; - request->requester = instance->layout_parent; - /*--------------------------------------------*/ - - ev->event_type = ENTROPY_NOTIFY_FILE_STAT_EXECUTED; - ev->processed = 1; - - entropy_plugin_filesystem_filestat_get(request); - - ecore_list_goto_first(el); - while ( (iter = ecore_list_next(el)) ) { - if (iter->active) (*iter->plugin->gui_event_callback_p) - (ev, - iter, - NULL, /*An entropy_file_stat*/ - iter); - - } - - entropy_free(request); - entropy_notify_event_destroy(ev); - - } else if (!strcmp(event->event_type,ENTROPY_GUI_EVENT_FILE_STAT_AVAILABLE)) { - entropy_notify_event* ev = entropy_notify_event_new(); - ev->event_type = ENTROPY_NOTIFY_FILE_STAT_AVAILABLE; - ev->return_struct = event->data; - if (event->data) ev->data = ((entropy_file_stat*)event->data)->file; - ev->processed = 1; - - - //printf ("Stat available for consumption - %p\n", event->data); - - /*Call the requestors*/ - ecore_list_goto_first(el); - while ( (iter = ecore_list_next(el)) ) { - //printf( "Calling callback at : %p\n", iter->plugin->gui_event_callback_p); - - if (iter->active) (*iter->plugin->gui_event_callback_p) - (ev, - iter, - event->data, /*An entropy_file_stat*/ - iter); - } - entropy_notify_event_destroy(ev); - - /*A thumbnail has been made available*/ } else if (!strcmp(event->event_type,ENTROPY_GUI_EVENT_THUMBNAIL_AVAILABLE)) { entropy_notify_event* ev = entropy_notify_event_new(); @@ -1369,7 +1298,7 @@ if (listener) { listener->count--; - //printf("- Ref count for '%s/%s' -> %d..\n", listener->file->path, listener->file->filename, listener->count); + //printf("- Ref count for (%p) '%s/%s' -> %d..\n", listener->file, listener->file->path, listener->file->filename, listener->count); if (listener->count <= 0) { ecore_hash_remove(core_core->uri_reference_list, listener->file->uri); =================================================================== RCS file: /cvs/e/e17/proto/entropy/src/entropy_gui_event_handlers.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- entropy_gui_event_handlers.c 31 Mar 2006 13:45:59 -0000 1.2 +++ entropy_gui_event_handlers.c 1 Apr 2006 02:36:36 -0000 1.3 @@ -71,3 +71,111 @@ return data; } /*---------------------------*/ + + +/*File stat (outbound) */ +Entropy_Gui_Event_Handler* entropy_event_handler_file_stat_handler() +{ + return entropy_gui_event_handler_new( + entropy_event_handler_file_stat_instance_data, + entropy_event_handler_file_stat_cleanup); + +} + +Entropy_Gui_Event_Handler_Instance_Data* entropy_event_handler_file_stat_instance_data(entropy_gui_event* event, + entropy_gui_component_instance* requestor) +{ + + Entropy_Gui_Event_Handler_Instance_Data* data = entropy_malloc(sizeof(Entropy_Gui_Event_Handler_Instance_Data)); + + entropy_notify_event *ev = entropy_notify_event_new(); + entropy_file_request* request = entropy_malloc(sizeof(entropy_file_request)); + + /*Set up the request..*/ + request->file = event->data; + request->core = entropy_core_get_core(); + request->requester = requestor->layout_parent; + /*--------------------------------------------*/ + + ev->event_type = ENTROPY_NOTIFY_FILE_STAT_EXECUTED; + ev->processed = 1; + + /*Actually request the stat*/ + entropy_plugin_filesystem_filestat_get(request); + + data->notify = ev; + data->misc_data1 = request; + + return data; +} + +void entropy_event_handler_file_stat_cleanup(Entropy_Gui_Event_Handler_Instance_Data* data) +{ + if (data->notify) + entropy_notify_event_destroy(data->notify); + + /*Free the file request*/ + entropy_free(data->misc_data1); + + entropy_free(data); + +} +/*-------------------------------------*/ + + +/*File stat (inbound) */ +Entropy_Gui_Event_Handler* entropy_event_handler_file_stat_available_handler() +{ + return entropy_gui_event_handler_new( + entropy_event_handler_file_stat_available_instance_data, + entropy_event_handler_instance_data_generic_cleanup); + +} + +Entropy_Gui_Event_Handler_Instance_Data* entropy_event_handler_file_stat_available_instance_data(entropy_gui_event* event, + entropy_gui_component_instance* requestor) +{ + + Entropy_Gui_Event_Handler_Instance_Data* data = entropy_malloc(sizeof(Entropy_Gui_Event_Handler_Instance_Data)); + + entropy_notify_event* ev = entropy_notify_event_new(); + ev->event_type = ENTROPY_NOTIFY_FILE_STAT_AVAILABLE; + ev->processed = 1; + + ev->return_struct = event->data; + if (event->data) ev->data = ((entropy_file_stat*)event->data)->file; + + data->notify = ev; + + return data; +} +/*-----------------------------------*/ + +/*Action file*/ +Entropy_Gui_Event_Handler* entropy_event_handler_file_action_handler() +{ + return entropy_gui_event_handler_new( + entropy_event_handler_file_action_instance_data, + entropy_event_handler_instance_data_generic_cleanup); + +} + +Entropy_Gui_Event_Handler_Instance_Data* entropy_event_handler_file_action_instance_data(entropy_gui_event* event, + entropy_gui_component_instance* requestor) +{ + + Entropy_Gui_Event_Handler_Instance_Data* data = entropy_malloc(sizeof(Entropy_Gui_Event_Handler_Instance_Data)); + + entropy_notify_event* ev = entropy_notify_event_new(); + ev->event_type = ENTROPY_NOTIFY_FILE_ACTION; + ev->key = event->key; + ev->processed = 1; + ev->data = event->data; /*An entropy generic file*/ + + data->notify = ev; + + return data; +} + + +/*--------------------------------------*/ ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs