assert(BigWigs, "BigWigs not found!") ------------------------------ -- Are you local? -- ------------------------------ local L = AceLibrary("AceLocale-2.2"):new("BigWigsOptions") local tablet = AceLibrary("Tablet-2.0") ---------------------------- -- Localization -- ---------------------------- L:RegisterTranslations("enUS", function() return { ["|cff00ff00Module running|r"] = true, ["|cffeda55fClick|r to reset all running modules. |cffeda55fAlt+Click|r to disable them. |cffeda55fCtrl+Alt+Click|r to disable Big Wigs completely."] = true, ["|cffeda55fClick|r to enable."] = true, ["Big Wigs is currently disabled."] = true, ["Active boss modules"] = true, ["hidden"] = true, ["shown"] = true, ["minimap"] = true, ["Minimap"] = true, ["Toggle the minimap button."] = true, ["All running modules have been reset."] = true, ["All running modules have been disabled."] = true, ["%s reset."] = true, ["%s disabled."] = true, ["%s icon is now %s."] = true, ["Show it again with /bw plugin minimap."] = true, } end) L:RegisterTranslations("frFR", function() return { ["|cff00ff00Module running|r"] = "|cff00ff00Module d\195\169marr\195\169|r", ["|cffeda55fClick|r to reset all running modules. |cffeda55fAlt+Click|r to disable them. |cffeda55fCtrl+Alt+Click|r to disable Big Wigs completely."] = "|cffeda55fClic|r pour red\195\169marrer les modules actifs. |cffeda55fAlt+Clic|r pour les d\195\169sactiver. |cffeda55fCtrl+Alt+Clic|r pour d\195\169sactiver Big Wigs compl\195\168tement.", ["|cffeda55fClick|r to enable."] = "|cffeda55fClic|r pour activer.", ["Big Wigs is currently disabled."] = "Big Wigs est actuellement d\195\169sactiv\195\169.", ["Active boss modules"] = "Modules de boss actifs", ["hidden"] = "cach\195\169e", ["shown"] = "affich\195\169e", -- ["minimap"] = true, -- ["Minimap"] = true, ["Toggle the minimap button."] = "Afficher ou masquer le bouton sur la minimap.", ["All running modules have been reset."] = "Tous les modules actifs ont \195\169t\195\169 red\195\169marr\195\169s.", ["All running modules have been disabled."] = "Tous les modules ont \195\169t\195\169 d\195\169sactiv\195\169s.", ["%s reset."] = "%s red\195\169marr\195\169.", ["%s disabled."] = "%s d\195\169sactiv\195\169.", ["%s icon is now %s."] = "L'ic\195\180ne de %s est d\195\169sormais %s.", ["Show it again with /bw plugin minimap."] = "Vous pouvez la r\195\169afficher avec /bw plugin minimap.", } end) L:RegisterTranslations("koKR", function() return { ["|cff00ff00Module running|r"] = "|cff00ff00모듈 실행중|r", ["|cffeda55fClick|r to reset all running modules. |cffeda55fAlt+Click|r to disable them. |cffeda55fCtrl+Alt+Click|r to disable Big Wigs completely."] = "|cffeda55f클릭|r : 모두 초기화 |cffeda55f알트+클릭|r 비활성화 |cffeda55f컨트롤+알트+클릭|r : BigWigs 비활성화.", ["|cffeda55fClick|r to enable."] = "|cffeda55f클릭|r : 모듈 활성화.", ["Big Wigs is currently disabled."] = "BigWigs가 비활성화 되어 있습니다.", ["Active boss modules"] = "보스 모듈 활성화", ["hidden"] = "숨김", ["shown"] = "표시", ["Minimap"] = "미니맵", ["Toggle the minimap button."] = "미니맵 버튼 토글", ["All running modules have been reset."] = "모든 실행중인 모듈을 초기화합니다.", ["All running modules have been disabled."] = "모든 실행중인 모듈을 비활성화 합니다.", ["%s reset."] = "%s 초기화되었습니다.", ["%s disabled."] = "%s 비활성화 되었습니다.", ["%s icon is now %s."] = "%s 아이콘은 현재 %s 입니다.", ["Show it again with /bw plugin minimap."] = "/bw plugin minimap 명령으로 다시 나타납니다.", } end) L:RegisterTranslations("zhCN", function() return { ["|cff00ff00Module running|r"] = "|cff00ff00模块运行中|r", ["|cffeda55fClick|r to reset all running modules. |cffeda55fAlt+Click|r to disable them. |cffeda55fCtrl+Alt+Click|r to disable Big Wigs completely."] = "|cffeda55f点击|r图标重置所有运行中的模块。|cffeda55fAlt+点击|r图标关闭所有运行中的模块。|cffeda55fCtrl+Alt+点击|r图标关闭BigWigs。", ["|cffeda55fClick|r to enable."] = "|cffeda55f点击|r图标开启BigWigs。", ["Big Wigs is currently disabled."] = "Big Wigs目前关闭。", ["Active boss modules"] = "激活首领模块", ["hidden"] = "隐藏", ["shown"] = "显示", ["Minimap"] = "小地图", ["Minimap"] = "小地图", ["Toggle the minimap button."] = "切换是否显示小地图图标。", ["All running modules have been reset."] = "所有运行中的模块都已重置。", ["All running modules have been disabled."] = "所有运行中的模块都已关闭。", ["%s reset."] = "%s重置。", ["%s disabled."] = "%s关闭。", } end) L:RegisterTranslations("zhTW", function() return { ["|cff00ff00Module running|r"] = "|cff00ff00模組運作中|r", ["|cffeda55fClick|r to reset all running modules. |cffeda55fAlt+Click|r to disable them. |cffeda55fCtrl+Alt+Click|r to disable Big Wigs completely."] = "|cffeda55f點擊|r圖示重置所有運作中的模組。|cffeda55fAlt+點擊|r圖示關閉所有運作中的模組。|cffeda55fCtrl+Alt+點擊|r圖示關閉BigWigs。", ["|cffeda55fClick|r to enable."] = "|cffeda55f點擊|r圖示開啟BigWigs。", ["Big Wigs is currently disabled."] = "Big Wigs目前關閉。", ["Active boss modules"] = "啟動首領模組", ["hidden"] = "隱藏", ["shown"] = "顯示", ["Minimap"] = "小地圖", ["Minimap"] = "小地圖", ["Toggle the minimap button."] = "切換是否顯示小地圖圖標。", ["All running modules have been reset."] = "所有運行中的模組都已重置。", ["All running modules have been disabled."] = "所有運行中的模組都已關閉。", ["%s reset."] = "%s重置。", ["%s disabled."] = "%s關閉。", } end) L:RegisterTranslations("deDE", function() return { ["|cff00ff00Module running|r"] = "|cff00ff00Modul aktiviert|r", -- ["|cffeda55fClick|r to reset all running modules. |cffeda55fShift+Click|r to disable them. |cffeda55fCtrl+Shift+Click|r to disable Big Wigs completely."] = "|cffeda55fKlicken|r, um alle laufenden Module zur\195\188ckzusetzen. |cffeda55fShift+Klick|r um alle laufenden Module zu beenden. |cffeda55fStrg+Shift+Klick|r um BigWigs komplett zu beenden.", ["|cffeda55fClick|r to enable."] = "|cffeda55fKlicken|r um zu aktivieren.", ["Big Wigs is currently disabled."] = "Big Wigs ist gegenw\195\164rtig deaktiviert.", ["Active boss modules"] = "Aktive Boss Module", ["hidden"] = "versteckt", ["shown"] = "angezeigt", -- ["minimap"] = true, ["Minimap"] = "Minimap", ["Toggle the minimap button."] = "Minimap Button anzeigen.", ["All running modules have been reset."] = "Alle laufenden Module wurden zur\195\188ckgesetzt.", ["All running modules have been disabled."] = "Alle laufenden Module wurden beendet.", ["%s reset."] = "%s zur\195\188ckgesetzt.", ["%s disabled."] = "%s beendet.", } end) ---------------------------------- -- Module Declaration -- ---------------------------------- local deuce = BigWigs:NewModule("Options Menu") deuce.hasFuBar = IsAddOnLoaded("FuBar") and FuBar deuce.consoleCmd = not deuce.hasFuBar and L["minimap"] deuce.consoleOptions = not deuce.hasFuBar and { type = "toggle", name = L["Minimap"], desc = L["Toggle the minimap button."], get = function() return BigWigsOptions.minimapFrame and BigWigsOptions.minimapFrame:IsVisible() or false end, set = function(v) if v then BigWigsOptions:Show() else BigWigsOptions:Hide() BigWigs:Print(L["Show it again with /bw plugin minimap."]) end end, map = {[false] = L["hidden"], [true] = L["shown"]}, message = L["%s icon is now %s."], hidden = function() return deuce.hasFuBar end, } ---------------------------- -- FuBar Plugin -- ---------------------------- BigWigsOptions = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0", "AceConsole-2.0", "AceDB-2.0", "FuBarPlugin-2.0") BigWigsOptions.name = "FuBar - BigWigs" BigWigsOptions:RegisterDB("BigWigsFubarDB") BigWigsOptions.hasNoColor = true BigWigsOptions.hasIcon = "Interface\\AddOns\\BigWigs\\Icons\\core-enabled" BigWigsOptions.defaultMinimapPosition = 180 BigWigsOptions.clickableTooltip = true BigWigsOptions.hideWithoutStandby = true --BigWigsOptions.hasNoText = true -- XXX total hack BigWigsOptions.OnMenuRequest = deuce.core.cmdtable local args = AceLibrary("FuBarPlugin-2.0"):GetAceOptionsDataTable(BigWigsOptions) for k,v in pairs(args) do if BigWigsOptions.OnMenuRequest.args[k] == nil then BigWigsOptions.OnMenuRequest.args[k] = v end end -- XXX end hack ----------------------------- -- Icon Handling -- ----------------------------- function BigWigsOptions:OnEnable() self:RegisterEvent("BigWigs_CoreEnabled", "CoreState") self:RegisterEvent("BigWigs_CoreDisabled", "CoreState") self:CoreState() end function BigWigsOptions:CoreState() if BigWigs:IsActive() then self:SetIcon("Interface\\AddOns\\BigWigs\\Icons\\core-enabled") else self:SetIcon("Interface\\AddOns\\BigWigs\\Icons\\core-disabled") end self:UpdateTooltip() end ----------------------------- -- FuBar Methods -- ----------------------------- function BigWigsOptions:ModuleAction(module) if IsAltKeyDown() then deuce.core:ToggleModuleActive(module, false) self:Print(string.format(L["%s disabled."], module:ToString())) else deuce.core:BigWigs_RebootModule(module) self:Print(string.format(L["%s reset."], module:ToString())) end self:UpdateTooltip() end function BigWigsOptions:OnTooltipUpdate() if BigWigs:IsActive() then local cat = tablet:AddCategory("text", L["Active boss modules"]) for name, module in deuce.core:IterateModules() do if module:IsBossModule() and deuce.core:IsModuleActive(module) then cat:AddLine("text", name, "func", function(mod) BigWigsOptions:ModuleAction(mod) end, "arg1", module) end end tablet:SetHint(L["|cffeda55fClick|r to reset all running modules. |cffeda55fAlt+Click|r to disable them. |cffeda55fCtrl+Alt+Click|r to disable Big Wigs completely."]) else -- use a text line for this, since the hint is not shown when we are -- detached. local cat = tablet:AddCategory("colums", 1) cat:AddLine("text", L["Big Wigs is currently disabled."], "func", function() BigWigsOptions:OnClick() end) tablet:SetHint(L["|cffeda55fClick|r to enable."]) end end function BigWigsOptions:OnClick() if BigWigs:IsActive() then if IsAltKeyDown() then if IsControlKeyDown() then BigWigs:ToggleActive(false) self:UpdateTooltip() else for name, module in deuce.core:IterateModules() do if module:IsBossModule() and deuce.core:IsModuleActive(module) then deuce.core:ToggleModuleActive(module, false) end end self:Print(L["All running modules have been disabled."]) end else for name, module in deuce.core:IterateModules() do if module:IsBossModule() and deuce.core:IsModuleActive(module) then deuce.core:BigWigs_RebootModule(module) end end self:Print(L["All running modules have been reset."]) end else BigWigs:ToggleActive(true) end self:UpdateTooltip() end