Esempio n. 1
0
        /// <inheritdoc />
        public override bool OnKeyboardInputGiven(Event inputEvent, KeyConfigs keys)
        {
            if (InspectorUtility.ActiveInspector.Preferences.keyConfigs.addComponent.DetectAndUseInput(inputEvent))
            {
                Select(ReasonSelectionChanged.KeyPressShortcut);
                Open();
                return(true);
            }

            switch (Event.current.keyCode)
            {
            case KeyCode.Return:
            case KeyCode.KeypadEnter:
                GUI.changed = true;
                DrawGUI.Use(inputEvent);
                if (!open)
                {
                    Open();
                }
                return(true);

            //TO DO: implement "opening" namespace or going back one level
            case KeyCode.LeftArrow:
            case KeyCode.RightArrow:
                DrawGUI.Use(inputEvent);
                return(true);

            default:
                return(base.OnKeyboardInputGiven(inputEvent, keys));
            }
        }
Esempio n. 2
0
        /// <inheritdoc/>
        public virtual bool OnClick(Event inputEvent)
        {
                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(!inspector.IgnoreToolbarMouseInputs());
                        #endif

            if (mouseoverVisibleItemIndex != -1)
            {
                if (!IsSelected)
                {
                    inspector.Manager.Select(inspector, InspectorPart.Toolbar, ReasonSelectionChanged.ControlClicked);
                }
                var item = visibleItems[mouseoverVisibleItemIndex];
                if (item.Selectable && SelectedItem != item)
                {
                    SetSelectedItem(item, ReasonSelectionChanged.ControlClicked);
                }

                if (item.Clickable && item.OnClick(inputEvent))
                {
                    GUIUtility.ExitGUI();
                    return(true);
                }
                return(false);
            }
            else
            {
                DrawGUI.Use(inputEvent);
                KeyboardControlUtility.SetKeyboardControl(0, 3);
            }

            inspector.Manager.Select(inspector, InspectorPart.Toolbar, ReasonSelectionChanged.ThisClicked);
            SetSelectedItem(-1, ReasonSelectionChanged.ThisClicked);
            return(true);
        }
Esempio n. 3
0
        /// <inheritdoc cref="IDrawer.OnKeyboardInputGiven" />
        public override bool OnKeyboardInputGiven(Event inputEvent, KeyConfigs keys)
        {
                        #if DEV_MODE && DEBUG_KEYBOARD_INPUT
            Debug.Log(ToString() + ".OnKeyboardInputGiven(" + StringUtils.ToString(inputEvent) + ")");
                        #endif

            if (DrawToggleNullButton)
            {
                switch (inputEvent.keyCode)
                {
                case KeyCode.F2:
                    var textFieldMember = ValueDrawer as ITextFieldDrawer;
                    if (textFieldMember != null)
                    {
                        DrawGUI.Use(inputEvent);
                        textFieldMember.StartEditingField();
                        return(true);
                    }
                    return(false);

                case KeyCode.Return:
                case KeyCode.Space:
                case KeyCode.KeypadEnter:
                    if (inputEvent.modifiers == EventModifiers.None)
                    {
                        OnNullToggleButtonClicked();
                        GUI.changed = true;
                        DrawGUI.Use(inputEvent);
                        return(true);
                    }
                    break;
                }
            }
            return(base.OnKeyboardInputGiven(inputEvent, keys));
        }
