diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2022-12-30 13:17:06 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2022-12-30 13:17:06 +0100 |
| commit | 98e31a2c11fc1ae3dbc93576956ce3f4faad7fbd (patch) | |
| tree | 54b7df1f6e3b5887ecc7072ae719911c29ec4427 /src/game_tab/left_panel/board/BoardCanvas.cpp | |
| parent | 2fd237a78ffd78e198bfb68ba2fc9fa296a1fe9f (diff) | |
Improve UI
Diffstat (limited to 'src/game_tab/left_panel/board/BoardCanvas.cpp')
| -rw-r--r-- | src/game_tab/left_panel/board/BoardCanvas.cpp | 20 |
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) { |
