From 0cb5de882fa4c297e7d59aaf99f99dcfebc5c417 Mon Sep 17 00:00:00 2001 From: tobid7 Date: Sat, 20 Dec 2025 19:25:20 +0100 Subject: [PATCH] Fixes and function additions - Fixed Text pos at NoCollapse flag - Fix Button Input Api (HandleScrolling after layout Update) - Add getter for IO and Current Menu - Add AdObject func wrappers to Menu --- include/pd/ui7/layout.hpp | 2 ++ include/pd/ui7/menu.hpp | 5 +++++ include/pd/ui7/ui7.hpp | 2 ++ pd/ui7/source/menu.cpp | 12 ++++++------ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/include/pd/ui7/layout.hpp b/include/pd/ui7/layout.hpp index 6a59634..a58cbe1 100755 --- a/include/pd/ui7/layout.hpp +++ b/include/pd/ui7/layout.hpp @@ -103,6 +103,8 @@ class PD_UI7_API Layout { void Update(); + fvec2 DbgScrollOffset() { return ScrollOffset; } + private: friend class Menu; friend class Context; diff --git a/include/pd/ui7/menu.hpp b/include/pd/ui7/menu.hpp index 257a8a2..673cc88 100755 --- a/include/pd/ui7/menu.hpp +++ b/include/pd/ui7/menu.hpp @@ -103,6 +103,11 @@ class PD_UI7_API Menu { void HandleTitlebarActions(); void DrawBaseLayout(); + void AddObject(PD::UI7::Container::Ref obj) { pLayout->AddObject(obj); } + void AddObjectEx(PD::UI7::Container::Ref obj, PD::u32 flags) { + pLayout->AddObjectEx(obj, flags); + } + void Update(); /** Data Section */ diff --git a/include/pd/ui7/ui7.hpp b/include/pd/ui7/ui7.hpp index 1a066b6..42c66b5 100755 --- a/include/pd/ui7/ui7.hpp +++ b/include/pd/ui7/ui7.hpp @@ -55,10 +55,12 @@ class PD_UI7_API Context { PD_SHARED(Context); + IO::Ref GetIO() { return pIO; } void AddViewPort(const ID& id, const ivec4& vp); void UseViewPort(const ID& id); void Update(); bool BeginMenu(const ID& id, UI7MenuFlags flags = 0, bool* pShow = nullptr); + Menu::Ref CurrentMenu() { return pCurrent; } void EndMenu(); void AboutMenu(bool* show = nullptr); void MetricsMenu(bool* show = nullptr); diff --git a/pd/ui7/source/menu.cpp b/pd/ui7/source/menu.cpp index 8133966..621d3e9 100755 --- a/pd/ui7/source/menu.cpp +++ b/pd/ui7/source/menu.cpp @@ -148,7 +148,7 @@ PD_UI7_API void Menu::HandleScrolling() { pLayout->ScrollOffset.y = std::clamp( pLayout->ScrollStart.y + pIO->InputHandler->DragSourcePos.y - pIO->InputHandler->DragPosition.y, - 20.f, pLayout->MaxPosition.y - 220); + -20.f, pLayout->MaxPosition.y - 220); } } } else { @@ -279,12 +279,12 @@ PD_UI7_API void Menu::DrawBaseLayout() { l->pLayer = 21; /** Inline if statement to shift the Text if collapse sym is shown */ /** What the hell is this code btw (didn't found a better way) */ - l->DrawText(self->FinalPos() + fvec2(Flags & UI7MenuFlags_NoClose - ? 0 + l->DrawText(self->FinalPos() + fvec2((Flags & UI7MenuFlags_NoCollapse) + ? pIO->FramePadding.x : (TitleBarHeight - pIO->FramePadding.y * 2 + (io->FramePadding.x * 2)), - 0), + 2), pID.GetName(), io->Theme->Get(UI7Color_Text)); }); r->SetSize(fvec2(pLayout->GetSize().x, TitleBarHeight)); @@ -344,11 +344,11 @@ PD_UI7_API void Menu::Update() { TitleBarHeight = 0.f; pLayout->WorkRect.y = 5.f; } + DrawBaseLayout(); + pLayout->Update(); if (Flags & UI7MenuFlags_VtScrolling || Flags & UI7MenuFlags_HzScrolling) { HandleScrolling(); } - DrawBaseLayout(); - pLayout->Update(); } PD_UI7_API bool Menu::BeginTreeNode(const ID& id) {