vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
local L = AceLibrary("AceLocale-2.0"):new("FuBar_GuildFu")

local opts = {
        type = "group", args = {
                ["text"] = {
                        type = "group", name = L"Text", desc = L"Text Settings", args = {
                                ["show_displayed"] = {
                                        type = "toggle", name = L"Show Displayed", desc = L"Toggles display of number of unfiltered guildmates",
                                        get = function() return FuBar_GuildFu.db.profile.text.show_displayed end,
                                        set = function(v) FuBar_GuildFu.db.profile.text.show_displayed = v; FuBar_GuildFu:UpdateText() end,
                                        order = 1,
                                },
                                ["show_online"] = {
                                        type = "toggle", name = L"Show Online", desc = L"Toggles display of number of online guildmates",
                                        get = function() return FuBar_GuildFu.db.profile.text.show_online end,
                                        set = function(v) FuBar_GuildFu.db.profile.text.show_online = v; FuBar_GuildFu:UpdateText() end,
                                        order = 2,
                                },
                                ["show_total"] = {
                                        type = "toggle", name = L"Show Total", desc = L"Toggles display of number of total guildmates",
                                        get = function() return FuBar_GuildFu.db.profile.text.show_total end,
                                        set = function(v) FuBar_GuildFu.db.profile.text.show_total = v; FuBar_GuildFu:UpdateText() end,
                                        order = 3,
                                },
                        }, order = 1,
                },
                ["tooltip"] = {
                        type = "group", name = L"Tooltip", desc = L"Tooltip Settings", args = {
                                ["sort"] = {
                                        type = "text", name = L"Sort", desc = L"Sets sorting",
                                        get = function() return FuBar_GuildFu.db.profile.tooltip.sort end,
                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.sort = v; FuBar_GuildFu:Update() end,
                                        validate = {["NAME"] = L"Name", ["CLASS"] = L"Class", ["LEVEL"] = L"Level", ["ZONE"] = L"Zone", ["RANK"] = L"Rank"},
                                        order = 1,
                                },
                                ["group"] = {
                                        type = "group", name = L"Group", desc = L"Group Indicator Settings", args = {
                                                ["show"] = {
                                                        type = "toggle", name = L"Show", desc = L"Toggles display of group indicators",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.group_show end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.group_show = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        order = 1,
                                                },
                                        }, order = 2,
                                },
                                ["name"] = {
                                        type = "group", name = L"Name", desc = L"Name Column Settings", args = {
                                                ["color"] = {
                                                        type = "text", name = L"Color", desc = L"Sets color of name column",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.name_color end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.name_color = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        validate = {["NONE"] = L"None", ["CLASS"] = L"Class"},
                                                        order = 1,
                                                },
                                                ["status"] = {
                                                        type = "toggle", name = L"Status", desc = L"Toggles display of status",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.name_status end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.name_status = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        order = 2,
                                                },
                                        }, order = 3,
                                },
                                ["class"] = {
                                        type = "group", name = L"Class", desc = L"Class Column Settings", args = {
                                                ["show"] = {
                                                        type = "toggle", name = L"Show", desc = L"Toggles display of class column",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.class_show end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.class_show = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        order = 1,
                                                },
                                        }, order = 4,
                                },
                                ["level"] = {
                                        type = "group", name = L"Level", desc = L"Level Column Settings", args = {
                                                ["show"] = {
                                                        type = "toggle", name = L"Show", desc = L"Toggles display of level column",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.level_show end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.level_show = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        order = 1,
                                                },
                                                ["color"] = {
                                                        type = "text", name = L"Color", desc = L"Sets color of level column",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.level_color end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.level_color = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        validate = {["NONE"] = L"None", ["RELATIVE"] = L"Relative"},
                                                        order = 2,
                                                },
                                        }, order = 5,
                                },
                                ["zone"] = {
                                        type = "group", name = L"Zone", desc = L"Zone Column Settings", args = {
                                                ["show"] = {
                                                        type = "toggle", name = L"Show", desc = L"Toggles display of zone column",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.zone_show end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.zone_show = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        order = 1,
                                                },
                                                ["color"] = {
                                                        type = "text", name = L"Color", desc = L"Sets color of zone column",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.zone_color end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.zone_color = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        validate = {["NONE"] = L"None", ["FACTION"] = L"Faction", ["LEVEL"] = L"Level"},
                                                        order = 2,
                                                },
                                        }, order = 6,
                                },
                                ["notes"] = {
                                        type = "group", name = L"Notes", desc = L"Notes Column Settings", args = {
                                                ["show_public"] = {
                                                        type = "toggle", name = L"Show Public", desc = L"Toggles diplay of public notes",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.note_showpublic end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.note_showpublic = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        order = 1,
                                                },
                                                ["show_officer"] = {
                                                        type = "toggle", name = L"Show Officer", desc = L"Toggles display of officer notes",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.note_showofficer end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.note_showofficer = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        order = 2,
                                                },
                                                ["show_auldlangsyne"] = {
                                                        type = "toggle", name = L"Show AuldLangSyne", desc = L"Toggles display of AuldLangSyne notes",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.note_showauldlangsyne end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.note_showauldlangsyne = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        hidden = not IsAddOnLoaded("AuldLangSyne"),
                                                        order = 3,
                                                },
                                        }, order = 7,
                                },
                                ["rank"] = {
                                        type = "group", name = L"Rank", desc = L"Rank Column Settings", args = {
                                                ["show"] = {
                                                        type = "toggle", name = L"Show", desc = L"Toggles display of rank column",
                                                        get = function() return FuBar_GuildFu.db.profile.tooltip.rank_show end,
                                                        set = function(v) FuBar_GuildFu.db.profile.tooltip.rank_show = v; FuBar_GuildFu:UpdateTooltip() end,
                                                        order = 1,
                                                },
                                        }, order = 8,
                                },
                        }, order = 2,
                },
                ["filter"] = {
                        type = "group", name = L"Filter", desc = L"Filter Settings", args = {
                                ["class"] = {
                                        type = "group", name = L"Class", desc = L"Class Filter Settings", args = {
                                                ["druid"] = {
                                                        type = "toggle", name = L"Druid", desc = L"Toggles display of Druids",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.class_druid end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.class_druid = v; FuBar_GuildFu:Update() end,
                                                        order = 1,
                                                },
                                                ["hunter"] = {
                                                        type = "toggle", name = L"Hunter", desc = L"Toggles display of Hunters",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.class_hunter end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.class_hunter = v; FuBar_GuildFu:Update() end,
                                                        order = 2,
                                                },
                                                ["mage"] = {
                                                        type = "toggle", name = L"Mage", desc = L"Toggles display of Mages",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.class_mage end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.class_mage = v; FuBar_GuildFu:Update() end,
                                                        order = 3,
                                                },
                                                ["paladin"] = {
                                                        type = "toggle", name = L"Paladin", desc = L"Toggles display of Paladins",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.class_paladin end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.class_paladin = v; FuBar_GuildFu:Update() end,
                                                        order = 4,
                                                },
                                                ["priest"] = {
                                                        type = "toggle", name = L"Priest", desc = L"Toggles display of Priests",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.class_priest end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.class_priest = v; FuBar_GuildFu:Update() end,
                                                        order = 5,
                                                },
                                                ["rogue"] = {
                                                        type = "toggle", name = L"Rogue", desc = L"Toggles display of Rogues",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.class_rogue end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.class_rogue = v; FuBar_GuildFu:Update() end,
                                                        order = 6,
                                                },
                                                ["shaman"] = {
                                                        type = "toggle", name = L"Shaman", desc = L"Toggles display of Shamans",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.class_shaman end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.class_shaman = v; FuBar_GuildFu:Update() end,
                                                        order = 7,
                                                },
                                                ["warlock"] = {
                                                        type = "toggle", name = L"Warlock", desc = L"Toggles display of Warlocks",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.class_warlock end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.class_warlock = v; FuBar_GuildFu:Update() end,
                                                        order = 8,
                                                },
                                                ["warrior"] = {
                                                        type = "toggle", name = L"Warrior", desc = L"Toggles display of Warriors",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.class_warrior end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.class_warrior = v; FuBar_GuildFu:Update() end,
                                                        order = 9,
                                                },
                                        }, order = 1,
                                },
                                ["level"] = {
                                        type = "group", name = L"Level", desc = L"Level Filter Settings", args = {
                                                ["0109"] = {
                                                        type = "toggle", name = L" 1- 9", desc = L"Toggles display of level 1 to 9 chars",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.level_0109 end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.level_0109 = v; FuBar_GuildFu:Update() end,
                                                        order = 1,
                                                },
                                                ["1019"] = {
                                                        type = "toggle", name = L"10-19", desc = L"Toggles display of level 10 to 19 chars",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.level_1019 end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.level_1019 = v; FuBar_GuildFu:Update() end,
                                                        order = 2,
                                                },
                                                ["2029"] = {
                                                        type = "toggle", name = L"20-29", desc = L"Toggles display of level 20 to 29 chars",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.level_2029 end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.level_2029 = v; FuBar_GuildFu:Update() end,
                                                        order = 3,
                                                },
                                                ["3039"] = {
                                                        type = "toggle", name = L"30-39", desc = L"Toggles display of level 30 to 39 chars",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.level_3039 end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.level_3039 = v; FuBar_GuildFu:Update() end,
                                                        order = 4,
                                                },
                                                ["4049"] = {
                                                        type = "toggle", name = L"40-49", desc = L"Toggles display of level 40 to 49 chars",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.level_4049 end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.level_4049 = v; FuBar_GuildFu:Update() end,
                                                        order = 5,
                                                },
                                                ["5059"] = {
                                                        type = "toggle", name = L"50-59", desc = L"Toggles display of level 50 to 59 chars",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.level_5059 end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.level_5059 = v; FuBar_GuildFu:Update() end,
                                                        order = 6,
                                                },
                                                ["60"] = {
                                                        type = "toggle", name = L"60", desc = L"Toggles display of level 60 chars",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.level_60 end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.level_60 = v; FuBar_GuildFu:Update() end,
                                                        order = 7,
                                                },
                                        }, order = 2,
                                },
                                ["zone"] = {
                                        type = "group", name = L"Zone", desc = L"Zone Filter Settings", args = {
                                                ["battleground"] = {
                                                        type = "toggle", name = L"In Battleground", desc = L"Toggles display of chars in battlegrounds",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.zone_bg end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.zone_bg = v; FuBar_GuildFu:Update() end,
                                                        order = 1,
                                                },
                                                ["instance"] = {
                                                        type = "toggle", name = L"In Instance", desc = L"Toggles display of chars in instances",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.zone_inst end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.zone_inst = v; FuBar_GuildFu:Update() end,
                                                        order = 2,
                                                },
                                                ["open_field"] = {
                                                        type = "toggle", name = L"In Open Field", desc = L"Toggles display of chars in open field",
                                                        get = function() return FuBar_GuildFu.db.profile.filter.zone_open end,
                                                        set = function(v) FuBar_GuildFu.db.profile.filter.zone_open = v; FuBar_GuildFu:Update() end,
                                                        order = 3,
                                                },
                                        }, order = 3,
                                },
                        }, order = 3,
                },
        },
}

FuBar_GuildFu:RegisterChatCommand({"/guildfu"}, opts)
FuBar_GuildFu.OnMenuRequest = opts