You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
2.1 KiB

--[[
This file is part of 'Masque', an add-on for World of Warcraft. For bug reports,
documentation and license information, please visit https://github.com/SFX-WoW/Masque.
* File...: Options\LDB.lua
* Author.: StormFX
LDB Launcher
]]
local MASQUE, Core = ...
----------------------------------------
-- WoW API
---
local InCombatLockdown = _G.InCombatLockdown
----------------------------------------
-- Libraries
---
local LIB_DBI = Core.LIB_DBI
----------------------------------------
-- Internal
---
-- @ Masque
local WOW_RETAIL = Core.WOW_RETAIL
-- @ Options\Core
local Setup = Core.Setup
----------------------------------------
-- Setup
---
function Setup.LDB(self)
local LDB = LibStub("LibDataBroker-1.1", true)
if LDB then
-- @ Locales\enUS
local L = self.Locale
self.LDBO = LDB:NewDataObject(MASQUE, {
type = "launcher",
label = MASQUE,
icon = "Interface\\Addons\\Masque\\Textures\\LDB",
OnClick = function(Tip, Button)
if Button == "LeftButton" or Button == "RightButton" then
Core:ToggleOptions()
end
end,
OnTooltipShow = function(Tip)
if not Tip or not Tip.AddLine then
return
end
Tip:AddLine(MASQUE)
Tip:AddLine(L["Click to open Masque's settings."], 1, 1, 1)
if InCombatLockdown() then
Tip:AddLine(L["Unavailable in combat."], 1, 0, 0)
end
end,
})
if LIB_DBI then
LIB_DBI:Register(MASQUE, self.LDBO, self.db.profile.LDB)
end
end
-- GC
Setup.LDB = nil
end
----------------------------------------
-- Core
---
-- Updates the icon position.
function Core:UpdateIconPosition(Position)
if LIB_DBI then
local db = Core.db.profile.LDB
local pos = Position or db.position
-- Minimap Icon
if pos == 1 then
LIB_DBI:Show(MASQUE)
db.hide = false
else
LIB_DBI:Hide(MASQUE)
db.hide = true
end
-- Add-On Compartment
if WOW_RETAIL then
if pos == 2 then
LIB_DBI:AddButtonToCompartment(MASQUE)
else
LIB_DBI:RemoveButtonFromCompartment(MASQUE)
end
end
db.position = pos
end
end