summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/vterm.h14
-rw-r--r--include/vterm_keycodes.h3
-rw-r--r--src/pen.c3
-rw-r--r--src/screen.c3
-rw-r--r--src/state.c3
-rw-r--r--src/vterm.c4
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))
diff --git a/src/pen.c b/src/pen.c
index 6a59a08..d9934f4 100644
--- a/src/pen.c
+++ b/src/pen.c
@@ -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 */
}