Ejemplo n.º 1
0
        public InputComponent(
            UIGroup uiGroup,
            Vector2 position,
            Vector2 size,
            string defaultValue,
            string placeholderText,
            Texture2D texture,
            Font font,
            int fontSize = 13,
            InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None
            ) : base(uiGroup, position, size)
        {
            // Create background image
            var image = GameObject.AddComponent <Image>();

            image.sprite = CreateSpriteFromTexture(texture);
            image.type   = Image.Type.Simple;

            var placeholder = new GameObject();

            placeholder.AddComponent <RectTransform>().sizeDelta = size;
            var placeholderTextComponent = placeholder.AddComponent <Text>();

            placeholderTextComponent.text      = placeholderText;
            placeholderTextComponent.font      = font;
            placeholderTextComponent.fontSize  = fontSize;
            placeholderTextComponent.alignment = TextAnchor.MiddleCenter;
            // Make the color black with opacity so it is clearly different from inputted text
            placeholderTextComponent.color = new Color(0, 0, 0, 0.5f);

            // Set the transform parent to the InputComponent gameObject
            placeholder.transform.SetParent(GameObject.transform, false);
            Object.DontDestroyOnLoad(placeholder);

            var textObject = new GameObject();

            textObject.AddComponent <RectTransform>().sizeDelta = size;
            var textComponent = textObject.AddComponent <Text>();

            textComponent.text      = defaultValue;
            textComponent.font      = font;
            textComponent.fontSize  = fontSize;
            textComponent.alignment = TextAnchor.MiddleCenter;
            textComponent.color     = Color.black;

            // Set the transform parent to the InputComponent gameObject
            textObject.transform.SetParent(GameObject.transform, false);
            Object.DontDestroyOnLoad(textObject);

            // Create the actual inputField component
            _inputField = GameObject.AddComponent <InputField>();
            _inputField.targetGraphic       = image;
            _inputField.placeholder         = placeholderTextComponent;
            _inputField.textComponent       = textComponent;
            _inputField.text                = defaultValue;
            _inputField.characterValidation = characterValidation;
        }
Ejemplo n.º 2
0
        public HiddenInputComponent(
            ComponentGroup componentGroup,
            Vector2 position,
            Vector2 size,
            string defaultValue,
            string placeholderText,
            Texture2D texture,
            Font font,
            int fontSize = 13,
            InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None
            ) : base(
                componentGroup,
                position,
                size,
                defaultValue,
                placeholderText,
                texture,
                font,
                fontSize,
                characterValidation
                )
        {
            var buttonComponent = new ButtonComponent(
                componentGroup,
                position,
                size,
                "Click to show",
                texture,
                font,
                new Color(0, 0, 0, 0.5f),
                fontSize
                );

            // Disable the original input component object
            GameObject.SetActive(false);

            // Hide our block object and show the input component on click
            buttonComponent.SetOnPress(() => {
                buttonComponent.SetActive(false);
                GameObject.SetActive(true);
            });

            // Add a handler for when we leave the component with our cursor,
            // which is when we enable the block object again and hide the input component
            GameObject.AddComponent <HiddenButtonLeaveHandler>().Action = () => {
                buttonComponent.SetActive(true);
                GameObject.SetActive(false);
            };
        }
Ejemplo n.º 3
0
    private static int set_characterValidation(IntPtr L)
    {
        object obj = null;
        int    result;

        try
        {
            obj = ToLua.ToObject(L, 1);
            InputField inputField = (InputField)obj;
            InputField.CharacterValidation characterValidation = (InputField.CharacterValidation)((int)ToLua.CheckObject(L, 2, typeof(InputField.CharacterValidation)));
            inputField.characterValidation = characterValidation;
            result = 0;
        }
        catch (Exception ex)
        {
            result = LuaDLL.toluaL_exception(L, ex, (obj != null) ? ex.Message : "attempt to index characterValidation on a nil value");
        }
        return(result);
    }
Ejemplo n.º 4
0
        private TMP_InputField.CharacterValidation GetTMPCharacterValidation(InputField.CharacterValidation characterValidation)
        {
            switch (characterValidation)
            {
            case InputField.CharacterValidation.Alphanumeric: return(TMP_InputField.CharacterValidation.Alphanumeric);

            case InputField.CharacterValidation.Decimal: return(TMP_InputField.CharacterValidation.Decimal);

            case InputField.CharacterValidation.EmailAddress: return(TMP_InputField.CharacterValidation.EmailAddress);

            case InputField.CharacterValidation.Integer: return(TMP_InputField.CharacterValidation.Integer);

            case InputField.CharacterValidation.Name: return(TMP_InputField.CharacterValidation.Name);

            case InputField.CharacterValidation.None: return(TMP_InputField.CharacterValidation.None);

            default: return(TMP_InputField.CharacterValidation.None);
            }
        }
