DroidFish: Added preference setting to choose between "sticky" and "toggle" mode for selecting squares.

This commit is contained in:
Peter Osterlund
2012-09-02 01:44:41 +00:00
parent 98f3982011
commit 7bbf888eb1
4 changed files with 31 additions and 2 deletions

View File

@@ -57,6 +57,7 @@ public class ChessBoard extends View {
public boolean flipped;
public boolean drawSquareLabels;
boolean oneTouchMoves;
boolean toggleSelection;
List<Move> moveHints;
@@ -106,6 +107,7 @@ public class ChessBoard extends View {
flipped = false;
drawSquareLabels = false;
oneTouchMoves = false;
toggleSelection = false;
darkPaint = new Paint();
brightPaint = new Paint();
@@ -610,8 +612,11 @@ public class ChessBoard extends View {
if (!oneTouchMoves) {
int p = pos.getPiece(sq);
if (selectedSquare != -1) {
if (sq == selectedSquare)
if (sq == selectedSquare) {
if (toggleSelection)
setSelection(-1);
return null;
}
if (!myColor(p)) {
Move m = new Move(selectedSquare, sq, Piece.EMPTY);
setSelection(sq);
@@ -625,8 +630,11 @@ public class ChessBoard extends View {
}
} else {
int prevSq = userSelectedSquare ? selectedSquare : -1;
if (prevSq == sq)
if (prevSq == sq) {
if (toggleSelection)
setSelection(-1);
return null;
}
ArrayList<Move> moves = new MoveGen().legalMoves(pos);
Move matchingMove = null;
if (prevSq >= 0)

View File

@@ -490,6 +490,7 @@ public class DroidFish extends Activity implements GUIInterface {
cb.setFlipped(oldCB.flipped);
cb.setDrawSquareLabels(oldCB.drawSquareLabels);
cb.oneTouchMoves = oldCB.oneTouchMoves;
cb.toggleSelection = oldCB.toggleSelection;
setSelection(oldCB.selectedSquare);
cb.userSelectedSquare = oldCB.userSelectedSquare;
setStatusString(statusStr);
@@ -755,6 +756,7 @@ public class DroidFish extends Activity implements GUIInterface {
boolean drawSquareLabels = settings.getBoolean("drawSquareLabels", false);
cb.setDrawSquareLabels(drawSquareLabels);
cb.oneTouchMoves = settings.getBoolean("oneTouchMoves", false);
cb.toggleSelection = getIntSetting("squareSelectType", 0) == 1;
mShowThinking = settings.getBoolean("showThinking", false);
mShowStats = settings.getBoolean("showStats", true);