Enlightenment CVS committal
Author : chaos
Project : e17
Module : proto
Dir : e17/proto/entropy/src
Modified Files:
entropy_core.c entropy_gui_event_handlers.c plugin_helper.c
Log Message:
* Big changes - copy/cut/paste events/requests now available to layout event
consumers
* This is also means that cut/copy/paste are now available from the main window
(as well as through Ctrl-(x|c|v)
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/entropy_core.c,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -3 -r1.91 -r1.92
--- entropy_core.c 6 Sep 2006 11:09:22 -0000 1.91
+++ entropy_core.c 7 Sep 2006 13:40:14 -0000 1.92
@@ -287,6 +287,9 @@
entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_USER_INTERACTION_YES_NO_ABORT,
entropy_event_handler_user_interaction_handler);
entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_EXTENDED_STAT,
entropy_event_handler_extended_stat_handler);
entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_METADATA_GROUPS,
entropy_event_handler_metadata_groups_handler);
+ entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_COPY_REQUEST,
entropy_event_handler_copy_request_handler);
+ entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_CUT_REQUEST,
entropy_event_handler_cut_request_handler);
+ entropy_core_gui_event_handler_add(ENTROPY_GUI_EVENT_PASTE_REQUEST,
entropy_event_handler_paste_request_handler);
//printf("\n\nDetails of thumbnailers:\n");
@@ -594,7 +597,7 @@
/*A function we need, unfortunately, because of the way dlopen works with
string refs, and the need of ecore_hash for
- * a pointer */
+ * a pointer. This isn't a big inefficiency - this is only called on plugin
create */
char* entropy_core_gui_event_get(char* event) {
if (!strcmp(event, ENTROPY_GUI_EVENT_FOLDER_CHANGE_CONTENTS)) {
return "entropy_gui_event_folder_change_contents";
@@ -628,9 +631,14 @@
return "entropy_gui_event_extended_stat";
} else if (!strcmp(event, ENTROPY_GUI_EVENT_METADATA_GROUPS)) {
return "entropy_gui_event_metadata_groups";
- } else {
+ } else if (!strcmp(event, ENTROPY_GUI_EVENT_COPY_REQUEST)) {
+ return "entropy_gui_event_copy_request";
+ } else if (!strcmp(event, ENTROPY_GUI_EVENT_CUT_REQUEST)) {
+ return "entropy_gui_event_cut_request";
+ } else if (!strcmp(event, ENTROPY_GUI_EVENT_PASTE_REQUEST)) {
+ return "entropy_gui_event_paste_request";
+ } else
return "";
- }
}
void generic_file_print(entropy_generic_file* file) {
@@ -999,7 +1007,7 @@
if (!found) {
/*Now add this component to this list*/
ecore_list_append(event_list, comp);
- //printf("Registered interest in '%s' for this gui
component\n", event);
+ /*printf("Registered interest in '%s' for this gui
component\n", event);*/
}
}
}
@@ -1072,9 +1080,8 @@
return;
}
- //printf ("Got layout hash %p for layout at %p\n", lay_hash, layout);
-
- //printf("Called event call, for event: '%s'\n", event->event_type);
+ /*printf ("Got layout hash %p for layout at %p\n", lay_hash, layout);
+ printf("Called event call, for event: '%s'\n", event->event_type);*/
/*Otherwise, get the list of instances that care about this event*/
el = ecore_hash_get(lay_hash, event->event_type);
@@ -1093,6 +1100,7 @@
ecore_list_goto_first(handlers);
while ( (handler = ecore_list_next(handlers))) {
+
data = (*handler->notify_event_cb)(event,instance);
if (data->notify) {
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/entropy_gui_event_handlers.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- entropy_gui_event_handlers.c 5 Sep 2006 06:27:39 -0000 1.14
+++ entropy_gui_event_handlers.c 7 Sep 2006 13:40:14 -0000 1.15
@@ -520,3 +520,91 @@
return data;
}
+
+/*Copy Request */
+Entropy_Gui_Event_Handler* entropy_event_handler_copy_request_handler()
+{
+ return entropy_gui_event_handler_new(
+ entropy_event_handler_copy_request_instance_data,
+ entropy_event_handler_instance_data_generic_cleanup);
+
+}
+
+Entropy_Gui_Event_Handler_Instance_Data*
entropy_event_handler_copy_request_instance_data(entropy_gui_event* event,
+ entropy_gui_component_instance* requestor)
+{
+ Entropy_Gui_Event_Handler_Instance_Data* data = NULL;
+ entropy_notify_event* ev = NULL;
+
+ data = entropy_malloc(sizeof(Entropy_Gui_Event_Handler_Instance_Data));
+
+ ev = entropy_notify_event_new();
+ ev->event_type = ENTROPY_NOTIFY_COPY_REQUEST;
+ ev->return_struct = (void*)1; /*We only call notify if there's data*/
+ ev->processed = 1;
+
+ printf("Copy request at gui_event_handler..\n");
+
+ data->notify = ev;
+
+
+ return data;
+}
+
+
+/*Cut Request */
+Entropy_Gui_Event_Handler* entropy_event_handler_cut_request_handler()
+{
+ return entropy_gui_event_handler_new(
+ entropy_event_handler_cut_request_instance_data,
+ entropy_event_handler_instance_data_generic_cleanup);
+
+}
+
+Entropy_Gui_Event_Handler_Instance_Data*
entropy_event_handler_cut_request_instance_data(entropy_gui_event* event,
+ entropy_gui_component_instance* requestor)
+{
+ Entropy_Gui_Event_Handler_Instance_Data* data = NULL;
+ entropy_notify_event* ev = NULL;
+
+ data = entropy_malloc(sizeof(Entropy_Gui_Event_Handler_Instance_Data));
+
+ ev = entropy_notify_event_new();
+ ev->event_type = ENTROPY_NOTIFY_CUT_REQUEST;
+ ev->return_struct = (void*)1; /*We only call notify if there's data*/
+ ev->processed = 1;
+
+ data->notify = ev;
+
+
+ return data;
+}
+
+/*Paste Request */
+Entropy_Gui_Event_Handler* entropy_event_handler_paste_request_handler()
+{
+ return entropy_gui_event_handler_new(
+ entropy_event_handler_paste_request_instance_data,
+ entropy_event_handler_instance_data_generic_cleanup);
+
+}
+
+Entropy_Gui_Event_Handler_Instance_Data*
+entropy_event_handler_paste_request_instance_data(entropy_gui_event* event,
+ entropy_gui_component_instance* requestor)
+{
+ Entropy_Gui_Event_Handler_Instance_Data* data = NULL;
+ entropy_notify_event* ev = NULL;
+
+ data = entropy_malloc(sizeof(Entropy_Gui_Event_Handler_Instance_Data));
+
+ ev = entropy_notify_event_new();
+ ev->event_type = ENTROPY_NOTIFY_PASTE_REQUEST;
+ ev->return_struct = (void*)1; /*We only call notify if there's data*/
+ ev->processed = 1;
+
+ data->notify = ev;
+
+
+ return data;
+}
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/plugin_helper.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -3 -r1.29 -r1.30
--- plugin_helper.c 26 Aug 2006 12:59:15 -0000 1.29
+++ plugin_helper.c 7 Sep 2006 13:40:14 -0000 1.30
@@ -61,8 +61,6 @@
}
entropy_plugin* entropy_plugin_gui_get_by_name_toolkit(char* toolkit, char*
name) {
- entropy_plugin* plugin;
-
entropy_plugin* list_item;
Ecore_List* plugins = entropy_core_get_core()->plugin_list;
@@ -396,6 +394,42 @@
entropy_core_gui_event_get (ENTROPY_GUI_EVENT_ACTION_FILE);
gui_event->data = file;
entropy_core_layout_notify_event (instance, gui_event,
ENTROPY_EVENT_GLOBAL);
+}
+
+void entropy_event_copy_request(entropy_gui_component_instance* instance)
+{
+ entropy_gui_event *gui_event;
+
+
+ gui_event = entropy_malloc (sizeof (entropy_gui_event));
+ gui_event->event_type =
+ entropy_core_gui_event_get (ENTROPY_GUI_EVENT_COPY_REQUEST);
+ gui_event->data = NULL;
+ entropy_core_layout_notify_event (instance, gui_event,
ENTROPY_EVENT_LOCAL);
+}
+
+void entropy_event_cut_request(entropy_gui_component_instance* instance)
+{
+ entropy_gui_event *gui_event;
+
+
+ gui_event = entropy_malloc (sizeof (entropy_gui_event));
+ gui_event->event_type =
+ entropy_core_gui_event_get (ENTROPY_GUI_EVENT_CUT_REQUEST);
+ gui_event->data = NULL;
+ entropy_core_layout_notify_event (instance, gui_event,
ENTROPY_EVENT_LOCAL);
+}
+
+void entropy_event_paste_request(entropy_gui_component_instance* instance)
+{
+ entropy_gui_event *gui_event;
+
+
+ gui_event = entropy_malloc (sizeof (entropy_gui_event));
+ gui_event->event_type =
+ entropy_core_gui_event_get (ENTROPY_GUI_EVENT_PASTE_REQUEST);
+ gui_event->data = NULL;
+ entropy_core_layout_notify_event (instance, gui_event,
ENTROPY_EVENT_LOCAL);
}
entropy_generic_file*
entropy_layout_current_folder_get(entropy_gui_component_instance_layout* layout)
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs