2024-08-26 16:53:49 -04:00
|
|
|
#ifndef INTERFACE_H_
|
|
|
|
#define INTERFACE_H_
|
|
|
|
|
|
|
|
#include <imgui.h>
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
#include <functional>
|
|
|
|
|
|
|
|
struct Window {
|
|
|
|
std::string name;
|
|
|
|
ImVec2 size;
|
|
|
|
ImVec2 position;
|
|
|
|
bool isOpen = true;
|
|
|
|
|
|
|
|
std::function<void()> renderContent;
|
|
|
|
|
|
|
|
Window(const std::string& name, std::function<void()> renderFunc)
|
|
|
|
: name(name), size(ImVec2(512, 512)), position(ImVec2(0, 0)), renderContent(renderFunc) {}
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace Interface {
|
|
|
|
void AddWindow(std::vector<Window>& windows, const std::string& name, std::function<void()> renderFunc);
|
2024-08-28 09:45:08 -04:00
|
|
|
Window* GetWindowByName(std::vector<Window>& windows, const std::string& name);
|
2024-08-26 16:53:49 -04:00
|
|
|
void RenderWindows(std::vector<Window>& windows);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // INTERFACE_H_
|