Files
Dashboard/Dashboard.Common/Events/KeyboardEvents.cs

78 lines
2.3 KiB
C#

namespace Dashboard.Events
{
[Flags]
public enum ModifierKeys
{
None = 0,
LeftBitPos = 8,
RightBitPos = 16,
Shift = (1 << 0),
Control = (1 << 1),
Alt = (1 << 2),
Meta = (1 << 3),
NumLock = (1 << 4),
CapsLock = (1 << 5),
ScrollLock = (1 << 6),
LeftShift = (Shift << LeftBitPos),
LeftControl = (Control << LeftBitPos),
LeftAlt = (Alt << LeftBitPos),
LeftMeta = (Meta << LeftBitPos),
RightShift = (Shift << RightBitPos),
RightControl = (Control << RightBitPos),
RightAlt = (Alt << RightBitPos),
RightMeta = (Meta << RightBitPos),
}
public enum KeyCode
{
// TODO:
}
public enum ScanCode
{
// TODO: this array is from ReFuel, see if this makes any sense.
Esc, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
Tilde, _1, _2, _3, _4, _5, _6, _7, _8, _9, _0, Minus, Equals, Backspace,
Tab, Q, W, E, R, T, Y, U, I, O, P, LBracket, RBracket, Backslash,
CapsLock, A, S, D, F, G, H, J, K, L, Semicolon, Quote, Enter,
LShift, Z, X, C, V, B, N, M, Dot, Comma, Slash, RShift,
LCtrl, LWin, LAlt, Space, RAlt, RWin, Menu, RCtrl,
PrtSc, ScrollLock, PauseBreak,
Insert, Delete, Home, End, PgUp, PgDown,
Up, Down, Left, Right,
NumLock, NumDiv, NumMul, NumSub, NumAdd, NumEnter, NumDecimal,
Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9,
IsoB00,
KeysMax,
}
public class KeyboardButtonEventArgs(KeyCode keyCode, ScanCode scanCode, ModifierKeys modifierKeys, bool up)
: UiEventArgs(up ? UiEventType.KeyUp : UiEventType.KeyDown)
{
public KeyCode KeyCode { get; } = keyCode;
public ScanCode ScanCode { get; } = scanCode;
public ModifierKeys ModifierKeys { get; } = modifierKeys;
}
public class TextInputEventArgs(string text) : UiEventArgs(UiEventType.TextEdit)
{
public string Text { get; } = text;
}
public class TextEditEventArgs(string candidate, int cursor, int length) : UiEventArgs(UiEventType.TextEdit)
{
public string Candidate { get; } = candidate;
public int Cursor { get; } = cursor;
public int Length { get; } = length;
}
}