diff options
author | Paul LeoNerd Evans <leonerd@leonerd.org.uk> | 2014-12-29 12:48:53 +0000 |
---|---|---|
committer | Paul LeoNerd Evans <leonerd@leonerd.org.uk> | 2014-12-29 12:48:53 +0000 |
commit | 5517d6ccf386c106d3b329b573abb23c14f93af7 (patch) | |
tree | 755788b348092a4996c831a8501894f7a47b799b | |
parent | 66f084a3d292a073d36ef0896e4413b11d17d42e (diff) |
Add vterm_*_get_cbdata() to obtain the callback data pointer from each layer
-rw-r--r-- | include/vterm.h | 11 | ||||
-rw-r--r-- | src/screen.c | 5 | ||||
-rw-r--r-- | src/state.c | 5 | ||||
-rw-r--r-- | src/vterm.c | 5 |
4 files changed, 23 insertions, 3 deletions
diff --git a/include/vterm.h b/include/vterm.h index d247b65..75fd3c4 100644 --- a/include/vterm.h +++ b/include/vterm.h @@ -175,7 +175,8 @@ typedef struct { int (*resize)(int rows, int cols, void *user); } VTermParserCallbacks; -void vterm_parser_set_callbacks(VTerm *vt, const VTermParserCallbacks *callbacks, void *user); +void vterm_parser_set_callbacks(VTerm *vt, const VTermParserCallbacks *callbacks, void *user); +void *vterm_parser_get_cbdata(VTerm *vt); // ----------- // State layer @@ -198,8 +199,10 @@ typedef struct { VTermState *vterm_obtain_state(VTerm *vt); +void vterm_state_set_callbacks(VTermState *state, const VTermStateCallbacks *callbacks, void *user); +void *vterm_state_get_cbdata(VTermState *state); + void vterm_state_reset(VTermState *state, int hard); -void vterm_state_set_callbacks(VTermState *state, const VTermStateCallbacks *callbacks, void *user); void vterm_state_get_cursorpos(const VTermState *state, VTermPos *cursorpos); void vterm_state_get_default_colors(const VTermState *state, VTermColor *default_fg, VTermColor *default_bg); void vterm_state_get_palette_color(const VTermState *state, int index, VTermColor *col); @@ -246,8 +249,10 @@ typedef struct { VTermScreen *vterm_obtain_screen(VTerm *vt); +void vterm_screen_set_callbacks(VTermScreen *screen, const VTermScreenCallbacks *callbacks, void *user); +void *vterm_screen_get_cbdata(VTermScreen *screen); + void vterm_screen_enable_altscreen(VTermScreen *screen, int altscreen); -void vterm_screen_set_callbacks(VTermScreen *screen, const VTermScreenCallbacks *callbacks, void *user); typedef enum { VTERM_DAMAGE_CELL, /* every cell */ diff --git a/src/screen.c b/src/screen.c index 6f4b312..ed92ada 100644 --- a/src/screen.c +++ b/src/screen.c @@ -842,6 +842,11 @@ void vterm_screen_set_callbacks(VTermScreen *screen, const VTermScreenCallbacks screen->cbdata = user; } +void *vterm_screen_get_cbdata(VTermScreen *screen) +{ + return screen->cbdata; +} + void vterm_screen_flush_damage(VTermScreen *screen) { if(screen->pending_scrollrect.start_row != -1) { diff --git a/src/state.c b/src/state.c index 9c22da0..0907fa6 100644 --- a/src/state.c +++ b/src/state.c @@ -1706,6 +1706,11 @@ void vterm_state_set_callbacks(VTermState *state, const VTermStateCallbacks *cal } } +void *vterm_state_get_cbdata(VTermState *state) +{ + return state->cbdata; +} + int vterm_state_set_termprop(VTermState *state, VTermProp prop, VTermValue *val) { /* Only store the new value of the property if usercode said it was happy. diff --git a/src/vterm.c b/src/vterm.c index 78eed1e..3ff1cbd 100644 --- a/src/vterm.c +++ b/src/vterm.c @@ -201,6 +201,11 @@ void vterm_parser_set_callbacks(VTerm *vt, const VTermParserCallbacks *callbacks vt->cbdata = user; } +void *vterm_parser_get_cbdata(VTerm *vt) +{ + return vt->cbdata; +} + VTermValueType vterm_get_attr_type(VTermAttr attr) { switch(attr) { |