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); }