
scale the custombutton by default add some extra safety checks to mono/dotnet info trainers now accept high dpi and replace the default buttons with custombuttons
776 lines
19 KiB
ObjectPascal
Executable File
776 lines
19 KiB
ObjectPascal
Executable File
unit LuaForm;
|
|
|
|
{$mode delphi}
|
|
|
|
interface
|
|
|
|
uses
|
|
|
|
Classes, lua, betterControls;
|
|
|
|
procedure initializeLuaForm;
|
|
|
|
procedure customForm_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
|
|
implementation
|
|
|
|
uses
|
|
{$ifdef windows}
|
|
jwawindows, windows,
|
|
{$endif}
|
|
{$ifdef darwin}
|
|
mactypes,
|
|
{$endif}
|
|
SysUtils, Controls, menus, lualib, lauxlib, LuaHandler,
|
|
LuaCaller, pluginexports, forms, dialogs, ceguicomponents, XMLWrite, XMLRead,
|
|
Graphics, DOM, cefuncproc, newkernelhandler, typinfo, LCLIntf, LCLProc,
|
|
LuaClass, LuaCustomControl;
|
|
|
|
resourcestring
|
|
rsTheGivenFormIsNotCompatible = 'The given form is not compatible. Formclass=';
|
|
|
|
function createForm(L: Plua_State): integer; cdecl;
|
|
var f: tcustomform;
|
|
parameters: integer;
|
|
visible: boolean;
|
|
begin
|
|
result:=1;
|
|
parameters:=lua_gettop(L);
|
|
|
|
if parameters=1 then
|
|
visible:=lua_toboolean(L,-1)
|
|
else
|
|
visible:=true;
|
|
|
|
lua_pop(L, lua_gettop(L));
|
|
|
|
f:=ce_createForm(visible); //not relly a customform, but it inherits from it, so good enough
|
|
f.PopupMode:=pmAuto;
|
|
luaclass_newClass(L, f);
|
|
result:=1;
|
|
|
|
end;
|
|
|
|
|
|
function customform_fixDPI(L: PLua_State): integer; cdecl;
|
|
var
|
|
c: TCustomForm;
|
|
begin
|
|
c:=luaclass_getClassObject(L);
|
|
c.AutoAdjustLayout(lapAutoAdjustForDPI,c.DesignTimePPI,screen.PixelsPerInch,c.width,scaley(c.width,c.DesignTimePPI));
|
|
result:=0;
|
|
end;
|
|
|
|
|
|
function customform_getOnClose(L: PLua_State): integer; cdecl;
|
|
var
|
|
c: TCustomForm;
|
|
begin
|
|
c:=luaclass_getClassObject(L);
|
|
LuaCaller_pushMethodProperty(L, TMethod(c.OnClose), 'TCloseEvent');
|
|
result:=1;
|
|
end;
|
|
|
|
function customform_setOnClose(L: PLua_State): integer; cdecl;
|
|
var
|
|
parameters: integer;
|
|
control: TCustomForm;
|
|
f: integer;
|
|
routine: string;
|
|
|
|
lc: TLuaCaller;
|
|
|
|
// clickroutine: integer;
|
|
begin
|
|
control:=luaclass_getClassObject(L);
|
|
result:=0;
|
|
if lua_gettop(L)>=1 then
|
|
begin
|
|
CleanupLuaCall(tmethod(control.onClose));
|
|
control.onClose:=nil;
|
|
|
|
if lua_isfunction(L,1) then
|
|
begin
|
|
routine:=Lua_ToString(L,1);
|
|
f:=luaL_ref(L,LUA_REGISTRYINDEX);
|
|
|
|
lc:=TLuaCaller.create;
|
|
lc.luaroutineIndex:=f;
|
|
control.OnClose:=lc.CloseEvent;
|
|
end
|
|
else
|
|
if lua_isstring(L,1) then
|
|
begin
|
|
routine:=lua_tostring(L,1);
|
|
lc:=TLuaCaller.create;
|
|
lc.luaroutine:=routine;
|
|
control.OnClose:=lc.CloseEvent;
|
|
end;
|
|
|
|
end;
|
|
end;
|
|
|
|
function customform_centerScreen(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: TCustomForm;
|
|
begin
|
|
f:=luaclass_getClassObject(L);
|
|
f.Position:=poScreenCenter;
|
|
result:=0;
|
|
end;
|
|
|
|
function customform_hide(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: TCustomForm;
|
|
begin
|
|
f:=luaclass_getClassObject(L);
|
|
f.Hide;
|
|
result:=0;
|
|
end;
|
|
|
|
function customform_close(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: Tcustomform;
|
|
begin
|
|
result:=0;
|
|
f:=luaclass_getClassObject(L);
|
|
f.close;
|
|
end;
|
|
|
|
function customform_bringToFront(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: Tcustomform;
|
|
begin
|
|
result:=0;
|
|
f:=luaclass_getClassObject(L);
|
|
f.BringToFront;
|
|
end;
|
|
|
|
function customform_showModal(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: tcustomform;
|
|
begin
|
|
result:=1;
|
|
f:=luaclass_getClassObject(L);
|
|
lua_pushinteger(L, f.ShowModal);
|
|
end;
|
|
|
|
|
|
function customform_isForegroundWindow(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: tcustomform;
|
|
begin
|
|
result:=1;
|
|
f:=luaclass_getClassObject(L);
|
|
lua_pushboolean(L, GetForegroundWindow=f.Handle);
|
|
end;
|
|
|
|
function customform_getMenu(L: PLua_State): integer; cdecl;
|
|
var
|
|
parameters: integer;
|
|
form: TCustomForm;
|
|
begin
|
|
result:=1;
|
|
form:=luaclass_getClassObject(L);
|
|
luaclass_newClass(L, form.menu);
|
|
end;
|
|
|
|
function customform_setMenu(L: PLua_State): integer; cdecl;
|
|
var
|
|
form: TCustomForm;
|
|
menu: TMainmenu;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
if lua_gettop(L)>=1 then
|
|
begin
|
|
menu:=lua_ToCEUserData(L,-1);
|
|
form.Menu:=menu;
|
|
end;
|
|
end;
|
|
|
|
|
|
function customform_getBorderstyle(L: PLua_State): integer; cdecl;
|
|
var
|
|
form: TCustomForm;
|
|
begin
|
|
form:=luaclass_getClassObject(L);
|
|
lua_pushinteger(L, integer(form.Borderstyle));
|
|
result:=1;
|
|
end;
|
|
|
|
function customform_setBorderstyle(L: PLua_State): integer; cdecl;
|
|
var
|
|
form: TCustomForm;
|
|
Borderstyle: TBorderStyle;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
if lua_gettop(L)>=1 then
|
|
begin
|
|
Borderstyle:=TBorderstyle(lua_tointeger(L,-1));
|
|
form.Borderstyle:=Borderstyle;
|
|
end;
|
|
end;
|
|
|
|
|
|
function customform_show(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: TCustomForm;
|
|
begin
|
|
result:=0;
|
|
f:=luaclass_getClassObject(L);
|
|
f.Show;
|
|
end;
|
|
|
|
function customform_printToRasterImage(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: TCustomForm;
|
|
ri: TRasterImage;
|
|
begin
|
|
result:=0;
|
|
{$ifdef windows}
|
|
f:=luaclass_getClassObject(L);
|
|
|
|
|
|
if lua_gettop(L)>=1 then
|
|
begin
|
|
ri:=lua_toceuserdata(L, -1);
|
|
|
|
ri.Width:=f.ClientWidth;
|
|
ri.Height:=f.ClientHeight;
|
|
|
|
printwindow(f.handle, ri.Canvas.Handle, PW_CLIENTONLY);
|
|
end;
|
|
{$endif}
|
|
end;
|
|
|
|
function customform_dragNow(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: TCustomForm;
|
|
begin
|
|
result:=0;
|
|
{$ifdef windows}
|
|
f:=luaclass_getClassObject(L);
|
|
ReleaseCapture;
|
|
SendMessageA(f.Handle,WM_SYSCOMMAND,$F012,0);
|
|
{$endif}
|
|
end;
|
|
|
|
function customform_saveFormPosition(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: TCustomForm;
|
|
values: array of integer;
|
|
al: size_t;
|
|
i: integer;
|
|
begin
|
|
result:=0;
|
|
f:=luaclass_getClassObject(L);
|
|
|
|
if f.name='' then exit(0);
|
|
|
|
|
|
if (lua_gettop(L)>=1) and (lua_istable(L,1)) then
|
|
begin
|
|
al:=lua_objlen(L,1);
|
|
setlength(values, al);
|
|
|
|
for i:=1 to al do
|
|
begin
|
|
lua_pushinteger(L,i);
|
|
lua_gettable(L,1);
|
|
values[i-1]:=lua_tointeger(L,-1);
|
|
lua_pop(L,1);
|
|
end;
|
|
|
|
SaveFormPosition(f, values);
|
|
end
|
|
else
|
|
SaveFormPosition(f);
|
|
end;
|
|
|
|
function customform_loadFormPosition(L: Plua_State): integer; cdecl;
|
|
var
|
|
f: TCustomForm;
|
|
values: array of integer;
|
|
i: integer;
|
|
begin
|
|
result:=0;
|
|
f:=luaclass_getClassObject(L);
|
|
if f.name='' then exit(0);
|
|
|
|
setlength(values,0);
|
|
if LoadFormPosition(f, values) then
|
|
begin
|
|
lua_pushboolean(L, true);
|
|
if length(values)>0 then
|
|
begin
|
|
lua_createtable(L,length(values),0);
|
|
for i:=1 to length(values) do
|
|
begin
|
|
lua_pushinteger(L,i);
|
|
lua_pushinteger(L,values[i-1]);
|
|
lua_settable(L,-3);
|
|
end;
|
|
|
|
exit(2);
|
|
end
|
|
else
|
|
exit(1);
|
|
end
|
|
else
|
|
begin
|
|
lua_pushboolean(L,false);
|
|
exit(1);
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
function createFormFromFile(L: Plua_State): integer; cdecl;
|
|
var filename: string;
|
|
f: TCEForm;
|
|
begin
|
|
result:=0;
|
|
if lua_gettop(L)=1 then
|
|
begin
|
|
filename:=Lua_ToString(L, -1);
|
|
lua_pop(L, lua_gettop(L));
|
|
|
|
f:=TCEForm.Createnew(nil); //6.3: was application
|
|
f.LoadFromFile(filename);
|
|
|
|
|
|
|
|
luaclass_newClass(L, f);
|
|
result:=1;
|
|
end
|
|
else
|
|
lua_pop(L, lua_gettop(L));
|
|
end;
|
|
|
|
function createFormFromStream(L: Plua_State): integer; cdecl;
|
|
var stream: tstream;
|
|
f: TCEForm;
|
|
begin
|
|
result:=0;
|
|
if lua_gettop(L)=1 then
|
|
begin
|
|
stream:=lua_ToCEUserData(L, 1);
|
|
lua_pop(L, lua_gettop(L));
|
|
|
|
f:=TCEForm.Createnew(nil);
|
|
f.LoadFromStream(stream);
|
|
|
|
|
|
|
|
luaclass_newClass(L, f);
|
|
result:=1;
|
|
end
|
|
else
|
|
lua_pop(L, lua_gettop(L));
|
|
end;
|
|
|
|
function ceform_saveToStream(L: Plua_State): integer; cdecl;
|
|
var parameters: integer;
|
|
f: TCEForm;
|
|
s: TStream;
|
|
begin
|
|
result:=0;
|
|
f:=luaclass_getClassObject(L);
|
|
|
|
if lua_gettop(L)>=1 then
|
|
begin
|
|
s:=lua_ToCEUserData(L, 1);
|
|
lua_pop(L, lua_gettop(L));
|
|
|
|
if (f is TCEForm) then
|
|
begin
|
|
try
|
|
f.SaveToStream(s);
|
|
//no errors
|
|
|
|
lua_pushboolean(L, true);
|
|
result:=1;
|
|
except
|
|
on e: exception do
|
|
begin
|
|
lua_pushnil(L);
|
|
lua_pushstring(L, e.Message);
|
|
exit(2);
|
|
end;
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
lua_pushnil(L);
|
|
lua_pushstring(L,rsTheGivenFormIsNotCompatible+f.ClassName);
|
|
exit(2);
|
|
end;
|
|
end
|
|
else
|
|
lua_pop(L, lua_gettop(L));
|
|
|
|
end;
|
|
|
|
function ceform_saveToFile(L: Plua_State): integer; cdecl;
|
|
var parameters: integer;
|
|
f: TCEForm;
|
|
filename: string;
|
|
begin
|
|
result:=0;
|
|
f:=luaclass_getClassObject(L);
|
|
|
|
if lua_gettop(L)>=1 then
|
|
begin
|
|
filename:=Lua_ToString(L, -1);
|
|
lua_pop(L, lua_gettop(L));
|
|
|
|
if (f is TCEForm) then
|
|
begin
|
|
try
|
|
f.SaveToFile(filename);
|
|
//no errors
|
|
|
|
lua_pushboolean(L, true);
|
|
result:=1;
|
|
except
|
|
on e: exception do
|
|
begin
|
|
lua_pushnil(L);
|
|
lua_pushstring(L, e.Message);
|
|
exit(2);
|
|
end;
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
lua_pushnil(L);
|
|
lua_pushstring(L,rsTheGivenFormIsNotCompatible+f.ClassName);
|
|
exit(2);
|
|
end;
|
|
end
|
|
else
|
|
lua_pop(L, lua_gettop(L));
|
|
end;
|
|
|
|
function ceform_getDoNotSaveInTable(L: PLua_State): integer; cdecl;
|
|
var
|
|
form: Tceform;
|
|
begin
|
|
form:=luaclass_getClassObject(L);
|
|
lua_pushboolean(L, form.DoNotSaveInTable);
|
|
result:=1;
|
|
end;
|
|
|
|
function ceform_setDoNotSaveInTable(L: PLua_State): integer; cdecl;
|
|
var
|
|
form: Tceform;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
|
|
if lua_gettop(L)>=1 then
|
|
form.DoNotSaveInTable:=lua_toboolean(L,-1);
|
|
end;
|
|
|
|
function ceform_saveCurrentStateAsDesign(L: PLua_State): integer; cdecl;
|
|
var
|
|
form: Tceform;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
form.SaveCurrentStateasDesign;
|
|
end;
|
|
|
|
function customform_getFormState(L: PLua_State): integer; cdecl;
|
|
var
|
|
form: TCustomForm;
|
|
ti: PTypeInfo;
|
|
begin
|
|
form:=luaclass_getClassObject(L);
|
|
|
|
ti:=typeinfo(TFormState);
|
|
lua_pushstring(L, SetToString(ti, integer(form.FormState),true));
|
|
result:=1;
|
|
end;
|
|
|
|
function customform_getModalResult(L: PLua_State): integer; cdecl;
|
|
var
|
|
form: TCustomForm;
|
|
begin
|
|
form:=luaclass_getClassObject(L);
|
|
lua_pushinteger(L, integer(form.ModalResult));
|
|
result:=1;
|
|
end;
|
|
|
|
function customform_setModalResult(L: PLua_State): integer; cdecl;
|
|
var
|
|
form: TCustomForm;
|
|
ModalResult: TModalResult;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
if lua_gettop(L)>=1 then
|
|
begin
|
|
ModalResult:=TModalResult(lua_tointeger(L,1));
|
|
form.ModalResult:=ModalResult;
|
|
end;
|
|
end;
|
|
|
|
|
|
function customform_unregisterCreateCallback(L: PLua_State): integer; cdecl;
|
|
var
|
|
lc: TLuacaller;
|
|
form: TCustomForm;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
|
|
if lua_gettop(L)=1 then
|
|
begin
|
|
lc:=lua_ToCEUserData(L, -1);
|
|
if lc<>nil then
|
|
form.RemoveHandlerCreate(lc.NotifyEvent);
|
|
|
|
lc.Free;
|
|
end;
|
|
end;
|
|
|
|
function customform_registerCreateCallback(L: PLua_State): integer; cdecl;
|
|
var lc: TLuaCaller;
|
|
f: integer;
|
|
routine: string;
|
|
form: TCustomForm;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
|
|
if lua_gettop(L)=1 then
|
|
begin
|
|
lc:=nil;
|
|
|
|
if lua_isfunction(L,-1) then
|
|
begin
|
|
f:=luaL_ref(L,LUA_REGISTRYINDEX);
|
|
|
|
lc:=TLuaCaller.create;
|
|
lc.luaroutineIndex:=f;
|
|
form.AddHandlerCreate(lc.NotifyEvent);
|
|
end
|
|
else
|
|
if lua_isstring(L,-1) then
|
|
begin
|
|
routine:=lua_tostring(L,-1);
|
|
lc:=TLuaCaller.create;
|
|
lc.luaroutine:=routine;
|
|
form.AddHandlerCreate(lc.NotifyEvent);
|
|
end;
|
|
|
|
luaclass_newClass(L, lc);
|
|
result:=1;
|
|
end;
|
|
end;
|
|
|
|
|
|
function customform_unregisterFirstShowCallback(L: PLua_State): integer; cdecl;
|
|
var
|
|
lc: TLuacaller;
|
|
form: TCustomForm;
|
|
|
|
m: TMethod;
|
|
nr: TNotifyEvent;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
|
|
if lua_gettop(L)=1 then
|
|
begin
|
|
lc:=lua_ToCEUserData(L, -1);
|
|
if lc<>nil then
|
|
begin
|
|
nr:=lc.NotifyEvent;
|
|
m:=Tmethod(nr);
|
|
if tobject(m.data) is TLuaCaller then
|
|
begin
|
|
form.RemoveHandlerFirstShow(nr);
|
|
lc.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
end;
|
|
end;
|
|
|
|
function customform_registerFirstShowCallback(L: PLua_State): integer; cdecl;
|
|
var lc: TLuaCaller;
|
|
f: integer;
|
|
routine: string;
|
|
form: TCustomForm;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
|
|
if lua_gettop(L)=1 then
|
|
begin
|
|
lc:=nil;
|
|
|
|
if lua_isfunction(L,-1) then
|
|
begin
|
|
f:=luaL_ref(L,LUA_REGISTRYINDEX);
|
|
|
|
lc:=TLuaCaller.create;
|
|
lc.luaroutineIndex:=f;
|
|
form.AddHandlerFirstShow(lc.NotifyEvent);
|
|
end
|
|
else
|
|
if lua_isstring(L,-1) then
|
|
begin
|
|
routine:=lua_tostring(L,-1);
|
|
lc:=TLuaCaller.create;
|
|
lc.luaroutine:=routine;
|
|
form.AddHandlerFirstShow(lc.NotifyEvent);
|
|
end;
|
|
|
|
luaclass_newClass(L, lc);
|
|
result:=1;
|
|
end;
|
|
end;
|
|
|
|
function customform_unregisterCloseCallback(L: PLua_State): integer; cdecl;
|
|
var
|
|
lc: TLuacaller;
|
|
form: TCustomForm;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
|
|
if lua_gettop(L)=1 then
|
|
begin
|
|
lc:=lua_ToCEUserData(L, -1);
|
|
if lc<>nil then
|
|
form.RemoveHandlerClose(lc.CloseEvent);
|
|
|
|
lc.Free;
|
|
end;
|
|
end;
|
|
|
|
function customform_registerCloseCallback(L: PLua_State): integer; cdecl;
|
|
var lc: TLuaCaller;
|
|
f: integer;
|
|
routine: string;
|
|
form: TCustomForm;
|
|
begin
|
|
result:=0;
|
|
form:=luaclass_getClassObject(L);
|
|
|
|
if lua_gettop(L)=1 then
|
|
begin
|
|
lc:=nil;
|
|
|
|
if lua_isfunction(L,-1) then
|
|
begin
|
|
f:=luaL_ref(L,LUA_REGISTRYINDEX);
|
|
|
|
lc:=TLuaCaller.create;
|
|
lc.luaroutineIndex:=f;
|
|
form.AddHandlerClose(lc.CloseEvent);
|
|
end
|
|
else
|
|
if lua_isstring(L,-1) then
|
|
begin
|
|
routine:=lua_tostring(L,-1);
|
|
lc:=TLuaCaller.create;
|
|
lc.luaroutine:=routine;
|
|
form.AddHandlerClose(lc.CloseEvent);
|
|
end;
|
|
|
|
luaclass_newClass(L, lc);
|
|
result:=1;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure customform_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
customcontrol_addMetaData(L, metatable, userdata);
|
|
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'centerScreen', customform_centerScreen);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setOnClose', customform_setOnClose);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getOnClose', customform_getOnClose);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'show', customform_show);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'hide', customform_hide);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'close', customform_close);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'bringToFront', customform_bringToFront);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'showModal', customform_showModal);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'isForegroundWindow', customform_isForegroundWindow);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getMenu', customform_getMenu);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setMenu', customform_setMenu);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getBorderStyle', customform_getBorderStyle);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setBorderStyle', customform_setBorderStyle);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'printToRasterImage', customform_printToRasterImage);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'dragNow', customform_dragNow);
|
|
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'registerCreateCallback', customform_registerCreateCallback);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'registerFirstShowCallback', customform_registerFirstShowCallback);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'registerCloseCallback', customform_registerCloseCallback);
|
|
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'unregisterCreateCallback', customform_unregisterCreateCallback);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'unregisterFirstShowCallback', customform_unregisterFirstShowCallback);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'unregisterCloseCallback', customform_unregisterCloseCallback);
|
|
|
|
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'saveFormPosition', customform_saveFormPosition);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'loadFormPosition', customform_loadFormPosition);
|
|
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'fixDPI', customform_fixDPI);
|
|
|
|
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'OnClose', customform_getOnClose, customform_setOnClose);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Menu', customform_getMenu, customform_setMenu);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'ModalResult', customform_getModalResult, customform_setModalResult);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'FormState', customform_getFormState, nil);
|
|
end;
|
|
|
|
procedure ceform_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
customform_addMetaData(L, metatable, userdata);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'saveToFile', ceform_saveToFile);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'saveToStream', ceform_saveToStream);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setDoNotSaveInTable', ceform_setDoNotSaveInTable);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getDoNotSaveInTable', ceform_getDoNotSaveInTable);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'saveCurrentStateAsDesign', ceform_saveCurrentStateasDesign);
|
|
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'DoNotSaveInTable', ceform_getDoNotSaveInTable, ceform_setDoNotSaveInTable);
|
|
|
|
end;
|
|
|
|
procedure initializeLuaForm;
|
|
begin
|
|
lua_register(LuaVM, 'createForm', createForm);
|
|
lua_register(LuaVM, 'createFormFromFile', createFormFromFile);
|
|
lua_register(LuaVM, 'createFormFromStream', createFormFromStream);
|
|
|
|
lua_register(LuaVM, 'form_centerScreen', customform_centerScreen);
|
|
lua_register(LuaVM, 'form_onClose', customform_setOnClose);
|
|
lua_register(LuaVM, 'form_show', customform_show);
|
|
lua_register(LuaVM, 'form_hide', customform_hide);
|
|
lua_register(LuaVM, 'form_close', customform_close);
|
|
lua_register(LuaVM, 'form_showModal', customform_showModal);
|
|
lua_register(LuaVM, 'form_isForegroundWindow', customform_isForegroundWindow);
|
|
lua_register(LuaVM, 'form_getMenu', customform_getMenu);
|
|
lua_register(LuaVM, 'form_setMenu', customform_setMenu);
|
|
lua_register(LuaVM, 'form_saveToFile', ceform_saveToFile);
|
|
lua_register(LuaVM, 'form_setDoNotSaveInTable', ceform_setDoNotSaveInTable);
|
|
lua_register(LuaVM, 'form_getDoNotSaveInTable', ceform_getDoNotSaveInTable);
|
|
lua_register(LuaVM, 'form_printToRasterImage', customform_printToRasterImage);
|
|
lua_register(LuaVM, 'form_dragNow', customform_dragNow);
|
|
end;
|
|
|
|
initialization
|
|
luaclass_register(TCustomForm, customform_addMetaData);
|
|
luaclass_register(TCEForm, ceform_addMetaData);
|
|
|
|
end.
|
|
|