From 345930435561acd026c9356f01065e7ee0e92101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Tue, 29 Oct 2013 22:15:21 +0000 Subject: Adopted SmartAutoReplier plugin First compilable version. git-svn-id: http://svn.miranda-ng.org/main/trunk@6693 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/SmartAutoReplier/LuaScript.h | 68 ++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 plugins/SmartAutoReplier/LuaScript.h (limited to 'plugins/SmartAutoReplier/LuaScript.h') diff --git a/plugins/SmartAutoReplier/LuaScript.h b/plugins/SmartAutoReplier/LuaScript.h new file mode 100644 index 0000000000..73c29c0a3f --- /dev/null +++ b/plugins/SmartAutoReplier/LuaScript.h @@ -0,0 +1,68 @@ +/* + * Smart Auto Replier (SAR) - auto replier plugin for Miranda IM + * + * Copyright (C) 2004 - 2012 by Volodymyr M. Shcherbyna + * + * This code is inspired by article of RichardS at http://www.codeproject.com/Articles/11508/Integrating-Lua-into-C + * + * This file is part of SAR. + * + * SAR is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * SAR is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with SAR. If not, see . +*/ + +#pragma once + +#include "luainc.h" +#include "LuaBridge.h" + +/// +#define DEFAULT_INDEX_INITIALIZER 0 + +class CLuaScript +{ +public: + CLuaScript(CLuaBridge & luaBridge); + virtual ~CLuaScript(); + +public: + + static int LuaCallback (lua_State *lua); + bool CompileScript(const char *szScript, size_t nLength); + int RegisterFunction(const char *szFuncName); + bool SelectScriptFunction(const char *szFunction); + bool ScriptHasFunction(const char *szFunction); + bool Run(int nRetValues = 0); + +public: + void AddParam(int nValue); + void AddParam(float fValue); + void AddParam(char *szValue); + CLuaBridge & Bridge(); + + int MethodsCount(); + +public: + virtual int ScriptCalling(CLuaBridge & luaBridge, int nFunction) = 0; + virtual void HandleReturns(CLuaBridge & luaBridge, const char * szFunction) = 0; + +protected: + + CLuaBridge & m_luaBridge; + + const char * m_szFunction; + + int m_nMethods, + m_nThisRef, + m_nArgs; +}; \ No newline at end of file -- cgit v1.2.3