ppsspp/UI/ChatScreen.h
2024-10-02 16:21:53 +02:00

50 lines
1.3 KiB
C++

#pragma once
#include "ppsspp_config.h"
#include "Common/UI/UIScreen.h"
class ChatMenu : public UI::AnchorLayout {
public:
ChatMenu(int token, const Bounds &screenBounds, ScreenManager *screenManager, UI::LayoutParams *lp = nullptr)
: UI::AnchorLayout(lp), screenManager_(screenManager), token_(token) {
CreateSubviews(screenBounds);
}
void Update() override;
bool SubviewFocused(UI::View *view) override;
void Close();
bool Contains(float x, float y) const {
if (box_)
return box_->GetBounds().Contains(x, y);
return false;
}
private:
void CreateSubviews(const Bounds &screenBounds);
void CreateContents(UI::ViewGroup *parent);
void UpdateChat();
UI::EventReturn OnAskForChatMessage(UI::EventParams &e);
UI::EventReturn OnSubmitMessage(UI::EventParams &e);
UI::EventReturn OnQuickChat1(UI::EventParams &e);
UI::EventReturn OnQuickChat2(UI::EventParams &e);
UI::EventReturn OnQuickChat3(UI::EventParams &e);
UI::EventReturn OnQuickChat4(UI::EventParams &e);
UI::EventReturn OnQuickChat5(UI::EventParams &e);
UI::TextEdit *chatEdit_ = nullptr;
UI::ScrollView *scroll_ = nullptr;
UI::LinearLayout *chatVert_ = nullptr;
UI::ViewGroup *box_ = nullptr;
ScreenManager *screenManager_;
int chatChangeID_ = 0;
bool toBottom_ = true;
bool promptInput_ = false;
int token_;
std::string messageTemp_;
UI::Button *chatButton_ = nullptr;
};