cheat-engine/Cheat Engine/LuaPanel.pas
2020-12-10 23:39:40 +01:00

170 lines
5.3 KiB
ObjectPascal
Executable file

unit LuaPanel;
{$mode delphi}
interface
uses
Classes, SysUtils, lua, lualib, lauxlib, ExtCtrls, betterControls;
procedure initializeLuaPanel;
procedure panel_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
implementation
uses luaclass, LuaCustomControl, pluginexports, luahandler;
function createPanel(L: Plua_State): integer; cdecl;
var parameters: integer;
f,p: pointer;
begin
result:=0;
parameters:=lua_gettop(L);
if parameters=1 then
begin
f:=lua_toceuserdata(L, -1);
p:=ce_createPanel(f);
luaclass_newClass(L, p);
result:=1;
end;
end;
function panel_getAlignment(L: PLua_State): integer; cdecl;
var
panel: Tcustompanel;
begin
panel:=luaclass_getClassObject(L);
lua_pushinteger(L, integer(panel.Alignment));
result:=1;
end;
function panel_setAlignment(L: PLua_State): integer; cdecl;
var
panel: Tcustompanel;
begin
result:=0;
panel:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
panel.Alignment:=TAlignment(lua_tointeger(L,-1));
end;
function panel_getBevelInner(L: PLua_State): integer; cdecl;
var
panel: Tcustompanel;
begin
panel:=luaclass_getClassObject(L);
lua_pushinteger(L, integer(panel.BevelInner));
result:=1;
end;
function panel_setBevelInner(L: PLua_State): integer; cdecl;
var
panel: Tcustompanel;
begin
result:=0;
panel:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
panel.BevelInner:=TPanelBevel(lua_tointeger(L,-1));
end;
function panel_getBevelOuter(L: PLua_State): integer; cdecl;
var
panel: Tcustompanel;
begin
panel:=luaclass_getClassObject(L);
lua_pushinteger(L, integer(panel.BevelOuter));
result:=1;
end;
function panel_setBevelOuter(L: PLua_State): integer; cdecl;
var
panel: Tcustompanel;
begin
result:=0;
panel:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
panel.BevelOuter:=TPanelBevel(lua_tointeger(L,-1));
end;
function panel_getBevelWidth(L: PLua_State): integer; cdecl;
var
panel: Tcustompanel;
begin
panel:=luaclass_getClassObject(L);
lua_pushinteger(L, integer(panel.BevelWidth));
result:=1;
end;
function panel_setBevelWidth(L: PLua_State): integer; cdecl;
var
panel: Tcustompanel;
begin
result:=0;
panel:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
panel.BevelWidth:=TBevelWidth(lua_tointeger(L,-1));
end;
function panel_getFullRepaint(L: PLua_State): integer; cdecl;
var
panel: Tcustompanel;
begin
panel:=luaclass_getClassObject(L);
lua_pushboolean(L, panel.FullRepaint);
result:=1;
end;
function panel_setFullRepaint(L: PLua_State): integer; cdecl;
var
panel: Tcustompanel;
begin
result:=0;
panel:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
panel.FullRepaint:=lua_toboolean(L,-1);
end;
procedure panel_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
begin
customcontrol_addMetaData(L, metatable, userdata);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getAlignment', panel_getAlignment);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setAlignment', panel_setAlignment);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getBevelInner', panel_getBevelInner);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setBevelInner', panel_setBevelInner);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getBevelOuter', panel_getBevelOuter);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setBevelOuter', panel_setBevelOuter);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getBevelWidth', panel_getBevelWidth);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setBevelWidth', panel_setBevelWidth);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getFullRepaint', panel_getFullRepaint);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setFullRepaint', panel_setFullRepaint);
luaclass_addPropertyToTable(L, metatable, userdata, 'Alignment', panel_getAlignment, panel_setAlignment);
luaclass_addPropertyToTable(L, metatable, userdata, 'BevelInner', panel_getBevelInner, panel_setBevelInner);
luaclass_addPropertyToTable(L, metatable, userdata, 'BevelOuter', panel_getBevelOuter, panel_setBevelOuter);
luaclass_addPropertyToTable(L, metatable, userdata, 'BevelWidth', panel_getBevelWidth, panel_setBevelWidth);
luaclass_addPropertyToTable(L, metatable, userdata, 'FullRepaint', panel_getFullRepaint, panel_setFullRepaint);
end;
procedure initializeLuaPanel;
begin
lua_register(LuaVM, 'createPanel', createPanel);
lua_register(LuaVM, 'panel_getAlignment', panel_getAlignment);
lua_register(LuaVM, 'panel_setAlignment', panel_setAlignment);
lua_register(LuaVM, 'panel_getBevelInner', panel_getBevelInner);
lua_register(LuaVM, 'panel_setBevelInner', panel_setBevelInner);
lua_register(LuaVM, 'panel_getBevelOuter', panel_getBevelOuter);
lua_register(LuaVM, 'panel_setBevelOuter', panel_setBevelOuter);
lua_register(LuaVM, 'panel_getBevelWidth', panel_getBevelWidth);
lua_register(LuaVM, 'panel_setBevelWidth', panel_setBevelWidth);
lua_register(LuaVM, 'panel_getFullRepaint', panel_getFullRepaint);
lua_register(LuaVM, 'panel_setFullRepaint', panel_setFullRepaint);
end;
initialization
luaclass_register(TCustomPanel, panel_addMetaData);
end.