@@ -595,75 +595,80 @@ UI::EventReturn SavedataBrowser::SavedataButtonClick(UI::EventParams &e) {
595
595
return UI::EVENT_DONE;
596
596
}
597
597
598
- SavedataScreen::SavedataScreen (const Path &gamePath) : UIDialogScreenWithGameBackground(gamePath) {
599
- }
600
-
601
598
SavedataScreen::~SavedataScreen () {
602
599
if (g_gameInfoCache) {
603
600
g_gameInfoCache->PurgeType (IdentifiedFileType::PPSSPP_SAVESTATE);
604
601
g_gameInfoCache->PurgeType (IdentifiedFileType::PSP_SAVEDATA_DIRECTORY);
605
602
}
606
603
}
607
604
608
- void SavedataScreen::CreateViews () {
609
- using namespace UI ;
605
+ void SavedataScreen::CreateSavedataTab (UI::ViewGroup *savedata) {
610
606
auto sa = GetI18NCategory (I18NCat::SAVEDATA);
607
+ using namespace UI ;
611
608
Path savedata_dir = GetSysDirectory (DIRECTORY_SAVEDATA);
612
- Path savestate_dir = GetSysDirectory (DIRECTORY_SAVESTATE);
613
609
614
- gridStyle_ = false ;
615
- root_ = new AnchorLayout ();
616
-
617
- // Make space for buttons.
618
- LinearLayout *main = new LinearLayout (ORIENT_VERTICAL, new AnchorLayoutParams (FILL_PARENT, FILL_PARENT, 0 , 0 , 0 , 84 .0f ));
610
+ ChoiceStrip *sortStrip = new ChoiceStrip (ORIENT_HORIZONTAL, new LinearLayoutParams (0 .0f , UI::Gravity::G_CENTER));
611
+ sortStrip->AddChoice (sa->T (" Filename" ));
612
+ sortStrip->AddChoice (sa->T (" Size" ));
613
+ sortStrip->AddChoice (sa->T (" Date" ));
614
+ sortStrip->SetSelection ((int )sortOption_, false );
615
+ sortStrip->OnChoice .Add ([this ](UI::EventParams &e) {
616
+ sortOption_ = SavedataSortOption (e.a );
617
+ dataBrowser_->SetSortOption (sortOption_);
618
+ return UI::EVENT_DONE;
619
+ });
620
+ savedata->Add (sortStrip);
619
621
620
- TabHolder *tabs = new TabHolder (ORIENT_HORIZONTAL, 64 , new LinearLayoutParams (FILL_PARENT, FILL_PARENT, 1 .0f ));
621
- tabs->SetTag (" Savedata" );
622
- ScrollView *scroll = new ScrollView (ORIENT_VERTICAL, new LinearLayoutParams (FILL_PARENT, WRAP_CONTENT));
623
- scroll->SetTag (" SavedataBrowser" );
624
- dataBrowser_ = scroll->Add (new SavedataBrowser (savedata_dir, new LayoutParams (FILL_PARENT, FILL_PARENT)));
622
+ dataBrowser_ = savedata->Add (new SavedataBrowser (savedata_dir, new LayoutParams (FILL_PARENT, FILL_PARENT)));
625
623
dataBrowser_->SetSortOption (sortOption_);
626
624
if (!searchFilter_.empty ())
627
625
dataBrowser_->SetSearchFilter (searchFilter_);
628
626
dataBrowser_->OnChoice .Handle (this , &SavedataScreen::OnSavedataButtonClick);
629
627
630
- tabs->AddTab (sa->T (" Save Data" ), scroll);
631
-
632
- ScrollView *scroll2 = new ScrollView (ORIENT_VERTICAL, new LinearLayoutParams (FILL_PARENT, WRAP_CONTENT));
633
- scroll2->SetTag (" SavedataStatesBrowser" );
634
- stateBrowser_ = scroll2->Add (new SavedataBrowser (savestate_dir));
635
- stateBrowser_->SetSortOption (sortOption_);
636
- if (!searchFilter_.empty ())
637
- stateBrowser_->SetSearchFilter (searchFilter_);
638
- stateBrowser_->OnChoice .Handle (this , &SavedataScreen::OnSavedataButtonClick);
639
- tabs->AddTab (sa->T (" Save States" ), scroll2);
628
+ }
640
629
641
- main->Add (tabs);
630
+ void SavedataScreen::CreateSavestateTab (UI::ViewGroup *savestate) {
631
+ auto sa = GetI18NCategory (I18NCat::SAVEDATA);
632
+ using namespace UI ;
633
+ Path savestate_dir = GetSysDirectory (DIRECTORY_SAVESTATE);
642
634
643
- ChoiceStrip *sortStrip = new ChoiceStrip (ORIENT_HORIZONTAL, new AnchorLayoutParams (NONE, 0 , 0 , NONE) );
635
+ ChoiceStrip *sortStrip = new ChoiceStrip (ORIENT_HORIZONTAL);
644
636
sortStrip->AddChoice (sa->T (" Filename" ));
645
637
sortStrip->AddChoice (sa->T (" Size" ));
646
638
sortStrip->AddChoice (sa->T (" Date" ));
647
639
sortStrip->SetSelection ((int )sortOption_, false );
648
- sortStrip->OnChoice .Handle <SavedataScreen>(this , &SavedataScreen::OnSortClick);
649
-
650
- AddStandardBack (root_);
651
- if (System_GetPropertyBool (SYSPROP_HAS_TEXT_INPUT_DIALOG)) {
652
- auto di = GetI18NCategory (I18NCat::DIALOG);
653
- root_->Add (new Choice (di->T (" Search" ), " " , false , new AnchorLayoutParams (WRAP_CONTENT, 64 , NONE, NONE, 10 , 10 )))->OnClick .Handle <SavedataScreen>(this , &SavedataScreen::OnSearch);
654
- }
640
+ sortStrip->OnChoice .Add ([this ](UI::EventParams &e) {
641
+ sortOption_ = SavedataSortOption (e.a );
642
+ stateBrowser_->SetSortOption (sortOption_);
643
+ return UI::EVENT_DONE;
644
+ });
645
+ savestate->Add (sortStrip);
655
646
656
- root_->Add (main);
657
- root_->Add (sortStrip);
647
+ stateBrowser_ = savestate->Add (new SavedataBrowser (savestate_dir));
648
+ stateBrowser_->SetSortOption (sortOption_);
649
+ if (!searchFilter_.empty ())
650
+ stateBrowser_->SetSearchFilter (searchFilter_);
651
+ stateBrowser_->OnChoice .Handle (this , &SavedataScreen::OnSavedataButtonClick);
658
652
}
659
653
660
- UI::EventReturn SavedataScreen::OnSortClick (UI::EventParams &e) {
661
- sortOption_ = SavedataSortOption (e.a );
654
+ void SavedataScreen::CreateTabs () {
655
+ using namespace UI ;
656
+ auto sa = GetI18NCategory (I18NCat::SAVEDATA);
657
+
658
+ LinearLayout *savedata = AddTab (" SavedataBrowser" , sa->T (" Save Data" ));
659
+ CreateSavedataTab (savedata);
662
660
663
- dataBrowser_->SetSortOption (sortOption_);
664
- stateBrowser_->SetSortOption (sortOption_);
661
+ LinearLayout *savestate = AddTab (" SavedataStatesBrowser" , sa->T (" Save States" ));
662
+ CreateSavestateTab (savestate);
663
+ }
665
664
666
- return UI::EVENT_DONE;
665
+ void SavedataScreen::CreateExtraButtons (UI::LinearLayout *verticalLayout, int margins) {
666
+ using namespace UI ;
667
+ if (System_GetPropertyBool (SYSPROP_HAS_TEXT_INPUT_DIALOG)) {
668
+ auto di = GetI18NCategory (I18NCat::DIALOG);
669
+ verticalLayout->Add (new Choice (di->T (" Search" ), " " , false , new LinearLayoutParams (FILL_PARENT, WRAP_CONTENT, 0 .0f , Margins (0 , 0 , margins, margins))))
670
+ ->OnClick .Handle <SavedataScreen>(this , &SavedataScreen::OnSearch);
671
+ }
667
672
}
668
673
669
674
UI::EventReturn SavedataScreen::OnSearch (UI::EventParams &e) {
0 commit comments