@@ -96,7 +96,9 @@ typedef enum {
96
96
VTERM_VALUETYPE_BOOL = 1 ,
97
97
VTERM_VALUETYPE_INT ,
98
98
VTERM_VALUETYPE_STRING ,
99
- VTERM_VALUETYPE_COLOR
99
+ VTERM_VALUETYPE_COLOR ,
100
+
101
+ VTERM_N_VALUETYPES
100
102
} VTermValueType ;
101
103
102
104
typedef union {
@@ -116,7 +118,9 @@ typedef enum {
116
118
VTERM_ATTR_STRIKE , /* bool: 9, 29 */
117
119
VTERM_ATTR_FONT , /* number: 10-19 */
118
120
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
120
124
} VTermAttr ;
121
125
122
126
typedef enum {
@@ -129,20 +133,26 @@ typedef enum {
129
133
VTERM_PROP_REVERSE , /* bool */
130
134
VTERM_PROP_CURSORSHAPE , /* number */
131
135
VTERM_PROP_MOUSE , /* number */
132
- VTERM_PROP_CURSORCOLOR /* string */
136
+ VTERM_PROP_CURSORCOLOR , /* string */
137
+
138
+ VTERM_N_PROPS
133
139
} VTermProp ;
134
140
135
141
enum {
136
142
VTERM_PROP_CURSORSHAPE_BLOCK = 1 ,
137
143
VTERM_PROP_CURSORSHAPE_UNDERLINE ,
138
- VTERM_PROP_CURSORSHAPE_BAR_LEFT
144
+ VTERM_PROP_CURSORSHAPE_BAR_LEFT ,
145
+
146
+ VTERM_N_PROP_CURSORSHAPES
139
147
};
140
148
141
149
enum {
142
150
VTERM_PROP_MOUSE_NONE = 0 ,
143
151
VTERM_PROP_MOUSE_CLICK ,
144
152
VTERM_PROP_MOUSE_DRAG ,
145
- VTERM_PROP_MOUSE_MOVE
153
+ VTERM_PROP_MOUSE_MOVE ,
154
+
155
+ VTERM_N_PROP_MOUSES
146
156
};
147
157
148
158
typedef struct {
@@ -213,8 +223,8 @@ void vterm_mouse_button(VTerm *vt, int button, int pressed, VTermModifier mod);
213
223
*
214
224
* Don't confuse this with the final byte of the CSI escape; 'a' in this case.
215
225
*/
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 ))
218
228
219
229
#define CSI_ARG_HAS_MORE (a ) ((a) & CSI_ARG_FLAG_MORE)
220
230
#define CSI_ARG (a ) ((a) & CSI_ARG_MASK)
@@ -293,6 +303,8 @@ void vterm_state_set_palette_color(VTermState *state, int index, const VTermColo
293
303
void vterm_state_set_bold_highbright (VTermState * state , int bold_is_highbright );
294
304
int vterm_state_get_penattr (const VTermState * state , VTermAttr attr , VTermValue * val );
295
305
int 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 );
296
308
const VTermLineInfo * vterm_state_get_lineinfo (const VTermState * state , int row );
297
309
298
310
/* ------------
@@ -357,7 +369,9 @@ typedef enum {
357
369
VTERM_DAMAGE_CELL , /* every cell */
358
370
VTERM_DAMAGE_ROW , /* entire rows */
359
371
VTERM_DAMAGE_SCREEN , /* entire screen */
360
- VTERM_DAMAGE_SCROLL /* entire screen + scrollrect */
372
+ VTERM_DAMAGE_SCROLL , /* entire screen + scrollrect */
373
+
374
+ VTERM_N_DAMAGES
361
375
} VTermDamageSize ;
362
376
363
377
/* Invoke the relevant callbacks to update the screen. */
@@ -384,7 +398,9 @@ typedef enum {
384
398
VTERM_ATTR_STRIKE_MASK = 1 << 5 ,
385
399
VTERM_ATTR_FONT_MASK = 1 << 6 ,
386
400
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
388
404
} VTermAttrMask ;
389
405
390
406
int vterm_screen_get_attrs_extent (const VTermScreen * screen , VTermRect * extent , VTermPos pos , VTermAttrMask attrs );
0 commit comments