- Added a extra button on the hotcorner topleft for reset details segments.

- Fixed issue with plugin buttons where it's alpha was changing within instance alpha.
- Fixed a issue with Tiny Threat plugin where sometimes does not properlly.
This commit is contained in:
tercio
2014-04-24 20:28:02 -03:00
parent 667dceb06a
commit d47e13a533
8 changed files with 210 additions and 43 deletions
+15 -3
View File
@@ -23,19 +23,22 @@ end
local CallbackHandler = LibStub:GetLibrary ("CallbackHandler-1.0")
LibHotCorners.callbacks = LibHotCorners.callbacks or CallbackHandler:New (LibHotCorners)
LibHotCorners.topleft = {widgets = {}}
LibHotCorners.topleft = {widgets = {}, fastcorner = false}
LibHotCorners.bottomleft = {}
LibHotCorners.topright = {}
LibHotCorners.bottomright = {}
function LibHotCorners:RegisterHotCornerButton (corner, name, icon, tooltip, clickfunc, menus)
function LibHotCorners:RegisterHotCornerButton (corner, name, icon, tooltip, clickfunc, menus, fastcorner)
corner = string.lower (corner)
assert (corner == "topleft" or corner == "bottomleft" or corner == "topright" or corner == "bottomright", "LibHotCorners:RegisterAddon expects a corner on #1 argument.")
tinsert (LibHotCorners [corner], {name = name, icon = icon, tooltip = tooltip, click = clickfunc, menus = menus})
if (fastcorner) then
LibHotCorners [corner].fastcorner = fastcorner
end
end
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> top left corner
--> create top left corner
local TopLeftCorner = CreateFrame ("frame", "LibHotCornersTopLeft", UIParent)
@@ -43,6 +46,15 @@ end
TopLeftCorner:SetFrameStrata ("fullscreen")
TopLeftCorner:SetPoint ("TopLeft", UIParent, "TopLeft", 0, 0)
local FastCornerButton = CreateFrame ("button", "LibHotCornersTopLeftFastButton", TopLeftCorner)
FastCornerButton:SetPoint ("topleft", TopLeftCorner, "topleft")
FastCornerButton:SetSize (1, 1)
FastCornerButton:SetScript ("OnClick", function (self)
if (LibHotCorners.topleft.fastcorner) then
LibHotCorners.topleft.fastcorner()
end
end)
local TopLeftCornerBackdrop = {bgFile = [[Interface\DialogFrame\UI-DialogBox-Background]], tile = true, tileSize = 40}
--> on enter
+2 -2
View File
@@ -5,10 +5,10 @@
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> global name declaration
_ = 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.0"
_detalhes.userversion = "v1.13.1"
_detalhes.version = "Alpha 017"
_detalhes.realversion = 17
+90 -4
View File
@@ -164,7 +164,7 @@
--> select a new plugin in for an instance anchor
local ChoosePlugin = function (_, _, index, current_child, anchor)
if (index == -1) then --> hide
if (index and index == -1) then --> hide
current_child.frame.text:Hide()
_detalhes.StatusBar:ApplyOptions (current_child, "hidden", true)
return
@@ -174,6 +174,16 @@
end
local pluginMestre = _detalhes.StatusBar.Plugins [index]
if (not pluginMestre) then
if (anchor == "left") then
pluginMestre = _detalhes.StatusBar.Plugins [2]
elseif (anchor == "center") then
pluginMestre = _detalhes.StatusBar.Plugins [4]
elseif (anchor == "right") then
pluginMestre = _detalhes.StatusBar.Plugins [1]
end
end
local instance = current_child.instance -- instance que estamos usando agora
local chosenChild = nil
@@ -311,6 +321,12 @@
local left_index = _detalhes.StatusBar:GetIndexFromAbsoluteName (left)
ChoosePlugin (nil, nil, left_index, instance.StatusBar.left, "left")
local center_index = _detalhes.StatusBar:GetIndexFromAbsoluteName (center)
ChoosePlugin (nil, nil, center_index, instance.StatusBar.center, "center")
local right_index = _detalhes.StatusBar:GetIndexFromAbsoluteName (right)
ChoosePlugin (nil, nil, right_index, instance.StatusBar.right, "right")
instance.StatusBar.left.options = table_deepcopy (instance.StatusBarSaved.options [left])
instance.StatusBar.center.options = table_deepcopy (instance.StatusBarSaved.options [center])
instance.StatusBar.right.options = table_deepcopy (instance.StatusBarSaved.options [right])
@@ -318,6 +334,14 @@
_detalhes.StatusBar:ApplyOptions (instance.StatusBar.left, "textcolor")
_detalhes.StatusBar:ApplyOptions (instance.StatusBar.left, "textsize")
_detalhes.StatusBar:ApplyOptions (instance.StatusBar.left, "textface")
_detalhes.StatusBar:ApplyOptions (instance.StatusBar.center, "textcolor")
_detalhes.StatusBar:ApplyOptions (instance.StatusBar.center, "textsize")
_detalhes.StatusBar:ApplyOptions (instance.StatusBar.center, "textface")
_detalhes.StatusBar:ApplyOptions (instance.StatusBar.right, "textcolor")
_detalhes.StatusBar:ApplyOptions (instance.StatusBar.right, "textsize")
_detalhes.StatusBar:ApplyOptions (instance.StatusBar.right, "textface")
end
@@ -563,9 +587,11 @@ do
return
end
function PSegment:Change()
function PSegment:Change (combat_table, segment_number)
for index, child in _ipairs (PSegment.childs) do
if (child.enabled and child.instance:IsEnabled()) then
if (child.instance.segmento == -1) then --> overall
child.text:SetText (Loc ["STRING_OVERALL"])
@@ -575,24 +601,83 @@ do
child.text:SetText (Loc ["STRING_CURRENT"])
elseif (child.options.segmentType == 2) then
if (child.instance.showing.is_boss) then
child.text:SetText (child.instance.showing.is_boss.encounter)
elseif (_detalhes.encounter_table and _detalhes.encounter_table.name) then
child.text:SetText (_detalhes.encounter_table.name)
else
child.text:SetText (child.instance.showing.enemy or "Unknown")
end
elseif (child.options.segmentType == 3) then
if (not segment_number) then -- received "COMBAT_PLAYER_ENTER"
segment_number = child.instance:GetSegment()
end
local number_
if (segment_number == 0) then
number_ = " (#1)"
else
number_ = " (#" .. segment_number .. ")"
end
if (child.instance.showing.is_boss) then
child.text:SetText (child.instance.showing.is_boss.encounter .. number_)
elseif (child.instance.showing.is_trash) then
child.text:SetText (Loc ["STRING_SEGMENT_TRASH"] .. number_)
elseif (_detalhes.encounter_table and _detalhes.encounter_table.name) then
child.text:SetText (_detalhes.encounter_table.name .. number_)
else
child.text:SetText (child.instance.showing.enemy or "Unknown")
end
end
else --> alguma tabela do histórico
if (child.options.segmentType == 1) then
child.text:SetText (Loc ["STRING_FIGHTNUMBER"]..child.instance.segmento)
child.text:SetText (Loc ["STRING_FIGHTNUMBER"] .. child.instance.segmento)
elseif (child.options.segmentType == 2) then
if (child.instance.showing.is_boss) then
child.text:SetText (child.instance.showing.is_boss.encounter)
else
child.text:SetText (child.instance.showing.enemy or "Unknown")
end
elseif (child.options.segmentType == 3) then
if (not segment_number) then -- received "COMBAT_PLAYER_ENTER"
segment_number = child.instance:GetSegment()
end
local number_
if (segment_number == 0) then
number_ = " (#1)"
else
number_ = " (#" .. segment_number .. ")"
end
if (child.instance.showing.is_boss) then
child.text:SetText (child.instance.showing.is_boss.encounter .. number_)
elseif (child.instance.showing.is_trash) then
child.text:SetText (Loc ["STRING_SEGMENT_TRASH"] .. number_)
elseif (_detalhes.encounter_table and _detalhes.encounter_table.name) then
child.text:SetText (_detalhes.encounter_table.name .. number_)
else
child.text:SetText (child.instance.showing.enemy or "Unknown")
end
end
end
end
@@ -618,6 +703,7 @@ do
local segmentTypes = {
{value = 1, label = Loc ["STRING_PLUGIN_SEGMENTTYPE_1"], onclick = onSelectSegmentType, icon = [[Interface\ICONS\Ability_Rogue_KidneyShot]]},
{value = 2, label = Loc ["STRING_PLUGIN_SEGMENTTYPE_2"], onclick = onSelectSegmentType, icon = [[Interface\ICONS\Achievement_Boss_Ra_Den]]},
{value = 3, label = Loc ["STRING_PLUGIN_SEGMENTTYPE_3"], onclick = onSelectSegmentType, icon = [[Interface\ICONS\Achievement_Boss_Durumu]]},
}
_detalhes.gump:NewDropDown (window, nil, "$parentSegmentTypeDropdown", "segmentTypeDropdown", 200, 20, function() return segmentTypes end, 1) -- func, default
@@ -1180,7 +1266,7 @@ do
end
function PTime:OnDisable()
self:CancelTimer (self.srt)
self:CancelTimer (self.srt, true)
end
function PTime:OnEnable()
+9 -2
View File
@@ -214,10 +214,15 @@
for _, ThisButton in ipairs (_detalhes.ToolBar.Shown) do
ThisButton:ClearAllPoints()
ThisButton:SetParent (instance.baseframe.UPFrame)
--ThisButton:SetParent (instance.baseframe.UPFrame)
-- se tiver no listener, ele nao hida quando a janela for fechada.
-- se tiver no baseframe não da de clicar.
-- se tiver no UPFrame ele muda de alpha junto com a janela.
-- mudei para o baseframe aumentando o level.
ThisButton:SetParent (instance.baseframe)
ThisButton:SetFrameLevel (instance.baseframe:GetFrameLevel()+5)
if (LastIcon == instance.baseframe.cabecalho.report) then
ThisButton:SetPoint ("left", LastIcon, "right", ThisButton.x + x + 4, ThisButton.y)
@@ -241,7 +246,9 @@
for _, ThisButton in ipairs (_detalhes.ToolBar.Shown) do
ThisButton:ClearAllPoints()
ThisButton:SetParent (instance.baseframe.UPFrame)
ThisButton:SetParent (instance.baseframe)
ThisButton:SetFrameLevel (instance.baseframe:GetFrameLevel()+5)
ThisButton:SetPoint ("right", LastIcon, "left", ThisButton.x + x, ThisButton.y)
+12 -2
View File
@@ -4195,6 +4195,12 @@ end --> if not window
----------------------------------------------------------------------------------------
--> Show
local strata = {
["LOW"] = "Low",
["MEDIUM"] = "Medium",
["HIGH"] = "High"
}
function window:update_all (editing_instance)
--> window 1
@@ -4248,7 +4254,8 @@ function window:update_all (editing_instance)
_G.DetailsOptionsWindow6StatusbarColorPick.MyObject:SetColor (r, g, b, editing_instance.statusbar_info.alpha)
_G.DetailsOptionsWindow6StrataDropdown.MyObject:SetFixedParameter (editing_instance)
_G.DetailsOptionsWindow6StrataDropdown.MyObject:Select (editing_instance.strata)
_G.DetailsOptionsWindow6StrataDropdown.MyObject:Select (strata [editing_instance.strata] or "Low")
--> window 7
_G.DetailsOptionsWindow7AutoHideRightMenuSwitch.MyObject:SetFixedParameter (editing_instance)
@@ -4458,7 +4465,10 @@ function window:update_all (editing_instance)
_G.DetailsOptionsWindow.MyObject.instance = instance
_G.DetailsOptionsWindowInstanceSelectDropdown.MyObject:Select (editing_instance.meu_id, true)
if (editing_instance.meu_id > _detalhes.instances_amount) then
else
_G.DetailsOptionsWindowInstanceSelectDropdown.MyObject:Select (editing_instance.meu_id, true)
end
_G.DetailsOptionsWindow4IconFileEntry:SetText (editing_instance.row_info.icon_file)
+77 -28
View File
@@ -1899,7 +1899,38 @@ function _detalhes:InstanceMsg (text, icon, textcolor, icontexture, iconcoords,
end
end
--> inicio ~janela ~window
function _detalhes:schedule_hide_anti_overlap (self)
self:Hide()
self.schdule = nil
end
local function hide_anti_overlap (self)
if (self.schdule) then
_detalhes:CancelTimer (self.schdule)
self.schdule = nil
end
local schdule = _detalhes:ScheduleTimer ("schedule_hide_anti_overlap", 0.3, self)
self.schdule = schdule
end
local function show_anti_overlap (instance, host, side)
local anti_menu_overlap = instance.baseframe.anti_menu_overlap
if (anti_menu_overlap.schdule) then
_detalhes:CancelTimer (anti_menu_overlap.schdule)
anti_menu_overlap.schdule = nil
end
anti_menu_overlap:ClearAllPoints()
if (side == "top") then
anti_menu_overlap:SetPoint ("bottom", host, "top")
elseif (side == "bottom") then
anti_menu_overlap:SetPoint ("top", host, "bottom")
end
anti_menu_overlap:Show()
end
--> ~inicio ~janela ~window
function gump:CriaJanelaPrincipal (ID, instancia, criando)
-- main frames -----------------------------------------------------------------------------------------------------------------------------------------------
@@ -1928,6 +1959,14 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
switchbutton:SetPoint ("topleft", backgrounddisplay, "topleft")
switchbutton:SetPoint ("bottomright", backgrounddisplay, "bottomright")
switchbutton:SetFrameLevel (backgrounddisplay:GetFrameLevel()+1)
local anti_menu_overlap = CreateFrame ("frame", "Details_WindowFrameAntiMenuOverlap" .. ID, baseframe)
anti_menu_overlap:SetSize (100, 13)
anti_menu_overlap:SetFrameStrata ("DIALOG")
anti_menu_overlap:EnableMouse (true)
anti_menu_overlap:Hide()
--anti_menu_overlap:SetBackdrop (gump_fundo_backdrop)
baseframe.anti_menu_overlap = anti_menu_overlap
-- scroll bar -----------------------------------------------------------------------------------------------------------------------------------------------
@@ -3018,7 +3057,7 @@ function _detalhes:InstanceColor (red, green, blue, alpha, no_save, change_statu
--> not saving
self:StatusBarColor (nil, nil, nil, alpha, true)
end
local skin = _detalhes.skins [self.skin]
--[[
@@ -3032,9 +3071,10 @@ function _detalhes:InstanceColor (red, green, blue, alpha, no_save, change_statu
self.baseframe.cabecalho.ball_r:SetVertexColor (red, green, blue)
self.baseframe.cabecalho.ball_r:SetAlpha (alpha)
self.baseframe.cabecalho.ball:SetVertexColor (red, green, blue)
self.baseframe.cabecalho.ball:SetAlpha (alpha)
self.baseframe.cabecalho.atributo_icon:SetAlpha (alpha)
self.baseframe.cabecalho.emenda:SetVertexColor (red, green, blue)
@@ -3050,7 +3090,7 @@ function _detalhes:InstanceColor (red, green, blue, alpha, no_save, change_statu
self.baseframe.barra_fundo:SetAlpha (alpha)
self.baseframe.UPFrame:SetAlpha (alpha)
--self.color[1], self.color[2], self.color[3], self.color[4] = red, green, blue, alpha
end
@@ -3533,13 +3573,15 @@ local build_mode_list = function (self, elapsed)
if (instancia.toolbar_side == 1) then
CoolTip:SetOwner (self)
elseif (instancia.toolbar_side == 2) then --> bottom
CoolTip:SetOwner (self, "bottom", "top", 0, -7)
CoolTip:SetOwner (self, "bottom", "top", 0, 0) -- -7
end
end
--CoolTip:SetWallpaper (1, [[Interface\ACHIEVEMENTFRAME\UI-Achievement-Parchment-Horizontal-Desaturated]], nil, {1, 1, 1, 0.3})
CoolTip:SetWallpaper (1, [[Interface\SPELLBOOK\Spellbook-Page-1]], {.6, 0.1, 0, 0.64453125}, {1, 1, 1, 0.1}, true)
show_anti_overlap (instancia, self, "top")
CoolTip:ShowCooltip()
end
end
@@ -3780,7 +3822,7 @@ local build_segment_list = function (self, elapsed)
if (instancia.toolbar_side == 1) then
CoolTip:SetOwner (self)
elseif (instancia.toolbar_side == 2) then --> bottom
CoolTip:SetOwner (self, "bottom", "top", 0, -7)
CoolTip:SetOwner (self, "bottom", "top", 0, 0) -- -7
end
end
@@ -3798,6 +3840,8 @@ local build_segment_list = function (self, elapsed)
--CoolTip:SetWallpaper (1, [[Interface\ACHIEVEMENTFRAME\UI-Achievement-Parchment-Horizontal-Desaturated]], nil, {1, 1, 1, 0.3})
CoolTip:SetWallpaper (1, [[Interface\SPELLBOOK\Spellbook-Page-1]], {.6, 0.1, 0, 0.64453125}, {1, 1, 1, 0.1}, true)
show_anti_overlap (instancia, self, "top")
CoolTip:ShowCooltip()
self:SetScript ("OnUpdate", nil)
@@ -3999,6 +4043,25 @@ function _detalhes:ChangeSkin (skin_name)
--> reset micro frames
_detalhes.StatusBar:Reset (self)
--> customize micro frames
if (this_skin.micro_frames) then
if (this_skin.micro_frames.color) then
_detalhes.StatusBar:ApplyOptions (self.StatusBar.left, "textcolor", this_skin.micro_frames.color)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.center, "textcolor", this_skin.micro_frames.color)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.right, "textcolor", this_skin.micro_frames.color)
end
if (this_skin.micro_frames.font) then
_detalhes.StatusBar:ApplyOptions (self.StatusBar.left, "textface", this_skin.micro_frames.font)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.center, "textface", this_skin.micro_frames.font)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.right, "textface", this_skin.micro_frames.font)
end
if (this_skin.micro_frames.size) then
_detalhes.StatusBar:ApplyOptions (self.StatusBar.left, "textsize", this_skin.micro_frames.size)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.center, "textsize", this_skin.micro_frames.size)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.right, "textsize", this_skin.micro_frames.size)
end
end
end
self.skin = skin_name
@@ -4129,26 +4192,6 @@ function _detalhes:ChangeSkin (skin_name)
end
end
----------> customize micro frames
if (this_skin.micro_frames) then
if (this_skin.micro_frames.color) then
_detalhes.StatusBar:ApplyOptions (self.StatusBar.left, "textcolor", this_skin.micro_frames.color)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.center, "textcolor", this_skin.micro_frames.color)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.right, "textcolor", this_skin.micro_frames.color)
end
if (this_skin.micro_frames.font) then
_detalhes.StatusBar:ApplyOptions (self.StatusBar.left, "textface", this_skin.micro_frames.font)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.center, "textface", this_skin.micro_frames.font)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.right, "textface", this_skin.micro_frames.font)
end
if (this_skin.micro_frames.size) then
_detalhes.StatusBar:ApplyOptions (self.StatusBar.left, "textsize", this_skin.micro_frames.size)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.center, "textsize", this_skin.micro_frames.size)
_detalhes.StatusBar:ApplyOptions (self.StatusBar.right, "textsize", this_skin.micro_frames.size)
end
end
----------> icon anchor and size
if (self.modo == 1 or self.modo == 4 or self.atributo == 5) then -- alone e raid
@@ -5231,6 +5274,8 @@ function gump:CriaCabecalho (baseframe, instancia)
baseframe.cabecalho.modo_selecao:SetScript ("OnLeave", function (self)
OnLeaveMainWindow (instancia, self, 3)
hide_anti_overlap (instancia.baseframe.anti_menu_overlap)
if (instancia.desaturated_menu) then
self:GetNormalTexture():SetDesaturated (true)
end
@@ -5325,6 +5370,8 @@ function gump:CriaCabecalho (baseframe, instancia)
baseframe.cabecalho.segmento:SetScript ("OnLeave", function (self)
--gump:Fade (baseframe.button_stretch, -1)
OnLeaveMainWindow (instancia, self, 3)
hide_anti_overlap (instancia.baseframe.anti_menu_overlap)
if (instancia.desaturated_menu) then
self:GetNormalTexture():SetDesaturated (true)
@@ -5367,6 +5414,7 @@ function gump:CriaCabecalho (baseframe, instancia)
OnEnterFunc = function (self)
baseframe.cabecalho.button_mouse_over = true;
OnEnterMainWindow (instancia, baseframe.cabecalho.atributo, 3)
show_anti_overlap (instancia, self, "top")
if (instancia.desaturated_menu) then
self:GetNormalTexture():SetDesaturated (false)
end
@@ -5374,6 +5422,7 @@ function gump:CriaCabecalho (baseframe, instancia)
OnLeaveFunc = function (self)
baseframe.cabecalho.button_mouse_over = false;
OnLeaveMainWindow (instancia, baseframe.cabecalho.atributo, 3)
hide_anti_overlap (instancia.baseframe.anti_menu_overlap)
if (instancia.desaturated_menu) then
self:GetNormalTexture():SetDesaturated (true)
end
@@ -5387,7 +5436,7 @@ function gump:CriaCabecalho (baseframe, instancia)
if (instancia.toolbar_side == 1) then --top
return {TextSize = _detalhes.font_sizes.menus}
elseif (instancia.toolbar_side == 2) then --bottom
return {TextSize = _detalhes.font_sizes.menus, HeightAnchorMod = -7}
return {TextSize = _detalhes.font_sizes.menus, HeightAnchorMod = 0} -- -7
end
end
end}
@@ -21,6 +21,8 @@ local ThreatMeter = _detalhes:NewPluginObject ("Details_Threat")
--> Main Frame
local ThreatMeterFrame = ThreatMeter.Frame
local _
local function CreatePluginFrames (data)
--> catch Details! main object
@@ -175,7 +177,7 @@ local function CreatePluginFrames (data)
end
function ThreatMeter:NewRow (i)
local newrow = DetailsFrameWork:NewBar (ThreatMeterFrame, _, "DetailsThreatRow"..i, _, 300, 14)
local newrow = DetailsFrameWork:NewBar (ThreatMeterFrame, nil, "DetailsThreatRow"..i, nil, 300, 14)
newrow:SetPoint (3, -((i-1)*15))
newrow.lefttext = "bar " .. i
newrow.color = "skyblue"
+2 -1
View File
@@ -589,7 +589,8 @@ function _G._detalhes:Start()
end
--register lib-hotcorners
_detalhes:RegisterHotCornerButton ("TOPLEFT", "DetailsLeftCornerButton", [[Interface\AddOns\Details\images\minimap]], "|cFFFFFFFFDetails!\n|cFF00FF00Left Click:|r clear all segments.", function() _detalhes.tabela_historico:resetar() end)
local reset_func = function() _detalhes.tabela_historico:resetar() end
_detalhes:RegisterHotCornerButton ("TOPLEFT", "DetailsLeftCornerButton", [[Interface\AddOns\Details\images\minimap]], "|cFFFFFFFFDetails!\n|cFF00FF00Left Click:|r clear all segments.", reset_func, nil, reset_func)
--[[