aboutsummaryrefslogtreecommitdiff
path: root/src/sc_interp.h
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2014-12-24 17:22:49 +0000
committerThomas White <taw@bitwiz.org.uk>2014-12-24 17:22:49 +0000
commitd36470bcebf57644464754f5ef045a4f8d057c2b (patch)
treef4ee2561d79d7d94ade9d212d3ced14ffbd4b9db /src/sc_interp.h
parent29de55f6415e7dc547f84e7e204e1b93099a0980 (diff)
Structure for callback mechanism
Diffstat (limited to 'src/sc_interp.h')
-rw-r--r--src/sc_interp.h10
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