ESOUI SVN TaosGroupTools

[/] [trunk/] [TaosGroupTools/] [ui/] [groupframes/] [SubGroupMenu.lua] - Rev 89

Compare with Previous | Blame | View Log

--[[
        Addon: Taos Group Tools
        Author: TProg Taonnor
        Created by @Taonnor
]]--

--[[
        Global callbacks
]]--
TGT_SHOW_SUB_GROUP_MENU = "TGT-ShowSubGroupMenu"
TGT_SET_SUB_GROUP = "TGT-SetSubGroup"

--[[
        Local variables
]]--
local _logger = nil
local _settingsHandler = TGT_SettingsHandler

--[[
        Table TGT_SubGroupMenu
]]--
TGT_SubGroupMenu = {}
TGT_SubGroupMenu.__index = TGT_SubGroupMenu

--[[
        ===============
    PRIVATE METHODS
    ===============
]]--

--[[
        SetSubGroup shows Sub group menu
]]--
local function SetSubGroup(group, arg)
    FireCallbacksAsync(TGT_SET_SUB_GROUP, group, arg)
end

--[[
        AddSubGroupMenu adds menu item
]]--
local function AddSubGroupMenu(identifier, group, arg)
    if (string.len(group.Name) > 0) then
        AddMenuItem(zo_strformat("<<1>> - <<2>>", identifier, group.Name), function() SetSubGroup(identifier, arg) end)
    else
        AddMenuItem(identifier, function() SetSubGroup(identifier, arg) end)
    end
end

--[[
        ShowSubGroupMenu shows Sub group menu
]]--
local function ShowSubGroupMenu(control, arg)
    if (control ~= nil) then
        ClearMenu()

        -- Add menu sorted
        local subGroups = _settingsHandler.SavedVariables.GroupFrameGroups
        AddSubGroupMenu("MainGroup", subGroups["MainGroup"], arg)
        AddSubGroupMenu("SubGroup1", subGroups["SubGroup1"], arg)
        AddSubGroupMenu("SubGroup2", subGroups["SubGroup2"], arg)
        AddSubGroupMenu("SubGroup3", subGroups["SubGroup3"], arg)
        AddSubGroupMenu("SubGroup4", subGroups["SubGroup4"], arg)
        AddSubGroupMenu("SubGroup5", subGroups["SubGroup5"], arg)

        ShowMenu(control)
    else
        _logger:logError("GroupFrames -> ShowSubGroupMenu; control nil")
    end
end

--[[
        ==============
    PUBLIC METHODS
    ==============
]]--

--[[
        Initialize initializes TGT_SubGroupMenu
]]--
function TGT_SubGroupMenu.Initialize()
    _logger = TGT_LOGGER

    CALLBACK_MANAGER:RegisterCallback(TGT_SHOW_SUB_GROUP_MENU, ShowSubGroupMenu)

    _logger:logTrace("TGT_SubGroupMenu -> Initialized")
end

Compare with Previous | Blame