From df8bc2304a8afe0319f8909f397bdf1a0670b710 Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Tue, 9 Jun 2015 20:42:18 +0000 Subject: MirLua: - renamed m_clist module to m_menus - added m_icons module - added examples with comments git-svn-id: http://svn.miranda-ng.org/main/trunk@14091 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/MirLua/src/mlua_menus.cpp | 64 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 plugins/MirLua/src/mlua_menus.cpp (limited to 'plugins/MirLua/src/mlua_menus.cpp') diff --git a/plugins/MirLua/src/mlua_menus.cpp b/plugins/MirLua/src/mlua_menus.cpp new file mode 100644 index 0000000000..d3078fc5b3 --- /dev/null +++ b/plugins/MirLua/src/mlua_menus.cpp @@ -0,0 +1,64 @@ +#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 menusLib[] = +{ + { "AddMainMenuItem", lua_AddMainMenuItem }, + { "AddContactMenuItem", lua_AddContactMenuItem }, + { "RemoveMenuItem", lua_RemoveMenuItem }, + + { NULL, NULL } +}; + +int luaopen_m_menus(lua_State *L) +{ + //luaL_newlib(L, CMLua::clistLib); + + lua_getglobal(L, "M"); + luaL_checktype(L, -1, LUA_TTABLE); + + lua_newtable(L); + luaL_setfuncs(L, menusLib, 0); + lua_setfield(L, -2, "Menus"); + + return 1; +} -- cgit v1.2.3