Ejemplo n.º 5
0
    private static int get_characterValidation(IntPtr L)
    {
        object obj = null;
        int    result;

        try
        {
            obj = ToLua.ToObject(L, 1);
            InputField inputField = (InputField)obj;
            InputField.CharacterValidation characterValidation = inputField.characterValidation;
            ToLua.Push(L, characterValidation);
            result = 1;
        }
        catch (Exception ex)
        {
            result = LuaDLL.toluaL_exception(L, ex, (obj != null) ? ex.Message : "attempt to index characterValidation on a nil value");
        }
        return(result);
    }
Ejemplo n.º 6
0
 public HiddenInputComponent(
     GameObject parent,
     Vector2 position,
     string defaultValue,
     string placeholderText,
     int fontSize = 18,
     InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None
     ) : this(
         parent,
         position,
         new Vector2(200, 30),
         defaultValue,
         placeholderText,
         TextureManager.InputFieldBackground,
         FontManager.UIFontRegular,
         fontSize,
         characterValidation
         )
 {
 }
Ejemplo n.º 7
0
 protected HiddenInputComponent(
     ComponentGroup componentGroup,
     Vector2 position,
     string defaultValue,
     string placeholderText,
     int fontSize,
     InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None
     ) : this(
         componentGroup,
         position,
         new Vector2(DefaultWidth, DefaultHeight),
         defaultValue,
         placeholderText,
         TextureManager.InputFieldBg,
         FontManager.UIFontRegular,
         fontSize,
         characterValidation
         )
 {
 }
Ejemplo n.º 8
0
 public InputComponent(
     ComponentGroup componentGroup,
     Vector2 position,
     string defaultValue,
     string placeholderText,
     InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None,
     int characterLimit = 0
     ) : this(
         componentGroup,
         position,
         new Vector2(DefaultWidth, DefaultHeight),
         defaultValue,
         placeholderText,
         TextureManager.InputFieldBg,
         FontManager.UIFontRegular,
         UiManager.NormalFontSize,
         characterValidation,
         characterLimit
         )
 {
 }
Ejemplo n.º 9
0
 public static IIgniteGUIGroup AddInputField(this IIgniteGUIGroup group, string label, Action <string> onValueChanged = null, Action <string> onEndEdit = null, string initialValue = null, string placeHolder = null, InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None, bool readOnly = false, float?width = null)
 {
     return(group.Add(IgniteHorizontalGroup.Create().AddLabel(label).AddInputField(onValueChanged, onEndEdit, initialValue, placeHolder, characterValidation, readOnly, width) as IgniteHorizontalGroup));
 }
Ejemplo n.º 10
0
        public static IgniteInputField Create(Action <string> onValueChanged = null, Action <string> onEndEdit = null, string initialValue = null, string placeHolder = null, InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None, bool readOnly = false, float?width = null)
        {
            var instance = Instantiate(Resources.Load <GameObject>("IgniteGUI/InputField")).GetComponent <IgniteInputField>();

            instance.backgroundImage.color          = IgniteGUISettings.InputFieldColor;
            instance.inputField.characterValidation = characterValidation;
            instance.inputField.readOnly            = readOnly;
            instance.SetSize(width ?? IgniteGUISettings.ElementWidth, IgniteGUISettings.ElementHeight);
            instance.inputField.textComponent.font              = IgniteGUISettings.Font;
            instance.inputField.textComponent.fontSize          = IgniteGUISettings.FontSize;
            instance.inputField.textComponent.resizeTextMaxSize = IgniteGUISettings.FontSize;
            instance.inputField.textComponent.color             = IgniteGUISettings.FontColor;
            instance.placeHolderText.font              = IgniteGUISettings.Font;
            instance.placeHolderText.fontSize          = IgniteGUISettings.FontSize;
            instance.placeHolderText.resizeTextMaxSize = IgniteGUISettings.FontSize;
            instance.placeHolderText.color             = new Color(IgniteGUISettings.FontColor.r, IgniteGUISettings.FontColor.g, IgniteGUISettings.FontColor.b, 0.5f);

            if (onValueChanged != null)
            {
                instance.inputField.onValueChanged.AddListener(new UnityAction <string>(onValueChanged));
            }
            if (onEndEdit != null)
            {
                instance.inputField.onEndEdit.AddListener(new UnityAction <string>(onEndEdit));
            }
            if (initialValue != null)
            {
                instance.inputField.text = initialValue;
            }
            if (placeHolder != null)
            {
                instance.placeHolderText.text = placeHolder;
            }

            return(instance);
        }
