Browse Source

Lua plugin: Add dp_ratio attribute to Rml::Contexts providing access to its Get-/SetDensityIndependentPixelRatio methods (#386)

shubin 3 years ago
parent
commit
fc0b04b5bf
2 changed files with 21 additions and 0 deletions
  1. 19 0
      Source/Lua/Context.cpp
  2. 2 0
      Source/Lua/Context.h

+ 19 - 0
Source/Lua/Context.cpp

@@ -233,6 +233,14 @@ int ContextGetAttrdocuments(lua_State* L)
     return 1;
     return 1;
 }
 }
 
 
+int ContextGetAttrdp_ratio(lua_State* L)
+{
+    Context* cont = LuaType<Context>::check(L,1);
+    float dp_ratio = cont->GetDensityIndependentPixelRatio();
+    lua_pushnumber(L, dp_ratio);
+    return 1;
+}
+
 int ContextGetAttrfocus_element(lua_State* L)
 int ContextGetAttrfocus_element(lua_State* L)
 {
 {
     Context* cont = LuaType<Context>::check(L,1);
     Context* cont = LuaType<Context>::check(L,1);
@@ -276,6 +284,15 @@ int ContextSetAttrdimensions(lua_State* L)
     return 0;
     return 0;
 }
 }
 
 
+int ContextSetAttrdp_ratio(lua_State* L)
+{
+    Context* cont = LuaType<Context>::check(L,1);
+    RMLUI_CHECK_OBJ(cont);
+    lua_Number dp_ratio = luaL_checknumber(L,2);
+    cont->SetDensityIndependentPixelRatio((float)dp_ratio);
+    return 0;
+}
+
 
 
 RegType<Context> ContextMethods[] =
 RegType<Context> ContextMethods[] =
 {
 {
@@ -304,6 +321,7 @@ luaL_Reg ContextGetters[] =
 {
 {
     RMLUI_LUAGETTER(Context,dimensions)
     RMLUI_LUAGETTER(Context,dimensions)
     RMLUI_LUAGETTER(Context,documents)
     RMLUI_LUAGETTER(Context,documents)
+    RMLUI_LUAGETTER(Context,dp_ratio)
     RMLUI_LUAGETTER(Context,focus_element)
     RMLUI_LUAGETTER(Context,focus_element)
     RMLUI_LUAGETTER(Context,hover_element)
     RMLUI_LUAGETTER(Context,hover_element)
     RMLUI_LUAGETTER(Context,name)
     RMLUI_LUAGETTER(Context,name)
@@ -314,6 +332,7 @@ luaL_Reg ContextGetters[] =
 luaL_Reg ContextSetters[] =
 luaL_Reg ContextSetters[] =
 {
 {
     RMLUI_LUASETTER(Context,dimensions)
     RMLUI_LUASETTER(Context,dimensions)
+    RMLUI_LUASETTER(Context,dp_ratio)
     { nullptr, nullptr },
     { nullptr, nullptr },
 };
 };
 
 

+ 2 - 0
Source/Lua/Context.h

@@ -50,6 +50,7 @@ int ContextUpdate(lua_State* L, Context* obj);
 //getters
 //getters
 int ContextGetAttrdimensions(lua_State* L);
 int ContextGetAttrdimensions(lua_State* L);
 int ContextGetAttrdocuments(lua_State* L);
 int ContextGetAttrdocuments(lua_State* L);
+int ContextGetAttrdp_ratio(lua_State* L);
 int ContextGetAttrfocus_element(lua_State* L);
 int ContextGetAttrfocus_element(lua_State* L);
 int ContextGetAttrhover_element(lua_State* L);
 int ContextGetAttrhover_element(lua_State* L);
 int ContextGetAttrname(lua_State* L);
 int ContextGetAttrname(lua_State* L);
@@ -57,6 +58,7 @@ int ContextGetAttrroot_element(lua_State* L);
 
 
 //setters
 //setters
 int ContextSetAttrdimensions(lua_State* L);
 int ContextSetAttrdimensions(lua_State* L);
+int ContextSetAttrdp_ratio(lua_State* L);
 
 
 
 
 extern RegType<Context> ContextMethods[];
 extern RegType<Context> ContextMethods[];