@@ -229,32 +229,67 @@ void GameSettingsScreen::PreCreateViews() {
229
229
iAlternateSpeedPercentAnalog_ = (g_Config.iAnalogFpsLimit * 100 ) / 60 ;
230
230
}
231
231
232
+ void GameSettingsScreen::CreateBanner (UI::LinearLayout *parent, const char *category, const char *url) {
233
+ using namespace UI ;
234
+ auto ms = GetI18NCategory (I18NCat::MAINSETTINGS);
235
+
236
+ LinearLayout *banner = new LinearLayout (ORIENT_HORIZONTAL);
237
+ std::string title = category;
238
+ bool hasGameConfig = false ;
239
+ if (g_Config.hasGameConfig (gameID_)) {
240
+ auto info = g_gameInfoCache->GetInfo (nullptr , gamePath_, 0 );
241
+ title = info->GetTitle () + " - " + gameID_;
242
+ hasGameConfig = true ;
243
+ }
244
+ if (hasGameConfig) {
245
+ banner->Add (new ImageView (ImageID (" I_GEAR" ), " " , UI::ImageSizeMode::IS_KEEP_ASPECT, new LinearLayoutParams (50 , 50 , 0 .0f , G_CENTER)));
246
+ }
247
+ banner->Add (new TextView (title, new LinearLayoutParams (Margins (10 , 10 ))));
248
+ banner->Add (new Spacer (0 .0f , new LinearLayoutParams (1 .0f )));
249
+ if (strlen (url)) {
250
+ banner->Add (new Button (ms->T (" Help" ), new LinearLayoutParams (Margins (8 , 8 ))))->OnClick .Add ([=](UI::EventParams &e) {
251
+ std::string fullUrl = StringFromFormat (" https://www.ppsspp.org/docs/settings/%s" , url);
252
+ System_LaunchUrl (LaunchUrlType::BROWSER_URL, fullUrl.c_str ());
253
+ return UI::EVENT_DONE;
254
+ });
255
+ }
256
+ banner->SetBG (UI::Drawable (0x30000000 ));
257
+ parent->Add (banner);
258
+ }
259
+
232
260
void GameSettingsScreen::CreateTabs () {
233
261
using namespace UI ;
234
262
auto ms = GetI18NCategory (I18NCat::MAINSETTINGS);
235
263
236
264
LinearLayout *graphicsSettings = AddTab (" GameSettingsGraphics" , ms->T (" Graphics" ));
265
+ CreateBanner (graphicsSettings, ms->T (" Graphics" ), " graphics" );
237
266
CreateGraphicsSettings (graphicsSettings);
238
267
239
268
LinearLayout *controlsSettings = AddTab (" GameSettingsControls" , ms->T (" Controls" ));
269
+ CreateBanner (controlsSettings, ms->T (" Controls" ), " controls" );
240
270
CreateControlsSettings (controlsSettings);
241
271
242
272
LinearLayout *audioSettings = AddTab (" GameSettingsAudio" , ms->T (" Audio" ));
273
+ CreateBanner (audioSettings, ms->T (" Audio" ), " audio" );
243
274
CreateAudioSettings (audioSettings);
244
275
245
276
LinearLayout *networkingSettings = AddTab (" GameSettingsNetworking" , ms->T (" Networking" ));
277
+ CreateBanner (networkingSettings, ms->T (" Networking" ), " network" );
246
278
CreateNetworkingSettings (networkingSettings);
247
279
248
- LinearLayout *tools = AddTab (" GameSettingsTools" , ms->T (" Tools" ));
249
- CreateToolsSettings (tools);
280
+ LinearLayout *toolsSettings = AddTab (" GameSettingsTools" , ms->T (" Tools" ));
281
+ CreateBanner (toolsSettings, ms->T (" Tools" ), " tools" );
282
+ CreateToolsSettings (toolsSettings);
250
283
251
284
LinearLayout *systemSettings = AddTab (" GameSettingsSystem" , ms->T (" System" ));
252
285
systemSettings->SetSpacing (0 );
286
+ CreateBanner (systemSettings, ms->T (" System" ), " system" );
253
287
CreateSystemSettings (systemSettings);
254
288
255
289
int deviceType = System_GetPropertyInt (SYSPROP_DEVICE_TYPE);
256
290
if (deviceType == DEVICE_TYPE_VR) {
257
- LinearLayout *vrSettings = AddTab (" GameSettingsVR" , ms->T (" VR" ));
291
+ LinearLayout *vrSettings = AddTab (" GameSettingsVR" , ms->T (" VR" ), " " );
292
+ CreateBanner (vrSettings, ms->T (" VR" ), " " );
258
293
CreateVRSettings (vrSettings);
259
294
}
260
295
}
0 commit comments