Added SendToBack feature to the State Manager

This commit is contained in:
Richard Davey 2017-07-11 18:18:31 +01:00
parent dc90581c96
commit 8eccfc8b39
4 changed files with 68 additions and 45 deletions

View file

@ -1,4 +1,4 @@
var CHECKSUM = {
build: '44a8b030-6642-11e7-88ff-5f0153810ec4'
build: 'adba6db0-665c-11e7-bbcf-6f306cfc2eb0'
};
module.exports = CHECKSUM;

View file

@ -52,38 +52,39 @@ var GlobalStateManager = new Class({
}
},
boot: Components.Boot,
getKey: Components.GetKey,
add: Components.Add,
boot: Components.Boot,
bootState: Components.BootState,
bringToTop: Components.BringToTop,
create: Components.Create,
createStateDisplay: Components.CreateStateDisplay,
createStateFromFunction: Components.CreateStateFromFunction,
createStateFromInstance: Components.CreateStateFromInstance,
createStateFromObject: Components.CreateStateFromObject,
createStateFromFunction: Components.CreateStateFromFunction,
setupCallbacks: Components.SetupCallbacks,
createStateDisplay: Components.CreateStateDisplay,
getActiveState: Components.GetActiveState,
getActiveStateIndex: Components.GetActiveStateIndex,
getActiveStateIndexByKey: Components.GetActiveStateIndexByKey,
getKey: Components.GetKey,
getState: Components.GetState,
getStateAt: Components.GetStateAt,
getStateIndex: Components.GetStateIndex,
getStateIndexByKey: Components.GetStateIndexByKey,
getActiveState: Components.GetActiveState,
getActiveStateIndex: Components.GetActiveStateIndex,
getActiveStateIndexByKey: Components.GetActiveStateIndexByKey,
isActive: Components.IsActive,
start: Components.Start,
payloadComplete: Components.PayloadComplete,
bootState: Components.BootState,
loadComplete: Components.LoadComplete,
create: Components.Create,
pause: Components.Pause,
resume: Components.Resume,
sleep: Components.Sleep,
wake: Components.Wake,
swap: Components.Swap,
isSleeping: Components.IsSleeping,
stop: Components.Stop,
swapPosition: Components.SwapPosition,
moveUp: Components.MoveUp,
loadComplete: Components.LoadComplete,
moveDown: Components.MoveDown,
bringToTop: Components.BringToTop
moveUp: Components.MoveUp,
pause: Components.Pause,
payloadComplete: Components.PayloadComplete,
resume: Components.Resume,
sendToBack: Components.SendToBack,
setupCallbacks: Components.SetupCallbacks,
sleep: Components.Sleep,
start: Components.Start,
stop: Components.Stop,
swap: Components.Swap,
swapPosition: Components.SwapPosition,
wake: Components.Wake
});

View file

@ -0,0 +1,21 @@
// If the arguments are strings they are assumed to be keys, otherwise they are State objects
// You can only swap the positions of Active (rendering / updating) States. If a State is not active it cannot be moved.
var SendToBack = function (state)
{
var index = (typeof state === 'string') ? this.getActiveStateIndexByKey(state) : this.getActiveStateIndex(state);
if (index > 0)
{
var entry = this.active.splice(index, 1);
this.active.unshift({ index: 0, state: entry[0].state });
for (var i = 0; i < this.active.length; i++)
{
this.active[i].index = i;
}
}
};
module.exports = SendToBack;

View file

@ -2,36 +2,37 @@ module.exports = {
Add: require('./Add'),
Boot: require('./Boot'),
GetKey: require('./GetKey'),
BootState: require('./BootState'),
BringToTop: require('./BringToTop'),
Create: require('./Create'),
CreateStateDisplay: require('./CreateStateDisplay'),
CreateStateFromFunction: require('./CreateStateFromFunction'),
CreateStateFromInstance: require('./CreateStateFromInstance'),
CreateStateFromObject: require('./CreateStateFromObject'),
CreateStateFromFunction: require('./CreateStateFromFunction'),
SetupCallbacks: require('./SetupCallbacks'),
CreateStateDisplay: require('./CreateStateDisplay'),
GetActiveState: require('./GetActiveState'),
GetActiveStateIndex: require('./GetActiveStateIndex'),
GetActiveStateIndexByKey: require('./GetActiveStateIndexByKey'),
GetKey: require('./GetKey'),
GetState: require('./GetState'),
GetStateAt: require('./GetStateAt'),
GetStateIndex: require('./GetStateIndex'),
GetStateIndexByKey: require('./GetStateIndexByKey'),
GetActiveState: require('./GetActiveState'),
GetActiveStateIndex: require('./GetActiveStateIndex'),
GetActiveStateIndexByKey: require('./GetActiveStateIndexByKey'),
IsActive: require('./IsActive'),
Start: require('./Start'),
PayloadComplete: require('./PayloadComplete'),
BootState: require('./BootState'),
LoadComplete: require('./LoadComplete'),
Create: require('./Create'),
Pause: require('./Pause'),
Resume: require('./Resume'),
Sleep: require('./Sleep'),
Wake: require('./Wake'),
Swap: require('./Swap'),
IsSleeping: require('./IsSleeping'),
Stop: require('./Stop'),
SortStates: require('./SortStates'),
SwapPosition: require('./SwapPosition'),
MoveUp: require('./MoveUp'),
LoadComplete: require('./LoadComplete'),
MoveDown: require('./MoveDown'),
BringToTop: require('./BringToTop')
MoveUp: require('./MoveUp'),
Pause: require('./Pause'),
PayloadComplete: require('./PayloadComplete'),
Resume: require('./Resume'),
SendToBack: require('./SendToBack'),
SetupCallbacks: require('./SetupCallbacks'),
Sleep: require('./Sleep'),
SortStates: require('./SortStates'),
Start: require('./Start'),
Stop: require('./Stop'),
Swap: require('./Swap'),
SwapPosition: require('./SwapPosition'),
Wake: require('./Wake')
};