mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-12 19:31:41 +00:00
Ongoing wipwork of the BaseUI update. Some bugfixes pending
This commit is contained in:
parent
616d974212
commit
ce4c8dabc9
53 changed files with 2033 additions and 3892 deletions
|
|
@ -4,60 +4,84 @@ function MainMenuGui::onAdd(%this)
|
|||
|
||||
function MainMenuGui::onWake(%this)
|
||||
{
|
||||
MainMenuButtonList.listPosition = 0;
|
||||
$MenuList = MainMenuButtonList;
|
||||
$MenuList.listPosition = 0;
|
||||
}
|
||||
|
||||
if(!isObject( MainMenuActionMap ) )
|
||||
function MainMenuGui::onSleep(%this)
|
||||
{
|
||||
new ActionMap(MainMenuActionMap){};
|
||||
|
||||
MainMenuActionMap.bind( keyboard, w, mainMenuNavigateUp );
|
||||
MainMenuActionMap.bind( keyboard, s, mainMenuNavigateDown );
|
||||
MainMenuActionMap.bind( gamepad, yaxis, "D", "-0.23 0.23", mainMenuStickNavigate );
|
||||
MainMenuActionMap.bind( gamepad, upov, mainMenuNavigateUp );
|
||||
MainMenuActionMap.bind( gamepad, dpov, mainMenuNavigateDown );
|
||||
|
||||
MainMenuActionMap.bind( keyboard, Enter, activateSelected );
|
||||
MainMenuActionMap.bind( gamepad, btn_a, activateSelected );
|
||||
}
|
||||
|
||||
function mainMenuNavigateUp(%val)
|
||||
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)
|
||||
{
|
||||
MainMenuButtonList.listPosition -= 1;
|
||||
if(MainMenuButtonList.listPosition < 0)
|
||||
MainMenuButtonList.listPosition = 0;
|
||||
$MenuList.listPosition -= 1;
|
||||
if($MenuList.listPosition < 0)
|
||||
$MenuList.listPosition = 0;
|
||||
|
||||
MainMenuGUI.syncGUI();
|
||||
$MenuList.syncGUI();
|
||||
}
|
||||
}
|
||||
|
||||
function mainMenuNavigateDown(%val)
|
||||
function BaseUINavigateNext(%val)
|
||||
{
|
||||
if(%val)
|
||||
{
|
||||
MainMenuButtonList.listPosition += 1;
|
||||
if(MainMenuButtonList.listPosition >= MainMenuButtonList.getCount())
|
||||
MainMenuButtonList.listPosition = MainMenuButtonList.getCount()-1;
|
||||
$MenuList.listPosition += 1;
|
||||
if($MenuList.listPosition >= $MenuList.getCount())
|
||||
$MenuList.listPosition = $MenuList.getCount()-1;
|
||||
|
||||
MainMenuGUI.syncGUI();
|
||||
$MenuList.syncGUI();
|
||||
}
|
||||
}
|
||||
|
||||
function mainMenuStickNavigate(%val)
|
||||
function BaseUIStickNavigate(%val)
|
||||
{
|
||||
if(%val == -1)
|
||||
mainMenuNavigateUp(1);
|
||||
BaseUINavigateNext(1);
|
||||
else if(%val == 1)
|
||||
mainMenuNavigateDown(1);
|
||||
}
|
||||
|
||||
function MainMenuGUI::syncGUI(%this)
|
||||
function BaseUIBackOut(%val)
|
||||
{
|
||||
MainMenuButtonList.callOnChildren("setHighlighted", false);
|
||||
//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 = MainMenuButtonList.getObject(MainMenuButtonList.listPosition);
|
||||
%btn = %this.getObject(%this.listPosition);
|
||||
%btn.setHighlighted(true);
|
||||
|
||||
//
|
||||
|
|
@ -66,25 +90,13 @@ function MainMenuGUI::syncGUI(%this)
|
|||
if(%device $= "mouse")
|
||||
%device = "keyboard";
|
||||
|
||||
%binding = MainMenuActionMap.getBinding("activateSelected");
|
||||
|
||||
%bindingCount = getFieldCount(%binding);
|
||||
for(%i=0; %i < %bindingCount; %i+=2)
|
||||
{
|
||||
%mapDevice = stripTrailingNumber(getField(%binding, %i));
|
||||
if(%mapDevice $= %device)
|
||||
{
|
||||
%button = getField(%binding, %i+1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
%assetId = getButtonBitmap(%device, %button);
|
||||
MainMenuGoButton.setBitmap(%assetId);
|
||||
MainMenuGoButton.setBitmap(BaseUIActionMap.getCommandButtonBitmap(%device, "BaseUIActivateSelected"));
|
||||
}
|
||||
|
||||
function activateSelected()
|
||||
function BaseUIActivateSelected()
|
||||
{
|
||||
%btn = MainMenuButtonList.getObject(MainMenuButtonList.listPosition);
|
||||
%btn.performClick();
|
||||
%btn = $MenuList.getObject($MenuList.listPosition);
|
||||
|
||||
if(%btn.isMethod("performClick"))
|
||||
%btn.performClick();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue