mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-06-29 20:35:57 +00:00
format XUI
This commit is contained in:
@@ -19,87 +19,86 @@ const float CScene_Win::PLAYER_SCROLL_SPEED = 3.0f;
|
||||
//----------------------------------------------------------------------------------
|
||||
// Performs initialization tasks - retrieves controls.
|
||||
//----------------------------------------------------------------------------------
|
||||
HRESULT CScene_Win::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
|
||||
{
|
||||
m_iPad = *(int *)pInitData->pvInitData;
|
||||
HRESULT CScene_Win::OnInit(XUIMessageInit* pInitData, BOOL& bHandled) {
|
||||
m_iPad = *(int*)pInitData->pvInitData;
|
||||
|
||||
m_bIgnoreInput = false;
|
||||
m_bIgnoreInput = false;
|
||||
|
||||
MapChildControls();
|
||||
MapChildControls();
|
||||
|
||||
// Display the tooltips
|
||||
ui.SetTooltips( m_iPad, -1, IDS_TOOLTIPS_CONTINUE);
|
||||
// Display the tooltips
|
||||
ui.SetTooltips(m_iPad, -1, IDS_TOOLTIPS_CONTINUE);
|
||||
|
||||
std::wstring halfScreenLineBreaks;
|
||||
std::wstring halfScreenLineBreaks;
|
||||
|
||||
if(RenderManager.IsHiDef())
|
||||
{
|
||||
// HD - 17 line page
|
||||
halfScreenLineBreaks = L"<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>";
|
||||
}
|
||||
else
|
||||
{
|
||||
// 480 - 14 line page
|
||||
halfScreenLineBreaks = L"<br/><br/><br/><br/><br/><br/><br/><br/>";
|
||||
}
|
||||
if (RenderManager.IsHiDef()) {
|
||||
// HD - 17 line page
|
||||
halfScreenLineBreaks =
|
||||
L"<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>";
|
||||
} else {
|
||||
// 480 - 14 line page
|
||||
halfScreenLineBreaks = L"<br/><br/><br/><br/><br/><br/><br/><br/>";
|
||||
}
|
||||
|
||||
noNoiseString = L"<font size=\"24\"><ds>";
|
||||
noNoiseString.append(halfScreenLineBreaks);
|
||||
noNoiseString.append(halfScreenLineBreaks);
|
||||
noNoiseString.append( app.GetString(IDS_WIN_TEXT) );
|
||||
noNoiseString.append( app.GetString(IDS_WIN_TEXT_PART_2) );
|
||||
noNoiseString.append( app.GetString(IDS_WIN_TEXT_PART_3) );
|
||||
noNoiseString = L"<font size=\"24\"><ds>";
|
||||
noNoiseString.append(halfScreenLineBreaks);
|
||||
noNoiseString.append(halfScreenLineBreaks);
|
||||
noNoiseString.append(app.GetString(IDS_WIN_TEXT));
|
||||
noNoiseString.append(app.GetString(IDS_WIN_TEXT_PART_2));
|
||||
noNoiseString.append(app.GetString(IDS_WIN_TEXT_PART_3));
|
||||
|
||||
noNoiseString.append(halfScreenLineBreaks);
|
||||
noNoiseString.append(halfScreenLineBreaks);
|
||||
|
||||
noNoiseString.append( L"</ds></font>" );
|
||||
noNoiseString.append(L"</ds></font>");
|
||||
|
||||
noNoiseString = app.FormatHTMLString(m_iPad, noNoiseString, 0xff000000);
|
||||
noNoiseString = app.FormatHTMLString(m_iPad, noNoiseString, 0xff000000);
|
||||
|
||||
Random random(8124371);
|
||||
int found=(int)noNoiseString.find_first_of(L"{");
|
||||
int length;
|
||||
while (found!=string::npos)
|
||||
{
|
||||
length = random.nextInt(4) + 3;
|
||||
m_noiseLengths.push_back(length);
|
||||
found=(int)noNoiseString.find_first_of(L"{",found+1);
|
||||
}
|
||||
Random random(8124371);
|
||||
int found = (int)noNoiseString.find_first_of(L"{");
|
||||
int length;
|
||||
while (found != string::npos) {
|
||||
length = random.nextInt(4) + 3;
|
||||
m_noiseLengths.push_back(length);
|
||||
found = (int)noNoiseString.find_first_of(L"{", found + 1);
|
||||
}
|
||||
|
||||
Minecraft *pMinecraft = Minecraft::GetInstance();
|
||||
Minecraft* pMinecraft = Minecraft::GetInstance();
|
||||
|
||||
if(pMinecraft->localplayers[s_winUserIndex] != NULL)
|
||||
{
|
||||
noNoiseString = replaceAll(noNoiseString,L"{*PLAYER*}",pMinecraft->localplayers[s_winUserIndex]->name);
|
||||
}
|
||||
else
|
||||
{
|
||||
noNoiseString = replaceAll(noNoiseString,L"{*PLAYER*}",pMinecraft->localplayers[ProfileManager.GetPrimaryPad()]->name);
|
||||
}
|
||||
if (pMinecraft->localplayers[s_winUserIndex] != NULL) {
|
||||
noNoiseString =
|
||||
replaceAll(noNoiseString, L"{*PLAYER*}",
|
||||
pMinecraft->localplayers[s_winUserIndex]->name);
|
||||
} else {
|
||||
noNoiseString = replaceAll(
|
||||
noNoiseString, L"{*PLAYER*}",
|
||||
pMinecraft->localplayers[ProfileManager.GetPrimaryPad()]->name);
|
||||
}
|
||||
|
||||
updateNoise();
|
||||
updateNoise();
|
||||
|
||||
m_htmlControl.SetText(noiseString.c_str());
|
||||
m_htmlControl.SetText(noiseString.c_str());
|
||||
|
||||
//std::wstring result = m_htmlControl.GetText();
|
||||
// std::wstring result = m_htmlControl.GetText();
|
||||
|
||||
//wcout << result.c_str();
|
||||
// wcout << result.c_str();
|
||||
|
||||
m_scrollDir = 1;
|
||||
HRESULT hr = XuiHtmlControlSetSmoothScroll(m_htmlControl.m_hObj, XUI_SMOOTHSCROLL_VERTICAL,TRUE,AUTO_SCROLL_SPEED,1.0f,AUTO_SCROLL_SPEED);
|
||||
XuiHtmlControlVScrollBy(m_htmlControl.m_hObj,m_scrollDir * 1000);
|
||||
m_scrollDir = 1;
|
||||
HRESULT hr = XuiHtmlControlSetSmoothScroll(
|
||||
m_htmlControl.m_hObj, XUI_SMOOTHSCROLL_VERTICAL, TRUE,
|
||||
AUTO_SCROLL_SPEED, 1.0f, AUTO_SCROLL_SPEED);
|
||||
XuiHtmlControlVScrollBy(m_htmlControl.m_hObj, m_scrollDir * 1000);
|
||||
|
||||
SetTimer(0,200);
|
||||
SetTimer(0, 200);
|
||||
|
||||
return S_OK;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CScene_Win::OnTimer( XUIMessageTimer *pXUIMessageTimer, BOOL &bHandled)
|
||||
{
|
||||
if(!TreeHasFocus()) return S_OK;
|
||||
HRESULT CScene_Win::OnTimer(XUIMessageTimer* pXUIMessageTimer, BOOL& bHandled) {
|
||||
if (!TreeHasFocus()) return S_OK;
|
||||
|
||||
// This is required to animate the "noise" strings in the text, however this makes scrolling really jumpy
|
||||
// as well as causing line lengths to change as we do not have a monspaced font. Disabling for now.
|
||||
// This is required to animate the "noise" strings in the text, however this
|
||||
// makes scrolling really jumpy as well as causing line lengths to change as
|
||||
// we do not have a monspaced font. Disabling for now.
|
||||
#if 0
|
||||
updateNoise();
|
||||
|
||||
@@ -110,193 +109,191 @@ HRESULT CScene_Win::OnTimer( XUIMessageTimer *pXUIMessageTimer, BOOL &bHandled)
|
||||
//hr = m_htmlControl.SetVScrollPos(scrollInfo.nPos+2);
|
||||
hr = m_htmlControl.SetVScrollPos(scrollInfo.nPos);
|
||||
#endif
|
||||
XuiHtmlControlVScrollBy(m_htmlControl.m_hObj,m_scrollDir * 1000);
|
||||
XuiHtmlControlVScrollBy(m_htmlControl.m_hObj, m_scrollDir * 1000);
|
||||
|
||||
return S_OK;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CScene_Win::OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled)
|
||||
{
|
||||
if(m_bIgnoreInput) return S_OK;
|
||||
HRESULT CScene_Win::OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled) {
|
||||
if (m_bIgnoreInput) return S_OK;
|
||||
|
||||
ui.AnimateKeyPress(pInputData->UserIndex, pInputData->dwKeyCode);
|
||||
ui.AnimateKeyPress(pInputData->UserIndex, pInputData->dwKeyCode);
|
||||
|
||||
switch(pInputData->dwKeyCode)
|
||||
{
|
||||
switch (pInputData->dwKeyCode) {
|
||||
case VK_PAD_B:
|
||||
case VK_PAD_START:
|
||||
case VK_ESCAPE: {
|
||||
KillTimer(0);
|
||||
m_bIgnoreInput = true;
|
||||
Minecraft* pMinecraft = Minecraft::GetInstance();
|
||||
app.CloseAllPlayersXuiScenes();
|
||||
for (unsigned int i = 0; i < XUSER_MAX_COUNT; ++i) {
|
||||
if (pMinecraft->localplayers[i] != NULL) {
|
||||
app.SetAction(i, eAppAction_Respawn);
|
||||
}
|
||||
}
|
||||
|
||||
case VK_PAD_B:
|
||||
case VK_PAD_START:
|
||||
case VK_ESCAPE:
|
||||
{
|
||||
KillTimer(0);
|
||||
m_bIgnoreInput = true;
|
||||
Minecraft *pMinecraft = Minecraft::GetInstance();
|
||||
app.CloseAllPlayersXuiScenes();
|
||||
for(unsigned int i = 0; i < XUSER_MAX_COUNT; ++i)
|
||||
{
|
||||
if(pMinecraft->localplayers[i] != NULL)
|
||||
{
|
||||
app.SetAction(i,eAppAction_Respawn);
|
||||
}
|
||||
}
|
||||
// Show the other players scenes
|
||||
CXuiSceneBase::ShowOtherPlayersBaseScene(pInputData->UserIndex,
|
||||
true);
|
||||
// This just allows it to be shown
|
||||
if (pMinecraft->localgameModes[ProfileManager.GetPrimaryPad()] !=
|
||||
NULL)
|
||||
pMinecraft->localgameModes[ProfileManager.GetPrimaryPad()]
|
||||
->getTutorial()
|
||||
->showTutorialPopup(true);
|
||||
ui.UpdatePlayerBasePositions();
|
||||
|
||||
// Show the other players scenes
|
||||
CXuiSceneBase::ShowOtherPlayersBaseScene(pInputData->UserIndex, true);
|
||||
// This just allows it to be shown
|
||||
if(pMinecraft->localgameModes[ProfileManager.GetPrimaryPad()] != NULL) pMinecraft->localgameModes[ProfileManager.GetPrimaryPad()]->getTutorial()->showTutorialPopup(true);
|
||||
ui.UpdatePlayerBasePositions();
|
||||
rfHandled = TRUE;
|
||||
} break;
|
||||
case VK_PAD_RTHUMB_UP:
|
||||
case VK_PAD_LTHUMB_UP:
|
||||
m_scrollDir = -1;
|
||||
// Fall through
|
||||
case VK_PAD_RTHUMB_DOWN:
|
||||
case VK_PAD_LTHUMB_DOWN: {
|
||||
HRESULT hr = XuiHtmlControlSetSmoothScroll(
|
||||
m_htmlControl.m_hObj, XUI_SMOOTHSCROLL_VERTICAL, TRUE,
|
||||
AUTO_SCROLL_SPEED, 1.0f, PLAYER_SCROLL_SPEED);
|
||||
} break;
|
||||
}
|
||||
|
||||
rfHandled = TRUE;
|
||||
}
|
||||
break;
|
||||
case VK_PAD_RTHUMB_UP:
|
||||
case VK_PAD_LTHUMB_UP:
|
||||
m_scrollDir = -1;
|
||||
// Fall through
|
||||
case VK_PAD_RTHUMB_DOWN:
|
||||
case VK_PAD_LTHUMB_DOWN:
|
||||
{
|
||||
HRESULT hr = XuiHtmlControlSetSmoothScroll(m_htmlControl.m_hObj, XUI_SMOOTHSCROLL_VERTICAL,TRUE,AUTO_SCROLL_SPEED,1.0f,PLAYER_SCROLL_SPEED);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CScene_Win::OnKeyUp(XUIMessageInput* pInputData, BOOL& rfHandled)
|
||||
{
|
||||
if(m_bIgnoreInput) return S_OK;
|
||||
HRESULT CScene_Win::OnKeyUp(XUIMessageInput* pInputData, BOOL& rfHandled) {
|
||||
if (m_bIgnoreInput) return S_OK;
|
||||
|
||||
switch(pInputData->dwKeyCode)
|
||||
{
|
||||
case VK_PAD_RTHUMB_UP:
|
||||
case VK_PAD_LTHUMB_UP:
|
||||
case VK_PAD_RTHUMB_DOWN:
|
||||
case VK_PAD_LTHUMB_DOWN:
|
||||
{
|
||||
m_scrollDir = 1;
|
||||
HRESULT hr = XuiHtmlControlSetSmoothScroll(m_htmlControl.m_hObj, XUI_SMOOTHSCROLL_VERTICAL,TRUE,AUTO_SCROLL_SPEED,1.0f,AUTO_SCROLL_SPEED);
|
||||
}
|
||||
break;
|
||||
}
|
||||
switch (pInputData->dwKeyCode) {
|
||||
case VK_PAD_RTHUMB_UP:
|
||||
case VK_PAD_LTHUMB_UP:
|
||||
case VK_PAD_RTHUMB_DOWN:
|
||||
case VK_PAD_LTHUMB_DOWN: {
|
||||
m_scrollDir = 1;
|
||||
HRESULT hr = XuiHtmlControlSetSmoothScroll(
|
||||
m_htmlControl.m_hObj, XUI_SMOOTHSCROLL_VERTICAL, TRUE,
|
||||
AUTO_SCROLL_SPEED, 1.0f, AUTO_SCROLL_SPEED);
|
||||
} break;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CScene_Win::OnCustomMessage_Splitscreenplayer(bool bJoining, BOOL& bHandled)
|
||||
{
|
||||
bHandled=true;
|
||||
return app.AdjustSplitscreenScene_PlayerChanged(m_hObj,&m_OriginalPosition,m_iPad,bJoining);
|
||||
HRESULT CScene_Win::OnCustomMessage_Splitscreenplayer(bool bJoining,
|
||||
BOOL& bHandled) {
|
||||
bHandled = true;
|
||||
return app.AdjustSplitscreenScene_PlayerChanged(m_hObj, &m_OriginalPosition,
|
||||
m_iPad, bJoining);
|
||||
}
|
||||
|
||||
void CScene_Win::updateNoise()
|
||||
{
|
||||
Minecraft *pMinecraft = Minecraft::GetInstance();
|
||||
noiseString = noNoiseString;
|
||||
|
||||
int length = 0;
|
||||
wchar_t replacements[64];
|
||||
std::wstring replaceString = L"";
|
||||
wchar_t randomChar = L'a';
|
||||
Random *random = pMinecraft->font->random;
|
||||
void CScene_Win::updateNoise() {
|
||||
Minecraft* pMinecraft = Minecraft::GetInstance();
|
||||
noiseString = noNoiseString;
|
||||
|
||||
bool darken = false;
|
||||
int length = 0;
|
||||
wchar_t replacements[64];
|
||||
std::wstring replaceString = L"";
|
||||
wchar_t randomChar = L'a';
|
||||
Random* random = pMinecraft->font->random;
|
||||
|
||||
std::wstring tag = L"{*NOISE*}";
|
||||
bool darken = false;
|
||||
|
||||
AUTO_VAR(it, m_noiseLengths.begin());
|
||||
int found=(int)noiseString.find_first_of(L"{");
|
||||
while (found!=string::npos && it != m_noiseLengths.end() )
|
||||
{
|
||||
length = *it;
|
||||
++it;
|
||||
std::wstring tag = L"{*NOISE*}";
|
||||
|
||||
replaceString = L"";
|
||||
for(int i = 0; i < length; ++i)
|
||||
{
|
||||
randomChar = SharedConstants::acceptableLetters[random->nextInt((int)SharedConstants::acceptableLetters.length())];
|
||||
|
||||
std::wstring randomCharStr = L"";
|
||||
randomCharStr.push_back(randomChar);
|
||||
if(randomChar == L'<')
|
||||
{
|
||||
randomCharStr = L"<";
|
||||
}
|
||||
else if (randomChar == L'>' )
|
||||
{
|
||||
randomCharStr = L">";
|
||||
}
|
||||
else if(randomChar == L'"')
|
||||
{
|
||||
randomCharStr = L""";
|
||||
}
|
||||
else if(randomChar == L'&')
|
||||
{
|
||||
randomCharStr = L"&";
|
||||
}
|
||||
else if(randomChar == L'\\')
|
||||
{
|
||||
randomCharStr = L"\\\\";
|
||||
}
|
||||
else if(randomChar == L'{')
|
||||
{
|
||||
randomCharStr = L"}";
|
||||
}
|
||||
AUTO_VAR(it, m_noiseLengths.begin());
|
||||
int found = (int)noiseString.find_first_of(L"{");
|
||||
while (found != string::npos && it != m_noiseLengths.end()) {
|
||||
length = *it;
|
||||
++it;
|
||||
|
||||
int randomVal = random->nextInt(2);
|
||||
eMinecraftColour colour = eHTMLColor_8;
|
||||
if(randomVal == 1) colour = eHTMLColor_9;
|
||||
else if(randomVal == 2) colour = eHTMLColor_a;
|
||||
ZeroMemory(replacements,64*sizeof(wchar_t));
|
||||
swprintf(replacements,64,L"<font color=\"#%08x\" shadowcolor=\"#80000000\">%ls</font>",app.GetHTMLColour(colour),randomCharStr.c_str());
|
||||
replaceString.append(replacements);
|
||||
}
|
||||
replaceString = L"";
|
||||
for (int i = 0; i < length; ++i) {
|
||||
randomChar = SharedConstants::acceptableLetters[random->nextInt(
|
||||
(int)SharedConstants::acceptableLetters.length())];
|
||||
|
||||
noiseString.replace( found, tag.length(), replaceString );
|
||||
std::wstring randomCharStr = L"";
|
||||
randomCharStr.push_back(randomChar);
|
||||
if (randomChar == L'<') {
|
||||
randomCharStr = L"<";
|
||||
} else if (randomChar == L'>') {
|
||||
randomCharStr = L">";
|
||||
} else if (randomChar == L'"') {
|
||||
randomCharStr = L""";
|
||||
} else if (randomChar == L'&') {
|
||||
randomCharStr = L"&";
|
||||
} else if (randomChar == L'\\') {
|
||||
randomCharStr = L"\\\\";
|
||||
} else if (randomChar == L'{') {
|
||||
randomCharStr = L"}";
|
||||
}
|
||||
|
||||
//int pos = 0;
|
||||
//do {
|
||||
// pos = random->nextInt(SharedConstants::acceptableLetters.length());
|
||||
//} while (pMinecraft->font->charWidths[ch + 32] != pMinecraft->font->charWidths[pos + 32]);
|
||||
//ib.put(listPos + 256 + random->nextInt(2) + 8 + (darken ? 16 : 0));
|
||||
//ib.put(listPos + pos + 32);
|
||||
int randomVal = random->nextInt(2);
|
||||
eMinecraftColour colour = eHTMLColor_8;
|
||||
if (randomVal == 1)
|
||||
colour = eHTMLColor_9;
|
||||
else if (randomVal == 2)
|
||||
colour = eHTMLColor_a;
|
||||
ZeroMemory(replacements, 64 * sizeof(wchar_t));
|
||||
swprintf(
|
||||
replacements, 64,
|
||||
L"<font color=\"#%08x\" shadowcolor=\"#80000000\">%ls</font>",
|
||||
app.GetHTMLColour(colour), randomCharStr.c_str());
|
||||
replaceString.append(replacements);
|
||||
}
|
||||
|
||||
found=(int)noiseString.find_first_of(L"{",found+1);
|
||||
}
|
||||
noiseString.replace(found, tag.length(), replaceString);
|
||||
|
||||
// int pos = 0;
|
||||
// do {
|
||||
// pos =
|
||||
//random->nextInt(SharedConstants::acceptableLetters.length()); } while
|
||||
// (pMinecraft->font->charWidths[ch + 32] !=
|
||||
// pMinecraft->font->charWidths[pos + 32]); ib.put(listPos + 256 +
|
||||
// random->nextInt(2) + 8 + (darken ? 16 : 0)); ib.put(listPos + pos +
|
||||
// 32);
|
||||
|
||||
found = (int)noiseString.find_first_of(L"{", found + 1);
|
||||
}
|
||||
}
|
||||
|
||||
HRESULT CScene_Win::OnNavReturn(HXUIOBJ hObj,BOOL& rfHandled)
|
||||
{
|
||||
SetTimer(0,200);
|
||||
HRESULT CScene_Win::OnNavReturn(HXUIOBJ hObj, BOOL& rfHandled) {
|
||||
SetTimer(0, 200);
|
||||
|
||||
// turn off the gamertags in splitscreen for the primary player, since they are about to be made fullscreen
|
||||
CXuiSceneBase::HideAllGameUIElements();
|
||||
// turn off the gamertags in splitscreen for the primary player, since they
|
||||
// are about to be made fullscreen
|
||||
CXuiSceneBase::HideAllGameUIElements();
|
||||
|
||||
// Hide the other players scenes
|
||||
CXuiSceneBase::ShowOtherPlayersBaseScene(ProfileManager.GetPrimaryPad(), false);
|
||||
// Hide the other players scenes
|
||||
CXuiSceneBase::ShowOtherPlayersBaseScene(ProfileManager.GetPrimaryPad(),
|
||||
false);
|
||||
|
||||
// This just allows it to be shown
|
||||
if(Minecraft::GetInstance()->localgameModes[ProfileManager.GetPrimaryPad()] != NULL) Minecraft::GetInstance()->localgameModes[ProfileManager.GetPrimaryPad()]->getTutorial()->showTutorialPopup(false);
|
||||
// This just allows it to be shown
|
||||
if (Minecraft::GetInstance()
|
||||
->localgameModes[ProfileManager.GetPrimaryPad()] != NULL)
|
||||
Minecraft::GetInstance()
|
||||
->localgameModes[ProfileManager.GetPrimaryPad()]
|
||||
->getTutorial()
|
||||
->showTutorialPopup(false);
|
||||
|
||||
// Temporarily make this scene fullscreen
|
||||
CXuiSceneBase::SetPlayerBaseScenePosition( ProfileManager.GetPrimaryPad(), CXuiSceneBase::e_BaseScene_Fullscreen );
|
||||
// Temporarily make this scene fullscreen
|
||||
CXuiSceneBase::SetPlayerBaseScenePosition(
|
||||
ProfileManager.GetPrimaryPad(), CXuiSceneBase::e_BaseScene_Fullscreen);
|
||||
|
||||
// Display the tooltips
|
||||
ui.SetTooltips( m_iPad, -1, IDS_TOOLTIPS_CONTINUE);
|
||||
// Display the tooltips
|
||||
ui.SetTooltips(m_iPad, -1, IDS_TOOLTIPS_CONTINUE);
|
||||
|
||||
XuiHtmlControlVScrollBy(m_htmlControl.m_hObj,m_scrollDir * 1000);
|
||||
XuiHtmlControlVScrollBy(m_htmlControl.m_hObj, m_scrollDir * 1000);
|
||||
|
||||
return S_OK;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CScene_Win::OnNavForward(XUIMessageNavForward *pNavForwardData, BOOL& bHandled)
|
||||
{
|
||||
XuiHtmlControlVScrollBy(m_htmlControl.m_hObj,0);
|
||||
XUIHtmlScrollInfo scrollInfo;
|
||||
HRESULT hr = m_htmlControl.GetVScrollInfo(&scrollInfo);
|
||||
hr = m_htmlControl.SetVScrollPos(scrollInfo.nPos);
|
||||
KillTimer(0);
|
||||
HRESULT CScene_Win::OnNavForward(XUIMessageNavForward* pNavForwardData,
|
||||
BOOL& bHandled) {
|
||||
XuiHtmlControlVScrollBy(m_htmlControl.m_hObj, 0);
|
||||
XUIHtmlScrollInfo scrollInfo;
|
||||
HRESULT hr = m_htmlControl.GetVScrollInfo(&scrollInfo);
|
||||
hr = m_htmlControl.SetVScrollPos(scrollInfo.nPos);
|
||||
KillTimer(0);
|
||||
|
||||
return S_OK;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user