Esempio n. 4
0
        /// <inheritdoc />
        public sealed override bool OnKeyboardInputGiven(Event e, KeyConfigs keys)
        {
            if (DrawGUI.EditingTextField)
            {
                return(false);
            }

            switch (e.keyCode)
            {
            case KeyCode.LeftArrow:
            case KeyCode.KeypadPlus:
                GUI.changed = true;
                DrawGUI.Use(e);
                TValue value     = Value;
                TValue decreased = RoundedAndClamped(Convert.ToDouble(value) - (e.shift ? step * 10d : step));
                if (decreased.CompareTo(value) != 0)
                {
                    Value = decreased;
                }
                return(true);

            case KeyCode.RightArrow:
            case KeyCode.KeypadMinus:
                GUI.changed = true;
                DrawGUI.Use(e);
                value = Value;
                TValue increased = RoundedAndClamped(Convert.ToDouble(value) + (e.shift ? step * 10d : step));
                if (increased.CompareTo(value) != 0)
                {
                    Value = increased;
                }
                return(true);
            }
            return(base.OnKeyboardInputGiven(e, keys));
        }
        /// <inheritdoc/>
        public override bool OnRightClick(Event inputEvent)
        {
                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(!inspector.IgnoreToolbarMouseInputs(), GetType().Name + ".HandleOnBeingActivated called with IgnoreToolbarMouseInputs " + StringUtils.True);
            Debug.Assert(inputEvent != null);
            Debug.Assert(inputEvent.type != EventType.Used);
                        #endif

            switch (mouseoveredPart)
            {
            case SearchBoxPart.Dropdown:
                DrawGUI.Use(inputEvent);
                OpenFilteringMethodMenu(dropdownButtonRect);
                return(true);

            case SearchBoxPart.TextField:
                // don't consume right click event, let filterDrawer handle that
                return(false);

            case SearchBoxPart.ClearButton:
                DrawGUI.Use(inputEvent);
                ClearFilterField(false);
                return(true);

            default:
                return(base.OnRightClick(inputEvent));
            }
        }
Esempio n. 6
0
        /// <inheritdoc />
        protected override void OnControlClicked(Event inputEvent)
        {
            mouseDownOverSubPart = mouseoveredSubPart;
            HandleOnClickSelection(inputEvent, ReasonSelectionChanged.ControlClicked);

            if (mouseoveredSubPart == SliderSubPart.Slider)
            {
                sliderFocused = true;
                return;
            }

            if (mouseoveredSubPart == SliderSubPart.NumberField)
            {
                focusSlider   = 0;
                sliderFocused = false;

                //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 (Selected)
                {
                    return;
                }

                DrawGUI.Use(inputEvent);
                StartEditingField();
            }
        }
Esempio n. 7
0
 /// <inheritdoc />
 protected override void OnPrefixClicked(Event inputEvent)
 {
     mouseDownOverSubPart = mouseoveredSubPart;
     HandleOnClickSelection(inputEvent, ReasonSelectionChanged.PrefixClicked);
     DrawGUI.EditingTextField = false;
     DrawGUI.Use(inputEvent);
     FocusSlider();
 }
Esempio n. 8
0
 /// <inheritdoc />
 protected override void OnControlClicked(Event inputEvent)
 {
                 #if DEV_MODE
     Debug.Log(ToString() + ".OnControlClicked(" + StringUtils.ToString(inputEvent) + ") with Selected=" + Selected + ", EditingTextField=" + DrawGUI.EditingTextField);
                 #endif
     DrawGUI.Use(inputEvent);
     HandleOnClickSelection(inputEvent, ReasonSelectionChanged.ControlClicked);
     StartEditingField();
 }
Esempio n. 9
0
 public bool DetectAndUseInput(Event e)
 {
     if (DetectInput(e))
     {
         DrawGUI.Use(e);
         return(true);
     }
     return(false);
 }
Esempio n. 10
0
 private bool OnMemberKeyboardInputBeingGiven(IDrawer keyboardInputReceiver, Event inputEvent, KeyConfigs keys)
 {
     if (inputEvent.keyCode == KeyCode.LeftArrow)
     {
         Select(ReasonSelectionChanged.SelectControlLeft);
         DrawGUI.Use(inputEvent);
         return(true);
     }
     return(false);
 }
        /// <summary>
        /// Called when the prefix label portion of the drawer are clicked. This happens
        /// when the OnClick gets called with the cursor residing over the prefix label portion of the drawer.
        /// </summary>
        /// <param name="inputEvent"> The event for the mouse input. </param>
        /// <returns> True if click event should be consumed. </returns>
        protected virtual void OnPrefixClicked(Event inputEvent)
        {
            HandleOnClickSelection(inputEvent, ReasonSelectionChanged.PrefixClicked);
            DrawGUI.Use(inputEvent);
            DrawGUI.EditingTextField = false;

            if (!ReadOnly && !InspectorUtility.ActiveManager.HasMultiSelectedControls)
            {
                FocusControlField();
            }
        }
