aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorAdam <adamdharrison@gmail.com>2021-06-24 12:47:16 -0400
committerGitHub <noreply@github.com>2021-06-24 12:47:16 -0400
commit83a604dfb76649e06e983799daa00a8d8a57cc59 (patch)
tree1e8ee21176340d2c7cd537f40d083ddd1f09e10e /src/api
parent88704c6ecbdf5b5b4c1e3e727457ecfc5594c8c8 (diff)
parent1cf0f2009caeac07f5d7345107d810b214e8896e (diff)
downloadlite-xl-83a604dfb76649e06e983799daa00a8d8a57cc59.tar.gz
lite-xl-83a604dfb76649e06e983799daa00a8d8a57cc59.zip
Merge pull request #296 from lite-xl/font-copy-api
Add a C API copy method for font_desc objects
Diffstat (limited to 'src/api')
-rw-r--r--src/api/renderer_font.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/api/renderer_font.c b/src/api/renderer_font.c
index f510da70..7c6587ea 100644
--- a/src/api/renderer_font.c
+++ b/src/api/renderer_font.c
@@ -55,6 +55,21 @@ static int f_load(lua_State *L) {
}
+static int f_copy(lua_State *L) {
+ FontDesc *self = luaL_checkudata(L, 1, API_TYPE_FONT);
+ float size;
+ if (lua_gettop(L) >= 2) {
+ size = luaL_checknumber(L, 2);
+ } else {
+ size = self->size;
+ }
+ FontDesc *new_font_desc = lua_newuserdata(L, font_desc_alloc_size(self->filename));
+ font_desc_init(new_font_desc, self->filename, size, self->options);
+ luaL_setmetatable(L, API_TYPE_FONT);
+ return 1;
+}
+
+
static int f_set_tab_size(lua_State *L) {
FontDesc *self = luaL_checkudata(L, 1, API_TYPE_FONT);
int n = luaL_checknumber(L, 2);
@@ -123,6 +138,7 @@ static int f_set_size(lua_State *L) {
static const luaL_Reg lib[] = {
{ "__gc", f_gc },
{ "load", f_load },
+ { "copy", f_copy },
{ "set_tab_size", f_set_tab_size },
{ "get_width", f_get_width },
{ "get_width_subpixel", f_get_width_subpixel },