private void PopulateMenuItems(List <InventoryMenuItem> listToPopulate, List <InventoryItem> sourceList, float Y)
        {
            for (int i = 0; i < sourceList.Count; i++)
            {
                InventoryMenuItem newItem = new InventoryMenuItem(sourceList[i].name);
                newItem.inventoryItem = sourceList[i];
                listToPopulate.Add(newItem);
            }

            //position the menu elements.
            Vector2 startPos = new Vector2(FrameworkCore.Graphics.GraphicsDevice.Viewport.Width / 2, Y);

            startPos.X -= (listToPopulate.Count / 2) * ITEMWIDTH /*width of each item*/;

            for (int i = 0; i < listToPopulate.Count; i++)
            {
                listToPopulate[i].position       = startPos;
                listToPopulate[i].targetPosition = startPos;

                startPos.X += ITEMWIDTH;
            }
        }
        public InventoryPopup(SysMenuManager owner, bool includeClearSlot)
            : base(owner)
        {
            transitionOnTime  = 200;
            transitionOffTime = 200;

            menuFont = FrameworkCore.Serif;
            SetOwner(owner);

            darkenScreen = true;
            hideChildren = false;

            InventoryMenuItem menuItem = null;

            if (includeClearSlot)
            {
                menuItem           = new InventoryMenuItem(Resource.MenuSkirmishSlotClear);
                menuItem.Selected += OnSelectClear;
                menuItems.Add(menuItem);
            }

            //populate the menu items.
            foreach (InventoryItem item in FrameworkCore.players[0].inventoryItems)
            {
                if (!isValidItem(item))
                {
                    continue;
                }

                menuItem               = new InventoryMenuItem(item.name);
                menuItem.Selected     += OnSelectItem;
                menuItem.inventoryItem = item;
                menuItems.Add(menuItem);
            }

            if (FrameworkCore.players[0].inventoryItems.Count > 0)
            {
                selectedIndex = 0;
            }


            if (menuItems.Count <= 0)
            {
                noItemsFound = true;

                menuItem           = new InventoryMenuItem("");
                menuItem.Selected += OnSelectDeactivate;
                menuItems.Add(menuItem);
            }
            else
            {
                menuItem           = new InventoryMenuItem(Resource.MenuCancel);
                menuItem.Selected += OnSelectDeactivate;
                menuItems.Add(menuItem);
            }

            UpdateTargetPositions();

            foreach (InventoryMenuItem item in menuItems)
            {
                item.position = item.targetPosition;
            }
        }