eventdefs.h (3377B)
1 /* 2 * Copyright (c) 2022-2024 lumidify <nobody@lumidify.org> 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #ifndef LTK_EVENTDEFS_H 18 #define LTK_EVENTDEFS_H 19 20 /* FIXME: add to config */ 21 #define DOUBLECLICK_TIME 250 22 /* square of distance to make calculation simpler */ 23 #define DOUBLECLICK_DISTSQ 25 24 /* FIXME: reduce amount of scroll/motion events */ 25 26 typedef enum { 27 LTK_UNKNOWN_EVENT, /* FIXME: a bit weird */ 28 LTK_BUTTONPRESS_EVENT, 29 LTK_BUTTONRELEASE_EVENT, 30 /* double-click/release */ 31 LTK_2BUTTONPRESS_EVENT, 32 LTK_2BUTTONRELEASE_EVENT, 33 /* triple-click/release */ 34 LTK_3BUTTONPRESS_EVENT, 35 LTK_3BUTTONRELEASE_EVENT, 36 LTK_SCROLL_EVENT, 37 LTK_MOTION_EVENT, 38 LTK_KEYPRESS_EVENT, 39 LTK_KEYRELEASE_EVENT, 40 LTK_CONFIGURE_EVENT, 41 LTK_EXPOSE_EVENT, 42 LTK_WINDOWCLOSE_EVENT, 43 LTK_KEYBOARDCHANGE_EVENT, 44 LTK_DPICHANGE_EVENT, 45 } ltk_event_type; 46 47 /* FIXME: button mask also in motion */ 48 49 typedef enum { 50 LTK_BUTTONL, 51 LTK_BUTTONM, 52 LTK_BUTTONR, 53 } ltk_button_type; 54 55 /* FIXME: better sorting (the current order is just copied from config.c) */ 56 /* FIXME: use the Xlib definitions to optimize for the common case? */ 57 typedef enum { 58 LTK_KEY_NONE = 0, 59 LTK_KEY_BACKSPACE, 60 LTK_KEY_BEGIN, 61 LTK_KEY_BREAK, 62 LTK_KEY_CANCEL, 63 LTK_KEY_CLEAR, 64 LTK_KEY_DELETE, 65 LTK_KEY_DOWN, 66 LTK_KEY_END, 67 LTK_KEY_ESCAPE, 68 LTK_KEY_EXECUTE, 69 70 LTK_KEY_F1, 71 LTK_KEY_F10, 72 LTK_KEY_F11, 73 LTK_KEY_F12, 74 LTK_KEY_F2, 75 LTK_KEY_F3, 76 LTK_KEY_F4, 77 LTK_KEY_F5, 78 LTK_KEY_F6, 79 LTK_KEY_F7, 80 LTK_KEY_F8, 81 LTK_KEY_F9, 82 83 LTK_KEY_FIND, 84 LTK_KEY_HELP, 85 LTK_KEY_HOME, 86 LTK_KEY_INSERT, 87 88 LTK_KEY_KP_0, 89 LTK_KEY_KP_1, 90 LTK_KEY_KP_2, 91 LTK_KEY_KP_3, 92 LTK_KEY_KP_4, 93 LTK_KEY_KP_5, 94 LTK_KEY_KP_6, 95 LTK_KEY_KP_7, 96 LTK_KEY_KP_8, 97 LTK_KEY_KP_9, 98 LTK_KEY_KP_ADD, 99 LTK_KEY_KP_BEGIN, 100 LTK_KEY_KP_DECIMAL, 101 LTK_KEY_KP_DELETE, 102 LTK_KEY_KP_DIVIDE, 103 LTK_KEY_KP_DOWN, 104 LTK_KEY_KP_END, 105 LTK_KEY_KP_ENTER, 106 LTK_KEY_KP_EQUAL, 107 LTK_KEY_KP_HOME, 108 LTK_KEY_KP_INSERT, 109 LTK_KEY_KP_LEFT, 110 LTK_KEY_KP_MULTIPLY, 111 LTK_KEY_KP_NEXT, 112 LTK_KEY_KP_PAGE_DOWN, 113 LTK_KEY_KP_PAGE_UP, 114 LTK_KEY_KP_PRIOR, 115 LTK_KEY_KP_RIGHT, 116 LTK_KEY_KP_SEPARATOR, 117 LTK_KEY_KP_SPACE, 118 LTK_KEY_KP_SUBTRACT, 119 LTK_KEY_KP_TAB, 120 LTK_KEY_KP_UP, 121 122 LTK_KEY_LEFT, 123 LTK_KEY_LINEFEED, 124 LTK_KEY_MENU, 125 LTK_KEY_MODE_SWITCH, 126 LTK_KEY_NEXT, 127 LTK_KEY_NUM_LOCK, 128 LTK_KEY_PAGE_DOWN, 129 LTK_KEY_PAGE_UP, 130 LTK_KEY_PAUSE, 131 LTK_KEY_PRINT, 132 LTK_KEY_PRIOR, 133 134 LTK_KEY_REDO, 135 LTK_KEY_RETURN, 136 LTK_KEY_RIGHT, 137 LTK_KEY_SCRIPT_SWITCH, 138 LTK_KEY_SCROLL_LOCK, 139 LTK_KEY_SELECT, 140 LTK_KEY_SPACE, 141 LTK_KEY_SYS_REQ, 142 LTK_KEY_TAB, 143 LTK_KEY_LEFT_TAB, 144 LTK_KEY_UP, 145 LTK_KEY_UNDO 146 } ltk_keysym; 147 148 typedef enum { 149 LTK_MOD_NONE = 0, 150 LTK_MOD_CTRL = 1, 151 LTK_MOD_SHIFT = 2, 152 LTK_MOD_ALT = 4, 153 LTK_MOD_SUPER = 8 154 } ltk_mod_type; 155 156 #endif /* LTK_EVENTDEFS_H */