Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : proto

Dir     : e17/proto/etk/src/bin


Modified Files:
        etk_xdnd_test.c 


Log Message:
- begin working on drag support

===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/bin/etk_xdnd_test.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- etk_xdnd_test.c     14 Feb 2006 23:32:59 -0000      1.8
+++ etk_xdnd_test.c     15 Feb 2006 03:13:54 -0000      1.9
@@ -3,6 +3,9 @@
 #include <stdlib.h>
 #include "config.h"
 
+static Etk_Widget *drag;
+static int start = 1;
+
 static void _etk_test_xdnd_drag_drop_cb(Etk_Object *object, void *event, 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);
@@ -14,7 +17,9 @@
 static void _etk_test_xdnd_selection_text_request_cb(Etk_Object *object, void 
*event, void *data);
 static void _etk_test_xdnd_button_selection_set_cb(Etk_Object *object, void 
*data);
 static void _etk_test_xdnd_button_selection_get_cb(Etk_Object *object, void 
*data);
-
+static void _etk_test_xdnd_mouse_move_cb(Etk_Object *object, void *event, void 
*data);
+static void _etk_test_xdnd_drag_end_cb(Etk_Object *object, void *data);
+ 
 /* Creates the window for the xdnd test */
 void etk_test_xdnd_window_create(void *data)
 {
@@ -93,6 +98,18 @@
    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);   
+
+   sep = etk_hseparator_new();
+   etk_box_pack_start(ETK_BOX(vbox2), sep, ETK_FALSE, ETK_FALSE, 0);   
+   
+   button = etk_button_new_with_label(_("Drag Me!"));
+   etk_signal_connect("mouse_move", ETK_OBJECT(button), 
ETK_CALLBACK(_etk_test_xdnd_mouse_move_cb), NULL);   
+   drag = etk_drag_new();
+   etk_signal_connect("drag_end", ETK_OBJECT(drag), 
ETK_CALLBACK(_etk_test_xdnd_drag_end_cb), NULL);
+   label = etk_label_new(_("Dragged Text!"));
+   etk_container_add(ETK_CONTAINER(drag), etk_button_new_with_label("Foo!"));
+   etk_box_pack_start(ETK_BOX(vbox2), button, ETK_FALSE, ETK_FALSE, 0);
+   
    
    /* frame for clipboard tests */
    frame = etk_frame_new("Clipboard");
@@ -130,13 +147,13 @@
    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);   
+   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(vbox2), button, ETK_FALSE, ETK_FALSE, 0);   
-   etk_box_pack_start(ETK_BOX(vbox2), entry, ETK_FALSE, ETK_FALSE, 0);
+   etk_box_pack_start(ETK_BOX(vbox2), entry, ETK_FALSE, ETK_FALSE, 0);   
    
    etk_widget_show_all(win);
 }
@@ -272,3 +289,33 @@
    if(text)
      etk_selection_text_set(ETK_WIDGET(data), text, strlen(text) + 1);
 }
+
+static void _etk_test_xdnd_mouse_move_cb(Etk_Object *object, void *event, void 
*data)
+{
+   Etk_Event_Mouse_Move *ev;
+   
+   ev = event;
+   
+   if(ev->buttons & 0x001 && start)
+     {
+       const char **types;
+       unsigned int num_types;
+       char *data;     
+       
+       start = 0;
+       types = calloc(1, sizeof(char*));
+       num_types = 1;
+       types[0] = strdup("text/plain");
+       data = strdup("This is the drag data!");
+       
+       etk_drag_types_set(ETK_DRAG(drag), types, num_types);
+       etk_drag_data_set(ETK_DRAG(drag), data, strlen(data) + 1);
+       etk_drag_begin(ETK_DRAG(drag));
+     }
+}
+
+static void _etk_test_xdnd_drag_end_cb(Etk_Object *object, void *data)
+{
+   start = 1;
+}
+  




-------------------------------------------------------
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