#pragma once namespace Components { class Toast : public Component { public: Toast(); ~Toast(); static void Show(const std::string& image, const std::string& title, const std::string& description, int length, Utils::Slot callback = Utils::Slot()); static void Show(Game::Material* material, const std::string& title, const std::string& description, int length, Utils::Slot callback = Utils::Slot()); static std::string GetIcon(); private: class UIToast { public: Game::Material* image; std::string title; std::string desc; int length; int start; Utils::Slot callback; }; static void Handler(); static void Draw(UIToast* toast); static std::queue Queue; static std::mutex Mutex; }; }