diff --git a/mod.json b/mod.json index 22f60a6..b981295 100644 --- a/mod.json +++ b/mod.json @@ -1,5 +1,5 @@ { - "geode": "5.3.0", + "geode": "5.7.1", "gd": { "win": "2.2081", "android": "2.2081", diff --git a/src/EditorPauseLayer.cpp b/src/EditorPauseLayer.cpp index 30f9a08..a2cd5f8 100644 --- a/src/EditorPauseLayer.cpp +++ b/src/EditorPauseLayer.cpp @@ -224,7 +224,7 @@ class GuidelinesButtonDummy { } } optionsMenu->setContentSize({ 120.f, winSize.height - 60.f }); - optionsMenu->setPosition(75.f, winSize.height / 2 - 25.f + 10.f); + optionsMenu->setPosition(75.f GEODE_IOS(+ geode::utils::getSafeAreaRect().getMinX() / 2.f), winSize.height / 2 - 25.f + 10.f); optionsMenu->updateLayout(); auto settingsMenu = detachAndCreateMenu( @@ -288,7 +288,7 @@ class GuidelinesButtonDummy { ); } menu->setContentSize({ 180.f, 100.f }); - menu->setPosition(100.f, winSize.height - 55.f); + menu->setPosition(100.f GEODE_IOS(+ geode::utils::getSafeAreaRect().getMinX() / 2.f), winSize.height - 55.f); menu->updateLayout(); } } diff --git a/src/EditorUI.cpp b/src/EditorUI.cpp index 88e86fd..c33adcd 100644 --- a/src/EditorUI.cpp +++ b/src/EditorUI.cpp @@ -72,7 +72,7 @@ using namespace geode::node_ids; menu->getChildByID("snap-button") ); toolbarTogglesMenu->setPosition( - winSize.width - 47.f, + winSize.width - 47.f GEODE_IOS(- geode::utils::getSafeAreaRect().getMinX() / 2.f), 45.f ); toolbarTogglesMenu->setContentSize({ 90.f, 90.f }); @@ -155,7 +155,7 @@ using namespace geode::node_ids; linkMenu->setPositionY(playTestMenu->getPositionY() + 3 - (linkMenu->getContentHeight() / 2) GEODE_MOBILE(- 24.f)); linkMenu->updateLayout(); - menu->setPosition(42.f, 45.f); + menu->setPosition(42.f GEODE_IOS(+ geode::utils::getSafeAreaRect().getMinX() / 2.f), 45.f); menu->setContentSize({ 100.f, 90.f }); menu->setLayout( ColumnLayout::create() @@ -414,7 +414,7 @@ using namespace geode::node_ids; } rightMenu->setContentSize({ 210.f, 160.f }); rightMenu->setPosition( - winSize.width - 210.f / 2, + winSize.width - 210.f / 2 GEODE_IOS(- geode::utils::getSafeAreaRect().getMinX() / 2.f), winSize.height - 117.5f ); rightMenu->updateLayout(); @@ -436,7 +436,7 @@ using namespace geode::node_ids; this->getChildByID("layer-index-label"), menu->getChildByID("next-layer-button") ); - layerMenu->setPositionX(winSize.width - 110.f / 2 - 6.f); + layerMenu->setPositionX(winSize.width - 110.f / 2 - 6.f GEODE_IOS(- geode::utils::getSafeAreaRect().getMinX() / 2.f)); layerMenu->setContentSize({ 110.f, 30.f }); layerMenu->updateLayout(); } diff --git a/src/LevelBrowserLayer.cpp b/src/LevelBrowserLayer.cpp index 17f84ef..141a823 100644 --- a/src/LevelBrowserLayer.cpp +++ b/src/LevelBrowserLayer.cpp @@ -80,7 +80,7 @@ using namespace geode::node_ids; pageMenu->setContentSize({ 40.f, 110.f }); pageMenu->setAnchorPoint({ 1.f, .5f }); pageMenu->setPosition( - pageMenu->getPositionX() + 20.f, + winSize.width - 10 GEODE_IOS(- geode::utils::getSafeAreaRect().getMinX() / 2.f), pageMenu->getPositionY() - 110.f / 2 + 12.5f ); pageMenu->updateLayout(); @@ -146,7 +146,7 @@ using namespace geode::node_ids; ); menu->setContentSize({ navMenuWidth, 40.f }); menu->setPositionX( - winSize.width - navMenuWidth / 2 - 5.f + winSize.width - navMenuWidth / 2 - 5.f GEODE_IOS(- geode::utils::getSafeAreaRect().getMinX() / 2.f) ); menu->updateLayout(); } @@ -194,11 +194,18 @@ using namespace geode::node_ids; ->setAxisAlignment(AxisAlignment::Start), myLevelsBtn ); + menu->setContentSize({ 50.f, 125.f }); + #ifdef GEODE_IS_IOS + menu->addOnEnterCallback([menu] { + if (menu->getChildrenCount() > 1) { + menu->setPositionX(menu->getContentWidth() / 2 + 5 + geode::utils::getSafeAreaRect().getMinX() / 2.f); + } + }); + #endif menu->setPositionY( menu->getPositionY() + 125.f / 2 - myLevelsBtn->getScaledContentSize().height / 2 ); - menu->setContentSize({ 50.f, 125.f }); menu->updateLayout(); } } @@ -209,11 +216,21 @@ using namespace geode::node_ids; ColumnLayout::create() ->setAxisAlignment(AxisAlignment::Start) ); + + menu->setContentSize({ 50.f, 130.f }); + + #ifdef GEODE_IS_IOS + menu->addOnEnterCallback([menu, winSize] { + if (menu->getChildrenCount() > 2) { + menu->setPositionX(winSize.width - menu->getContentWidth() / 2 - 5 - geode::utils::getSafeAreaRect().getMinX() / 2.f); + } + }); + #endif + menu->setPositionY( menu->getPositionY() + 130.f / 2 - getSizeSafe(newLvlBtn).height / 2 ); - menu->setContentSize({ 50.f, 130.f }); menu->updateLayout(); } } diff --git a/src/LevelInfoLayer.cpp b/src/LevelInfoLayer.cpp index d21bb9a..bf45cf7 100644 --- a/src/LevelInfoLayer.cpp +++ b/src/LevelInfoLayer.cpp @@ -111,7 +111,7 @@ using namespace geode::node_ids; } auto leftSideMenu = CCMenu::create(); - leftSideMenu->setPosition(30.f, winSize.height / 2); + leftSideMenu->setPosition(30.f GEODE_IOS(+ geode::utils::getSafeAreaRect().getMinX() / 2.f), winSize.height / 2); leftSideMenu->setLayout(ColumnLayout::create()); leftSideMenu->setID("left-side-menu"); leftSideMenu->setContentSize({ 50.f, 145.f }); @@ -137,13 +137,11 @@ using namespace geode::node_ids; setIDSafe(menu, rightMenuIdx++, "like-button"); setIDSafe(menu, rightMenuIdx++, "rate-button"); + menu->setContentSize({ 60.f, winSize.height - 15.f }); menu->setPosition( - menu->getPositionX() + static_cast( - menu->getChildren()->objectAtIndex(0) - )->getPositionX(), + winSize.width - 30 GEODE_IOS(- geode::utils::getSafeAreaRect().getMinX() / 2.f), winSize.height / 2 ); - menu->setContentSize({ 60.f, winSize.height - 15.f }); menu->setLayout( ColumnLayout::create() ->setGap(3.f) diff --git a/src/LevelListLayer.cpp b/src/LevelListLayer.cpp index d4a31e7..25dc7ec 100644 --- a/src/LevelListLayer.cpp +++ b/src/LevelListLayer.cpp @@ -101,7 +101,7 @@ using namespace geode::node_ids; if(!mainMenu) return; auto rightSideMenu = CCMenu::create(); - rightSideMenu->setPosition(winSize.width - 25.f, winSize.height / 2); + rightSideMenu->setPosition(winSize.width - 25.f GEODE_IOS(- geode::utils::getSafeAreaRect().getMinX() / 2.f), winSize.height / 2); rightSideMenu->setLayout( ColumnLayout::create() ->setAxisReverse(true) @@ -215,7 +215,7 @@ struct LevelListLayerIDs : Modify { auto winSize = CCDirector::sharedDirector()->getWinSize(); auto leftSideMenu = CCMenu::create(); - leftSideMenu->setPosition(26.f, winSize.height / 2); + leftSideMenu->setPosition(26.f GEODE_IOS(+ geode::utils::getSafeAreaRect().getMinX() / 2.f), winSize.height / 2); leftSideMenu->setLayout( ColumnLayout::create() ->setAxisReverse(true) diff --git a/src/LevelSearchLayer.cpp b/src/LevelSearchLayer.cpp index c7c92af..0a644d9 100644 --- a/src/LevelSearchLayer.cpp +++ b/src/LevelSearchLayer.cpp @@ -32,7 +32,7 @@ using namespace geode::node_ids; ->setAxisAlignment(AxisAlignment::End) ); filtermenu->setAnchorPoint({1, 0.5f}); - filtermenu->setPosition({winSize.width - 5, filtermenu->getPositionY()}); + filtermenu->setPosition({winSize.width - 5 GEODE_IOS(- geode::utils::getSafeAreaRect().getMinX() / 2.f), filtermenu->getPositionY()}); filtermenu->setContentSize({filtermenu->getContentSize().width, winSize.height-10}); setIDSafe(filtermenu, 0, "clear-filters-button");