public void ShowWindow(CCSprite currentSprite, string folderName)
        {
            if (isModal)
            {
                return;
            }

            windowFrame = new CCSprite("BlankFrame")
            {
                PositionX = currentSprite.Position.X,
                PositionY = currentSprite.Position.Y,
                Tag       = SpriteTypes.WindowTag
            };

            var scaling = (spriteModelFactory.DynamicWidth * 0.1f) / windowFrame.ContentSize.Width;

            windowFrame.ContentSize = new CCSize(windowFrame.ContentSize.Width * scaling, windowFrame.ContentSize.Height * scaling);

            closeButton             = new CCSprite("IconClose");
            closeButton.ContentSize = new CCSize(windowFrame.ContentSize.Width * 0.075f, windowFrame.ContentSize.Width * 0.075f);
            closeButton.PositionX   = windowFrame.ContentSize.Width - closeButton.ContentSize.Width / 2 - 3;
            closeButton.PositionY   = windowFrame.ContentSize.Height - closeButton.ContentSize.Height / 2 - 3;
            closeButton.Tag         = SpriteTypes.CloseWindowTag;


            AddEventListener(mListener.Copy(), closeButton);

            ScheduleOnce((dt) => {
                windowFrame.AddChild(closeButton, 1001, SpriteTypes.CloseWindowTag);

                lock (storedList)
                {
                    var mEqualList = storedList.Where(l => l.FolderName == folderName).ToList();

                    for (var i = 0; i < mEqualList.Count; i++)
                    {
                        // Pull respective icon
                        var mStoredIconRef = mEqualList[i];

                        var mSprite  = mStoredIconRef.Sprite;
                        var mContent = mSprite.GetChildByTag(SpriteTypes.ContentTag) as CCLabel;

                        if (mContent != null)
                        {
                            var parentSprite = new CCSprite("BlankFrame");

                            parentSprite.ContentSize = new CCSize(windowFrame.ContentSize.Width * 0.25f, windowFrame.ContentSize.Height * 0.25f);

                            var pSpacing = parentSprite.ContentSize.Width * 0.15f;
                            var xSpacing = parentSprite.ContentSize.Width * ((i % 3)) + pSpacing * ((i % 3) + 1);
                            var ySpacing = parentSprite.ContentSize.Height * ((i / 3)) + pSpacing * ((i / 3) + 1);

                            parentSprite.PositionX = (parentSprite.ContentSize.Width * 0.5f) + xSpacing;
                            parentSprite.PositionY = windowFrame.ContentSize.Height - (parentSprite.ContentSize.Height * 0.5f) - ySpacing;

                            parentSprite.Tag = SpriteTypes.IconTag;

                            mStoredIconRef.Sprite.ContentSize = parentSprite.ContentSize;
                            mStoredIconRef.Sprite.PositionX   = parentSprite.PositionX;
                            mStoredIconRef.Sprite.PositionY   = parentSprite.PositionY;

                            byte[] bytes     = Convert.FromBase64String(mStoredIconRef.Base64);
                            var testTexture  = new CCTexture2D(bytes);
                            var testFrame    = new CCSpriteFrame(testTexture, new CCRect(0, 0, testTexture.PixelsWide, testTexture.PixelsHigh));
                            var subIconFrame = new CCSprite(testFrame)
                            {
                                AnchorPoint = CCPoint.AnchorMiddle,
                                ContentSize = new CCSize(parentSprite.ContentSize.Width * 0.75f, parentSprite.ContentSize.Height * 0.75f),
                                PositionX   = parentSprite.ContentSize.Width * 0.5f,
                                PositionY   = parentSprite.ContentSize.Height * 0.5f + parentSprite.ContentSize.Height * 0.075f,
                                Tag         = SpriteTypes.ImageTag
                            };

                            var label = new CCLabel(mContent.Text, "Arial", 22, CCLabelFormat.SystemFont)
                            {
                                Scale               = 0.25f * scaling,
                                AnchorPoint         = CCPoint.AnchorMiddle,
                                HorizontalAlignment = CCTextAlignment.Center,
                                VerticalAlignment   = CCVerticalTextAlignment.Center,
                                PositionX           = parentSprite.ContentSize.Width * 0.5f,
                                PositionY           = parentSprite.ContentSize.Height * 0.075f,
                                Color               = CCColor3B.Black,
                                Visible             = mStoredIconRef.TextVisible,
                                Tag = SpriteTypes.ContentTag
                            };

                            parentSprite.AddChild(subIconFrame);
                            AddEventListener(mListener.Copy(), parentSprite);

                            windowFrame.AddChild(parentSprite, 1001, SpriteTypes.IconTag);
                            parentSprite.AddChild(label);
                        }
                    }
                }

                AddEventListener(mListener.Copy(), windowFrame);
                tempWindow = new IconReference(windowFrame, "Window", 1f, true);
                iconList2.Add(tempWindow);
                AddChild(windowFrame, 1000, SpriteTypes.WindowTag);

                var moveAction = new CCMoveTo(0.2f, new CCPoint(spriteModelFactory.DynamicWidth / 2f, spriteModelFactory.DynamicHeight / 2f));

                var dimension   = Math.Min(spriteModelFactory.DynamicHeight, spriteModelFactory.DynamicWidth);
                var scale       = (dimension / windowFrame.ContentSize.Width) * 0.9f;
                var scaleAction = new CCScaleTo(0.2f, scale);

                windowFrame.AddActions(false, moveAction, scaleAction);
                isModal = true;
            }, 0);
        }