ltk

GUI toolkit for X11 (WIP)
git clone git://lumidify.org/ltk.git (fast, but not encrypted)
git clone https://lumidify.org/ltk.git (encrypted, but very slow)
git clone git://4kcetb7mo7hj6grozzybxtotsub5bempzo4lirzc3437amof2c2impyd.onion/ltk.git (over tor)
Log | Files | Refs | README | LICENSE

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 */