src/gui/lua: Add lua_filehelpers.cpp

Origin commit data
------------------
Commit: 295ca1f7c9
Author: Michael Liebmann <tuxcode.bbg@gmail.com>
Date: 2016-09-03 (Sat, 03 Sep 2016)
This commit is contained in:
Michael Liebmann
2016-09-03 11:44:48 +02:00
parent 8a433a668d
commit fed4ac5968
5 changed files with 133 additions and 1 deletions

View File

@@ -32,6 +32,7 @@ libneutrino_gui_lua_a_SOURCES = \
lua_cc_window.cpp \ lua_cc_window.cpp \
lua_configfile.cpp \ lua_configfile.cpp \
lua_curl.cpp \ lua_curl.cpp \
lua_filehelpers.cpp \
lua_hintbox.cpp \ lua_hintbox.cpp \
lua_menue.cpp \ lua_menue.cpp \
lua_messagebox.cpp \ lua_messagebox.cpp \

View File

@@ -0,0 +1,83 @@
/*
* lua file helpers functions
*
* (C) 2016 M. Liebmann (micha-bbg)
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <config.h>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <unistd.h>
#include <math.h>
#include <global.h>
#include <system/debug.h>
#include <system/helpers.h>
#include <neutrino.h>
#include "luainstance.h"
#include "lua_filehelpers.h"
CLuaInstFileHelpers* CLuaInstFileHelpers::getInstance()
{
static CLuaInstFileHelpers* LuaInstFileHelpers = NULL;
if (!LuaInstFileHelpers)
LuaInstFileHelpers = new CLuaInstFileHelpers();
return LuaInstFileHelpers;
}
CLuaFileHelpers *CLuaInstFileHelpers::FileHelpersCheckData(lua_State *L, int n)
{
return *(CLuaFileHelpers **) luaL_checkudata(L, n, LUA_FILEHELPER_CLASSNAME);
}
void CLuaInstFileHelpers::LuaFileHelpersRegister(lua_State *L)
{
luaL_Reg meth[] = {
{ "new", CLuaInstFileHelpers::FileHelpersNew },
{ "__gc", CLuaInstFileHelpers::FileHelpersDelete },
{ NULL, NULL }
};
luaL_newmetatable(L, LUA_FILEHELPER_CLASSNAME);
luaL_setfuncs(L, meth, 0);
lua_pushvalue(L, -1);
lua_setfield(L, -1, "__index");
lua_setglobal(L, LUA_FILEHELPER_CLASSNAME);
}
int CLuaInstFileHelpers::FileHelpersNew(lua_State *L)
{
CLuaFileHelpers **udata = (CLuaFileHelpers **) lua_newuserdata(L, sizeof(CLuaFileHelpers *));
*udata = new CLuaFileHelpers();
luaL_getmetatable(L, LUA_FILEHELPER_CLASSNAME);
lua_setmetatable(L, -2);
return 1;
}
int CLuaInstFileHelpers::FileHelpersDelete(lua_State *L)
{
CLuaFileHelpers *D = FileHelpersCheckData(L, 1);
if (!D) return 0;
delete D;
return 0;
}

View File

@@ -0,0 +1,45 @@
/*
* lua file helpers functions
*
* (C) 2016 M. Liebmann (micha-bbg)
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _LUAFILEHELPERS_H
#define _LUAFILEHELPERS_H
class CLuaFileHelpers
{
public:
CLuaFileHelpers() {};
~CLuaFileHelpers() {};
};
class CLuaInstFileHelpers
{
public:
CLuaInstFileHelpers() {};
~CLuaInstFileHelpers() {};
static CLuaInstFileHelpers* getInstance();
static void LuaFileHelpersRegister(lua_State *L);
private:
static CLuaFileHelpers *FileHelpersCheckData(lua_State *L, int n);
static int FileHelpersNew(lua_State *L);
static int FileHelpersDelete(lua_State *L);
};
#endif //_LUAFILEHELPERS_H

View File

@@ -44,6 +44,7 @@
#include "lua_cc_window.h" #include "lua_cc_window.h"
#include "lua_configfile.h" #include "lua_configfile.h"
#include "lua_curl.h" #include "lua_curl.h"
#include "lua_filehelpers.h"
#include "lua_hintbox.h" #include "lua_hintbox.h"
#include "lua_menue.h" #include "lua_menue.h"
#include "lua_messagebox.h" #include "lua_messagebox.h"
@@ -621,6 +622,7 @@ void LuaInstRegisterFunctions(lua_State *L, bool fromThreads/*=false*/)
CLuaInstCCWindow::getInstance()->CCWindowRegister(L); CLuaInstCCWindow::getInstance()->CCWindowRegister(L);
CLuaInstConfigFile::getInstance()->LuaConfigFileRegister(L); CLuaInstConfigFile::getInstance()->LuaConfigFileRegister(L);
CLuaInstCurl::getInstance()->LuaCurlRegister(L); CLuaInstCurl::getInstance()->LuaCurlRegister(L);
CLuaInstFileHelpers::getInstance()->LuaFileHelpersRegister(L);
CLuaInstHintbox::getInstance()->HintboxRegister(L); CLuaInstHintbox::getInstance()->HintboxRegister(L);
CLuaInstMenu::getInstance()->MenuRegister(L); CLuaInstMenu::getInstance()->MenuRegister(L);
CLuaInstMessagebox::getInstance()->MessageboxRegister(L); CLuaInstMessagebox::getInstance()->MessageboxRegister(L);

View File

@@ -2,7 +2,7 @@
* lua instance helper functions * lua instance helper functions
* *
* (C) 2013 Stefan Seyfried (seife) * (C) 2013 Stefan Seyfried (seife)
* (C) 2014-2015 M. Liebmann (micha-bbg) * (C) 2014-2016 M. Liebmann (micha-bbg)
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
@@ -30,6 +30,7 @@
#define LUA_MISC_CLASSNAME "misc" #define LUA_MISC_CLASSNAME "misc"
#define LUA_CURL_CLASSNAME "curl" #define LUA_CURL_CLASSNAME "curl"
#define LUA_HEADER_CLASSNAME "header" #define LUA_HEADER_CLASSNAME "header"
#define LUA_FILEHELPER_CLASSNAME "filehelpers"
#define LUA_WIKI "https://wiki.neutrino-hd.de/wiki" #define LUA_WIKI "https://wiki.neutrino-hd.de/wiki"
//#define LUA_WIKI "https://wiki.slknet.de/wiki" //#define LUA_WIKI "https://wiki.slknet.de/wiki"