mirror of
https://github.com/rvtr/ctr_test_tools.git
synced 2025-10-31 13:41:24 -04:00
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_test_tools@3 6b0af911-cb57-b745-895f-eec5701120e1
99 lines
2.1 KiB
C++
99 lines
2.1 KiB
C++
/*
|
|
* window.cpp
|
|
*
|
|
* Created on: 2011/07/14
|
|
* Author: N2885
|
|
*/
|
|
|
|
#include "window.h"
|
|
|
|
u16 waitTime = 40;
|
|
u16 waitAcceleTime = 5;
|
|
u16 n = 4;
|
|
|
|
void Window::Initialize(void)
|
|
{
|
|
mIndex = 0;
|
|
mOriginIndex = 0;
|
|
mSelectPos = 0;
|
|
mCursorCounter = 0;
|
|
mAcceleCounter = 0;
|
|
isSelectedWindow = false;
|
|
}
|
|
|
|
//カーソル上下・押しっぱなしで加速
|
|
void Window::UpDown(nn::hid::PadStatus& status)
|
|
{
|
|
if(mCursorCounter == 0)
|
|
{
|
|
if(status.hold & nn::hid::BUTTON_UP || status.hold & nn::hid::BUTTON_DOWN)
|
|
{
|
|
if(status.hold & nn::hid::BUTTON_UP)
|
|
{
|
|
mSelectPos--;
|
|
}
|
|
else
|
|
{
|
|
mSelectPos++;
|
|
}
|
|
mAcceleCounter++;
|
|
for(u16 i = 1; i < n; i++)
|
|
{
|
|
if( mAcceleCounter >= waitAcceleTime * ( i - 1 ) && mAcceleCounter <= waitAcceleTime * i )
|
|
{
|
|
mCursorCounter = waitTime/ i;
|
|
i = n;
|
|
}
|
|
else
|
|
{
|
|
mCursorCounter = waitTime / n;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
mAcceleCounter = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
mCursorCounter--;
|
|
}
|
|
}
|
|
static u16 Min(u16 a, u16 b)
|
|
{
|
|
return (a > b) ? b : a;
|
|
}
|
|
|
|
void Window::Update(u16 fileSize)
|
|
{
|
|
if( mSelectPos < 0 )
|
|
{
|
|
if( mOriginIndex == 0 )
|
|
{
|
|
mSelectPos = Min(fileSize, mScreenHeight) - 1;
|
|
mOriginIndex = fileSize - Min(fileSize,mScreenHeight);
|
|
}
|
|
else
|
|
{
|
|
mSelectPos = 0;
|
|
mOriginIndex--;
|
|
}
|
|
}
|
|
else if( mSelectPos >= Min(fileSize, mScreenHeight) )
|
|
{
|
|
if( mOriginIndex < fileSize - mScreenHeight)
|
|
{
|
|
mSelectPos = mScreenHeight - 1;
|
|
mOriginIndex++;
|
|
}
|
|
else
|
|
{
|
|
mSelectPos = 0;
|
|
mOriginIndex = 0;
|
|
}
|
|
}
|
|
mIndex = mSelectPos + mOriginIndex;
|
|
}
|
|
|