cheat-engine/Cheat Engine/LuaFont.pas
cheatengine@gmail.com c764216478 fix Assign()
2013-04-18 08:31:29 +00:00

128 lines
3.3 KiB
ObjectPascal

unit LuaFont;
{$mode delphi}
interface
uses
Classes, SysUtils, Graphics,lua, lualib, lauxlib, LuaHandler;
procedure initializeLuaFont;
implementation
uses mainunit, LuaClass, LuaObject;
function createFont(L: Plua_State): integer; cdecl;
var f: TFont;
begin
result:=0;
lua_pop(L, lua_gettop(L));
f:=TFont.Create;
f.assign(mainform.font); //initialize it with the best font there is...
luaclass_newClass(L, f);
result:=1;
end;
function Font_getColor(L: PLua_State): integer; cdecl;
var
Font: TFont;
begin
Font:=luaclass_getClassObject(L);
lua_pushinteger(L, Font.Color);
result:=1;
end;
function Font_setColor(L: PLua_State): integer; cdecl;
var
Font: TFont;
begin
Font:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
Font.color:=lua_tointeger(L, -1);
result:=0;
end;
function Font_getSize(L: PLua_State): integer; cdecl;
var
Font: TFont;
begin
Font:=luaclass_getClassObject(L);
lua_pushinteger(L, Font.Size);
result:=1;
end;
function Font_setSize(L: PLua_State): integer; cdecl;
var
Font: TFont;
begin
Font:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
Font.Size:=lua_tointeger(L, -1);
result:=0;
end;
function Font_getName(L: PLua_State): integer; cdecl;
var
Font: TFont;
begin
Font:=luaclass_getClassObject(L);
lua_pushstring(L, Font.Name);
result:=1;
end;
function Font_setName(L: PLua_State): integer; cdecl;
var
Font: TFont;
begin
Font:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
Font.Name:=Lua_ToString(L, -1);
result:=0;
end;
function Font_assign(L: PLua_State): integer; cdecl;
var
Font: TFont;
begin
Font:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
Font.Assign(lua_ToCEUserData(L, 1));
result:=0;
end;
procedure font_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
begin
object_addMetaData(L, metatable, userdata);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getSize', font_getSize);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setSize', font_setSize);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getName', font_getName);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setName', font_setName);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getColor', font_getColor);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setColor', font_setColor);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'assign', font_assign);
Luaclass_addPropertyToTable(L, metatable, userdata, 'Size', font_getSize, font_setSize);
Luaclass_addPropertyToTable(L, metatable, userdata, 'Name', font_getName, font_setName);
Luaclass_addPropertyToTable(L, metatable, userdata, 'Color', font_getColor, font_setColor);
end;
procedure initializeLuaFont;
begin
lua_register(LuaVM, 'createFont', createFont);
lua_register(LuaVM, 'font_getSize', font_getSize);
lua_register(LuaVM, 'font_setSize', font_setSize);
lua_register(LuaVM, 'font_getName', font_getName);
lua_register(LuaVM, 'font_setName', font_setName);
lua_register(LuaVM, 'font_getColor', font_getColor);
lua_register(LuaVM, 'font_setColor', font_setColor);
end;
initialization
luaclass_register(TFont, font_addMetaData);
end.