[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32500] trunk/blender/source/blender/ windowmanager/intern/wm_window.c: Less cryptic modifier key types

Nathan Letwory nathan at letworyinteractive.com
Fri Oct 15 15:03:11 CEST 2010


Revision: 32500
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32500
Author:   jesterking
Date:     2010-10-15 15:03:10 +0200 (Fri, 15 Oct 2010)

Log Message:
-----------
Less cryptic modifier key types

Modified Paths:
--------------
    trunk/blender/source/blender/windowmanager/intern/wm_window.c

Modified: trunk/blender/source/blender/windowmanager/intern/wm_window.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_window.c	2010-10-15 12:29:02 UTC (rev 32499)
+++ trunk/blender/source/blender/windowmanager/intern/wm_window.c	2010-10-15 13:03:10 UTC (rev 32500)
@@ -521,22 +521,37 @@
 
 /* ************ events *************** */
 
-static int query_qual(char qual) 
+typedef enum
 {
+	SHIFT = 's',
+	CONTROL = 'c',
+	ALT = 'a',
+	OS = 'C'
+} modifierKeyType;
+
+/* check if specified modifier key type is pressed */
+static int query_qual(modifierKeyType qual) 
+{
 	GHOST_TModifierKeyMask left, right;
 	int val= 0;
 	
-	if (qual=='s') {
-		left= GHOST_kModifierKeyLeftShift;
-		right= GHOST_kModifierKeyRightShift;
-	} else if (qual=='c') {
-		left= GHOST_kModifierKeyLeftControl;
-		right= GHOST_kModifierKeyRightControl;
-	} else if (qual=='C') {
-		left= right= GHOST_kModifierKeyOS;
-	} else {
-		left= GHOST_kModifierKeyLeftAlt;
-		right= GHOST_kModifierKeyRightAlt;
+	switch(qual) {
+		case SHIFT:
+			left= GHOST_kModifierKeyLeftShift;
+			right= GHOST_kModifierKeyRightShift;
+			break;
+		case CONTROL:
+			left= GHOST_kModifierKeyLeftControl;
+			right= GHOST_kModifierKeyRightControl;
+			break;
+		case OS:
+			left= right= GHOST_kModifierKeyOS;
+			break;
+		case ALT:
+		default:
+			left= GHOST_kModifierKeyLeftAlt;
+			right= GHOST_kModifierKeyRightAlt;
+			break;
 	}
 	
 	GHOST_GetModifierKeyState(g_system, left, &val);
@@ -605,19 +620,19 @@
 				
 				/* bad ghost support for modifier keys... so on activate we set the modifiers again */
 				kdata.ascii= 0;
-				if (win->eventstate->shift && !query_qual('s')) {
+				if (win->eventstate->shift && !query_qual(SHIFT)) {
 					kdata.key= GHOST_kKeyLeftShift;
 					wm_event_add_ghostevent(wm, win, GHOST_kEventKeyUp, time, &kdata);
 				}
-				if (win->eventstate->ctrl && !query_qual('c')) {
+				if (win->eventstate->ctrl && !query_qual(CONTROL)) {
 					kdata.key= GHOST_kKeyLeftControl;
 					wm_event_add_ghostevent(wm, win, GHOST_kEventKeyUp, time, &kdata);
 				}
-				if (win->eventstate->alt && !query_qual('a')) {
+				if (win->eventstate->alt && !query_qual(ALT)) {
 					kdata.key= GHOST_kKeyLeftAlt;
 					wm_event_add_ghostevent(wm, win, GHOST_kEventKeyUp, time, &kdata);
 				}
-				if (win->eventstate->oskey && !query_qual('C')) {
+				if (win->eventstate->oskey && !query_qual(OS)) {
 					kdata.key= GHOST_kKeyOS;
 					wm_event_add_ghostevent(wm, win, GHOST_kEventKeyUp, time, &kdata);
 				}





More information about the Bf-blender-cvs mailing list