#include #include #include #include #include #include #include #include #include namespace ui { enum class TitlesFocus { List, Actions }; enum class TitlesAction { Transfer, Receive }; class TitlesLayout : public pu::ui::Layout { private: pu::ui::elm::Menu::Ref titlesMenu; std::unordered_map> menuCache; bool m_inputLocked = false; std::unique_ptr header; std::unique_ptr hints; pu::ui::elm::Rectangle::Ref panelBg; pu::ui::elm::TextBlock::Ref panelTitle; pu::ui::elm::TextBlock::Ref panelHint; pu::ui::elm::Rectangle::Ref btnTransferBg; pu::ui::elm::TextBlock::Ref btnTransferText; pu::ui::elm::Rectangle::Ref btnReceiveBg; pu::ui::elm::TextBlock::Ref btnReceiveText; pu::ui::elm::TextBlock::Ref panelFooter; pu::ui::elm::TextBlock::Ref emptyText; pu::ui::elm::TextBlock::Ref emptySub; TitlesFocus focus = TitlesFocus::List; TitlesAction action = TitlesAction::Transfer; int lockedListIndex = 0; void refreshPanel(); void refreshButtons(); void updateHints(); void runTransfer(int index, Title& title); void runReceive(int index, Title& title); public: TitlesLayout(); void InitTitles(); void LockInput() { m_inputLocked = true; } void UnlockInput() { m_inputLocked = false; } void onInput(u64 Down, u64 Up, u64 Held, pu::ui::TouchPoint Pos); PU_SMART_CTOR(TitlesLayout) }; }