1#pragma once
2
3#include "Library/Nerve/NerveExecutor.h"
4
5namespace nn::ui2d {
6class TextureInfo;
7}
8
9namespace al {
10class LayoutActor;
11class LayoutInitInfo;
12class SimpleLayoutAppearWaitEnd;
13} // namespace al
14
15class WindowConfirmData : public al::NerveExecutor {
16public:
17 enum PaneType : s32 { PaneType_Confirm = 0, PaneType_Cancel = 1 };
18
19 WindowConfirmData(const al::LayoutInitInfo& info, const char* layoutName, const char* name,
20 bool createDataParts);
21
22 void setConfirmMessage(const char16* message, const char16* confirmMessage,
23 const char16* cancelMessage);
24 void setConfirmData(al::LayoutActor* actor, nn::ui2d::TextureInfo* textureInfo);
25 void updateConfirmDataDate();
26 void appear();
27 void appearWithChoicingCancel();
28 void end();
29 void kill();
30 bool isEndSelect();
31 bool isDecided();
32 bool isCanceled();
33 bool isDisable();
34 void exeAppear();
35 void changeSelectingIdx(s32 index);
36 void exeWait();
37 void updateCursorPos();
38 void exeSelect();
39 void exeVanish();
40 void exeDisable();
41
42private:
43 al::SimpleLayoutAppearWaitEnd* mWindowConfirmLayout = nullptr;
44 al::LayoutActor* mParCursor = nullptr;
45 al::LayoutActor* mParOptions[2] = {nullptr, nullptr};
46 al::LayoutActor* mParData = nullptr;
47 PaneType mSelectionIndex = PaneType::PaneType_Confirm;
48 s32 mSelectionCooldown = 0;
49};
50