[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18717] branches/blender2.5/blender/source /blender: 2.5

Ton Roosendaal ton at blender.org
Wed Jan 28 16:39:46 CET 2009


Revision: 18717
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18717
Author:   ton
Date:     2009-01-28 16:39:39 +0100 (Wed, 28 Jan 2009)

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

Made 'select-tweak-grab' work in 3d window, fcurve and nodes.
For nodes it works with both left/right, the others follow
user preset for select.

Tweak is a WM event, which also follows user preset for 
tablet-style tweaks (release = apply).

You enable tweak events with an operator WM_OT_tweak_gesture.
Keymap entries can assign to left/middle/right button or to
action/select button tweaks.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/animation/anim_markers.c
    branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_ops.c
    branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_select.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_ops.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_select.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_state.c
    branches/blender2.5/blender/source/blender/editors/transform/transform.c
    branches/blender2.5/blender/source/blender/editors/transform/transform.h
    branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_ops.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: branches/blender2.5/blender/source/blender/editors/animation/anim_markers.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/animation/anim_markers.c	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/editors/animation/anim_markers.c	2009-01-28 15:39:39 UTC (rev 18717)
@@ -867,7 +867,7 @@
 	
 	WM_keymap_add_item(keymap, "MARKER_OT_move", GKEY, KM_PRESS, 0, 0);
 	
-	/* generates event, in end to make select work */
+	/* generates event, needs to be after select to work */
 	WM_keymap_verify_item(keymap, "WM_OT_tweak_gesture", RIGHTMOUSE, KM_PRESS, 0, 0);
 	
 }

Modified: branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_ops.c	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_ops.c	2009-01-28 15:39:39 UTC (rev 18717)
@@ -186,7 +186,9 @@
 	//WM_keymap_add_item(keymap, "GRAPHEDIT_OT_set_previewrange", PKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
 	//WM_keymap_add_item(keymap, "GRAPHEDIT_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 	
-		
+	/* generates event, needs to be after select to work */
+	WM_keymap_add_item(keymap, "WM_OT_tweak_gesture", SELECTMOUSE, KM_PRESS, 0, 0);
+
 	/* transform system */
 	transform_keymap_for_space(wm, keymap, SPACE_IPO);
 }

Modified: branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_select.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_select.c	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_select.c	2009-01-28 15:39:39 UTC (rev 18717)
@@ -870,7 +870,8 @@
 	/* set notifier tha things have changed */
 	ANIM_animdata_send_notifiers(C, &ac, ANIM_CHANGED_BOTH);
 	
-	return OPERATOR_FINISHED;
+	/* for tweak grab to work */
+	return OPERATOR_PASS_THROUGH;
 }
  
 void GRAPHEDIT_OT_keyframes_clickselect (wmOperatorType *ot)

Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_ops.c	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_ops.c	2009-01-28 15:39:39 UTC (rev 18717)
@@ -73,5 +73,9 @@
 	WM_keymap_add_item(keymap, "NODE_OT_border_select", BKEY, KM_PRESS, 0, 0);
 	WM_keymap_add_item(keymap, "NODE_OT_delete_selection", XKEY, KM_PRESS, 0, 0);
 	
+	/* generates event, needs to be after select to work */
+	WM_keymap_add_item(keymap, "WM_OT_tweak_gesture", ACTIONMOUSE, KM_PRESS, 0, 0);
+	WM_keymap_add_item(keymap, "WM_OT_tweak_gesture", SELECTMOUSE, KM_PRESS, 0, 0);
+	
 	transform_keymap_for_space(wm, keymap, SPACE_NODE);
 }

Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_select.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_select.c	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_select.c	2009-01-28 15:39:39 UTC (rev 18717)
@@ -125,10 +125,9 @@
 	}
 
 	WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL); /* Do we need to pass the scene? */
-	
-	//WM_event_add_modal_handler(C, &window->handlers, op);
 
-	return /*OPERATOR_RUNNING_MODAL;*/ OPERATOR_FINISHED;
+	/* allow tweak event to work too */
+	return OPERATOR_PASS_THROUGH;
 }
 
 static int node_select_modal(bContext *C, wmOperator *op, wmEvent *event)

Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_state.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_state.c	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_state.c	2009-01-28 15:39:39 UTC (rev 18717)
@@ -126,7 +126,7 @@
 	return 0;
 }
 
-static void node_toggle_visibility(SpaceNode *snode, ARegion *ar, short *mval)
+static int node_toggle_visibility(SpaceNode *snode, ARegion *ar, short *mval)
 {
 	bNode *node;
 	float mx, my;
@@ -140,16 +140,17 @@
 		if(node->flag & NODE_HIDDEN) {
 			if(do_header_hidden_node(snode, node, mx, my)) {
 				ED_region_tag_redraw(ar);
-				break;
+				return 1;
 			}
 		}
 		else {
 			if(do_header_node(snode, node, mx, my)) {
 				ED_region_tag_redraw(ar);
-				break;
+				return 1;
 			}
 		}
 	}
+	return 0;
 }
 
 static int node_toggle_visibility_exec(bContext *C, wmOperator *op)
@@ -160,9 +161,10 @@
 
 	mval[0] = RNA_int_get(op->ptr, "mouse_x");
 	mval[1] = RNA_int_get(op->ptr, "mouse_y");