Ejemplo n.º 11
0
        public HiddenInputComponent(
            GameObject parent,
            Vector2 position,
            Vector2 size,
            string defaultValue,
            string placeholderText,
            Texture2D texture,
            Font font,
            int fontSize = 13,
            InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None
            ) : base(
                parent,
                position,
                size,
                defaultValue,
                placeholderText,
                texture,
                font,
                fontSize,
                characterValidation
                )
        {
            // Create a new object so we can switch between the block object
            // and the input object to manage the hidden state
            var blockObject = new GameObject();

            blockObject.AddComponent <CanvasRenderer>();
            Object.DontDestroyOnLoad(blockObject);

            var rectTransform = blockObject.AddComponent <RectTransform>();

            rectTransform.position  = position;
            rectTransform.sizeDelta = size;

            blockObject.transform.SetParent(parent.transform);

            // Add the background image to the block object
            var blockImage = blockObject.AddComponent <Image>();

            blockImage.sprite = CreateSpriteFromTexture(texture);
            blockImage.type   = Image.Type.Simple;

            // Add the show text to the block object
            var showText = new GameObject();

            showText.AddComponent <RectTransform>().sizeDelta = size;
            var placeholderTextComponent = showText.AddComponent <Text>();

            placeholderTextComponent.text      = "Click to show";
            placeholderTextComponent.font      = font;
            placeholderTextComponent.fontSize  = fontSize;
            placeholderTextComponent.alignment = TextAnchor.MiddleCenter;
            placeholderTextComponent.color     = new Color(0, 0, 0, 0.5f);

            // Set the transform parent
            showText.transform.SetParent(blockObject.transform, false);
            Object.DontDestroyOnLoad(showText);

            // Disable the original input component object
            GameObject.SetActive(false);

            // Add a button component so we can click it to show the input component
            var blockButton = blockObject.AddComponent <Button>();

            // Hide our block object and show the input component on click
            blockButton.onClick.AddListener(() => {
                blockObject.SetActive(false);
                GameObject.SetActive(true);
            });

            // Add a handler for when we leave the component with our cursor,
            // which is when we enable the block object again and hide the input component
            var hiddenButtonLeaveHandler = GameObject.AddComponent <HiddenButtonLeaveHandler>();

            hiddenButtonLeaveHandler.DeactivateObject = GameObject;
            hiddenButtonLeaveHandler.ActivateObject   = blockObject;
        }
        public void HonorsCharacterValidationSettingsAssignment(string input, string output, InputField.CharacterValidation validation)
        {
            InputField inputField = m_PrefabRoot.GetComponentInChildren <InputField>();

            inputField.characterValidation = validation;
            inputField.text = input;
            Assert.AreEqual(output, inputField.text, string.Format("Failed character validation: input ={0}, output ={1}, validation ={2}",
                                                                   input.Replace(kEmailSpecialCharacters, "specialchars"),
                                                                   output.Replace(kEmailSpecialCharacters, "specialchars"),
                                                                   validation));
        }
Ejemplo n.º 13
0
        private HiddenInputComponent(
            ComponentGroup componentGroup,
            Vector2 position,
            Vector2 size,
            string defaultValue,
            string placeholderText,
            MultiStateSprite bgSprite,
            Font font,
            int fontSize,
            InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None
            ) : base(
                componentGroup,
                position,
                size,
                defaultValue,
                placeholderText,
                bgSprite,
                font,
                fontSize,
                characterValidation
                )
        {
            _isHidden = true;

            _currentInput = defaultValue;

            InputField.text = HiddenText;
            SetTextAlpha(NotInteractableOpacity);

            var eventTrigger = GameObject.GetComponent <EventTrigger>();

            eventTrigger.triggers.Clear();

            AddEventTrigger(eventTrigger, EventTriggerType.PointerEnter, data => {
                if (Interactable)
                {
                    Image.sprite = bgSprite.Hover;
                }
            });
            AddEventTrigger(eventTrigger, EventTriggerType.PointerExit, data => {
                if (Interactable)
                {
                    Image.sprite = bgSprite.Neutral;

                    if (!_isHidden)
                    {
                        _currentInput   = InputField.text;
                        InputField.text = HiddenText;
                        SetTextAlpha(NotInteractableOpacity);
                    }

                    _isHidden = true;
                }
            });
            AddEventTrigger(eventTrigger, EventTriggerType.PointerDown, data => {
                if (Interactable)
                {
                    Image.sprite    = bgSprite.Active;
                    InputField.text = _currentInput;
                    SetTextAlpha(1f);

                    _isHidden = false;
                }
            });
        }
