summaryrefslogtreecommitdiff
path: root/plugins/MirLua/Modules
diff options
context:
space:
mode:
authorAlexander Lantsev <aunsane@gmail.com>2016-04-04 08:39:22 +0000
committerAlexander Lantsev <aunsane@gmail.com>2016-04-04 08:39:22 +0000
commite1110157f8c2989a58aa12ddeef91669525d188f (patch)
tree23cd9c6c845c5e38659a072457566d7a5fe7e79d /plugins/MirLua/Modules
parente6dce54eeeedb43855b694c921b97c5119deef32 (diff)
MirLua: m_toptoolbar moved to separate project
git-svn-id: http://svn.miranda-ng.org/main/trunk@16583 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/MirLua/Modules')
-rw-r--r--plugins/MirLua/Modules/m_toptoolbar/m_toptoolbar.vcxproj28
-rw-r--r--plugins/MirLua/Modules/m_toptoolbar/src/main.cpp103
-rw-r--r--plugins/MirLua/Modules/m_toptoolbar/src/stdafx.cxx1
-rw-r--r--plugins/MirLua/Modules/m_toptoolbar/src/stdafx.h16
4 files changed, 148 insertions, 0 deletions
diff --git a/plugins/MirLua/Modules/m_toptoolbar/m_toptoolbar.vcxproj b/plugins/MirLua/Modules/m_toptoolbar/m_toptoolbar.vcxproj
new file mode 100644
index 0000000000..e05f3c25a9
--- /dev/null
+++ b/plugins/MirLua/Modules/m_toptoolbar/m_toptoolbar.vcxproj
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>m_toptoolbar</ProjectName>
+ <ProjectGuid>{277E433F-7D71-4247-8AAA-CC5FB1AA7A67}</ProjectGuid>
+ </PropertyGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(ProjectDir)..\module.props" />
+ </ImportGroup>
+</Project>
diff --git a/plugins/MirLua/Modules/m_toptoolbar/src/main.cpp b/plugins/MirLua/Modules/m_toptoolbar/src/main.cpp
new file mode 100644
index 0000000000..6e488ca8c7
--- /dev/null
+++ b/plugins/MirLua/Modules/m_toptoolbar/src/main.cpp
@@ -0,0 +1,103 @@
+#include "stdafx.h"
+
+int hLangpack;
+
+static TTBButton* MakeTBButton(lua_State *L)
+{
+ TTBButton *tbb = (TTBButton*)mir_calloc(sizeof(TTBButton));
+ tbb->dwFlags = TTBBF_ISLBUTTON;
+
+ lua_getfield(L, -1, "Name");
+ tbb->name = mir_utf8decodeA(luaL_checkstring(L, -1));
+ lua_pop(L, 1);
+
+ lua_getfield(L, -1, "Service");
+ tbb->pszService = (char*)lua_tostring(L, -1);
+ lua_pop(L, 1);
+
+ lua_getfield(L, -1, "Flags");
+ tbb->dwFlags = lua_tointeger(L, -1);
+ lua_pop(L, 1);
+
+ // up state
+ lua_getfield(L, -1, "IconUp");
+ tbb->hIconHandleUp = (HANDLE)lua_touserdata(L, -1);
+ lua_pop(L, 1);
+
+ lua_getfield(L, -1, "TooltipUp");
+ tbb->pszTooltipUp = mir_utf8decodeA(lua_tostring(L, -1));
+ lua_pop(L, 1);
+
+ lua_getfield(L, -1, "wParamUp");
+ tbb->wParamUp = luaM_towparam(L, -1);
+ lua_pop(L, 1);
+
+ lua_getfield(L, -1, "lParamUp");
+ tbb->lParamUp = luaM_tolparam(L, -1);
+ lua_pop(L, 1);
+
+ // dn state
+ lua_getfield(L, -1, "IconDown");
+ tbb->hIconHandleDn = (HANDLE)lua_touserdata(L, -1);
+ lua_pop(L, 1);
+
+ lua_getfield(L, -1, "TooltipDown");
+ tbb->pszTooltipDn = mir_utf8decodeA(lua_tostring(L, -1));
+ lua_pop(L, 1);
+
+ lua_getfield(L, -1, "wParamDown");
+ tbb->wParamDown = luaM_towparam(L, -1);
+ lua_pop(L, 1);
+
+ lua_getfield(L, -1, "lParamDown");
+ tbb->lParamDown = luaM_tolparam(L, -1);
+ lua_pop(L, 1);
+
+ return tbb;
+}
+
+static int lua_AddButton(lua_State *L)
+{
+ if (lua_type(L, 1) != LUA_TTABLE)
+ {
+ lua_pushlightuserdata(L, 0);
+ return 1;
+ }
+
+ TTBButton* tbb = MakeTBButton(L);
+
+ HANDLE res = ::TopToolbar_AddButton(tbb);
+ lua_pushlightuserdata(L, res);
+
+ mir_free(tbb->name);
+ mir_free(tbb->pszTooltipUp);
+ mir_free(tbb->pszTooltipDn);
+ mir_free(tbb);
+
+ return 1;
+}
+
+static int lua_RemoveButton(lua_State *L)
+{
+ HANDLE hTTButton = (HANDLE)lua_touserdata(L, 1);
+
+ INT_PTR res = ::CallService(MS_TTB_REMOVEBUTTON, (WPARAM)hTTButton, 0);
+ lua_pushinteger(L, res);
+
+ return 1;
+}
+
+static luaL_Reg toptoolbarApi[] =
+{
+ { "AddButton", lua_AddButton },
+ { "RemoveButton", lua_RemoveButton },
+
+ { NULL, NULL }
+};
+
+LUAMOD_API int luaopen_m_toptoolbar(lua_State *L)
+{
+ luaL_newlib(L, toptoolbarApi);
+
+ return 1;
+}
diff --git a/plugins/MirLua/Modules/m_toptoolbar/src/stdafx.cxx b/plugins/MirLua/Modules/m_toptoolbar/src/stdafx.cxx
new file mode 100644
index 0000000000..fd4f341c7b
--- /dev/null
+++ b/plugins/MirLua/Modules/m_toptoolbar/src/stdafx.cxx
@@ -0,0 +1 @@
+#include "stdafx.h"
diff --git a/plugins/MirLua/Modules/m_toptoolbar/src/stdafx.h b/plugins/MirLua/Modules/m_toptoolbar/src/stdafx.h
new file mode 100644
index 0000000000..b45173f207
--- /dev/null
+++ b/plugins/MirLua/Modules/m_toptoolbar/src/stdafx.h
@@ -0,0 +1,16 @@
+#ifndef _COMMON_H_
+#define _COMMON_H_
+
+#include <windows.h>
+
+#include <m_lua.h>
+#include <m_core.h>
+#include <m_utils.h>
+#include <m_toptoolbar.h>
+
+#define MLUA_TOPTOOLBAR "m_toptoolbar"
+LUAMOD_API int (luaopen_m_toptoolbar)(lua_State *L);
+
+void KillModuleTTBButton();
+
+#endif //_COMMON_H_ \ No newline at end of file