more GUI logic corrections

This commit is contained in:
dborth 2009-05-28 07:50:30 +00:00
parent dc33859cc4
commit a2f4cbae70
3 changed files with 14 additions and 17 deletions

View File

@ -226,10 +226,13 @@ void GuiButton::Update(GuiTrigger * t)
{ {
if(state == STATE_SELECTED) if(state == STATE_SELECTED)
{ {
this->SetState(STATE_CLICKED, t->chan); if(!t->wpad.ir.valid || this->IsInside(t->wpad.ir.x, t->wpad.ir.y))
{
this->SetState(STATE_CLICKED, t->chan);
if(soundClick) if(soundClick)
soundClick->Play(); soundClick->Play();
}
} }
else if(trigger[i]->type == TRIGGER_BUTTON_ONLY) else if(trigger[i]->type == TRIGGER_BUTTON_ONLY)
{ {

View File

@ -357,13 +357,10 @@ void GuiFileBrowser::Update(GuiTrigger * t)
} }
} }
if(focus) if(i != selectedItem && gameList[i]->GetState() == STATE_SELECTED)
{ gameList[i]->ResetState();
if(i != selectedItem && gameList[i]->GetState() == STATE_SELECTED) else if(focus && i == selectedItem && gameList[i]->GetState() == STATE_DEFAULT)
gameList[i]->ResetState(); gameList[selectedItem]->SetState(STATE_SELECTED, t->chan);
else if(i == selectedItem && gameList[i]->GetState() == STATE_DEFAULT)
gameList[selectedItem]->SetState(STATE_SELECTED, t->chan);
}
int currChan = t->chan; int currChan = t->chan;

View File

@ -261,13 +261,10 @@ void GuiOptionBrowser::Update(GuiTrigger * t)
optionBtn[i]->SetState(STATE_DISABLED); optionBtn[i]->SetState(STATE_DISABLED);
} }
if(focus) if(i != selectedItem && optionBtn[i]->GetState() == STATE_SELECTED)
{ optionBtn[i]->ResetState();
if(i != selectedItem && optionBtn[i]->GetState() == STATE_SELECTED) else if(focus && i == selectedItem && optionBtn[i]->GetState() == STATE_DEFAULT)
optionBtn[i]->ResetState(); optionBtn[selectedItem]->SetState(STATE_SELECTED, t->chan);
else if(i == selectedItem && optionBtn[i]->GetState() == STATE_DEFAULT)
optionBtn[selectedItem]->SetState(STATE_SELECTED, t->chan);
}
int currChan = t->chan; int currChan = t->chan;