- Added background and dialog stratas.

- Added options for make the stretch button always on top (fullscreen strata).
- Fixed issue with Vanguard where the debuffs stacks on tanks only shown if you are in a tank spec.
- Fixed some overlap issues with windows snapped in vertical.
This commit is contained in:
tercio
2014-05-09 15:12:30 -03:00
parent ce87de9a33
commit 19fdc8d7de
6 changed files with 90 additions and 36 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
_ = nil
_detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0", "LibHotCorners")
_detalhes.userversion = "v1.13.8"
_detalhes.userversion = "v1.13.8a"
_detalhes.version = "Alpha 017"
_detalhes.realversion = 17
+1
View File
@@ -153,6 +153,7 @@ _detalhes.instance_defaults = {
hide_in_combat_alpha = 0,
--strata
strata = "LOW",
grab_on_top = false,
--wallpaper
wallpaper = {
enabled = false,
+31 -6
View File
@@ -3429,7 +3429,24 @@ function window:CreateFrame6()
frame6.stretchAnchorSlider.info = Loc ["STRING_OPTIONS_STRETCH_DESC"]
window:create_line_background (frame6, frame6.stretchAnchorLabel, frame6.stretchAnchorSlider)
frame6.stretchAnchorSlider:SetHook ("OnEnter", background_on_enter)
frame6.stretchAnchorSlider:SetHook ("OnLeave", background_on_leave)
frame6.stretchAnchorSlider:SetHook ("OnLeave", background_on_leave)
--stretch button always on top
g:NewSwitch (frame6, _, "$parentStretchAlwaysOnTopSlider", "stretchAlwaysOnTopSlider", 60, 20, _, _, instance.grab_on_top)
g:NewLabel (frame6, _, "$parentStretchAlwaysOnTopLabel", "stretchAlwaysOnTopLabel", Loc ["STRING_OPTIONS_STRETCHTOP"], "GameFontHighlightLeft")
frame6.stretchAlwaysOnTopSlider:SetPoint ("left", frame6.stretchAlwaysOnTopLabel, "right", 2, 0)
frame6.stretchAlwaysOnTopSlider.OnSwitch = function (self, instance, value)
instance:StretchButtonAlwaysOnTop (value)
end
frame6.stretchAlwaysOnTopSlider.info = Loc ["STRING_OPTIONS_STRETCHTOP_DESC"]
window:create_line_background (frame6, frame6.stretchAlwaysOnTopLabel, frame6.stretchAlwaysOnTopSlider)
frame6.stretchAlwaysOnTopSlider:SetHook ("OnEnter", background_on_enter)
frame6.stretchAlwaysOnTopSlider:SetHook ("OnLeave", background_on_leave)
-- instance toolbar side
g:NewSwitch (frame6, _, "$parentInstanceToolbarSideSlider", "instanceToolbarSideSlider", 80, 20, Loc ["STRING_BOTTOM"], Loc ["STRING_TOP"], instance.toolbar_side, nil, grow_switch_func, grow_return_func)
@@ -3530,9 +3547,11 @@ function window:CreateFrame6()
instance:SetFrameStrata (strataName)
end
local strataTable = {
{value = "BACKGROUND", label = "Background", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Green]], iconcolor = {0, .5, 0, .8}, texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
{value = "LOW", label = "Low", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Green]] , texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
{value = "MEDIUM", label = "Medium", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Yellow]] , texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
{value = "HIGH", label = "High", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Red]] , texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
{value = "HIGH", label = "High", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Yellow]] , iconcolor = {1, .7, 0, 1}, texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
{value = "DIALOG", label = "Dialog", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Red]] , iconcolor = {1, 0, 0, 1}, texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
}
local buildStrataMenu = function() return strataTable end
@@ -3582,10 +3601,11 @@ function window:CreateFrame6()
frame6.instanceMicroDisplaysSideLabel:SetPoint (10, -195)
frame6.backdropLabel:SetPoint (10, -220)
frame6.strataLabel:SetPoint (10, -245)
frame6.stretchAlwaysOnTopLabel:SetPoint (10, -270)
frame6.statusbarAnchorLabel:SetPoint (10, -280)
frame6.statusbarLabel:SetPoint (10, -305) --statusbar
frame6.statusbarColorLabel:SetPoint (10, -330)
frame6.statusbarAnchorLabel:SetPoint (10, -305)
frame6.statusbarLabel:SetPoint (10, -330) --statusbar
frame6.statusbarColorLabel:SetPoint (10, -355)
end
@@ -5138,9 +5158,11 @@ end --> if not window
--> Show
local strata = {
["BACKGROUND"] = "Background",
["LOW"] = "Low",
["MEDIUM"] = "Medium",
["HIGH"] = "High"
["HIGH"] = "High",
["DIALOG"] = "Dialog"
}
function window:update_all (editing_instance)
@@ -5185,6 +5207,9 @@ function window:update_all (editing_instance)
_G.DetailsOptionsWindow6StrataDropdown.MyObject:SetFixedParameter (editing_instance)
_G.DetailsOptionsWindow6StrataDropdown.MyObject:Select (strata [editing_instance.strata] or "Low")
_G.DetailsOptionsWindow6StretchAlwaysOnTopSlider.MyObject:SetFixedParameter (editing_instance)
_G.DetailsOptionsWindow6StretchAlwaysOnTopSlider.MyObject:SetValue (editing_instance.grab_on_top)
_G.DetailsOptionsWindow6InstanceMicroDisplaysSideSlider.MyObject:SetFixedParameter (editing_instance)
_G.DetailsOptionsWindow6InstanceMicroDisplaysSideSlider.MyObject:SetValue (editing_instance.micro_displays_side)
+41 -19
View File
@@ -1521,7 +1521,8 @@ local function button_stretch_scripts (baseframe, backgrounddisplay, instancia)
esta_instancia.baseframe:SetFrameStrata (baseframe_strata)
esta_instancia.rowframe:SetFrameStrata (baseframe_strata)
--esta_instancia.baseframe.button_stretch:SetFrameStrata ("FULLSCREEN")
esta_instancia:StretchButtonAlwaysOnTop()
_detalhes:SendEvent ("DETAILS_INSTANCE_ENDSTRETCH", nil, esta_instancia.baseframe)
end
instancia.stretchToo = nil
@@ -1539,7 +1540,7 @@ local function button_stretch_scripts (baseframe, backgrounddisplay, instancia)
baseframe:SetFrameStrata (baseframe_strata)
instancia.rowframe:SetFrameStrata (baseframe_strata)
--baseframe.button_stretch:SetFrameStrata ("FULLSCREEN")
instancia:StretchButtonAlwaysOnTop()
_detalhes:SnapTextures (false)
@@ -1858,7 +1859,7 @@ end
function CreateAlertFrame (baseframe, instancia)
local alert_bg = CreateFrame ("frame", nil, baseframe)
local alert_bg = CreateFrame ("frame", "DetailsAlertFrame" .. instancia.meu_id, baseframe)
alert_bg:SetPoint ("bottom", baseframe, "bottom")
alert_bg:SetPoint ("left", baseframe, "left", 3, 0)
alert_bg:SetPoint ("right", baseframe, "right", -3, 0)
@@ -1884,7 +1885,7 @@ function CreateAlertFrame (baseframe, instancia)
_detalhes:SetFontSize (text, 10)
text:SetTextColor (1, 1, 1, 1)
local rotate_frame = CreateFrame ("frame", nil, alert_bg)
local rotate_frame = CreateFrame ("frame", "DetailsAlertFrameRotate" .. instancia.meu_id, alert_bg)
rotate_frame:SetWidth (12)
rotate_frame:SetPoint ("right", alert_bg, "right", -2, 0)
rotate_frame:SetHeight (alert_bg:GetWidth())
@@ -2054,8 +2055,8 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
baseframe.scroll_middle:SetHeight (64)
--> scroll widgets
baseframe.button_up = CreateFrame ("button", nil, backgrounddisplay)
baseframe.button_down = CreateFrame ("button", nil, backgrounddisplay)
baseframe.button_up = CreateFrame ("button", "DetailsScrollUp" .. instancia.meu_id, backgrounddisplay)
baseframe.button_down = CreateFrame ("button", "DetailsScrollDown" .. instancia.meu_id, backgrounddisplay)
baseframe.button_up:SetWidth (29)
baseframe.button_up:SetHeight (32)
@@ -2098,9 +2099,10 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
-- stretch button -----------------------------------------------------------------------------------------------------------------------------------------------
baseframe.button_stretch = CreateFrame ("button", nil, baseframe)
baseframe.button_stretch = CreateFrame ("button", "DetailsButtonStretch" .. instancia.meu_id, baseframe)
baseframe.button_stretch:SetPoint ("bottom", baseframe, "top", 0, 20)
baseframe.button_stretch:SetPoint ("right", baseframe, "right", -27, 0)
baseframe.button_stretch:SetFrameLevel (15)
--baseframe.button_stretch:SetFrameStrata ("FULLSCREEN")
local stretch_texture = baseframe.button_stretch:CreateTexture (nil, "overlay")
@@ -2328,7 +2330,7 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
-- side bars highlights ------------------------------------------------------------------------------------------------------------------------------------------------------------
--> top
local fcima = CreateFrame ("frame", nil, baseframe.cabecalho.fechar)
local fcima = CreateFrame ("frame", "DetailsTopSideBarHighlight" .. instancia.meu_id, baseframe.cabecalho.fechar)
fcima:SetPoint ("topleft", baseframe.cabecalho.top_bg, "bottomleft", -10, 37)
fcima:SetPoint ("topright", baseframe.cabecalho.ball_r, "bottomright", -33, 37)
gump:CreateFlashAnimation (fcima)
@@ -2342,7 +2344,7 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
instancia.h_cima = fcima
--> bottom
local fbaixo = CreateFrame ("frame", nil, baseframe.cabecalho.fechar)
local fbaixo = CreateFrame ("frame", "DetailsBottomSideBarHighlight" .. instancia.meu_id, baseframe.cabecalho.fechar)
fbaixo:SetPoint ("topleft", baseframe.rodape.esquerdo, "bottomleft", 16, 17)
fbaixo:SetPoint ("topright", baseframe.rodape.direita, "bottomright", -16, 17)
gump:CreateFlashAnimation (fbaixo)
@@ -2356,7 +2358,7 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
instancia.h_baixo = fbaixo
--> left
local fesquerda = CreateFrame ("frame", nil, baseframe.cabecalho.fechar)
local fesquerda = CreateFrame ("frame", "DetailsLeftSideBarHighlight" .. instancia.meu_id, baseframe.cabecalho.fechar)
fesquerda:SetPoint ("topleft", baseframe.barra_esquerda, "topleft", -8, 0)
fesquerda:SetPoint ("bottomleft", baseframe.barra_esquerda, "bottomleft", -8, 0)
gump:CreateFlashAnimation (fesquerda)
@@ -2370,7 +2372,7 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
instancia.h_esquerda = fesquerda
--> right
local fdireita = CreateFrame ("frame", nil, baseframe.cabecalho.fechar)
local fdireita = CreateFrame ("frame", "DetailsRightSideBarHighlight" .. instancia.meu_id, baseframe.cabecalho.fechar)
fdireita:SetPoint ("topleft", baseframe.barra_direita, "topleft", 8, 18)
fdireita:SetPoint ("bottomleft", baseframe.barra_direita, "bottomleft", 8, 0)
gump:CreateFlashAnimation (fdireita)
@@ -3411,20 +3413,20 @@ function gump:CriaRodape (baseframe, instancia)
baseframe.rodape.top_bg:SetPoint ("left", baseframe.rodape.esquerdo, "right", -16, -48)
baseframe.rodape.top_bg:SetPoint ("right", baseframe.rodape.direita, "left", 16, -48)
local StatusBarLeftAnchor = CreateFrame ("frame", nil, baseframe)
local StatusBarLeftAnchor = CreateFrame ("frame", "DetailsStatusBarAnchorLeft" .. instancia.meu_id, baseframe)
StatusBarLeftAnchor:SetPoint ("left", baseframe.rodape.top_bg, "left", 5, 57)
StatusBarLeftAnchor:SetWidth (1)
StatusBarLeftAnchor:SetHeight (1)
baseframe.rodape.StatusBarLeftAnchor = StatusBarLeftAnchor
local StatusBarCenterAnchor = CreateFrame ("frame", nil, baseframe)
local StatusBarCenterAnchor = CreateFrame ("frame", "DetailsStatusBarAnchorCenter" .. instancia.meu_id, baseframe)
StatusBarCenterAnchor:SetPoint ("center", baseframe.rodape.top_bg, "center", 0, 57)
StatusBarCenterAnchor:SetWidth (1)
StatusBarCenterAnchor:SetHeight (1)
baseframe.rodape.StatusBarCenterAnchor = StatusBarCenterAnchor
--> display frame
baseframe.statusbar = CreateFrame ("frame", nil, baseframe.cabecalho.fechar)
baseframe.statusbar = CreateFrame ("frame", "DetailsStatusBar" .. instancia.meu_id, baseframe.cabecalho.fechar)
baseframe.statusbar:SetFrameLevel (baseframe.cabecalho.fechar:GetFrameLevel()+2)
baseframe.statusbar:SetPoint ("left", baseframe.rodape.esquerdo, "right", -13, 10)
baseframe.statusbar:SetPoint ("right", baseframe.rodape.direita, "left", 13, 10)
@@ -3450,7 +3452,7 @@ function gump:CriaRodape (baseframe, instancia)
baseframe.statusbar:Hide()
--> frame invisível
baseframe.DOWNFrame = CreateFrame ("frame", nil, baseframe)
baseframe.DOWNFrame = CreateFrame ("frame", "DetailsDownFrame" .. instancia.meu_id, baseframe)
baseframe.DOWNFrame:SetPoint ("left", baseframe.rodape.esquerdo, "right", 0, 10)
baseframe.DOWNFrame:SetPoint ("right", baseframe.rodape.direita, "left", 0, 10)
baseframe.DOWNFrame:SetHeight (14)
@@ -4479,6 +4481,8 @@ function _detalhes:SetFrameStrata (strata)
self.rowframe:SetFrameStrata (strata)
self.baseframe:SetFrameStrata (strata)
self:StretchButtonAlwaysOnTop()
end
function _detalhes:LeftMenuAnchorSide (side)
@@ -4892,6 +4896,22 @@ function _detalhes:ToolbarSide (side)
end
function _detalhes:StretchButtonAlwaysOnTop (on_top)
if (type (on_top) ~= "boolean") then
on_top = self.grab_on_top
end
self.grab_on_top = on_top
if (self.grab_on_top) then
self.baseframe.button_stretch:SetFrameStrata ("FULLSCREEN")
else
self.baseframe.button_stretch:SetFrameStrata (self.strata)
end
end
function _detalhes:StretchButtonAnchor (side)
if (not side) then
@@ -5178,6 +5198,7 @@ function _detalhes:HideStatusBar (instancia)
self.baseframe.rodape.top_bg:Hide()
self.baseframe.rodape.StatusBarLeftAnchor:Hide()
self.baseframe.rodape.StatusBarCenterAnchor:Hide()
self.baseframe.DOWNFrame:Hide()
if (self.toolbar_side == 2) then
self:ToolbarSide()
@@ -5229,6 +5250,7 @@ function _detalhes:ShowStatusBar (instancia)
self.baseframe.rodape.top_bg:Show()
self.baseframe.rodape.StatusBarLeftAnchor:Show()
self.baseframe.rodape.StatusBarCenterAnchor:Show()
self.baseframe.DOWNFrame:Show()
self:ToolbarSide()
self:StretchButtonAnchor()
@@ -5246,7 +5268,7 @@ function gump:CriaCabecalho (baseframe, instancia)
baseframe.cabecalho = {}
--> FECHAR INSTANCIA ----------------------------------------------------------------------------------------------------------------------------------------------------
baseframe.cabecalho.fechar = CreateFrame ("button", nil, baseframe, "UIPanelCloseButton")
baseframe.cabecalho.fechar = CreateFrame ("button", "DetailsCloseInstanceButton" .. instancia.meu_id, baseframe, "UIPanelCloseButton")
baseframe.cabecalho.fechar:SetWidth (32)
baseframe.cabecalho.fechar:SetHeight (32)
baseframe.cabecalho.fechar:SetFrameLevel (5) --> altura mais alta que os demais frames
@@ -5351,20 +5373,20 @@ function gump:CriaCabecalho (baseframe, instancia)
BGFrame_scripts (baseframe.UPFrameLeftPart, baseframe, instancia)
--> anchors para os micro displays no lado de cima da janela
local StatusBarLeftAnchor = CreateFrame ("frame", nil, baseframe)
local StatusBarLeftAnchor = CreateFrame ("frame", "DetailsStatusBarLeftAnchor" .. instancia.meu_id, baseframe)
StatusBarLeftAnchor:SetPoint ("bottomleft", baseframe, "topleft", 0, 9)
StatusBarLeftAnchor:SetWidth (1)
StatusBarLeftAnchor:SetHeight (1)
baseframe.cabecalho.StatusBarLeftAnchor = StatusBarLeftAnchor
local StatusBarCenterAnchor = CreateFrame ("frame", nil, baseframe)
local StatusBarCenterAnchor = CreateFrame ("frame", "DetailsStatusBarCenterAnchor" .. instancia.meu_id, baseframe)
StatusBarCenterAnchor:SetPoint ("center", baseframe, "center")
StatusBarCenterAnchor:SetPoint ("bottom", baseframe, "top", 0, 9)
StatusBarCenterAnchor:SetWidth (1)
StatusBarCenterAnchor:SetHeight (1)
baseframe.cabecalho.StatusBarCenterAnchor = StatusBarCenterAnchor
local StatusBarRightAnchor = CreateFrame ("frame", nil, baseframe)
local StatusBarRightAnchor = CreateFrame ("frame", "DetailsStatusBarRightAnchor" .. instancia.meu_id, baseframe)
StatusBarRightAnchor:SetPoint ("bottomright", baseframe, "topright", 0, 9)
StatusBarRightAnchor:SetWidth (1)
StatusBarRightAnchor:SetHeight (1)
Binary file not shown.
+16 -10
View File
@@ -482,7 +482,7 @@ local function CreatePluginFrames (data)
--> Get damage actor
local actorDamage = Vanguard:GetActor ("current", DETAILS_ATTRIBUTE_DAMAGE, _track_player_name) --> [1] combat [2] attribute [3] name
if (actorDamage) then
if (actorDamage and actorDamage.avoidance) then
--> members can be found at details/classes/classe_damage line 75
local avoidance = actorDamage.avoidance --> table with DODGE, PARRY, HITS members
@@ -999,7 +999,7 @@ local function CreatePluginFrames (data)
on_second_tick = 0
end
if (half_second_tick > 0.5) then
if (half_second_tick > 0.5 and _track_player_object.avoidance) then
--> capture the amount of hits and avoids
@@ -1133,6 +1133,7 @@ local function CreatePluginFrames (data)
function Vanguard:Start()
if (not Vanguard.Running) then
--print ("return 1")
return
else
--> reset widgets
@@ -1150,16 +1151,18 @@ local function CreatePluginFrames (data)
if (not _track_player_object) then
--print ("Vanguard: Object not found 1.")
_detalhes:ScheduleTimer ("VanguardWait", 1)
--print ("return 2")
return
end
_track_player_name = MyTarget
local role = UnitGroupRolesAssigned (_track_player_name)
if (role ~= "TANK") then
_detalhes:ScheduleTimer ("VanguardWait", 1)
return
end
--if (role ~= "TANK") then
-- _detalhes:ScheduleTimer ("VanguardWait", 1)
-- print ("return 3")
-- return
--end
if (VanguardFrame.InfoShown) then
Vanguard:VanguardRefreshInfoFrame()
@@ -1169,16 +1172,18 @@ local function CreatePluginFrames (data)
if (not _track_player_object) then
--print ("Vanguard: Object not found 2.")
_detalhes:ScheduleTimer ("VanguardWait", 1)
--print ("return 4")
return
end
_track_player_name = MyName
local role = UnitGroupRolesAssigned (_track_player_name)
if (role ~= "TANK") then
_detalhes:ScheduleTimer ("VanguardWait", 1)
return
end
--if (role ~= "TANK") then
-- _detalhes:ScheduleTimer ("VanguardWait", 1)
-- print ("return 5")
-- return
--end
if (VanguardFrame.InfoShown) then
Vanguard:VanguardRefreshInfoFrame()
@@ -1199,6 +1204,7 @@ local function CreatePluginFrames (data)
damage_now = 0
damage_taken = {}
--print ("vanguard starting... 3 ...")
VanguardFrame:SetScript ("OnUpdate", onupdate)
end