add gui.get_active_frame, set_active_frame & update cursor lock behavior

This commit is contained in:
MihailRis 2026-02-06 14:16:30 +03:00
parent 463098aa1e
commit 8468ab184d
11 changed files with 123 additions and 50 deletions

View file

@ -68,7 +68,7 @@ namespace gui {
Engine& engine;
Input& input;
std::unique_ptr<Batch2D> batch2D;
std::shared_ptr<Container> container;
std::shared_ptr<Frame> container;
std::shared_ptr<UINode> hover;
std::shared_ptr<UINode> pressed;
std::shared_ptr<UINode> focus;
@ -76,6 +76,7 @@ namespace gui {
std::shared_ptr<UiDocument> rootDocument;
std::unique_ptr<FontStylesScheme> syntaxColorScheme;
std::unordered_map<std::string, std::shared_ptr<UINode>> storage;
std::shared_ptr<Frame> activeFrame;
std::unique_ptr<Camera> uicamera;
std::shared_ptr<Menu> menu;
@ -89,11 +90,12 @@ namespace gui {
bool doubleClicked = false;
bool debug = false;
void actMouse(float delta, const CursorState& cursor);
void actMouse(Frame& frame, float delta, const CursorState& cursor);
void actFocused();
void updateTooltip(float delta);
void resetTooltip();
public:
static inline std::string CORE_MAIN = "core:main";
static constexpr int CONTEXT_MENU_ZINDEX = 999;
GUI(Engine& engine);
@ -114,12 +116,10 @@ namespace gui {
/// @param viewport window size
void act(float delta, const glm::uvec2& viewport);
void renderFrames(const DrawContext& pctx, Assets& assets);
/// @brief Draw all visible elements on main container
/// @param pctx parent graphics context
/// @param assets active assets storage
void draw(const DrawContext& pctx, const Assets& assets);
void draw(const DrawContext& pctx, Assets& assets);
void postAct();
@ -129,6 +129,10 @@ namespace gui {
void addFrame(std::shared_ptr<Frame> frame);
void setActiveFrame(const std::string& id);
std::shared_ptr<Frame> getActiveFrame() const;
/// @brief Remove node from the main container
void remove(UINode* node) noexcept;