Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : proto

Dir     : e17/proto/etk/src/bin


Modified Files:
        etk_xdnd_test.c 


Log Message:
- add test for text dnd
- ++pretyyness

===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/bin/etk_xdnd_test.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- etk_xdnd_test.c     14 Feb 2006 13:37:38 -0000      1.7
+++ etk_xdnd_test.c     14 Feb 2006 23:32:59 -0000      1.8
@@ -7,6 +7,7 @@
 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 *event, void 
*data);
+static void _etk_test_xdnd_drag_drop_cb3(Etk_Object *object, void *event, 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);
@@ -19,10 +20,13 @@
 {
    static Etk_Widget  *win = NULL;
    Etk_Widget  *vbox;
+   Etk_Widget  *vbox2;
    Etk_Widget  *button;
    Etk_Widget  *label;
    Etk_Widget  *image;
    Etk_Widget  *entry;
+   Etk_Widget  *frame;
+   Etk_Widget  *sep;
    char      **dnd_types;
    int         dnd_types_num;  
    
@@ -32,65 +36,107 @@
       return;
    }
    
+   /* create window */
    win = etk_window_new();
-   etk_window_title_set(ETK_WINDOW(win), _("Etk X Drag / Drop Test"));
+   etk_window_title_set(ETK_WINDOW(win), _("Etk DnD / Selections Test"));
    etk_container_border_width_set(ETK_CONTAINER(win), 5);
    etk_signal_connect("delete_event", ETK_OBJECT(win), 
ETK_CALLBACK(etk_window_hide_on_delete), NULL);
    
+   /* create main box */
    vbox = etk_vbox_new(ETK_FALSE, 3);
    etk_container_add(ETK_CONTAINER(win), vbox);
-
-   label = etk_label_new(_("No File Set"));   
+   
+   /* frame for DnD tests */
+   frame = etk_frame_new("Drag and Drop");
+   etk_container_add(ETK_CONTAINER(vbox), frame);   
+   vbox2 = etk_vbox_new(ETK_FALSE, 3);
+   etk_container_add(ETK_CONTAINER(frame), vbox2);
    
    dnd_types_num = 1;
    dnd_types = calloc(dnd_types_num, sizeof(char*));
    dnd_types[0] = strdup("text/uri-list");
    
-   button = etk_button_new_with_label(_("Drag Any File Onto Me"));
+   label = etk_label_new(_("No File Set"));         
+   button = etk_button_new_with_label(_("Drop a file here (text/uri-list)"));
    etk_widget_dnd_dest_set(button, ETK_TRUE);
    etk_widget_dnd_types_set(button, dnd_types, dnd_types_num);
    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);   
+   etk_box_pack_start(ETK_BOX(vbox2), button, ETK_FALSE, ETK_FALSE, 0);   
+   etk_box_pack_start(ETK_BOX(vbox2), label, ETK_FALSE, ETK_FALSE, 0);
 
+   sep = etk_hseparator_new();
+   etk_box_pack_start(ETK_BOX(vbox2), sep, ETK_FALSE, ETK_FALSE, 0);
+   
    image = etk_image_new_from_file(PACKAGE_DATA_DIR "/images/e_icon.png");
-
-   button = etk_button_new_with_label(_("Drag Any Image Onto Me"));
+   button = etk_button_new_with_label(_("Drop an image here"));
    etk_widget_dnd_dest_set(button, ETK_TRUE);
+   dnd_types_num = 1;
+   dnd_types = calloc(dnd_types_num, sizeof(char*));
+   dnd_types[0] = strdup("text/uri-list");
+   etk_widget_dnd_types_set(button, dnd_types, dnd_types_num);   
    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);
+   etk_box_pack_start(ETK_BOX(vbox2), button, ETK_FALSE, ETK_FALSE, 0);  
+   etk_box_pack_start(ETK_BOX(vbox2), image, ETK_FALSE, ETK_FALSE, 0);
 
-   label = etk_label_new("");
-   etk_signal_connect("clipboard_received", ETK_OBJECT(label), 
ETK_CALLBACK(_etk_test_xdnd_clipboard_text_request_cb), NULL);
+   sep = etk_hseparator_new();
+   etk_box_pack_start(ETK_BOX(vbox2), sep, ETK_FALSE, ETK_FALSE, 0);   
    
