dialog:: improvements to list dialogs

This commit is contained in:
Zeno Rogue 2022-10-21 12:47:20 +02:00
parent 06f450af22
commit 29ba4138a4
6 changed files with 16 additions and 21 deletions

View File

@ -2988,8 +2988,8 @@ EX void find_setting() {
dialog::display(); dialog::display();
keyhandler = [] (int sym, int uni) { keyhandler = [] (int sym, int uni) {
dialog::handleNavigation(sym, uni); dialog::handleNavigation(sym, uni);
if(dialog::editInfix(uni)) ; if(dialog::editInfix(uni)) dialog::list_skip = 0;
else if(doexiton(sym, uni)) popScreen(); else if(doexiton(sym, uni)) popScreen();
}; };
} }

View File

@ -187,17 +187,17 @@ EX void ge_land_selection() {
}); });
stable_sort(landlist.begin(), landlist.end(), [] (eLand l1, eLand l2) { return land_validity(l1).quality_level > land_validity(l2).quality_level; }); stable_sort(landlist.begin(), landlist.end(), [] (eLand l1, eLand l2) { return land_validity(l1).quality_level > land_validity(l2).quality_level; });
for(int i=0; i<euperpage; i++) { dialog::start_list(900, 900, '1');
if(euperpage * eupage + i >= isize(landlist)) { dialog::addBreak(100); break; }
eLand l = landlist[euperpage * eupage + i]; for(auto& l: landlist) {
char ch = '1'+i;
string s = XLAT1(linf[l].name); string s = XLAT1(linf[l].name);
if(landvisited[l]) { if(landvisited[l]) {
dialog::addBoolItem(s, l == specialland, ch); dialog::addBoolItem(s, l == specialland, dialog::list_fake_key++);
} }
else { else {
dialog::addSelItem(s, XLAT("(locked)"), ch); dialog::addSelItem(s, XLAT("(locked)"), dialog::list_fake_key++);
} }
dialog::lastItem().color = linf[l].color; dialog::lastItem().color = linf[l].color;
@ -217,13 +217,13 @@ EX void ge_land_selection() {
})); }));
}); });
} }
dialog::addItem(XLAT("next page"), '-'); dialog::end_list();
dialog::addInfo(XLAT("press letters to search"));
dialog::addBreak(25); dialog::addBreak(25);
validity_info(); validity_info();
dialog::addBreak(25); dialog::addBreak(25);
dialog::addInfo(XLAT("press letters to search"));
dual::add_choice(); dual::add_choice();
dialog::addBack(); dialog::addBack();
dialog::display(); dialog::display();
@ -231,11 +231,7 @@ EX void ge_land_selection() {
keyhandler = [] (int sym, int uni) { keyhandler = [] (int sym, int uni) {
dialog::handleNavigation(sym, uni); dialog::handleNavigation(sym, uni);
if(uni == '-' || uni == PSEUDOKEY_WHEELUP || uni == PSEUDOKEY_WHEELDOWN) { if(dialog::editInfix(uni)) dialog::list_skip = 0;
eupage++;
if(eupage * euperpage >= isize(landlist)) eupage = 0;
}
else if(dialog::editInfix(uni)) eupage = 0;
else if(doexiton(sym, uni)) popScreen(); else if(doexiton(sym, uni)) popScreen();
}; };
} }

View File

@ -1734,12 +1734,13 @@ EX namespace mapeditor {
dialog::end_list(); dialog::end_list();
dialog::addBreak(50); dialog::addBreak(50);
dialog::addInfo(XLAT("press letters to search"));
dialog::addBack(); dialog::addBack();
dialog::display(); dialog::display();
keyhandler = [] (int sym, int uni) { keyhandler = [] (int sym, int uni) {
dialog::handleNavigation(sym, uni); dialog::handleNavigation(sym, uni);
if(dialog::editInfix(uni)) ; if(dialog::editInfix(uni)) dialog::list_skip = 0;
else if(doexiton(sym, uni)) popScreen(); else if(doexiton(sym, uni)) popScreen();
}; };
} }

View File

@ -201,8 +201,7 @@ EX void showOverview() {
"Cheaters can click to move between lands, and use the " "Cheaters can click to move between lands, and use the "
"mousewheel to gain or lose treasures and orbs quickly (Ctrl = precise, Shift = reverse)." "mousewheel to gain or lose treasures and orbs quickly (Ctrl = precise, Shift = reverse)."
); );
else if(dialog::handlePageButtons(uni)) ; else if(dialog::editInfix(uni)) dialog::list_skip = 0;
else if(dialog::editInfix(uni)) ;
else if(doexiton(sym, uni)) popScreen(); else if(doexiton(sym, uni)) popScreen();
}; };
} }

View File

@ -157,7 +157,7 @@ void showPickScores() {
mouseovers = dialog::infix; mouseovers = dialog::infix;
keyhandler = [] (int sym, int uni) { keyhandler = [] (int sym, int uni) {
dialog::handleNavigation(sym, uni); dialog::handleNavigation(sym, uni);
if(dialog::editInfix(uni)) ; if(dialog::editInfix(uni)) dialog::list_skip = 0;
else if(doexiton(sym, uni)) popScreen(); else if(doexiton(sym, uni)) popScreen();
}; };
} }

View File

@ -941,8 +941,7 @@ EX namespace tactic {
"Good luck, and have fun!" "Good luck, and have fun!"
); );
else if(dialog::infix == "" && dialog::handlePageButtons(uni)) ; else if(dialog::editInfix(uni)) dialog::list_skip = 0;
else if(dialog::editInfix(uni)) ;
else if(doexiton(sym, uni)) popScreen(); else if(doexiton(sym, uni)) popScreen();
}; };
} }