changeset 24:7a285d98b95f

- framework update.
author Tercio
date Mon, 14 Sep 2015 17:10:38 -0300
parents 52973d00a183
children 6bb668a41455
files Hansgar_And_Franzok_Assist.lua Libs/DF/colors.lua Libs/DF/fw.lua Libs/DF/normal_bar.lua Libs/DF/normal_bar.xml
diffstat 5 files changed, 87 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/Hansgar_And_Franzok_Assist.lua	Tue Sep 08 13:23:31 2015 -0300
+++ b/Hansgar_And_Franzok_Assist.lua	Mon Sep 14 17:10:38 2015 -0300
@@ -19,7 +19,7 @@
 --local f = CreateFrame ("frame", "Hansgar_And_Franzok_Assist", UIParent)
 local f = DF:Create1PxPanel (_, 155, 166, "Hans & Franz", "Hansgar_And_Franzok_Assist", nil, "top", true)
 f:SetFrameStrata ("DIALOG")
-f.version = "v0.15f"
+f.version = "v0.15g"
 
 f.Close:SetScript ("OnClick", function (self)
 	if (f.StampersPhase) then
--- a/Libs/DF/colors.lua	Tue Sep 08 13:23:31 2015 -0300
+++ b/Libs/DF/colors.lua	Mon Sep 14 17:10:38 2015 -0300
@@ -7,6 +7,18 @@
 	end
 
 	DF.alias_text_colors = {
+		["HUNTER"] = {0.67, 0.83, 0.45},
+		["WARLOCK"] = {0.58, 0.51, 0.79},
+		["PRIEST"] = {1.0, 1.0, 1.0},
+		["PALADIN"] = {0.96, 0.55, 0.73},
+		["MAGE"] = {0.41, 0.8, 0.94},
+		["ROGUE"] = {1.0, 0.96, 0.41},
+		["DRUID"] = {1.0, 0.49, 0.04},
+		["SHAMAN"] = {0.0, 0.44, 0.87},
+		["WARRIOR"] = {0.78, 0.61, 0.43},
+		["DEATHKNIGHT"] = {0.77, 0.12, 0.23},
+		["MONK"] = {0.0, 1.00, 0.59},
+	
 		["aliceblue"] = {0.941176, 0.972549, 1, 1},
 		["antiquewhite"] = {0.980392, 0.921569, 0.843137, 1},
 		["aqua"] = {0, 1, 1, 1},
--- a/Libs/DF/fw.lua	Tue Sep 08 13:23:31 2015 -0300
+++ b/Libs/DF/fw.lua	Mon Sep 14 17:10:38 2015 -0300
@@ -1,5 +1,5 @@
 
-local major, minor = "DetailsFramework-1.0", 8
+local major, minor = "DetailsFramework-1.0", 9
 local DF, oldminor = LibStub:NewLibrary (major, minor)
 
 if (not DF) then
@@ -167,6 +167,10 @@
 	mmoc = {0, 0.7890625, 80/123, 123/128},
 }
 
+function DF:IntegerToTimer (value)
+	return "" .. floor (value/60) .. ":" .. format ("%02.f", value%60)
+end
+
 function DF:Embed (target)
 	for k, v in pairs (embed_functions) do
 		target[v] = self[v]
--- a/Libs/DF/normal_bar.lua	Tue Sep 08 13:23:31 2015 -0300
+++ b/Libs/DF/normal_bar.lua	Mon Sep 14 17:10:38 2015 -0300
@@ -509,48 +509,92 @@
 	
 	function BarMetaFunctions:OnTimerEnd()
 		if (self.OnTimerEndHook) then
-			local interrupt = self.OnTimerEndHook()
+			local interrupt = self.OnTimerEndHook (self)
 			if (interrupt) then
 				return
 			end
 		end
 		self.timer_texture:Hide()
+		self.timer_textureR:Hide()
 		self.div_timer:Hide()
 		self:Hide()
 		self.timer = false
 	end
 
 	local OnUpdate = function (self, elapsed)
-		local timepct = (elapsed / self.tempo) * 100
-		self.c = self.c - (timepct*self.width/100)
+		--> percent of elapsed
+		local pct = abs (self.end_timer - GetTime() - self.tempo) / self.tempo
+		if (self.inverse) then
+			self.t:SetWidth (self.total_size * pct)
+		else
+			self.t:SetWidth (self.total_size * abs (pct-1))
+		end
+		
+		--> right text
 		self.remaining = self.remaining - elapsed
-		self.righttext:SetText (_math_floor (self.remaining))
-		self.timertexture:SetWidth (self.c)
-		if (self.c < 1) then
+		if (self.MyObject.RightTextIsTimer) then
+			self.righttext:SetText (DF:IntegerToTimer (self.remaining))
+		else
+			self.righttext:SetText (_math_floor (self.remaining))
+		end
+
+		if (pct >= 1) then
+			self.righttext:SetText ("")
 			self:SetScript ("OnUpdate", nil)
 			self.MyObject:OnTimerEnd()
 		end
 	end
 	
 	function BarMetaFunctions:SetTimer (tempo)
-
-		self.statusbar.width = self.statusbar:GetWidth()
+		
+		-- o que é inverso
+			-- barra cheia 
+			-- barra vazia
+		-- o que é left to right
+			-- barra que faz da direita pra esquerda
+			-- contrário
+		
 		self.statusbar.tempo = tempo
 		self.statusbar.remaining = tempo
-		self.statusbar.c = self.statusbar.width
+		self.statusbar.total_size = self.statusbar:GetWidth()
+		self.statusbar.end_timer = GetTime() + tempo
+		self.statusbar.inverse = self.BarIsInverse
 		
-		self.timer_texture:Show()
-		self.timer_texture:SetWidth (self.statusbar.width)
-		self.statusbar.t = self.timer_texture
-		self (1)
+		self (0)
 		
 		self.div_timer:Show()
 		self.background:Show()
 		self:Show()
 		
+		if (self.LeftToRight) then
+			self.timer_texture:Hide()
+			self.timer_textureR:Show()
+			self.statusbar.t = self.timer_textureR
+			self.timer_textureR:ClearAllPoints()
+			self.timer_textureR:SetPoint ("right", self.statusbar, "right")
+			self.div_timer:SetPoint ("left", self.timer_textureR, "left", -14, -1)
+		else
+			self.timer_texture:Show()
+			self.timer_textureR:Hide()
+			self.statusbar.t = self.timer_texture
+			self.timer_texture:ClearAllPoints()
+			self.timer_texture:SetPoint ("left", self.statusbar, "left")
+			self.div_timer:SetPoint ("left", self.timer_texture, "right", -16, -1)
+		end
+		
+		if (self.BarIsInverse) then
+			self.statusbar.t:SetWidth (1)
+		else
+			self.statusbar.t:SetWidth (self.statusbar.total_size)
+		end
+		
 		self.timer = true
 		
-		self.statusbar:SetScript ("OnUpdate", OnUpdate)
+		DF:ScheduleTimer ("StartTimeBarAnimation", 0.1, self)
+	end
+	
+	function DF:StartTimeBarAnimation (timebar)
+		timebar.statusbar:SetScript ("OnUpdate", OnUpdate)
 	end
 	
 ------------------------------------------------------------------------------------------------------------
@@ -644,6 +688,9 @@
 		BarObject.timer_texture:SetWidth (w)
 		BarObject.timer_texture:SetHeight (h)
 		
+		BarObject.timer_textureR = _G [name .. "_timerTextureR"]
+		BarObject.timer_textureR:Hide()
+		
 		BarObject._texture = _G [name .. "_statusbarTexture"]
 		BarObject.background = _G [name .. "_background"]
 		BarObject._icon = _G [name .. "_icon"]
--- a/Libs/DF/normal_bar.xml	Tue Sep 08 13:23:31 2015 -0300
+++ b/Libs/DF/normal_bar.xml	Mon Sep 14 17:10:38 2015 -0300
@@ -23,6 +23,14 @@
 						<Anchor point="LEFT" relativeTo="$parent" />
 					</Anchors>
 				</Texture>
+				<Texture name="$parent_timerTextureR" hidden="true" parentKey="timertextureR" file = "Interface\PaperDollInfoFrame\UI-Character-Skills-Bar" horizTile="false" vertTile="false">
+					<Size x="300" y="14" />
+					<Color a = "1" r = "1" g = "1" b = "1" />
+					<Anchors>
+						<Anchor point="TOPRIGHT" relativeTo="$parent" x="0" y="0"/>
+						<Anchor point="BOTTOMRIGHT" relativeTo="$parent" x="0" y="0"/>
+					</Anchors>
+				</Texture>
 
 				<!-- statusbar texture -->
 				<Texture name="$parent_statusbarTexture" hidden="false" parentKey="texture" file = "Interface\PaperDollInfoFrame\UI-Character-Skills-Bar" horizTile="false" vertTile="false">