diff --git a/examples/gldemos/gears.c b/examples/gldemos/gears.c index 04962c8..5d06b06 100644 --- a/examples/gldemos/gears.c +++ b/examples/gldemos/gears.c @@ -231,13 +231,13 @@ static void init(void) { static void key(int k) { (void)k; - if(k == MwLLKeyLeft) { + if(k == MwKEY_LEFT) { view_roty += 5.0; - } else if(k == MwLLKeyRight) { + } else if(k == MwKEY_RIGHT) { view_roty -= 5.0; - } else if(k == MwLLKeyUp) { + } else if(k == MwKEY_UP) { view_rotx += 5.0; - } else if(k == MwLLKeyDown) { + } else if(k == MwKEY_DOWN) { view_rotx -= 5.0; } } diff --git a/include/Mw/Constants.h b/include/Mw/Constants.h index d710ca0..dbb9953 100644 --- a/include/Mw/Constants.h +++ b/include/Mw/Constants.h @@ -121,4 +121,22 @@ enum MwMOUSE { MwMOUSE_WHEELDOWN }; +#define MwKEY_MASK (1 << 31) +#define MwKEY_CONTROL_MASK MwKEY_MASK | (1 << 30) +#define MwKEY_ALT_MASK MwKEY_MASK | (1 << 29) + +enum MwKEY { + MwKEY_BACKSPACE = MwKEY_MASK | 1, + MwKEY_LEFT, + MwKEY_RIGHT, + MwKEY_UP, + MwKEY_DOWN, + MwKEY_ENTER, + MwKEY_ESCAPE, + MwKEY_LEFTSHIFT, + MwKEY_RIGHTSHIFT, + MwKEY_ALT, + MwKEY_CONTROL +}; + #endif diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 1b5ec52..3b3ae66 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -177,24 +177,6 @@ union _MwLLPixmap { #define MwLLDispatch(x, y, z) \ if(x->common.handler != NULL && x->common.handler->y != NULL) x->common.handler->y(x, z) -#define MwLLKeyMask (1 << 31) -enum MwLLKeyEnum { - MwLLKeyBackSpace = MwLLKeyMask | 1, - MwLLKeyLeft, - MwLLKeyRight, - MwLLKeyUp, - MwLLKeyDown, - MwLLKeyEnter, - MwLLKeyEscape, - MwLLKeyLeftShift, - MwLLKeyRightShift, - MwLLKeyAlt, - MwLLKeyControl -}; - -#define MwLLControlMask MwLLKeyMask | (1 << 30) -#define MwLLAltMask MwLLKeyMask | (1 << 29) - struct _MwLLHandler { void (*draw)(MwLL handle, void* data); void (*up)(MwLL handle, void* data); diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 024959e..5725912 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -166,13 +166,13 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { const int base = 'A' - 1; if(n != 0x1b && n <= 0x1f) { - n = (n + base) | MwLLControlMask; + n = (n + base) | MwKEY_CONTROL_MASK; if(!(GetKeyState(VK_LSHIFT) || GetKeyState(VK_RSHIFT))) n += 0x20; } - if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwLLControlMask; - if(msg == WM_SYSCHAR) n |= MwLLAltMask; + if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_MASK; + if(msg == WM_SYSCHAR) n |= MwKEY_ALT_MASK; - if((0x20 <= n && n <= 0x7f) || (n & MwLLKeyMask)) MwLLDispatch(u->ll, key, &n); + if((0x20 <= n && n <= 0x7f) || (n & MwKEY_MASK)) MwLLDispatch(u->ll, key, &n); } else if(msg == WM_SETFOCUS) { MwLLDispatch(u->ll, focus_in, NULL); } else if(msg == WM_KILLFOCUS) { @@ -180,20 +180,20 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { } else if(msg == WM_KEYDOWN || msg == WM_KEYUP || msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) { int n = -1; if(wp == VK_MENU && msg == WM_KEYUP) return 0; - if(wp == VK_LEFT) n = MwLLKeyLeft; - if(wp == VK_RIGHT) n = MwLLKeyRight; - if(wp == VK_UP) n = MwLLKeyUp; - if(wp == VK_DOWN) n = MwLLKeyDown; - if(wp == VK_RETURN) n = MwLLKeyEnter; - if(wp == VK_BACK) n = MwLLKeyBackSpace; - if(wp == VK_ESCAPE) n = MwLLKeyEscape; - if(wp == VK_LSHIFT) n = MwLLKeyLeftShift; - if(wp == VK_RSHIFT) n = MwLLKeyRightShift; - if(wp == VK_MENU) n = MwLLKeyAlt; - if(wp == VK_CONTROL) n = MwLLKeyControl; + if(wp == VK_LEFT) n = MwKEY_LEFT; + if(wp == VK_RIGHT) n = MwKEY_RIGHT; + if(wp == VK_UP) n = MwKEY_UP; + if(wp == VK_DOWN) n = MwKEY_DOWN; + if(wp == VK_RETURN) n = MwKEY_ENTER; + if(wp == VK_BACK) n = MwKEY_BACKSPACE; + if(wp == VK_ESCAPE) n = MwKEY_ESCAPE; + if(wp == VK_LSHIFT) n = MwKEY_LEFTSHIFT; + if(wp == VK_RSHIFT) n = MwKEY_RIGHTSHIFT; + if(wp == VK_MENU) n = MwKEY_ALT; + if(wp == VK_CONTROL) n = MwKEY_CONTROL; if((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) { - n |= MwLLAltMask; + n |= MwKEY_ALT_MASK; } if(n != -1) { if(msg == WM_KEYDOWN || msg == WM_SYSKEYDOWN) { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 4cab7e6..56a356f 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -766,39 +766,39 @@ static void keyboard_key(void* data, switch(sym) { case XKB_KEY_BackSpace: - key = MwLLKeyBackSpace; + key = MwKEY_BACKSPACE; break; case XKB_KEY_Left: - key = MwLLKeyLeft; + key = MwKEY_LEFT; break; case XKB_KEY_Right: - key = MwLLKeyRight; + key = MwKEY_RIGHT; break; case XKB_KEY_Up: - key = MwLLKeyUp; + key = MwKEY_UP; break; case XKB_KEY_Down: - key = MwLLKeyDown; + key = MwKEY_DOWN; break; case XKB_KEY_Return: - key = MwLLKeyEnter; + key = MwKEY_ENTER; break; case XKB_KEY_Escape: - key = MwLLKeyEscape; + key = MwKEY_ESCAPE; break; case XKB_KEY_Shift_L: - key = MwLLKeyLeftShift; + key = MwKEY_LEFTSHIFT; break; case XKB_KEY_Shift_R: - key = MwLLKeyRightShift; + key = MwKEY_RIGHTSHIFT; break; case XKB_KEY_Alt_L: case XKB_KEY_Alt_R: - key = MwLLKeyAlt; + key = MwKEY_ALT; break; case XKB_KEY_Control_L: case XKB_KEY_Control_R: - key = MwLLKeyControl; + key = MwKEY_CONTROL; break; default: if(MwStringIsKeyUTF8(sym)) { @@ -807,10 +807,10 @@ static void keyboard_key(void* data, } if((self->wayland.mod_state & 4) == 4) { - key |= MwLLControlMask; + key |= MwKEY_CONTROL_MASK; } if((self->wayland.mod_state & 8) == 8) { - key |= MwLLAltMask; + key |= MwKEY_ALT_MASK; } if(key != -1) { diff --git a/src/backend/x11.c b/src/backend/x11.c index f772b7b..fd86af0 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -791,34 +791,34 @@ static void MwLLNextEventImpl(MwLL handle) { } if(strcmp(str, "BackSpace") == 0) { - n = MwLLKeyBackSpace; + n = MwKEY_BACKSPACE; } else if(strcmp(str, "Left") == 0) { - n = MwLLKeyLeft; + n = MwKEY_LEFT; } else if(strcmp(str, "Right") == 0) { - n = MwLLKeyRight; + n = MwKEY_RIGHT; } else if(strcmp(str, "Up") == 0) { - n = MwLLKeyUp; + n = MwKEY_UP; } else if(strcmp(str, "Down") == 0) { - n = MwLLKeyDown; + n = MwKEY_DOWN; } else if(strcmp(str, "Return") == 0) { - n = MwLLKeyEnter; + n = MwKEY_ENTER; } else if(strcmp(str, "Escape") == 0) { - n = MwLLKeyEscape; + n = MwKEY_ESCAPE; } else if(strcmp(str, "Shift_L") == 0) { - n = MwLLKeyLeftShift; + n = MwKEY_LEFTSHIFT; } else if(strcmp(str, "Shift_R") == 0) { - n = MwLLKeyRightShift; + n = MwKEY_RIGHTSHIFT; } else if(strcmp(str, "Alt_L") == 0 || strcmp(str, "Alt_R") == 0) { - n = MwLLKeyAlt; + n = MwKEY_ALT; } else if(strcmp(str, "Control_R") == 0 || strcmp(str, "Control_R") == 0) { - n = MwLLKeyControl; + n = MwKEY_CONTROL; } - if(n != MwLLKeyControl && ev.xkey.state & ControlMask) { - n |= MwLLControlMask; + if(n != MwKEY_CONTROL && ev.xkey.state & ControlMask) { + n |= MwKEY_CONTROL_MASK; } - if(n != MwLLKeyAlt && ev.xkey.state & Mod1Mask) { - n |= MwLLAltMask; + if(n != MwKEY_ALT && ev.xkey.state & Mod1Mask) { + n |= MwKEY_ALT_MASK; } if(n != -1) { diff --git a/src/widget/entry.c b/src/widget/entry.c index 71b3284..173b5ee 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -92,7 +92,7 @@ static void key(MwWidget handle, int code) { char* out; if(str == NULL) str = ""; - if(code == MwLLKeyBackSpace) { + if(code == MwKEY_BACKSPACE) { if(t->cursor == 0) return; out = malloc(strlen(str) + 1); @@ -105,17 +105,17 @@ static void key(MwWidget handle, int code) { MwDispatchUserHandler(handle, MwNchangedHandler, NULL); free(out); - } else if(code == MwLLKeyLeft) { + } else if(code == MwKEY_LEFT) { if(t->cursor == 0) return; t->cursor--; - } else if(code == MwLLKeyRight) { + } else if(code == MwKEY_RIGHT) { if(t->cursor == MwUTF8Length(str)) return; t->cursor++; - } else if(code == MwLLKeyEnter) { + } else if(code == MwKEY_ENTER) { MwDispatchUserHandler(handle, MwNactivateHandler, NULL); - } else if(code == (MwLLControlMask | 'v')) { + } else if(code == (MwKEY_CONTROL_MASK | 'v')) { MwLLGetClipboard(handle->lowlevel, MwCLIPBOARD_MAIN); - } else if(!(code & MwLLKeyMask)) { + } else if(!(code & MwKEY_MASK)) { int incr = 0; out = malloc(strlen(str) + 5 + 1); incr += MwUTF8Copy(str, 0, out, 0, t->cursor); diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index 617f2a1..f1d7bde 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -75,7 +75,7 @@ static void key(MwWidget handle, int code) { ok = 1; } else if(code == '.' && strchr(str, (int)'.') == NULL) { ok = 1; - } else if(code == MwLLKeyBackSpace || code == MwLLKeyLeft || code == MwLLKeyRight) { + } else if(code == MwKEY_BACKSPACE || code == MwKEY_LEFT || code == MwKEY_RIGHT) { ok = 1; }