r2417: Merged icons and backdrop dropboxes into a single Ultimate DropBox widget,
[rox-filer.git] / ROX-Filer / src / dnd.h
blobdc8603611d56eef92e1ed5b67d9a13d4e004feb8
1 /*
2 * ROX-Filer, filer for the ROX desktop project
3 * By Thomas Leonard, <tal197@users.sourceforge.net>.
4 */
6 #ifndef _DND_H
7 #define _DND_H
9 #include <gtk/gtk.h>
11 enum
13 TARGET_RAW,
14 TARGET_URI_LIST,
15 TARGET_XDS,
16 TARGET_STRING,
19 typedef enum {
20 MOTION_NONE, /* Ignoring motion events - click to start! */
21 MOTION_REPOSITION, /* Motion events move current_grab_icon */
22 MOTION_READY_FOR_DND, /* Moving much will start dnd */
23 MOTION_DISABLED, /* Release all buttons to go to MOTION_NONE */
24 } MotionType;
25 extern MotionType motion_state;
26 extern gint drag_start_x, drag_start_y;
27 extern gint motion_buttons_pressed;
29 extern gboolean o_no_hostnames;
30 extern int spring_in_progress;
31 extern Option o_dnd_spring_open, o_dnd_drag_to_icons;
32 extern Option o_dnd_left_menu;
33 extern const char *drop_dest_prog;
34 extern const char *drop_dest_dir;
35 extern const char *drop_dest_pass_through;
36 extern const char *drop_dest_bookmark;
37 extern GdkAtom XdndDirectSave0;
38 extern GdkAtom text_uri_list;
39 extern GdkAtom _rox_run_action;
40 extern GdkAtom application_octet_stream;
41 extern GdkAtom xa_string;
43 void drag_selection(GtkWidget *widget, GdkEventMotion *event, guchar *uri_list);
44 void drag_one_item(GtkWidget *widget,
45 GdkEventMotion *event,
46 const guchar *full_path,
47 DirItem *item,
48 MaskedPixmap *image);
49 void drag_data_get(GtkWidget *widget,
50 GdkDragContext *context,
51 GtkSelectionData *selection_data,
52 guint info,
53 guint32 time,
54 gpointer data);
55 void make_drop_target(GtkWidget *widget, GtkDestDefaults defaults);
56 void drag_set_pinboard_dest(GtkWidget *widget);
57 void dnd_init(void);
58 gboolean provides(GdkDragContext *context, GdkAtom target);
60 void dnd_spring_load(GdkDragContext *context, FilerWindow *src_win);
61 void dnd_spring_abort(void);
62 const guchar *dnd_motion_item(GdkDragContext *context, DirItem **item_p);
64 gboolean dnd_motion_press(GtkWidget *widget, GdkEventButton *event);
65 void dnd_motion_start(MotionType motion);
66 gboolean dnd_motion_release(GdkEventButton *event);
67 void dnd_motion_disable(void);
68 void dnd_motion_ungrab(void);
69 gboolean dnd_motion_moved(GdkEventMotion *event);
70 void dnd_motion_grab_pointer(void);
72 #endif /* _DND_H */