2019-01-24 16:43:03 +08:00
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
2018-04-13 17:19:50 +08:00
using System.Collections.Generic ;
using System.Linq ;
using osu.Framework.Graphics ;
using osu.Framework.Input ;
using osu.Framework.Input.Bindings ;
2021-09-16 16:02:04 +08:00
using osu.Framework.Localisation ;
using osu.Game.Localisation ;
2018-04-13 17:19:50 +08:00
namespace osu.Game.Input.Bindings
{
2019-08-27 17:42:49 +08:00
public class GlobalActionContainer : DatabasedKeyBindingContainer < GlobalAction > , IHandleGlobalKeyboardInput
2018-04-13 17:19:50 +08:00
{
private readonly Drawable handler ;
2021-04-08 14:17:53 +08:00
private InputManager parentInputManager ;
2018-04-13 17:19:50 +08:00
public GlobalActionContainer ( OsuGameBase game )
2020-03-02 17:54:00 +08:00
: base ( matchingMode : KeyCombinationMatchingMode . Modifiers )
2018-04-13 17:19:50 +08:00
{
if ( game is IKeyBindingHandler < GlobalAction > )
handler = game ;
}
2021-04-08 14:17:53 +08:00
protected override void LoadComplete ( )
{
base . LoadComplete ( ) ;
parentInputManager = GetContainingInputManager ( ) ;
}
2021-04-07 16:13:25 +08:00
public override IEnumerable < IKeyBinding > DefaultKeyBindings = > GlobalKeyBindings
2021-04-07 16:41:05 +08:00
. Concat ( EditorKeyBindings )
2021-04-07 16:13:25 +08:00
. Concat ( InGameKeyBindings )
. Concat ( SongSelectKeyBindings )
2021-04-07 16:41:05 +08:00
. Concat ( AudioControlKeyBindings ) ;
2018-04-13 17:19:50 +08:00
public IEnumerable < KeyBinding > GlobalKeyBindings = > new [ ]
{
2020-01-12 03:43:51 +08:00
new KeyBinding ( InputKey . F6 , GlobalAction . ToggleNowPlaying ) ,
2018-04-13 17:19:50 +08:00
new KeyBinding ( InputKey . F8 , GlobalAction . ToggleChat ) ,
new KeyBinding ( InputKey . F9 , GlobalAction . ToggleSocial ) ,
2018-05-02 18:42:03 +08:00
new KeyBinding ( InputKey . F10 , GlobalAction . ToggleGameplayMouseButtons ) ,
2018-05-15 01:27:05 +08:00
new KeyBinding ( InputKey . F12 , GlobalAction . TakeScreenshot ) ,
2018-04-13 17:19:50 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Alt , InputKey . R } , GlobalAction . ResetInputSettings ) ,
new KeyBinding ( new [ ] { InputKey . Control , InputKey . T } , GlobalAction . ToggleToolbar ) ,
new KeyBinding ( new [ ] { InputKey . Control , InputKey . O } , GlobalAction . ToggleSettings ) ,
2021-01-06 22:12:56 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . D } , GlobalAction . ToggleBeatmapListing ) ,
2020-07-11 03:05:23 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . N } , GlobalAction . ToggleNotifications ) ,
2021-05-13 12:34:03 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Shift , InputKey . S } , GlobalAction . ToggleSkinEditor ) ,
2018-05-15 01:27:05 +08:00
new KeyBinding ( InputKey . Escape , GlobalAction . Back ) ,
2019-07-11 21:21:37 +08:00
new KeyBinding ( InputKey . ExtraMouseButton1 , GlobalAction . Back ) ,
2018-07-03 17:37:21 +08:00
2020-06-15 02:22:38 +08:00
new KeyBinding ( new [ ] { InputKey . Alt , InputKey . Home } , GlobalAction . Home ) ,
2020-03-02 17:55:28 +08:00
new KeyBinding ( InputKey . Up , GlobalAction . SelectPrevious ) ,
new KeyBinding ( InputKey . Down , GlobalAction . SelectNext ) ,
2018-07-03 17:37:21 +08:00
new KeyBinding ( InputKey . Space , GlobalAction . Select ) ,
new KeyBinding ( InputKey . Enter , GlobalAction . Select ) ,
2018-11-14 01:09:28 +08:00
new KeyBinding ( InputKey . KeypadEnter , GlobalAction . Select ) ,
2020-11-11 12:05:03 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Shift , InputKey . R } , GlobalAction . RandomSkin ) ,
2018-04-13 17:19:50 +08:00
} ;
2020-09-22 14:55:25 +08:00
public IEnumerable < KeyBinding > EditorKeyBindings = > new [ ]
{
new KeyBinding ( new [ ] { InputKey . F1 } , GlobalAction . EditorComposeMode ) ,
new KeyBinding ( new [ ] { InputKey . F2 } , GlobalAction . EditorDesignMode ) ,
new KeyBinding ( new [ ] { InputKey . F3 } , GlobalAction . EditorTimingMode ) ,
new KeyBinding ( new [ ] { InputKey . F4 } , GlobalAction . EditorSetupMode ) ,
2021-04-12 15:15:27 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Shift , InputKey . A } , GlobalAction . EditorVerifyMode ) ,
2021-04-22 17:47:04 +08:00
new KeyBinding ( new [ ] { InputKey . J } , GlobalAction . EditorNudgeLeft ) ,
new KeyBinding ( new [ ] { InputKey . K } , GlobalAction . EditorNudgeRight ) ,
2021-09-20 15:43:15 +08:00
new KeyBinding ( new [ ] { InputKey . G } , GlobalAction . EditorCycleGridDisplayMode ) ,
2020-09-22 14:55:25 +08:00
} ;
2018-04-13 17:19:50 +08:00
public IEnumerable < KeyBinding > InGameKeyBindings = > new [ ]
{
new KeyBinding ( InputKey . Space , GlobalAction . SkipCutscene ) ,
2020-08-18 14:21:44 +08:00
new KeyBinding ( InputKey . ExtraMouseButton2 , GlobalAction . SkipCutscene ) ,
2018-05-31 11:06:50 +08:00
new KeyBinding ( InputKey . Tilde , GlobalAction . QuickRetry ) ,
2019-06-24 17:19:17 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Tilde } , GlobalAction . QuickExit ) ,
2021-10-29 10:13:06 +08:00
new KeyBinding ( new [ ] { InputKey . F3 } , GlobalAction . DecreaseScrollSpeed ) ,
new KeyBinding ( new [ ] { InputKey . F4 } , GlobalAction . IncreaseScrollSpeed ) ,
2020-12-01 10:38:16 +08:00
new KeyBinding ( new [ ] { InputKey . Shift , InputKey . Tab } , GlobalAction . ToggleInGameInterface ) ,
2020-07-12 22:03:03 +08:00
new KeyBinding ( InputKey . MouseMiddle , GlobalAction . PauseGameplay ) ,
2020-11-26 19:04:44 +08:00
new KeyBinding ( InputKey . Space , GlobalAction . TogglePauseReplay ) ,
2021-07-09 13:28:57 +08:00
new KeyBinding ( InputKey . Left , GlobalAction . SeekReplayBackward ) ,
new KeyBinding ( InputKey . Right , GlobalAction . SeekReplayForward ) ,
2020-10-30 13:19:40 +08:00
new KeyBinding ( InputKey . Control , GlobalAction . HoldForHUD ) ,
2021-08-19 13:19:59 +08:00
new KeyBinding ( InputKey . Tab , GlobalAction . ToggleChatFocus ) ,
2018-04-13 17:19:50 +08:00
} ;
2020-06-03 13:55:15 +08:00
public IEnumerable < KeyBinding > SongSelectKeyBindings = > new [ ]
{
2020-06-03 14:13:02 +08:00
new KeyBinding ( InputKey . F1 , GlobalAction . ToggleModSelection ) ,
new KeyBinding ( InputKey . F2 , GlobalAction . SelectNextRandom ) ,
new KeyBinding ( new [ ] { InputKey . Shift , InputKey . F2 } , GlobalAction . SelectPreviousRandom ) ,
new KeyBinding ( InputKey . F3 , GlobalAction . ToggleBeatmapOptions )
2020-06-03 13:55:15 +08:00
} ;
2019-08-13 11:40:20 +08:00
public IEnumerable < KeyBinding > AudioControlKeyBindings = > new [ ]
{
2020-03-02 17:59:05 +08:00
new KeyBinding ( new [ ] { InputKey . Alt , InputKey . Up } , GlobalAction . IncreaseVolume ) ,
new KeyBinding ( new [ ] { InputKey . Alt , InputKey . Down } , GlobalAction . DecreaseVolume ) ,
2021-07-04 20:47:07 +08:00
new KeyBinding ( new [ ] { InputKey . Alt , InputKey . Left } , GlobalAction . PreviousVolumeMeter ) ,
new KeyBinding ( new [ ] { InputKey . Alt , InputKey . Right } , GlobalAction . NextVolumeMeter ) ,
2020-09-23 11:31:50 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . F4 } , GlobalAction . ToggleMute ) ,
2019-08-13 11:40:20 +08:00
new KeyBinding ( InputKey . TrackPrevious , GlobalAction . MusicPrev ) ,
new KeyBinding ( InputKey . F1 , GlobalAction . MusicPrev ) ,
new KeyBinding ( InputKey . TrackNext , GlobalAction . MusicNext ) ,
new KeyBinding ( InputKey . F5 , GlobalAction . MusicNext ) ,
new KeyBinding ( InputKey . PlayPause , GlobalAction . MusicPlay ) ,
new KeyBinding ( InputKey . F3 , GlobalAction . MusicPlay )
} ;
2021-04-05 21:30:51 +08:00
protected override IEnumerable < Drawable > KeyBindingInputQueue
{
get
{
2021-04-08 14:17:53 +08:00
// To ensure the global actions are handled with priority, this GlobalActionContainer is actually placed after game content.
// It does not contain children as expected, so we need to forward the NonPositionalInputQueue from the parent input manager to correctly
// allow the whole game to handle these actions.
// An eventual solution to this hack is to create localised action containers for individual components like SongSelect, but this will take some rearranging.
var inputQueue = parentInputManager ? . NonPositionalInputQueue ? ? base . KeyBindingInputQueue ;
2021-03-30 18:03:15 +08:00
2021-04-05 21:30:51 +08:00
return handler ! = null ? inputQueue . Prepend ( handler ) : inputQueue ;
}
}
2018-04-13 17:19:50 +08:00
}
public enum GlobalAction
{
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleChat))]
2018-04-13 17:19:50 +08:00
ToggleChat ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleSocial))]
2018-04-13 17:19:50 +08:00
ToggleSocial ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ResetInputSettings))]
2018-04-13 17:19:50 +08:00
ResetInputSettings ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleToolbar))]
2018-04-13 17:19:50 +08:00
ToggleToolbar ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleSettings))]
2018-04-13 17:19:50 +08:00
ToggleSettings ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleBeatmapListing))]
2021-01-06 22:12:56 +08:00
ToggleBeatmapListing ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.IncreaseVolume))]
2018-04-13 17:19:50 +08:00
IncreaseVolume ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.DecreaseVolume))]
2018-04-13 17:19:50 +08:00
DecreaseVolume ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleMute))]
2018-04-13 17:19:50 +08:00
ToggleMute ,
// In-Game Keybindings
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SkipCutscene))]
2018-04-13 17:19:50 +08:00
SkipCutscene ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.QuickRetry))]
2018-04-13 17:19:50 +08:00
QuickRetry ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.TakeScreenshot))]
2018-05-15 01:27:05 +08:00
TakeScreenshot ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleGameplayMouseButtons))]
2018-05-02 18:42:03 +08:00
ToggleGameplayMouseButtons ,
2018-05-15 01:27:05 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.Back))]
2018-05-31 11:06:50 +08:00
Back ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.IncreaseScrollSpeed))]
2018-05-31 11:06:50 +08:00
IncreaseScrollSpeed ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.DecreaseScrollSpeed))]
2018-05-31 11:06:50 +08:00
DecreaseScrollSpeed ,
2018-07-03 17:37:21 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.Select))]
2018-07-03 17:37:21 +08:00
Select ,
2019-06-25 16:16:19 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.QuickExit))]
2019-06-25 16:16:19 +08:00
QuickExit ,
2019-08-12 01:14:49 +08:00
2020-09-22 14:55:25 +08:00
// Game-wide beatmap music controller keybindings
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.MusicNext))]
2019-08-12 01:14:49 +08:00
MusicNext ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.MusicPrev))]
2019-08-12 01:14:49 +08:00
MusicPrev ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.MusicPlay))]
2019-08-12 01:14:49 +08:00
MusicPlay ,
2020-01-12 03:43:51 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleNowPlaying))]
2020-01-12 03:43:51 +08:00
ToggleNowPlaying ,
2020-03-02 17:55:28 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SelectPrevious))]
2020-03-02 17:55:28 +08:00
SelectPrevious ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SelectNext))]
2020-03-02 17:55:28 +08:00
SelectNext ,
2020-06-15 02:22:38 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.Home))]
2020-06-15 02:22:38 +08:00
Home ,
2020-07-12 22:03:03 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleNotifications))]
2020-07-14 06:39:02 +08:00
ToggleNotifications ,
2020-07-14 19:37:21 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.PauseGameplay))]
2020-07-12 22:03:03 +08:00
PauseGameplay ,
2020-09-22 14:55:25 +08:00
// Editor
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorSetupMode))]
2020-09-22 14:55:25 +08:00
EditorSetupMode ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorComposeMode))]
2020-09-22 14:55:25 +08:00
EditorComposeMode ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorDesignMode))]
2020-09-22 14:55:25 +08:00
EditorDesignMode ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorTimingMode))]
2020-09-22 14:55:25 +08:00
EditorTimingMode ,
2020-10-30 13:19:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.HoldForHUD))]
2020-10-30 13:19:40 +08:00
HoldForHUD ,
2020-11-11 12:05:03 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.RandomSkin))]
2020-11-11 12:05:03 +08:00
RandomSkin ,
2020-11-24 14:41:56 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.TogglePauseReplay))]
2020-11-26 19:04:44 +08:00
TogglePauseReplay ,
2020-12-01 10:38:16 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleInGameInterface))]
2020-12-01 10:38:16 +08:00
ToggleInGameInterface ,
2021-04-07 16:13:25 +08:00
2020-06-07 11:37:19 +08:00
// Song select keybindings
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleModSelection))]
2020-06-07 11:37:19 +08:00
ToggleModSelection ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SelectNextRandom))]
2020-06-07 11:37:19 +08:00
SelectNextRandom ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SelectPreviousRandom))]
2020-06-07 11:37:19 +08:00
SelectPreviousRandom ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleBeatmapOptions))]
2020-06-07 11:37:19 +08:00
ToggleBeatmapOptions ,
2021-04-12 15:15:27 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorVerifyMode))]
2021-04-12 15:15:27 +08:00
EditorVerifyMode ,
2021-04-22 17:47:04 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorNudgeLeft))]
2021-04-22 17:47:04 +08:00
EditorNudgeLeft ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorNudgeRight))]
2021-04-29 16:20:22 +08:00
EditorNudgeRight ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleSkinEditor))]
2021-04-29 16:20:22 +08:00
ToggleSkinEditor ,
2021-07-04 20:47:07 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.PreviousVolumeMeter))]
2021-07-04 20:47:07 +08:00
PreviousVolumeMeter ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.NextVolumeMeter))]
2021-07-04 20:47:07 +08:00
NextVolumeMeter ,
2021-07-09 13:28:57 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SeekReplayForward))]
2021-07-09 13:28:57 +08:00
SeekReplayForward ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SeekReplayBackward))]
2021-07-09 13:28:57 +08:00
SeekReplayBackward ,
2021-08-17 14:05:36 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleChatFocus))]
2021-09-20 15:43:15 +08:00
ToggleChatFocus ,
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorCycleGridDisplayMode))]
EditorCycleGridDisplayMode
2018-04-13 17:19:50 +08:00
}
}