public void Create(PxPre.FileBrowse.FileBrowseProp prop, FileBrowser browser) { this.parentBrowser = browser; this.properties = prop; const float scrollHorizHeight = 40.0f; const float scrollVertWidth = 40.0f; GameObject goBrowseView = new GameObject("BrowseView"); goBrowseView.transform.SetParent(this.gameObject.transform); goBrowseView.transform.localScale = Vector3.one; goBrowseView.transform.localRotation = Quaternion.identity; RectTransform rtBrowseView = goBrowseView.AddComponent <RectTransform>(); rtBrowseView.anchorMin = Vector2.zero; rtBrowseView.anchorMax = Vector2.one; rtBrowseView.pivot = new Vector2(0.0f, 1.0f); rtBrowseView.offsetMin = new Vector2(5.0f, 5.0f); rtBrowseView.offsetMax = new Vector2(-5.0f, -5.0f); GameObject goViewport = new GameObject("Viewport"); goViewport.transform.SetParent(goBrowseView.transform); goViewport.transform.localScale = Vector3.one; goViewport.transform.localRotation = Quaternion.identity; RectTransform rtVP = goViewport.AddComponent <RectTransform>(); rtVP.anchorMin = Vector2.zero; rtVP.anchorMax = Vector2.one; rtVP.pivot = new Vector2(0.0f, 1.0f); rtVP.offsetMin = new Vector2(0.0f, scrollHorizHeight); rtVP.offsetMax = new Vector2(-scrollVertWidth, 0.0f); UnityEngine.UI.Image imgViewport = goViewport.AddComponent <UnityEngine.UI.Image>(); UnityEngine.UI.Mask maskVP = goViewport.AddComponent <UnityEngine.UI.Mask>(); GameObject goContent = new GameObject("Content"); goContent.transform.SetParent(goViewport.transform); goContent.transform.localScale = Vector3.one; goContent.transform.localRotation = Quaternion.identity; RectTransform rtContent = goContent.AddComponent <RectTransform>(); rtContent.anchorMin = new Vector2(0.0f, 1.0f); rtContent.anchorMax = new Vector2(0.0f, 1.0f); rtContent.pivot = new Vector2(0.0f, 1.0f); rtContent.offsetMin = new Vector2(0.0f, -10.0f); rtContent.offsetMax = new Vector2(10.0f, 0.0f); // VERT SCROLL // //////////////////////////////////////////////////////////////////////////////// /// GameObject goVertScroll = new GameObject("VertScroll"); goVertScroll.transform.SetParent(goBrowseView.transform); goVertScroll.transform.localScale = Vector3.one; goVertScroll.transform.localRotation = Quaternion.identity; RectTransform rtVertScr = goVertScroll.AddComponent <RectTransform>(); rtVertScr.anchorMin = new Vector2(1.0f, 0.0f); rtVertScr.anchorMax = new Vector2(1.0f, 1.0f); rtVertScr.pivot = new Vector2(0.0f, 1.0f); rtVertScr.offsetMin = new Vector2(-scrollVertWidth, scrollHorizHeight); rtVertScr.offsetMax = new Vector2(0.0f, 0.0f); UnityEngine.UI.Image imgVertScr = goVertScroll.AddComponent <UnityEngine.UI.Image>(); imgVertScr.sprite = this.properties.sliderSprite; imgVertScr.type = UnityEngine.UI.Image.Type.Sliced; GameObject goVertThumb = new GameObject("VertThumb"); goVertThumb.transform.SetParent(goVertScroll.transform); goVertThumb.transform.localScale = Vector3.one; goVertThumb.transform.localRotation = Quaternion.identity; RectTransform rtVertThumb = goVertThumb.AddComponent <RectTransform>(); rtVertThumb.pivot = new Vector2(0.0f, 1.0f); rtVertThumb.offsetMin = Vector2.zero; rtVertThumb.offsetMax = Vector2.zero; UnityEngine.UI.Image imgVertThumb = goVertThumb.AddComponent <UnityEngine.UI.Image>(); UnityEngine.UI.Scrollbar sbVert = goVertScroll.AddComponent <UnityEngine.UI.Scrollbar>(); sbVert.handleRect = rtVertThumb; sbVert.direction = UnityEngine.UI.Scrollbar.Direction.BottomToTop; sbVert.targetGraphic = imgVertThumb; this.properties.sliderThumb.Apply(sbVert, imgVertThumb); // HORIZ SCROLL // //////////////////////////////////////////////////////////////////////////////// /// GameObject goHorizScroll = new GameObject("HorizScroll"); goHorizScroll.transform.SetParent(goBrowseView.transform); goHorizScroll.transform.localScale = Vector3.one; goHorizScroll.transform.localRotation = Quaternion.identity; RectTransform rtHorizScr = goHorizScroll.AddComponent <RectTransform>(); rtHorizScr.anchorMin = new Vector2(0.0f, 0.0f); rtHorizScr.anchorMax = new Vector2(1.0f, 0.0f); rtHorizScr.pivot = new Vector2(0.0f, 1.0f); rtHorizScr.offsetMin = Vector2.zero; rtHorizScr.offsetMax = new Vector2(-scrollVertWidth, scrollHorizHeight); UnityEngine.UI.Image imgHorzScr = goHorizScroll.AddComponent <UnityEngine.UI.Image>(); imgHorzScr.sprite = this.properties.sliderSprite; imgHorzScr.type = UnityEngine.UI.Image.Type.Sliced; GameObject goHorizThumb = new GameObject("HorizThumb"); goHorizThumb.transform.SetParent(rtHorizScr); goHorizThumb.transform.localScale = Vector3.one; goHorizThumb.transform.localRotation = Quaternion.identity; RectTransform rtHorizThumb = goHorizThumb.AddComponent <RectTransform>(); rtHorizThumb.pivot = new Vector2(0.0f, 1.0f); rtHorizThumb.offsetMin = Vector2.zero; rtHorizThumb.offsetMax = Vector2.zero; UnityEngine.UI.Image imgHorizThumb = goHorizThumb.AddComponent <UnityEngine.UI.Image>(); UnityEngine.UI.Scrollbar sbHoriz = goHorizScroll.AddComponent <UnityEngine.UI.Scrollbar>(); sbHoriz.handleRect = rtHorizThumb; sbHoriz.direction = UnityEngine.UI.Scrollbar.Direction.LeftToRight; this.properties.sliderThumb.Apply(sbHoriz, imgHorizThumb); // RECT // //////////////////////////////////////////////////////////////////////////////// this.scrollRect = goBrowseView.AddComponent <UnityEngine.UI.ScrollRect>(); this.scrollRect.viewport = rtVP; this.scrollRect.content = rtContent; this.scrollRect.horizontalScrollbar = sbHoriz; this.scrollRect.verticalScrollbar = sbVert; this.scrollRect.scrollSensitivity = this.properties.fileScrollSensitivity; // FIN // //////////////////////////////////////////////////////////////////////////////// // Make dirty this.scrollRect.gameObject.SetActive(false); this.scrollRect.gameObject.SetActive(true); }
public void Create(PxPre.FileBrowse.FileBrowseProp prop, FileBrowser browser) { this.prop = prop; this.browser = browser; GameObject goLabel = new GameObject("FontLabel"); goLabel.transform.SetParent(this.transform); goLabel.transform.localScale = Vector3.one; goLabel.transform.localRotation = Quaternion.identity; UnityEngine.UI.Text txtLabel = goLabel.AddComponent <UnityEngine.UI.Text>(); this.prop.inputLabel.Apply(txtLabel); txtLabel.horizontalOverflow = HorizontalWrapMode.Overflow; txtLabel.verticalOverflow = VerticalWrapMode.Overflow; txtLabel.alignment = TextAnchor.MiddleLeft; txtLabel.text = "Filename"; RectTransform rtLabel = txtLabel.rectTransform; TextGenerationSettings tgsLabel = txtLabel.GetGenerationSettings(new Vector2(float.PositiveInfinity, float.PositiveInfinity)); tgsLabel.scaleFactor = 1.0f; TextGenerator tgLabel = txtLabel.cachedTextGenerator; float labelWidth = tgLabel.GetPreferredWidth(txtLabel.text, tgsLabel); rtLabel.pivot = new Vector2(0.0f, 0.5f); rtLabel.anchorMin = new Vector2(0.0f, 0.0f); rtLabel.anchorMax = new Vector2(0.0f, 1.0f); rtLabel.offsetMin = new Vector2(0.0f, 0.0f); rtLabel.offsetMax = new Vector2(labelWidth, 0.0f); GameObject goInput = new GameObject("Input"); goInput.transform.SetParent(this.transform); goInput.transform.localScale = Vector3.one; goInput.transform.localRotation = Quaternion.identity; UnityEngine.UI.Image imgInput = goInput.AddComponent <UnityEngine.UI.Image>(); imgInput.type = UnityEngine.UI.Image.Type.Sliced; imgInput.sprite = this.prop.inputPlateSprite; RectTransform rtInput = imgInput.rectTransform; rtInput.anchorMin = Vector2.zero; rtInput.anchorMax = Vector2.one; rtInput.offsetMin = new Vector2(labelWidth + this.prop.inputLabelInputPadding, 0.0f); rtInput.offsetMax = Vector2.zero; GameObject goInputText = new GameObject("InputText"); goInputText.transform.SetParent(goInput.transform); goInputText.transform.localScale = Vector3.one; goInputText.transform.localRotation = Quaternion.identity; UnityEngine.UI.Text textInput = goInputText.AddComponent <UnityEngine.UI.Text>(); this.prop.inputText.Apply(textInput); textInput.alignment = TextAnchor.MiddleLeft; textInput.verticalOverflow = VerticalWrapMode.Overflow; RectTransform rtText = textInput.rectTransform; rtText.anchorMin = Vector2.zero; rtText.anchorMax = Vector2.one; rtText.pivot = new Vector2(0.0f, 0.5f); rtText.offsetMin = new Vector2(this.prop.inputPadding, 0.0f); rtText.offsetMax = new Vector2(-this.prop.inputPadding, 0.0f); this.input = goInput.AddComponent <UnityEngine.UI.InputField>(); this.input.textComponent = textInput; this.input.onValidateInput += this.OnValidateInput; this.input.lineType = UnityEngine.UI.InputField.LineType.MultiLineNewline; }