Castle Game EngineIntroduction Units Class Hierarchy Classes, Interfaces, Objects and Records Types Variables Constants Functions and Procedures Identifiers |
Unit CastleKeysMouse
Description
Types and constants to handle keys and mouse. They are used throughout our engine, both by CastleControl (Lazarus component) and by non-Lazarus CastleWindow.
Uses
Overview
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Description
Functions and Procedures
function KeyToStr(key: TKey): string; |
|
function ModifiersDown(const KeysDown: TKeysBooleans): TModifierKeys; overload; |
This "packs" values like KeysDown[K_Ctrl], KeysDown[K_Shift] etc. – KeysDown for all TModifierKey.
Version with TKeysPressed parameter returns [] (empty set) when argument is Nil . This may be useful sometimes.
|
function MouseWheelDirection(const Scroll: Single; const Vertical: boolean): TMouseWheelDirection; |
Determine simple mouse wheel direction from a Scroll and Vertical parameters received from TCastleWindowBase.OnMouseWheel. Assumes that Scroll <> 0, like TCastleWindowBase.OnMouseWheel guarantees.
|
function StrToKey(const S: string; const DefaultKey: TKey): TKey; |
Convert string value back to a key name, reversing KeyToStr. If string does not contain any recognized key name, return DefaultKey.
|
function InputMouseWheel(const Scroll: Single; const Vertical: boolean): TInputPressRelease; |
|
Types
TKey = (...); |
Keys on keyboard. Do not ever use values K_Reserved_Xxx (they are declared here only to avoid using assignments, which would prevent FPC from allowing TKey to index arrays).
Some properties of K_Xxx constants that are guaranteed:
K_None means "no key". It's guaranteed that it's always equal to zero.
Letters (constants K_A .. K_Z) are guaranteed to be always equal to TKey ('A') .. TKey ('Z') and digits (constants K_0 .. K_9) are guaranteed to be always equal to TKey ('0') .. TKey ('9'). That is, their ordinal values are equal to their ASCII codes, and they are always ordered.
Also K_F1 .. K_F12 (function keys) are guaranteed to be always nicely ordered (i.e. K_F2 = K_F1 + 1, K_F3 = K_F2 + 1 and so on).
Also K_Escape, K_BackSpace, K_Tab, K_Enter are guaranteed to be always equal to CharEscape, CharBackSpace, CharTab, CharEnter (well, typecasted to TKey type).
Values
-
K_None:
-
K_PrintScreen:
-
K_CapsLock:
-
K_ScrollLock:
-
K_NumLock:
-
K_Pause:
-
K_Apostrophe:
-
K_Semicolon:
-
K_BackSpace: = Ord(CharBackSpace) = 8
-
K_Tab: = Ord(CharTab) = 9
-
K_Slash:
-
K_BackQuote:
-
K_Minus:
-
K_Enter: = Ord(CharEnter) = 13
-
K_Equal:
-
K_BackSlash:
-
K_Shift:
-
K_Ctrl:
-
K_Alt:
-
K_Plus:
-
K_Reserved_20:
-
K_Reserved_21:
-
K_Reserved_22:
-
K_Reserved_23:
-
K_Reserved_24:
-
K_Reserved_25:
-
K_Reserved_26:
-
K_Escape: = Ord(CharEscape) = 27
-
K_Reserved_28:
-
K_Reserved_29:
-
K_Reserved_30:
-
K_Reserved_31:
-
K_Space: = Ord(' ') = 32
-
K_PageUp:
-
K_PageDown:
-
K_End:
-
K_Home:
-
K_Left:
-
K_Up:
-
K_Right:
-
K_Down:
-
K_Reserved_41:
-
K_Reserved_42:
-
K_Reserved_43:
-
K_Reserved_44:
-
K_Insert:
-
K_Delete:
-
K_Reserved_47:
-
K_0: = Ord('0') = 48
-
K_1: = Ord('1')
-
K_2: = Ord('2')
-
K_3: = Ord('3')
-
K_4: = Ord('4')
-
K_5: = Ord('5')
-
K_6: = Ord('6')
-
K_7: = Ord('7')
-
K_8: = Ord('8')
-
K_9: = Ord('9') = 57
-
K_Reserved_58:
-
K_Reserved_59:
-
K_Reserved_60:
-
K_Reserved_61:
-
K_Reserved_62:
-
K_Reserved_63:
-
K_Reserved_64:
-
K_A: = Ord('A') = 65
-
K_B: = Ord('B')
-
K_C: = Ord('C')
-
K_D: = Ord('D')
-
K_E: = Ord('E')
-
K_F: = Ord('F')
-
K_G: = Ord('G')
-
K_H: = Ord('H')
-
K_I: = Ord('I')
-
K_J: = Ord('J')
-
K_K: = Ord('K')
-
K_L: = Ord('L')
-
K_M: = Ord('M')
-
K_N: = Ord('N')
-
K_O: = Ord('O')
-
K_P: = Ord('P')
-
K_Q: = Ord('Q')
-
K_R: = Ord('R')
-
K_S: = Ord('S')
-
K_T: = Ord('T')
-
K_U: = Ord('U')
-
K_V: = Ord('V')
-
K_W: = Ord('W')
-
K_X: = Ord('X')
-
K_Y: = Ord('Y')
-
K_Z: = Ord('Z') = 90
-
K_LeftBracket:
-
K_Reserved_92:
-
K_RightBracket:
-
K_Reserved_94:
-
K_Reserved_95:
-
K_Reserved_96:
-
K_Reserved_97:
-
K_Reserved_98:
-
K_Reserved_99:
-
K_Reserved_100:
-
K_Reserved_101:
-
K_Reserved_102:
-
K_Reserved_103:
-
K_Reserved_104:
-
K_Reserved_105:
-
K_Reserved_106:
-
K_Numpad_Plus:
-
K_Reserved_108:
-
K_Numpad_Minus:
-
K_Reserved_110:
-
K_Reserved_111:
-
K_F1:
-
K_F2:
-
K_F3:
-
K_F4:
-
K_F5:
-
K_F6:
-
K_F7:
-
K_F8:
-
K_F9:
-
K_F10:
-
K_F11:
-
K_F12:
-
K_Reserved_124:
-
K_Reserved_125:
-
K_Reserved_126:
-
K_Reserved_127:
-
K_Reserved_128:
-
K_Reserved_129:
-
K_Reserved_130:
-
K_Reserved_131:
-
K_Reserved_132:
-
K_Reserved_133:
-
K_Reserved_134:
-
K_Reserved_135:
-
K_Reserved_136:
-
K_Reserved_137:
-
K_Reserved_138:
-
K_Reserved_139:
-
K_Numpad_0:
-
K_Numpad_1:
-
K_Numpad_2:
-
K_Numpad_3:
-
K_Numpad_4:
-
K_Numpad_5:
-
K_Numpad_6:
-
K_Numpad_7:
-
K_Numpad_8:
-
K_Numpad_9:
-
K_Numpad_End:
-
K_Numpad_Down:
-
K_Numpad_PageDown:
-
K_Numpad_Left:
-
K_Numpad_Begin:
-
K_Numpad_Right:
-
K_Numpad_Home:
-
K_Numpad_Up:
-
K_Numpad_PageUp:
-
K_Numpad_Insert:
-
K_Numpad_Delete:
-
K_Numpad_Enter:
-
K_Numpad_Multiply:
-
K_Numpad_Divide:
-
K_Reserved_164:
-
K_Reserved_165:
-
K_Reserved_166:
-
K_Reserved_167:
-
K_Reserved_168:
-
K_Reserved_169:
-
K_Reserved_170:
-
K_Reserved_171:
-
K_Reserved_172:
-
K_Reserved_173:
-
K_Reserved_174:
-
K_Reserved_175:
-
K_Reserved_176:
-
K_Reserved_177:
-
K_Reserved_178:
-
K_Reserved_179:
-
K_Reserved_180:
-
K_Reserved_181:
-
K_Reserved_182:
-
K_Reserved_183:
-
K_Reserved_184:
-
K_Reserved_185:
-
K_Reserved_186:
-
K_Reserved_187:
-
K_Comma:
-
K_Reserved_189:
-
K_Period:
-
K_Reserved_191:
|
TKeysBooleans = array [TKey] of Boolean; |
|
TKeysBytes = array [Byte] of TKey; |
|
TCharactersBooleans = array [Char] of Boolean; |
|
TMouseButton = (...); |
Values
-
mbLeft:
-
mbMiddle:
-
mbRight:
|
TMouseCursor = (...); |
Look of the mouse cursor. Used for various properties: TUIControl.Cursor, T3D.Cursor, TCastleWindowBase.Cursor.
mcDefault, mcNone, mcCustom have somewhat special meanings. The rest are some cursor images will well-defined meanings for the user, their exact look may depend on current window manager theme etc.
Values
-
mcDefault: Leave cursor as default, decided by a window manager.
-
mcNone: Make cursor invisible.
-
mcCustom: Use a custom cursor image in TCastleWindowBase.CustomCursor.
In normal circumstances, this should not be used for TUIControl.Cursor, T3D.Cursor and others, as they have no way to set TCastleWindowBase.CustomCursor.
-
mcStandard: Standard arrow, indicates, well, that user can point / click something.
-
mcWait: Indicates the program is busy and user should wait.
-
mcText: Text cursor, indicates that there's text under the cursor, which usually means that it can be selected, or that user can click to set focus to the text area.
-
mcHand: Indicates something active is under cursor, usually for links.
|
TModifierKey = (...); |
Modifier keys are keys that, when pressed, modify the meaning of other keys. Of course, this is actually just a convention. The actual interpretation is left up to the final program – there you have to decide when and how modifiers affect the meaning of other keys.
Values
|
TMouseWheelDirection = (...); |
Values
-
mwNone:
-
mwUp:
-
mwDown:
-
mwLeft:
-
mwRight:
|
TInputPressReleaseType = (...); |
Values
-
itKey:
-
itMouseButton:
-
itMouseWheel:
|
Constants
MouseButtonStr: array [TMouseButton] of string = ('left', 'middle', 'right'); |
|
MouseWheelDirectionStr: array [TMouseWheelDirection] of string =
('none', 'up', 'down', 'left', 'right'); |
|
Generated by PasDoc 0.12.1 on 2013-02-04 20:26:51
|