@@ -96,7 +96,9 @@ typedef enum {
9696 VTERM_VALUETYPE_BOOL = 1 ,
9797 VTERM_VALUETYPE_INT ,
9898 VTERM_VALUETYPE_STRING ,
99- VTERM_VALUETYPE_COLOR
99+ VTERM_VALUETYPE_COLOR ,
100+
101+ VTERM_N_VALUETYPES
100102} VTermValueType ;
101103
102104typedef union {
@@ -116,7 +118,9 @@ typedef enum {
116118 VTERM_ATTR_STRIKE , /* bool: 9, 29 */
117119 VTERM_ATTR_FONT , /* number: 10-19 */
118120 VTERM_ATTR_FOREGROUND , /* color: 30-39 90-97 */
119- VTERM_ATTR_BACKGROUND /* color: 40-49 100-107 */
121+ VTERM_ATTR_BACKGROUND , /* color: 40-49 100-107 */
122+
123+ VTERM_N_ATTRS
120124} VTermAttr ;
121125
122126typedef enum {
@@ -129,20 +133,26 @@ typedef enum {
129133 VTERM_PROP_REVERSE , /* bool */
130134 VTERM_PROP_CURSORSHAPE , /* number */
131135 VTERM_PROP_MOUSE , /* number */
132- VTERM_PROP_CURSORCOLOR /* string */
136+ VTERM_PROP_CURSORCOLOR , /* string */
137+
138+ VTERM_N_PROPS
133139} VTermProp ;
134140
135141enum {
136142 VTERM_PROP_CURSORSHAPE_BLOCK = 1 ,
137143 VTERM_PROP_CURSORSHAPE_UNDERLINE ,
138- VTERM_PROP_CURSORSHAPE_BAR_LEFT
144+ VTERM_PROP_CURSORSHAPE_BAR_LEFT ,
145+
146+ VTERM_N_PROP_CURSORSHAPES
139147};
140148
141149enum {
142150 VTERM_PROP_MOUSE_NONE = 0 ,
143151 VTERM_PROP_MOUSE_CLICK ,
144152 VTERM_PROP_MOUSE_DRAG ,
145- VTERM_PROP_MOUSE_MOVE
153+ VTERM_PROP_MOUSE_MOVE ,
154+
155+ VTERM_N_PROP_MOUSES
146156};
147157
148158typedef struct {
@@ -213,8 +223,8 @@ void vterm_mouse_button(VTerm *vt, int button, int pressed, VTermModifier mod);
213223 *
214224 * Don't confuse this with the final byte of the CSI escape; 'a' in this case.
215225 */
216- #define CSI_ARG_FLAG_MORE (1<<30 )
217- #define CSI_ARG_MASK (~(1<<30 ))
226+ #define CSI_ARG_FLAG_MORE (1U<<31 )
227+ #define CSI_ARG_MASK (~(1U<<31 ))
218228
219229#define CSI_ARG_HAS_MORE (a ) ((a) & CSI_ARG_FLAG_MORE)
220230#define CSI_ARG (a ) ((a) & CSI_ARG_MASK)
@@ -293,6 +303,8 @@ void vterm_state_set_palette_color(VTermState *state, int index, const VTermColo
293303void vterm_state_set_bold_highbright (VTermState * state , int bold_is_highbright );
294304int vterm_state_get_penattr (const VTermState * state , VTermAttr attr , VTermValue * val );
295305int vterm_state_set_termprop (VTermState * state , VTermProp prop , VTermValue * val );
306+ void vterm_state_focus_in (VTermState * state );
307+ void vterm_state_focus_out (VTermState * state );
296308const VTermLineInfo * vterm_state_get_lineinfo (const VTermState * state , int row );
297309
298310/* ------------
@@ -357,7 +369,9 @@ typedef enum {
357369 VTERM_DAMAGE_CELL , /* every cell */
358370 VTERM_DAMAGE_ROW , /* entire rows */
359371 VTERM_DAMAGE_SCREEN , /* entire screen */
360- VTERM_DAMAGE_SCROLL /* entire screen + scrollrect */
372+ VTERM_DAMAGE_SCROLL , /* entire screen + scrollrect */
373+
374+ VTERM_N_DAMAGES
361375} VTermDamageSize ;
362376
363377/* Invoke the relevant callbacks to update the screen. */
@@ -384,7 +398,9 @@ typedef enum {
384398 VTERM_ATTR_STRIKE_MASK = 1 << 5 ,
385399 VTERM_ATTR_FONT_MASK = 1 << 6 ,
386400 VTERM_ATTR_FOREGROUND_MASK = 1 << 7 ,
387- VTERM_ATTR_BACKGROUND_MASK = 1 << 8
401+ VTERM_ATTR_BACKGROUND_MASK = 1 << 8 ,
402+
403+ VTERM_ALL_ATTRS_MASK = (1 << 9 ) - 1
388404} VTermAttrMask ;
389405
390406int vterm_screen_get_attrs_extent (const VTermScreen * screen , VTermRect * extent , VTermPos pos , VTermAttrMask attrs );
0 commit comments