home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Revista CD Expert 51
/
PCGamer51_17Demos.iso
/
games
/
CM
/
CyclingManagerDemoCangas.exe
/
CyclingManagerDemo
/
scripts
/
common
/
libraries
/
library_page_nanager.cnc
< prev
next >
Wrap
Text File
|
2001-06-07
|
9KB
|
293 lines
func void LowLevelLoadPage(i32x iPageId)
{
if(iPageId != oManager.iPageID)
{
#checkpoint LOWLEVELLOADPAGE
// SetManagerContext
SetParserComponent(oManager.pThis);
// Direct call to manager event func
// Delete the current page
// print("*** [low level loadpage] *** destructor on page : ");
// println(itoa(oManager.iPageID));
CallDestructor(oPageList[oManager.iPageID].pdelete);
// Init Menu Background
vInitMenuBackground();
// Create the new page
oManager.iPageID = iPageId;
// print("*** [low level loadpage] *** constructor on page : ");
// println(itoa(oManager.iPageID));
oManager.iWindowID = CallConstructor(oPageList[oManager.iPageID].pnew);
SetComponentPosition(oManager.iWindowID, oManager.iWindowPositionX, oManager.iWindowPositionY);
if(oManager.iWindowDialogID != ID_NOT_CREATED)
{
oManager.iWindowEventsBF = GetEvents(oManager.iWindowID);
if(oManager.iWindowEventsBF == GUI_NoEvent)
{
oManager.iWindowEventsBF = GUI_Destroy | GUI_MouseRoll | GUI_MouseMove | GUI_MouseUp | GUI_MouseDown | GUI_MouseEnter | GUI_MouseLeave | GUI_Key | GUI_Refresh | GUI_Enable | GUI_Disable;
}
SetEvents(oManager.iWindowID, GUI_NoEvent);
}
}
else
{
print("*** [low level loadpage] *** no need to load this page : ");
println(itoa(iPageId));
}
}
func void ReloadPage()
{
// Re load actual displayed page
SetParserComponent(oManager.pThis);
CallDestructor(oPageList[oManager.iPageID].pdelete);
oManager.iWindowID = CallConstructor(oPageList[oManager.iPageID].pnew);
SetComponentPosition(oManager.iWindowID, oManager.iWindowPositionX, oManager.iWindowPositionY);
}
func void InRace_LoadPage()
{
SetParserComponent(oManager.pThis);
// delete menu
HideMenuPrincipal();
// delete current page
if (oManager.iWindowID != ID_NOT_CREATED)
{
CallDestructor(oPageList[oManager.iPageID].pdelete);
oManager.iWindowID = ID_NOT_CREATED;
}
// delete background
vDeleteMenuBackground();
// Create the new page
oManager.iPageID = PAGE_INRACE;
oManager.iWindowID = CallConstructor(oPageList[oManager.iPageID].pnew);
}
func void Manager_LoadPage(i32x _iEventID)
{
if (_iEventID != oManager.iPageID)
{
// Delete the current page
if (oManager.iWindowID != ID_NOT_CREATED)
{
print("deleting current page\n");
CallDestructor(oPageList[oManager.iPageID].pdelete);
oManager.iWindowID = ID_NOT_CREATED;
}
// Init Menu Background
vInitMenuBackground();
// Create the new page
oManager.iPageID = _iEventID;
oManager.iWindowID = CallConstructor(oPageList[oManager.iPageID].pnew);
SetComponentPosition(oManager.iWindowID, oManager.iWindowPositionX, oManager.iWindowPositionY);
if(oManager.iWindowDialogID != ID_NOT_CREATED)
{
oManager.iWindowEventsBF = GetEvents(oManager.iWindowID);
if(oManager.iWindowEventsBF == GUI_NoEvent)
{
oManager.iWindowEventsBF = GUI_Destroy | GUI_MouseRoll | GUI_MouseMove | GUI_MouseUp | GUI_MouseDown | GUI_MouseEnter | GUI_MouseLeave | GUI_Key | GUI_Refresh | GUI_Enable | GUI_Disable;
}
SetEvents(oManager.iWindowID, GUI_NoEvent);
}
}
}
func void Manager_CreateDialog(i32x _iDialog)
{
if (oManager.iWindowDialogID==ID_NOT_CREATED)
{
// set context
var component pOldComponent;
pOldComponent=GetParserComponent();
SetParserComponent(oManager.pThis);
// Dialog is reserved
// even if Dialbox constructor create a dialbox the manager don't create it !
oManager.iWindowDialogID = -1;
// create dialog
oManager.iWindowDialogID=CallConstructor(oDialogList[_iDialog].pnew);
oManager.iDialogID=_iDialog;
// make modal dialog
if (oManager.iMenu_PrincipalID != ID_NOT_CREATED)
{
oManager.iMenuEventsBF = GetEvents(oManager.iMenu_PrincipalID);
SetEvents(oManager.iMenu_PrincipalID, GUI_NoEvent);
}
if (oManager.iWindowID != ID_NOT_CREATED)
{
oManager.iWindowEventsBF = GetEvents(oManager.iWindowID);
SetEvents(oManager.iWindowID, GUI_NoEvent);
}
else
{
//Default windows event
oManager.iWindowEventsBF = GUI_Destroy | GUI_MouseMove | GUI_MouseUp | GUI_MouseDown | GUI_MouseEnter | GUI_MouseLeave | GUI_Key | GUI_Refresh | GUI_Enable | GUI_Disable;
}
// center dialog
var i32x iWidth,iHeight,iPosX,iPosY;
iWidth=GetComponentWidth(oManager.iWindowDialogID);
iHeight=GetComponentHeight(oManager.iWindowDialogID);
iPosX=(800-iWidth)/2;
iPosY=(600-iHeight)/2;
SetComponentPosition(oManager.iWindowDialogID,iPosX,iPosY);
// restore context
SetParserComponent(pOldComponent);
}
}
func void Manager_DestroyDialog ()
{
if (oManager.iWindowDialogID != ID_NOT_CREATED)
{
CallDestructor(oDialogList[oManager.iDialogID].pdelete);
oManager.iWindowDialogID=ID_NOT_CREATED;
// restore Events BF
if (oManager.iMenu_PrincipalID != ID_NOT_CREATED)
SetEvents(oManager.iMenu_PrincipalID, oManager.iMenuEventsBF);
if (oManager.iWindowID != ID_NOT_CREATED)
{
SetEvents(oManager.iWindowID, oManager.iWindowEventsBF);
if(oManager.iDialogID != DIALOG_LOADING_DATA)
{
// Inform active page that dialbox is closed
PushEventOnChild(oManager.iWindowID,GUI_DIALOG_RETURN);
}
}
}
}
func void CreateDialog(i32x _iDialog)
{
if (oManager.iWindowDialogID==ID_NOT_CREATED)
{
Manager_CreateDialog(_iDialog);
}
else
{
// A dialog is already available
// So push an event into parents stack so that
// it can manage the CreateDialog
PushEvent(GUI_CREATE_DIALOG + _iDialog);
}
}
func void DestroyDialog()
{
var component pComponent;
// Save current context
pComponent = GetParserComponent();
// Set page manager context
SetParserComponent(oManager.pThis);
Manager_DestroyDialog();
// Restore context
SetParserComponent(pComponent);
}
func void LoadPage(i32x _iPageID)
{
if (_iPageID != oManager.iPageID)
{
// fonction save de la page courante
if (oPageList[oManager.iPageID].psavedata)
{
// set context (manager)
var component pComponent;
pComponent=GetParserComponent();
SetParserComponent(oManager.pThis);
// create waiting dialog
CreateDialog(DIALOG_LOADING_DATA);
CallSaveData(oPageList[oManager.iPageID].psavedata);
SetParserComponent(pComponent);
}
// if there is a load func call it
if (oPageList[_iPageID].ploaddata)
{
#checkpoint >> loading page data
CallLoadData(oPageList[_iPageID].ploaddata);
}
else
{
PushEvent(_iPageID);
}
}
}
//func void Manager_CreatePopup(szx szMessage)
//{
// print("********************** POPUP ***********************\n");
// print(szMessage);
// print("\n********************** POPUP ***********************\n");
// Dialog_Popup_InitMembers(szMessage);
// CreateDialog(DIALOG_POPUP);
//}
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
func void DisplayMenuPrincipal ()
{
if (oManager.iMenu_PrincipalID == ID_NOT_CREATED)
{
var component pComponent;
// Get current context
pComponent = GetParserComponent();
// Set main object (manager) context
SetParserComponent(oManager.pThis);
// Init the main menu
oManager.iMenu_PrincipalID = InitObject(oMenu_Principal.szName, oMenu_Principal.oFunc.pcreate, oMenu_Principal.oFunc.pevent);
SetStackEvents(oManager.iMenu_PrincipalID,GUI_Destroy | GUI_Key | GUI_Enable | GUI_Disable | GUI_Refresh);
SetRefreshState(oManager.iMenu_PrincipalID,64,0);
SetComponentPositionY(oManager.iMenu_PrincipalID, 100);
// restore context
SetParserComponent(pComponent);
}
}
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------//
func void HideMenuPrincipal ()
{
if (oManager.iMenu_PrincipalID != ID_NOT_CREATED)
{
// set context
var component pComponent;
// Save current context
pComponent = GetParserComponent();
// Set object manager context
SetParserComponent(oManager.pThis);
// delete menu principal
DeleteComponent(oManager.iMenu_PrincipalID);
oManager.iMenu_PrincipalID = ID_NOT_CREATED;
// restore context
SetParserComponent(pComponent);
}
}