public MouseAxis(MouseAxes axis, float threshold) { this.axis = axis; this.threshold = threshold; }
internal Axis(string name, MouseAxes mouseAxis) { Name = name; _type = InputTypes.Mouse; _mouseAxis = mouseAxis; }
bool RemoveKey(Hashtable cfg, MouseAxes ma, KeyConfig except) { ArrayList al = null; if( FindKey(cfg, ma, out al) ){ foreach(KeyConfig e in al){ if( e == except ) continue; e.MouseAxis = MouseAxes.None; } } return al.Count >= 1 && !(al.Count == 1 && al.Contains(except)); }
bool HasKey(KeyConfig config, MouseAxes ma) { if( config == null ) return false; return config.MouseAxis == ma; }
bool FindKey(Hashtable cfg, MouseAxes ma, out ArrayList keyConfigList) { bool found = false; keyConfigList = new ArrayList(); foreach(IDictionaryEnumerator d in cfg){ KeyConfig config = d.Value as KeyConfig; if( HasKey(config, ma) ) keyConfigList.Add(config); } return found; }
//edit the current config if a mouse axis changed bool EditKey( KeyConfig config, EditStates es, MouseAxes ma) { if( !( (es == EditStates.PosKey && !config.isAxis) || (es == EditStates.NegKey && config.isAxis) ) ) return false; if(config.isAxis && config._biDirLink != null){ KeyConfig HorizConfig; KeyConfig VertConfig; if( config.Direction == BiDir.Horizontal ){ HorizConfig = config; VertConfig = config._biDirLink; }else{ VertConfig = config; HorizConfig = config._biDirLink; } // SET switch(ma){ case MouseAxes.MoveHorizontal: case MouseAxes.MoveVertical: ClearKeys(HorizConfig); ClearKeys(VertConfig); HorizConfig.MouseAxis = MouseAxes.MoveHorizontal; VertConfig.MouseAxis = MouseAxes.MoveVertical; break; case MouseAxes.None: ClearKeys(HorizConfig); ClearKeys(VertConfig); HorizConfig.MouseAxis = MouseAxes.None; VertConfig.MouseAxis = MouseAxes.None; break; default: return false; } } else if(config.isAxis) { ClearKeys(config); config.MouseAxis = ma; } else { return false; } return true; }
public void MouseAxesTheory(int x, int prevX, int y, int prevY, int scrollWheel, int prevScrollWheel, int horizontalScrollWheel, int prevHorizontalScrollWheel, MouseAxes mouseAxes) { MouseState state = new MouseState(x, y, scrollWheel, ButtonState.Released, ButtonState.Released, ButtonState.Released, ButtonState.Released, ButtonState.Released, horizontalScrollWheel); MouseState prevState = new MouseState(prevX, prevY, prevScrollWheel, ButtonState.Released, ButtonState.Released, ButtonState.Released, ButtonState.Released, ButtonState.Released, prevHorizontalScrollWheel); string actionName = "Action" + _counter++; InputManager.CreateAction(actionName, mouseAxes); InputManager.PrevMouseState = prevState; InputManager.MouseState = state; InputManager.ActionUpdate(); float expected = 0; switch (mouseAxes) { case MouseAxes.Horizontal: expected = MathHelper.Clamp((x - prevX) * InputManager.MOUSE_MODIFIER, -1, 1); break; case MouseAxes.Vertical: expected = MathHelper.Clamp((y - prevY) * InputManager.MOUSE_MODIFIER, -1, 1); break; case MouseAxes.ScrollWheel: expected = MathHelper.Clamp((scrollWheel - prevScrollWheel) * InputManager.MOUSE_MODIFIER, -1, 1); break; case MouseAxes.HorizontalScrollWheel: expected = MathHelper.Clamp((horizontalScrollWheel - prevHorizontalScrollWheel) * InputManager.MOUSE_MODIFIER, -1, 1); break; } Assert.Equal(expected, InputManager.GetAxis(actionName), 4); }