diff options
-rw-r--r-- | include/vterm.h | 14 | ||||
-rw-r--r-- | include/vterm_keycodes.h | 3 | ||||
-rw-r--r-- | src/pen.c | 3 | ||||
-rw-r--r-- | src/screen.c | 3 | ||||
-rw-r--r-- | src/state.c | 3 | ||||
-rw-r--r-- | src/vterm.c | 4 |
6 files changed, 30 insertions, 0 deletions
diff --git a/include/vterm.h b/include/vterm.h index 57ebe46..81e8924 100644 --- a/include/vterm.h +++ b/include/vterm.h @@ -59,6 +59,8 @@ typedef enum { VTERM_VALUETYPE_INT, VTERM_VALUETYPE_STRING, VTERM_VALUETYPE_COLOR, + + VTERM_N_VALUETYPES } VTermValueType; typedef union { @@ -79,6 +81,8 @@ typedef enum { VTERM_ATTR_FONT, // number: 10-19 VTERM_ATTR_FOREGROUND, // color: 30-39 90-97 VTERM_ATTR_BACKGROUND, // color: 40-49 100-107 + + VTERM_N_ATTRS } VTermAttr; typedef enum { @@ -91,12 +95,16 @@ typedef enum { VTERM_PROP_REVERSE, // bool VTERM_PROP_CURSORSHAPE, // number VTERM_PROP_MOUSE, // number + + VTERM_N_PROPS } VTermProp; enum { VTERM_PROP_CURSORSHAPE_BLOCK = 1, VTERM_PROP_CURSORSHAPE_UNDERLINE, VTERM_PROP_CURSORSHAPE_BAR_LEFT, + + VTERM_N_PROP_CURSORSHAPES }; enum { @@ -104,6 +112,8 @@ enum { VTERM_PROP_MOUSE_CLICK, VTERM_PROP_MOUSE_DRAG, VTERM_PROP_MOUSE_MOVE, + + VTERM_N_PROP_MOUSES }; typedef struct { @@ -280,6 +290,8 @@ typedef enum { VTERM_DAMAGE_ROW, /* entire rows */ VTERM_DAMAGE_SCREEN, /* entire screen */ VTERM_DAMAGE_SCROLL, /* entire screen + scrollrect */ + + VTERM_N_DAMAGES } VTermDamageSize; void vterm_screen_flush_damage(VTermScreen *screen); @@ -301,6 +313,8 @@ typedef enum { VTERM_ATTR_FONT_MASK = 1 << 6, VTERM_ATTR_FOREGROUND_MASK = 1 << 7, VTERM_ATTR_BACKGROUND_MASK = 1 << 8, + + VTERM_ALL_ATTRS_MASK = (1 << 9) - 1 } VTermAttrMask; int vterm_screen_get_attrs_extent(const VTermScreen *screen, VTermRect *extent, VTermPos pos, VTermAttrMask attrs); diff --git a/include/vterm_keycodes.h b/include/vterm_keycodes.h index 165d747..661759f 100644 --- a/include/vterm_keycodes.h +++ b/include/vterm_keycodes.h @@ -6,6 +6,8 @@ typedef enum { VTERM_MOD_SHIFT = 0x01, VTERM_MOD_ALT = 0x02, VTERM_MOD_CTRL = 0x04, + + VTERM_ALL_MODS_MASK = 0x07 } VTermModifier; typedef enum { @@ -51,6 +53,7 @@ typedef enum { VTERM_KEY_KP_EQUAL, VTERM_KEY_MAX, // Must be last + VTERM_N_KEYS = VTERM_KEY_MAX } VTermKey; #define VTERM_KEY_FUNCTION(n) (VTERM_KEY_FUNCTION_0+(n)) @@ -491,6 +491,9 @@ int vterm_state_get_penattr(const VTermState *state, VTermAttr attr, VTermValue case VTERM_ATTR_BACKGROUND: val->color = state->pen.bg; return 1; + + case VTERM_N_ATTRS: + return 0; } return 0; diff --git a/src/screen.c b/src/screen.c index 95ba31c..8cb8c46 100644 --- a/src/screen.c +++ b/src/screen.c @@ -426,6 +426,9 @@ static int setpenattr(VTermAttr attr, VTermValue *val, void *user) case VTERM_ATTR_BACKGROUND: screen->pen.bg = val->color; return 1; + + case VTERM_N_ATTRS: + return 0; } return 0; diff --git a/src/state.c b/src/state.c index 7edb2b9..6d3768c 100644 --- a/src/state.c +++ b/src/state.c @@ -1813,6 +1813,9 @@ int vterm_state_set_termprop(VTermState *state, VTermProp prop, VTermValue *val) if(val->number == VTERM_PROP_MOUSE_MOVE) state->mouse_flags |= MOUSE_WANT_MOVE; return 1; + + case VTERM_N_PROPS: + return 0; } return 0; diff --git a/src/vterm.c b/src/vterm.c index 7698e65..053e174 100644 --- a/src/vterm.c +++ b/src/vterm.c @@ -244,6 +244,8 @@ VTermValueType vterm_get_attr_type(VTermAttr attr) case VTERM_ATTR_FONT: return VTERM_VALUETYPE_INT; case VTERM_ATTR_FOREGROUND: return VTERM_VALUETYPE_COLOR; case VTERM_ATTR_BACKGROUND: return VTERM_VALUETYPE_COLOR; + + case VTERM_N_ATTRS: return 0; } return 0; /* UNREACHABLE */ } @@ -259,6 +261,8 @@ VTermValueType vterm_get_prop_type(VTermProp prop) case VTERM_PROP_REVERSE: return VTERM_VALUETYPE_BOOL; case VTERM_PROP_CURSORSHAPE: return VTERM_VALUETYPE_INT; case VTERM_PROP_MOUSE: return VTERM_VALUETYPE_INT; + + case VTERM_N_PROPS: return 0; } return 0; /* UNREACHABLE */ } |