aboutsummaryrefslogtreecommitdiff
path: root/src/game_tab/left_panel/board/BoardCanvas.cpp
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2022-12-30 13:17:06 +0100
committerLoic Guegan <manzerbredes@mailbox.org>2022-12-30 13:17:06 +0100
commit98e31a2c11fc1ae3dbc93576956ce3f4faad7fbd (patch)
tree54b7df1f6e3b5887ecc7072ae719911c29ec4427 /src/game_tab/left_panel/board/BoardCanvas.cpp
parent2fd237a78ffd78e198bfb68ba2fc9fa296a1fe9f (diff)
Improve UI
Diffstat (limited to 'src/game_tab/left_panel/board/BoardCanvas.cpp')
-rw-r--r--src/game_tab/left_panel/board/BoardCanvas.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/game_tab/left_panel/board/BoardCanvas.cpp b/src/game_tab/left_panel/board/BoardCanvas.cpp
index 0d75c62..47b7661 100644
--- a/src/game_tab/left_panel/board/BoardCanvas.cpp
+++ b/src/game_tab/left_panel/board/BoardCanvas.cpp
@@ -75,7 +75,7 @@ void BoardCanvas::OnPaint(wxPaintEvent &event) {
adata.frame++;
if(adata.frame>=adata.frames){
adata.reuseBuffer=false;
- SetupBoard(adata.final_board, adata.final_is_black_turn, adata.final_captures);
+ SetupBoard(adata.final_board, adata.final_is_black_turn, adata.final_captures,white_player,black_player);
}
}
}
@@ -103,10 +103,13 @@ void BoardCanvas::ApplyPreferences() {
}
void BoardCanvas::SetupBoard(std::string board, bool is_black_turn,
- std::map<char, std::uint8_t> captures) {
+ std::map<char, std::uint8_t> captures,
+ std::string white_player, std::string black_player) {
this->board = board;
this->is_black_turn = is_black_turn;
this->captures = captures;
+ this->white_player=white_player;
+ this->black_player=black_player;
Refresh();
}
@@ -208,8 +211,9 @@ void BoardCanvas::DrawBoard(wxDC &dc) {
if(rank==7){ // Bottom numbers
dc.DrawText(wxString((char)('a'+7-file)),
x+square_width/2-numbers_size.x/2,y+square_width);
- }
+ }
+ // Draw pieces
std::uint8_t prank = rank;
std::uint8_t pfile = file;
if (black_side) {
@@ -252,13 +256,16 @@ void BoardCanvas::DrawBoard(wxDC &dc) {
badgeWidth);
dc.DrawRectangle(badge);
- // Draw captures first for white then for black
+ // Draw captures (+player names) first for white then for black
std::uint32_t captures_size = t_captures->GetPiecesSizes();
std::uint8_t padding = numbers_size.y+10;
std::uint32_t offsetX = 0;
std::uint32_t offsetY = -(captures_size + padding);
+ std::uint32_t offsetYPlayerName=offsetY-captures_size;
+ // White
if (black_side) {
offsetY = 8 * square_width + padding;
+ offsetYPlayerName = offsetY+captures_size;
}
for (char p : {'P', 'N', 'B', 'R', 'Q'}) {
if (captures.find(p) != captures.end()) {
@@ -269,11 +276,15 @@ void BoardCanvas::DrawBoard(wxDC &dc) {
offsetX += captures_size / 2;
}
}
+ dc.DrawText(wxString(black_player),boardX,boardY + offsetYPlayerName);
+ // Black
offsetX = 0;
if (black_side) {
offsetY = -(captures_size + padding);
+ offsetYPlayerName = offsetY-captures_size;
} else {
offsetY = 8 * square_width + padding;
+ offsetYPlayerName = offsetY+captures_size;
}
for (char p : {'p', 'n', 'b', 'r', 'q'}) {
if (captures.find(p) != captures.end()) {
@@ -284,6 +295,7 @@ void BoardCanvas::DrawBoard(wxDC &dc) {
offsetX += captures_size / 2;
}
}
+ dc.DrawText(wxString(white_player),boardX,boardY + offsetYPlayerName);
// Draw dragging piece
if (DrawDraggingPiece) {