mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Quick Chat
This commit is contained in:
parent
8ec2d50c28
commit
f5d56872ce
7 changed files with 195 additions and 2 deletions
|
@ -711,6 +711,11 @@ static ConfigSetting networkSettings[] = {
|
|||
ConfigSetting("EnableNetworkChat", &g_Config.bEnableNetworkChat, false, true, true),
|
||||
ConfigSetting("ChatButtonPosition",&g_Config.iChatButtonPosition,BOTTOM_LEFT,true,true),
|
||||
ConfigSetting("ChatScreenPosition",&g_Config.iChatScreenPosition,BOTTOM_LEFT,true,true),
|
||||
ConfigSetting("QuickChat1", &g_Config.sQuickChat0, "Quick Chat 1", true, true),
|
||||
ConfigSetting("QuickChat2", &g_Config.sQuickChat1, "Quick Chat 2", true, true),
|
||||
ConfigSetting("QuickChat3", &g_Config.sQuickChat2, "Quick Chat 3", true, true),
|
||||
ConfigSetting("QuickChat4", &g_Config.sQuickChat3, "Quick Chat 4", true, true),
|
||||
ConfigSetting("QuickChat5", &g_Config.sQuickChat4, "Quick Chat 5", true, true),
|
||||
ConfigSetting(false),
|
||||
};
|
||||
|
||||
|
|
|
@ -439,7 +439,14 @@ public:
|
|||
//for chat position , moveable buttons is better than this
|
||||
int iChatButtonPosition;
|
||||
int iChatScreenPosition;
|
||||
|
||||
|
||||
bool bEnableQuickChat;
|
||||
std::string sQuickChat0;
|
||||
std::string sQuickChat1;
|
||||
std::string sQuickChat2;
|
||||
std::string sQuickChat3;
|
||||
std::string sQuickChat4;
|
||||
|
||||
int iPSPModel;
|
||||
int iFirmwareVersion;
|
||||
// TODO: Make this work with your platform, too!
|
||||
|
|
|
@ -19,7 +19,6 @@ void ChatMenu::CreatePopupContents(UI::ViewGroup *parent) {
|
|||
LinearLayout *outer = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT,400));
|
||||
scroll_ = outer->Add(new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(1.0)));
|
||||
LinearLayout *bottom = outer->Add(new LinearLayout(ORIENT_HORIZONTAL, new LayoutParams(FILL_PARENT, WRAP_CONTENT)));
|
||||
|
||||
#if defined(_WIN32) || defined(USING_QT_UI)
|
||||
chatEdit_ = bottom->Add(new TextEdit("", n->T("Chat Here"), new LinearLayoutParams(1.0)));
|
||||
#if defined(USING_WIN_UI)
|
||||
|
@ -40,6 +39,15 @@ void ChatMenu::CreatePopupContents(UI::ViewGroup *parent) {
|
|||
#elif defined(__ANDROID__)
|
||||
bottom->Add(new Button(n->T("Chat Here"),new LayoutParams(FILL_PARENT, WRAP_CONTENT)))->OnClick.Handle(this, &ChatMenu::OnSubmit);
|
||||
#endif
|
||||
|
||||
if (g_Config.bEnableQuickChat) {
|
||||
LinearLayout *quickChat = outer->Add(new LinearLayout(ORIENT_HORIZONTAL, new LayoutParams(FILL_PARENT, WRAP_CONTENT)));
|
||||
quickChat->Add(new Button(n->T("1"), new LinearLayoutParams(1.0)))->OnClick.Handle(this, &ChatMenu::OnQuickChat1);
|
||||
quickChat->Add(new Button(n->T("2"), new LinearLayoutParams(1.0)))->OnClick.Handle(this, &ChatMenu::OnQuickChat2);
|
||||
quickChat->Add(new Button(n->T("3"), new LinearLayoutParams(1.0)))->OnClick.Handle(this, &ChatMenu::OnQuickChat3);
|
||||
quickChat->Add(new Button(n->T("4"), new LinearLayoutParams(1.0)))->OnClick.Handle(this, &ChatMenu::OnQuickChat4);
|
||||
quickChat->Add(new Button(n->T("5"), new LinearLayoutParams(1.0)))->OnClick.Handle(this, &ChatMenu::OnQuickChat5);
|
||||
}
|
||||
chatVert_ = scroll_->Add(new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)));
|
||||
chatVert_->SetSpacing(0);
|
||||
parent->Add(outer);
|
||||
|
@ -116,6 +124,32 @@ UI::EventReturn ChatMenu::OnSubmit(UI::EventParams &e) {
|
|||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
|
||||
UI::EventReturn ChatMenu::OnQuickChat1(UI::EventParams &e) {
|
||||
sendChat(g_Config.sQuickChat0);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn ChatMenu::OnQuickChat2(UI::EventParams &e) {
|
||||
sendChat(g_Config.sQuickChat1);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn ChatMenu::OnQuickChat3(UI::EventParams &e) {
|
||||
sendChat(g_Config.sQuickChat2);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn ChatMenu::OnQuickChat4(UI::EventParams &e) {
|
||||
sendChat(g_Config.sQuickChat3);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn ChatMenu::OnQuickChat5(UI::EventParams &e) {
|
||||
sendChat(g_Config.sQuickChat4);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
/*
|
||||
maximum chat length in one message from server is only 64 character
|
||||
need to split the chat to fit the static chat screen size
|
||||
|
|
|
@ -14,6 +14,11 @@ public:
|
|||
void UpdateChat();
|
||||
private:
|
||||
UI::EventReturn OnSubmit(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_;
|
||||
UI::ScrollView *scroll_;
|
||||
UI::LinearLayout *chatVert_;
|
||||
|
|
|
@ -624,6 +624,53 @@ void GameSettingsScreen::CreateViews() {
|
|||
networkingSettings->Add(new PopupMultiChoice(&g_Config.iChatButtonPosition, n->T("Chat Button Position"), chatButtonPositions, 0, ARRAY_SIZE(chatButtonPositions), "Chat Button Position", screenManager()));
|
||||
static const char *chatScreenPositions[] = { "Bottom Left", "Bottom Center","Bottom Right","Top Left","Top Center", "Top Right" };
|
||||
networkingSettings->Add(new PopupMultiChoice(&g_Config.iChatScreenPosition, n->T("Chat Screen Position"), chatScreenPositions, 0, ARRAY_SIZE(chatScreenPositions), "Chat Screen Position", screenManager()));
|
||||
|
||||
networkingSettings->Add(new ItemHeader(co->T("QuickChat", "Quick Chat")));
|
||||
networkingSettings->Add(new CheckBox(&g_Config.bEnableQuickChat, co->T("QuickChat", "Enable Quick Chat")));
|
||||
#if !defined(MOBILE_DEVICE) && !defined(USING_QT_UI) // TODO: Add all platforms where KEY_CHAR support is added
|
||||
PopupTextInputChoice *qc1 = networkingSettings->Add(new PopupTextInputChoice(&g_Config.sQuickChat0, sy->T("Quick Chat 1"), "", 32, screenManager()));
|
||||
qc1->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
PopupTextInputChoice *qc2 = networkingSettings->Add(new PopupTextInputChoice(&g_Config.sQuickChat1, sy->T("Quick Chat 2"), "", 32, screenManager()));
|
||||
qc2->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
PopupTextInputChoice *qc3 = networkingSettings->Add(new PopupTextInputChoice(&g_Config.sQuickChat2, sy->T("Quick Chat 3"), "", 32, screenManager()));
|
||||
qc3->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
PopupTextInputChoice *qc4 = networkingSettings->Add(new PopupTextInputChoice(&g_Config.sQuickChat3, sy->T("Quick Chat 4"), "", 32, screenManager()));
|
||||
qc4->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
PopupTextInputChoice *qc5 = networkingSettings->Add(new PopupTextInputChoice(&g_Config.sQuickChat4, sy->T("Quick Chat 5"), "", 32, screenManager()));
|
||||
qc5->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
#elif defined(USING_QT_UI)
|
||||
Choice *qc1 = networkingSettings->Add(new Choice(sy->T("Quick Chat 1")));
|
||||
qc1->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
qc1->OnClick.Handle(this, &GameSettingsScreen::OnChangeQuickChat0);
|
||||
Choice *qc2 = networkingSettings->Add(new Choice(sy->T("Quick Chat 2")));
|
||||
qc2->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
qc2->OnClick.Handle(this, &GameSettingsScreen::OnChangeQuickChat1);
|
||||
Choice *qc3 = networkingSettings->Add(new Choice(sy->T("Quick Chat 3")));
|
||||
qc3->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
qc3->OnClick.Handle(this, &GameSettingsScreen::OnChangeQuickChat2);
|
||||
Choice *qc4 = networkingSettings->Add(new Choice(sy->T("Quick Chat 4")));
|
||||
qc4->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
qc4->OnClick.Handle(this, &GameSettingsScreen::OnChangeQuickChat3);
|
||||
Choice *qc5 = networkingSettings->Add(new Choice(sy->T("Quick Chat 5")));
|
||||
qc5->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
qc5->OnClick.Handle(this, &GameSettingsScreen::OnChangeQuickChat4);
|
||||
#elif defined(__ANDROID__)
|
||||
ChoiceWithValueDisplay *qc1 = networkingSettings->Add(new ChoiceWithValueDisplay(&g_Config.sNickName, sy->T("Quick Chat 1"), nullptr));
|
||||
qc1->OnClick.Handle(this, &GameSettingsScreen::OnChangeQuickChat0);
|
||||
qc1->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
ChoiceWithValueDisplay *qc2 = networkingSettings->Add(new ChoiceWithValueDisplay(&g_Config.sNickName, sy->T("Quick Chat 2"), nullptr));
|
||||
qc2->OnClick.Handle(this, &GameSettingsScreen::OnChangeQuickChat1);
|
||||
qc2->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
ChoiceWithValueDisplay *qc3 = networkingSettings->Add(new ChoiceWithValueDisplay(&g_Config.sNickName, sy->T("Quick Chat 3"), nullptr));
|
||||
qc3->OnClick.Handle(this, &GameSettingsScreen::OnChangeQuickChat2);
|
||||
qc3->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
ChoiceWithValueDisplay *qc4 = networkingSettings->Add(new ChoiceWithValueDisplay(&g_Config.sNickName, sy->T("Quick Chat 4"), nullptr));
|
||||
qc4->OnClick.Handle(this, &GameSettingsScreen::OnChangeQuickChat3);
|
||||
qc4->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
ChoiceWithValueDisplay *qc5 = networkingSettings->Add(new ChoiceWithValueDisplay(&g_Config.sNickName, sy->T("Quick Chat 5"), nullptr));
|
||||
qc5->OnClick.Handle(this, &GameSettingsScreen::OnChangeQuickChat4);
|
||||
qc5->SetEnabledPtr(&g_Config.bEnableQuickChat);
|
||||
#endif
|
||||
ViewGroup *toolsScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT));
|
||||
toolsScroll->SetTag("GameSettingsTools");
|
||||
LinearLayout *tools = new LinearLayout(ORIENT_VERTICAL);
|
||||
|
@ -1096,6 +1143,86 @@ UI::EventReturn GameSettingsScreen::OnRenderingBackend(UI::EventParams &e) {
|
|||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn GameSettingsScreen::OnChangeQuickChat0(UI::EventParams &e) {
|
||||
#if PPSSPP_PLATFORM(WINDOWS) || defined(USING_QT_UI)
|
||||
const size_t chat_len = 64;
|
||||
|
||||
char chat[chat_len];
|
||||
memset(chat, 0, sizeof(chat));
|
||||
|
||||
if (System_InputBoxGetString("Enter Quick Chat 1", g_Config.sQuickChat0.c_str(), chat, chat_len)) {
|
||||
g_Config.sQuickChat0 = chat;
|
||||
}
|
||||
#elif defined(__ANDROID__)
|
||||
System_SendMessage("inputbox", ("quickchat0:" + g_Config.).c_str());
|
||||
#endif
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn GameSettingsScreen::OnChangeQuickChat1(UI::EventParams &e) {
|
||||
#if PPSSPP_PLATFORM(WINDOWS) || defined(USING_QT_UI)
|
||||
const size_t chat_len = 64;
|
||||
|
||||
char chat[chat_len];
|
||||
memset(chat, 0, sizeof(chat));
|
||||
|
||||
if (System_InputBoxGetString("Enter Quick Chat 2", g_Config.sQuickChat1.c_str(), chat, chat_len)) {
|
||||
g_Config.sQuickChat1 = chat;
|
||||
}
|
||||
#elif defined(__ANDROID__)
|
||||
System_SendMessage("inputbox", ("quickchat1:" + g_Config.).c_str());
|
||||
#endif
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn GameSettingsScreen::OnChangeQuickChat2(UI::EventParams &e) {
|
||||
#if PPSSPP_PLATFORM(WINDOWS) || defined(USING_QT_UI)
|
||||
const size_t chat_len = 64;
|
||||
|
||||
char chat[chat_len];
|
||||
memset(chat, 0, sizeof(chat));
|
||||
|
||||
if (System_InputBoxGetString("Enter Quick Chat 3", g_Config.sQuickChat2.c_str(), chat, chat_len)) {
|
||||
g_Config.sQuickChat2 = chat;
|
||||
}
|
||||
#elif defined(__ANDROID__)
|
||||
System_SendMessage("inputbox", ("quickchat2:" + g_Config.).c_str());
|
||||
#endif
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn GameSettingsScreen::OnChangeQuickChat3(UI::EventParams &e) {
|
||||
#if PPSSPP_PLATFORM(WINDOWS) || defined(USING_QT_UI)
|
||||
const size_t chat_len = 64;
|
||||
|
||||
char chat[chat_len];
|
||||
memset(chat, 0, sizeof(chat));
|
||||
|
||||
if (System_InputBoxGetString("Enter Quick Chat 4", g_Config.sQuickChat3.c_str(), chat, chat_len)) {
|
||||
g_Config.sQuickChat3 = chat;
|
||||
}
|
||||
#elif defined(__ANDROID__)
|
||||
System_SendMessage("inputbox", ("quickchat3:" + g_Config.).c_str());
|
||||
#endif
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn GameSettingsScreen::OnChangeQuickChat4(UI::EventParams &e) {
|
||||
#if PPSSPP_PLATFORM(WINDOWS) || defined(USING_QT_UI)
|
||||
const size_t chat_len = 64;
|
||||
|
||||
char chat[chat_len];
|
||||
memset(chat, 0, sizeof(chat));
|
||||
|
||||
if (System_InputBoxGetString("Enter Quick Chat 5", g_Config.sQuickChat4.c_str(), chat, chat_len)) {
|
||||
g_Config.sQuickChat4 = chat;
|
||||
}
|
||||
#elif defined(__ANDROID__)
|
||||
System_SendMessage("inputbox", ("quickchat4:" + g_Config.).c_str());
|
||||
#endif
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn GameSettingsScreen::OnChangeNickname(UI::EventParams &e) {
|
||||
#if PPSSPP_PLATFORM(WINDOWS) || defined(USING_QT_UI)
|
||||
const size_t name_len = 256;
|
||||
|
|
|
@ -76,6 +76,11 @@ private:
|
|||
UI::EventReturn OnPostProcShaderChange(UI::EventParams &e);
|
||||
UI::EventReturn OnDeveloperTools(UI::EventParams &e);
|
||||
UI::EventReturn OnRemoteISO(UI::EventParams &e);
|
||||
UI::EventReturn OnChangeQuickChat0(UI::EventParams &e);
|
||||
UI::EventReturn OnChangeQuickChat1(UI::EventParams &e);
|
||||
UI::EventReturn OnChangeQuickChat2(UI::EventParams &e);
|
||||
UI::EventReturn OnChangeQuickChat3(UI::EventParams &e);
|
||||
UI::EventReturn OnChangeQuickChat4(UI::EventParams &e);
|
||||
UI::EventReturn OnChangeNickname(UI::EventParams &e);
|
||||
UI::EventReturn OnChangeproAdhocServerAddress(UI::EventParams &e);
|
||||
UI::EventReturn OnChangeMacAddress(UI::EventParams &e);
|
||||
|
|
|
@ -856,6 +856,16 @@ void HandleGlobalMessage(const std::string &msg, const std::string &value) {
|
|||
std::string setString = inputboxValue.size() > 1 ? inputboxValue[1] : "";
|
||||
if (inputboxValue[0] == "IP")
|
||||
g_Config.proAdhocServer = setString;
|
||||
if (inputboxValue[0] == "quickchat0")
|
||||
g_Config.sQuickChat0 = setString;
|
||||
if (inputboxValue[0] == "quickchat1")
|
||||
g_Config.sQuickChat1 = setString;
|
||||
if (inputboxValue[0] == "quickchat2")
|
||||
g_Config.sQuickChat2 = setString;
|
||||
if (inputboxValue[0] == "quickchat3")
|
||||
g_Config.sQuickChat3 = setString;
|
||||
if (inputboxValue[0] == "quickchat4")
|
||||
g_Config.sQuickChat4 = setString;
|
||||
if (inputboxValue[0] == "nickname")
|
||||
g_Config.sNickName = setString;
|
||||
if (inputboxValue[0] == "Chat") {
|
||||
|
|
Loading…
Add table
Reference in a new issue