From fc164b7a8bbbf8f11544867c4f5870ff616f6ffa Mon Sep 17 00:00:00 2001 From: tercio Date: Mon, 1 Dec 2014 21:50:21 -0200 Subject: [PATCH] - Fixed a bug with menu desaturation where erase and close buttons stay colored after clicking on it. - Fixed stretch where sometimes after release the window, all exceeded bars shows up and fade in again. - Fixed a bug with the +- buttons on the window's scale option. - Fixed the border for sub menus on mode menu. --- boot.lua | 14 ++++-- classes/classe_instancia.lua | 13 ++++- core/network.lua | 14 ++++-- core/util.lua | 94 ++++++++++++++++++++--------------- core/windows.lua | 12 +++-- functions/skins.lua | 15 +++--- gumps/janela_options.lua | 7 +-- gumps/janela_principal.lua | 58 +++++++-------------- images/skins/elvui.tga | Bin 181417 -> 174579 bytes 9 files changed, 121 insertions(+), 106 deletions(-) diff --git a/boot.lua b/boot.lua index 8498059a..2d4d1804 100644 --- a/boot.lua +++ b/boot.lua @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> global name declaration - + _ = nil _detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0") - _detalhes.build_counter = 245 --it's 245 for release - _detalhes.userversion = "v3.4.0" + _detalhes.build_counter = 250 --it's 250 for release + _detalhes.userversion = "v3.4.2" _detalhes.realversion = 49 --core version _detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")" @@ -18,10 +18,14 @@ do local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" ) --[[ - +|cFFFFFF00v3.4.2 (|cFFFFCC00Dec 01, 2014|r|cFFFFFF00)|r:\n\n +|cFFFFFF00-|r Fixed a bug with menu desaturation where erase and close buttons stay colored after clicking on it.\n\n +|cFFFFFF00-|r Fixed stretch where sometimes after release the window, all exceeded bars shows up and fade in again.\n\n +|cFFFFFF00-|r Fixed a bug with the +- buttons on the window's scale option.\n\n +|cFFFFFF00-|r Fixed the border for sub menus on mode menu.\n\n --]] - Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v3.4.0 (|cFFFFCC00Nov 29, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed custom displays ignoring 'target' setted.\n\n|cFFFFFF00-|r Fixed plugins showing its icon even when auto hide menus is enabled.\n\n|cFFFFFF00-|r .Updates slash command 'worldboss' now it shows Draenor bosses.\n\n|cFFFFFF00v3.3.0 (|cFFFFCC00Nov 25, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added 3D models for the bars in the window. The options are at Appearance -> Rows: Advanced.\n\n|cFFFFFF00-|r Now when showing custom displays, clicking on a bar report what is shown on bar's tooltip.\n\n|cFFFFFF00-|r More fixes for dungeon bosses identification.\n\n|cFFFFFF00-|r Fixed a tooltip bug with Debuff Uptime and Aura & Voidzone displays.\n\n|cFFFFFF00-|r Fixed Player Details Window for friendly fire and damage taken.\n\n|cFFFFFF00-|r Fixed Molten Core Raid Finder version where all bosses was considered trash segments.\n\n|cFFFFFF00v3.2.4 (|cFFFFCC00Nov 19, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r More fixes for dungeon bosses recognition.\n\n|cFFFFFF00-|r Fixes for few errors during combat parser.\n\n|cFFFFFF00v3.2.3 (|cFFFFCC00Nov 18, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk's Stagger ability which was counting as damage done.\n\n|cFFFFFF00-|r Added WoD dungeon information, this fixes dungeon bosses being assigned as 'trash cleanup'.\n\n|cFFFFFF00-|r Added more information on API.txt document (is in Details! root folder).\n\n|cFFFFFF00v3.2.1 (|cFFFFCC00Nov 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Custom Displays updated to track WoD potions.\n\n|cFFFFFF00-|r Added Feedback panel at options panel.\n\n|cFFFFFF00v3.2.0 (|cFFFFCC00Nov 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Major changes on the way Details! store information, these changes saves up to 40% memory and 4% cpu usage.\n\n|cFFFFFF00-|r Fixed problem with pet's healing messing with the owner activity time.\n\n|cFFFFFF00-|r Added Energy -> Resources.\n\n|cFFFFFF00-|r Fixed combat initialization when the player start casting a Dot spell.\n\n|cFFFFFF00-|r Added new custom display: Damage Taken By Spell.\n\n|cFFFFFF00v2.2.3 (|cFFFFCC00Oct 26, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the healing done problem with Priest's Spirit of Redemption.\n\n|cFFFFFF00-|r Fixed avoidance by absorb when the hit missed was a multistrike hit.\n\n|cFFFFFF00-|r Fixed a script time out problem when erasing data while in combat.\n\n|cFFFFFF00-|r Fixed bug with interrupt tooltip when the player have a pet.\n\n|cFFFFFF00v2.2.1 (|cFFFFCC00Oct 22, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the gap between the button and its menu which sometimes traveling the mouse between them was activating tooltips from window's bars.\n\n|cFFFFFF00-|r Fixed an annoying menu blink when the window was near the right side of the screen.\n\n|cFFFFFF00-|r Fixed the stretch grab which was over other windows even with the 'stretch always on top' option disabled.\n\n|cFFFFFF00-|r Few fixes on healing done from absorbs.\n\n|cFFFFFF00v2.1.6 (|cFFFFCC00Oct 21, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed death's tooltip which wasn't respecting tooltip's configuration set on options panel.\n\n|cFFFFFF00-|r Now when the window is close to the top of the screen, menus will anchor on bottom side of the menu icons.\n\n|cFFFFFF00-|r Added micro displays options on Window Settings bracket.\n\n|cFFFFFF00-|r Fixed the problem with bar's custom texts.\n\n|cFFFFFF00-|r Lua functions inside custom texts, Chart Data scripts and Custom Displays scripts are now protected calls and won't break the addon functionality if an error occurs. Unfortunately we still doesn't have a documentation for Details! API.\n\n|cFFFFFF00-|r Fixed an incomum bug with tank avoidance tables.\n\n|cFFFFFF00-|r Tiny Threat: added option to use class colors instead of green-to-red colors.\n\n|cFFFFFF00-|r Added option to enable shadows on toolbar's buttons.\n\n|cFFFFFF00-|r Added option to set the specing between each button on toolbar.\n\n|cFFFFFF00-|r Finally we merged the left and right menus into only one with 6 icons.\n\n|cFFFFFF00-|r Removed window button and added a new option bracket to manage windows under Mode Menu.\n\n|cFFFFFF00-|r Few changes on 'Default Skin', 'Minimalistic', 'Simple Gray' and 'ElvUI Frame Style BW' (need reaply).\n\n|cFFFFFF00- Important:|r If the menus is out of the position, just reaply the skin.\n\nv2.0.15 (|cFFFFCC00Oct 15, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed tooltips where sometimes it wans't showing at all.\n\n|cFFFFFF00-|r Fixed the healing done amount on Malkorok encounter.\n\nv2.0.14 (|cFFFFCC00Oct 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added pre-potion recognition for WoD pots.\n\n|cFFFFFF00-|r Added spell list for Blackrock Foundry encounters.\n\n|cFFFFFF00-|r Added mouse wheel scroll speed option.\n\n|cFFFFFF00-|r Added support for healing multistrike and damage multistrike.\n\n|cFFFFFF00-|r Added a Change Log button on Options Panel.\n\n|cFFFFFF00-|r When the windows is locked, trying to move the window through toolbar will stretch it instead.\n\n|cFFFFFF00-|r Renamed overheal for shields, now its called 'shield wasted'.\n\n|cFFFFFF00-|r Fine tuning on healing done, should have high accuracy now.\n\n|cFFFFFF00-|r Encounter Details plugin now supports Highmaul and Blackrock Foundry.\n\n|cFFFFFF00-|r New class cooldowns and spells recognition.\n\n|cFFFFFF00-|r Fixed few bugs on comparison panel and avoidance panel.\n\n|cFFFFFF00-|r Fixed encounter recognition, now it should show the encounter name over segments menu.\n\n|cFFFFFF00-|r Fixed Graphic part of Encounter Details Plugin, now he draws more accurately.\n\n|cFFFFFF00v1.29.3 (|cFFFFCC00Oct 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an addon crash bug when clicking directly on the sword button.\n\n|cFFFFFF00-|r Removed Flat Skin, added new skin: Serenity.\n\n|cFFFFFF00-|r Fixed many issues with bar animations.\n\n|cFFFFFF00-|r Fixed combat encounter start if the player already is in combat when the boss is pulled.\n\n|cFFFFFF00-|r Fixed wheel scroll when sometimes it move very slow or doesn't move the bars at all.\n\n|cFFFFFF00-|r Added option 'Always Show Me' which when enabled and you aren't at the top ranked players shown in the window, it forces to show you in the last bar.\n\n|cFFFFFF00-|r Added option 'First Hit' which when enabled show who did the first struck in the combat (normally is who pulled the boss).\n\n|cFFFFFF00-|r Added a panel to change class colors.\n\n|cFFFFFF00v1.28.3 (|cFFFFCC00Oct 04, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added support for plugin descriptions on options panel.\n\n|cFFFFFF00-|r Added scale option.\n\n|cFFFFFF00-|r Added a Change Log button on Options Panel.\n\n|cFFFFFF00-|r Added option to use the same profile on all characters without asking.\n\n|cFFFFFF00-|r Added a shortcut color button on main panel on Options Panel." + Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v3.4.2 (|cFFFFCC00Dec 01, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a bug with menu desaturation where erase and close buttons stay colored after clicking on it.\n\n|cFFFFFF00-|r Fixed stretch where sometimes after release the window, all exceeded bars shows up and fade in again.\n\n|cFFFFFF00-|r Fixed a bug with the +- buttons on the window's scale option.\n\n|cFFFFFF00-|r Fixed the border for sub menus on mode menu.\n\n|cFFFFFF00v3.4.0 (|cFFFFCC00Nov 29, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed custom displays ignoring 'target' setted.\n\n|cFFFFFF00-|r Fixed plugins showing its icon even when auto hide menus is enabled.\n\n|cFFFFFF00-|r .Updates slash command 'worldboss' now it shows Draenor bosses.\n\n|cFFFFFF00v3.3.0 (|cFFFFCC00Nov 25, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added 3D models for the bars in the window. The options are at Appearance -> Rows: Advanced.\n\n|cFFFFFF00-|r Now when showing custom displays, clicking on a bar report what is shown on bar's tooltip.\n\n|cFFFFFF00-|r More fixes for dungeon bosses identification.\n\n|cFFFFFF00-|r Fixed a tooltip bug with Debuff Uptime and Aura & Voidzone displays.\n\n|cFFFFFF00-|r Fixed Player Details Window for friendly fire and damage taken.\n\n|cFFFFFF00-|r Fixed Molten Core Raid Finder version where all bosses was considered trash segments.\n\n|cFFFFFF00v3.2.4 (|cFFFFCC00Nov 19, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r More fixes for dungeon bosses recognition.\n\n|cFFFFFF00-|r Fixes for few errors during combat parser.\n\n|cFFFFFF00v3.2.3 (|cFFFFCC00Nov 18, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk's Stagger ability which was counting as damage done.\n\n|cFFFFFF00-|r Added WoD dungeon information, this fixes dungeon bosses being assigned as 'trash cleanup'.\n\n|cFFFFFF00-|r Added more information on API.txt document (is in Details! root folder).\n\n|cFFFFFF00v3.2.1 (|cFFFFCC00Nov 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Custom Displays updated to track WoD potions.\n\n|cFFFFFF00-|r Added Feedback panel at options panel.\n\n|cFFFFFF00v3.2.0 (|cFFFFCC00Nov 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Major changes on the way Details! store information, these changes saves up to 40% memory and 4% cpu usage.\n\n|cFFFFFF00-|r Fixed problem with pet's healing messing with the owner activity time.\n\n|cFFFFFF00-|r Added Energy -> Resources.\n\n|cFFFFFF00-|r Fixed combat initialization when the player start casting a Dot spell.\n\n|cFFFFFF00-|r Added new custom display: Damage Taken By Spell.\n\n|cFFFFFF00v2.2.3 (|cFFFFCC00Oct 26, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the healing done problem with Priest's Spirit of Redemption.\n\n|cFFFFFF00-|r Fixed avoidance by absorb when the hit missed was a multistrike hit.\n\n|cFFFFFF00-|r Fixed a script time out problem when erasing data while in combat.\n\n|cFFFFFF00-|r Fixed bug with interrupt tooltip when the player have a pet.\n\n|cFFFFFF00v2.2.1 (|cFFFFCC00Oct 22, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the gap between the button and its menu which sometimes traveling the mouse between them was activating tooltips from window's bars.\n\n|cFFFFFF00-|r Fixed an annoying menu blink when the window was near the right side of the screen.\n\n|cFFFFFF00-|r Fixed the stretch grab which was over other windows even with the 'stretch always on top' option disabled.\n\n|cFFFFFF00-|r Few fixes on healing done from absorbs.\n\n|cFFFFFF00v2.1.6 (|cFFFFCC00Oct 21, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed death's tooltip which wasn't respecting tooltip's configuration set on options panel.\n\n|cFFFFFF00-|r Now when the window is close to the top of the screen, menus will anchor on bottom side of the menu icons.\n\n|cFFFFFF00-|r Added micro displays options on Window Settings bracket.\n\n|cFFFFFF00-|r Fixed the problem with bar's custom texts.\n\n|cFFFFFF00-|r Lua functions inside custom texts, Chart Data scripts and Custom Displays scripts are now protected calls and won't break the addon functionality if an error occurs. Unfortunately we still doesn't have a documentation for Details! API.\n\n|cFFFFFF00-|r Fixed an incomum bug with tank avoidance tables.\n\n|cFFFFFF00-|r Tiny Threat: added option to use class colors instead of green-to-red colors.\n\n|cFFFFFF00-|r Added option to enable shadows on toolbar's buttons.\n\n|cFFFFFF00-|r Added option to set the specing between each button on toolbar.\n\n|cFFFFFF00-|r Finally we merged the left and right menus into only one with 6 icons.\n\n|cFFFFFF00-|r Removed window button and added a new option bracket to manage windows under Mode Menu.\n\n|cFFFFFF00-|r Few changes on 'Default Skin', 'Minimalistic', 'Simple Gray' and 'ElvUI Frame Style BW' (need reaply).\n\n|cFFFFFF00- Important:|r If the menus is out of the position, just reaply the skin.\n\nv2.0.15 (|cFFFFCC00Oct 15, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed tooltips where sometimes it wans't showing at all.\n\n|cFFFFFF00-|r Fixed the healing done amount on Malkorok encounter.\n\nv2.0.14 (|cFFFFCC00Oct 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added pre-potion recognition for WoD pots.\n\n|cFFFFFF00-|r Added spell list for Blackrock Foundry encounters.\n\n|cFFFFFF00-|r Added mouse wheel scroll speed option.\n\n|cFFFFFF00-|r Added support for healing multistrike and damage multistrike.\n\n|cFFFFFF00-|r Added a Change Log button on Options Panel.\n\n|cFFFFFF00-|r When the windows is locked, trying to move the window through toolbar will stretch it instead.\n\n|cFFFFFF00-|r Renamed overheal for shields, now its called 'shield wasted'.\n\n|cFFFFFF00-|r Fine tuning on healing done, should have high accuracy now.\n\n|cFFFFFF00-|r Encounter Details plugin now supports Highmaul and Blackrock Foundry.\n\n|cFFFFFF00-|r New class cooldowns and spells recognition.\n\n|cFFFFFF00-|r Fixed few bugs on comparison panel and avoidance panel.\n\n|cFFFFFF00-|r Fixed encounter recognition, now it should show the encounter name over segments menu.\n\n|cFFFFFF00-|r Fixed Graphic part of Encounter Details Plugin, now he draws more accurately.\n\n|cFFFFFF00v1.29.3 (|cFFFFCC00Oct 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an addon crash bug when clicking directly on the sword button.\n\n|cFFFFFF00-|r Removed Flat Skin, added new skin: Serenity.\n\n|cFFFFFF00-|r Fixed many issues with bar animations.\n\n|cFFFFFF00-|r Fixed combat encounter start if the player already is in combat when the boss is pulled.\n\n|cFFFFFF00-|r Fixed wheel scroll when sometimes it move very slow or doesn't move the bars at all.\n\n|cFFFFFF00-|r Added option 'Always Show Me' which when enabled and you aren't at the top ranked players shown in the window, it forces to show you in the last bar.\n\n|cFFFFFF00-|r Added option 'First Hit' which when enabled show who did the first struck in the combat (normally is who pulled the boss)." Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r " diff --git a/classes/classe_instancia.lua b/classes/classe_instancia.lua index cc3eba6e..93e35ecc 100644 --- a/classes/classe_instancia.lua +++ b/classes/classe_instancia.lua @@ -231,6 +231,12 @@ function _detalhes:GetMaxInstancesAmount() return _detalhes.instances_amount end +function _detalhes:SetMaxInstancesAmount (amount) + if (_type (amount) == "number") then + _detalhes.instances_amount = amount + end +end + function _detalhes:GetFreeInstancesAmount() return _detalhes.instances_amount - #_detalhes.tabela_instancias end @@ -484,6 +490,7 @@ end end self:SetCombatAlpha (nil, nil, true) + self:DesaturateMenu() --if (self.hide_out_of_combat and not UnitAffectingCombat ("player")) then -- self:SetWindowAlphaForCombat (true, true) @@ -626,7 +633,7 @@ end if (instancia and not instancia:IsAtiva()) then instancia:AtivarInstancia() _detalhes:DelayOptionsRefresh (instancia) - return + return instancia end end @@ -634,7 +641,7 @@ end for index, instancia in _ipairs (_detalhes.tabela_instancias) do if (not instancia:IsAtiva()) then instancia:AtivarInstancia() - return + return instancia end end @@ -931,6 +938,8 @@ function _detalhes:agrupar_janelas (lados) end +_detalhes.MakeInstanceGroup = _detalhes.agrupar_janelas + function _detalhes:UngroupInstance() return self:Desagrupar (-1) end diff --git a/core/network.lua b/core/network.lua index 784920cc..1a252336 100644 --- a/core/network.lua +++ b/core/network.lua @@ -598,11 +598,15 @@ end else if (in_city) then - if (_detalhes.schedule_chat_leave) then - _detalhes:CancelTimer (_detalhes.schedule_chat_leave) - end - if (not _detalhes.schedule_chat_enter) then - _detalhes.schedule_chat_enter = _detalhes:ScheduleTimer ("EnterChatChannel", 5) + + local _, name = GetChannelName (2) + if (name) then + if (_detalhes.schedule_chat_leave) then + _detalhes:CancelTimer (_detalhes.schedule_chat_leave) + end + if (not _detalhes.schedule_chat_enter) then + _detalhes.schedule_chat_enter = _detalhes:ScheduleTimer ("EnterChatChannel", 5) + end end end end diff --git a/core/util.lua b/core/util.lua index 76471f8a..e891fdd5 100644 --- a/core/util.lua +++ b/core/util.lua @@ -648,6 +648,40 @@ end end --> todo: remove the function creation everytime this function run. + + local fade_IN_finished_func = function (frame) + if (frame.fading_in) then + frame.hidden = true + frame.faded = true + frame.fading_in = false + frame:Hide() + end + end + + local fade_OUT_finished_func = function (frame) + if (frame:IsShown() and frame.fading_out) then + frame.hidden = false + frame.faded = false + frame.fading_out = false + else + frame:SetAlpha(0) + end + end + + local just_fade_func = function (frame) + frame.hidden = false + frame.faded = true + frame.fading_in = false + end + + local anim_OUT_alpha_func = function (frame) + frame.fading_out = false + end + + local anim_IN_alpha_func = function (frame) + frame.fading_in = false + end + function gump:Fade (frame, tipo, velocidade, parametros) --if (frame.GetObjectType and frame:GetObjectType() == "Frame" and frame.GetName and type (frame:GetName()) == "string" and frame:GetName():find ("DetailsBaseFrame")) then @@ -655,6 +689,7 @@ end --end if (_type (frame) == "table") then + if (frame.meu_id) then --> ups, é uma instância if (parametros == "barras") then --> hida todas as barras da instância if (velocidade) then @@ -716,13 +751,9 @@ end _UIFrameFadeIn (frame, velocidade, frame:GetAlpha(), 0) frame.fading_in = true - frame.fadeInfo.finishedFunc = - function() - frame.hidden = true - frame.faded = true - frame.fading_in = false - frame:Hide() - end + + frame.fadeInfo.finishedFunc = fade_IN_finished_func + frame.fadeInfo.finishedArg1 = frame elseif (_upper (tipo) == "OUT") then --> aparecer if (frame:GetAlpha() == 1 and not frame.hidden and not frame.fading_in) then --> ja esta na tela @@ -738,12 +769,9 @@ end frame:Show() _UIFrameFadeOut (frame, velocidade, frame:GetAlpha(), 1.0) frame.fading_out = true - frame.fadeInfo.finishedFunc = - function() - frame.hidden = false - frame.faded = false - frame.fading_out = false - end + + frame.fadeInfo.finishedFunc = fade_OUT_finished_func + frame.fadeInfo.finishedArg1 = frame elseif (tipo == 0) then --> força o frame a ser mostrado frame.hidden = false @@ -751,22 +779,15 @@ end frame.fading_out = false frame.fading_in = false frame:Show() - frame:SetAlpha(1) - if (frame.fadeInfo) then --> limpa a função de fade se tiver alguma - frame.fadeInfo.finishedFunc = nil - end + frame:SetAlpha (1) elseif (tipo == 1) then --> força o frame a ser hidado - frame.hidden = true frame.faded = true frame.fading_out = false frame.fading_in = false + frame:SetAlpha (0) frame:Hide() - frame:SetAlpha(0) - if (frame.fadeInfo) then --> limpa a função de fade se tiver alguma - frame.fadeInfo.finishedFunc = nil - end elseif (tipo == -1) then --> apenas da fade sem hidar if (frame:GetAlpha() == 0 and frame.hidden and not frame.fading_out) then --> ja esta escondida @@ -781,13 +802,9 @@ end _UIFrameFadeIn (frame, velocidade, frame:GetAlpha(), 0) frame.fading_in = true - frame.fadeInfo.finishedFunc = - function() - frame.hidden = false - frame.faded = true - frame.fading_in = false - end - + frame.fadeInfo.finishedFunc = just_fade_func + frame.fadeInfo.finishedArg1 = frame + elseif (_upper (tipo) == "ALPHAANIM") then local value = velocidade @@ -799,23 +816,22 @@ end frame.fading_in = false frame.fadeInfo.finishedFunc = nil end - UIFrameFadeOut (frame, 0.3, currentApha, value) + _UIFrameFadeOut (frame, 0.3, currentApha, value) frame.fading_out = true - frame.fadeInfo.finishedFunc = - function() - frame.fading_out = false - end + + frame.fadeInfo.finishedFunc = anim_OUT_alpha_func + frame.fadeInfo.finishedArg1 = frame + else if (frame.fading_out) then --> se tiver uma animação de hidar em andamento se for true frame.fading_out = false frame.fadeInfo.finishedFunc = nil end - UIFrameFadeIn (frame, 0.3, currentApha, value) + _UIFrameFadeIn (frame, 0.3, currentApha, value) frame.fading_in = true - frame.fadeInfo.finishedFunc = - function() - frame.fading_in = false - end + + frame.fadeInfo.finishedFunc = anim_IN_alpha_func + frame.fadeInfo.finishedArg1 = frame end elseif (_upper (tipo) == "ALPHA") then --> setando um alpha determinado diff --git a/core/windows.lua b/core/windows.lua index 2aaf294f..d443babf 100644 --- a/core/windows.lua +++ b/core/windows.lua @@ -426,13 +426,14 @@ local barra = self.barras[index] if (barra) then if (index <= X) then + --gump:Fade (barra, 0) gump:Fade (barra, "out") else - if (self.baseframe.isStretching or self.auto_resize) then + --if (self.baseframe.isStretching or self.auto_resize) then gump:Fade (barra, 1) - else - gump:Fade (barra, "in", 0.1) - end + --else + -- gump:Fade (barra, 1) + --end end end end @@ -461,7 +462,8 @@ if (self.baseframe.isStretching or self.auto_resize) then gump:Fade (barra, 1) else - gump:Fade (barra, "in", 0.1) + --gump:Fade (barra, "in", 0.1) + gump:Fade (barra, 1) end end end diff --git a/functions/skins.lua b/functions/skins.lua index 26addfce..0a4792ba 100644 --- a/functions/skins.lua +++ b/functions/skins.lua @@ -292,7 +292,7 @@ local _ icon_file = [[Interface\AddOns\Details\images\classes_small_alpha]], start_after_icon = false, }, - attribute_text = {enabled = true, side = 1, text_size = 11, anchor = {-18, 4}, text_color = {1, 1, 1, 1}, text_face = "Arial Narrow"}, + attribute_text = {enabled = true, side = 1, text_size = 11, anchor = {-18, 5}, text_color = {1, 1, 1, 1}, text_face = "Arial Narrow"}, }, callback = function (skin, instance, just_updating) @@ -981,11 +981,12 @@ local _ menu_anchor = {16, 2, side = 2}, menu_anchor_down = {16, -2}, plugins_grow_direction = 1, + menu_icons = {shadow = true}, - attribute_text = {enabled = true, anchor = {-20, 4}, text_face = "Friz Quadrata TT", text_size = 10, text_color = {1, 1, 1, .7}, side = 1, shadow = true}, + attribute_text = {enabled = true, anchor = {-20, 5}, text_face = "Accidental Presidency", text_size = 12, text_color = {1, 1, 1, .7}, side = 1, shadow = true}, hide_icon = true, - desaturated_menu = true, + desaturated_menu = false, bg_alpha = 0.51, bg_r = 0.3294, @@ -994,14 +995,14 @@ local _ show_statusbar = false, row_info = { - texture = "Details Serenity", + texture = "Skyline", texture_class_colors = true, alpha = 0.80, texture_background_class_color = false, texture_background = "Details D'ictum", fixed_texture_color = {0, 0, 0}, fixed_texture_background_color = {0, 0, 0, 0.471}, - space = {left = 1, right = -2, between = 1}, + space = {left = 1, right = -2, between = 0}, backdrop = {enabled = true, size = 4, color = {0, 0, 0, 1}, texture = "Details BarBorder 2"}, icon_file = [[Interface\AddOns\Details\images\classes_small_alpha]], start_after_icon = false, @@ -1010,7 +1011,7 @@ local _ wallpaper = { overlay = {1, 1, 1}, width = 256, - texcoord = {49/1024, 305/1024, 646/1024, 774/1024}, + texcoord = {49/1024, 305/1024, 774/1024, 646/1024}, enabled = true, anchor = "all", height = 128, @@ -1071,7 +1072,7 @@ local _ menu_anchor_down = {16, -2}, plugins_grow_direction = 1, - attribute_text = {enabled = true, anchor = {-20, 4}, text_face = "Friz Quadrata TT", text_size = 10, text_color = {1, 1, 1, .7}, side = 1, shadow = true}, + attribute_text = {enabled = true, anchor = {-20, 5}, text_face = "Accidental Presidency", text_size = 12, text_color = {1, 1, 1, .7}, side = 1, shadow = true}, hide_icon = true, desaturated_menu = true, diff --git a/gumps/janela_options.lua b/gumps/janela_options.lua index 13371036..efc22380 100644 --- a/gumps/janela_options.lua +++ b/gumps/janela_options.lua @@ -7,14 +7,14 @@ 4 - row settings 5 - row texts 6 - window settings - 7 - left menu + 7 - title bar buttons 8 - row advanced 9 - wallpaper 10 - performance teaks 11 - raid tools 12 - plugins 13 - profiles - 14 - attribute text + 14 - title bar text 15 - custom spells 16 - data for charts 17 - auto hide settings @@ -3070,7 +3070,7 @@ end --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --- General Settings - attribute ~14 +-- General Settings - title bar text ~14 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- function window:CreateFrame14() @@ -5874,6 +5874,7 @@ function window:CreateFrame6() s:SetBackdrop (slider_backdrop) s:SetBackdropColor (unpack (slider_backdrop_color)) s:SetThumbSize (50) + s.fine_tuning = 0.011 frame6.WindowScaleSlider:SetHook ("OnValueChange", function (self, instance, amount) instance:SetWindowScale (amount, true) diff --git a/gumps/janela_principal.lua b/gumps/janela_principal.lua index 50404059..6abf664f 100644 --- a/gumps/janela_principal.lua +++ b/gumps/janela_principal.lua @@ -4726,6 +4726,7 @@ local build_mode_list = function (self, elapsed) CoolTip:SetWallpaper (1, [[Interface\SPELLBOOK\Spellbook-Page-1]], menu_wallpaper_tex, menu_wallpaper_color, true) CoolTip:SetBackdrop (1, _detalhes.tooltip_backdrop, nil, _detalhes.tooltip_border_color) + CoolTip:SetBackdrop (2, _detalhes.tooltip_backdrop, nil, _detalhes.tooltip_border_color) show_anti_overlap (instancia, self, "top") @@ -6328,6 +6329,10 @@ end GameCooltip.buttonOver = true self.instance.baseframe.cabecalho.button_mouse_over = true + if (self.instance.desaturated_menu) then + self:GetNormalTexture():SetDesaturated (false) + end + GameCooltip:Reset() GameCooltip:SetType ("menu") GameCooltip:SetOption ("ButtonsYMod", -2) @@ -6360,6 +6365,10 @@ end local reset_button_onleave = function (self) OnLeaveMainWindow (self.instance, self) + if (self.instance.desaturated_menu) then + self:GetNormalTexture():SetDesaturated (true) + end + hide_anti_overlap (self.instance.baseframe.anti_menu_overlap) GameCooltip.buttonOver = false @@ -6394,6 +6403,10 @@ end local close_button_onenter = function (self) OnEnterMainWindow (self.instance, self, 3) + if (self.instance.desaturated_menu) then + self:GetNormalTexture():SetDesaturated (false) + end + local GameCooltip = GameCooltip GameCooltip.buttonOver = true @@ -6440,6 +6453,10 @@ end local close_button_onleave = function (self) OnLeaveMainWindow (self.instance, self, 3) + if (self.instance.desaturated_menu) then + self:GetNormalTexture():SetDesaturated (true) + end + hide_anti_overlap (self.instance.baseframe.anti_menu_overlap) GameCooltip.buttonOver = false @@ -6937,7 +6954,7 @@ function gump:CriaCabecalho (baseframe, instancia) --- ~delete ~erase +-- ~delete ~erase ~reset --> RESETAR HISTORICO ---------------------------------------------------------------------------------------------------------------------------------------------------- baseframe.cabecalho.reset = CreateFrame ("button", "DetailsClearSegmentsButton" .. instancia.meu_id, baseframe) @@ -6966,43 +6983,4 @@ function gump:CriaCabecalho (baseframe, instancia) --> fim botão reset ---[[ - ---> teste com shadows - ---modo - local shadow = baseframe.cabecalho.modo_selecao:CreateTexture ("sombra", "background") - shadow:SetPoint ("center", baseframe.cabecalho.modo_selecao.widget, "center") - shadow:SetTexture ("Interface\\PetBattles\\PetBattle-SelectedPetGlow") - shadow:SetVertexColor (0, 0, 0, 1) - shadow:SetSize (22, 22) ---segmentos - local shadow = baseframe.cabecalho.segmento:CreateTexture ("sombra2", "background") - shadow:SetPoint ("center", baseframe.cabecalho.segmento.widget, "center") - shadow:SetTexture ("Interface\\PetBattles\\PetBattle-SelectedPetGlow") - shadow:SetVertexColor (0, 0, 0, 1) - shadow:SetSize (22, 22) ---atributo - local shadow = baseframe.cabecalho.atributo:CreateTexture ("sombra3", "background") - shadow:SetPoint ("center", baseframe.cabecalho.atributo.widget, "center") - shadow:SetTexture ("Interface\\PetBattles\\PetBattle-SelectedPetGlow") - shadow:SetVertexColor (0, 0, 0, 1) - shadow:SetSize (12, 16) - shadow:SetTexCoord (0.0, 0.0, 0.3, 0.3, 0.7, 0.7, 1, 1) ---report - local shadow = baseframe.cabecalho.report:CreateTexture ("sombra4", "background") - shadow:SetPoint ("center", baseframe.cabecalho.report.widget, "center") - shadow:SetTexture ("Interface\\PetBattles\\PetBattle-SelectedPetGlow") - shadow:SetVertexColor (0, 0, 0, 1) - shadow:SetSize (22, 22) - ---baseToolbar.novo, baseToolbar.fechar, baseToolbar.reset}baseToolbar.modo_selecao, baseToolbar.segmento, baseToolbar.atributo, baseToolbar.report - - local shadow = UIParent:CreateTexture ("SombraTeste", "background") - shadow:SetPoint ("center", UIParent, "center", 200, 0) - shadow:SetTexture ("Interface\\PetBattles\\PetBattle-SelectedPetGlow") - shadow:SetVertexColor (0, 0, 0, 1) - shadow:SetSize (300, 300) - shadow:SetTexCoord (0.0, 0.0, 0.3, 0.3, 0.7, 0.7, 1, 1) - --]] end diff --git a/images/skins/elvui.tga b/images/skins/elvui.tga index 69bf0d6e7d052ded7b8574770531b66e54822d27..d9635a8618fae8aabe496e93cbef57b4c5193162 100644 GIT binary patch delta 32299 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ξa|__PiF@>-*|Jf|+(a&dB_q&tQ>_*JR714N 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