From: <enl...@li...> - 2006-02-09 22:41:56
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk/src/bin Modified Files: etk_xdnd_test.c Log Message: create new files for xdnd stuff and implement paste support for selections. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/bin/etk_xdnd_test.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- etk_xdnd_test.c 8 Feb 2006 12:49:38 -0000 1.1 +++ etk_xdnd_test.c 9 Feb 2006 22:41:19 -0000 1.2 @@ -18,6 +18,16 @@ } } +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; @@ -33,12 +43,26 @@ 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); } -/* Creates the window for the xdnd test */ +static void _etk_test_xdnd_button_paste_cb(Etk_Object *object, void *data) +{ + Etk_Label *label; + + etk_selection_text_request(ETK_WIDGET(data)); +} +/* Creates the window for the xdnd test */ void etk_test_xdnd_window_create(void *data) { static Etk_Widget *win = NULL; @@ -46,6 +70,7 @@ Etk_Widget *button; Etk_Widget *label; Etk_Widget *image; + Etk_Widget *entry; if (win) { @@ -66,6 +91,8 @@ button = etk_button_new_with_label(_("Drag Any File Onto Me")); etk_widget_xdnd_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); etk_box_pack_start(ETK_BOX(vbox), button, ETK_FALSE, ETK_FALSE, 0); etk_box_pack_start(ETK_BOX(vbox), label, ETK_FALSE, ETK_FALSE, 0); @@ -75,9 +102,25 @@ button = etk_button_new_with_label(_("Drag Any Image Onto Me")); etk_widget_xdnd_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), button, ETK_FALSE, ETK_FALSE, 0); + etk_box_pack_start(ETK_BOX(vbox), image, ETK_FALSE, ETK_FALSE, 0); - etk_box_pack_start(ETK_BOX(vbox), image, ETK_FALSE, ETK_FALSE, 0); + label = etk_label_new(""); + etk_signal_connect("selection_get", ETK_OBJECT(label), ETK_CALLBACK(_etk_test_xdnd_clipboard_text_request_cb), NULL); + + button = etk_button_new_with_label(_("Press me to paste text")); + etk_signal_connect("clicked", ETK_OBJECT(button), ETK_CALLBACK(_etk_test_xdnd_button_paste_cb), label); + etk_box_pack_start(ETK_BOX(vbox), button, ETK_FALSE, ETK_FALSE, 0); + etk_box_pack_start(ETK_BOX(vbox), label, ETK_FALSE, ETK_FALSE, 0); +/* + label = etk_label_new(_("Control+V on entry to paste")); + etk_box_pack_start(ETK_BOX(vbox), label, ETK_FALSE, ETK_FALSE, 0); + + entry = etk_entry_new(); + etk_widget_xdnd_set(entry, ETK_TRUE); + etk_signal_connect("drag_drop", ETK_OBJECT(button), ETK_CALLBACK(_etk_test_xdnd_drag_drop_cb), entry); + etk_box_pack_start(ETK_BOX(vbox), label, ETK_FALSE, ETK_FALSE, 0); +*/ etk_widget_show_all(win); } |