mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-17 04:39:34 +00:00
UI: Cleanup hostname entry to use a dialog.
This commit is contained in:
parent
8e59343c40
commit
f52afb48ac
@ -1203,6 +1203,8 @@ UI::EventReturn GameSettingsScreen::OnChangeNickname(UI::EventParams &e) {
|
||||
}
|
||||
|
||||
UI::EventReturn GameSettingsScreen::OnChangeproAdhocServerAddress(UI::EventParams &e) {
|
||||
I18NCategory *sy = GetI18NCategory("System");
|
||||
|
||||
#if PPSSPP_PLATFORM(WINDOWS) || defined(USING_QT_UI)
|
||||
if (!g_Config.bFullScreen) {
|
||||
const size_t name_len = 256;
|
||||
@ -1214,13 +1216,13 @@ UI::EventReturn GameSettingsScreen::OnChangeproAdhocServerAddress(UI::EventParam
|
||||
std::string stripped = StripSpaces(name);
|
||||
g_Config.proAdhocServer = stripped;
|
||||
}
|
||||
} else {
|
||||
screenManager()->push(new HostnameSelectScreen(&g_Config.proAdhocServer, sy->T("proAdhocServer Address:")));
|
||||
}
|
||||
else
|
||||
screenManager()->push(new HostnameSelectScreen(g_Config.proAdhocServer));
|
||||
#elif defined(__ANDROID__)
|
||||
System_SendMessage("inputbox", ("IP:" + g_Config.proAdhocServer).c_str());
|
||||
#else
|
||||
screenManager()->push(new HostnameSelectScreen(g_Config.proAdhocServer));
|
||||
screenManager()->push(new HostnameSelectScreen(&g_Config.proAdhocServer, sy->T("proAdhocServer Address:")));
|
||||
#endif
|
||||
|
||||
return UI::EVENT_DONE;
|
||||
@ -1482,130 +1484,66 @@ void DeveloperToolsScreen::update() {
|
||||
canAllowDebugger_ = !WebServerStopping(WebServerFlags::DEBUGGER);
|
||||
}
|
||||
|
||||
void HostnameSelectScreen::CreateViews() {
|
||||
void HostnameSelectScreen::CreatePopupContents(UI::ViewGroup *parent) {
|
||||
using namespace UI;
|
||||
I18NCategory *sy = GetI18NCategory("System");
|
||||
I18NCategory *di = GetI18NCategory("Dialog");
|
||||
|
||||
tempProAdhocServer = targetConfig;
|
||||
root_ = new AnchorLayout(new LayoutParams(FILL_PARENT, FILL_PARENT));
|
||||
LinearLayout *leftColumn = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT));
|
||||
currentValue_ = *value_;
|
||||
LinearLayout *valueRow = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT, Margins(0, 0, 0, 10)));
|
||||
|
||||
leftColumn->Add(new ItemHeader(sy->T("proAdhocServer Address:")));
|
||||
addrView_ = new TextView(tempProAdhocServer, ALIGN_LEFT, false);
|
||||
leftColumn->Add(addrView_);
|
||||
LinearLayout *rightColumn = new LinearLayout(ORIENT_HORIZONTAL, new AnchorLayoutParams(0, 120, 10, NONE, NONE,10));
|
||||
rightColumn->Add(new Button("0"))->OnClick.Handle(this, &HostnameSelectScreen::On0Click);
|
||||
rightColumn->Add(new Button("1"))->OnClick.Handle(this, &HostnameSelectScreen::On1Click);
|
||||
rightColumn->Add(new Button("2"))->OnClick.Handle(this, &HostnameSelectScreen::On2Click);
|
||||
rightColumn->Add(new Button("3"))->OnClick.Handle(this, &HostnameSelectScreen::On3Click);
|
||||
rightColumn->Add(new Button("4"))->OnClick.Handle(this, &HostnameSelectScreen::On4Click);
|
||||
rightColumn->Add(new Button("5"))->OnClick.Handle(this, &HostnameSelectScreen::On5Click);
|
||||
rightColumn->Add(new Button("6"))->OnClick.Handle(this, &HostnameSelectScreen::On6Click);
|
||||
rightColumn->Add(new Button("7"))->OnClick.Handle(this, &HostnameSelectScreen::On7Click);
|
||||
rightColumn->Add(new Button("8"))->OnClick.Handle(this, &HostnameSelectScreen::On8Click);
|
||||
rightColumn->Add(new Button("9"))->OnClick.Handle(this, &HostnameSelectScreen::On9Click);
|
||||
rightColumn->Add(new Button("."))->OnClick.Handle(this, &HostnameSelectScreen::OnPointClick);
|
||||
rightColumn->Add(new Button(di->T("Delete")))->OnClick.Handle(this, &HostnameSelectScreen::OnDeleteClick);
|
||||
rightColumn->Add(new Button(di->T("Delete all")))->OnClick.Handle(this, &HostnameSelectScreen::OnDeleteAllClick);
|
||||
rightColumn->Add(new Button(di->T("OK")))->OnClick.Handle(this, &HostnameSelectScreen::OnOKClick);
|
||||
rightColumn->Add(new Button(di->T("Cancel")))->OnClick.Handle(this, &HostnameSelectScreen::OnCancelClick);
|
||||
root_->Add(leftColumn);
|
||||
root_->Add(rightColumn);
|
||||
addrView_ = new TextView(currentValue_, ALIGN_LEFT, false);
|
||||
valueRow->Add(addrView_);
|
||||
parent->Add(valueRow);
|
||||
|
||||
LinearLayout *buttonsRow1 = new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT));
|
||||
LinearLayout *buttonsRow2 = new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT));
|
||||
parent->Add(buttonsRow1);
|
||||
parent->Add(buttonsRow2);
|
||||
|
||||
for (char c = '0'; c <= '9'; ++c) {
|
||||
char label[] = { c, '\0' };
|
||||
auto button = buttonsRow1->Add(new Button(label));
|
||||
button->OnClick.Handle(this, &HostnameSelectScreen::OnNumberClick);
|
||||
button->SetTag(label);
|
||||
}
|
||||
buttonsRow1->Add(new Button("."))->OnClick.Handle(this, &HostnameSelectScreen::OnPointClick);
|
||||
|
||||
buttonsRow2->Add(new Button(di->T("Delete")))->OnClick.Handle(this, &HostnameSelectScreen::OnDeleteClick);
|
||||
buttonsRow2->Add(new Button(di->T("Delete all")))->OnClick.Handle(this, &HostnameSelectScreen::OnDeleteAllClick);
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::On0Click(UI::EventParams &e) {
|
||||
if (tempProAdhocServer.length() > 0)
|
||||
tempProAdhocServer.append("0");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
UI::EventReturn HostnameSelectScreen::OnNumberClick(UI::EventParams &e) {
|
||||
std::string text = e.v ? e.v->Tag() : "";
|
||||
if (currentValue_.length() > 0 || text != "0")
|
||||
currentValue_.append(text);
|
||||
addrView_->SetText(currentValue_);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::On1Click(UI::EventParams &e) {
|
||||
tempProAdhocServer.append("1");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::On2Click(UI::EventParams &e) {
|
||||
tempProAdhocServer.append("2");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::On3Click(UI::EventParams &e) {
|
||||
tempProAdhocServer.append("3");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::On4Click(UI::EventParams &e) {
|
||||
tempProAdhocServer.append("4");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::On5Click(UI::EventParams &e) {
|
||||
tempProAdhocServer.append("5");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::On6Click(UI::EventParams &e) {
|
||||
tempProAdhocServer.append("6");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::On7Click(UI::EventParams &e) {
|
||||
tempProAdhocServer.append("7");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::On8Click(UI::EventParams &e) {
|
||||
tempProAdhocServer.append("8");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::On9Click(UI::EventParams &e) {
|
||||
tempProAdhocServer.append("9");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::OnPointClick(UI::EventParams &e) {
|
||||
if (tempProAdhocServer.length() > 0 && tempProAdhocServer.at(tempProAdhocServer.length() - 1) != '.')
|
||||
tempProAdhocServer.append(".");
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
if (currentValue_.length() > 0 && currentValue_.at(currentValue_.length() - 1) != '.')
|
||||
currentValue_.append(".");
|
||||
addrView_->SetText(currentValue_);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::OnDeleteClick(UI::EventParams &e) {
|
||||
if (tempProAdhocServer.length() > 0)
|
||||
tempProAdhocServer.erase(tempProAdhocServer.length() -1, 1);
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
if (currentValue_.length() > 0)
|
||||
currentValue_.erase(currentValue_.length() - 1, 1);
|
||||
addrView_->SetText(currentValue_);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::OnDeleteAllClick(UI::EventParams &e) {
|
||||
tempProAdhocServer = "";
|
||||
addrView_->SetText(tempProAdhocServer);
|
||||
currentValue_ = "";
|
||||
addrView_->SetText(currentValue_);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::OnOKClick(UI::EventParams &e) {
|
||||
targetConfig = tempProAdhocServer;
|
||||
UIScreen::OnBack(e);
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn HostnameSelectScreen::OnCancelClick(UI::EventParams &e) {
|
||||
tempProAdhocServer = targetConfig;
|
||||
UIScreen::OnBack(e);
|
||||
return UI::EVENT_DONE;
|
||||
void HostnameSelectScreen::OnCompleted(DialogResult result) {
|
||||
if (result == DR_OK)
|
||||
*value_ = currentValue_;
|
||||
}
|
||||
|
||||
SettingInfoMessage::SettingInfoMessage(int align, UI::AnchorLayoutParams *lp)
|
||||
@ -1614,7 +1552,6 @@ SettingInfoMessage::SettingInfoMessage(int align, UI::AnchorLayoutParams *lp)
|
||||
SetSpacing(0.0f);
|
||||
Add(new UI::Spacer(10.0f));
|
||||
text_ = Add(new UI::TextView("", align, false, new LinearLayoutParams(1.0, Margins(0, 10))));
|
||||
text_->SetTag("TEST?");
|
||||
Add(new UI::Spacer(10.0f));
|
||||
}
|
||||
|
||||
|
@ -175,30 +175,24 @@ private:
|
||||
bool canAllowDebugger_ = true;
|
||||
};
|
||||
|
||||
class HostnameSelectScreen : public UIDialogScreenWithBackground {
|
||||
class HostnameSelectScreen : public PopupScreen {
|
||||
public:
|
||||
HostnameSelectScreen(std::string &target) : targetConfig(target) {}
|
||||
HostnameSelectScreen(std::string *value, const std::string &title)
|
||||
: PopupScreen(title, "OK", "Cancel"), value_(value) {
|
||||
}
|
||||
|
||||
void CreatePopupContents(UI::ViewGroup *parent) override;
|
||||
|
||||
protected:
|
||||
void CreateViews() override;
|
||||
void OnCompleted(DialogResult result) override;
|
||||
|
||||
private:
|
||||
std::string &targetConfig;
|
||||
std::string tempProAdhocServer;
|
||||
UI::TextView *addrView_;
|
||||
UI::EventReturn On0Click(UI::EventParams &e);
|
||||
UI::EventReturn On1Click(UI::EventParams &e);
|
||||
UI::EventReturn On2Click(UI::EventParams &e);
|
||||
UI::EventReturn On3Click(UI::EventParams &e);
|
||||
UI::EventReturn On4Click(UI::EventParams &e);
|
||||
UI::EventReturn On5Click(UI::EventParams &e);
|
||||
UI::EventReturn On6Click(UI::EventParams &e);
|
||||
UI::EventReturn On7Click(UI::EventParams &e);
|
||||
UI::EventReturn On8Click(UI::EventParams &e);
|
||||
UI::EventReturn On9Click(UI::EventParams &e);
|
||||
UI::EventReturn OnNumberClick(UI::EventParams &e);
|
||||
UI::EventReturn OnPointClick(UI::EventParams &e);
|
||||
UI::EventReturn OnDeleteClick(UI::EventParams &e);
|
||||
UI::EventReturn OnDeleteAllClick(UI::EventParams &e);
|
||||
UI::EventReturn OnOKClick(UI::EventParams &e);
|
||||
UI::EventReturn OnCancelClick(UI::EventParams &e);
|
||||
|
||||
std::string *value_;
|
||||
std::string currentValue_;
|
||||
UI::TextView *addrView_;
|
||||
};
|
||||
|
@ -225,7 +225,7 @@ private:
|
||||
|
||||
class TextEditPopupScreen : public PopupScreen {
|
||||
public:
|
||||
TextEditPopupScreen(std::string *value, std::string &placeholder, const std::string &title, int maxLen)
|
||||
TextEditPopupScreen(std::string *value, const std::string &placeholder, const std::string &title, int maxLen)
|
||||
: PopupScreen(title, "OK", "Cancel"), value_(value), placeholder_(placeholder), maxLen_(maxLen) {}
|
||||
virtual void CreatePopupContents(ViewGroup *parent) override;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user