mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
102 lines
2.5 KiB
Plaintext
102 lines
2.5 KiB
Plaintext
function MainMenuGui::onAdd(%this)
|
|
{
|
|
}
|
|
|
|
function MainMenuGui::onWake(%this)
|
|
{
|
|
$MenuList = MainMenuButtonList;
|
|
$MenuList.listPosition = 0;
|
|
}
|
|
|
|
function MainMenuGui::onSleep(%this)
|
|
{
|
|
}
|
|
|
|
if(!isObject( BaseUIActionMap ) )
|
|
{
|
|
new ActionMap(BaseUIActionMap){};
|
|
|
|
BaseUIActionMap.bind( keyboard, w, BaseUINavigatePrev );
|
|
BaseUIActionMap.bind( keyboard, s, BaseUINavigateNext );
|
|
BaseUIActionMap.bind( gamepad, yaxis, "D", "-0.23 0.23", BaseUIStickNavigate );
|
|
BaseUIActionMap.bind( gamepad, upov, BaseUINavigatePrev );
|
|
BaseUIActionMap.bind( gamepad, dpov, BaseUINavigateNext );
|
|
|
|
BaseUIActionMap.bind( keyboard, Enter, BaseUIActivateSelected );
|
|
BaseUIActionMap.bind( gamepad, btn_a, BaseUIActivateSelected );
|
|
|
|
BaseUIActionMap.bind( keyboard, Escape, BaseUIBackOut );
|
|
BaseUIActionMap.bind( gamepad, btn_b, BaseUIBackOut );
|
|
}
|
|
|
|
function BaseUINavigatePrev(%val)
|
|
{
|
|
if(%val)
|
|
{
|
|
$MenuList.listPosition -= 1;
|
|
if($MenuList.listPosition < 0)
|
|
$MenuList.listPosition = 0;
|
|
|
|
$MenuList.syncGUI();
|
|
}
|
|
}
|
|
|
|
function BaseUINavigateNext(%val)
|
|
{
|
|
if(%val)
|
|
{
|
|
$MenuList.listPosition += 1;
|
|
if($MenuList.listPosition >= $MenuList.getCount())
|
|
$MenuList.listPosition = $MenuList.getCount()-1;
|
|
|
|
$MenuList.syncGUI();
|
|
}
|
|
}
|
|
|
|
function BaseUIStickNavigate(%val)
|
|
{
|
|
if(%val == -1)
|
|
BaseUINavigateNext(1);
|
|
else if(%val == 1)
|
|
mainMenuNavigateDown(1);
|
|
}
|
|
|
|
function BaseUIBackOut(%val)
|
|
{
|
|
//we can't navigate further back than the MainMenuGui
|
|
if(%val && Canvas.getObject(Canvas.getCount()-1) != MainMenuGui)
|
|
{
|
|
Canvas.popDialog();
|
|
%topMenu = Canvas.getObject(Canvas.getCount()-1);
|
|
if(isObject(%topMenu))
|
|
{
|
|
//re-kick the on-wake so we can be fully up to date and relevently
|
|
//contexted
|
|
%topMenu.onWake();
|
|
}
|
|
}
|
|
}
|
|
|
|
function MainMenuButtonList::syncGUI(%this)
|
|
{
|
|
%this.callOnChildren("setHighlighted", false);
|
|
|
|
%btn = %this.getObject(%this.listPosition);
|
|
%btn.setHighlighted(true);
|
|
|
|
//
|
|
//Update the button imagery to comply to the last input device we'd used
|
|
%device = Canvas.getLastInputDevice();
|
|
if(%device $= "mouse")
|
|
%device = "keyboard";
|
|
|
|
MainMenuGoButton.setBitmap(BaseUIActionMap.getCommandButtonBitmap(%device, "BaseUIActivateSelected"));
|
|
}
|
|
|
|
function BaseUIActivateSelected()
|
|
{
|
|
%btn = $MenuList.getObject($MenuList.listPosition);
|
|
|
|
if(%btn.isMethod("performClick"))
|
|
%btn.performClick();
|
|
} |