add events.reset
This commit is contained in:
parent
ac6084f904
commit
e762cf9b23
@ -145,6 +145,12 @@ events.on(code: str, handler: function)
|
|||||||
|
|
||||||
Adds an event handler by its code, not limited to the standard ones.
|
Adds an event handler by its code, not limited to the standard ones.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
events.reset(code: str, [optional] handler: function)
|
||||||
|
```
|
||||||
|
|
||||||
|
Removes the event, adding a handler if specified.
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
events.emit(code: str, args...) -> bool
|
events.emit(code: str, args...) -> bool
|
||||||
```
|
```
|
||||||
|
|||||||
@ -144,6 +144,12 @@ events.on(code: str, handler: function)
|
|||||||
|
|
||||||
Добавляет обработчик события по его коду, не ограничиваясь стандартными.
|
Добавляет обработчик события по его коду, не ограничиваясь стандартными.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
events.reset(code: str, [опционально] handler: function)
|
||||||
|
```
|
||||||
|
|
||||||
|
Удаляет событие, добавляя обработчик, если указан.
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
events.emit(code: str, args...) -> bool
|
events.emit(code: str, args...) -> bool
|
||||||
```
|
```
|
||||||
|
|||||||
@ -23,6 +23,14 @@ function events.on(event, func)
|
|||||||
table.insert(events.handlers[event], func)
|
table.insert(events.handlers[event], func)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function events.reset(event, func)
|
||||||
|
if func == nil then
|
||||||
|
events.handlers[event] = nil
|
||||||
|
else
|
||||||
|
events.handlers[event] = {func}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function events.remove_by_prefix(prefix)
|
function events.remove_by_prefix(prefix)
|
||||||
for name, handlers in pairs(events.handlers) do
|
for name, handlers in pairs(events.handlers) do
|
||||||
local actualname = name
|
local actualname = name
|
||||||
|
|||||||
@ -616,7 +616,7 @@ bool scripting::register_event(
|
|||||||
if (lua::getfield(L, name)) {
|
if (lua::getfield(L, name)) {
|
||||||
lua::pop(L);
|
lua::pop(L);
|
||||||
lua::getglobal(L, "events");
|
lua::getglobal(L, "events");
|
||||||
lua::getfield(L, "on");
|
lua::getfield(L, "reset");
|
||||||
lua::pushstring(L, id);
|
lua::pushstring(L, id);
|
||||||
lua::getfield(L, name, -4);
|
lua::getfield(L, name, -4);
|
||||||
lua::call_nothrow(L, 2);
|
lua::call_nothrow(L, 2);
|
||||||
@ -706,6 +706,7 @@ void scripting::load_layout_script(
|
|||||||
uidocscript& script
|
uidocscript& script
|
||||||
) {
|
) {
|
||||||
int env = *senv;
|
int env = *senv;
|
||||||
|
|
||||||
lua::pop(lua::get_main_state(), load_script(env, "layout", file));
|
lua::pop(lua::get_main_state(), load_script(env, "layout", file));
|
||||||
script.onopen = register_event(env, "on_open", prefix + ".open");
|
script.onopen = register_event(env, "on_open", prefix + ".open");
|
||||||
script.onprogress =
|
script.onprogress =
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user