public Key GetNeighbour(RelativeKeyPosition pos) { if (pos == RelativeKeyPosition.CENTER) { return(this); } return(keyboard.GetNeighbourOfKey(this, pos)); }
public bool HasNeighbour(RelativeKeyPosition pos) { if (pos == RelativeKeyPosition.CENTER) { return(true); } return(keyboard.GetNeighbourOfKey(this, pos) != null); }
public Key GetNeighbourOfKey(Key key, RelativeKeyPosition pos) { var coordinates = GetCoordinatesOfKey(key); switch (pos) { case RelativeKeyPosition.TOP_LEFT: coordinates.X--; coordinates.Y--; return(GetKeyByCoordinates(coordinates)); case RelativeKeyPosition.TOP_CENTER: coordinates.Y--; return(GetKeyByCoordinates(coordinates)); case RelativeKeyPosition.TOP_RIGHT: coordinates.X++; coordinates.Y--; return(GetKeyByCoordinates(coordinates)); case RelativeKeyPosition.LEFT: coordinates.X--; return(GetKeyByCoordinates(coordinates)); case RelativeKeyPosition.CENTER: return(key); case RelativeKeyPosition.RIGHT: coordinates.X++; return(GetKeyByCoordinates(coordinates)); case RelativeKeyPosition.BOTTOM_LEFT: coordinates.X--; coordinates.Y++; return(GetKeyByCoordinates(coordinates)); case RelativeKeyPosition.BOTTOM_CENTER: coordinates.Y++; return(GetKeyByCoordinates(coordinates)); case RelativeKeyPosition.BOTTOM_RIGHT: coordinates.X++; coordinates.Y++; return(GetKeyByCoordinates(coordinates)); default: return(null); // what to do here } }