Class TInputShortcut
Unit
Declaration
type TInputShortcut = class(TComponent)
Description
A keyboard and/or mouse shortcut for activating some action.
Action may be activated by:
at most two key shortcuts,
and one mouse button shortcut,
and one character shortcut,
and one mouse wheel shortcut.
The difference between key shortcut and character shortcut: "Key" is something that can be expressed as TKey value. "KeyString" is an UTF-8 character that can be expressed as String value.
They are keys like "control key" (keyCtrl) or "shift key" (keyShift) that cannot be expressed (on their own) as KeyString. KeyString is sometimes more, sometimes less specific than Key: character "A" (upper letter "a") is activated by pressing "a", but only when Shift is pressed or CapsLock is on (window system / GUI toolkit may also allow other ways to input characters).
Name of this component is additionally used if this is a global input shortcut (with Group <> igLocal, see CastleInputs unit documentation): it is used for config file entries and for the CastleScript shortcut()
function [https://castle-engine.io/castle_script.php#function_shortcut] . Any valid Pascal identifier will be Ok for these purposes.
Hierarchy
- TObject
- TPersistent
- TComponent
- TInputShortcut
Overview
Methods
procedure Changed; virtual; |
|
constructor Create(AOwner: TComponent); overload; override; |
|
constructor Create(const AOwner: TComponent; const ACaption: string; const AName: string; const AGroup: TInputGroup); reintroduce; overload; |
|
procedure MakeDefault; |
|
procedure AssignFromDefault(Source: TInputShortcut); |
|
procedure Assign(Source: TInputShortcut; CopyDefaults: boolean); reintroduce; overload; |
|
procedure Assign( const AKey1: TKey; const AKey2: TKey = keyNone; AKeyString: String = ''; const AMouseButtonUse: boolean = false; const AMouseButton: TCastleMouseButton = buttonLeft; const AMouseWheel: TMouseWheelDirection = mwNone); reintroduce; overload; |
|
procedure AssignCurrent( const AKey1: TKey; const AKey2: TKey = keyNone; AKeyString: String = ''; const AMouseButtonUse: boolean = false; const AMouseButton: TCastleMouseButton = buttonLeft; const AMouseWheel: TMouseWheelDirection = mwNone); |
|
procedure MakeClear(const ClearAlsoDefaultState: boolean = false); |
|
function IsPressed(const Pressed: TKeysPressed; const MousePressed: TCastleMouseButtons): boolean; overload; |
|
function IsPressed(const Container: TCastleContainer): boolean; overload; |
|
function IsKey(const Key: TKey; AKeyString: String): boolean; |
|
function IsMouseButton(const AMouseButton: TCastleMouseButton; const ModifiersDown: TModifierKeys): boolean; overload; |
|
function IsMouseButton(const AMouseButton: TCastleMouseButton): boolean; overload; deprecated 'use overloaded version with additional ModifiersDown parameter'; |
|
function IsMouseWheel(const AMouseWheel: TMouseWheelDirection): boolean; |
|
function IsEvent(const Event: TInputPressRelease): boolean; overload; |
|
function IsEvent(const AKey: TKey; AKeyString: String; const AMousePress: boolean; const AMouseButton: TCastleMouseButton; const AMouseWheel: TMouseWheelDirection; const ModifiersDown: TModifierKeys = []): boolean; overload; deprecated 'use IsEvent(TInputPressRelease)'; |
|
function Description(const NoneString: string): string; overload; |
|
function Description: string; overload; |
|
function Modifiers: TModifierKeys; |
|
procedure Add(const NewEvent: TInputPressRelease); |
|
procedure LoadFromConfig(const Config: TCastleConfig; ConfigPath: String); |
|
procedure SaveToConfig(const Config: TCastleConfig; ConfigPath: String); |
Properties
property Caption: string read FCaption; |
|
property Group: TInputGroup read FGroup; |
|
property GroupOrder: Integer read FGroupOrder write FGroupOrder; |
|
property Key1: TKey read FKey1 write SetKey1; |
|
property Key2: TKey read FKey2 write SetKey2; |
|
property KeyString: String read FKeyString write SetKeyString; |
|
property Character: Char read GetCharacter write SetCharacter; deprecated 'use KeyString'; |
|
property MouseButtonUse: boolean read FMouseButtonUse write SetMouseButtonUse; |
|
property MouseButton: TCastleMouseButton read FMouseButton write SetMouseButton; |
|
property MouseButtonCheckModifiers: TModifierKeys read FMouseButtonCheckModifiers write SetMouseButtonCheckModifiers; |
|
property MouseButtonModifiers: TModifierKeys read FMouseButtonModifiers write SetMouseButtonModifiers; |
|
property MouseButton2Use: boolean read FMouseButton2Use write SetMouseButton2Use; |
|
property MouseButton2: TCastleMouseButton read FMouseButton2 write SetMouseButton2; |
|
property MouseButton2CheckModifiers: TModifierKeys read FMouseButton2CheckModifiers write SetMouseButton2CheckModifiers; |
|
property MouseButton2Modifiers: TModifierKeys read FMouseButton2Modifiers write SetMouseButton2Modifiers; |
|
property MouseWheel: TMouseWheelDirection read FMouseWheel
write SetMouseWheel; |
|
property DefaultKey1: TKey read FDefaultKey1 write FDefaultKey1; |
|
property DefaultKey2: TKey read FDefaultKey2 write FDefaultKey2; |
|
property DefaultKeyString: String
read FDefaultKeyString write FDefaultKeyString; |
|
property DefaultMouseButtonUse: boolean
read FDefaultMouseButtonUse write FDefaultMouseButtonUse; |
|
property DefaultMouseButton: TCastleMouseButton
read FDefaultMouseButton write FDefaultMouseButton; |
|
property DefaultMouseButtonCheckModifiers: TModifierKeys
read FDefaultMouseButtonCheckModifiers write FDefaultMouseButtonCheckModifiers; |
|
property DefaultMouseButtonModifiers: TModifierKeys
read FDefaultMouseButtonModifiers write FDefaultMouseButtonModifiers; |
|
property DefaultMouseButton2Use: boolean
read FDefaultMouseButton2Use write FDefaultMouseButton2Use; |
|
property DefaultMouseButton2: TCastleMouseButton
read FDefaultMouseButton2 write FDefaultMouseButton2; |
|
property DefaultMouseButton2CheckModifiers: TModifierKeys
read FDefaultMouseButton2CheckModifiers write FDefaultMouseButton2CheckModifiers; |
|
property DefaultMouseButton2Modifiers: TModifierKeys
read FDefaultMouseButton2Modifiers write FDefaultMouseButton2Modifiers; |
|
property DefaultMouseWheel: TMouseWheelDirection
read FDefaultMouseWheel write FDefaultMouseWheel; |
Description
Methods
constructor Create(AOwner: TComponent); overload; override; |
|
Constructor that always creates local shortcuts (with Group = igLocal). Caption and Name are left empty (they do not have to be set for local shortcuts; although you may wish to later assign Name anyway, if you use this as sub-component in Lazarus). |
constructor Create(const AOwner: TComponent; const ACaption: string; const AName: string; const AGroup: TInputGroup); reintroduce; overload; |
|
Flexible constructor that allows to set Group and choose global or local shortcut. |
procedure MakeDefault; |
|
This item has no description. |
procedure AssignFromDefault(Source: TInputShortcut); |
|
Assigns to this object the default values from Source. |
procedure Assign(Source: TInputShortcut; CopyDefaults: boolean); reintroduce; overload; |
|
Copy Source properties to this object. It always copies current properties (Key1, MouseButton etc.), and only optionally (if CopyDefaults) also copies the DefaultXxx properties. |
procedure Assign( const AKey1: TKey; const AKey2: TKey = keyNone; AKeyString: String = ''; const AMouseButtonUse: boolean = false; const AMouseButton: TCastleMouseButton = buttonLeft; const AMouseWheel: TMouseWheelDirection = mwNone); reintroduce; overload; |
|
Set keys/mouse buttons of this shortcut. Sets both current and default properties (e.g. both Key1 and DefaultKey1 to the same value). Note that, right after using this method, saving the input to a config file (using TInputShortcutList.SaveToConfig) will actually just "clear" the input information from the config file (because we do not save the value when it is equal to the default). Use AssignCurrent to only assign the curent value, leaving default untouched. |
procedure AssignCurrent( const AKey1: TKey; const AKey2: TKey = keyNone; AKeyString: String = ''; const AMouseButtonUse: boolean = false; const AMouseButton: TCastleMouseButton = buttonLeft; const AMouseWheel: TMouseWheelDirection = mwNone); |
|
Set keys/mouse buttons of this shortcut. Sets only the "current" properties (e.g. it changes Key1, leaving DefaultKey1 unmodified). |
procedure MakeClear(const ClearAlsoDefaultState: boolean = false); |
|
Make this input impossible to activate by the user. This sets both keys to keyNone, KeyString to '', both MouseButtonUse and MouseButton2Use to |
function IsPressed(const Pressed: TKeysPressed; const MousePressed: TCastleMouseButtons): boolean; overload; |
|
Given a set of currently pressed keys and mouse buttons, decide whether this input is currently pressed. |
function IsPressed(const Container: TCastleContainer): boolean; overload; |
|
Looking at Container's currently pressed keys and mouse buttons, decide whether this input is currently pressed. |
function IsKey(const Key: TKey; AKeyString: String): boolean; |
|
Check does given Key or AKeyString correspond to this input shortcut. If Key = keyNone and AString = '', result is always |
function IsMouseButton(const AMouseButton: TCastleMouseButton; const ModifiersDown: TModifierKeys): boolean; overload; |
|
Check does given mouse button correspond to this input shortcut. |
function IsMouseButton(const AMouseButton: TCastleMouseButton): boolean; overload; deprecated 'use overloaded version with additional ModifiersDown parameter'; |
|
Warning: this symbol is deprecated: use overloaded version with additional ModifiersDown parameter This item has no description. |
function IsMouseWheel(const AMouseWheel: TMouseWheelDirection): boolean; |
|
This item has no description. |
function IsEvent(const Event: TInputPressRelease): boolean; overload; |
|
Check does given event (key press, mouse button press, mouse wheel) activates this shortcut. |
function IsEvent(const AKey: TKey; AKeyString: String; const AMousePress: boolean; const AMouseButton: TCastleMouseButton; const AMouseWheel: TMouseWheelDirection; const ModifiersDown: TModifierKeys = []): boolean; overload; deprecated 'use IsEvent(TInputPressRelease)'; |
|
Warning: this symbol is deprecated: use IsEvent(TInputPressRelease) This item has no description. |
function Description(const NoneString: string): string; overload; |
|
Describe the current value (which key, mouse buttons and such) of this shortcut. If there is no way to press this shortcut (all properties like Key1 and such are empty, like after MakeClear), we will use NoneString. The overloaded version without NoneString parameter will assume that NoneString should describe the shortcut Caption. This way, if user cleared (deleted all key/mouse buttons assigned) the shortcut in the game configuration, and we show him a message like: 'Press ' + Input.Description + ' to do something'
then user will see it as |
function Description: string; overload; |
|
This item has no description. |
function Modifiers: TModifierKeys; |
|
Modifier keys that are relevant to recognize this shortcut. |
procedure Add(const NewEvent: TInputPressRelease); |
|
Add to shortcut new key or mouse button or mouse wheel. |
procedure LoadFromConfig(const Config: TCastleConfig; ConfigPath: String); |
|
Load a particular input from a config file. Use this to load what was previously saved with SaveToConfig. |
procedure SaveToConfig(const Config: TCastleConfig; ConfigPath: String); |
|
Save a particular input to a config file. This creates an XML element named Note: It is often easier to group your controls in TInputShortcutList, and call TInputShortcutList.SaveToConfig to save everything. |
Properties
property Caption: string read FCaption; |
|
Nice name to show user. With spaces, localized characters etc. |
property Group: TInputGroup read FGroup; |
|
Group of the global shortcut, or igLocal indicating a local shortcut. Games may use this group to better show the keys configuration for user, presenting together keys from the same group. |
property GroupOrder: Integer read FGroupOrder write FGroupOrder; |
|
Order of the shortcut within it's Group. The order may be important, as menus may show InputsGroup to user in this order. This order is applied (the group is actually sorted by |
property Key1: TKey read FKey1 write SetKey1; |
|
Key shortcuts for given command. You can set any of them to keyNone to indicate that no key is assigned. |
property Key2: TKey read FKey2 write SetKey2; |
|
This item has no description. |
property Character: Char read GetCharacter write SetCharacter; deprecated 'use KeyString'; |
|
Warning: this symbol is deprecated: use KeyString This item has no description. |
property MouseButtonUse: boolean read FMouseButtonUse write SetMouseButtonUse; |
|
Mouse shortcut for given command. Only relevant if MouseButtonCheckModifiers determines what subset of modifiers (Ctrl, Shift, Alt) to check, whether they match MouseButtonModifiers. For example, MouseButtonCheckModifiers = [mkShift, mkCtrl] and MouseButtonModifiers = [mkCtrl] means that you have to press Ctrl, and you cannot keep Shift pressed, to activate this shortcut. By default MouseButtonCheckModifiers and MouseButtonModifiers are both empty sets, which means that any state of modifiers is OK. |
property MouseButton: TCastleMouseButton read FMouseButton write SetMouseButton; |
|
This item has no description. |
property MouseButtonCheckModifiers: TModifierKeys read FMouseButtonCheckModifiers write SetMouseButtonCheckModifiers; |
|
This item has no description. |
property MouseButtonModifiers: TModifierKeys read FMouseButtonModifiers write SetMouseButtonModifiers; |
|
This item has no description. |
property MouseButton2Use: boolean read FMouseButton2Use write SetMouseButton2Use; |
|
Alternative mouse shortcut for given command. Only relevant if |
property MouseButton2: TCastleMouseButton read FMouseButton2 write SetMouseButton2; |
|
This item has no description. |
property MouseButton2CheckModifiers: TModifierKeys read FMouseButton2CheckModifiers write SetMouseButton2CheckModifiers; |
|
This item has no description. |
property MouseButton2Modifiers: TModifierKeys read FMouseButton2Modifiers write SetMouseButton2Modifiers; |
|
This item has no description. |
property MouseWheel: TMouseWheelDirection read FMouseWheel
write SetMouseWheel; |
|
Mouse wheel to activate this command. Note that mouse wheels cannot be continuously pressed (our method IsPressed doesn't look at it), so this is only suitable for commands that work in steps (not continuously). |
property DefaultKey1: TKey read FDefaultKey1 write FDefaultKey1; |
|
Default values for properties key/mouse. You can change them — this will change what MakeDefault does. Note that setting these properties doesn't automatically set corresponding "current" property. E.g. |
property DefaultKey2: TKey read FDefaultKey2 write FDefaultKey2; |
|
This item has no description. |
property DefaultKeyString: String
read FDefaultKeyString write FDefaultKeyString; |
|
This item has no description. |
property DefaultMouseButtonUse: boolean
read FDefaultMouseButtonUse write FDefaultMouseButtonUse; |
|
This item has no description. |
property DefaultMouseButton: TCastleMouseButton
read FDefaultMouseButton write FDefaultMouseButton; |
|
This item has no description. |
property DefaultMouseButtonCheckModifiers: TModifierKeys
read FDefaultMouseButtonCheckModifiers write FDefaultMouseButtonCheckModifiers; |
|
This item has no description. |
property DefaultMouseButtonModifiers: TModifierKeys
read FDefaultMouseButtonModifiers write FDefaultMouseButtonModifiers; |
|
This item has no description. |
property DefaultMouseButton2Use: boolean
read FDefaultMouseButton2Use write FDefaultMouseButton2Use; |
|
This item has no description. |
property DefaultMouseButton2: TCastleMouseButton
read FDefaultMouseButton2 write FDefaultMouseButton2; |
|
This item has no description. |
property DefaultMouseButton2CheckModifiers: TModifierKeys
read FDefaultMouseButton2CheckModifiers write FDefaultMouseButton2CheckModifiers; |
|
This item has no description. |
property DefaultMouseButton2Modifiers: TModifierKeys
read FDefaultMouseButton2Modifiers write FDefaultMouseButton2Modifiers; |
|
This item has no description. |
property DefaultMouseWheel: TMouseWheelDirection
read FDefaultMouseWheel write FDefaultMouseWheel; |
|
This item has no description. |
Generated by PasDoc 0.16.0-snapshot.