v1.4.4
This commit is contained in:
commit
9c94d113d3
10260 changed files with 1237388 additions and 0 deletions
119
source/windowing/StarKeyBindings.hpp
Normal file
119
source/windowing/StarKeyBindings.hpp
Normal file
|
@ -0,0 +1,119 @@
|
|||
#ifndef STAR_KEY_BINDINGS_HPP
|
||||
#define STAR_KEY_BINDINGS_HPP
|
||||
|
||||
#include "StarInputEvent.hpp"
|
||||
#include "StarSet.hpp"
|
||||
#include "StarJson.hpp"
|
||||
|
||||
namespace Star {
|
||||
|
||||
enum class InterfaceAction {
|
||||
None,
|
||||
PlayerUp,
|
||||
PlayerDown,
|
||||
PlayerLeft,
|
||||
PlayerRight,
|
||||
PlayerJump,
|
||||
PlayerMainItem,
|
||||
PlayerAltItem,
|
||||
PlayerDropItem,
|
||||
PlayerInteract,
|
||||
PlayerShifting,
|
||||
PlayerTechAction1,
|
||||
PlayerTechAction2,
|
||||
PlayerTechAction3,
|
||||
EmoteBlabbering,
|
||||
EmoteShouting,
|
||||
EmoteHappy,
|
||||
EmoteSad,
|
||||
EmoteNeutral,
|
||||
EmoteLaugh,
|
||||
EmoteAnnoyed,
|
||||
EmoteOh,
|
||||
EmoteOooh,
|
||||
EmoteBlink,
|
||||
EmoteWink,
|
||||
EmoteEat,
|
||||
EmoteSleep,
|
||||
ShowLabels,
|
||||
CameraShift,
|
||||
TitleBack,
|
||||
CinematicSkip,
|
||||
CinematicNext,
|
||||
GuiClose,
|
||||
GuiShifting,
|
||||
KeybindingClear,
|
||||
KeybindingCancel,
|
||||
ChatPageUp,
|
||||
ChatPageDown,
|
||||
ChatPreviousLine,
|
||||
ChatNextLine,
|
||||
ChatSendLine,
|
||||
ChatBegin,
|
||||
ChatBeginCommand,
|
||||
ChatStop,
|
||||
InterfaceShowHelp,
|
||||
InterfaceHideHud,
|
||||
InterfaceChangeBarGroup,
|
||||
InterfaceDeselectHands,
|
||||
InterfaceBar1,
|
||||
InterfaceBar2,
|
||||
InterfaceBar3,
|
||||
InterfaceBar4,
|
||||
InterfaceBar5,
|
||||
InterfaceBar6,
|
||||
InterfaceBar7,
|
||||
InterfaceBar8,
|
||||
InterfaceBar9,
|
||||
InterfaceBar10,
|
||||
EssentialBar1,
|
||||
EssentialBar2,
|
||||
EssentialBar3,
|
||||
EssentialBar4,
|
||||
InterfaceRepeatCommand,
|
||||
InterfaceToggleFullscreen,
|
||||
InterfaceReload,
|
||||
InterfaceEscapeMenu,
|
||||
InterfaceInventory,
|
||||
InterfaceCodex,
|
||||
InterfaceQuest,
|
||||
InterfaceCrafting,
|
||||
};
|
||||
extern EnumMap<InterfaceAction> const InterfaceActionNames;
|
||||
|
||||
// Maps the mod keys that can used in key chords to its associated KeyMod.
|
||||
extern HashMap<Key, KeyMod> const KeyChordMods;
|
||||
|
||||
struct KeyChord {
|
||||
Key key;
|
||||
KeyMod mods;
|
||||
|
||||
bool operator<(KeyChord const& rhs) const;
|
||||
};
|
||||
|
||||
KeyChord inputDescriptorFromJson(Json const& json);
|
||||
Json inputDescriptorToJson(KeyChord const& chord);
|
||||
|
||||
String printInputDescriptor(KeyChord chord);
|
||||
|
||||
STAR_CLASS(KeyBindings);
|
||||
|
||||
class KeyBindings {
|
||||
public:
|
||||
KeyBindings();
|
||||
explicit KeyBindings(Json const& json);
|
||||
|
||||
Set<InterfaceAction> actions(Key key) const;
|
||||
Set<InterfaceAction> actions(InputEvent const& event) const;
|
||||
Set<InterfaceAction> actions(KeyChord chord) const;
|
||||
Set<InterfaceAction> actionsForKey(Key key) const;
|
||||
|
||||
private:
|
||||
// Maps the primary key to a list of InterfaceActions, and any mods that they
|
||||
// require to be held.
|
||||
Map<Key, List<pair<KeyMod, InterfaceAction>>> m_actions;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue