Initial commit

This commit is contained in:
Gericom
2025-11-22 17:21:45 +01:00
commit 5d6f67c612
517 changed files with 63025 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
#include "common.h"
#include <libtwl/dma/dmaNitro.h>
#include "gui/IVramManager.h"
#include "gui/VramContext.h"
#include "gui/GraphicsContext.h"
#include "gui/input/InputProvider.h"
#include "smallHeartIcon.h"
#include "smallHeartIconFilled.h"
#include "../IRomBrowserController.h"
#include "NdsGameDetailsBottomSheetView.h"
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.SetText(u"Cheats");
_cheatsChip.SetSelected(false);
AddChildTail(&_cheatsChip);
_favoriteChip.SetText(u"Favorite");
_favoriteChip.SetSelected(true);
AddChildTail(&_favoriteChip);
}
void NdsGameDetailsBottomSheetView::InitVram(const VramContext& vramContext)
{
BottomSheetView::InitVram(vramContext);
const auto objVramManager = vramContext.GetObjVramManager();
if (objVramManager)
{
_smallHeartIconVramOffset = objVramManager->Alloc(smallHeartIconTilesLen);
dma_ntrCopy32(3, smallHeartIconTiles, objVramManager->GetVramAddress(_smallHeartIconVramOffset), smallHeartIconTilesLen);
_smallHeartIconFilledVramOffset = objVramManager->Alloc(smallHeartIconFilledTilesLen);
dma_ntrCopy32(3, smallHeartIconFilledTiles, objVramManager->GetVramAddress(_smallHeartIconFilledVramOffset), smallHeartIconFilledTilesLen);
_favoriteChip.SetIcon(true, _smallHeartIconFilledVramOffset);
}
}
void NdsGameDetailsBottomSheetView::Update()
{
BottomSheetView::Update();
_cheatsChip.SetPosition(92, _position.y + 21);
_favoriteChip.SetPosition(162, _position.y + 21);
}
void NdsGameDetailsBottomSheetView::Draw(GraphicsContext& graphicsContext)
{
graphicsContext.SetClipArea(GetBounds());
u32 oldPrio = graphicsContext.SetPriority(1);
{
BottomSheetView::Draw(graphicsContext);
}
graphicsContext.SetPriority(oldPrio);
graphicsContext.ResetClipArea();
}
View* NdsGameDetailsBottomSheetView::MoveFocus(View* currentFocus,
FocusMoveDirection direction, View* source)
{
if (currentFocus == &_cheatsChip && direction == FocusMoveDirection::Right)
return &_favoriteChip;
else if (currentFocus == &_favoriteChip && direction == FocusMoveDirection::Left)
return &_cheatsChip;
return nullptr;
}
bool NdsGameDetailsBottomSheetView::HandleInput(const InputProvider& inputProvider, FocusManager& focusManager)
{
if (inputProvider.Triggered(InputKey::B))
{
_romBrowserController->HideGameInfo();
return true;
}
return false;
}