diff src/libvterm/include/vterm.h @ 13531:9f857e6310b6 v8.0.1639

patch 8.0.1639: libvterm code lags behind master commit https://github.com/vim/vim/commit/b5b49a3b430ea0aaf8cce6b7bc0e444f0211ddfb Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 25 16:20:37 2018 +0200 patch 8.0.1639: libvterm code lags behind master Problem: Libvterm code lags behind master. Solution: Sync to head, solve merge problems.
author Christian Brabandt <cb@256bit.org>
date Sun, 25 Mar 2018 16:30:06 +0200
parents a62b0bbc8834
children 2449b6ce1456
line wrap: on
line diff
--- a/src/libvterm/include/vterm.h
+++ b/src/libvterm/include/vterm.h
@@ -96,7 +96,9 @@ typedef enum {
   VTERM_VALUETYPE_BOOL = 1,
   VTERM_VALUETYPE_INT,
   VTERM_VALUETYPE_STRING,
-  VTERM_VALUETYPE_COLOR
+  VTERM_VALUETYPE_COLOR,
+
+  VTERM_N_VALUETYPES
 } VTermValueType;
 
 typedef union {
@@ -116,7 +118,9 @@ typedef enum {
   VTERM_ATTR_STRIKE,     /* bool:   9, 29 */
   VTERM_ATTR_FONT,       /* number: 10-19 */
   VTERM_ATTR_FOREGROUND, /* color:  30-39 90-97 */
-  VTERM_ATTR_BACKGROUND  /* color:  40-49 100-107 */
+  VTERM_ATTR_BACKGROUND, /* color:  40-49 100-107 */
+
+  VTERM_N_ATTRS
 } VTermAttr;
 
 typedef enum {
@@ -129,20 +133,26 @@ typedef enum {
   VTERM_PROP_REVERSE,           /* bool */
   VTERM_PROP_CURSORSHAPE,       /* number */
   VTERM_PROP_MOUSE,             /* number */
-  VTERM_PROP_CURSORCOLOR        /* string */
+  VTERM_PROP_CURSORCOLOR,       /* string */
+
+  VTERM_N_PROPS
 } VTermProp;
 
 enum {
   VTERM_PROP_CURSORSHAPE_BLOCK = 1,
   VTERM_PROP_CURSORSHAPE_UNDERLINE,
-  VTERM_PROP_CURSORSHAPE_BAR_LEFT
+  VTERM_PROP_CURSORSHAPE_BAR_LEFT,
+
+  VTERM_N_PROP_CURSORSHAPES
 };
 
 enum {
   VTERM_PROP_MOUSE_NONE = 0,
   VTERM_PROP_MOUSE_CLICK,
   VTERM_PROP_MOUSE_DRAG,
-  VTERM_PROP_MOUSE_MOVE
+  VTERM_PROP_MOUSE_MOVE,
+
+  VTERM_N_PROP_MOUSES
 };
 
 typedef struct {
@@ -213,8 +223,8 @@ void vterm_mouse_button(VTerm *vt, int b
  *
  * Don't confuse this with the final byte of the CSI escape; 'a' in this case.
  */
-#define CSI_ARG_FLAG_MORE (1<<30)
-#define CSI_ARG_MASK      (~(1<<30))
+#define CSI_ARG_FLAG_MORE (1U<<31)
+#define CSI_ARG_MASK      (~(1U<<31))
 
 #define CSI_ARG_HAS_MORE(a) ((a) & CSI_ARG_FLAG_MORE)
 #define CSI_ARG(a)          ((a) & CSI_ARG_MASK)
@@ -293,6 +303,8 @@ void vterm_state_set_palette_color(VTerm
 void vterm_state_set_bold_highbright(VTermState *state, int bold_is_highbright);
 int  vterm_state_get_penattr(const VTermState *state, VTermAttr attr, VTermValue *val);
 int  vterm_state_set_termprop(VTermState *state, VTermProp prop, VTermValue *val);
+void vterm_state_focus_in(VTermState *state);
+void vterm_state_focus_out(VTermState *state);
 const VTermLineInfo *vterm_state_get_lineinfo(const VTermState *state, int row);
 
 /* ------------
@@ -357,7 +369,9 @@ typedef enum {
   VTERM_DAMAGE_CELL,    /* every cell */
   VTERM_DAMAGE_ROW,     /* entire rows */
   VTERM_DAMAGE_SCREEN,  /* entire screen */
-  VTERM_DAMAGE_SCROLL   /* entire screen + scrollrect */
+  VTERM_DAMAGE_SCROLL,  /* entire screen + scrollrect */
+
+  VTERM_N_DAMAGES
 } VTermDamageSize;
 
 /* Invoke the relevant callbacks to update the screen. */
@@ -384,7 +398,9 @@ typedef enum {
   VTERM_ATTR_STRIKE_MASK     = 1 << 5,
   VTERM_ATTR_FONT_MASK       = 1 << 6,
   VTERM_ATTR_FOREGROUND_MASK = 1 << 7,
-  VTERM_ATTR_BACKGROUND_MASK = 1 << 8
+  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);