1. Index: LuaCaller.pas
  2. ===================================================================
  3. --- LuaCaller.pas (wersja 1707)
  4. +++ LuaCaller.pas (kopia robocza)
  5. @@ -26,6 +26,7 @@
  6. procedure SelectionChangeEvent(Sender: TObject; User: boolean);
  7. procedure MouseEvent(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  8. procedure MouseMoveEvent(Sender: TObject; Shift: TShiftState; X, Y: Integer);
  9. + procedure MouseWheelUpDownEvent(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var h: Boolean);
  10. procedure KeyPressEvent(Sender: TObject; var Key: char);
  11. procedure LVCheckedItemEvent(Sender: TObject; Item: TListItem); //personal request to have this one added
  12. procedure CloseEvent(Sender: TObject; var CloseAction: TCloseAction);
  13. @@ -55,6 +56,7 @@
  14. function LuaCaller_CloseEvent(L: PLua_state): integer; cdecl;
  15. function LuaCaller_MouseEvent(L: PLua_state): integer; cdecl;
  16. function LuaCaller_MouseMoveEvent(L: PLua_state): integer; cdecl;
  17. +function LuaCaller_MouseWheelUpDownEvent(L: PLua_state): integer; cdecl;
  18. function LuaCaller_KeyPressEvent(L: PLua_state): integer; cdecl;
  19. function LuaCaller_LVCheckedItemEvent(L: PLua_state): integer; cdecl;
  20. function LuaCaller_MemoryRecordActivateEvent(L: PLua_state): integer; cdecl;
  21. @@ -514,6 +516,24 @@
  22. end;
  23. end;
  24. +procedure TLuaCaller.MouseWheelUpDownEvent(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var h: Boolean);
  25. +var oldstack: integer;
  26. +begin
  27. + Luacs.enter;
  28. + try
  29. + oldstack:=lua_gettop(Luavm);
  30. + pushFunction;
  31. + luaclass_newClass(luavm, sender);
  32. + lua_pushinteger(luavm, MousePos.x);
  33. + lua_pushinteger(luavm, MousePos.y);
  34. +
  35. + lua_pcall(LuaVM, 3, 0, 0);
  36. + finally
  37. + lua_settop(Luavm, oldstack);
  38. + luacs.leave;
  39. + end;
  40. +end;
  41. +
  42. procedure TLuaCaller.MouseMoveEvent(Sender: TObject; Shift: TShiftState; X, Y: Integer);
  43. var oldstack: integer;
  44. begin
  45. @@ -729,6 +749,30 @@
  46. lua_pop(L, lua_gettop(L));
  47. end;
  48. +function LuaCaller_MouseWheelUpDownEvent(L: PLua_state): integer; cdecl;
  49. +var
  50. + parameters: integer;
  51. + m: TMethod;
  52. + sender: TObject;
  53. + p: TPoint;
  54. + b: Boolean;
  55. +begin
  56. + result:=0;
  57. + parameters:=lua_gettop(L);
  58. + if parameters=3 then
  59. + begin
  60. + m.code:=lua_touserdata(L, lua_upvalueindex(1));
  61. + m.data:=lua_touserdata(L, lua_upvalueindex(2));
  62. + sender:=lua_toceuserdata(L, 1);
  63. + p.x:=lua_tointeger(L, 2);
  64. + p.y:=lua_tointeger(L, 3);
  65. + lua_pop(L, lua_gettop(L));
  66. + TMouseWheelUpDownEvent(m)(sender, [], p, b);
  67. + end
  68. + else
  69. + lua_pop(L, lua_gettop(L));
  70. +end;
  71. +
  72. function LuaCaller_KeyPressEvent(L: PLua_state): integer; cdecl;
  73. var
  74. parameters: integer;
  75. @@ -989,7 +1033,8 @@
  76. registerLuaCall('TCloseEvent', LuaCaller_CloseEvent, pointer(TLuaCaller.CloseEvent),'function %s(sender)'#13#10#13#10'return caHide --Possible options: caHide, caFree, caMinimize, caNone'#13#10'end'#13#10);
  77. registerLuaCall('TMouseEvent', LuaCaller_MouseEvent, pointer(TLuaCaller.MouseEvent),'function %s(sender, button, x, y)'#13#10#13#10'end'#13#10);
  78. registerLuaCall('TMouseMoveEvent', LuaCaller_MouseMoveEvent, pointer(TLuaCaller.MouseMoveEvent),'function %s(sender, x, y)'#13#10#13#10'end'#13#10);
  79. - registerLuaCall('TKeyPressEvent', LuaCaller_KeyPressEvent, pointer(TLuaCaller.KeyPressEvent),'function %s(sender, key)'#13#10#13#10' return key'#1310'end'#13#10);
  80. + registerLuaCall('TMouseWheelUpDownEvent', LuaCaller_MouseWheelUpDownEvent, pointer(TLuaCaller.MouseWheelUpDownEvent),'function %s(sender, x, y)'#13#10#13#10'end'#13#10);
  81. + registerLuaCall('TKeyPressEvent', LuaCaller_KeyPressEvent, pointer(TLuaCaller.KeyPressEvent),'function %s(sender, key)'#13#10#13#10' return key'#13#10'end'#13#10);
  82. registerLuaCall('TLVCheckedItemEvent', LuaCaller_LVCheckedItemEvent, pointer(TLuaCaller.LVCheckedItemEvent),'function %s(sender, listitem)'#13#10#13#10'end'#13#10);
  83. registerLuaCall('TMemoryRecordActivateEvent', LuaCaller_MemoryRecordActivateEvent, pointer(TLuaCaller.MemoryRecordActivateEvent),'function %s(sender, before, current)'#13#10#13#10'end'#13#10);
  84. Index: LuaObject.pas
  85. ===================================================================
  86. --- LuaObject.pas (wersja 1707)
  87. +++ LuaObject.pas (kopia robocza)
  88. @@ -340,6 +340,9 @@
  89. if pi.PropType.Name ='TMouseMoveEvent' then
  90. m:=tmethod(TMouseMoveEvent(lc.MouseMoveEvent))
  91. else
  92. + if pi.PropType.Name ='TMouseWheelUpDownEvent' then
  93. + m:=tmethod(TMouseWheelUpDownEvent(lc.MouseWheelUpDownEvent))
  94. + else
  95. if pi.PropType.Name ='TKeyPressEvent' then
  96. m:=tmethod(TKeyPressEvent(lc.KeyPressEvent))
  97. else