Auto Menu Sizing

This commit is contained in:
2026-01-23 16:11:09 +01:00
parent b8c25d6901
commit 641fc27e55
4 changed files with 14 additions and 6 deletions

View File

@@ -113,6 +113,9 @@ PD_UI7_API fvec2 Layout::AlignPosition(fvec2 pos, fvec2 size, fvec4 area,
}
PD_UI7_API void Layout::Update() {
if (Size == fvec2(0.f)) {
Size = fvec2(MaxPosition);
}
for (auto& it : Objects) {
if (it->GetID() != 0 && !FindObject(it->GetID())) {
IDObjects.push_back(it);

View File

@@ -37,7 +37,8 @@ Menu::Menu(const ID& id, IO::Ref io) : pIO(io), pID(id) {
PD_UI7_API void Menu::Label(const std::string& label) {
// Layout API
auto r = Label::New(label, pIO);
r->SetClipRect(fvec4(pLayout->GetPosition(), pLayout->GetSize()));
r->SetClipRect(fvec4(pLayout->GetPosition(),
pLayout->GetPosition() + pLayout->GetSize()));
pLayout->AddObject(r);
}
@@ -339,8 +340,12 @@ PD_UI7_API void Menu::DrawBaseLayout() {
PD_UI7_API void Menu::Update() {
HandleFocus();
if (pLayout->Size == fvec2(0.f) || Flags & UI7MenuFlags_AlwaysAutoSize) {
pLayout->Size = fvec2(pLayout->MaxPosition) + pIO->MenuPadding * 2;
}
if (!(Flags & UI7MenuFlags_NoTitlebar)) {
TitleBarHeight = pIO->FontScale * 30.f;
TitleBarHeight =
pIO->FontScale * pIO->Font->PixelHeight + pIO->MenuPadding.y;
pLayout->WorkRect.y = 5.f + TitleBarHeight;
HandleTitlebarActions();
} else {