5 protected static const float FRAME_SIZE_MIN = 10;
6 protected static const float FRAME_DURATION_MIN = 0.15;
12 [
Attribute(
desc:
"Only entities of this state can be multi-selected, e.g., using selection frame or by pressing Ctrl+A.", uiwidget: UIWidgets.Flags, enums: ParamEnumArray.FromEnum(
EEditableEntityState))]
15 [
Attribute(
desc:
"When true, multi-selection operations are disabled (e.g., selection frame or Ctrl+A).", defvalue:
"1")]
16 protected bool m_bEnableMultiSelection;
18 [
Attribute(
desc:
"Name of a widget representing setting selection with mouse & keyboard.")]
19 protected string m_sSetSelectionWidgetName;
21 [
Attribute(
desc:
"Name of a widget representing toggling selection with mouse & keyboard.")]
22 protected string m_sToggleSelectionWidgetName;
24 [
Attribute(
desc:
"Name of a widget representing setting selection with gamepad.")]
25 protected string m_sGamepadSetSelectionWidgetName;
27 [
Attribute(
desc:
"Name of a widget representing toggling selection with gamepad.")]
28 protected string m_sGamepadToggleSelectionWidgetName;
30 [
Attribute(
"1",
desc:
"Initial size of multi-selection widget, measured as a coefficient of default cursor widget size (1 = same size).")]
31 protected float m_fGamepadSelectionWidgetStartSize;
34 protected float m_fGamepadSelectionDuration;
36 [
Attribute(
desc:
"Curve defining how will gamepad selection widget expand.", defvalue:
"0 0 1 1", uiwidget: UIWidgets.GraphDialog,
params:
"1 1 0 0")]
37 protected ref Curve m_GamepadSelectionCurve;
40 protected string m_sSfxStartDrawingSelectionFrame_Keyboard;
43 protected string m_sSfxStartDrawingSelectionFrame_Gamepad;
46 protected string m_sSfxSelectionFrameClose_NothingSelected;
49 protected string m_sSfxSelectionFrameClose_Cancel;
52 protected string m_sSfxSelectEntities;
55 protected string m_sSfxToggleEntities;
58 protected string m_sSfxToggleSingleEntity_On;
61 protected string m_sSfxToggleSingleEntity_Off;
64 protected string m_sSfxClearSelection;
66 protected Widget m_SetSelectionWidget;
67 protected Widget m_ToggleSelectionWidget;
68 protected Widget m_GamepadSetSelectionWidget;
69 protected Widget m_GamepadToggleSelectionWidget;
70 protected InputManager m_InputManager;
71 protected WorkspaceWidget m_Workspace;
85 protected vector m_vCursorPosClick;
86 protected float m_fSelectionFrameDuration;
87 protected bool m_bEnableSelection =
true;
88 protected bool m_bIsDrawingFrame;
89 protected bool m_bIsDrawingFrameIsToggle;
90 protected bool m_bIsDrawingFrameConfirmed;
91 protected bool m_bIsDrawingFrameCancelled;
92 protected bool m_bIsDrawingFrameDisabled;
93 protected bool m_bIsAnimatingFrame;
94 protected bool m_bHideCursor;
95 protected int m_iGamepadSelectionHeight;
96 protected BaseWorld m_World;
102 void DisableMultiSelection()
105 m_bIsDrawingFrameDisabled =
true;
113 protected void EditorToggleSelection(
float value = 1, EActionTrigger reason = EActionTrigger.DOWN)
115 if (IsInputDisabled())
118 set<SCR_EditableEntityComponent> focused =
new set<SCR_EditableEntityComponent>();
119 m_FocusedManager.GetEntities(focused);
122 if (focused.Count() > 1)
127 else if (!focused.IsEmpty())
129 set<SCR_EditableEntityComponent> selected =
new set<SCR_EditableEntityComponent>();
132 if (selected.Contains(focused[0]))
143 protected void EditorSetSelection(
float value = 1, EActionTrigger reason = EActionTrigger.DOWN)
145 if (IsInputDisabled())
148 set<SCR_EditableEntityComponent> focused =
new set<SCR_EditableEntityComponent>();
149 m_FocusedManager.GetEntities(focused);
152 if (!focused.IsEmpty())
164 protected void EditorAddSelection(
float value = 1, EActionTrigger reason = EActionTrigger.DOWN)
166 if (IsInputDisabled())
169 set<SCR_EditableEntityComponent> focused =
new set<SCR_EditableEntityComponent>();
170 m_FocusedManager.GetEntities(focused);
173 if (!focused.IsEmpty())
180 protected void EditorClearSelection(
float value = 1, EActionTrigger reason = EActionTrigger.DOWN)
193 protected void EditorSelectAll(
float value = 1, EActionTrigger reason = EActionTrigger.DOWN)
198 set<SCR_EditableEntityComponent> entities =
new set<SCR_EditableEntityComponent>();
199 m_UnselectedManager.GetEntities(entities);
200 if (entities.IsEmpty())
206 set<SCR_EditableEntityComponent> selectEntities =
new set<SCR_EditableEntityComponent>();
209 if (!
SCR_Enum.HasPartialFlag(entity.GetEntityStates(), m_MultiSelectStates))
213 if (!entity.GetPos(posWorld))
217 if (posScreen[2] > 0 && posScreen[0] > 0 && posScreen[0] < screenW && posScreen[1] > 0 && posScreen[1] < screenH)
218 selectEntities.Insert(entity);
223 if (!selectEntities.IsEmpty())
230 protected void EditorDrawSetSelectionDown(
float value, EActionTrigger reason)
232 DrawFrameDown(
false);
236 protected void EditorDrawSetSelectionPressed(
float value, EActionTrigger reason)
238 DrawFramePressed(
false);
242 protected void EditorDrawSetSelectionUp(
float value, EActionTrigger reason)
248 protected void EditorDrawToggleSelectionDown(
float value, EActionTrigger reason)
254 protected void EditorDrawToggleSelectionPressed(
float value, EActionTrigger reason)
256 DrawFramePressed(
true);
260 protected void EditorDrawToggleSelectionUp(
float value, EActionTrigger reason)
266 protected void EditorDrawSelectionCancel(
float value, EActionTrigger reason)
276 protected void DrawFrameDown(
bool isToggle)
281 m_bIsDrawingFrameCancelled =
true;
285 m_bIsAnimatingFrame =
true;
286 m_bIsDrawingFrameIsToggle = isToggle;
287 m_bIsDrawingFrameConfirmed =
false;
288 m_bIsDrawingFrameCancelled =
false;
289 m_fSelectionFrameDuration = 0;
290 if (m_vCursorPosClick == vector.Zero)
295 protected void DrawFrameUp(
bool isToggle)
297 if (!m_bIsDrawingFrame || IsMapOpened())
303 if (isToggle != m_bIsDrawingFrameIsToggle)
306 m_bIsDrawingFrameConfirmed =
true;
307 GetGame().GetCallqueue().Call(ConfirmFrame, isToggle);
311 protected void DrawFramePressed(
bool isToggle)
319 m_bIsDrawingFrameCancelled =
true;
320 if (m_bIsDrawingFrame)
326 if (m_bIsDrawingFrameCancelled)
330 set<SCR_EditableEntityComponent> entitiesInside =
new set<SCR_EditableEntityComponent>();
331 set<SCR_EditableEntityComponent> entities =
new set<SCR_EditableEntityComponent>();
332 m_UnselectedManager.GetEntities(entities);
337 if (!DrawFrameMouseAndKeyboard(entities, entitiesInside))
341 if (!m_bIsDrawingFrame)
346 if (!DrawFrameController(entities, entitiesInside))
349 if (!m_bIsDrawingFrame)
355 DrawFrameUp(isToggle);
359 if (!m_bIsDrawingFrame && m_EditorMenuManager)
360 m_EditorMenuManager.SetVisible(
true);
362 m_bIsDrawingFrame =
true;
365 if (entitiesInside.Count() == m_FocusedManager.GetEntitiesCount())
368 m_FocusedManager.Replace(entitiesInside);
372 protected bool DrawFrameMouseAndKeyboard(set<SCR_EditableEntityComponent> entities, out set<SCR_EditableEntityComponent> entitiesInside)
376 if (!m_bIsDrawingFrame && vector.Distance(m_vCursorPosClick, cursorPos) < FRAME_SIZE_MIN)
381 float xMin = m_vCursorPosClick[0];
382 float yMin = m_vCursorPosClick[1];
383 float xMax = cursorPos[0];
384 float yMax = cursorPos[1];
388 xMax = m_vCursorPosClick[0];
394 yMax = m_vCursorPosClick[1];
397 if (m_bIsDrawingFrameIsToggle)
399 FrameSlot.SetPos(m_ToggleSelectionWidget, xMin, yMin);
400 FrameSlot.SetSize(m_ToggleSelectionWidget, xMax - xMin, yMax - yMin);
401 if (m_SetSelectionWidget)
402 m_SetSelectionWidget.SetVisible(
false);
404 if (m_ToggleSelectionWidget)
405 m_ToggleSelectionWidget.SetVisible(
true);
409 FrameSlot.SetPos(m_SetSelectionWidget, xMin, yMin);
410 FrameSlot.SetSize(m_SetSelectionWidget, xMax - xMin, yMax - yMin);
411 if (m_ToggleSelectionWidget)
412 m_ToggleSelectionWidget.SetVisible(
false);
414 if (m_SetSelectionWidget)
415 m_SetSelectionWidget.SetVisible(
true);
419 vector worldPos, screenPos;
422 if (!
SCR_Enum.HasPartialFlag(entity.GetEntityStates(), m_MultiSelectStates))
425 if (!entity.GetPos(worldPos))
429 if (screenPos[2] > 0 && screenPos[0] > xMin && screenPos[0] < xMax && screenPos[1] > yMin && screenPos[1] < yMax)
435 entitiesInside.Insert(entity);
443 protected bool DrawFrameController(set<SCR_EditableEntityComponent> entities, out set<SCR_EditableEntityComponent> entitiesInside)
446 if (!m_bIsDrawingFrame && m_fSelectionFrameDuration < FRAME_DURATION_MIN)
451 float curveCoef = Math3D.Curve(ECurveType.CurveProperty2D, (m_fSelectionFrameDuration - FRAME_DURATION_MIN) / m_fGamepadSelectionDuration, m_GamepadSelectionCurve)[1];
453 Widget widgetShow = m_GamepadSetSelectionWidget;
454 Widget widgetHide = m_GamepadToggleSelectionWidget;
455 if (m_bIsDrawingFrameIsToggle)
457 widgetShow = m_GamepadToggleSelectionWidget;
458 widgetHide = m_GamepadSetSelectionWidget;
462 widgetHide.SetVisible(
false);
466 float cursorRadius = 0;
468 cursorRadius = 2 *
m_CursorComponent.GetCursorRadius() * m_fGamepadSelectionWidgetStartSize;
470 size = cursorRadius + (m_iGamepadSelectionHeight - cursorRadius) * curveCoef;
471 FrameSlot.SetPos(widgetShow, cursorPos[0], cursorPos[1]);
472 FrameSlot.SetSize(widgetShow, size, size);
473 widgetShow.SetVisible(
true);
474 widgetShow.SetOpacity(1);
484 m_bHideCursor =
true;
491 if (!
SCR_Enum.HasPartialFlag(entity.GetEntityStates(), m_MultiSelectStates))
495 if (!entity.GetPos(worldPos))
499 if (screenPos[2] > 0 && vector.DistanceSq(cursorPos, screenPos) < size)
505 entitiesInside.Insert(entity);
513 protected void ConfirmFrame(
bool isToggle)
515 if (!m_bIsDrawingFrameConfirmed)
518 m_bIsDrawingFrame =
false;
519 if (m_bIsDrawingFrameIsToggle)
521 EditorToggleSelection();
525 EditorSetSelection();
527 set<SCR_EditableEntityComponent> selected =
new set<SCR_EditableEntityComponent>();
541 m_bIsDrawingFrameCancelled =
false;
545 protected void CancelFrame()
547 if (m_bIsDrawingFrame)
552 m_bIsDrawingFrameCancelled =
true;
558 protected void ResetFrame()
560 m_bIsDrawingFrameDisabled =
false;
561 m_fSelectionFrameDuration = 0;
562 m_vCursorPosClick = vector.Zero;
563 m_bIsDrawingFrame =
false;
564 m_bHideCursor =
false;
573 if (m_SetSelectionWidget)
574 m_SetSelectionWidget.SetVisible(
false);
576 if (m_ToggleSelectionWidget)
577 m_ToggleSelectionWidget.SetVisible(
false);
590 EnableSelection(
false);
593 GetGame().GetCallqueue().CallLater(EnableSelection, 100,
false,
true);
598 protected void EnableSelection(
bool enable)
600 m_bEnableSelection = enable;
604 protected bool IsMapOpened()
610 protected void OnMenuUpdate(
float tDelta)
621 if (m_bIsAnimatingFrame)
624 m_fSelectionFrameDuration += tDelta;
627 if (!m_bIsDrawingFrame && (m_bIsDrawingFrameConfirmed || m_bIsDrawingFrameCancelled))
630 if (m_bIsDrawingFrameIsToggle)
631 frameWidget = m_GamepadToggleSelectionWidget;
633 frameWidget = m_GamepadSetSelectionWidget;
637 float opacity = Math.Lerp(frameWidget.GetOpacity(), 0, 32 * tDelta);
641 m_bIsAnimatingFrame =
false;
643 frameWidget.SetOpacity(opacity);
650 protected void OnMenuFocusLost()
656 protected Widget GetFrameWidget(Widget root,
string name)
658 Widget widget = root.FindWidget(name);
659 if (widget && !name.IsEmpty())
661 widget.SetVisible(
false);
666 Print(
string.Format(
"Selection frame widget '%1' not found!", name), LogLevel.ERROR);
676 protected void EditorSaveSelection(
int index)
680 protected void EditorSaveSelection1() { EditorSaveSelection(1); }
681 protected void EditorSaveSelection2() { EditorSaveSelection(2); }
682 protected void EditorSaveSelection3() { EditorSaveSelection(3); }
683 protected void EditorSaveSelection4() { EditorSaveSelection(4); }
684 protected void EditorSaveSelection5() { EditorSaveSelection(5); }
685 protected void EditorSaveSelection6() { EditorSaveSelection(6); }
686 protected void EditorSaveSelection7() { EditorSaveSelection(7); }
687 protected void EditorSaveSelection8() { EditorSaveSelection(8); }
688 protected void EditorSaveSelection9() { EditorSaveSelection(9); }
689 protected void EditorSaveSelection0() { EditorSaveSelection(0); }
692 protected void EditorLoadSelection(
int index)
696 protected void EditorLoadSelection1() { EditorLoadSelection(1); }
697 protected void EditorLoadSelection2() { EditorLoadSelection(2); }
698 protected void EditorLoadSelection3() { EditorLoadSelection(3); }
699 protected void EditorLoadSelection4() { EditorLoadSelection(4); }
700 protected void EditorLoadSelection5() { EditorLoadSelection(5); }
701 protected void EditorLoadSelection6() { EditorLoadSelection(6); }
702 protected void EditorLoadSelection7() { EditorLoadSelection(7); }
703 protected void EditorLoadSelection8() { EditorLoadSelection(8); }
704 protected void EditorLoadSelection9() { EditorLoadSelection(9); }
705 protected void EditorLoadSelection0() { EditorLoadSelection(0); }
708 protected void EditorTeleportSelection(
int index)
712 protected void EditorTeleportSelection1() { EditorTeleportSelection(1); }
713 protected void EditorTeleportSelection2() { EditorTeleportSelection(2); }
714 protected void EditorTeleportSelection3() { EditorTeleportSelection(3); }
715 protected void EditorTeleportSelection4() { EditorTeleportSelection(4); }
716 protected void EditorTeleportSelection5() { EditorTeleportSelection(5); }
717 protected void EditorTeleportSelection6() { EditorTeleportSelection(6); }
718 protected void EditorTeleportSelection7() { EditorTeleportSelection(7); }
719 protected void EditorTeleportSelection8() { EditorTeleportSelection(8); }
720 protected void EditorTeleportSelection9() { EditorTeleportSelection(9); }
721 protected void EditorTeleportSelection0() { EditorTeleportSelection(0); }
728 protected bool IsInputDisabled()
730 return m_bIsDrawingFrame
734 || !m_bEnableSelection
740 protected void ShowGUI()
742 if (m_EditorMenuManager)
743 m_EditorMenuManager.SetVisible(
true);
751 override void HandlerAttachedScripted(Widget w)
753 super.HandlerAttachedScripted(w);
757 ArmaReforgerScripted game =
GetGame();
771 m_SetSelectionWidget = GetFrameWidget(w, m_sSetSelectionWidgetName);
772 m_ToggleSelectionWidget = GetFrameWidget(w, m_sToggleSelectionWidgetName);
773 m_GamepadSetSelectionWidget = GetFrameWidget(w, m_sGamepadSetSelectionWidgetName);
774 m_GamepadToggleSelectionWidget = GetFrameWidget(w, m_sGamepadToggleSelectionWidgetName);
776 if (m_GamepadSetSelectionWidget)
777 m_iGamepadSelectionHeight = FrameSlot.GetSizeY(m_GamepadSetSelectionWidget);
795 m_LayersManager.GetOnCurrentLayerChange().Insert(OnCurrentLayerChange);
799 if (!m_EntitiesManager)
802 m_UnselectedManager = m_EntitiesManager.GetFilter(m_UnselectedState);
809 m_InputManager.AddActionListener(
"EditorSetSelection", EActionTrigger.DOWN, EditorSetSelection);
810 m_InputManager.AddActionListener(
"EditorToggleSelection", EActionTrigger.DOWN, EditorToggleSelection);
811 m_InputManager.AddActionListener(
"EditorClearSelection", EActionTrigger.DOWN, EditorClearSelection);
812 m_InputManager.AddActionListener(
"EditorSelectAll", EActionTrigger.DOWN, EditorSelectAll);
813 if (m_bEnableMultiSelection)
815 m_InputManager.AddActionListener(
"EditorDrawSetSelection", EActionTrigger.DOWN, EditorDrawSetSelectionDown);
816 m_InputManager.AddActionListener(
"EditorDrawSetSelection", EActionTrigger.PRESSED, EditorDrawSetSelectionPressed);
817 m_InputManager.AddActionListener(
"EditorDrawSetSelection", EActionTrigger.UP, EditorDrawSetSelectionUp);
819 m_InputManager.AddActionListener(
"EditorDrawToggleSelection", EActionTrigger.DOWN, EditorDrawToggleSelectionDown);
820 m_InputManager.AddActionListener(
"EditorDrawToggleSelection", EActionTrigger.PRESSED, EditorDrawToggleSelectionPressed);
821 m_InputManager.AddActionListener(
"EditorDrawToggleSelection", EActionTrigger.UP, EditorDrawToggleSelectionUp);
823 m_InputManager.AddActionListener(
"EditorDrawSelectionCancel", EActionTrigger.DOWN, EditorDrawSelectionCancel);
826 m_InputManager.AddActionListener(
"EditorSaveSelection1", EActionTrigger.DOWN, EditorSaveSelection1);
827 m_InputManager.AddActionListener(
"EditorSaveSelection2", EActionTrigger.DOWN, EditorSaveSelection2);
828 m_InputManager.AddActionListener(
"EditorSaveSelection3", EActionTrigger.DOWN, EditorSaveSelection3);
829 m_InputManager.AddActionListener(
"EditorSaveSelection4", EActionTrigger.DOWN, EditorSaveSelection4);
830 m_InputManager.AddActionListener(
"EditorSaveSelection5", EActionTrigger.DOWN, EditorSaveSelection5);
831 m_InputManager.AddActionListener(
"EditorSaveSelection6", EActionTrigger.DOWN, EditorSaveSelection6);
832 m_InputManager.AddActionListener(
"EditorSaveSelection7", EActionTrigger.DOWN, EditorSaveSelection7);
833 m_InputManager.AddActionListener(
"EditorSaveSelection8", EActionTrigger.DOWN, EditorSaveSelection8);
834 m_InputManager.AddActionListener(
"EditorSaveSelection9", EActionTrigger.DOWN, EditorSaveSelection9);
835 m_InputManager.AddActionListener(
"EditorSaveSelection0", EActionTrigger.DOWN, EditorSaveSelection0);
837 m_InputManager.AddActionListener(
"EditorLoadSelection1", EActionTrigger.DOWN, EditorLoadSelection1);
838 m_InputManager.AddActionListener(
"EditorLoadSelection2", EActionTrigger.DOWN, EditorLoadSelection2);
839 m_InputManager.AddActionListener(
"EditorLoadSelection3", EActionTrigger.DOWN, EditorLoadSelection3);
840 m_InputManager.AddActionListener(
"EditorLoadSelection4", EActionTrigger.DOWN, EditorLoadSelection4);
841 m_InputManager.AddActionListener(
"EditorLoadSelection5", EActionTrigger.DOWN, EditorLoadSelection5);
842 m_InputManager.AddActionListener(
"EditorLoadSelection6", EActionTrigger.DOWN, EditorLoadSelection6);
843 m_InputManager.AddActionListener(
"EditorLoadSelection7", EActionTrigger.DOWN, EditorLoadSelection7);
844 m_InputManager.AddActionListener(
"EditorLoadSelection8", EActionTrigger.DOWN, EditorLoadSelection8);
845 m_InputManager.AddActionListener(
"EditorLoadSelection9", EActionTrigger.DOWN, EditorLoadSelection9);
846 m_InputManager.AddActionListener(
"EditorLoadSelection0", EActionTrigger.DOWN, EditorLoadSelection0);
848 m_InputManager.AddActionListener(
"EditorTeleportSelection1", EActionTrigger.DOWN, EditorTeleportSelection1);
849 m_InputManager.AddActionListener(
"EditorTeleportSelection2", EActionTrigger.DOWN, EditorTeleportSelection2);
850 m_InputManager.AddActionListener(
"EditorTeleportSelection3", EActionTrigger.DOWN, EditorTeleportSelection3);
851 m_InputManager.AddActionListener(
"EditorTeleportSelection4", EActionTrigger.DOWN, EditorTeleportSelection4);
852 m_InputManager.AddActionListener(
"EditorTeleportSelection5", EActionTrigger.DOWN, EditorTeleportSelection5);
853 m_InputManager.AddActionListener(
"EditorTeleportSelection6", EActionTrigger.DOWN, EditorTeleportSelection6);
854 m_InputManager.AddActionListener(
"EditorTeleportSelection7", EActionTrigger.DOWN, EditorTeleportSelection7);
855 m_InputManager.AddActionListener(
"EditorTeleportSelection8", EActionTrigger.DOWN, EditorTeleportSelection8);
856 m_InputManager.AddActionListener(
"EditorTeleportSelection9", EActionTrigger.DOWN, EditorTeleportSelection9);
857 m_InputManager.AddActionListener(
"EditorTeleportSelection0", EActionTrigger.DOWN, EditorTeleportSelection0);
860 menu.GetOnMenuUpdate().Insert(OnMenuUpdate);
861 menu.GetOnMenuFocusLost().Insert(OnMenuFocusLost);
865 override void HandlerDeattached(Widget w)
867 super.HandlerDeattached(w);
872 menu.GetOnMenuUpdate().Remove(OnMenuUpdate);
873 menu.GetOnMenuFocusLost().Remove(OnMenuFocusLost);
877 m_LayersManager.GetOnCurrentLayerChange().Remove(OnCurrentLayerChange);
881 m_InputManager.RemoveActionListener(
"EditorSetSelection", EActionTrigger.DOWN, EditorSetSelection);
882 m_InputManager.RemoveActionListener(
"EditorToggleSelection", EActionTrigger.DOWN, EditorToggleSelection);
883 m_InputManager.RemoveActionListener(
"EditorClearSelection", EActionTrigger.DOWN, EditorClearSelection);
884 m_InputManager.RemoveActionListener(
"EditorSelectAll", EActionTrigger.DOWN, EditorSelectAll);
885 if (m_bEnableMultiSelection)
887 m_InputManager.RemoveActionListener(
"EditorDrawSetSelection", EActionTrigger.DOWN, EditorDrawSetSelectionDown);
888 m_InputManager.RemoveActionListener(
"EditorDrawSetSelection", EActionTrigger.PRESSED, EditorDrawSetSelectionPressed);
889 m_InputManager.RemoveActionListener(
"EditorDrawSetSelection", EActionTrigger.UP, EditorDrawSetSelectionUp);
891 m_InputManager.RemoveActionListener(
"EditorDrawToggleSelection", EActionTrigger.DOWN, EditorDrawToggleSelectionDown);
892 m_InputManager.RemoveActionListener(
"EditorDrawToggleSelection", EActionTrigger.PRESSED, EditorDrawToggleSelectionPressed);
893 m_InputManager.RemoveActionListener(
"EditorDrawToggleSelection", EActionTrigger.UP, EditorDrawToggleSelectionUp);
895 m_InputManager.RemoveActionListener(
"EditorDrawSelectionCancel", EActionTrigger.DOWN, EditorDrawSelectionCancel);