using System;
using System.Collections.Generic;
using Cpp2IlInjected;

// Token: 0x0200033C RID: 828
[Token(Token = "0x200033C")]
public class UIStackingManager
{
	// Token: 0x06001E62 RID: 7778 RVA: 0x00048278 File Offset: 0x00046478
	[Token(Token = "0x6001E62")]
	[Address(RVA = "0x960690", Offset = "0x95F690", VA = "0x180960690")]
	public void AppendCanvas(GameCanvasBase canvas)
	{
		if (this.isRecording && !this.canvasStack.Contains(canvas))
		{
			this.canvasStack.Push(canvas);
		}
	}

	// Token: 0x06001E63 RID: 7779 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001E63")]
	[Address(RVA = "0x960A40", Offset = "0x95FA40", VA = "0x180960A40")]
	public void RemoveCanvas(GameCanvasBase canvas)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001E64 RID: 7780 RVA: 0x000482B0 File Offset: 0x000464B0
	[Token(Token = "0x6001E64")]
	[Address(RVA = "0x9609E0", Offset = "0x95F9E0", VA = "0x1809609E0")]
	public void Init(UIStackingManager.UIStackingCommand cmdType)
	{
		Stack<GameCanvasBase> stack = this.canvasStack;
		this.isRecording = false;
		stack.Clear();
		this.defaultCmdType = cmdType;
		this.currentCmdType = cmdType;
	}

	// Token: 0x06001E65 RID: 7781 RVA: 0x000482E8 File Offset: 0x000464E8
	[Token(Token = "0x6001E65")]
	[Address(RVA = "0x757F30", Offset = "0x756F30", VA = "0x180757F30")]
	public void Record()
	{
		this.isRecording = true;
	}

	// Token: 0x06001E66 RID: 7782 RVA: 0x000482FC File Offset: 0x000464FC
	[Token(Token = "0x6001E66")]
	[Address(RVA = "0x960B30", Offset = "0x95FB30", VA = "0x180960B30")]
	public void Stop()
	{
		Stack<GameCanvasBase> stack = this.canvasStack;
		this.isRecording = false;
		stack.Clear();
	}

	// Token: 0x06001E67 RID: 7783 RVA: 0x00048324 File Offset: 0x00046524
	[Token(Token = "0x6001E67")]
	[Address(RVA = "0x36FF70", Offset = "0x36EF70", VA = "0x18036FF70")]
	public UIStackingManager.UIStackingCommand GetDefaultCommand()
	{
		return this.defaultCmdType;
	}

	// Token: 0x06001E68 RID: 7784 RVA: 0x00048338 File Offset: 0x00046538
	[Token(Token = "0x6001E68")]
	[Address(RVA = "0x4355F0", Offset = "0x4345F0", VA = "0x1804355F0")]
	public void SetCommand(UIStackingManager.UIStackingCommand cmdType)
	{
		this.currentCmdType = cmdType;
	}

	// Token: 0x06001E69 RID: 7785 RVA: 0x0004834C File Offset: 0x0004654C
	[Token(Token = "0x6001E69")]
	[Address(RVA = "0x960B20", Offset = "0x95FB20", VA = "0x180960B20")]
	public void ResetDefaultCommand()
	{
		UIStackingManager.UIStackingCommand uistackingCommand = this.defaultCmdType;
		this.currentCmdType = uistackingCommand;
	}

	// Token: 0x06001E6A RID: 7786 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001E6A")]
	[Address(RVA = "0x9607A0", Offset = "0x95F7A0", VA = "0x1809607A0")]
	public void ExecuteCommand()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001E6B RID: 7787 RVA: 0x00048368 File Offset: 0x00046568
	[Token(Token = "0x6001E6B")]
	[Address(RVA = "0x960720", Offset = "0x95F720", VA = "0x180960720")]
	private void ClosePeekCanvas()
	{
		GameCanvasBase gameCanvasBase = this.pendingStack.Pop();
		if (gameCanvasBase.Enabled)
		{
			gameCanvasBase.Init();
			return;
		}
	}

	// Token: 0x06001E6C RID: 7788 RVA: 0x00048398 File Offset: 0x00046598
	[Token(Token = "0x6001E6C")]
	[Address(RVA = "0x960930", Offset = "0x95F930", VA = "0x180960930")]
	private void ForceCloseCanvases(int times)
	{
		int num = 0;
		if (times > 0)
		{
			GameCanvasBase gameCanvasBase = this.pendingStack.Pop();
			if (gameCanvasBase.Enabled)
			{
				int num2 = 0;
				gameCanvasBase.ForceClose(num2);
			}
			num++;
		}
	}

	// Token: 0x06001E6D RID: 7789 RVA: 0x000483D4 File Offset: 0x000465D4
	[Token(Token = "0x6001E6D")]
	[Address(RVA = "0x960B80", Offset = "0x95FB80", VA = "0x180960B80")]
	public UIStackingManager()
	{
		Stack<GameCanvasBase> stack = new Stack();
		this.canvasStack = stack;
		Stack<GameCanvasBase> stack2 = new Stack();
		this.pendingStack = stack2;
		base..ctor();
	}

	// Token: 0x04002820 RID: 10272
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x4002820")]
	private Stack<GameCanvasBase> canvasStack;

	// Token: 0x04002821 RID: 10273
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x4002821")]
	private Stack<GameCanvasBase> pendingStack;

	// Token: 0x04002822 RID: 10274
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4002822")]
	private UIStackingManager.UIStackingCommand currentCmdType;

	// Token: 0x04002823 RID: 10275
	[FieldOffset(Offset = "0x24")]
	[Token(Token = "0x4002823")]
	private UIStackingManager.UIStackingCommand defaultCmdType;

	// Token: 0x04002824 RID: 10276
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x4002824")]
	private bool isRecording;

	// Token: 0x0200033D RID: 829
	[Token(Token = "0x200033D")]
	public enum UIStackingCommand
	{
		// Token: 0x04002826 RID: 10278
		[Token(Token = "0x4002826")]
		Default,
		// Token: 0x04002827 RID: 10279
		[Token(Token = "0x4002827")]
		Close,
		// Token: 0x04002828 RID: 10280
		[Token(Token = "0x4002828")]
		ForceClose,
		// Token: 0x04002829 RID: 10281
		[Token(Token = "0x4002829")]
		ForceCloseAll
	}
}