Esempio n. 12
0
        /// <inheritdoc />
        public override bool Draw(Rect position)
        {
            GenerateControlId();

            if (Event.current.type == EventType.Layout)
            {
                OnLayoutEvent(position);
            }

            float previewSize = 17f;

            var buttonRect = position;

            buttonRect.x     += previewSize;
            buttonRect.width -= previewSize;
            if (GUI.Button(buttonRect, label, activeItem == this ? DrawGUI.prefixLabelWhite : DrawGUI.prefixLabel))
            {
                Debug.Log(GetType().Name + " - GUI.Button clicked");
                wasJustClicked = true;                 //why was this commented out? because it didn't work?
                DrawGUI.Use(Event.current);
            }

            var preview = item.Preview;

            if (preview != null)
            {
                var iconRect = buttonRect;
                iconRect.width  = previewSize;
                iconRect.height = previewSize;
                iconRect.x     -= previewSize;

                GUI.DrawTexture(iconRect, preview, ScaleMode.ScaleToFit);
            }

            if (item.IsGroup)
            {
                var arrowRect = buttonRect;
                arrowRect.x     += buttonRect.width - previewSize;
                arrowRect.y     += 2f;
                arrowRect.width  = 13f;
                arrowRect.height = 13f;

                GUI.Label(arrowRect, GUIContent.none, "AC RightArrow");
            }

            if (wasJustClicked)
            {
                wasJustClicked = false;
                GUI.changed    = true;
                return(true);
            }

            return(false);
        }
Esempio n. 13
0
 public bool DetectPreviousField(Event inputEvent, bool useEvent)
 {
     if (prevField.DetectInput(inputEvent))
     {
         if (useEvent)
         {
             DrawGUI.Use(inputEvent);
         }
         return(true);
     }
     return(false);
 }
Esempio n. 14
0
 public bool DetectNextField(Event inputEvent, bool useEvent)
 {
     if (nextField.DetectInput(inputEvent))
     {
         if (useEvent)
         {
             DrawGUI.Use(inputEvent);
         }
         return(true);
     }
     return(false);
 }
Esempio n. 15
0
 private void OnToggleSnapToGridIconClicked(IUnityObjectDrawer containingDrawer, Rect buttonRect, Event inputEvent)
 {
     DrawGUI.Use(inputEvent);
     if (inputEvent.control)
     {
         DrawGUI.ExecuteMenuItem("Edit/Snap Settings...");
     }
     else
     {
         SetSnapToGrid(!UsingSnapping);
     }
     GUI.changed = true;
 }
Esempio n. 16
0
 /// <inheritdoc/>
 protected override void OnCopyCommandGiven()
 {
     if (FilterString.Length > 0)
     {
                         #if DEV_MODE
         Debug.Log(inspector + "." + ToString() + ".Copy");
                         #endif
         GUI.changed = true;
         DrawGUI.Use(Event.current);
         Clipboard.Content = FilterString;
         Clipboard.SendCopyToClipboardMessage("Copied{0} Box content", "Search Box");
     }
 }
Esempio n. 17
0
        /// <inheritdoc/>
        protected override void OnPasteCommandGiven()
        {
            if (FilterString.Length > 0)
            {
                                #if DEV_MODE
                Debug.Log(inspector + "." + ToString() + ".Paste");
                                #endif

                GUI.changed = true;
                DrawGUI.Use(Event.current);
                SetFilter(Clipboard.Content);
            }
        }
Esempio n. 18
0
        /// <inheritdoc />
        public override bool OnClick(Event inputEvent)
        {
                        #if DEV_MODE && DEBUG_CLICK
            Debug.Log(ToString() + ".OnClick with mouseIsOverGetButton=" + mouseIsOverGetButton + ", mouseIsOverSetButton=" + mouseIsOverSetButton);
                        #endif

            if (mouseIsOverGetButton)
            {
                if (inputEvent.control)
                {
                    if (autoUpdate)
                    {
                        DisableAutoUpdate();
                    }
                    else
                    {
                        EnableAutoUpdate();
                    }
                }

                DrawGUI.Use(inputEvent);
                InvokeGet();
                GUI.changed         = true;
                firstButtonSelected = true;
                return(true);
            }

            if (mouseIsOverSetButton)
            {
                if (inputEvent.control)
                {
                    if (autoUpdate)
                    {
                        DisableAutoUpdate();
                    }
                    else
                    {
                        EnableAutoUpdate();
                    }
                }

                DrawGUI.Use(inputEvent);
                InvokeSet();
                GUI.changed         = true;
                firstButtonSelected = !showGetButton;
                return(true);
            }

            return(base.OnClick(inputEvent));
        }
