- Shift+letter when clicking tileset,map or techtree will advance properly in the clicked direction

This commit is contained in:
Mark Vejvoda 2012-10-15 08:28:00 +00:00
parent 646a066ec4
commit abb525fbd1
1 changed files with 24 additions and 2 deletions

View File

@ -462,7 +462,7 @@ bool GraphicListBox::mouseClick(int x, int y,string advanceToItemStartingWith) {
if(b1) {
bool bFound = false;
if(advanceToItemStartingWith != "") {
for(unsigned int i = 0; i < items.size(); ++i) {
for(unsigned int i = selectedItemIndex - 1; i >= 0; --i) {
string item = items[i];
if(StartsWith(toLower(item),toLower(advanceToItemStartingWith)) == true) {
bFound = true;
@ -470,6 +470,17 @@ bool GraphicListBox::mouseClick(int x, int y,string advanceToItemStartingWith) {
break;
}
}
if(bFound == false) {
for(unsigned int i = items.size() - 1; i >= selectedItemIndex; --i) {
string item = items[i];
//printf("Trying to match [%s] with item [%s]\n",advanceToItemStartingWith.c_str(),item.c_str());
if(StartsWith(toLower(item),toLower(advanceToItemStartingWith)) == true) {
bFound = true;
selectedItemIndex = i;
break;
}
}
}
}
if(bFound == false) {
selectedItemIndex--;
@ -481,7 +492,7 @@ bool GraphicListBox::mouseClick(int x, int y,string advanceToItemStartingWith) {
else if(b2) {
bool bFound = false;
if(advanceToItemStartingWith != "") {
for(unsigned int i = 0; i < items.size(); ++i) {
for(unsigned int i = selectedItemIndex + 1; i < items.size(); ++i) {
string item = items[i];
//printf("Trying to match [%s] with item [%s]\n",advanceToItemStartingWith.c_str(),item.c_str());
if(StartsWith(toLower(item),toLower(advanceToItemStartingWith)) == true) {
@ -490,6 +501,17 @@ bool GraphicListBox::mouseClick(int x, int y,string advanceToItemStartingWith) {
break;
}
}
if(bFound == false) {
for(unsigned int i = 0; i <= selectedItemIndex; ++i) {
string item = items[i];
//printf("Trying to match [%s] with item [%s]\n",advanceToItemStartingWith.c_str(),item.c_str());
if(StartsWith(toLower(item),toLower(advanceToItemStartingWith)) == true) {
bFound = true;
selectedItemIndex = i;
break;
}
}
}
}
if(bFound == false) {
selectedItemIndex++;