diff options
author | Thomas White <taw@bitwiz.org.uk> | 2014-12-24 17:22:49 +0000 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2014-12-24 17:22:49 +0000 |
commit | d36470bcebf57644464754f5ef045a4f8d057c2b (patch) | |
tree | f4ee2561d79d7d94ade9d212d3ced14ffbd4b9db /src/sc_interp.h | |
parent | 29de55f6415e7dc547f84e7e204e1b93099a0980 (diff) |
Structure for callback mechanism
Diffstat (limited to 'src/sc_interp.h')
-rw-r--r-- | src/sc_interp.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/sc_interp.h b/src/sc_interp.h index a4e9f43..017f9ea 100644 --- a/src/sc_interp.h +++ b/src/sc_interp.h @@ -31,6 +31,7 @@ struct presentation; typedef struct _scinterp SCInterpreter; +typedef struct _sccallbacklist SCCallbackList; extern SCInterpreter *sc_interp_new(PangoContext *pc, struct frame *top); extern void sc_interp_destroy(SCInterpreter *scin); @@ -45,6 +46,14 @@ extern void sc_interp_run_stylesheet(SCInterpreter *scin, SCBlock *bl); extern void add_macro(SCInterpreter *scin, const char *mname, const char *contents); + +/* Callback lists */ +extern SCCallbackList *sc_callback_list_new(); +extern void sc_callback_list_free(SCCallbackList *cbl); +extern void sc_callback_list_add_callback(SCCallbackList *cbl, const char *name, + cairo_surface_t *(*func)(SCBlock *bl, void *p)); +extern void sc_interp_set_callbacks(SCInterpreter *scin, SCCallbackList *cbl); + /* Get the current state of the interpreter */ extern struct frame *sc_interp_get_frame(SCInterpreter *scin); extern PangoFont *sc_interp_get_font(SCInterpreter *scin); @@ -53,6 +62,7 @@ extern double *sc_interp_get_fgcol(SCInterpreter *scin); extern int sc_interp_get_ascent(SCInterpreter *scin); extern int sc_interp_get_height(SCInterpreter *scin); extern void update_geom(struct frame *fr); +extern SCBlock *sc_interp_get_macro_real_block(SCInterpreter *scin); struct style_id |