+   label = etk_label_new(_("Drop some text below"));
+   entry = etk_entry_new();   
+   dnd_types_num = 1;
+   dnd_types = calloc(dnd_types_num, sizeof(char*));
+   dnd_types[0] = strdup("text/plain");  
+   etk_widget_dnd_types_set(entry, dnd_types, dnd_types_num);
+   etk_widget_dnd_dest_set(entry, ETK_TRUE);   
+   etk_signal_connect("drag_drop", ETK_OBJECT(entry), 
ETK_CALLBACK(_etk_test_xdnd_drag_drop_cb3), NULL);
+   etk_box_pack_start(ETK_BOX(vbox2), label, ETK_FALSE, ETK_FALSE, 0);  
+   etk_box_pack_start(ETK_BOX(vbox2), entry, ETK_FALSE, ETK_FALSE, 0);   
+   
+   /* frame for clipboard tests */
+   frame = etk_frame_new("Clipboard");
+   etk_container_add(ETK_CONTAINER(vbox), frame);   
+   vbox2 = etk_vbox_new(ETK_FALSE, 0);
+   etk_container_add(ETK_CONTAINER(frame), vbox2);
+   
+   label = etk_label_new("");
+   etk_signal_connect("clipboard_received", 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);   
+   etk_box_pack_start(ETK_BOX(vbox2), button, ETK_FALSE, ETK_FALSE, 0);  
+   etk_box_pack_start(ETK_BOX(vbox2), label, ETK_FALSE, ETK_FALSE, 0);   
+   
+   sep = etk_hseparator_new();
+   etk_box_pack_start(ETK_BOX(vbox2), sep, ETK_FALSE, ETK_FALSE, 0);   
    
    entry = etk_entry_new();
    button = etk_button_new_with_label(_("Click me to copy text below"));
    etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(_etk_test_xdnd_button_copy_cb), entry);
-   etk_box_pack_start(ETK_BOX(vbox), button, ETK_FALSE, ETK_FALSE, 0);   
-   etk_box_pack_start(ETK_BOX(vbox), entry, ETK_FALSE, ETK_FALSE, 0);
+   etk_box_pack_start(ETK_BOX(vbox2), button, ETK_FALSE, ETK_FALSE, 0);   
+   etk_box_pack_start(ETK_BOX(vbox2), entry, ETK_FALSE, ETK_FALSE, 0);
    
-   label = etk_label_new("");
-   etk_signal_connect("selection_received", ETK_OBJECT(label), 
ETK_CALLBACK(_etk_test_xdnd_selection_text_request_cb), NULL);
+   /* frame for selection test */
+   frame = etk_frame_new("Selections");
+   etk_container_add(ETK_CONTAINER(vbox), frame);
+   vbox2 = etk_vbox_new(ETK_FALSE, 0);
+   etk_container_add(ETK_CONTAINER(frame), vbox2);
    
+   label = etk_label_new("");
+   etk_signal_connect("selection_received", ETK_OBJECT(label), 
ETK_CALLBACK(_etk_test_xdnd_selection_text_request_cb), NULL);   
    button = etk_button_new_with_label(_("Press me to get selection text"));
    etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(_etk_test_xdnd_button_selection_get_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);   
+   etk_box_pack_start(ETK_BOX(vbox2), button, ETK_FALSE, ETK_FALSE, 0);  
+   etk_box_pack_start(ETK_BOX(vbox2), label, ETK_FALSE, ETK_FALSE, 0);   
+   
+   sep = etk_hseparator_new();
+   etk_box_pack_start(ETK_BOX(vbox2), sep, ETK_FALSE, ETK_FALSE, 0);   
    
    entry = etk_entry_new();
    button = etk_button_new_with_label(_("Click me to set selection text"));
    etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(_etk_test_xdnd_button_selection_set_cb), entry);
-   etk_box_pack_start(ETK_BOX(vbox), button, ETK_FALSE, ETK_FALSE, 0);   
-   etk_box_pack_start(ETK_BOX(vbox), entry, ETK_FALSE, ETK_FALSE, 0);
+   etk_box_pack_start(ETK_BOX(vbox2), button, ETK_FALSE, ETK_FALSE, 0);   
+   etk_box_pack_start(ETK_BOX(vbox2), entry, ETK_FALSE, ETK_FALSE, 0);
    
    etk_widget_show_all(win);
 }
@@ -157,6 +203,22 @@
    }
 }
 
+/* Called when text is dropped on the entry */
+static void _etk_test_xdnd_drag_drop_cb3(Etk_Object *object, void *event, void 
*data)
+{
+   Etk_Event_Selection_Request *ev;
+   Etk_Selection_Data_Text *text;
+
+   ev = event;  
+   
+   if(ev->content != ETK_SELECTION_CONTENT_TEXT)
+     return;
+   
+   text = ev->data;
+   
+   etk_entry_text_set(ETK_ENTRY(object), text->text);
+}
+
 /* Called when a some text is pasted */
 static void _etk_test_xdnd_clipboard_text_request_cb(Etk_Object *object, void 
*event, void *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

Reply via email to