aboutsummaryrefslogtreecommitdiff
path: root/src/lua_interface.c
diff options
context:
space:
mode:
authormitchell <70453897+667e-11@users.noreply.github.com>2008-09-24 21:05:49 -0400
committermitchell <70453897+667e-11@users.noreply.github.com>2008-09-24 21:05:49 -0400
commit32503fed4cf3066b07384562f10b640026d634a8 (patch)
treef69a9df8364932e9db57327bbf29ed2ade5efbd4 /src/lua_interface.c
parent4554c2ca782ea2667570d81899142af8a642aa3b (diff)
downloadtextadept-32503fed4cf3066b07384562f10b640026d634a8.tar.gz
textadept-32503fed4cf3066b07384562f10b640026d634a8.zip
Added textadept.size property.
Diffstat (limited to 'src/lua_interface.c')
-rw-r--r--src/lua_interface.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/lua_interface.c b/src/lua_interface.c
index 9cf49eea..dc5bfa0b 100644
--- a/src/lua_interface.c
+++ b/src/lua_interface.c
@@ -1099,6 +1099,12 @@ LF l_ta_mt_index(LS *lua) {
gtk_clipboard_get(GDK_SELECTION_CLIPBOARD));
if (text) lua_pushstring(lua, text);
g_free(text);
+ } else if (streq(key, "size")) {
+ lua_newtable(lua);
+ int width, height;
+ gtk_window_get_size(GTK_WINDOW(window), &width, &height);
+ lua_pushnumber(lua, width); lua_rawseti(lua, -2, 1);
+ lua_pushnumber(lua, height); lua_rawseti(lua, -2, 2);
} else lua_rawget(lua, 1);
return 1;
}
@@ -1124,6 +1130,16 @@ LF l_ta_mt_newindex(LS *lua) {
gtk_menu_bar_append(GTK_MENU_BAR(menubar), menu_item);
lua_pop(lua, 1); // value
} set_menubar(menubar);
+ } else if (streq(key, "size")) {
+ const char *errmsg = "textadept.size must be a table ({ width, height }).";
+ if (!lua_istable(lua, 3) || lua_objlen(lua, 3) != 2)
+ luaL_error(lua, errmsg);
+ lua_rawgeti(lua, 3, 1); lua_rawgeti(lua, 3, 2);
+ int width = static_cast<int>(lua_tonumber(lua, -2));
+ int height = static_cast<int>(lua_tonumber(lua, -1));
+ lua_pop(lua, 2); // width, height
+ if (width > 0 && height > 0)
+ gtk_window_resize(GTK_WINDOW(window), width, height);
} else lua_rawset(lua, 1);
return 0;
}
@@ -1364,5 +1380,4 @@ LF l_cf_pm_activate(LS *) {
g_signal_emit_by_name(G_OBJECT(pm_entry), "activate"); return 0;
}
LF l_cf_find_focus(LS *) { find_toggle_focus(); return 0; }
-
LF l_cf_ce_focus(LS *) { ce_toggle_focus(); return 0; }