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

From Miranda NG
Jump to navigation Jump to search
No edit summary
Line 172: Line 172:
{{Content:MirLua/Example|code=m.Translate('Exit')}}
{{Content:MirLua/Example|code=m.Translate('Exit')}}


=== ReplaceVariables ===
=== Parse ===
Replaces Miranda NG variables in a string.
Replaces Miranda NG variables in a string.
: '''''text'''''
: '''''text'''''

Revision as of 00:50, 14 April 2018

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

Translate

Translates a string into the language of the current langpack.

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

Parse

Replaces Miranda NG variables in a string.

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