Example #1
0
        /// <summary> Call this when a text field control is clicked. </summary>
        /// <param name="subject"> The clicked text field drawer. </param>
        /// <param name="inputEvent"> The current input event. </param>
        public static void OnControlClicked(ITextFieldDrawer subject, Event inputEvent)
        {
            bool canStartEditing = CanStartEditing(subject);

            // if field was already selected when it was clicked, don't use the event
            // this way Unity can handle positioning the cursor in a specific point on the text field etc.
            if (subject.Selected)
            {
                                #if DEV_MODE && DEBUG_EDITING_TEXT_FIELD
                Debug.Log(StringUtils.ToColorizedString("TextFieldUtility.OnControlClicked - DrawGUI.EditingTextField = ", canStartEditing, " (because was selected)"));
                                #endif

                DrawGUI.EditingTextField = canStartEditing;
                return;
            }

            DrawGUI.Use(inputEvent);
            subject.HandleOnClickSelection(inputEvent, ReasonSelectionChanged.ControlClicked);
            if (canStartEditing)
            {
                                #if DEV_MODE && DEBUG_EDITING_TEXT_FIELD
                Debug.Log(StringUtils.ToColorizedString("TextFieldUtility.OnControlClicked - Calling StartEditingField (not selected and can start editing)"));
                                #endif

                subject.StartEditingField();
            }
            else
            {
                                #if DEV_MODE && DEBUG_EDITING_TEXT_FIELD
                Debug.Log(StringUtils.ToColorizedString("TextFieldUtility.OnControlClicked - DrawGUI.EditingTextField = ", false, " (because was can start editing was ", false, ")"));
                                #endif

                DrawGUI.EditingTextField = false;
            }
        }
Example #2
0
 public static bool CanStartEditingField(ITextFieldDrawer target)
 {
     return(!target.ReadOnly && !InspectorUtility.ActiveManager.HasMultiSelectedControls);
 }