-	node_toggle_visibility(snode, ar, mval);
-
-	return OPERATOR_FINISHED;
+	if(node_toggle_visibility(snode, ar, mval))
+		return OPERATOR_FINISHED;
+	else
+		return OPERATOR_PASS_THROUGH;
 }
 
 static int node_toggle_visibility_invoke(bContext *C, wmOperator *op, wmEvent *event)

Modified: branches/blender2.5/blender/source/blender/editors/transform/transform.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform.c	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform.c	2009-01-28 15:39:39 UTC (rev 18717)
@@ -882,7 +882,8 @@
 			break;
 		case LEFTMOUSE:
 		case RIGHTMOUSE:
-			if (t->options & CTX_TWEAK)
+			if(WM_modal_tweak_exit(event, t->event_type))
+//			if (t->options & CTX_TWEAK)
 				t->state = TRANS_CONFIRM;
 			break;
 		}

Modified: branches/blender2.5/blender/source/blender/editors/transform/transform.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform.h	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform.h	2009-01-28 15:39:39 UTC (rev 18717)
@@ -218,6 +218,7 @@
     float       center[3];      /* center of transformation             */
     int         center2d[2];    /* center in screen coordinates         */
     short       imval[2];       /* initial mouse position               */
+	short		event_type;		/* event->type used to invoke transform */
 	short       idx_max;		/* maximum index on the input vector	*/
 	float		snap[3];		/* Snapping Gears						*/
 	char		frame_side;		/* Mouse side of the cfra, 'L', 'R' or 'B' */

Modified: branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c	2009-01-28 15:39:39 UTC (rev 18717)
@@ -684,6 +684,8 @@
 	{
 		t->imval[0] = event->x - t->ar->winrct.xmin;
 		t->imval[1] = event->y - t->ar->winrct.ymin;
+		
+		t->event_type = event->type;
 	}
 	else
 	{

Modified: branches/blender2.5/blender/source/blender/editors/transform/transform_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform_ops.c	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform_ops.c	2009-01-28 15:39:39 UTC (rev 18717)
@@ -242,7 +242,10 @@
 		case SPACE_VIEW3D:
 			km = WM_keymap_add_item(keymap, "TFM_OT_transform", GKEY, KM_PRESS, 0, 0);
 			RNA_int_set(km->ptr, "mode", TFM_TRANSLATION);
-
+			
+			km= WM_keymap_add_item(keymap, "TFM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0);
+			RNA_int_set(km->ptr, "mode", TFM_TRANSLATION);
+			
 			km = WM_keymap_add_item(keymap, "TFM_OT_transform", RKEY, KM_PRESS, 0, 0);
 			RNA_int_set(km->ptr, "mode", TFM_ROTATION);
 
@@ -265,6 +268,9 @@
 			km= WM_keymap_add_item(keymap, "TFM_OT_transform", GKEY, KM_PRESS, 0, 0);
 			RNA_int_set(km->ptr, "mode", TFM_TIME_TRANSLATE);
 			
+			km= WM_keymap_add_item(keymap, "TFM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0);
+			RNA_int_set(km->ptr, "mode", TFM_TIME_TRANSLATE);
+			
 			km= WM_keymap_add_item(keymap, "TFM_OT_transform", EKEY, KM_PRESS, 0, 0);
 			RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND);
 			
@@ -278,6 +284,9 @@
 			km= WM_keymap_add_item(keymap, "TFM_OT_transform", GKEY, KM_PRESS, 0, 0);
 			RNA_int_set(km->ptr, "mode", TFM_TRANSLATION);
 			
+			km= WM_keymap_add_item(keymap, "TFM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0);
+			RNA_int_set(km->ptr, "mode", TFM_TRANSLATION);
+			
 				// XXX the 'mode' identifier here is not quite right
 			km= WM_keymap_add_item(keymap, "TFM_OT_transform", EKEY, KM_PRESS, 0, 0);
 			RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND);
@@ -292,6 +301,11 @@
 			km= WM_keymap_add_item(keymap, "TFM_OT_transform", GKEY, KM_PRESS, 0, 0);
 			RNA_int_set(km->ptr, "mode", TFM_TRANSLATION);
 			
+			km= WM_keymap_add_item(keymap, "TFM_OT_transform", EVT_TWEAK_A, KM_ANY, 0, 0);
+			RNA_int_set(km->ptr, "mode", TFM_TRANSLATION);
+			km= WM_keymap_add_item(keymap, "TFM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0);
+			RNA_int_set(km->ptr, "mode", TFM_TRANSLATION);
+			
 			km = WM_keymap_add_item(keymap, "TFM_OT_transform", RKEY, KM_PRESS, 0, 0);
 			RNA_int_set(km->ptr, "mode", TFM_ROTATION);
 			
@@ -301,7 +315,10 @@
 		case SPACE_SEQ:
 			km= WM_keymap_add_item(keymap, "TFM_OT_transform", GKEY, KM_PRESS, 0, 0);
 			RNA_int_set(km->ptr, "mode", TFM_TRANSLATION);
-
+			
+			km= WM_keymap_add_item(keymap, "TFM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0);
+			RNA_int_set(km->ptr, "mode", TFM_TRANSLATION);
+			
 			km= WM_keymap_add_item(keymap, "TFM_OT_transform", EKEY, KM_PRESS, 0, 0);
 			RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND);
 			break;

Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c	2009-01-28 13:16:43 UTC (rev 18716)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c	2009-01-28 15:39:39 UTC (rev 18717)
@@ -970,8 +970,8 @@

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list