/// <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)); } }
/// <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); }
/// <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)); }
/// <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)); } }
/// <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(); } }
/// <inheritdoc /> protected override void OnPrefixClicked(Event inputEvent) { mouseDownOverSubPart = mouseoveredSubPart; HandleOnClickSelection(inputEvent, ReasonSelectionChanged.PrefixClicked); DrawGUI.EditingTextField = false; DrawGUI.Use(inputEvent); FocusSlider(); }
/// <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(); }
public bool DetectAndUseInput(Event e) { if (DetectInput(e)) { DrawGUI.Use(e); return(true); } return(false); }
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(); } }
/// <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); }
public bool DetectPreviousField(Event inputEvent, bool useEvent) { if (prevField.DetectInput(inputEvent)) { if (useEvent) { DrawGUI.Use(inputEvent); } return(true); } return(false); }
public bool DetectNextField(Event inputEvent, bool useEvent) { if (nextField.DetectInput(inputEvent)) { if (useEvent) { DrawGUI.Use(inputEvent); } return(true); } return(false); }
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; }
/// <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"); } }
/// <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); } }
/// <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)); }
/// <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)); }
/// <inheritdoc/> public override bool OnRightClick(Event inputEvent) { if (MouseOverPart == PrefixedControlPart.Control) { DrawGUI.Use(inputEvent); if (!ReadOnly) { DisplayTargetSelectMenu(); } return(true); } return(base.OnRightClick(inputEvent)); }
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); }
/// <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)); }
/// <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); }
/// <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); }
/// <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; } }
/// <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); }
/// <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); }