Ejemplo n.º 14
0
        public InputComponent(
            ComponentGroup componentGroup,
            Vector2 position,
            Vector2 size,
            string defaultValue,
            string placeholderText,
            MultiStateSprite bgSprite,
            Font font,
            int fontSize,
            InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None,
            int characterLimit = 0
            ) : base(componentGroup, position, size)
        {
            _bgSprite = bgSprite;

            Interactable = true;

            // Create background image
            Image        = GameObject.AddComponent <Image>();
            Image.sprite = bgSprite.Neutral;
            Image.type   = Image.Type.Sliced;

            var placeholder = new GameObject();

            placeholder.AddComponent <RectTransform>().sizeDelta = size;
            var placeholderTextComponent = placeholder.AddComponent <Text>();

            placeholderTextComponent.text      = placeholderText;
            placeholderTextComponent.font      = font;
            placeholderTextComponent.fontSize  = fontSize;
            placeholderTextComponent.alignment = TextAnchor.MiddleCenter;
            // Make the color white with opacity so it is clearly different from inputted text
            placeholderTextComponent.color = new Color(1f, 1f, 1f, 0.5f);

            // Set the transform parent to the InputComponent gameObject
            placeholder.transform.SetParent(GameObject.transform, false);
            Object.DontDestroyOnLoad(placeholder);

            var textObject = new GameObject();

            textObject.AddComponent <RectTransform>().sizeDelta = size - new Vector2(TextMargin * 2f, 0f);
            Text           = textObject.AddComponent <Text>();
            Text.text      = defaultValue;
            Text.font      = font;
            Text.fontSize  = fontSize;
            Text.alignment = TextAnchor.MiddleCenter;
            Text.color     = Color.white;

            // Set the transform parent to the InputComponent gameObject
            textObject.transform.SetParent(GameObject.transform, false);

            Object.DontDestroyOnLoad(textObject);

            // Create the actual inputField component
            InputField = GameObject.AddComponent <InputField>();
            InputField.targetGraphic       = Image;
            InputField.placeholder         = placeholderTextComponent;
            InputField.textComponent       = Text;
            InputField.text                = defaultValue;
            InputField.characterValidation = characterValidation;
            InputField.characterLimit      = characterLimit;

            InputField.shouldActivateOnSelect = false;
            InputField.onValueChanged.AddListener(value => { _onChange?.Invoke(value); });

            var eventTrigger = GameObject.AddComponent <EventTrigger>();

            AddEventTrigger(eventTrigger, EventTriggerType.PointerEnter, data => {
                if (Interactable)
                {
                    Image.sprite = bgSprite.Hover;
                }
            });
            AddEventTrigger(eventTrigger, EventTriggerType.PointerExit, data => {
                if (Interactable)
                {
                    Image.sprite = bgSprite.Neutral;
                }
            });
            AddEventTrigger(eventTrigger, EventTriggerType.PointerDown, data => {
                if (Interactable)
                {
                    Image.sprite = bgSprite.Active;
                }
            });
        }
Ejemplo n.º 15
0
        public static IIgniteGUIGroup AddInputFieldWithButton(this IIgniteGUIGroup group, string label, string buttonName, Action <string> onButtonClick, Action <string> onValueChanged = null, Action <string> onEndEdit = null, string initialValue = null, string placeHolder = null, InputField.CharacterValidation characterValidation = InputField.CharacterValidation.None, bool readOnly = false, float?width = null)
        {
            var inputField = IgniteInputField.Create(onValueChanged, onEndEdit, initialValue, placeHolder, characterValidation, readOnly, width);

            return(group.Add(IgniteHorizontalGroup.Create().AddLabel(label).Add(inputField).AddButton(buttonName, () => onButtonClick(inputField.Text)) as IgniteHorizontalGroup));
        }
 public CharValidationTestData(string input, string output, InputField.CharacterValidation validation)
 {
     this.input      = input;
     this.output     = output;
     this.validation = validation;
 }
