summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/MirLua/MirLua.vcxproj2
-rw-r--r--plugins/MirLua/MirLua.vcxproj.filters687
-rw-r--r--plugins/MirLua/src/m_chat.cpp69
-rw-r--r--plugins/MirLua/src/m_core.cpp27
-rw-r--r--plugins/MirLua/src/m_database.cpp76
-rw-r--r--plugins/MirLua/src/m_message.cpp51
-rw-r--r--plugins/MirLua/src/m_msg_buttonsbar.cpp53
-rw-r--r--plugins/MirLua/src/m_protocols.cpp105
-rw-r--r--plugins/MirLua/src/m_toptoolbar.cpp2
-rw-r--r--plugins/MirLua/src/mlua.cpp6
-rw-r--r--plugins/MirLua/src/mlua_utils.cpp46
-rw-r--r--plugins/MirLua/src/stdafx.h6
-rw-r--r--plugins/MirLua/src/version.h4
13 files changed, 1121 insertions, 13 deletions
diff --git a/plugins/MirLua/MirLua.vcxproj b/plugins/MirLua/MirLua.vcxproj
index 342893c008..57e34980c1 100644
--- a/plugins/MirLua/MirLua.vcxproj
+++ b/plugins/MirLua/MirLua.vcxproj
@@ -37,4 +37,4 @@
</ClCompile>
<None Include="res\*.ico" />
</ItemGroup>
-</Project>
+</Project> \ No newline at end of file
diff --git a/plugins/MirLua/MirLua.vcxproj.filters b/plugins/MirLua/MirLua.vcxproj.filters
index a8ab01c0e5..9388fdfa0e 100644
--- a/plugins/MirLua/MirLua.vcxproj.filters
+++ b/plugins/MirLua/MirLua.vcxproj.filters
@@ -1,4 +1,689 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(ProjectDir)..\..\build\vc.common\common.filters" />
-</Project>
+ <ItemGroup>
+ <ClCompile Include="src\stdafx.cxx">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ <ClCompile Include="src\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mlua.cpp" />
+ <ClCompile Include="src\mlua_module_loader.cpp" />
+ <ClCompile Include="src\mlua_options.cpp" />
+ <ClCompile Include="src\mlua_script.cpp" />
+ <ClCompile Include="src\mlua_script_loader.cpp" />
+ <ClCompile Include="src\mlua_utils.cpp" />
+ <ClCompile Include="src\m_chat.cpp" />
+ <ClCompile Include="src\m_clist.cpp" />
+ <ClCompile Include="src\m_core.cpp" />
+ <ClCompile Include="src\m_database.cpp" />
+ <ClCompile Include="src\m_genmenu.cpp" />
+ <ClCompile Include="src\m_hotkeys.cpp" />
+ <ClCompile Include="src\m_icolib.cpp" />
+ <ClCompile Include="src\m_message.cpp" />
+ <ClCompile Include="src\m_msg_buttonsbar.cpp" />
+ <ClCompile Include="src\m_popup.cpp" />
+ <ClCompile Include="src\m_protocols.cpp" />
+ <ClCompile Include="src\m_toptoolbar.cpp" />
+ <ClCompile Include="src\m_variables.cpp" />
+ <ClCompile Include="src\m_windows.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ <ClInclude Include="src\mlua.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mlua_module_loader.h" />
+ <ClInclude Include="src\mlua_options.h" />
+ <ClInclude Include="src\mlua_script.h" />
+ <ClInclude Include="src\mlua_script_loader.h" />
+ <ClInclude Include="src\m_genmenu.h" />
+ <ClInclude Include="src\m_msg_buttonsbar.h" />
+ <ClInclude Include="src\m_protocols.h" />
+ <ClInclude Include="src\m_toptoolbar.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\version.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\resource.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ <ResourceCompile Include="res\version.rc" />
+ <ResourceCompile Include="res\resource.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ <ResourceCompile Include="res\version.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="res\icon.ico">
+ <Filter>Resource Files</Filter>
+ </None>
+ <None Include="res\open.ico" />
+ <None Include="res\reload.ico" />
+ <None Include="res\icon.ico">
+ <Filter>Resource Files</Filter>
+ </None>
+ <None Include="res\open.ico" />
+ <None Include="res\reload.ico" />
+ <None Include="res\icon.ico">
+ <Filter>Resource Files</Filter>
+ </None>
+ <None Include="res\open.ico" />
+ <None Include="res\reload.ico" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/MirLua/src/m_chat.cpp b/plugins/MirLua/src/m_chat.cpp
index dad9047100..fb3b9d9ad9 100644
--- a/plugins/MirLua/src/m_chat.cpp
+++ b/plugins/MirLua/src/m_chat.cpp
@@ -7,7 +7,11 @@ int GCHookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM param)
int ref = param;
lua_rawgeti(L, LUA_REGISTRYINDEX, ref);
- lua_pushnumber(L, wParam);
+ WPARAM* wParam_ptr = (WPARAM*)lua_newuserdata(L, sizeof(WPARAM));
+ *wParam_ptr = wParam;
+
+ LPARAM* lParam_ptr = (LPARAM*)lua_newuserdata(L, sizeof(LPARAM));
+ *lParam_ptr = lParam;
GCEVENT *gce = (GCEVENT*)lParam;
@@ -53,6 +57,8 @@ int GCHookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM param)
static int lua_OnReceiveEvent(lua_State *L)
{
+ ObsoleteMethod(L, "Use m.HookEvent instead");
+
if (!lua_isfunction(L, 1))
{
lua_pushlightuserdata(L, NULL);
@@ -78,9 +84,70 @@ static luaL_Reg chatApi[] =
{ NULL, NULL }
};
+#define MT_GCEVENT "GCEVENT"
+
+static int gce__init(lua_State *L)
+{
+ GCEVENT *udata = (GCEVENT*)lua_touserdata(L, 1);
+ if (udata == NULL)
+ {
+ lua_pushnil(L);
+ return 1;
+ }
+
+ GCEVENT **gce = (GCEVENT**)lua_newuserdata(L, sizeof(GCEVENT*));
+ *gce = udata;
+
+ luaL_setmetatable(L, MT_GCEVENT);
+
+ return 1;
+}
+
+static int gce__index(lua_State *L)
+{
+ GCEVENT *gce = (GCEVENT*)luaL_checkudata(L, 1, MT_GCEVENT);
+ const char *key = luaL_checkstring(L, 2);
+
+ if (mir_strcmpi(key, "Module"))
+ lua_pushstring(L, gce->pDest->pszModule);
+ if (mir_strcmpi(key, "Id"))
+ lua_pushstring(L, ptrA(mir_utf8encodeT(gce->pDest->ptszID)));
+ if (mir_strcmpi(key, "Type"))
+ lua_pushinteger(L, gce->pDest->iType);
+ if (mir_strcmpi(key, "Timestamp"))
+ lua_pushnumber(L, gce->time);
+ if (mir_strcmpi(key, "IsMe"))
+ lua_pushboolean(L, gce->bIsMe);
+ if (mir_strcmpi(key, "Flags"))
+ lua_pushinteger(L, gce->dwFlags);
+ if (mir_strcmpi(key, "Uid"))
+ lua_pushstring(L, ptrA(mir_utf8encodeT(gce->pDest->ptszID)));
+ if (mir_strcmpi(key, "Nick"))
+ lua_pushstring(L, ptrA(mir_utf8encodeT(gce->pDest->ptszID)));
+ if (mir_strcmpi(key, "Status"))
+ lua_pushstring(L, ptrA(mir_utf8encodeT(gce->pDest->ptszID)));
+ if (mir_strcmpi(key, "Text"))
+ lua_pushstring(L, ptrA(mir_utf8encodeT(gce->pDest->ptszID)));
+ else
+ lua_pushnil(L);
+
+ return 1;
+}
+
+static const luaL_Reg gceMeta[] =
+{
+ { "__init", gce__init },
+ { "__index", gce__index },
+ { NULL, NULL }
+};
+
LUAMOD_API int luaopen_m_chat(lua_State *L)
{
luaL_newlib(L, chatApi);
+ luaL_newmetatable(L, MT_GCEVENT);
+ luaL_setfuncs(L, gceMeta, 0);
+ lua_pop(L, 1);
+
return 1;
}
diff --git a/plugins/MirLua/src/m_core.cpp b/plugins/MirLua/src/m_core.cpp
index 6a5b4cb2d0..b2f6beda2a 100644
--- a/plugins/MirLua/src/m_core.cpp
+++ b/plugins/MirLua/src/m_core.cpp
@@ -36,6 +36,23 @@ static int lua_NotifyEventHooks(lua_State *L)
return 1;
}
+int HookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM param)
+{
+ lua_State *L = (lua_State*)obj;
+
+ int ref = param;
+ lua_rawgeti(L, LUA_REGISTRYINDEX, ref);
+
+ lua_pushlightuserdata(L, (void*)wParam);
+ lua_pushlightuserdata(L, (void*)lParam);
+ if (lua_pcall(L, 2, 1, 0))
+ CallService(MS_NETLIB_LOG, (WPARAM)hNetlib, (LPARAM)lua_tostring(L, -1));
+
+ int res = (int)lua_tointeger(L, 1);
+
+ return res;
+}
+
static int lua_HookEvent(lua_State *L)
{
const char *name = luaL_checkstring(L, 1);
@@ -49,7 +66,7 @@ static int lua_HookEvent(lua_State *L)
lua_pushvalue(L, 2);
int ref = luaL_ref(L, LUA_REGISTRYINDEX);
- HANDLE res = ::HookEventObjParam(name, CMLua::HookEventObjParam, L, ref);
+ HANDLE res = ::HookEventObjParam(name, HookEventObjParam, L, ref);
lua_pushlightuserdata(L, res);
CMLua::Hooks.insert(res);
@@ -78,15 +95,15 @@ static int lua_UnhookEvent(lua_State *L)
return 1;
}
-static INT_PTR ServiceFunctionObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM param)
+INT_PTR CreateServiceFunctionObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM param)
{
lua_State *L = (lua_State*)obj;
int ref = param;
lua_rawgeti(L, LUA_REGISTRYINDEX, ref);
- lua_pushnumber(L, wParam);
- lua_pushnumber(L, lParam);
+ lua_pushlightuserdata(L, (void*)wParam);
+ lua_pushlightuserdata(L, (void*)lParam);
if (lua_pcall(L, 2, 1, 0))
CallService(MS_NETLIB_LOG, (WPARAM)hNetlib, (LPARAM)lua_tostring(L, -1));
@@ -109,7 +126,7 @@ static int lua_CreateServiceFunction(lua_State *L)
lua_pushvalue(L, 2);
int ref = luaL_ref(L, LUA_REGISTRYINDEX);
- HANDLE res = ::CreateServiceFunctionObjParam(name, ServiceFunctionObjParam, L, ref);
+ HANDLE res = ::CreateServiceFunctionObjParam(name, CreateServiceFunctionObjParam, L, ref);
lua_pushlightuserdata(L, res);
CMLua::Services.insert(res);
diff --git a/plugins/MirLua/src/m_database.cpp b/plugins/MirLua/src/m_database.cpp
index 9454d87664..bfbc986f55 100644
--- a/plugins/MirLua/src/m_database.cpp
+++ b/plugins/MirLua/src/m_database.cpp
@@ -480,6 +480,8 @@ static int SettingsChangedHookEventObjParam(void *obj, WPARAM wParam, LPARAM lPa
static int lua_OnSettingChanged(lua_State *L)
{
+ ObsoleteMethod(L, "Use m.HookEvent instead");
+
if (!lua_isfunction(L, 1))
{
lua_pushlightuserdata(L, NULL);
@@ -500,6 +502,8 @@ static int lua_OnSettingChanged(lua_State *L)
static int lua_DecodeDBCONTACTWRITESETTING(lua_State *L)
{
+ ObsoleteMethod(L, "Use totable(x, \"DBCONTACTWRITESETTING\") instead");
+
DBCONTACTWRITESETTING *pDBCWS = (DBCONTACTWRITESETTING*)lua_tointeger(L, 1);
lua_newtable(L);
@@ -575,9 +579,81 @@ static luaL_Reg databaseApi[] =
{ NULL, NULL }
};
+#define MT_DBCONTACTWRITESETTING "DBCONTACTWRITESETTING"
+
+static int dbcw__init(lua_State *L)
+{
+ DBCONTACTWRITESETTING *udata = (DBCONTACTWRITESETTING*)lua_touserdata(L, 1);
+ if (udata == NULL)
+ {
+ lua_pushnil(L);
+ return 1;
+ }
+
+ DBCONTACTWRITESETTING **dbcw = (DBCONTACTWRITESETTING**)lua_newuserdata(L, sizeof(DBCONTACTWRITESETTING*));
+ *dbcw = udata;
+
+ luaL_setmetatable(L, MT_DBCONTACTWRITESETTING);
+
+ return 1;
+}
+
+static int dbcw__index(lua_State *L)
+{
+ DBCONTACTWRITESETTING *dbcw = (DBCONTACTWRITESETTING*)luaL_checkudata(L, 1, MT_DBCONTACTWRITESETTING);
+ const char *key = luaL_checkstring(L, 2);
+
+ if (mir_strcmpi(key, "Module"))
+ lua_pushstring(L, dbcw->szModule);
+ if (mir_strcmpi(key, "Setting"))
+ lua_pushstring(L, dbcw->szSetting);
+ if (mir_strcmpi(key, "Value"))
+ {
+ switch (dbcw->value.type)
+ {
+ case DBVT_BYTE:
+ lua_pushinteger(L, dbcw->value.bVal);
+ break;
+ case DBVT_WORD:
+ lua_pushinteger(L, dbcw->value.wVal);
+ break;
+ case DBVT_DWORD:
+ lua_pushnumber(L, dbcw->value.dVal);
+ break;
+ case DBVT_ASCIIZ:
+ lua_pushstring(L, ptrA(mir_utf8encode(dbcw->value.pszVal)));
+ break;
+ case DBVT_UTF8:
+ lua_pushstring(L, dbcw->value.pszVal);
+ break;
+ case DBVT_WCHAR:
+ lua_pushstring(L, ptrA(mir_utf8encodeW(dbcw->value.pwszVal)));
+ break;
+ default:
+ lua_pushnil(L);
+ }
+ }
+ else
+ lua_pushnil(L);
+
+ return 1;
+}
+
+static const luaL_Reg dbcwMeta[] =
+{
+ { "__init", dbcw__init },
+ { "__index", dbcw__index },
+ { NULL, NULL }
+};
+
+
LUAMOD_API int luaopen_m_database(lua_State *L)
{
luaL_newlib(L, databaseApi);
+ luaL_newmetatable(L, MT_DBCONTACTWRITESETTING);
+ luaL_setfuncs(L, dbcwMeta, 0);
+ lua_pop(L, 1);
+
return 1;
}
diff --git a/plugins/MirLua/src/m_message.cpp b/plugins/MirLua/src/m_message.cpp
index 2968b1aeda..1722671689 100644
--- a/plugins/MirLua/src/m_message.cpp
+++ b/plugins/MirLua/src/m_message.cpp
@@ -103,6 +103,8 @@ int MsgWindowEventHookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPA
static int lua_OnMsgWindowEvent(lua_State *L)
{
+ ObsoleteMethod(L, "Use m.HookEvent instead");
+
if (!lua_isfunction(L, 1))
{
lua_pushlightuserdata(L, NULL);
@@ -131,9 +133,58 @@ static luaL_Reg messageApi[] =
{ NULL, NULL }
};
+#define MT_MESSAGEWINDOWEVENTDATA "MessageWindowEventData"
+
+static int mwed__init(lua_State *L)
+{
+ MessageWindowEventData *udata = (MessageWindowEventData*)lua_touserdata(L, 1);
+ if (udata == NULL)
+ {
+ lua_pushnil(L);
+ return 1;
+ }
+
+ MessageWindowEventData **mwed = (MessageWindowEventData**)lua_newuserdata(L, sizeof(MessageWindowEventData*));
+ *mwed = udata;
+
+ luaL_setmetatable(L, MT_MESSAGEWINDOWEVENTDATA);
+
+ return 1;
+}
+
+static int mwed__index(lua_State *L)
+{
+ MessageWindowEventData *mwed = *(MessageWindowEventData**)luaL_checkudata(L, 1, MT_MESSAGEWINDOWEVENTDATA);
+ const char *key = lua_tostring(L, 2);
+
+ if (!mir_strcmpi(key, "Module"))
+ lua_pushstring(L, ptrA(mir_utf8encode(mwed->szModule)));
+ if (!mir_strcmpi(key, "Type"))
+ lua_pushinteger(L, mwed->uType);
+ if (!mir_strcmpi(key, "hContact"))
+ lua_pushinteger(L, mwed->hContact);
+ if (!mir_strcmpi(key, "Flags"))
+ lua_pushinteger(L, mwed->uFlags);
+ else
+ lua_pushnil(L);
+
+ return 1;
+}
+
+static luaL_Reg mwedMeta[] =
+{
+ { "__init", mwed__init },
+ { "__index", mwed__index },
+ { NULL, NULL }
+};
+
LUAMOD_API int luaopen_m_message(lua_State *L)
{
luaL_newlib(L, messageApi);
+ luaL_newmetatable(L, MT_MESSAGEWINDOWEVENTDATA);
+ luaL_setfuncs(L, mwedMeta, 0);
+ lua_pop(L, 1);
+
return 1;
}
diff --git a/plugins/MirLua/src/m_msg_buttonsbar.cpp b/plugins/MirLua/src/m_msg_buttonsbar.cpp
index 3973badba7..b7824e78aa 100644
--- a/plugins/MirLua/src/m_msg_buttonsbar.cpp
+++ b/plugins/MirLua/src/m_msg_buttonsbar.cpp
@@ -132,7 +132,7 @@ int ButtonPressedHookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPAR
lua_rawgeti(L, LUA_REGISTRYINDEX, ref);
lua_pushnumber(L, wParam);
-
+
CustomButtonClickData *bcd = (CustomButtonClickData*)lParam;
lua_newtable(L);
@@ -159,6 +159,8 @@ int ButtonPressedHookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPAR
static int lua_OnMsgToolBarButtonPressed(lua_State *L)
{
+ ObsoleteMethod(L, "Use m.HookEvent instead");
+
if (!lua_isfunction(L, 1))
{
lua_pushlightuserdata(L, NULL);
@@ -210,9 +212,58 @@ static luaL_Reg msgbuttinsbarApi[] =
{ NULL, NULL }
};
+#define MT_CUSTOMBUTTONCLICKDATA "CustomButtonClickData"
+
+static int bcd__init(lua_State *L)
+{
+ CustomButtonClickData *udata = (CustomButtonClickData*)lua_touserdata(L, 1);
+ if (udata == NULL)
+ {
+ lua_pushnil(L);
+ return 1;
+ }
+
+ CustomButtonClickData **bcd = (CustomButtonClickData**)lua_newuserdata(L, sizeof(CustomButtonClickData*));
+ *bcd = udata;
+
+ luaL_setmetatable(L, MT_CUSTOMBUTTONCLICKDATA);
+
+ return 1;
+}
+
+static int bcd__index(lua_State *L)
+{
+ CustomButtonClickData *bcd = *(CustomButtonClickData**)luaL_checkudata(L, 1, MT_CUSTOMBUTTONCLICKDATA);
+ const char *key = lua_tostring(L, 2);
+
+ if (!mir_strcmpi(key, "Module"))
+ lua_pushstring(L, ptrA(mir_utf8encode(bcd->pszModule)));
+ else if (!mir_strcmpi(key, "ButtonID"))
+ lua_pushinteger(L, bcd->dwButtonId);
+ else if (!mir_strcmpi(key, "hContact"))
+ lua_pushinteger(L, bcd->hContact);
+ else if (!mir_strcmpi(key, "Flags"))
+ lua_pushinteger(L, bcd->flags);
+ else
+ lua_pushnil(L);
+
+ return 1;
+}
+
+static luaL_Reg bcdMeta[] =
+{
+ { "__init", bcd__init },
+ { "__index", bcd__index },
+ { NULL, NULL }
+};
+
LUAMOD_API int luaopen_m_msg_buttonsbar(lua_State *L)
{
luaL_newlib(L, msgbuttinsbarApi);
+
+ luaL_newmetatable(L, MT_CUSTOMBUTTONCLICKDATA);
+ luaL_setfuncs(L, bcdMeta, 0);
+ lua_pop(L, 1);
return 1;
}
diff --git a/plugins/MirLua/src/m_protocols.cpp b/plugins/MirLua/src/m_protocols.cpp
index 5f82e69da2..05be204deb 100644
--- a/plugins/MirLua/src/m_protocols.cpp
+++ b/plugins/MirLua/src/m_protocols.cpp
@@ -230,6 +230,8 @@ int ProtoAckHookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM pa
static int lua_OnProtoAck(lua_State *L)
{
+ ObsoleteMethod(L, "Use m.HookEvent instead");
+
if (!lua_isfunction(L, 1))
{
lua_pushlightuserdata(L, NULL);
@@ -278,6 +280,8 @@ int RecvMessageHookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM
static int lua_OnReceiveMessage(lua_State *L)
{
+ ObsoleteMethod(L, "Use m.HookEvent instead");
+
if (!lua_isfunction(L, 1))
{
lua_pushlightuserdata(L, NULL);
@@ -319,9 +323,110 @@ static luaL_Reg protocolsApi[] =
{ NULL, NULL }
};
+#define MT_ACKDATA "ACKDATA"
+
+static int ack__init(lua_State *L)
+{
+ ACKDATA *udata = (ACKDATA*)lua_touserdata(L, 1);
+ if (udata == NULL)
+ {
+ lua_pushnil(L);
+ return 1;
+ }
+
+ ACKDATA **ack = (ACKDATA**)lua_newuserdata(L, sizeof(ACKDATA*));
+ *ack = udata;
+
+ luaL_setmetatable(L, MT_ACKDATA);
+
+ return 1;
+}
+
+static int ack__index(lua_State *L)
+{
+ ACKDATA *ack = *(ACKDATA**)luaL_checkudata(L, 1, MT_ACKDATA);
+ const char *key = lua_tostring(L, 2);
+
+ if (!mir_strcmpi(key, "Module"))
+ lua_pushstring(L, ptrA(mir_utf8encode(ack->szModule)));
+ if (!mir_strcmpi(key, "hContact"))
+ lua_pushinteger(L, ack->hContact);
+ if (!mir_strcmpi(key, "Type"))
+ lua_pushinteger(L, ack->type);
+ if (!mir_strcmpi(key, "Result"))
+ lua_pushinteger(L, ack->result);
+ if (!mir_strcmpi(key, "hProcess"))
+ lua_pushlightuserdata(L, ack->hProcess);
+ if (!mir_strcmpi(key, "lParam"))
+ lua_pushnumber(L, ack->lParam);
+ else
+ lua_pushnil(L);
+
+ return 1;
+}
+
+static luaL_Reg ackMeta[] =
+{
+ { "__init", ack__init },
+ { "__index", ack__index },
+ { NULL, NULL }
+};
+
+#define MT_CCSDATA "CCSDATA"
+
+static int ccs__init(lua_State *L)
+{
+ CCSDATA *udata = (CCSDATA*)lua_touserdata(L, 1);
+ if (udata == NULL)
+ {
+ lua_pushnil(L);
+ return 1;
+ }
+
+ CCSDATA **ccs = (CCSDATA**)lua_newuserdata(L, sizeof(CCSDATA*));
+ *ccs = udata;
+
+ luaL_setmetatable(L, MT_ACKDATA);
+
+ return 1;
+}
+
+static int ccs__index(lua_State *L)
+{
+ CCSDATA *ccs = *(CCSDATA**)luaL_checkudata(L, 1, MT_CCSDATA);
+ const char *key = lua_tostring(L, 2);
+
+ if (!mir_strcmpi(key, "hContact"))
+ lua_pushinteger(L, ccs->hContact);
+ if (!mir_strcmpi(key, "Message"))
+ {
+ PROTORECVEVENT *pre = (PROTORECVEVENT*)ccs->lParam;
+ lua_pushstring(L, pre->szMessage);
+ }
+ else
+ lua_pushnil(L);
+
+ return 1;
+}
+
+static luaL_Reg ccsMeta[] =
+{
+ { "__init", ccs__init },
+ { "__index", ccs__index },
+ { NULL, NULL }
+};
+
LUAMOD_API int luaopen_m_protocols(lua_State *L)
{
luaL_newlib(L, protocolsApi);
+ luaL_newmetatable(L, MT_ACKDATA);
+ luaL_setfuncs(L, ackMeta, 0);
+ lua_pop(L, 1);
+
+ luaL_newmetatable(L, MT_CCSDATA);
+ luaL_setfuncs(L, ccsMeta, 0);
+ lua_pop(L, 1);
+
return 1;
}
diff --git a/plugins/MirLua/src/m_toptoolbar.cpp b/plugins/MirLua/src/m_toptoolbar.cpp
index be1739bfcc..3d2e888ac5 100644
--- a/plugins/MirLua/src/m_toptoolbar.cpp
+++ b/plugins/MirLua/src/m_toptoolbar.cpp
@@ -119,6 +119,8 @@ static int lua_RemoveButton(lua_State *L)
static int lua_OnTopToolBarLoaded(lua_State *L)
{
+ ObsoleteMethod(L, "Use m.HookEvent instead");
+
if (!lua_isfunction(L, 1))
{
lua_pushlightuserdata(L, NULL);
diff --git a/plugins/MirLua/src/mlua.cpp b/plugins/MirLua/src/mlua.cpp
index 6da603358d..15bd34fe2d 100644
--- a/plugins/MirLua/src/mlua.cpp
+++ b/plugins/MirLua/src/mlua.cpp
@@ -41,6 +41,8 @@ void CMLua::Load()
lua_setfield(L, -2, "a");
lua_pushcclosure(L, luaM_toucs2, 0);
lua_setfield(L, -2, "u");
+ lua_pushcclosure(L, luaM_totable, 0);
+ lua_setfield(L, -2, "totable");
lua_pop(L, 1);
lua_atpanic(L, luaM_atpanic);
@@ -135,8 +137,8 @@ int CMLua::HookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM par
int ref = param;
lua_rawgeti(L, LUA_REGISTRYINDEX, ref);
- lua_pushnumber(L, wParam);
- lua_pushnumber(L, lParam);
+ lua_pushlightuserdata(L, (void*)wParam);
+ lua_pushlightuserdata(L, (void*)lParam);
if (lua_pcall(L, 2, 1, 0))
CallService(MS_NETLIB_LOG, (WPARAM)hNetlib, (LPARAM)lua_tostring(L, -1));
diff --git a/plugins/MirLua/src/mlua_utils.cpp b/plugins/MirLua/src/mlua_utils.cpp
index 04c41a5c6e..558652ef35 100644
--- a/plugins/MirLua/src/mlua_utils.cpp
+++ b/plugins/MirLua/src/mlua_utils.cpp
@@ -115,4 +115,50 @@ LPARAM luaM_tolparam(lua_State *L, int idx)
break;
}
return lParam;
+}
+
+int luaM_totable(lua_State *L)
+{
+ const char *tname = luaL_checkstring(L, -1);
+
+ luaL_getmetatable(L, tname);
+ lua_getfield(L, -1, "__init");
+ lua_pushvalue(L, 1);
+ if (lua_pcall(L, 1, 1, 0))
+ CallService(MS_NETLIB_LOG, (WPARAM)hNetlib, (LPARAM)lua_tostring(L, -1));
+
+ return 1;
+}
+
+void ShowNotification(const char *caption, const char *message, int flags, MCONTACT hContact)
+{
+ if (Miranda_Terminated())
+ {
+ return;
+ }
+
+ if (ServiceExists(MS_POPUP_ADDPOPUPT) && db_get_b(NULL, "Popup", "ModuleIsEnabled", 1))
+ {
+ POPUPDATA ppd = { 0 };
+ ppd.lchContact = hContact;
+ mir_strncpy(ppd.lpzContactName, caption, MAX_CONTACTNAME);
+ mir_strncpy(ppd.lpzText, message, MAX_SECONDLINE);
+
+ if (!PUAddPopup(&ppd))
+ return;
+ }
+
+ ::MessageBoxA(NULL, message, caption, MB_OK | flags);
+}
+
+void ObsoleteMethod(lua_State *L, const char *message)
+{
+ lua_Debug info;
+ lua_getstack(L, 0, &info);
+ lua_getinfo(L, "n", &info);
+
+ char text[512];
+ mir_snprintf(text, "%s is obsolete. %s", info.name, message);
+ CallService(MS_NETLIB_LOG, (WPARAM)hNetlib, (LPARAM)text);
+ ShowNotification(MODULE, text, MB_OK | MB_ICONWARNING, NULL);
} \ No newline at end of file
diff --git a/plugins/MirLua/src/stdafx.h b/plugins/MirLua/src/stdafx.h
index 61f968d6a4..2fd13a061d 100644
--- a/plugins/MirLua/src/stdafx.h
+++ b/plugins/MirLua/src/stdafx.h
@@ -106,8 +106,14 @@ int luaM_atpanic(lua_State *L);
int luaM_toansi(lua_State *L);
int luaM_toucs2(lua_State *L);
+int luaM_totable(lua_State *L);
+
bool luaM_toboolean(lua_State *L, int idx);
WPARAM luaM_towparam(lua_State *L, int idx);
LPARAM luaM_tolparam(lua_State *L, int idx);
+void ShowNotification(const char *caption, const char *message, int flags, MCONTACT hContact);
+
+void ObsoleteMethod(lua_State *L, const char *message);
+
#endif //_COMMON_H_
diff --git a/plugins/MirLua/src/version.h b/plugins/MirLua/src/version.h
index 7315656b63..086f2b7388 100644
--- a/plugins/MirLua/src/version.h
+++ b/plugins/MirLua/src/version.h
@@ -1,7 +1,7 @@
#define __MAJOR_VERSION 0
#define __MINOR_VERSION 11
-#define __RELEASE_NUM 4
-#define __BUILD_NUM 7
+#define __RELEASE_NUM 5
+#define __BUILD_NUM 0
#include <stdver.h>