Skip to content

Commit 8eccfc8

Browse files
committed
Added SendToBack feature to the State Manager
1 parent dc90581 commit 8eccfc8

4 files changed

Lines changed: 60 additions & 37 deletions

File tree

v3/src/checksum.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
var CHECKSUM = {
2-
build: '44a8b030-6642-11e7-88ff-5f0153810ec4'
2+
build: 'adba6db0-665c-11e7-bbcf-6f306cfc2eb0'
33
};
44
module.exports = CHECKSUM;

v3/src/state/GlobalStateManager.js

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -52,38 +52,39 @@ var GlobalStateManager = new Class({
5252
}
5353
},
5454

55-
boot: Components.Boot,
56-
getKey: Components.GetKey,
5755
add: Components.Add,
56+
boot: Components.Boot,
57+
bootState: Components.BootState,
58+
bringToTop: Components.BringToTop,
59+
create: Components.Create,
60+
createStateDisplay: Components.CreateStateDisplay,
61+
createStateFromFunction: Components.CreateStateFromFunction,
5862
createStateFromInstance: Components.CreateStateFromInstance,
5963
createStateFromObject: Components.CreateStateFromObject,
60-
createStateFromFunction: Components.CreateStateFromFunction,
61-
setupCallbacks: Components.SetupCallbacks,
62-
createStateDisplay: Components.CreateStateDisplay,
64+
getActiveState: Components.GetActiveState,
65+
getActiveStateIndex: Components.GetActiveStateIndex,
66+
getActiveStateIndexByKey: Components.GetActiveStateIndexByKey,
67+
getKey: Components.GetKey,
6368
getState: Components.GetState,
6469
getStateAt: Components.GetStateAt,
6570
getStateIndex: Components.GetStateIndex,
6671
getStateIndexByKey: Components.GetStateIndexByKey,
67-
getActiveState: Components.GetActiveState,
68-
getActiveStateIndex: Components.GetActiveStateIndex,
69-
getActiveStateIndexByKey: Components.GetActiveStateIndexByKey,
7072
isActive: Components.IsActive,
71-
start: Components.Start,
72-
payloadComplete: Components.PayloadComplete,
73-
bootState: Components.BootState,
73+
isSleeping: Components.IsSleeping,
7474
loadComplete: Components.LoadComplete,
75-
create: Components.Create,
75+
moveDown: Components.MoveDown,
76+
moveUp: Components.MoveUp,
7677
pause: Components.Pause,
78+
payloadComplete: Components.PayloadComplete,
7779
resume: Components.Resume,
80+
sendToBack: Components.SendToBack,
81+
setupCallbacks: Components.SetupCallbacks,
7882
sleep: Components.Sleep,
79-
wake: Components.Wake,
80-
swap: Components.Swap,
81-
isSleeping: Components.IsSleeping,
83+
start: Components.Start,
8284
stop: Components.Stop,
85+
swap: Components.Swap,
8386
swapPosition: Components.SwapPosition,
84-
moveUp: Components.MoveUp,
85-
moveDown: Components.MoveDown,
86-
bringToTop: Components.BringToTop
87+
wake: Components.Wake
8788

8889
});
8990

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// If the arguments are strings they are assumed to be keys, otherwise they are State objects
2+
// You can only swap the positions of Active (rendering / updating) States. If a State is not active it cannot be moved.
3+
4+
var SendToBack = function (state)
5+
{
6+
var index = (typeof state === 'string') ? this.getActiveStateIndexByKey(state) : this.getActiveStateIndex(state);
7+
8+
if (index > 0)
9+
{
10+
var entry = this.active.splice(index, 1);
11+
12+
this.active.unshift({ index: 0, state: entry[0].state });
13+
14+
for (var i = 0; i < this.active.length; i++)
15+
{
16+
this.active[i].index = i;
17+
}
18+
}
19+
};
20+
21+
module.exports = SendToBack;

v3/src/state/components/index.js

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,37 @@ module.exports = {
22

33
Add: require('./Add'),
44
Boot: require('./Boot'),
5-
GetKey: require('./GetKey'),
5+
BootState: require('./BootState'),
6+
BringToTop: require('./BringToTop'),
7+
Create: require('./Create'),
8+
CreateStateDisplay: require('./CreateStateDisplay'),
9+
CreateStateFromFunction: require('./CreateStateFromFunction'),
610
CreateStateFromInstance: require('./CreateStateFromInstance'),
711
CreateStateFromObject: require('./CreateStateFromObject'),
8-
CreateStateFromFunction: require('./CreateStateFromFunction'),
9-
SetupCallbacks: require('./SetupCallbacks'),
10-
CreateStateDisplay: require('./CreateStateDisplay'),
12+
GetActiveState: require('./GetActiveState'),
13+
GetActiveStateIndex: require('./GetActiveStateIndex'),
14+
GetActiveStateIndexByKey: require('./GetActiveStateIndexByKey'),
15+
GetKey: require('./GetKey'),
1116
GetState: require('./GetState'),
1217
GetStateAt: require('./GetStateAt'),
1318
GetStateIndex: require('./GetStateIndex'),
1419
GetStateIndexByKey: require('./GetStateIndexByKey'),
15-
GetActiveState: require('./GetActiveState'),
16-
GetActiveStateIndex: require('./GetActiveStateIndex'),
17-
GetActiveStateIndexByKey: require('./GetActiveStateIndexByKey'),
1820
IsActive: require('./IsActive'),
19-
Start: require('./Start'),
20-
PayloadComplete: require('./PayloadComplete'),
21-
BootState: require('./BootState'),
21+
IsSleeping: require('./IsSleeping'),
2222
LoadComplete: require('./LoadComplete'),
23-
Create: require('./Create'),
23+
MoveDown: require('./MoveDown'),
24+
MoveUp: require('./MoveUp'),
2425
Pause: require('./Pause'),
26+
PayloadComplete: require('./PayloadComplete'),
2527
Resume: require('./Resume'),
28+
SendToBack: require('./SendToBack'),
29+
SetupCallbacks: require('./SetupCallbacks'),
2630
Sleep: require('./Sleep'),
27-
Wake: require('./Wake'),
28-
Swap: require('./Swap'),
29-
IsSleeping: require('./IsSleeping'),
30-
Stop: require('./Stop'),
3131
SortStates: require('./SortStates'),
32+
Start: require('./Start'),
33+
Stop: require('./Stop'),
34+
Swap: require('./Swap'),
3235
SwapPosition: require('./SwapPosition'),
33-
MoveUp: require('./MoveUp'),
34-
MoveDown: require('./MoveDown'),
35-
BringToTop: require('./BringToTop')
36+
Wake: require('./Wake')
3637

3738
};

0 commit comments

Comments
 (0)