53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
![]() |
#pragma once
|
||
|
|
||
|
#include <string>
|
||
|
#include <vector>
|
||
|
#include <map>
|
||
|
#include <functional>
|
||
|
|
||
|
#if !defined(PLATFORM_IOS) && !defined(PLATFORM_TVOS)
|
||
|
#include <sol.hpp>
|
||
|
#endif
|
||
|
|
||
|
#include "uielement.hpp"
|
||
|
#include "file.hpp"
|
||
|
|
||
|
class GFXBuffer;
|
||
|
|
||
|
namespace ui {
|
||
|
class Screen {
|
||
|
public:
|
||
|
Screen() {}
|
||
|
Screen(const file::Path path);
|
||
|
|
||
|
void process_event(const std::string& type, std::string data = "");
|
||
|
|
||
|
void process_mouse(const int x, const int y);
|
||
|
void calculate_sizes();
|
||
|
|
||
|
std::vector<UIElement> elements;
|
||
|
|
||
|
UIElement* find_element(const std::string& id);
|
||
|
|
||
|
using CallbackFunction = std::function<void()>;
|
||
|
std::map<std::string, CallbackFunction> listeners;
|
||
|
|
||
|
bool blurs_background = false;
|
||
|
|
||
|
void add_listener(const std::string& id, std::function<void()> callback);
|
||
|
|
||
|
Extent extent;
|
||
|
bool view_changed = false;
|
||
|
|
||
|
GFXBuffer* glyph_buffer = nullptr;
|
||
|
GFXBuffer* instance_buffer = nullptr;
|
||
|
GFXBuffer* elements_buffer = nullptr;
|
||
|
|
||
|
std::string script_path;
|
||
|
|
||
|
#if !defined(PLATFORM_IOS) && !defined(PLATFORM_TVOS)
|
||
|
sol::environment env;
|
||
|
#endif
|
||
|
};
|
||
|
}
|