From 98d57b04d159583294de72d9e74f761db25bac8f Mon Sep 17 00:00:00 2001 From: Darthpred Date: Sat, 12 Jul 2014 02:12:03 +0400 Subject: [PATCH] Raid marks and flares --- ElvUI_SLE/modules/marks/flares.lua | 80 ++++++++++++++++++------------------ ElvUI_SLE/modules/marks/marks.lua | 78 +++++++++++++++++------------------ ElvUI_SLE/options/marks_c.lua | 14 +------ 3 files changed, 81 insertions(+), 91 deletions(-) diff --git a/ElvUI_SLE/modules/marks/flares.lua b/ElvUI_SLE/modules/marks/flares.lua index 6497835..778420e 100644 --- a/ElvUI_SLE/modules/marks/flares.lua +++ b/ElvUI_SLE/modules/marks/flares.lua @@ -11,7 +11,7 @@ _G["BINDING_NAME_CLICK StarFlareMarker:LeftButton"] = L["Star Flare"]; local mainFlares, f1, f2, f3, f4, f5, f6, FlareB -function RF:CreateFrame() +local function CreateFrames() mainFlares = CreateFrame("Frame", "Main_Flares", E.UIParent) mainFlares:Point("CENTER", E.UIParent, "CENTER", 0, 40); mainFlares:SetFrameStrata('LOW'); @@ -29,7 +29,7 @@ function RF:CreateFrame() FlareB = {f1,f2,f3,f4,f5,f6} end -function RF:SetupButton(button, flare) +local function SetupButton(button, flare) if not mainFlares then return end button:CreateBackdrop() button.backdrop:SetAllPoints() @@ -67,24 +67,24 @@ function RF:SetupButton(button, flare) end end -function RF:CreateButtons() +local function CreateButtons() if not mainFlares then return end - RF:SetupButton(f1, "/clearworldmarker 1\n/worldmarker 1") - RF:SetupButton(f2, "/clearworldmarker 2\n/worldmarker 2") - RF:SetupButton(f3, "/clearworldmarker 3\n/worldmarker 3") - RF:SetupButton(f4, "/clearworldmarker 4\n/worldmarker 4") - RF:SetupButton(f5, "/clearworldmarker 5\n/worldmarker 5") - RF:SetupButton(f6, "/clearworldmarker all") + SetupButton(f1, "/clearworldmarker 1\n/worldmarker 1") + SetupButton(f2, "/clearworldmarker 2\n/worldmarker 2") + SetupButton(f3, "/clearworldmarker 3\n/worldmarker 3") + SetupButton(f4, "/clearworldmarker 4\n/worldmarker 4") + SetupButton(f5, "/clearworldmarker 5\n/worldmarker 5") + SetupButton(f6, "/clearworldmarker all") end -function RF:FrameButtonsSize() +local function FrameButtonsSize() if not mainFlares then return end for i = 1, 6 do FlareB[i]:Size(E.db.sle.flares.size) end end -function RF:FrameButtonsGrowth() +local function FrameButtonsGrowth() if not mainFlares then return end local db = E.db.sle.flares local size = db.size @@ -116,7 +116,26 @@ function RF:FrameButtonsGrowth() end end -function RF:UpdateVisibility() +local function Mouseover() + if not mainFlares then return end + local db = E.db.sle.flares + if db.mouseover then + mainFlares:SetScript("OnUpdate", function(self) + if MouseIsOver(self) then + UIFrameFadeIn(self, 0.2, self:GetAlpha(), 1) + else + UIFrameFadeOut(self, 0.2, self:GetAlpha(), 0) + end + end) + else + mainFlares:SetScript("OnUpdate", nil) + if mainFlares:IsShown() then + UIFrameFadeIn(mainFlares, 0.2, mainFlares:GetAlpha(), 1) + end + end +end + +local function UpdateVisibility() if not mainFlares then return end local inInstance, instanceType = IsInInstance() local db = E.db.sle.flares @@ -143,10 +162,10 @@ function RF:UpdateVisibility() FlareB[i]:Hide() end end - RF:Mouseover() + Mouseover() end -function RF:Backdrop() +local function Backdrop() if not mainFlares then return end if E.db.sle.flares.backdrop then mainFlares.backdrop:Show() @@ -155,39 +174,20 @@ function RF:Backdrop() end end -function RF:Mouseover() - if not mainFlares then return end - local db = E.db.sle.flares - if db.mouseover then - mainFlares:SetScript("OnUpdate", function(self) - if MouseIsOver(self) then - UIFrameFadeIn(self, 0.2, self:GetAlpha(), 1) - else - UIFrameFadeOut(self, 0.2, self:GetAlpha(), 0) - end - end) - else - mainFlares:SetScript("OnUpdate", nil) - if mainFlares:IsShown() then - UIFrameFadeIn(mainFlares, 0.2, mainFlares:GetAlpha(), 1) - end - end -end - function RF:Update() if not mainFlares then return end - RF:FrameButtonsSize() - RF:FrameButtonsGrowth() - RF:UpdateVisibility() - RF:Backdrop() + FrameButtonsSize() + FrameButtonsGrowth() + UpdateVisibility() + Backdrop() end function RF:Initialize() if not E.private.sle.marks.flares then return end - RF:CreateFrame() + CreateFrames() RF:Update() - RF:CreateButtons() - self:RegisterEvent("PLAYER_ENTERING_WORLD", "UpdateVisibility"); + CreateButtons() + self:RegisterEvent("PLAYER_ENTERING_WORLD", UpdateVisibility); E:CreateMover(mainFlares, "FlareMover", "RF", nil, nil, nil, "ALL,S&L,S&L MISC") end \ No newline at end of file diff --git a/ElvUI_SLE/modules/marks/marks.lua b/ElvUI_SLE/modules/marks/marks.lua index aef62d2..1299dad 100644 --- a/ElvUI_SLE/modules/marks/marks.lua +++ b/ElvUI_SLE/modules/marks/marks.lua @@ -8,7 +8,7 @@ local UIFrameFadeIn = UIFrameFadeIn local UIFrameFadeOut = UIFrameFadeOut --Main frame -function RM:CreateFrame() +local function CreateFrames() mark_menu = CreateFrame("Frame", "Mark_Menu", E.UIParent) mark_menu:Point("BOTTOMRIGHT", RightChatTab, "TOPRIGHT", 2, 3) --Default positon mark_menu:SetFrameStrata('LOW'); @@ -29,7 +29,7 @@ function RM:CreateFrame() mark_menu:Hide() end -function RM:SetupButton(button, mark) +local function SetupButton(button, mark) button:CreateBackdrop() button.backdrop:SetAllPoints() button:SetAttribute("type", "macro") @@ -42,15 +42,15 @@ function RM:SetupButton(button, mark) end --Buttons creation -function RM:CreateButtons() +local function CreateButtons() if not mark_menu then return end for i = 1, 8 do - RM:SetupButton(MarkB[i], 9 - i) + SetupButton(MarkB[i], 9 - i) end end --Setting/updating buttons' size -function RM:FrameButtonsSize() +local function FrameButtonsSize() if not mark_menu then return end for i = 1, 8 do MarkB[i]:Size(E.db.sle.marks.size) @@ -58,7 +58,7 @@ function RM:FrameButtonsSize() end --Setting growth direction for buttons -function RM:FrameButtonsGrowth() +local function FrameButtonsGrowth() if not mark_menu then return end local db = E.db.sle.marks local size = db.size @@ -90,8 +90,27 @@ function RM:FrameButtonsGrowth() end end +local function Mouseover() + if not mark_menu then return end + local db = E.db.sle.marks + if db.mouseover then + mark_menu:SetScript("OnUpdate", function(self) + if MouseIsOver(self) then + UIFrameFadeIn(self, 0.2, self:GetAlpha(), 1) + else + UIFrameFadeOut(self, 0.2, self:GetAlpha(), 0) + end + end) + else + mark_menu:SetScript("OnUpdate", nil) + if mark_menu:IsShown() then + UIFrameFadeIn(mark_menu, 0.2, mark_menu:GetAlpha(), 1) + end + end +end + --Visibility/enable check -function RM:UpdateVisibility() +local function UpdateVisibility() if not mark_menu then return end local inInstance, instanceType = IsInInstance() local db = E.db.sle.marks @@ -129,20 +148,20 @@ function RM:UpdateVisibility() MarkB[i]:Hide() end end - RM:Mouseover() + Mouseover() end -function RM:Target() +local function Target() if not mark_menu then return end local db = E.db.sle.marks if db.target then - self:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateVisibility"); + RM:RegisterEvent("PLAYER_TARGET_CHANGED", UpdateVisibility); else - self:UnregisterEvent("PLAYER_TARGET_CHANGED"); + RM:UnregisterEvent("PLAYER_TARGET_CHANGED"); end end -function RM:Backdrop() +local function Backdrop() if not mark_menu then return end if E.db.sle.marks.backdrop then mark_menu.backdrop:Show() @@ -151,40 +170,21 @@ function RM:Backdrop() end end -function RM:Mouseover() - if not mark_menu then return end - local db = E.db.sle.marks - if db.mouseover then - mark_menu:SetScript("OnUpdate", function(self) - if MouseIsOver(self) then - UIFrameFadeIn(self, 0.2, self:GetAlpha(), 1) - else - UIFrameFadeOut(self, 0.2, self:GetAlpha(), 0) - end - end) - else - mark_menu:SetScript("OnUpdate", nil) - if mark_menu:IsShown() then - UIFrameFadeIn(mark_menu, 0.2, mark_menu:GetAlpha(), 1) - end - end -end - function RM:Update() if not mark_menu then return end - RM:FrameButtonsSize() - RM:FrameButtonsGrowth() - RM:Target() - RM:UpdateVisibility() - RM:Backdrop() + FrameButtonsSize() + FrameButtonsGrowth() + Target() + UpdateVisibility() + Backdrop() end function RM:Initialize() if not E.private.sle.marks.marks then return end - RM:CreateFrame() + CreateFrames() RM:Update() - RM:CreateButtons() - self:RegisterEvent("PLAYER_ENTERING_WORLD", "UpdateVisibility"); + CreateButtons() + self:RegisterEvent("PLAYER_ENTERING_WORLD", UpdateVisibility); E:CreateMover(mark_menu, "MarkMover", "RM", nil, nil, nil, "ALL,S&L,S&L MISC") end \ No newline at end of file diff --git a/ElvUI_SLE/options/marks_c.lua b/ElvUI_SLE/options/marks_c.lua index d3dbafa..9c320fc 100644 --- a/ElvUI_SLE/options/marks_c.lua +++ b/ElvUI_SLE/options/marks_c.lua @@ -17,6 +17,7 @@ E.Options.args.sle.args.options.args.marks = { order = 2, type = "group", name = L["Raid Marks"], + set = function(info, value) E.db.sle.marks[ info[#info] ] = value; RM:Update() end, args = { marksheader = { order = 1, @@ -37,7 +38,6 @@ E.Options.args.sle.args.options.args.marks = { name = L["Backdrop"], disabled = function() return not E.private.sle.marks.marks end, get = function(info) return E.db.sle.marks.backdrop end, - set = function(info, value) E.db.sle.marks.backdrop = value; RM:Backdrop() end }, Reset = { order = 4, @@ -59,7 +59,6 @@ E.Options.args.sle.args.options.args.marks = { desc = L["Selecting this option will have the Raid Markers appear only while in a raid or dungeon."], disabled = function() return not E.private.sle.marks.marks end, get = function(info) return E.db.sle.marks.showinside end, - set = function(info, value) E.db.sle.marks.showinside = value; RM:UpdateVisibility() end }, target = { order = 7, @@ -68,7 +67,6 @@ E.Options.args.sle.args.options.args.marks = { desc = L["Selecting this option will have the Raid Markers appear only when you have a target."], disabled = function() return not E.private.sle.marks.marks end, get = function(info) return E.db.sle.marks.target end, - set = function(info, value) E.db.sle.marks.target = value; RM:Target(); RM:UpdateVisibility() end }, mouseover = { order = 7, @@ -77,7 +75,6 @@ E.Options.args.sle.args.options.args.marks = { desc = L["Show on mouse over."], disabled = function() return not E.private.sle.marks.marks end, get = function(info) return E.db.sle.marks.mouseover end, - set = function(info, value) E.db.sle.marks.mouseover = value; RM:UpdateVisibility() end }, size = { order = 9, @@ -87,7 +84,6 @@ E.Options.args.sle.args.options.args.marks = { disabled = function() return not E.private.sle.marks.marks end, min = 15, max = 30, step = 1, get = function(info) return E.db.sle.marks.size end, - set = function(info, value) E.db.sle.marks.size = value; RM:FrameButtonsGrowth(); RM:FrameButtonsSize() end, }, growth = { order = 10, @@ -96,7 +92,6 @@ E.Options.args.sle.args.options.args.marks = { desc = L["Change the direction of buttons growth from the skull marker"], disabled = function() return not E.private.sle.marks.marks end, get = function(info) return E.db.sle.marks.growth end, - set = function(info, value) E.db.sle.marks.growth = value; RM:FrameButtonsGrowth() end, values = { ['RIGHT'] = L["Right"], ['LEFT'] = L["Left"], @@ -110,6 +105,7 @@ E.Options.args.sle.args.options.args.marks = { order = 3, type = "group", name = L["Raid Flares"], + set = function(info, value) E.db.sle.flares[ info[#info] ] = value; RF:Update() end, args = { header = { order = 1, @@ -130,7 +126,6 @@ E.Options.args.sle.args.options.args.marks = { name = L["Backdrop"], disabled = function() return not E.private.sle.marks.flares end, get = function(info) return E.db.sle.flares.backdrop end, - set = function(info, value) E.db.sle.flares.backdrop = value; RF:Backdrop() end }, spacer = { order = 5, @@ -144,7 +139,6 @@ E.Options.args.sle.args.options.args.marks = { desc = L["Selecting this option will have the Raid Flares appear only while in a raid or dungeon."], disabled = function() return not E.private.sle.marks.flares end, get = function(info) return E.db.sle.flares.showinside end, - set = function(info, value) E.db.sle.flares.showinside = value; RF:UpdateVisibility() end }, mouseover = { order = 7, @@ -153,7 +147,6 @@ E.Options.args.sle.args.options.args.marks = { desc = L["Show on mouse over."], disabled = function() return not E.private.sle.marks.flares end, get = function(info) return E.db.sle.flares.mouseover end, - set = function(info, value) E.db.sle.flares.mouseover = value; RF:UpdateVisibility() end }, tooltips = { order = 8, @@ -161,7 +154,6 @@ E.Options.args.sle.args.options.args.marks = { name = L["Show Tooltip"], disabled = function() return not E.private.sle.marks.flares end, get = function(info) return E.db.sle.flares.tooltips end, - set = function(info, value) E.db.sle.flares.tooltips = value; end }, size = { order = 9, @@ -171,7 +163,6 @@ E.Options.args.sle.args.options.args.marks = { disabled = function() return not E.private.sle.marks.flares end, min = 15, max = 30, step = 1, get = function(info) return E.db.sle.flares.size end, - set = function(info, value) E.db.sle.flares.size = value; RF:FrameButtonsGrowth(); RF:FrameButtonsSize() end, }, growth = { order = 9, @@ -180,7 +171,6 @@ E.Options.args.sle.args.options.args.marks = { desc = L["Change the direction of buttons growth from the square marker"], disabled = function() return not E.private.sle.marks.flares end, get = function(info) return E.db.sle.flares.growth end, - set = function(info, value) E.db.sle.flares.growth = value; RF:FrameButtonsGrowth() end, values = { ['RIGHT'] = L["Right"], ['LEFT'] = L["Left"], -- 1.7.9.5