User:Unsane/MirLua/m core: Difference between revisions
mNo edit summary |
No edit summary |
||
Line 12: | Line 12: | ||
;Результат | ;Результат | ||
: Тип: '''light userdata''' | : Тип: '''light userdata''' | ||
: | : Возвращает дескриптор события, если событие было успешно создано, иначе nil | ||
;Пример | ;Пример | ||
{{Content:MirLua/Example|code=local hEvent = m.CreateHookableEvent('MyEvent')}} | {{Content:MirLua/Example|code=local hEvent = m.CreateHookableEvent('MyEvent')}} | ||
=== | ===HookEvent=== | ||
Устанавливает функцию обратного вызова ("ловушку") для реакции на вызов события. Ловушки вызываются в порядке добавления по цепочке друг за другомю | |||
Сигнатура ловушки: <code>function (wParam, lParam) return 0 end</code>. | |||
Корректным результатом работы ловушки является 0. При возврате 1 следующие в цепочки ловушки не будут вызваны. | |||
В качестве wParam/lParam поддерживаются следующие типы: '''boolean''', '''number''', '''string''', '''light userdata''', '''userdata'''. | |||
;Параметры | ;Параметры | ||
: '''''name''''' | : '''''name''''' | ||
Line 43: | Line 33: | ||
;Результат | ;Результат | ||
: Тип: '''light userdata''' | : Тип: '''light userdata''' | ||
: Возвращает дескриптор | : Возвращает дескриптор ловушки, если ловушка была успешно создана, иначе nil | ||
;Пример | ;Пример | ||
{{Content:MirLua/Example|code=local hHook = m.HookEvent('MyEvent', function(w, l) | {{Content:MirLua/Example|code=local hHook = m.HookEvent('MyEvent', function(w, l) | ||
Line 51: | Line 41: | ||
===UnhookEvent=== | ===UnhookEvent=== | ||
Удаляет | Удаляет ловушку из цепочки вызовов события. | ||
;Параметры | ; Параметры | ||
: hEvent | : hEvent | ||
:: Тип: '''light userdata''' | :: Тип: '''light userdata''' | ||
:: Дескриптор события, который был получен при вызове [[#CreateHookableEvent|CreateHookableEvent]] | :: Дескриптор события, который был получен при вызове [[#CreateHookableEvent|CreateHookableEvent]] | ||
;Результат | ; Результат | ||
:true если функции-ловушки успешно удалена, иначе false | : Возвращает '''true''', если функции-ловушки успешно удалена, иначе '''false'''. | ||
;Пример | ; Пример | ||
{{Content:MirLua/Example|code=m.UnhookEvent(hHook)}} | {{Content:MirLua/Example|code=m.UnhookEvent(hHook)}} | ||
===NotifyEventHooks=== | |||
Поочередно вызывает все ловушке в цепочке вызова события. | |||
; Параметры | |||
: ''hEvent'' | |||
:: Тип: '''light userdata''' | |||
:: Дескриптор события, который был получен при вызове [[#CreateHookableEvent|CreateHookableEvent]]. | |||
: wParam | |||
: lParam | |||
; Результат | |||
: Тип: '''boolean''' | |||
: Возвращает '''true''', если вызваны все функции-ловушки, иначе '''false'''. | |||
; Пример | |||
{{Content:MirLua/Example|code=m.NotifyEventHooks(hEvent)}} | |||
===DestroyHookableEvent=== | ===DestroyHookableEvent=== | ||
Удаляет событие | Удаляет событие. Также удаляются все ловушки из цепочки вызовов. Если вызов события еще не завершен, то цепочка вызовов обрывается после выполнения текущей ловушки. | ||
;Параметры | ; Параметры | ||
: hEvent | : hEvent | ||
:: Тип: '''light userdata''' | :: Тип: '''light userdata''' | ||
Line 69: | Line 73: | ||
; Результат | ; Результат | ||
: Тип: '''boolean''' | : Тип: '''boolean''' | ||
: '''true''' если событие успешно удалено, иначе '''false''' | : Возвращает '''true''', если событие успешно удалено, иначе '''false''' | ||
{{Content:MirLua/Example|code=m.DestroyHookableEvent(hEvent)}} | {{Content:MirLua/Example|code=m.DestroyHookableEvent(hEvent)}} | ||
Revision as of 19:01, 10 November 2015
Этот модуль изначально импортирован в глобальную таблицу и доступен через переменную m в любом модуле. Он предоставляет доступ к основным возможностям ядра Miranda NG.
Именованные события
CreateHookableEvent
Создает событие
- Параметры
- name
- Тип: string
- Имя события
- Результат
- Тип: light userdata
- Возвращает дескриптор события, если событие было успешно создано, иначе nil
- Пример
local hEvent = m.CreateHookableEvent('MyEvent')
HookEvent
Устанавливает функцию обратного вызова ("ловушку") для реакции на вызов события. Ловушки вызываются в порядке добавления по цепочке друг за другомю
Сигнатура ловушки: function (wParam, lParam) return 0 end
.
Корректным результатом работы ловушки является 0. При возврате 1 следующие в цепочки ловушки не будут вызваны.
В качестве wParam/lParam поддерживаются следующие типы: boolean, number, string, light userdata, userdata.
- Параметры
- name
- Тип: string
- Имя события.
- hook
- Тип: function
- Функция-ловушка, которая будет вызвана при наступлении события.
- Результат
- Тип: light userdata
- Возвращает дескриптор ловушки, если ловушка была успешно создана, иначе nil
- Пример
local hHook = m.HookEvent('MyEvent', function(w, l)
print('MyEvent is raised!')
end)
UnhookEvent
Удаляет ловушку из цепочки вызовов события.
- Параметры
- hEvent
- Тип: light userdata
- Дескриптор события, который был получен при вызове CreateHookableEvent
- Результат
- Возвращает true, если функции-ловушки успешно удалена, иначе false.
- Пример
m.UnhookEvent(hHook)
NotifyEventHooks
Поочередно вызывает все ловушке в цепочке вызова события.
- Параметры
- hEvent
- Тип: light userdata
- Дескриптор события, который был получен при вызове CreateHookableEvent.
- wParam
- lParam
- Результат
- Тип: boolean
- Возвращает true, если вызваны все функции-ловушки, иначе false.
- Пример
m.NotifyEventHooks(hEvent)
DestroyHookableEvent
Удаляет событие. Также удаляются все ловушки из цепочки вызовов. Если вызов события еще не завершен, то цепочка вызовов обрывается после выполнения текущей ловушки.
- Параметры
- hEvent
- Тип: light userdata
- Дескриптор события, полученный при вызове CreateHookableEvent
- Результат
- Тип: boolean
- Возвращает true, если событие успешно удалено, иначе false
m.DestroyHookableEvent(hEvent)
Именованные сервисные функции
CreateServiceFunction
Создает именованную сервисную функцию
local hService = m.CreateServiceFunction('MyService', function(w, l)
print('MyServiceis called!')
end)
CallService
Вызывает именованную сервисную функцию
m.CallService('MyService', 0, 0)
ServiceExists
Проверяет существование сервиса по имени
if m.ServiceExists('MyService') then
m.CallService('MyService')
end
DestroyServiceFunction
Удаляет сервисную функцию
m.DestroyServiceFunction(hService)
Остальное
IsPluginLoaded
Проверяет загружен ли плагин по его muuid
if m.IsPluginLoaded('{F0FDF73A-753D-499d-8DBA-336DB79CDD41}') then
print('Advanced auto away plugin is loaded!')
end
Utf8DecodeA
Конвертирует содержимое lua строки в ANSI
m.CallService("Quotes/Import", 0, Utf8DecodeA('c:\\quotes.xml'))
Utf8DecodeW
Конвертирует содержимое lua строки в Unicode
m.CallService("Popup/ShowMessageW", m.Utf8DecodeW('Hello, World!'), 2)
Translate
Переводит строку на язык текущего языкового пакета
m.Translate('Exit')
ReplaceVariables
Заменяет переменные ядра Miranda NG в строке
local profileName = m.ReplaceVariables('%miranda_profilename%')