void ControlMapper::Refresh() { Clear(); I18NCategory *c = GetI18NCategory("MappableControls"); std::map<std::string, int> keyImages; keyImages["Circle"] = I_CIRCLE; keyImages["Cross"] = I_CROSS; keyImages["Square"] = I_SQUARE; keyImages["Triangle"] = I_TRIANGLE; keyImages["Start"] = I_START; keyImages["Select"] = I_SELECT; keyImages["L"] = I_L; keyImages["R"] = I_R; using namespace UI; LinearLayout *root = Add(new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT))); auto iter = keyImages.find(keyName_); // First, look among images. if (iter != keyImages.end()) { root->Add(new Choice(iter->second, new LinearLayoutParams(200, WRAP_CONTENT)))->OnClick.Handle(this, &ControlMapper::OnReplaceAll); } else { // No image? Let's translate. Choice *choice = new Choice(c->T(keyName_.c_str()), new LinearLayoutParams(200, WRAP_CONTENT)); choice->SetCentered(true); root->Add(choice)->OnClick.Handle(this, &ControlMapper::OnReplaceAll); } LinearLayout *rightColumn = root->Add(new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(1.0f))); rightColumn->SetSpacing(2.0f); std::vector<KeyDef> mappings; KeyMap::KeyFromPspButton(pspKey_, &mappings); for (size_t i = 0; i < mappings.size(); i++) { std::string deviceName = GetDeviceName(mappings[i].deviceId); std::string keyName = KeyMap::GetKeyOrAxisName(mappings[i].keyCode); int image = -1; LinearLayout *row = rightColumn->Add(new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT))); Choice *c = row->Add(new Choice(deviceName + "." + keyName, new LinearLayoutParams(1.0f))); char tagbuf[16]; sprintf(tagbuf, "%i", (int)i); c->SetTag(tagbuf); c->OnClick.Handle(this, &ControlMapper::OnReplace); Choice *d = row->Add(new Choice("X")); d->SetTag(tagbuf); d->OnClick.Handle(this, &ControlMapper::OnDelete); row->Add(new Choice("+"))->OnClick.Handle(this, &ControlMapper::OnAdd); } if (mappings.size() == 0) { // look like an empty line rightColumn->Add(new Choice("", new LinearLayoutParams(WRAP_CONTENT, WRAP_CONTENT)))->OnClick.Handle(this, &ControlMapper::OnAdd); } }
void ShaderListScreen::ListShaders(DebugShaderType shaderType, UI::LinearLayout *view) { using namespace UI; std::vector<std::string> shaderIds_ = gpu->DebugGetShaderIDs(shaderType); for (auto id : shaderIds_) { Choice *choice = view->Add(new Choice(gpu->DebugGetShaderString(id, shaderType, SHADER_STRING_SHORT_DESC))); choice->SetTag(id); choice->OnClick.Handle(this, &ShaderListScreen::OnShaderClick); } }
void ControlMapper::Refresh() { Clear(); using namespace UI; LinearLayout *root = Add(new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT))); root->Add(new Choice(keyName_, new LinearLayoutParams(200, WRAP_CONTENT)))->OnClick.Handle(this, &ControlMapper::OnReplaceAll); LinearLayout *rightColumn = root->Add(new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(1.0f))); rightColumn->SetSpacing(2.0f); std::vector<KeyDef> mappings; KeyMap::KeyFromPspButton(pspKey_, &mappings); for (size_t i = 0; i < mappings.size(); i++) { std::string deviceName = GetDeviceName(mappings[i].deviceId); std::string keyName = KeyMap::GetKeyOrAxisName(mappings[i].keyCode); int image = -1; LinearLayout *row = rightColumn->Add(new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT))); Choice *c = row->Add(new Choice(deviceName + "." + keyName, new LinearLayoutParams(1.0f))); char tagbuf[16]; sprintf(tagbuf, "%i", (int)i); c->SetTag(tagbuf); c->OnClick.Handle(this, &ControlMapper::OnReplace); Choice *d = row->Add(new Choice("X")); d->SetTag(tagbuf); d->OnClick.Handle(this, &ControlMapper::OnDelete); row->Add(new Choice("+"))->OnClick.Handle(this, &ControlMapper::OnAdd); } if (mappings.size() == 0) { // look like an empty line rightColumn->Add(new Choice("", new LinearLayoutParams(WRAP_CONTENT, WRAP_CONTENT)))->OnClick.Handle(this, &ControlMapper::OnAdd); } }