mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-26 15:02:56 +02:00
gui/luainstance: rename menue => menu
This commit is contained in:
@@ -420,11 +420,9 @@ void CLuaInstance::registerFunctions()
|
||||
lua_pop(lua, 1);
|
||||
|
||||
lua_register(lua, className, NewWindow);
|
||||
#ifdef MARTII
|
||||
MenueRegister(lua);
|
||||
MenuRegister(lua);
|
||||
HintboxRegister(lua);
|
||||
MessageboxRegister(lua);
|
||||
#endif
|
||||
}
|
||||
|
||||
CLuaData *CLuaInstance::CheckData(lua_State *L, int narg)
|
||||
@@ -722,7 +720,7 @@ bool CLuaInstance::tableLookup(lua_State *L, const char *what, int &value)
|
||||
return res;
|
||||
}
|
||||
|
||||
bool CLuaMenueChangeObserver::changeNotify(lua_State *L, const std::string &luaAction, const std::string &luaId, void *Data)
|
||||
bool CLuaMenuChangeObserver::changeNotify(lua_State *L, const std::string &luaAction, const std::string &luaId, void *Data)
|
||||
{
|
||||
const char *optionValue = (const char *) Data;
|
||||
lua_pushglobaltable(L);
|
||||
@@ -736,54 +734,61 @@ bool CLuaMenueChangeObserver::changeNotify(lua_State *L, const std::string &luaA
|
||||
return res == menu_return::RETURN_REPAINT || res == menu_return::RETURN_EXIT_REPAINT;
|
||||
}
|
||||
|
||||
void CLuaInstance::MenueRegister(lua_State *L)
|
||||
void CLuaInstance::MenuRegister(lua_State *L)
|
||||
{
|
||||
luaL_Reg meth[] = {
|
||||
{ "new", CLuaInstance::MenueNew },
|
||||
{ "addKey", CLuaInstance::MenueAddKey },
|
||||
{ "addItem", CLuaInstance::MenueAddItem },
|
||||
{ "exec", CLuaInstance::MenueExec },
|
||||
{ "hide", CLuaInstance::MenueHide },
|
||||
{ "__gc", CLuaInstance::MenueDelete },
|
||||
{ "new", CLuaInstance::MenuNew },
|
||||
{ "addKey", CLuaInstance::MenuAddKey },
|
||||
{ "addItem", CLuaInstance::MenuAddItem },
|
||||
{ "exec", CLuaInstance::MenuExec },
|
||||
{ "hide", CLuaInstance::MenuHide },
|
||||
{ "__gc", CLuaInstance::MenuDelete },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
luaL_newmetatable(L, "menue");
|
||||
luaL_newmetatable(L, "menu");
|
||||
luaL_setfuncs(L, meth, 0);
|
||||
lua_pushvalue(L, -1);
|
||||
lua_setfield(L, -1, "__index");
|
||||
lua_setglobal(L, "menu");
|
||||
|
||||
// keep misspelled "menue" for backwards-compatibility
|
||||
luaL_newmetatable(L, "menu");
|
||||
luaL_setfuncs(L, meth, 0);
|
||||
lua_pushvalue(L, -1);
|
||||
lua_setfield(L, -1, "__index");
|
||||
lua_setglobal(L, "menue");
|
||||
}
|
||||
|
||||
CLuaMenue *CLuaInstance::MenueCheck(lua_State *L, int n)
|
||||
CLuaMenu *CLuaInstance::MenuCheck(lua_State *L, int n)
|
||||
{
|
||||
return *(CLuaMenue **) luaL_checkudata(L, n, "menue");
|
||||
return *(CLuaMenu **) luaL_checkudata(L, n, "menu");
|
||||
}
|
||||
|
||||
CLuaMenue::CLuaMenue()
|
||||
CLuaMenu::CLuaMenu()
|
||||
{
|
||||
m = NULL;
|
||||
observ = new CLuaMenueChangeObserver();
|
||||
observ = new CLuaMenuChangeObserver();
|
||||
}
|
||||
|
||||
CLuaMenue::~CLuaMenue()
|
||||
CLuaMenu::~CLuaMenu()
|
||||
{
|
||||
delete m;
|
||||
delete observ;
|
||||
}
|
||||
|
||||
CLuaMenueForwarder::CLuaMenueForwarder(lua_State *_L, std::string _luaAction, std::string _luaId)
|
||||
CLuaMenuForwarder::CLuaMenuForwarder(lua_State *_L, std::string _luaAction, std::string _luaId)
|
||||
{
|
||||
L = _L;
|
||||
luaAction = _luaAction;
|
||||
luaId = _luaId;
|
||||
}
|
||||
|
||||
CLuaMenueForwarder::~CLuaMenueForwarder()
|
||||
CLuaMenuForwarder::~CLuaMenuForwarder()
|
||||
{
|
||||
}
|
||||
|
||||
int CLuaMenueForwarder::exec(CMenuTarget* /*parent*/, const std::string & /*actionKey*/)
|
||||
int CLuaMenuForwarder::exec(CMenuTarget* /*parent*/, const std::string & /*actionKey*/)
|
||||
{
|
||||
int res = menu_return::RETURN_REPAINT;
|
||||
if (!luaAction.empty()){
|
||||
@@ -803,13 +808,13 @@ int CLuaMenueForwarder::exec(CMenuTarget* /*parent*/, const std::string & /*acti
|
||||
return res;
|
||||
}
|
||||
|
||||
CLuaMenueFilebrowser::CLuaMenueFilebrowser(lua_State *_L, std::string _luaAction, std::string _luaId, char *_value, bool _dirMode) : CLuaMenueForwarder(_L, _luaAction, _luaId)
|
||||
CLuaMenuFilebrowser::CLuaMenuFilebrowser(lua_State *_L, std::string _luaAction, std::string _luaId, std::string *_value, bool _dirMode) : CLuaMenuForwarder(_L, _luaAction, _luaId)
|
||||
{
|
||||
value = _value;
|
||||
dirMode = _dirMode;
|
||||
}
|
||||
|
||||
int CLuaMenueFilebrowser::exec(CMenuTarget* /*parent*/, const std::string& /*actionKey*/)
|
||||
int CLuaMenuFilebrowser::exec(CMenuTarget* /*parent*/, const std::string& /*actionKey*/)
|
||||
{
|
||||
CFileBrowser fileBrowser;
|
||||
fileBrowser.Dir_Mode = dirMode;
|
||||
@@ -834,7 +839,7 @@ int CLuaMenueFilebrowser::exec(CMenuTarget* /*parent*/, const std::string& /*act
|
||||
return menu_return::RETURN_REPAINT;
|
||||
}
|
||||
|
||||
CLuaMenueStringinput::CLuaMenueStringinput(lua_State *_L, std::string _luaAction, std::string _luaId, const char *_name, char *_value, int _size, std::string _valid_chars, CChangeObserver *_observ, const char *_icon, bool _sms) : CLuaMenueForwarder(_L, _luaAction, _luaId)
|
||||
CLuaMenuStringinput::CLuaMenuStringinput(lua_State *_L, std::string _luaAction, std::string _luaId, const char *_name, std::string *_value, int _size, std::string _valid_chars, CChangeObserver *_observ, const char *_icon, bool _sms) : CLuaMenuForwarder(_L, _luaAction, _luaId)
|
||||
{
|
||||
name = _name;
|
||||
value = _value;
|
||||
@@ -845,7 +850,7 @@ CLuaMenueStringinput::CLuaMenueStringinput(lua_State *_L, std::string _luaAction
|
||||
sms = _sms;
|
||||
}
|
||||
|
||||
int CLuaMenueStringinput::exec(CMenuTarget* /*parent*/, const std::string & /*actionKey*/)
|
||||
int CLuaMenuStringinput::exec(CMenuTarget* /*parent*/, const std::string & /*actionKey*/)
|
||||
{
|
||||
CStringInput *i;
|
||||
if (sms)
|
||||
@@ -868,7 +873,7 @@ int CLuaMenueStringinput::exec(CMenuTarget* /*parent*/, const std::string & /*ac
|
||||
return menu_return::RETURN_REPAINT;
|
||||
}
|
||||
|
||||
int CLuaInstance::MenueNew(lua_State *L)
|
||||
int CLuaInstance::MenuNew(lua_State *L)
|
||||
{
|
||||
CMenuWidget *m;
|
||||
|
||||
@@ -884,17 +889,17 @@ int CLuaInstance::MenueNew(lua_State *L)
|
||||
} else
|
||||
m = new CMenuWidget();
|
||||
|
||||
CLuaMenue **udata = (CLuaMenue **) lua_newuserdata(L, sizeof(CLuaMenue *));
|
||||
*udata = new CLuaMenue();
|
||||
CLuaMenu **udata = (CLuaMenu **) lua_newuserdata(L, sizeof(CLuaMenu *));
|
||||
*udata = new CLuaMenu();
|
||||
(*udata)->m = m;
|
||||
luaL_getmetatable(L, "menue");
|
||||
luaL_getmetatable(L, "menu");
|
||||
lua_setmetatable(L, -2);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int CLuaInstance::MenueDelete(lua_State *L)
|
||||
int CLuaInstance::MenuDelete(lua_State *L)
|
||||
{
|
||||
CLuaMenue *m = MenueCheck(L, 1);
|
||||
CLuaMenu *m = MenuCheck(L, 1);
|
||||
if (!m)
|
||||
return 0;
|
||||
|
||||
@@ -911,9 +916,9 @@ int CLuaInstance::MenueDelete(lua_State *L)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CLuaInstance::MenueAddKey(lua_State *L)
|
||||
int CLuaInstance::MenuAddKey(lua_State *L)
|
||||
{
|
||||
CLuaMenue *m = MenueCheck(L, 1);
|
||||
CLuaMenu *m = MenuCheck(L, 1);
|
||||
if (!m)
|
||||
return 0;
|
||||
lua_assert(lua_istable(L, 2));
|
||||
@@ -922,23 +927,23 @@ int CLuaInstance::MenueAddKey(lua_State *L)
|
||||
std::string id; tableLookup(L, "id", id);
|
||||
int directkey = CRCInput::RC_nokey; tableLookup(L, "directkey", directkey);
|
||||
if (action != "" && directkey != (int) CRCInput::RC_nokey) {
|
||||
CLuaMenueForwarder *forwarder = new CLuaMenueForwarder(L, action, id);
|
||||
CLuaMenuForwarder *forwarder = new CLuaMenuForwarder(L, action, id);
|
||||
m->m->addKey(directkey, forwarder, action);
|
||||
m->targets.push_back(forwarder);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CLuaInstance::MenueAddItem(lua_State *L)
|
||||
int CLuaInstance::MenuAddItem(lua_State *L)
|
||||
{
|
||||
CLuaMenue *m = MenueCheck(L, 1);
|
||||
CLuaMenu *m = MenuCheck(L, 1);
|
||||
if (!m)
|
||||
return 0;
|
||||
lua_assert(lua_istable(L, 2));
|
||||
|
||||
CLuaMenueItem i;
|
||||
CLuaMenuItem i;
|
||||
m->items.push_back(i);
|
||||
CLuaMenueItem *b = &m->items.back();
|
||||
CLuaMenuItem *b = &m->items.back();
|
||||
|
||||
tableLookup(L, "name", b->name);
|
||||
std::string icon; tableLookup(L, "icon", icon);
|
||||
@@ -967,10 +972,9 @@ int CLuaInstance::MenueAddItem(lua_State *L)
|
||||
sscanf(tmp.c_str(), "%d,%d", &range_from, &range_to);
|
||||
|
||||
if (type == "forwarder") {
|
||||
strncpy(b->s, value.c_str(), sizeof(b->s));
|
||||
CLuaMenueForwarder *forwarder = new CLuaMenueForwarder(L, action, id);
|
||||
CMenuItem *mi = new CMenuForwarderNonLocalized(
|
||||
b->name.c_str(), enabled, b->s, forwarder, NULL/*ActionKey*/, directkey, icon.c_str(), right_icon.c_str());
|
||||
b->str_val = value;
|
||||
CLuaMenuForwarder *forwarder = new CLuaMenuForwarder(L, action, id);
|
||||
CMenuItem *mi = new CMenuForwarder(b->name, enabled, b->str_val, forwarder, NULL/*ActionKey*/, directkey, icon.c_str(), right_icon.c_str());
|
||||
mi->setLua(L, action, id);
|
||||
m->m->addItem(mi);
|
||||
m->targets.push_back(forwarder);
|
||||
@@ -1026,16 +1030,15 @@ int CLuaInstance::MenueAddItem(lua_State *L)
|
||||
tableLookup(L, "valid_chars", valid_chars);
|
||||
int sms = 0; tableLookup(L, "sms", sms);
|
||||
int size = 30; tableLookup(L, "size", size);
|
||||
CLuaMenueStringinput *stringinput = new CLuaMenueStringinput(L, action, id, b->name.c_str(), b->s, size, valid_chars, m->observ, icon.c_str(), sms);
|
||||
CMenuItem *mi = new CMenuForwarderNonLocalized(
|
||||
b->name.c_str(), enabled, b->s, stringinput, NULL/*ActionKey*/, directkey, icon.c_str(), right_icon.c_str());
|
||||
CLuaMenuStringinput *stringinput = new CLuaMenuStringinput(L, action, id, b->name.c_str(), &b->str_val, size, valid_chars, m->observ, icon.c_str(), sms);
|
||||
CMenuItem *mi = new CMenuForwarder(b->name, enabled, b->str_val, stringinput, NULL/*ActionKey*/, directkey, icon.c_str(), right_icon.c_str());
|
||||
mi->setLua(L, action, id);
|
||||
m->m->addItem(mi);
|
||||
m->targets.push_back(stringinput);
|
||||
} else if (type == "filebrowser") {
|
||||
strncpy(b->s, value.c_str(), sizeof(b->s));
|
||||
int dirMode = 0; tableLookup(L, "dir_mode", dirMode);
|
||||
CLuaMenueFilebrowser *filebrowser = new CLuaMenueFilebrowser(L, action, id, b->s, dirMode);
|
||||
CLuaMenuFilebrowser *filebrowser = new CLuaMenuFilebrowser(L, action, id, &b->str_val, dirMode);
|
||||
lua_pushstring(L, "filter");
|
||||
lua_gettable(L, -2);
|
||||
if (lua_istable(L, -1))
|
||||
@@ -1056,18 +1059,18 @@ int CLuaInstance::MenueAddItem(lua_State *L)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CLuaInstance::MenueHide(lua_State *L)
|
||||
int CLuaInstance::MenuHide(lua_State *L)
|
||||
{
|
||||
CLuaMenue *m = MenueCheck(L, 1);
|
||||
CLuaMenu *m = MenuCheck(L, 1);
|
||||
if (!m)
|
||||
return 0;
|
||||
m->m->hide();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CLuaInstance::MenueExec(lua_State *L)
|
||||
int CLuaInstance::MenuExec(lua_State *L)
|
||||
{
|
||||
CLuaMenue *m = MenueCheck(L, 1);
|
||||
CLuaMenu *m = MenuCheck(L, 1);
|
||||
if (!m)
|
||||
return 0;
|
||||
m->m->exec(NULL, "");
|
||||
|
@@ -38,8 +38,8 @@ struct CLuaData
|
||||
CFBWindow *fbwin;
|
||||
CRCInput *rcinput;
|
||||
};
|
||||
#ifdef MARTII
|
||||
struct CLuaMenueItem
|
||||
|
||||
struct CLuaMenuItem
|
||||
{
|
||||
union //value
|
||||
{
|
||||
@@ -49,48 +49,48 @@ struct CLuaMenueItem
|
||||
std::string name;
|
||||
};
|
||||
|
||||
class CLuaMenueChangeObserver : public CChangeObserver
|
||||
class CLuaMenuChangeObserver : public CChangeObserver
|
||||
{
|
||||
public:
|
||||
bool changeNotify(lua_State *, const std::string &, const std::string &, void *);
|
||||
};
|
||||
|
||||
class CLuaMenue
|
||||
class CLuaMenu
|
||||
{
|
||||
public:
|
||||
CMenuWidget *m;
|
||||
CLuaMenueChangeObserver *observ;
|
||||
std::list<CLuaMenueItem> items;
|
||||
CLuaMenuChangeObserver *observ;
|
||||
std::list<CLuaMenuItem> items;
|
||||
std::list<CMenuTarget *> targets;
|
||||
std::list<void *> tofree;
|
||||
CLuaMenue();
|
||||
~CLuaMenue();
|
||||
CLuaMenu();
|
||||
~CLuaMenu();
|
||||
};
|
||||
|
||||
class CLuaMenueForwarder : public CMenuTarget
|
||||
class CLuaMenuForwarder : public CMenuTarget
|
||||
{
|
||||
public:
|
||||
lua_State *L;
|
||||
std::string luaAction;
|
||||
std::string luaId;
|
||||
CLuaMenueForwarder(lua_State *L, std::string _luaAction, std::string _luaId);
|
||||
~CLuaMenueForwarder();
|
||||
CLuaMenuForwarder(lua_State *L, std::string _luaAction, std::string _luaId);
|
||||
~CLuaMenuForwarder();
|
||||
int exec(CMenuTarget* parent, const std::string & actionKey);
|
||||
};
|
||||
|
||||
class CLuaMenueFilebrowser : public CLuaMenueForwarder
|
||||
class CLuaMenuFilebrowser : public CLuaMenuForwarder
|
||||
{
|
||||
private:
|
||||
char *value;
|
||||
bool dirMode;
|
||||
std::vector<std::string> filter;
|
||||
public:
|
||||
CLuaMenueFilebrowser(lua_State *_L, std::string _luaAction, std::string _luaId, char *_value, bool _dirMode);
|
||||
CLuaMenuFilebrowser(lua_State *_L, std::string _luaAction, std::string _luaId, std::string *_value, bool _dirMode);
|
||||
int exec(CMenuTarget* parent, const std::string & actionKey);
|
||||
void addFilter(std::string s) { filter.push_back(s); };
|
||||
};
|
||||
|
||||
class CLuaMenueStringinput : public CLuaMenueForwarder
|
||||
class CLuaMenuStringinput : public CLuaMenuForwarder
|
||||
{
|
||||
private:
|
||||
char *value;
|
||||
@@ -101,7 +101,7 @@ class CLuaMenueStringinput : public CLuaMenueForwarder
|
||||
int size;
|
||||
CChangeObserver *observ;
|
||||
public:
|
||||
CLuaMenueStringinput(lua_State *_L, std::string _luaAction, std::string _luaId, const char *_name, char *_value, int _size, std::string _valid_chars, CChangeObserver *_observ, const char *_icon, bool _sms);
|
||||
CLuaMenuStringinput(lua_State *_L, std::string _luaAction, std::string _luaId, const char *_name, std::string *_value, int _size, std::string _valid_chars, CChangeObserver *_observ, const char *_icon, bool _sms);
|
||||
int exec(CMenuTarget* parent, const std::string & actionKey);
|
||||
};
|
||||
|
||||
@@ -129,9 +129,7 @@ class CLuaInstance
|
||||
{
|
||||
static const char className[];
|
||||
static const luaL_Reg methods[];
|
||||
#ifdef MARTII
|
||||
static const luaL_Reg menue_methods[];
|
||||
#endif
|
||||
static const luaL_Reg menu_methods[];
|
||||
static CLuaData *CheckData(lua_State *L, int narg);
|
||||
public:
|
||||
CLuaInstance();
|
||||
@@ -155,14 +153,14 @@ private:
|
||||
static int GetSize(lua_State *L);
|
||||
static int DisplayImage(lua_State *L);
|
||||
|
||||
void MenueRegister(lua_State *L);
|
||||
static int MenueNew(lua_State *L);
|
||||
static int MenueDelete(lua_State *L);
|
||||
static int MenueAddKey(lua_State *L);
|
||||
static int MenueAddItem(lua_State *L);
|
||||
static int MenueHide(lua_State *L);
|
||||
static int MenueExec(lua_State *L);
|
||||
static CLuaMenue *MenueCheck(lua_State *L, int n);
|
||||
void MenuRegister(lua_State *L);
|
||||
static int MenuNew(lua_State *L);
|
||||
static int MenuDelete(lua_State *L);
|
||||
static int MenuAddKey(lua_State *L);
|
||||
static int MenuAddItem(lua_State *L);
|
||||
static int MenuHide(lua_State *L);
|
||||
static int MenuExec(lua_State *L);
|
||||
static CLuaMenu *MenuCheck(lua_State *L, int n);
|
||||
|
||||
void HintboxRegister(lua_State *L);
|
||||
static int HintboxNew(lua_State *L);
|
||||
|
Reference in New Issue
Block a user