135 lines
3.3 KiB
C#
Executable File
135 lines
3.3 KiB
C#
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// PageGui is the main TSControl through which the game is viewed.
|
|
// The PageGui also contains the hud controls.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
function PageGui::onWake(%this)
|
|
{
|
|
%this.pageNumber = 0;
|
|
}
|
|
|
|
function PageGui::onSleep(%this)
|
|
{
|
|
}
|
|
|
|
function PageGui::pageName(%this, %index)
|
|
{
|
|
if (%index $= "")
|
|
{
|
|
%index = %this.pageNumber;
|
|
echo ("PAGE: " @ %this.pageNumber);
|
|
}
|
|
return %this.thread @ "_page" @ %index;
|
|
}
|
|
|
|
function PageGui::isNextPage(%this)
|
|
{
|
|
for (%num = %this.pageNumber + 1; !isObject(%this.pageName(%num)); %num += 1)
|
|
if (%num > 100)
|
|
return false;
|
|
return true;
|
|
}
|
|
|
|
function PageGui::isPrevPage(%this)
|
|
{
|
|
for (%num = %this.pageNumber - 1; !isObject(%this.pageName(%num)); %num -= 1)
|
|
if (%num < 0)
|
|
return false;
|
|
return true;
|
|
}
|
|
|
|
function PageGui::pushThread(%this, %thread)
|
|
{
|
|
if (%this.thread !$= "" )
|
|
%this.threadStack = %this.thread @ " " @ %this.pageNUmber @ " " @ %this.threadStack;
|
|
%this.popPage();
|
|
%this.thread = %thread;
|
|
%this.pushPage(1);
|
|
%this.status();
|
|
}
|
|
|
|
function PageGui::popThread(%this)
|
|
{
|
|
if (%this.threadStack !$= "" )
|
|
{
|
|
%this.popPage();
|
|
%this.thread = firstWord(%this.threadStack);
|
|
%this.threadStack = removeWord(%this.threadStack, 0);
|
|
|
|
%this.pageNumber = firstWord(%this.threadStack);
|
|
%this.threadStack = removeWord(%this.threadStack, 0);
|
|
}
|
|
else
|
|
%this.thread = "";
|
|
%this.status();
|
|
}
|
|
|
|
function PageGui::status(%this)
|
|
{
|
|
echo ("----------------------");
|
|
echo ("THREADSTACK: " @ %this.threadStack);
|
|
echo ("THREAD: " @ %this.thread);
|
|
echo ("PAGE: " @ %this.pageNumber);
|
|
}
|
|
|
|
function PageGui::popPage(%this)
|
|
{
|
|
echo ("POP: " @ %this.pageName());
|
|
if (%this.pageNumber > 0)
|
|
Canvas.popDialog(%this.pageName());
|
|
}
|
|
|
|
function PageGui::pushPage(%this, %pageNumber)
|
|
{
|
|
// Load up the new page
|
|
%this.pageNumber = %pageNumber;
|
|
%page = %this.pageName();
|
|
Canvas.pushDialog(%page);
|
|
|
|
// Update the arrows to reflect next/prev page availabilty
|
|
PageGuiNextPage.setVisible(%this.isNextPage());
|
|
//PageGuiPrevPage.setVisible(%this.isPrevPage());
|
|
|
|
// Extract demo text from page object
|
|
PageGuiTitle.setText(
|
|
"<font:Arial Bold:32><color:ffffff><just:right>" @
|
|
%page.title);
|
|
%this.status();
|
|
}
|
|
|
|
function PageGui::setPageNumber(%this,%pageNumber)
|
|
{
|
|
// Pop off any current page...
|
|
%this.popPage();
|
|
|
|
// Load up the new page
|
|
%this.pushPage(%pageNumber);
|
|
}
|
|
|
|
function PageGui::nextPage(%this)
|
|
{
|
|
if (%this.isNextPage())
|
|
%this.setPageNumber(%this.pageNumber + 1);
|
|
}
|
|
|
|
function PageGui::prevPage(%this)
|
|
{
|
|
if (%this.isPrevPage())
|
|
%this.setPageNumber(%this.pageNumber - 1);
|
|
else
|
|
{
|
|
%this.popThread();
|
|
if (%this.thread !$= "")
|
|
%this.pushPage(%this.pageNumber);
|
|
else
|
|
Canvas.setContent(mainMenuGui);
|
|
}
|
|
}
|
|
|
|
|