User:Unsane/MirLua/m core: Difference between revisions

From Miranda NG
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 12: Line 12:
;Результат
;Результат
: Тип: '''light userdata'''
: Тип: '''light userdata'''
: Дескриптор события, если событие было успешно создано, иначе nil
: Возвращает дескриптор события, если событие было успешно создано, иначе nil
;Пример
;Пример
{{Content:MirLua/Example|code=local hEvent = m.CreateHookableEvent('MyEvent')}}
{{Content:MirLua/Example|code=local hEvent = m.CreateHookableEvent('MyEvent')}}


===NotifyEventHooks===
===HookEvent===
Вызывает событие. При вызове события поочередно сработают все функции-ловушки, которые были подписаны на это событие.
Устанавливает функцию обратного вызова ("ловушку") для реакции на вызов события. Ловушки вызываются в порядке добавления по цепочке друг за другомю
 
Сигнатура ловушки: <code>function (wParam, lParam) return 0 end</code>.  


Сигнатура ловушки: <code>function (wParam, lParam) return 0 end</code>
Корректным результатом работы ловушки является 0. При возврате 1 следующие в цепочки ловушки не будут вызваны.
;Параметры
: ''hEvent''
:: Тип: '''light userdata'''
:: Дескриптор события, который был получен при вызове [[#CreateHookableEvent|CreateHookableEvent]].
: wParam
: lParam
;Результат
: Тип: '''boolean'''
: '''true''' если вызваны все функции-ловушки, иначе '''false'''
;Пример
{{Content:MirLua/Example|code=m.NotifyEventHooks(hEvent)}}


===HookEvent===
В качестве wParam/lParam поддерживаются следующие типы: '''boolean''', '''number''', '''string''', '''light userdata''', '''userdata'''.
Устанавливает функция обратного вызова ("ловушку") для реакции на вызов события.
;Параметры
;Параметры
: '''''name'''''
: '''''name'''''
Line 43: Line 33:
;Результат
;Результат
: Тип: '''light userdata'''
: Тип: '''light userdata'''
: Возвращает дескриптор ловушка, если ловушка была успешно создана, иначе nil
: Возвращает дескриптор ловушки, если ловушка была успешно создана, иначе 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%')