Esempio n. 19
0
        /// <inheritdoc cref="IDrawer.OnKeyboardInputGiven" />
        public override bool OnKeyboardInputGiven(Event inputEvent, KeyConfigs keys)
        {
            if (inputEvent.type == EventType.KeyDown)            // && sideBarSelected)
            {
                switch (inputEvent.keyCode)
                {
                case KeyCode.Tab:
                    if (inputEvent.shift)
                    {
                        SetPreviousViewActive(true);
                        DrawGUI.Use(inputEvent);
                        return(true);
                    }
                    SetNextViewActive(true);
                    DrawGUI.Use(inputEvent);
                    return(true);

                case KeyCode.UpArrow:
                    SetPreviousViewActive(false);
                    DrawGUI.Use(inputEvent);
                    return(true);

                case KeyCode.DownArrow:
                    SetNextViewActive(false);
                    DrawGUI.Use(inputEvent);
                    return(true);

                case KeyCode.Home:
                    SetActiveView(0);
                    return(true);

                case KeyCode.End:
                    SetActiveView(headers.Length - 1);
                    return(true);

                case KeyCode.PageUp:
                    SetActiveView(activeHeaderIndex - 10);
                    return(true);

                case KeyCode.PageDown:
                    SetActiveView(activeHeaderIndex + 10);
                    return(true);

                case KeyCode.RightArrow:
                    SelectNextFieldDown(0);
                    return(true);
                }
            }
            return(base.OnKeyboardInputGiven(inputEvent, keys));
        }
Esempio n. 20
0
        /// <inheritdoc/>
        public override bool OnRightClick(Event inputEvent)
        {
            if (MouseOverPart == PrefixedControlPart.Control)
            {
                DrawGUI.Use(inputEvent);
                if (!ReadOnly)
                {
                    DisplayTargetSelectMenu();
                }
                return(true);
            }

            return(base.OnRightClick(inputEvent));
        }
Esempio n. 21
0
 private void OnToggleSnapToGridIconClicked(Event inputEvent)
 {
     DrawGUI.Use(inputEvent);
     if (inputEvent.control)
     {
         DrawGUI.ExecuteMenuItem("Edit/Snap Settings...");
     }
     else
     {
         SetSnapToGrid(!UsingSnapping);
     }
     GUI.changed = true;
     SelectHeaderPart((HeaderPart)TransformHeaderPart.ToggleSnapToGridButton);
 }
Esempio n. 22
0
        /// <inheritdoc/>
        public override bool OnClick(Event inputEvent)
        {
                        #if DEV_MODE
            Debug.Log(ToString() + ".OnClick with mouseIsOverButton=" + mouseIsOverButton);
                        #endif

            if (mouseIsOverButton)
            {
                DrawGUI.Use(inputEvent);
                Invoke();
                GUI.changed = true;
                ExitGUIUtility.ExitGUI();
                return(true);
            }

            return(base.OnClick(inputEvent));
        }
Esempio n. 23
0
        /// <inheritdoc/>
        protected override bool OnActivated(Event inputEvent, bool isClick)
        {
            DrawGUI.Use(inputEvent);

            if (!splittableDrawer.ViewIsSplit)
            {
                inspector.OnNextLayout(splittableDrawer.OpenSplitView);
            }
            else if (inspector == splittableDrawer.MainView)
            {
                inspector.OnNextLayout(splittableDrawer.CloseMainView);
            }
            else
            {
                inspector.OnNextLayout(splittableDrawer.CloseSplitView);
            }
            return(true);
        }
Esempio n. 24
0
        /// <inheritdoc/>
        public override bool OnKeyboardInputGiven(Event inputEvent, KeyConfigs keys)
        {
            if (DrawGUI.EditingTextField)
            {
                return(false);
            }

            switch (inputEvent.keyCode)
            {
            case KeyCode.Return:
            case KeyCode.KeypadEnter:
                GUI.changed = true;
                DrawGUI.Use(inputEvent);
                OnClick();
                return(true);
            }
            return(false);
        }
