Enlightenment CVS committal Author : moom16 Project : e17 Module : proto
Dir : e17/proto/etk/src/bin Modified Files: etk_button_test.c etk_xdnd_test.c Log Message: * Clean and fix some bugs of the dnd code * API change: xdnd-->dnd to make it more portable =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/bin/etk_button_test.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- etk_button_test.c 8 Feb 2006 12:49:38 -0000 1.7 +++ etk_button_test.c 11 Feb 2006 10:27:14 -0000 1.8 @@ -1,23 +1,9 @@ #include "etk_test.h" #include "config.h" -/* Creates the window for the button test */ - -static void _etk_test_button_drag_drop_cb(Etk_Object *object, void *data) -{ - int num_files, i; - char **files; - - files = etk_widget_xdnd_files_get(ETK_WIDGET(object), &num_files); - printf("Our test widget got a drop with %d files\n", num_files); - - for (i = 0; i < num_files; i++) - { - printf("Widget got: file: %s\n", files[i]); - } -} - +static void _etk_test_button_drag_drop_cb(Etk_Object *object, void *data); +/* Creates the window for the button test */ void etk_test_button_window_create(void *data) { static Etk_Widget *win = NULL; @@ -66,7 +52,7 @@ etk_box_pack_start(ETK_BOX(vbox), button_radio, ETK_FALSE, ETK_FALSE, 0); button_toggle = etk_toggle_button_new_with_label(_("Toggle button")); - etk_widget_xdnd_set(button_toggle, ETK_TRUE); + etk_widget_dnd_aware_set(button_toggle, ETK_TRUE); etk_signal_connect("drag_drop", ETK_OBJECT(button_toggle), ETK_CALLBACK(_etk_test_button_drag_drop_cb), button_toggle); etk_box_pack_start(ETK_BOX(vbox), button_toggle, ETK_FALSE, ETK_FALSE, 0); @@ -75,3 +61,19 @@ etk_widget_show_all(win); } + +/* Called when a file is dropped on the button */ +static void _etk_test_button_drag_drop_cb(Etk_Object *object, void *data) +{ + int num_files, i; + const char **files; + + if (!object) + return; + + files = etk_widget_dnd_files_get(ETK_WIDGET(object), &num_files); + printf("Our test widget got a drop with %d files\n", num_files); + + for (i = 0; i < num_files; i++) + printf("Widget got the file: %s\n", files[i]); +} =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/bin/etk_xdnd_test.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- etk_xdnd_test.c 10 Feb 2006 00:59:07 -0000 1.3 +++ etk_xdnd_test.c 11 Feb 2006 10:27:14 -0000 1.4 @@ -1,73 +1,14 @@ -#include <string.h> - #include "etk_test.h" +#include <string.h> #include "config.h" -static void _etk_test_xdnd_drag_drop_cb(Etk_Object *object, void *data) -{ - int num_files, i; - const char **files; - - files = etk_widget_xdnd_files_get(ETK_WIDGET(object), &num_files); - printf("Our test widget got a drop with %d files\n", num_files); - - for (i = 0; i < num_files; i++) - { - printf("Widget got: file: %s\n", files[i]); - etk_label_set(ETK_LABEL(data), files[i]); - } -} - -static void _etk_test_xdnd_drag_motion_cb(Etk_Object *object, void *data) -{ - printf("You're on top of me!\n"); -} - -static void _etk_test_xdnd_drag_leave_cb(Etk_Object *object, void *data) -{ - printf("You're leaving me!\n"); -} - -static void _etk_test_xdnd_drag_drop_cb2(Etk_Object *object, void *data) -{ - int num_files, i; - const char **files; - - files = etk_widget_xdnd_files_get(ETK_WIDGET(object), &num_files); - printf("Our test widget got a drop with %d files\n", num_files); - - for (i = 0; i < num_files; i++) - { - char *image; - - printf("Widget got: file: %s\n", files[i]); - if((image = strstr(files[i], "file://")) != NULL) - etk_image_set_from_file(ETK_IMAGE(data), image + strlen("file://")); - } -} - -static void _etk_test_xdnd_clipboard_text_request_cb(Etk_Object *object, void *event, void *data) -{ - Etk_Event_Selection_Get *ev; - - ev = event; - - etk_label_set(ETK_LABEL(object), (char *)ev->data); -} - -static void _etk_test_xdnd_button_paste_cb(Etk_Object *object, void *data) -{ - Etk_Label *label; - - etk_selection_text_request(ETK_WIDGET(data)); -} - -static void _etk_test_xdnd_button_copy_cb(Etk_Object *object, void *data) -{ - Etk_Label *label; - - etk_selection_text_set(ETK_WIDGET(data), etk_entry_text_get(ETK_ENTRY(data))); -} +static void _etk_test_xdnd_drag_drop_cb(Etk_Object *object, void *data); +static void _etk_test_xdnd_drag_motion_cb(Etk_Object *object, void *data); +static void _etk_test_xdnd_drag_leave_cb(Etk_Object *object, void *data); +static void _etk_test_xdnd_drag_drop_cb2(Etk_Object *object, void *data); +static void _etk_test_xdnd_clipboard_text_request_cb(Etk_Object *object, void *event, void *data); +static void _etk_test_xdnd_button_paste_cb(Etk_Object *object, void *data); +static void _etk_test_xdnd_button_copy_cb(Etk_Object *object, void *data); /* Creates the window for the xdnd test */ void etk_test_xdnd_window_create(void *data) @@ -96,7 +37,7 @@ label = etk_label_new(_("No File Set")); button = etk_button_new_with_label(_("Drag Any File Onto Me")); - etk_widget_xdnd_set(button, ETK_TRUE); + etk_widget_dnd_aware_set(button, ETK_TRUE); etk_signal_connect("drag_drop", ETK_OBJECT(button), ETK_CALLBACK(_etk_test_xdnd_drag_drop_cb), label); etk_signal_connect("drag_motion", ETK_OBJECT(button), ETK_CALLBACK(_etk_test_xdnd_drag_motion_cb), NULL); etk_signal_connect("drag_leave", ETK_OBJECT(button), ETK_CALLBACK(_etk_test_xdnd_drag_leave_cb), NULL); @@ -107,7 +48,7 @@ image = etk_image_new_from_file(PACKAGE_DATA_DIR "/images/e_icon.png"); button = etk_button_new_with_label(_("Drag Any Image Onto Me")); - etk_widget_xdnd_set(button, ETK_TRUE); + etk_widget_dnd_aware_set(button, ETK_TRUE); etk_signal_connect("drag_drop", ETK_OBJECT(button), ETK_CALLBACK(_etk_test_xdnd_drag_drop_cb2), image); etk_box_pack_start(ETK_BOX(vbox), button, ETK_FALSE, ETK_FALSE, 0); etk_box_pack_start(ETK_BOX(vbox), image, ETK_FALSE, ETK_FALSE, 0); @@ -128,3 +69,71 @@ etk_widget_show_all(win); } + +/* Called when a file is dropped on the button */ +static void _etk_test_xdnd_drag_drop_cb(Etk_Object *object, void *data) +{ + int num_files, i; + const char **files; + + files = etk_widget_dnd_files_get(ETK_WIDGET(object), &num_files); + printf("Our test widget got a drop with %d files\n", num_files); + + for (i = 0; i < num_files; i++) + { + printf("Widget got the file: %s\n", files[i]); + etk_label_set(ETK_LABEL(data), files[i]); + } +} + +/* Called when a file is dragged aboved the button */ +static void _etk_test_xdnd_drag_motion_cb(Etk_Object *object, void *data) +{ + printf("You're on top of me!\n"); +} + +/* Called when a file is dragged out of the button */ +static void _etk_test_xdnd_drag_leave_cb(Etk_Object *object, void *data) +{ + printf("You're leaving me!\n"); +} + +/* Called when a file is dropped on the second button */ +static void _etk_test_xdnd_drag_drop_cb2(Etk_Object *object, void *data) +{ + int num_files, i; + const char **files; + + files = etk_widget_dnd_files_get(ETK_WIDGET(object), &num_files); + printf("Our test widget got a drop with %d files\n", num_files); + + for (i = 0; i < num_files; i++) + { + char *image; + + printf("Widget got the file: %s\n", files[i]); + if ((image = strstr(files[i], "file://")) != NULL) + etk_image_set_from_file(ETK_IMAGE(data), image + strlen("file://")); + } +} + +/* Called when a some text is pasted */ +static void _etk_test_xdnd_clipboard_text_request_cb(Etk_Object *object, void *event, void *data) +{ + Etk_Event_Selection_Get *ev; + + ev = event; + etk_label_set(ETK_LABEL(object), (char *)ev->data); +} + +/* Called when the "paste" button is clicked */ +static void _etk_test_xdnd_button_paste_cb(Etk_Object *object, void *data) +{ + etk_selection_text_request(ETK_WIDGET(data)); +} + +/* Called when the "copy" button is clicked */ +static void _etk_test_xdnd_button_copy_cb(Etk_Object *object, void *data) +{ + etk_selection_text_set(ETK_WIDGET(data), etk_entry_text_get(ETK_ENTRY(data))); +} ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs