From 1faa39a7551ce312a14fd7c70233cc86f275f0b2 Mon Sep 17 00:00:00 2001 From: giantpune Date: Thu, 28 May 2009 23:18:37 +0000 Subject: [PATCH] fix issue 370, issue 376, issue 374, issue 372, and issue 358. created a new function to remove soundover from buttons. --- source/libwiigui/gui.h | 2 ++ source/libwiigui/gui_button.cpp | 6 ++++++ source/libwiigui/gui_gamegrid.cpp | 5 +++++ source/menu.cpp | 12 ++++++++++-- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/source/libwiigui/gui.h b/source/libwiigui/gui.h index 165361d2..07af6240 100644 --- a/source/libwiigui/gui.h +++ b/source/libwiigui/gui.h @@ -819,6 +819,8 @@ class GuiButton : public GuiElement //!Sets the sound to play on click //!\param s Pointer to GuiSound object void SetSoundClick(GuiSound * s); + //!\param reset the soundover to NULL + void RemoveSoundOver(); //!Constantly called to draw the GuiButtons ToolTip //!Sets the button's Tooltip on over //!\param tt Pointer to GuiElement object, x & y Positioning, h & v Align diff --git a/source/libwiigui/gui_button.cpp b/source/libwiigui/gui_button.cpp index 77459f06..c2520de6 100644 --- a/source/libwiigui/gui_button.cpp +++ b/source/libwiigui/gui_button.cpp @@ -254,6 +254,12 @@ void GuiButton::SetToolTip(GuiElement* tt, int x, int y, int h_align, int v_alig } } + +void GuiButton::RemoveSoundOver() +{ + LOCK(this); + soundOver = NULL; +} /** * Draw the button on screen */ diff --git a/source/libwiigui/gui_gamegrid.cpp b/source/libwiigui/gui_gamegrid.cpp index d0764cb7..55c22125 100644 --- a/source/libwiigui/gui_gamegrid.cpp +++ b/source/libwiigui/gui_gamegrid.cpp @@ -138,6 +138,7 @@ GuiGameGrid::GuiGameGrid(int w, int h, struct discHdr * l, int gameCnt, const ch if (((changed+pagesize)>gameCnt)&&(i>((gameCnt-changed)-1))) { game[i]->SetVisible(false); game[i]->SetClickable(false); + game[i]->RemoveSoundOver(); } } } @@ -375,10 +376,12 @@ void GuiGameGrid::Update(GuiTrigger * t) game[i]->SetImage(coverImg[i]); game[i]->SetVisible(true); game[i]->SetClickable(true); + game[i]->SetSoundOver(btnSoundOver); coverImg[i]->SetEffect(EFFECT_SLIDE_RIGHT | EFFECT_SLIDE_IN, 65); if (((changed+pagesize)>gameCnt)&&(i>((gameCnt-changed)-1))) { game[i]->SetVisible(false); game[i]->SetClickable(false); + game[i]->RemoveSoundOver(); } } btnRight->ResetState(); @@ -430,11 +433,13 @@ void GuiGameGrid::Update(GuiTrigger * t) game[i]->ResetState(); game[i]->SetVisible(true); game[i]->SetImage(coverImg[i]); + game[i]->SetSoundOver(btnSoundOver); game[i]->SetClickable(true); coverImg[i]->SetEffect(EFFECT_SLIDE_LEFT | EFFECT_SLIDE_IN, 65); if (((changed+pagesize)>gameCnt)&&(i>((gameCnt-changed)-1))) { game[i]->SetVisible(false); game[i]->SetClickable(false); + game[i]->RemoveSoundOver(); } } btnLeft->ResetState(); diff --git a/source/menu.cpp b/source/menu.cpp index 5f9502e5..b0e69117 100644 --- a/source/menu.cpp +++ b/source/menu.cpp @@ -1024,7 +1024,7 @@ int GameWindowPrompt() GuiText sizeTxt("", 22, (GXColor){THEME.prompttxt_r, THEME.prompttxt_g, THEME.prompttxt_b, 255}); //{50, 50, 50, 255}); //TODO: get the size here sizeTxt.SetAlignment(ALIGN_RIGHT, ALIGN_TOP); - sizeTxt.SetPosition(-60,70); + sizeTxt.SetPosition(-110,70); // GuiImage diskImg; GuiDiskCover diskImg; @@ -1084,7 +1084,15 @@ int GameWindowPrompt() GuiImage btnFavoriteImg; btnFavoriteImg.SetWidescreen(CFG.widescreen); - GuiButton btnFavorite(&btnFavoriteImg,&btnFavoriteImg, 2, 5, -125, -60, &trigA, &btnSoundOver, &btnClick,1); + //GuiButton btnFavorite(&btnFavoriteImg,&btnFavoriteImg, 2, 5, -125, -60, &trigA, &btnSoundOver, &btnClick,1); + GuiButton btnFavorite(imgFavorite.GetWidth(), imgFavorite.GetHeight()); + btnFavorite.SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE); + btnFavorite.SetPosition(-125, -60); + btnFavorite.SetImage(&btnFavoriteImg); + btnFavorite.SetSoundOver(&btnSoundOver); + btnFavorite.SetSoundClick(&btnClick); + btnFavorite.SetTrigger(&trigA); + btnFavorite.SetEffectGrow(); GuiImage btnLeftImg(&imgLeft); if (Settings.wsprompt == yes)