From bf485fa577a76731f9eac97de3b0a647cd492e49 Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Mon, 28 Feb 2022 13:44:27 +0100 Subject: Refactoring game tab --- src/game_tab/left_panel/board/Theme.hpp | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/game_tab/left_panel/board/Theme.hpp (limited to 'src/game_tab/left_panel/board/Theme.hpp') diff --git a/src/game_tab/left_panel/board/Theme.hpp b/src/game_tab/left_panel/board/Theme.hpp new file mode 100644 index 0000000..88036d8 --- /dev/null +++ b/src/game_tab/left_panel/board/Theme.hpp @@ -0,0 +1,37 @@ +#pragma once + +#include "ochess.hpp" + +#include +#include + +#define ELT_DIM 200 +#define DEFAULT_SIZE 80 +#define PIECE_SIZE_FACTOR 0.8 // Should be between 0 and 1 +#define DEFAULT_PIECE_THEME "assets/pieces/cburnett.png" +#define DEFAULT_SQUARE_THEME "assets/boards/chesscom_8bits.png" + +class Theme { +private: + std::unordered_map skin; + std::unordered_map skin_scaled; + std::uint8_t square_radius; + wxMask *RoundedMask(std::uint32_t width, std::uint8_t corner); + +public: + Theme(); + Theme(std::string piece, std::string square); + ~Theme(); + void LoadPiecesSkin(wxImage skin); + void LoadSquaresSkin(wxImage iskin); + void ResizePieces(std::uint32_t width); + void ResizeSquares(std::uint32_t width); + void ResizeSquaresAndPieces(std::uint32_t width); + void SetSquareRadius(std::uint8_t radius); + std::uint8_t GetSquareRadius(); + void Zoom(int amount); + double GetPiecesSizes(); + double GetSquaresSizes(); + + wxBitmap *Get(char c); +}; -- cgit v1.2.3