Add new shared pointer and make use of it

This commit is contained in:
Gericom
2026-03-28 12:03:06 +01:00
parent bec797ffe7
commit 21a8790ebc
66 changed files with 1098 additions and 523 deletions

View File

@@ -13,15 +13,15 @@ NdsGameDetailsBottomSheetView::NdsGameDetailsBottomSheetView(
IRomBrowserController* romBrowserController, const MaterialColorScheme* materialColorScheme,
const IFontRepository* fontRepository)
: _romBrowserController(romBrowserController)
, _cheatsChip(md::sys::color::surfaceContainerLow, materialColorScheme, fontRepository)
, _favoriteChip(md::sys::color::surfaceContainerLow, materialColorScheme, fontRepository)
, _cheatsChip(SharedPtr<ChipView>::MakeShared(md::sys::color::surfaceContainerLow, materialColorScheme, fontRepository))
, _favoriteChip(SharedPtr<ChipView>::MakeShared(md::sys::color::surfaceContainerLow, materialColorScheme, fontRepository))
{
_cheatsChip.SetText(u"Cheats");
_cheatsChip.SetSelected(false);
AddChildTail(&_cheatsChip);
_favoriteChip.SetText(u"Favorite");
_favoriteChip.SetSelected(true);
AddChildTail(&_favoriteChip);
_cheatsChip->SetText(u"Cheats");
_cheatsChip->SetSelected(false);
AddChildTail(_cheatsChip.GetPointer());
_favoriteChip->SetText(u"Favorite");
_favoriteChip->SetSelected(true);
AddChildTail(_favoriteChip.GetPointer());
}
void NdsGameDetailsBottomSheetView::InitVram(const VramContext& vramContext)
@@ -37,15 +37,15 @@ void NdsGameDetailsBottomSheetView::InitVram(const VramContext& vramContext)
_smallHeartIconFilledVramOffset = objVramManager->Alloc(smallHeartIconFilledTilesLen);
dma_ntrCopy32(3, smallHeartIconFilledTiles, objVramManager->GetVramAddress(_smallHeartIconFilledVramOffset), smallHeartIconFilledTilesLen);
_favoriteChip.SetIcon(true, _smallHeartIconFilledVramOffset);
_favoriteChip->SetIcon(true, _smallHeartIconFilledVramOffset);
}
}
void NdsGameDetailsBottomSheetView::Update()
{
BottomSheetView::Update();
_cheatsChip.SetPosition(92, _position.y + 21);
_favoriteChip.SetPosition(162, _position.y + 21);
_cheatsChip->SetPosition(92, _position.y + 21);
_favoriteChip->SetPosition(162, _position.y + 21);
}
void NdsGameDetailsBottomSheetView::Draw(GraphicsContext& graphicsContext)
@@ -59,13 +59,13 @@ void NdsGameDetailsBottomSheetView::Draw(GraphicsContext& graphicsContext)
graphicsContext.ResetClipArea();
}
View* NdsGameDetailsBottomSheetView::MoveFocus(View* currentFocus,
SharedPtr<View> NdsGameDetailsBottomSheetView::MoveFocus(const SharedPtr<View>& currentFocus,
FocusMoveDirection direction, View* source)
{
if (currentFocus == &_cheatsChip && direction == FocusMoveDirection::Right)
return &_favoriteChip;
else if (currentFocus == &_favoriteChip && direction == FocusMoveDirection::Left)
return &_cheatsChip;
if (currentFocus.GetPointer() == _cheatsChip.GetPointer() && direction == FocusMoveDirection::Right)
return _favoriteChip;
else if (currentFocus.GetPointer() == _favoriteChip.GetPointer() && direction == FocusMoveDirection::Left)
return _cheatsChip;
return nullptr;
}