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

Ton Roosendaal ton at blender.org
Sun Aug 16 20:25:25 CEST 2009


Revision: 22529
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22529
Author:   ton
Date:     2009-08-16 20:25:22 +0200 (Sun, 16 Aug 2009)

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

Another keymap goodie for test fun: Tweak events allow to be limited
to a direction, like North, South-West, etc.

Tested with View3D keymap for border, circle & lasso. Issue to look at
still is whether a border should start immediate, or first draw a cross...
this can be an operator property of course.

Note that tweak code can be extended to corner-gestures too (so you can
do a north+east, north+west, and so on... nice for later).

Time to get keymap saving work! :)

(Fixed bug in Mesh edit circle select, missing notifier)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/space_outliner/outliner.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c

Modified: branches/blender2.5/blender/source/blender/editors/space_outliner/outliner.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_outliner/outliner.c	2009-08-16 18:14:17 UTC (rev 22528)
+++ branches/blender2.5/blender/source/blender/editors/space_outliner/outliner.c	2009-08-16 18:25:22 UTC (rev 22529)
@@ -5081,6 +5081,28 @@
 	return string;
 }
 
+static char *keymap_tweak_dir_menu(void)
+{
+	static char string[500];
+	static char formatstr[] = "|%s %%x%d";
+	char *str= string;
+	
+	str += sprintf(str, "Tweak Direction %%t");
+	
+	str += sprintf(str, formatstr, "Any", KM_ANY);
+	str += sprintf(str, formatstr, "North", EVT_GESTURE_N);
+	str += sprintf(str, formatstr, "North-East", EVT_GESTURE_NE);
+	str += sprintf(str, formatstr, "East", EVT_GESTURE_E);
+	str += sprintf(str, formatstr, "Sout-East", EVT_GESTURE_SE);
+	str += sprintf(str, formatstr, "South", EVT_GESTURE_S);
+	str += sprintf(str, formatstr, "South-West", EVT_GESTURE_SW);
+	str += sprintf(str, formatstr, "West", EVT_GESTURE_W);
+	str += sprintf(str, formatstr, "North-West", EVT_GESTURE_NW);
+	
+	return string;
+}
+
+
 static void keymap_type_cb(bContext *C, void *kmi_v, void *unused_v)
 {
 	wmKeymapItem *kmi= kmi_v;
@@ -5158,6 +5180,9 @@
 						str= keymap_tweak_menu();
 						uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, OL_H-1, &kmi->type, 0, 0, 0, 0,  "Tweak gesture");	
 						xstart+= butw2+5;
+						str= keymap_tweak_dir_menu();
+						uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, OL_H-1, &kmi->val, 0, 0, 0, 0,  "Tweak gesture direction");	
+						xstart+= butw2+5;
 						break;
 				}
 				

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c	2009-08-16 18:14:17 UTC (rev 22528)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c	2009-08-16 18:25:22 UTC (rev 22529)
@@ -1800,8 +1800,10 @@
 		mval[1]= y;
 		selecting= LEFTMOUSE==RNA_int_get(op->ptr, "event_type"); // XXX solve
 
-		if(CTX_data_edit_object(C))
+		if(CTX_data_edit_object(C)) {
 			obedit_circle_select(&vc, selecting, mval, (float)radius);
+			WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obact);
+		}
 		else
 			return PE_circle_select(C, selecting, mval, (float)radius);
 	}





More information about the Bf-blender-cvs mailing list