61 lines
1.3 KiB
Lua

Tabs = {
classname = "FNTabs",
}
local GuiTabs = require "utils/tabs/gui_tabs"
function Tabs:new(tab_name, gui_name, tabs_list, en_style, dis_style, func)
local obj = {
tab_name = tab_name,
tabs = tabs_list,
en_style = en_style,
dis_style = dis_style,
func = func
}
function init()
for val,tab in pairs(tabs_list) do
Events.add_custom_event(gui_name, "sprite-button", tab_name .. "-" .. tab, obj.tab_event)
end
end
function obj:get_tab_global()
local global = Player.get_global()
if not global.tabs then global.tabs = {} end
return global.tabs
end
function obj:get_cur_tab()
return self:get_tab_global()[self.tab_name] or self.tabs[1]
end
function obj:set_cur_tab(val)
local global = self:get_tab_global()
global[self.tab_name] = val
self:draw_tabs()
end
function obj:get_tabs_list()
return self.tabs
end
function obj:draw_tabs()
GuiTabs.draw_tabs(self.tab_name, self)
end
function obj.tab_event(event, name)
local _,pos = string.find(name, string.gsub(obj.tab_name, "%p", "%%%0"))
local tab_name = string.sub(name, pos + 2)
obj:set_cur_tab(tab_name)
if obj.func then
obj.func(event, tab_name)
end
end
init()
setmetatable(obj, self)
self.__index = self; return obj
end