//----------------------------------------------------------------------------- // 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( "" @ %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); } }