Quantcast

* Added Prayer of Mending to the default buff sets

James Whitehead II [04-27-07 - 03:18]
* Added Prayer of Mending to the default buff sets
* Added a proper backdrop to frames, which is shown and hidden properly now
* Added a backdrop texture
Filename
Babelfish.lua
Localization.enUS.lua
PerfectRaid.lua
PerfectRaid_Buffs.lua
PerfectRaid_Frames.lua
images/backdrop.tga
diff --git a/Babelfish.lua b/Babelfish.lua
index 84626b9..af16102 100644
--- a/Babelfish.lua
+++ b/Babelfish.lua
@@ -45,6 +45,7 @@ local values = {
 	STATUS_MAGIC = "Ma",
 	STATUS_POISON = "Po",
 	STATUS_DISEASE = "Di",
+	STATUS_PRAYERMEND = "PoM",
 }

 print("--Localization.enUS.lua\n")
diff --git a/Localization.enUS.lua b/Localization.enUS.lua
index 50ac0b5..11397d3 100644
--- a/Localization.enUS.lua
+++ b/Localization.enUS.lua
@@ -82,6 +82,7 @@ PerfectRaidLocals = {
 	["Power Word: Fortitude"] = "Power Word: Fortitude",
 	["Power Word: Shield"] = "Power Word: Shield",
 	["Prayer of Fortitude"] = "Prayer of Fortitude",
+	["Prayer of Mending"] = "Prayer of Mending",
 	["Prayer of Shadow Protection"] = "Prayer of Shadow Protection",
 	["Prayer of Spirit"] = "Prayer of Spirit",
 	["Priest"] = "Priest",
@@ -112,6 +113,7 @@ PerfectRaidLocals = {
 	["STATUS_MOTW"] = "M",
 	["STATUS_POISON"] = "Po",
 	["STATUS_POWERINFUSION"] = "PwI",
+	["STATUS_PRAYERMEND"] = "PoM",
 	["STATUS_PWS"] = "PwS",
 	["STATUS_REGROWTH"] = "Rg",
 	["STATUS_REJUV"] = "Rj",
diff --git a/PerfectRaid.lua b/PerfectRaid.lua
index 13c4c41..d6dcb63 100644
--- a/PerfectRaid.lua
+++ b/PerfectRaid.lua
@@ -144,6 +144,7 @@ function PerfectRaid:UpdateRaidFrames()
 			end
 		end
 		frame:Hide()
+		frame.bg:Hide()
 	end

 	--name, title, filter, sortOrder, strict, group, order, columns, coloffset, colanchor)
@@ -223,17 +224,28 @@ function PerfectRaid:CreateRaidFrame(idx)
 	local frame = getglobal(name)

 	if not frame then
-		frame = CreateFrame("Frame", name, UIParent, template)
+		local bg = CreateFrame("Frame", nil, UIParent)
+
+		frame = CreateFrame("Frame", name, bg, template)
 		frame.title = frame:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
 		local offset = options.partyFrame and 17 or 3

-		frame.title:SetPoint("BOTTOM", frame, "TOP", 0, offset)
+		local bgtopoffset = 5
+		bgtopoffset = bgtopoffset + (options.partyFrame and 21 or 0)
+		bgtopoffset = bgtopoffset + (options.title and 20 or 0)
+
+		frame.bg = bg
+		bg:SetPoint("TOPLEFT", frame, "TOPLEFT", 0, bgtopoffset)
+		bg:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", 0, -5)

+		frame.title:SetPoint("BOTTOM", frame, "TOP", 0, offset)
 		frame.backdrop = {
-			bgFile = "Interface\\Tooltips\\UI-Tooltip-Background";
-			tileSize =16;
-			tile = 1;
-			insets = {top = -5; bottom = -5; left = -5; right = -5};
+			bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
+			edgeFile = "Interface\\AddOns\\PerfectRaid\\images\\backdrop",
+			tile = true,
+			tileSize = 16,
+			edgeSize = 4,
+			insets = {left = 4, right = 4, top = 4, bottom = 4},
 		}
 	end

@@ -242,6 +254,7 @@ function PerfectRaid:CreateRaidFrame(idx)

 	if options.disabled then
 		frame:Hide()
+		frame.bg:Hide()
 		return
 	end

@@ -286,10 +299,10 @@ function PerfectRaid:CreateRaidFrame(idx)
 	 end

 	if options.hBackdrop then
-		frame:SetBackdrop(frame.backdrop)
-		frame:SetBackdropColor(0,0,0,1)
+		frame.bg:SetBackdrop(frame.backdrop)
+		frame.bg:SetBackdropColor(0,0,0,.7)
 	else
-		frame:SetBackdrop(nil)
+		frame.bg:SetBackdrop(nil)
 	end

 	local yoffset = options.alignbottom and 1 or -1
@@ -319,6 +332,7 @@ function PerfectRaid:CreateRaidFrame(idx)
 	frame:SetClampedToScreen(true)
 	frame:SetScale(options.scale)
 	frame:Show()
+	frame.bg:Show()
 	self:RestorePosition(name)
 	return frame
 end
@@ -472,6 +486,10 @@ end
 local function OnShow(frame)
 	local self = PerfectRaid
 	local unit = frame:GetAttribute("unit")
+	if unit == nil then
+		PerfectRaid:Print(debugstack())
+	end
+
 	local unitname = UnitName(unit)
 	if not frame.unitname then
 		frame.unitname = unitname
@@ -566,12 +584,14 @@ function OnAttributeChanged(frame, name, value)
 			local button = parent:GetAttribute("child"..i)
 			if button and button:IsShown() then visible = true end
 		end
+		local method
+		if visible then method = "Show" else method = "Hide" end
+
 		if parent.title then
-			if not visible then
-				parent.title:Hide()
-			else
-				parent.title:Show()
-			end
+			parent.title[method](parent.title)
+		end
+		if parent.bg then
+			parent.bg[method](parent.bg)
 		end
 	else
 		parent.title:Show()
@@ -640,6 +660,9 @@ function PerfectRaid.ConfigureButton(button)
 end

 function PerfectRaid:UpdateButtonLayout(button)
+	if not button then
+		self:Print(debugstack())
+	end
 	local parent = button:GetParent()
 	local options = self.db.profile.headers[parent.idx]

@@ -663,7 +686,7 @@ function PerfectRaid:UpdateButtonLayout(button)
 		button.manabar:Hide()
 	else
 		button.manabar:Show()
-		button.manabar:SetHeight(options.manaheight)
+		button.manabar:SetHeight(options.manaheight or 0)
 	end

 	button.manabar:SetStatusBarTexture("Interface\\AddOns\\PerfectRaid\\images\\smooth")
diff --git a/PerfectRaid_Buffs.lua b/PerfectRaid_Buffs.lua
index b4b84c0..756b13d 100644
--- a/PerfectRaid_Buffs.lua
+++ b/PerfectRaid_Buffs.lua
@@ -756,6 +756,13 @@ Buffs.defaults = {
 		color = "9900FF",
 		disabled = (class ~= "PRIEST" and race == "Dwarf"),
 	},
+	{
+		conds = "All",
+		buffname = L["Prayer of Mending"],
+		disptext = L["STATUS_PRAYERMEND"],
+		color = "FFCF7F",
+		disabled = (class ~= "PRIEST"),
+	},
 	-- Druid specific spells
 	{
 		conds = "All",
diff --git a/PerfectRaid_Frames.lua b/PerfectRaid_Frames.lua
index ce3fb89..c6b214c 100644
--- a/PerfectRaid_Frames.lua
+++ b/PerfectRaid_Frames.lua
@@ -592,6 +592,9 @@ function Frames:SaveEntry()
 		local header = getglobal(name)
 		for i=1,header:GetNumChildren() do
 			local button = header:GetAttribute("child"..i)
+			if not button then
+				button = header.player
+			end
 			PerfectRaid:UpdateButtonLayout(button)
 		end
 		for unit in pairs(frames) do
diff --git a/images/backdrop.tga b/images/backdrop.tga
new file mode 100644
index 0000000..677cf1f
Binary files /dev/null and b/images/backdrop.tga differ