Esempio n. 25
0
        /// <inheritdoc/>
        public override bool OnClick(Event inputEvent)
        {
                        #if DEV_MODE
            Debug.Log(ToString() + ".OnClick with mouseIsOverButton=" + mouseIsOverButton);
                        #endif

            if (mouseIsOverButton)
            {
                HandleOnClickSelection(inputEvent, ReasonSelectionChanged.ControlClicked);
                DrawGUI.Use(inputEvent);
                GUI.changed = true;
                Invoke();
                ExitGUIUtility.ExitGUI();
                return(true);
            }

            return(base.OnClick(inputEvent));
        }
        /// <summary>
        /// Called when the control portion of the drawer are clicked. This happens
        /// when the OnClick gets called with the cursor residing over the control portion of the drawer.
        /// </summary>
        /// <param name="inputEvent"> The event for the mouse input. </param>
        /// <returns> True if click event should be consumed. </returns>
        protected virtual void OnControlClicked(Event inputEvent)
        {
                        #if DEV_MODE && DEBUG_ON_CLICK
            Debug.Log(StringUtils.ToColorizedString(ToString(), ".OnControlClicked(", inputEvent, ") with Selected=", Selected));
                        #endif

            HandleOnClickSelection(inputEvent, ReasonSelectionChanged.ControlClicked);

            if (!ReadOnly && !InspectorUtility.ActiveManager.HasMultiSelectedControls)
            {
                FocusControlField();
            }
            else
            {
                DrawGUI.Use(inputEvent);
                DrawGUI.EditingTextField = false;
            }
        }
Esempio n. 27
0
        /// <inheritdoc />
        public override bool OnClick(Event inputEvent)
        {
                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(!ReadOnly);
                        #endif

            if (onClicked != null)
            {
                DrawGUI.Use(inputEvent);
                parent.Select(ReasonSelectionChanged.ControlClicked);
                onClicked();
            }
            else
            {
                Debug.LogError(ToString() + " - onClick Action was null!");
            }
            return(true);
        }
Esempio n. 28
0
        /// <inheritdoc />
        public override bool OnKeyboardInputGiven(Event inputEvent, KeyConfigs keys)
        {
            if (DrawGUI.EditingTextField)
            {
                return(false);
            }

            switch (inputEvent.keyCode)
            {
            case KeyCode.RightArrow:
                if (showGetButton && showSetButton && firstButtonSelected)
                {
                    firstButtonSelected = false;
                    GUI.changed         = true;
                    return(true);
                }
                break;

            case KeyCode.LeftArrow:
                if (showGetButton && showSetButton && !firstButtonSelected)
                {
                    firstButtonSelected = true;
                    GUI.changed         = true;
                    return(true);
                }
                break;

            case KeyCode.Return:
            case KeyCode.KeypadEnter:
                GUI.changed = true;
                DrawGUI.Use(inputEvent);
                if (showGetButton && firstButtonSelected)
                {
                    InvokeGet();
                }
                else if (showSetButton && (!showGetButton || !firstButtonSelected))
                {
                    InvokeSet();
                }
                return(true);
            }

            return(base.OnKeyboardInputGiven(inputEvent, keys));
        }
        /// <inheritdoc cref="IDrawer.OnMiddleClick" />
        public override void OnMiddleClick(Event inputEvent)
        {
                        #if DEV_MODE && DEBUG_MIDDLE_CLICK
            Debug.Log(ToString() + ".OnMiddleClick(" + StringUtils.ToString(inputEvent) + ") with RightClickAreaMouseovered=" + StringUtils.ToColorizedString(RightClickAreaMouseovered) + ", Target=" + StringUtils.ToString(Target) + ", MonoScript=" + StringUtils.ToString(MonoScript));
                        #endif

            if (!RightClickAreaMouseovered)
            {
                return;
            }

            DrawGUI.Use(inputEvent);

            var target = Target;
            if (target != null)
            {
                DrawGUI.Active.PingObject(target);
            }
        }
        /// <inheritdoc/>
        public override bool OnDoubleClick(Event inputEvent)
        {
            if (mouseOverPart == PrefixedControlPart.Prefix && ResetOnDoubleClick())
            {
                                #if DEV_MODE
                Debug.LogWarning("Resetting field because it was double clicked: " + ToString() + "!");
                if (!DrawGUI.Active.DisplayDialog("Rest field", "Resetting field because it was double clicked.", "Ok", "Abort"))
                {
                    return(false);
                }
                                #endif

                Reset();

                DrawGUI.Use(inputEvent);
                return(true);
            }
            return(false);
        }