79 lines
1.9 KiB
ObjectPascal
79 lines
1.9 KiB
ObjectPascal
unit LuaPen;
|
|
|
|
{$mode delphi}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, Graphics,lua, lualib, lauxlib,LuaHandler;
|
|
|
|
procedure initializeLuaPen;
|
|
|
|
implementation
|
|
|
|
uses luaclass, LuaObject;
|
|
|
|
function pen_getColor(L: PLua_State): integer; cdecl;
|
|
var
|
|
pen: TPen;
|
|
begin
|
|
pen:=luaclass_getClassObject(L);
|
|
lua_pushinteger(L, pen.Color);
|
|
result:=1;
|
|
end;
|
|
|
|
function pen_setColor(L: PLua_State): integer; cdecl;
|
|
var
|
|
pen: TPen;
|
|
begin
|
|
pen:=luaclass_getClassObject(L);
|
|
if lua_gettop(L)>=1 then
|
|
pen.color:=lua_tointeger(L, -1);
|
|
result:=1;
|
|
end;
|
|
|
|
function pen_getWidth(L: PLua_State): integer; cdecl;
|
|
var
|
|
pen: TPen;
|
|
begin
|
|
pen:=luaclass_getClassObject(L);
|
|
lua_pushinteger(L, pen.Width);
|
|
result:=1;
|
|
end;
|
|
|
|
function pen_setWidth(L: PLua_State): integer; cdecl;
|
|
var
|
|
pen: TPen;
|
|
begin
|
|
pen:=luaclass_getClassObject(L);
|
|
if lua_gettop(L)>=1 then
|
|
pen.Width:=lua_tointeger(L, -1);
|
|
result:=1;
|
|
end;
|
|
|
|
procedure pen_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
object_addMetaData(L, metatable, userdata);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getColor', pen_getColor);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setColor', pen_setColor);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getWidth', pen_getWidth);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setWidth', pen_setWidth);
|
|
Luaclass_addPropertyToTable(L, metatable, userdata, 'Color', pen_getColor, pen_setColor);
|
|
Luaclass_addPropertyToTable(L, metatable, userdata, 'Width', pen_getWidth, pen_setWidth);
|
|
end;
|
|
|
|
procedure initializeLuaPen;
|
|
begin
|
|
lua_register(LuaVM, 'pen_getColor', pen_getColor);
|
|
lua_register(LuaVM, 'pen_setColor', pen_setColor);
|
|
lua_register(LuaVM, 'pen_getWidth', pen_getWidth);
|
|
lua_register(LuaVM, 'pen_setWidth', pen_setWidth);
|
|
|
|
end;
|
|
|
|
initialization
|
|
luaclass_register(TPen, pen_addMetaData);
|
|
|
|
end.
|
|
|