Plugin:MirLua/Module/m core: Difference between revisions

From Miranda NG
Jump to navigation Jump to search
mNo edit summary
(trap -> hook; descriptor -> handle (thx Unsane))
Line 13: Line 13:


=== INVALID_HANDLE_VALUE ===
=== INVALID_HANDLE_VALUE ===
Invalid descriptor.
Invalid handle.
: Type: '''light userdata'''
: Type: '''light userdata'''


Line 19: Line 19:
Result of service call when service does not exist.
Result of service call when service does not exist.
: Type: '''number'''
: Type: '''number'''


== Named events ==
== Named events ==
Line 43: Line 44:
Hook signature: <code>function (wParam, lParam) return 0 end</code>.
Hook signature: <code>function (wParam, lParam) return 0 end</code>.


Correct result for a trap is 0. When 1 is returned, the following hooks in a sequence won't be called.
Correct result for a hook is 0. When 1 is returned, the following hooks in a sequence won't be called.
;Parameters
;Parameters
: '''''name'''''
: '''''name'''''
Line 53: Line 54:
;Result
;Result
: Type: '''light userdata'''
: Type: '''light userdata'''
: Returns trap handle if trap was created successfully, otherwise '''nil'''.
: Returns hook handle if hook was created successfully, otherwise '''nil'''.
;Example
;Example
{{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 65: Line 66:
: '''''hEvent'''''
: '''''hEvent'''''
:: Type: '''light userdata'''
:: Type: '''light userdata'''
:: Event descriptor received on [[#CreateHookableEvent|CreateHookableEvent]] call.
:: Event handle received on [[#CreateHookableEvent|CreateHookableEvent]] call.
;Result
;Result
: Type: '''boolean'''
: Type: '''boolean'''
: Returns '''true''' if trap function was removed successfully, otherwise '''false'''.
: Returns '''true''' if hook function was removed successfully, otherwise '''false'''.
;Example
;Example
{{Content:MirLua/Example|code=m.UnhookEvent(hHook)}}
{{Content:MirLua/Example|code=m.UnhookEvent(hHook)}}
Line 77: Line 78:
: '''''hEvent'''''
: '''''hEvent'''''
:: Type: '''light userdata'''
:: Type: '''light userdata'''
:: Event descriptor received on [[#CreateHookableEvent|CreateHookableEvent]] call.
:: Event handle received on [[#CreateHookableEvent|CreateHookableEvent]] call.
: ''wParam''
: ''wParam''
: ''lParam''
: ''lParam''
Line 141: Line 142:
: '''''hService'''''
: '''''hService'''''
:: Type: '''light userdata'''
:: Type: '''light userdata'''
:: Service descriptor received on [[#CreateServiceFunction|CreateServiceFunction]] call.
:: Service handle received on [[#CreateServiceFunction|CreateServiceFunction]] call.
;Example
;Example
{{Content:MirLua/Example|code=m.DestroyServiceFunction(hService)}}
{{Content:MirLua/Example|code=m.DestroyServiceFunction(hService)}}

Revision as of 22:52, 14 December 2015

This module is imported into global table and available in any module through variable m. It allows you to access basic features of Miranda NG core.

<translate> Note</translate>
Parameters written in bold italics are obligatory.


Constants

NULL

Null pointer.

Type: light userdata

INVALID_HANDLE_VALUE

Invalid handle.

Type: light userdata

CALLSERVICE_NOTFOUND

Result of service call when service does not exist.

Type: number


Named events

CreateHookableEvent

Creates a hookable event.

Parameters
name
Type: string
Event name.
Result
Type: light userdata
Returns event handle if event was created successfully, otherwise nil.
Example
local hEvent = m.CreateHookableEvent('MyEvent')
if hEvent == m.NULL then
  print('Event handle is empty!')
end

HookEvent

Sets a callback function ("hook") to react to event call. Hooks are called one by one in the order they were added to the sequence.

Hook signature: function (wParam, lParam) return 0 end.

Correct result for a hook is 0. When 1 is returned, the following hooks in a sequence won't be called.

Parameters
name
Type: string
Event name.
hook
Type: function
Hook function to be called when event occurs.
Result
Type: light userdata
Returns hook handle if hook was created successfully, otherwise nil.
Example
local hHook = m.HookEvent('MyEvent', function(w, l)
  print('MyEvent is raised!')
end)

UnhookEvent

Removes hook from event call sequence.

Parameters
hEvent
Type: light userdata
Event handle received on CreateHookableEvent call.
Result
Type: boolean
Returns true if hook function was removed successfully, otherwise false.
Example
m.UnhookEvent(hHook)

NotifyEventHooks

Calls all hooks of event call sequence one by one.

Parameters
hEvent
Type: light userdata
Event handle received on CreateHookableEvent call.
wParam
lParam
Result
Type: boolean
Returns true if all hooks were called, otherwise false.
Example
m.NotifyEventHooks(hEvent)


Named service functions

CreateServiceFunction

Creates a service function ("service")

Parameters
name
Type: string
Service name.
Result
Type: light userdata
Returns service handle if service was created successfully, otherwise nil.
Example
local hService = m.CreateServiceFunction('MyService', function(w, l)
  print('MyServiceis called!')
end)

CallService

Calls service with parameters.

Parameters
name
Type: string
Service name.
wParam
lParam
Result
Type: number
Returns result of service execution or CALLSERVICE_NOTFOUND
Example
local result = m.CallService('MyService')
if result == m.CALLSERVICE_NOTFOUND then
  print('Service is not found!')
end

ServiceExists

Checks if service exists by its name.

Parameters
name
Type: string
Service name.
Result
Type: boolean
Returns true if service exists, otherwise false
Example
if m.ServiceExists('MyService') then
  m.CallService('MyService')
end

DestroyServiceFunction

Destroys a service function.

Parameters
hService
Type: light userdata
Service handle received on CreateServiceFunction call.
Example
m.DestroyServiceFunction(hService)


Others

IsPluginLoaded

Checks if plugin is loaded by its UUID.

Parameters
uuid
Type: string
Plugin UUID in format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
Result
Type: boolean
Returns true if plugin is loaded, otherwise false.
Example
if m.IsPluginLoaded('{F0FDF73A-753D-499d-8DBA-336DB79CDD41}') then
  print('Advanced auto away plugin is loaded!')
end

Utf8DecodeA

Converts Lua string contents to ANSI (codepage of the current langpack is used).

text
Type: string
Result
Type: string
Example
m.CallService("Quotes/Import", 0, Utf8DecodeA('c:\\quotes.xml'))

Utf8DecodeW

Converts Lua string contents to Unicode (UTF-16).

text
Type: string
Result
Type: string
Example
m.CallService("Popup/ShowMessageW", m.Utf8DecodeW('Hello, World!'), 2)

Translate

Translates a string into the language of the current langpack.

text
Type: string
Result
Type: string
Example
m.Translate('Exit')

ReplaceVariables

Replaces Miranda NG variables in a string.

text
Result
Type: string
Example
local profileName = m.ReplaceVariables('%miranda_profilename%')