[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17908] branches/blender2.5/blender/source /blender/editors/screen/screen_ops.c: 2.5

Ton Roosendaal ton at blender.org
Wed Dec 17 17:21:14 CET 2008


Revision: 17908
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17908
Author:   ton
Date:     2008-12-17 17:21:14 +0100 (Wed, 17 Dec 2008)

Log Message:
-----------
2.5

Patch from Michael Fox; adding operator + key definitions for arrow keys, 
to change frame.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c	2008-12-17 15:51:32 UTC (rev 17907)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c	2008-12-17 16:21:14 UTC (rev 17908)
@@ -35,6 +35,8 @@
 #include "BKE_screen.h"
 #include "BKE_utildefines.h"
 
+#include "DNA_scene_types.h"
+
 #include "WM_api.h"
 #include "WM_types.h"
 
@@ -824,6 +826,37 @@
 	RNA_def_property_float_default(prop, 0.5f);
 }
 
+/* ************** frame change operator ***************************** */
+
+
+/* function to be called outside UI context, or for redo */
+static int frame_offset_exec(bContext *C, wmOperator *op)
+{
+	int delta;
+
+	delta = RNA_int_get(op->ptr, "delta");
+
+	C->scene->r.cfra += delta;
+	WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL);
+	/* XXX: add WM_NOTE_TIME_CHANGED? */
+
+	return OPERATOR_FINISHED;
+}
+
+void ED_SCR_OT_frame_offset(wmOperatorType *ot)
+{
+	ot->name = "Frame Offset";
+	ot->idname = "ED_SCR_OT_frame_offset";
+
+	ot->exec= frame_offset_exec;
+
+	ot->poll= ED_operator_screenactive;
+	ot->flag= OPTYPE_REGISTER;
+
+	/* rna */
+	RNA_def_property(ot->srna, "delta", PROP_INT, PROP_NONE);
+}
+
 /* ************** join area operator ********************************************** */
 
 /* operator state vars used:  
@@ -1280,6 +1313,9 @@
 	WM_operatortype_append(ED_SCR_OT_region_split);
 	WM_operatortype_append(ED_SCR_OT_region_flip);
 		
+	/*frame changes*/
+	WM_operatortype_append(ED_SCR_OT_frame_offset);
+
 	/* tools shared by more space types */
 	ED_marker_operatortypes();	
 	
@@ -1300,6 +1336,12 @@
 	 /* tests */
 	RNA_enum_set(WM_keymap_add_item(keymap, "ED_SCR_OT_region_split", SKEY, KM_PRESS, 0, 0)->ptr, "dir", 'h');
 	RNA_enum_set(WM_keymap_add_item(keymap, "ED_SCR_OT_region_split", SKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "dir", 'v');
+	/*frame offsets*/
+	RNA_int_set(WM_keymap_add_item(keymap, "ED_SCR_OT_frame_offset", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", 10);
+	RNA_int_set(WM_keymap_add_item(keymap, "ED_SCR_OT_frame_offset", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", -10);
+	RNA_int_set(WM_keymap_add_item(keymap, "ED_SCR_OT_frame_offset", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", -1);
+	RNA_int_set(WM_keymap_add_item(keymap, "ED_SCR_OT_frame_offset", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", 1);
+
 	WM_keymap_add_item(keymap, "ED_SCR_OT_region_flip", F5KEY, KM_PRESS, 0, 0);
 	WM_keymap_verify_item(keymap, "ED_SCR_OT_repeat_last", F4KEY, KM_PRESS, 0, 0);
 	





More information about the Bf-blender-cvs mailing list