From 767147c3013efccc2a751c72c1189f200ccaf8c2 Mon Sep 17 00:00:00 2001
From: "Zed A. Shaw" <zed.shaw@gmail.com>
Date: Fri, 9 May 2025 11:30:35 -0400
Subject: [PATCH] Forgot the include file for the theme.

---
 include/guecs/theme.hpp | 58 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 include/guecs/theme.hpp

diff --git a/include/guecs/theme.hpp b/include/guecs/theme.hpp
new file mode 100644
index 0000000..c5ff6ba
--- /dev/null
+++ b/include/guecs/theme.hpp
@@ -0,0 +1,58 @@
+#pragma once
+#include <memory>
+#include <string>
+#include <SFML/Graphics/Color.hpp>
+#include <SFML/Graphics/Sprite.hpp>
+#include <SFML/Graphics/Texture.hpp>
+
+namespace guecs {
+  using std::string;
+
+  struct Theme {
+    sf::Color BLACK{0, 0, 0};
+    sf::Color DARK_DARK{10, 10, 10};
+    sf::Color DARK_MID{30, 30, 30};
+    sf::Color DARK_LIGHT{60, 60, 60};
+    sf::Color MID{100, 100, 100};
+    sf::Color LIGHT_DARK{150, 150, 150};
+    sf::Color LIGHT_MID{200, 200, 200};
+    sf::Color LIGHT_LIGHT{230, 230, 230};
+    sf::Color WHITE{255, 255, 255};
+    sf::Color TRANSPARENT = sf::Color::Transparent;
+
+    int PADDING = 3;
+    int BORDER_PX = 1;
+    unsigned int TEXT_SIZE = 30;
+    int LABEL_SIZE = 20;
+    sf::Color FILL_COLOR{255,0,0,255};
+    sf::Color TEXT_COLOR{255,0,0,255};
+    sf::Color BG_COLOR{255,0,0,255};
+    sf::Color BORDER_COLOR{255,0,0,255};
+    sf::Color BG_COLOR_DARK{0,0,0,255};
+    std::string FONT_FILE_NAME{"you_forgot_to_init.otf"};
+  };
+
+  struct SpriteTexture {
+    std::shared_ptr<sf::Sprite> sprite = nullptr;
+    std::shared_ptr<sf::Texture> texture = nullptr;
+  };
+
+  class Backend {
+    public:
+    virtual SpriteTexture texture_get(const string& name) = 0;
+
+    virtual void sound_play(const string& name) = 0;
+
+    virtual void sound_stop(const string& name) = 0;
+
+    virtual std::shared_ptr<sf::Shader> shader_get(const std::string& name) = 0;
+
+    virtual bool shader_updated() = 0;
+    virtual Theme theme() = 0;
+  };
+
+  extern Backend* BACKEND;
+  extern Theme THEME;
+
+  void init(Backend* backend);
+}