WiiFlow_Lite/source/menu/menu_error.cpp
fix94.1 706e18c6c0 -internal wii game and channel banner playback, still work in
progress, thanks alot to dimok and the whole usb loader gx team 
for help and the code for it!
To zoom the banner to fullscreen click the back button, to zoom out
the back button again, known bugs:
-some games fuck up the textures of buttons (e.g. wii play motion)
-if no wii game or channel was selected and you try to launch a game
or exit wiiflow it will most likely codedump
2012-07-03 16:26:49 +00:00

82 lines
2.0 KiB
C++

#include "menu.hpp"
#include "gecko.h"
extern const u8 error_png[];
u32 m_errorLblMessage;
u32 m_errorLblIcon;
u32 m_errorLblUser[4];
void CMenu::error(const wstringEx &msg)
{
SetupInput();
_hideAbout();
_hideCode();
_hideConfig();
_hideConfigAdv();
_hideConfig3();
_hideConfig4();
_hideConfigScreen();
_hideConfigSnd();
_hideDownload();
_hideGame();
_hideMain();
_hideWBFS();
_hideCFTheme();
_hideCategorySettings();
_hideSystem();
_hideGameInfo();
_hideCheatDownload();
_hideGameSettings();
_hideWaitMessage();
m_btnMgr.setText(m_errorLblMessage, msg, true);
_showError();
gprintf(msg.toUTF8().c_str());
do
{
_mainLoopCommon();
} while (!BTN_B_PRESSED && !BTN_A_PRESSED && !BTN_HOME_PRESSED);
_hideError(false);
}
void CMenu::_hideError(bool instant)
{
m_btnMgr.hide(m_errorLblIcon, instant);
m_btnMgr.hide(m_errorLblMessage, instant);
for (u32 i = 0; i < ARRAY_SIZE(m_errorLblUser); ++i)
if (m_errorLblUser[i] != -1u)
m_btnMgr.hide(m_errorLblUser[i], instant);
}
void CMenu::_showError(void)
{
_setBg(m_errorBg, m_errorBg);
m_btnMgr.show(m_errorLblMessage);
m_btnMgr.show(m_errorLblIcon);
for (u32 i = 0; i < ARRAY_SIZE(m_errorLblUser); ++i)
if (m_errorLblUser[i] != -1u)
m_btnMgr.show(m_errorLblUser[i]);
}
void CMenu::_initErrorMenu(CMenu::SThemeData &theme)
{
STexture texIcon;
texIcon.fromPNG(error_png);
_addUserLabels(theme, m_errorLblUser, ARRAY_SIZE(m_errorLblUser), "ERROR");
m_errorBg = _texture(theme.texSet, "ERROR/BG", "texture", theme.bg);
m_errorLblMessage = _addLabel(theme, "ERROR/MESSAGE", theme.lblFont, L"", 112, 20, 500, 440, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_errorLblIcon = _addLabel(theme, "ERROR/ICON", theme.lblFont, L"", 40, 200, 64, 64, theme.lblFontColor, 0, texIcon);
//
_setHideAnim(m_errorLblMessage, "ERROR/MESSAGE", 0, 0, 0.f, 0.f);
_setHideAnim(m_errorLblIcon, "ERROR/ICON", -50, 0, 0.f, 0.f);
//
_hideError(true);
_textError();
}
void CMenu::_textError(void)
{
}