[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46198] trunk/blender/source/blender/ editors/space_clip/space_clip.c: Clip editor: added drag-n-drop support so files can be opened in clip editor

Sergey Sharybin sergey.vfx at gmail.com
Wed May 2 18:42:43 CEST 2012


Revision: 46198
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46198
Author:   nazgul
Date:     2012-05-02 16:42:42 +0000 (Wed, 02 May 2012)
Log Message:
-----------
Clip editor: added drag-n-drop support so files can be opened in clip editor
by drag-n-dropping them from an external application.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_clip/space_clip.c

Modified: trunk/blender/source/blender/editors/space_clip/space_clip.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/space_clip.c	2012-05-02 16:18:20 UTC (rev 46197)
+++ trunk/blender/source/blender/editors/space_clip/space_clip.c	2012-05-02 16:42:42 UTC (rev 46198)
@@ -304,9 +304,12 @@
 }
 
 /* spacetype; init callback */
-static void clip_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
+static void clip_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa)
 {
+	ListBase *lb = WM_dropboxmap_find("Clip", SPACE_CLIP, 0);
 
+	/* add drop boxes */
+	WM_event_add_dropbox_handler(&sa->handlers, lb);
 }
 
 static SpaceLink *clip_duplicate(SpaceLink *sl)
@@ -731,6 +734,30 @@
 	return FALSE;
 }
 
+/* dropboxes */
+static int clip_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
+{
+	if (drag->type == WM_DRAG_PATH)
+		if (ELEM3(drag->icon, 0, ICON_FILE_IMAGE, ICON_FILE_BLANK)) /* rule might not work? */
+			return TRUE;
+
+	return FALSE;
+}
+
+static void clip_drop_copy(wmDrag *drag, wmDropBox *drop)
+{
+	/* copy drag path to properties */
+	RNA_string_set(drop->ptr, "filepath", drag->path);
+}
+
+/* area+region dropbox definition */
+static void clip_dropboxes(void)
+{
+	ListBase *lb = WM_dropboxmap_find("Clip", SPACE_CLIP, 0);
+
+	WM_dropbox_add(lb, "CLIP_OT_open", clip_drop_poll, clip_drop_copy);
+}
+
 static void clip_refresh(const bContext *C, ScrArea *sa)
 {
 	wmWindowManager *wm = CTX_wm_manager(C);
@@ -1296,6 +1323,7 @@
 	st->keymap = clip_keymap;
 	st->listener = clip_listener;
 	st->context = clip_context;
+	st->dropboxes = clip_dropboxes;
 	st->refresh = clip_refresh;
 
 	/* regions: main window */




More information about the Bf-blender-cvs mailing list