Ejemplo n.º 17
0
        protected void EnforceContentType()
        {
            switch (contentType)
            {
            case InputField.ContentType.Standard:
            {
                // Don't enforce line type for this content type.
                m_InputType           = InputField.InputType.Standard;
                m_KeyboardType        = TouchScreenKeyboardType.Default;
                m_CharacterValidation = InputField.CharacterValidation.None;
                return;
            }

            case InputField.ContentType.Autocorrected:
            {
                // Don't enforce line type for this content type.
                m_InputType           = InputField.InputType.AutoCorrect;
                m_KeyboardType        = TouchScreenKeyboardType.Default;
                m_CharacterValidation = InputField.CharacterValidation.None;
                return;
            }

            case InputField.ContentType.IntegerNumber:
            {
                m_LineType = InputField.LineType.SingleLine;
                SetTextComponentWrapMode(false);
                m_InputType           = InputField.InputType.Standard;
                m_KeyboardType        = TouchScreenKeyboardType.NumberPad;
                m_CharacterValidation = InputField.CharacterValidation.Integer;
                return;
            }

            case InputField.ContentType.DecimalNumber:
            {
                m_LineType = InputField.LineType.SingleLine;
                SetTextComponentWrapMode(false);
                m_InputType           = InputField.InputType.Standard;
                m_KeyboardType        = TouchScreenKeyboardType.NumbersAndPunctuation;
                m_CharacterValidation = InputField.CharacterValidation.Decimal;
                return;
            }

            case InputField.ContentType.Alphanumeric:
            {
                m_LineType = InputField.LineType.SingleLine;
                SetTextComponentWrapMode(false);
                m_InputType           = InputField.InputType.Standard;
                m_KeyboardType        = TouchScreenKeyboardType.ASCIICapable;
                m_CharacterValidation = InputField.CharacterValidation.Alphanumeric;
                return;
            }

            case InputField.ContentType.Name:
            {
                m_LineType = InputField.LineType.SingleLine;
                SetTextComponentWrapMode(false);
                m_InputType           = InputField.InputType.Standard;
                m_KeyboardType        = TouchScreenKeyboardType.Default;
                m_CharacterValidation = InputField.CharacterValidation.Name;
                return;
            }

            case InputField.ContentType.EmailAddress:
            {
                m_LineType = InputField.LineType.SingleLine;
                SetTextComponentWrapMode(false);
                m_InputType           = InputField.InputType.Standard;
                m_KeyboardType        = TouchScreenKeyboardType.EmailAddress;
                m_CharacterValidation = InputField.CharacterValidation.EmailAddress;
                return;
            }

            case InputField.ContentType.Password:
            {
                m_LineType = InputField.LineType.SingleLine;
                SetTextComponentWrapMode(false);
                m_InputType           = InputField.InputType.Password;
                m_KeyboardType        = TouchScreenKeyboardType.Default;
                m_CharacterValidation = InputField.CharacterValidation.None;
                return;
            }

            case InputField.ContentType.Pin:
            {
                m_LineType = InputField.LineType.SingleLine;
                SetTextComponentWrapMode(false);
                m_InputType           = InputField.InputType.Password;
                m_KeyboardType        = TouchScreenKeyboardType.NumberPad;
                m_CharacterValidation = InputField.CharacterValidation.Integer;
                return;
            }

            default:
            {
                // Includes Custom type. Nothing should be enforced.
                return;
            }
            }
        }
        public IEnumerator HonorsCharacterValidationSettingsTypingWithSelection(string input, string output, InputField.CharacterValidation validation)
        {
            if (!TouchScreenKeyboard.isSupported)
            {
                yield break;
            }
            InputField    inputField = m_PrefabRoot.GetComponentInChildren <InputField>();
            BaseEventData eventData  = new BaseEventData(m_PrefabRoot.GetComponentInChildren <EventSystem>());

            inputField.characterValidation = validation;
            inputField.text = input;

            inputField.OnSelect(eventData);
            yield return(null);

            Assert.AreEqual(output, inputField.text, string.Format("Failed character validation: input ={0}, output ={1}, validation ={2}",
                                                                   input.Replace(kEmailSpecialCharacters, "specialchars"),
                                                                   output.Replace(kEmailSpecialCharacters, "specialchars"),
                                                                   validation));
        }
Ejemplo n.º 19
0
 public SettingTextBox AddTextBox(string id, string name, string value, UnityAction action, string placeholder          = "ENTER TEXT...", InputField.CharacterValidation inputType = InputField.CharacterValidation.None) => null;