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

@ -225,12 +225,15 @@ void GuiButton::Update(GuiTrigger * t)
if(t->chan == stateChan || stateChan == -1) if(t->chan == stateChan || stateChan == -1)
{ {
if(state == STATE_SELECTED) if(state == STATE_SELECTED)
{
if(!t->wpad.ir.valid || this->IsInside(t->wpad.ir.x, t->wpad.ir.y))
{ {
this->SetState(STATE_CLICKED, t->chan); 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)
{ {
this->SetState(STATE_CLICKED, t->chan); this->SetState(STATE_CLICKED, t->chan);

View File

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