From 031b81f8764de5e566490248dbc4bb466c0b03e9 Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Wed, 10 Jun 2015 21:00:17 +0000 Subject: MirLua: - added OnModulesLoaded handler - added OnPreShutdown handler - renamed existing modules - changed modules loading - chaged examples git-svn-id: http://svn.miranda-ng.org/main/trunk@14107 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/MirLua/src/m_genmenu.cpp | 57 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 plugins/MirLua/src/m_genmenu.cpp (limited to 'plugins/MirLua/src/m_genmenu.cpp') diff --git a/plugins/MirLua/src/m_genmenu.cpp b/plugins/MirLua/src/m_genmenu.cpp new file mode 100644 index 0000000000..5a185f64bd --- /dev/null +++ b/plugins/MirLua/src/m_genmenu.cpp @@ -0,0 +1,57 @@ +#include "stdafx.h" + +static int lua_AddMainMenuItem(lua_State *L) +{ + CLISTMENUITEM mi = { sizeof(mi) }; + mi.pszName = LPGEN((char*)luaL_checkstring(L, 1)); + mi.flags = lua_tointeger(L, 2); + mi.position = lua_tointeger(L, 3); + mi.icolibItem = (HANDLE)lua_touserdata(L, 4); + mi.pszService = (char*)lua_tostring(L, 5); + + HGENMENU res = ::Menu_AddMainMenuItem(&mi); + lua_pushlightuserdata(L, res); + + return 1; +} + +static int lua_AddContactMenuItem(lua_State *L) +{ + CLISTMENUITEM mi = { sizeof(mi) }; + mi.pszName = LPGEN((char*)luaL_checkstring(L, 1)); + mi.flags = lua_tointeger(L, 2); + mi.position = lua_tointeger(L, 3); + mi.icolibItem = (HANDLE)lua_touserdata(L, 4); + mi.pszService = (char*)lua_tostring(L, 5); + + HGENMENU res = ::Menu_AddContactMenuItem(&mi); + lua_pushlightuserdata(L, res); + + return 1; +} + +static int lua_RemoveMenuItem(lua_State *L) +{ + HGENMENU hMenuItem = (HGENMENU)lua_touserdata(L, 1); + + INT_PTR res = ::CallService(MO_REMOVEMENUITEM, (WPARAM)hMenuItem, 0); + lua_pushinteger(L, res); + + return 1; +} + +static luaL_Reg genmenuApi[] = +{ + { "AddMainMenuItem", lua_AddMainMenuItem }, + { "AddContactMenuItem", lua_AddContactMenuItem }, + { "RemoveMenuItem", lua_RemoveMenuItem }, + + { NULL, NULL } +}; + +LUAMOD_API int luaopen_m_genmenu(lua_State *L) +{ + luaL_newlib(L, genmenuApi); + + return 1; +} -- cgit v1.2.3