|
|
|
|
--[[
|
|
|
|
|
|
|
|
|
|
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
|