From 2826ce96c351ae3d5fc7dea6b4bc60e92b23e550 Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Thu, 7 Jan 2016 13:17:33 +0000 Subject: MirLua: fixed module loading git-svn-id: http://svn.miranda-ng.org/main/trunk@16046 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/MirLua/src/m_clist.cpp | 71 ++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 44 deletions(-) (limited to 'plugins/MirLua/src/m_clist.cpp') diff --git a/plugins/MirLua/src/m_clist.cpp b/plugins/MirLua/src/m_clist.cpp index 1a43b298ab..a39534c0da 100644 --- a/plugins/MirLua/src/m_clist.cpp +++ b/plugins/MirLua/src/m_clist.cpp @@ -2,29 +2,22 @@ static int clist_AddMainMenuItem(lua_State *L) { - if (lua_type(L, 1) != LUA_TTABLE) + HGENMENU res = NULL; + + if (lua_type(L, 1) == LUA_TSTRING) { - lua_pushlightuserdata(L, 0); - return 1; + const char *name = luaL_checkstring(L, 1); + int position = lua_tointeger(L, 2); + HANDLE hIcon = (HANDLE)lua_touserdata(L, 3); + res = Menu_CreateRoot(MO_MAIN, ptrT(Utf8DecodeT(name)), position, hIcon); + } + else if (lua_type(L, 1) == LUA_TTABLE) + { + CMenuItem mi; + MakeMenuItem(L, mi); + res = Menu_AddMainMenuItem(&mi); } - CMenuItem mi; - MakeMenuItem(L, mi); - - HGENMENU res = Menu_AddMainMenuItem(&mi); - lua_pushlightuserdata(L, res); - - return 1; -} - -static int clist_CreateMainMenuRoot(lua_State *L) -{ - int hMenuObject = luaL_checkinteger(L, 1); - const char *name = luaL_checkstring(L, 2); - int position = lua_tointeger(L, 3); - HANDLE hIcon = (HANDLE)lua_touserdata(L, 4); - - HGENMENU res = Menu_CreateRoot(MO_MAIN, ptrT(Utf8DecodeT(name)), position, hIcon); lua_pushlightuserdata(L, res); return 1; @@ -32,31 +25,23 @@ static int clist_CreateMainMenuRoot(lua_State *L) static int clist_AddContactMenuItem(lua_State *L) { - if (lua_type(L, 1) != LUA_TTABLE) + HGENMENU res = NULL; + + if (lua_type(L, 1) == LUA_TSTRING) { - lua_pushlightuserdata(L, 0); - return 1; + const char *name = luaL_checkstring(L, 1); + int position = lua_tointeger(L, 2); + HANDLE hIcon = (HANDLE)lua_touserdata(L, 3); + res = Menu_CreateRoot(MO_MAIN, ptrT(Utf8DecodeT(name)), position, hIcon); + } + else if (lua_type(L, 1) == LUA_TTABLE) + { + CMenuItem mi; + MakeMenuItem(L, mi); + ptrA szProto(mir_utf8decode((char*)lua_tostring(L, 2), NULL)); + res = Menu_AddContactMenuItem(&mi, szProto); } - - CMenuItem mi; - MakeMenuItem(L, mi); - - ptrA szProto(mir_utf8decode((char*)lua_tostring(L, 2), NULL)); - - HGENMENU res = Menu_AddContactMenuItem(&mi, szProto); - lua_pushlightuserdata(L, res); - - return 1; -} - -static int clist_CreateContactMenuRoot(lua_State *L) -{ - int hMenuObject = luaL_checkinteger(L, 1); - const char *name = luaL_checkstring(L, 2); - int position = lua_tointeger(L, 3); - HANDLE hIcon = (HANDLE)lua_touserdata(L, 4); - HGENMENU res = Menu_CreateRoot(MO_CONTACT, ptrT(Utf8DecodeT(name)), position, hIcon); lua_pushlightuserdata(L, res); return 1; @@ -82,9 +67,7 @@ static int clist_AddTrayMenuItem(lua_State *L) static luaL_Reg clistApi[] = { { "AddMainMenuItem", clist_AddMainMenuItem }, - { "CreateMainMenuRoot", clist_CreateMainMenuRoot }, { "AddContactMenuItem", clist_AddContactMenuItem }, - { "CreateContactMenuRoot", clist_CreateContactMenuRoot }, { "AddTrayMenuItem", clist_AddTrayMenuItem }, { NULL, NULL } -- cgit v1.2.3