2022-02-23 18:11:55 +01:00
|
|
|
#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
|
2023-01-02 10:56:27 +01:00
|
|
|
#define MAT_SIZE_FACTOR 0.4
|
2022-02-23 18:11:55 +01:00
|
|
|
#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();
|
2023-01-01 20:21:23 +01:00
|
|
|
bool Zoom(int amount);
|
2022-02-23 18:11:55 +01:00
|
|
|
double GetPiecesSizes();
|
|
|
|
double GetSquaresSizes();
|
|
|
|
|
|
|
|
wxBitmap *Get(char c);
|
|
|
|
};
|