-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathOptions.lua
More file actions
92 lines (78 loc) · 2.97 KB
/
Options.lua
File metadata and controls
92 lines (78 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
assert(RaidOrganizer, "RaidOrganizer not found!")
------------------------------
-- Are you local? --
------------------------------
local L = AceLibrary("AceLocale-2.1"):GetInstance("RaidOrganizerOptions", true)
local tablet = AceLibrary("Tablet-2.0")
RaidOrganizerOptions = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0", "AceConsole-2.0", "AceDB-2.0", "FuBarPlugin-2.0")
local deuce = RaidOrganizer:NewModule("Options Menu")
deuce.hasFuBar = IsAddOnLoaded("FuBar") and FuBar
deuce.consoleCmd = not deuce.hasFuBar and "Minimap"
deuce.consoleOptions = not deuce.hasFuBar and {
type = "toggle",
name = "Minimap",
desc = "Toggle Minimap",
get = function() return RaidOrganizerOptions.minimapFrame and RaidOrganizerOptions.minimapFrame:IsVisible() or false end,
set = function(v)
if v then
RaidOrganizerOptions:Show()
else
RaidOrganizerOptions:Hide()
end
end,
map = {[false] = "hidden", [true] = "shown"},
message = "%s icon is now %s.",
hidden = function() return deuce.hasFuBar end,
}
RaidOrganizerOptions.name = "FuBar - Raid Organizer"
RaidOrganizerOptions:RegisterDB("RaidOrganizerFubarDB")
RaidOrganizerOptions.hasNoColor = true
RaidOrganizerOptions.hasIcon = "Interface\\AddOns\\RaidOrganizer\\Textures\\Icons\\INV_Misc_Head_Dragon_Black_Enable.tga"
RaidOrganizerOptions.lockMinimap = true
RaidOrganizerOptions.defaultMinimapPosition = 180
RaidOrganizerOptions.clickableTooltip = true
RaidOrganizerOptions.hideWithoutStandby = true
RaidOrganizerOptions.OnMenuRequest = RaidOrganizer.options
local args = AceLibrary("FuBarPlugin-2.0"):GetAceOptionsDataTable(RaidOrganizerOptions)
for k,v in pairs(args) do
if RaidOrganizerOptions.OnMenuRequest.args[k] == nil then
RaidOrganizerOptions.OnMenuRequest.args[k] = v
end
end
-----------------------------
-- Icon Handling --
-----------------------------
function RaidOrganizerOptions:OnEnable()
self:RegisterEvent("RaidOrganizer_Enabled", "OnStateChange")
self:RegisterEvent("RaidOrganizer_Disabled", "OnStateChange")
self:RegisterEvent("RaidOrganizer_OnTooltipUpdate", "UpdateTooltip")
self:OnStateChange()
end
function RaidOrganizerOptions:OnStateChange()
if RaidOrganizer:IsActive() then
self:SetIcon("Interface\\AddOns\\RaidOrganizer\\Textures\\Icons\\Ruins_icon_enable.tga")
else
self:SetIcon("Interface\\AddOns\\RaidOrganizer\\Textures\\Icons\\Ruins_icon_disable.tga")
end
self:UpdateTooltip()
end
-----------------------------
-- FuBar Methods --
-----------------------------
function RaidOrganizerOptions:OnTooltipUpdate()
RaidOrganizer:TooltipUpdate(tablet)
end
function RaidOrganizerOptions:OnClick()
if RaidOrganizer:IsActive() then
if IsShiftKeyDown() then
RaidOrganizer:Dialog()
else
RaidOrganizer.db.char.showBar = not RaidOrganizer.db.char.showBar
RaidOrganizer:ShowBar()
end
else
RaidOrganizer:ToggleActive(true)
RaidOrganizer.db.char.showBar = true
RaidOrganizer:ShowBar()
end
end