#nullable enable namespace T3.Editor.Gui.Interaction; /// /// UserAction represents single atomic commands that can be mapped to keyboard shortcuts /// This enum list order will be the same as displayed in the shortcut editor. /// internal enum UserActions { None, TapBeatSync, TapBeatSyncMeasure, // General Undo, Redo, Save, FocusSelection, DeleteSelection, CopyToClipboard, PasteFromClipboard, PasteValues, New, // Playback PlaybackForward, PlaybackForwardHalfSpeed, PlaybackBackwards, PlaybackNextFrame, PlaybackPreviousFrame, PlaybackStop, PlaybackToggle, PlaybackJumpBack, PlaybackJumpToNextKeyframe, PlaybackJumpToPreviousKeyframe, PlaybackJumpToEndTime, PlaybackJumpToStartTime, PlaybackScrubTime, // Timeline SetStartTime, SetEndTime, InsertKeyframe, InsertKeyframeWithIncrement, ToggleAnimationPinning, SplitSelectedOrHoveredClips, // Graph PinToOutputWindow, DisplayImageAsBackground, ClearBackgroundImage, Duplicate, DuplicateWithConnections, LayoutSelection, ToggleDisabled, ToggleBypassed, AddSection, AddComment, RenameChild, ToggleSnapshotControl, // Navigation ScrollLeft, ScrollRight, ScrollUp, ScrollDown, ZoomIn, ZoomOut, AlignSelectionLeft, NavigateBackwards, NavigateForward, SelectToAbove, SelectToRight, SelectToBelow, SelectToLeft, SearchGraph, OpenOperator, CloseOperator, //camera controls CameraLeft, CameraRight, CameraForward, CameraBackward, CameraUp, CameraDown, CameraReset, CameraFocusSelection, // Layout and window management ToggleAllUiElements, ToggleVariationsWindow, ToggleFullscreen, ToggleFocusMode, ToggleManualTestWindow, ToggleConsoleLogWindow, // Layouts (0-9) LoadLayout0, LoadLayout1, LoadLayout2, LoadLayout3, LoadLayout4, LoadLayout5, LoadLayout6, LoadLayout7, LoadLayout8, LoadLayout9, SaveLayout0, SaveLayout1, SaveLayout2, SaveLayout3, SaveLayout4, SaveLayout5, SaveLayout6, SaveLayout7, SaveLayout8, SaveLayout9, // Bookmarks (0-9) LoadBookmark0, LoadBookmark1, LoadBookmark2, LoadBookmark3, LoadBookmark4, LoadBookmark5, LoadBookmark6, LoadBookmark7, LoadBookmark8, LoadBookmark9, SaveBookmark0, SaveBookmark1, SaveBookmark2, SaveBookmark3, SaveBookmark4, SaveBookmark5, SaveBookmark6, SaveBookmark7, SaveBookmark8, SaveBookmark9, // Misc RenderScreenshot, RenderAnimation, // ReSharper disable once InconsistentNaming __Count, } internal static class UserActionRegistry { private static readonly HashSet _deferredActions = new(); public static bool WasActionQueued(UserActions action) { return _deferredActions.Remove(action); } public static void QueueAction(UserActions action) { _deferredActions.Add(action); } }