From 13a95942b6e33033e4bbbe27cc8cafc98c6924a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Sun, 20 Dec 2015 11:04:20 +0100 Subject: vis: refactor Lua integration Lua support can now be disabled at compile time using: $ make CONFIG_LUA=0 This commit also adds an initial Lua API and provides a few default hooks. We now also require Lua >= 5.2 due to the uservalue constructs. In principle the same functionality could be implemented using function environments from Lua 5.1. --- vis.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'vis.h') diff --git a/vis.h b/vis.h index b5c48ea..e007710 100644 --- a/vis.h +++ b/vis.h @@ -13,6 +13,16 @@ typedef struct Win Win; #include "view.h" #include "register.h" +typedef struct { + void (*vis_start)(Vis*); + void (*vis_quit)(Vis*); + void (*file_open)(Vis*, File*); + void (*file_save)(Vis*, File*); + void (*file_close)(Vis*, File*); + void (*win_open)(Vis*, Win*); + void (*win_close)(Vis*, Win*); +} VisEvent; + typedef union { /* various types of arguments passed to key action functions */ bool b; int i; @@ -40,7 +50,7 @@ typedef struct { /* a key binding either refers to an action or an ali } KeyBinding; /* creates a new editor instance using the specified user interface */ -Vis *vis_new(Ui*); +Vis *vis_new(Ui*, VisEvent*); /* frees all resources associated with this editor instance, terminates ui */ void vis_free(Vis*); /* instructs the user interface to draw to an internal buffer */ -- cgit v1.2.3