public class PauseMenu
{
	public bool showMenu;

	public MyVector menuItems;

	public int menuSelectedItem;

	public int menuX;

	public int menuY;

	public int menuW;

	public int menuH;

	public int menuTemY;

	public void startAt(MyVector menuItems)
	{
		int num = ((!CCanvas.isTouch) ? 24 : 30);
		this.menuItems = menuItems;
		menuW = 0;
		menuH = 0;
		for (int i = 0; i < menuItems.size(); i++)
		{
			Command command = (Command)menuItems.elementAt(i);
			int width = mFont.bigFont.getWidth(command.caption);
			if (width > menuW)
			{
				menuW = width;
			}
			menuH += num;
		}
		menuW += 10;
		if (menuW < 100)
		{
			menuW = 100;
		}
		menuH += 4;
		menuX = (CCanvas.w >> 1) - (menuW >> 1);
		menuY = CCanvas.h - menuH >> 1;
		menuTemY = CCanvas.h - 24;
		showMenu = true;
		menuSelectedItem = 0;
	}

	public void updateMenuKey()
	{
		if (CCanvas.keyPressed[2] || CScreen.keyUp)
		{
			menuSelectedItem--;
			if (menuSelectedItem < 0)
			{
				menuSelectedItem = menuItems.size() - 1;
			}
		}
		else if (CCanvas.keyPressed[8] || CScreen.keyDown)
		{
			menuSelectedItem++;
			if (menuSelectedItem > menuItems.size() - 1)
			{
				menuSelectedItem = 0;
			}
		}
		else if (CCanvas.keyPressed[5] || CCanvas.keyPressed[12] || CCanvas.keyPressed[13] || CScreen.getCmdPointerPressed(2) || CScreen.getCmdPointerPressed(0) || CScreen.getCmdPointerPressed(1))
		{
			showMenu = false;
			if (menuItems.size() > 0)
			{
				((Command)menuItems.elementAt(menuSelectedItem)).performAction();
			}
		}
		if (CCanvas.isPointerClick && CCanvas.isPointer(0, menuY, CCanvas.w, menuH))
		{
			int num = (CCanvas.py - menuY) / 30;
			if (menuSelectedItem != num)
			{
				menuSelectedItem = num;
			}
			else
			{
				showMenu = false;
				if (menuItems.size() > 0)
				{
					((Command)menuItems.elementAt(menuSelectedItem)).performAction();
				}
			}
		}
		CScreen.clearKey();
	}

	public void paintMenu(mGraphics g)
	{
		g.translate(-g.getTranslateX(), -g.getTranslateY());
		g.setClip(0, 0, CCanvas.w, CCanvas.h);
		CScreen.paintBorderRect(g, menuY - 25, 4, menuH + 25, string.Empty);
		int num = ((!CCanvas.isTouch) ? 24 : 30);
		for (int i = 0; i < menuItems.size(); i++)
		{
			g.setColor(0);
			if (i == menuSelectedItem)
			{
				g.setColor(16767817);
				g.fillRect(CCanvas.w / 2 - 85, menuY + i * num - 1, 170, 24, false);
			}
			mFont.bigFont.drawString(g, ((Command)menuItems.elementAt(i)).caption, CCanvas.hw, menuY + i * num, 2);
		}
	}

	public void updateMenu()
	{
		if (menuTemY > menuY)
		{
			int num = menuTemY - menuY >> 1;
			if (num < 1)
			{
				num = 1;
			}
			menuTemY -= num;
		}
		menuTemY = menuY;
	}
}
