[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