projects
/
vchess.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
89a6214
)
Experimental board size auto-adjust
author
Benjamin Auder
<benjamin.auder@somewhere>
Sun, 25 Apr 2021 09:05:05 +0000
(11:05 +0200)
committer
Benjamin Auder
<benjamin.auder@somewhere>
Sun, 25 Apr 2021 09:05:05 +0000
(11:05 +0200)
client/src/components/BaseGame.vue
patch
|
blob
|
blame
|
history
client/src/components/Board.vue
patch
|
blob
|
blame
|
history
client/src/components/MoveList.vue
patch
|
blob
|
blame
|
history
client/src/variants/Pacosako.js
patch
|
blob
|
blame
|
history
diff --git
a/client/src/components/BaseGame.vue
b/client/src/components/BaseGame.vue
index
4b6529f
..
ee3bea1
100644
(file)
--- a/
client/src/components/BaseGame.vue
+++ b/
client/src/components/BaseGame.vue
@@
-22,6
+22,7
@@
div#baseGame
:incheck="incheck"
@play-move="play"
@click-square="clickSquare"
:incheck="incheck"
@play-move="play"
@click-square="clickSquare"
+ @rendered="adjustSize"
)
#turnIndicator(v-if="showTurn") {{ turn }}
#controls.button-group
)
#turnIndicator(v-if="showTurn") {{ turn }}
#controls.button-group
@@
-43,6
+44,7
@@
div#baseGame
p#fenAnalyze(v-show="showFen") {{ (!!vr ? vr.getFen() : "") }}
#movesList
MoveList(
p#fenAnalyze(v-show="showFen") {{ (!!vr ? vr.getFen() : "") }}
#movesList
MoveList(
+ ref="moveslist"
:show="showMoves"
:canAnalyze="canAnalyze"
:canDownload="allowDownloadPGN"
:show="showMoves"
:canAnalyze="canAnalyze"
:canDownload="allowDownloadPGN"
@@
-206,6
+208,9
@@
export default {
if (e.deltaY < 0) this.undo();
else if (e.deltaY > 0) this.play();
},
if (e.deltaY < 0) this.undo();
else if (e.deltaY > 0) this.play();
},
+ adjustSize: function() {
+ this.$refs["moveslist"].adjustBoard("vertical");
+ },
redrawBoard: function() {
this.$refs["board"].re_setDrawings();
},
redrawBoard: function() {
this.$refs["board"].re_setDrawings();
},
diff --git
a/client/src/components/Board.vue
b/client/src/components/Board.vue
index
799185e
..
a871dc3
100644
(file)
--- a/
client/src/components/Board.vue
+++ b/
client/src/components/Board.vue
@@
-31,6
+31,7
@@
export default {
circles: {}, //object of squares' ID --> true (TODO: use a set?)
click: "",
clickTime: 0,
circles: {}, //object of squares' ID --> true (TODO: use a set?)
click: "",
clickTime: 0,
+ initialized: 0,
settings: store.state.settings
};
},
settings: store.state.settings
};
},
@@
-463,6
+464,8
@@
export default {
}
};
}
}
};
}
+ if (this.initialized == 1) this.$emit("rendered");
+ if (this.initialized <= 1) this.initialized++;
return (
h(
"div",
return (
h(
"div",
diff --git
a/client/src/components/MoveList.vue
b/client/src/components/MoveList.vue
index
26c5471
..
e360cb0
100644
(file)
--- a/
client/src/components/MoveList.vue
+++ b/
client/src/components/MoveList.vue
@@
-79,22
+79,16
@@
export default {
document.getElementById("adjuster")
.addEventListener("click", processModalClick);
// Take full width on small screens:
document.getElementById("adjuster")
.addEventListener("click", processModalClick);
// Take full width on small screens:
- let boardSize =
- window.innerWidth >= 768
- ? 0.7 * Math.min(window.innerWidth, window.innerHeight)
- : window.innerWidth;
+ const winBound = Math.min(window.innerWidth, window.innerHeight);
+ let boardSize = (window.innerWidth >= 768 ? 0.7 : 1.0) * winBound;
const movesWidth = window.innerWidth >= 768 ? 280 : 0;
document.getElementById("boardContainer").style.width = boardSize + "px";
let gameContainer = document.getElementById("gameContainer");
gameContainer.style.width = boardSize + movesWidth + "px";
const movesWidth = window.innerWidth >= 768 ? 280 : 0;
document.getElementById("boardContainer").style.width = boardSize + "px";
let gameContainer = document.getElementById("gameContainer");
gameContainer.style.width = boardSize + movesWidth + "px";
- document.getElementById("boardSize").value =
- (boardSize * 100) / (window.innerWidth - movesWidth);
+ const maxWidth =
+ Math.min(window.innerHeight, window.innerWidth - movesWidth);
+ document.getElementById("boardSize").value = (boardSize * 100) / maxWidth;
window.addEventListener("resize", () => this.adjustBoard());
window.addEventListener("resize", () => this.adjustBoard());
- if ("ontouchstart" in window) {
- // TODO: find something better than next height adjustment...
- // maybe each variant could give its ratio (?!)
- setTimeout( () => { this.adjustBoard("vertical"); }, 1000);
- }
},
beforeDestroy: function() {
window.removeEventListener("resize", this.adjustBoard);
},
beforeDestroy: function() {
window.removeEventListener("resize", this.adjustBoard);
@@
-182,11
+176,14
@@
export default {
}
else {
const k = document.getElementById("boardSize").value;
}
else {
const k = document.getElementById("boardSize").value;
- const minBoardWidth = 160; //TODO: these 160 and 280 are arbitrary...
+ // TODO: these 160 and 280 are arbitrary...
+ const minBoardWidth =
+ (window.innerWidth <= 767 || "ontouchstart" in window) ? 160 : 240;
// Value of 0 is board min size; 100 is window.width [- movesWidth]
// Value of 0 is board min size; 100 is window.width [- movesWidth]
+ const maxWidth =
+ Math.min(window.innerHeight, window.innerWidth - movesWidth);
const boardSize =
const boardSize =
- minBoardWidth +
- (k * (window.innerWidth - (movesWidth + minBoardWidth))) / 100;
+ minBoardWidth + (k * (maxWidth - minBoardWidth)) / 100;
boardContainer.style.width = boardSize + "px";
gameContainer.style.width = boardSize + movesWidth + "px";
this.$emit("redraw-board");
boardContainer.style.width = boardSize + "px";
gameContainer.style.width = boardSize + movesWidth + "px";
this.$emit("redraw-board");
diff --git
a/client/src/variants/Pacosako.js
b/client/src/variants/Pacosako.js
index
ddf2fab
..
70121c9
100644
(file)
--- a/
client/src/variants/Pacosako.js
+++ b/
client/src/variants/Pacosako.js
@@
-16,6
+16,10
@@
export class PacosakoRules extends ChessRules {
};
}
};
}
+ static AbbreviateOptions(opts) {
+ return (opts["pacoplay"] ? "PP" : "");
+ }
+
static get IMAGE_EXTENSION() {
return ".png";
}
static get IMAGE_EXTENSION() {
return ".png";
}