diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2022-02-23 18:11:55 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2022-02-23 18:11:55 +0100 |
| commit | ce941c146aea7925bded6b9d2a0d0559d3156ad3 (patch) | |
| tree | 4c52e02600e3fd127bfb28b3e974d45541ec9e4e /src/game_tab/board/Theme.hpp | |
Create repository
Diffstat (limited to 'src/game_tab/board/Theme.hpp')
| -rw-r--r-- | src/game_tab/board/Theme.hpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/game_tab/board/Theme.hpp b/src/game_tab/board/Theme.hpp new file mode 100644 index 0000000..88036d8 --- /dev/null +++ b/src/game_tab/board/Theme.hpp @@ -0,0 +1,37 @@ +#pragma once + +#include "ochess.hpp" + +#include <string> +#include <unordered_map> + +#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<char, wxImage> skin; + std::unordered_map<char, wxBitmap *> 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); +}; |
