- fixed issue with panic mode where sometimes his effects isn't triggered.

- added new small tutorial bubles for common tasks.
- tutorials now are account wide and not trigger on new characters.
- small improvements on details framework.
- added new hook type: HOOK_BUFF, triggered with buff or debuff parser.
- new skin: simple gray.
- added a minimap button and a button on addons interface panel.
new Api: instance:LockInstance (boolean)
This commit is contained in:
terciob19
2014-01-02 11:21:22 -02:00
parent c4776d562d
commit c29e9875de
28 changed files with 1701 additions and 216 deletions
+359
View File
@@ -0,0 +1,359 @@
--[[
Name: DBIcon-1.0
Revision: $Rev: 30 $
Author(s): Rabbit (rabbit.magtheridon@gmail.com)
Description: Allows addons to register to recieve a lightweight minimap icon as an alternative to more heavy LDB displays.
Dependencies: LibStub
License: GPL v2 or later.
]]
--[[
Copyright (C) 2008-2011 Rabbit
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
]]
-----------------------------------------------------------------------
-- DBIcon-1.0
--
-- Disclaimer: Most of this code was ripped from Barrel but fixed, streamlined
-- and cleaned up a lot so that it no longer sucks.
--
local DBICON10 = "LibDBIcon-1.0"
local DBICON10_MINOR = tonumber(("$Rev: 30 $"):match("(%d+)"))
if not LibStub then error(DBICON10 .. " requires LibStub.") end
local ldb = LibStub("LibDataBroker-1.1", true)
if not ldb then error(DBICON10 .. " requires LibDataBroker-1.1.") end
local lib = LibStub:NewLibrary(DBICON10, DBICON10_MINOR)
if not lib then return end
lib.disabled = lib.disabled or nil
lib.objects = lib.objects or {}
lib.callbackRegistered = lib.callbackRegistered or nil
lib.notCreated = lib.notCreated or {}
function lib:IconCallback(event, name, key, value, dataobj)
if lib.objects[name] then
if key == "icon" then
lib.objects[name].icon:SetTexture(value)
elseif key == "iconCoords" then
lib.objects[name].icon:UpdateCoord()
elseif key == "iconR" then
local _, g, b = lib.objects[name].icon:GetVertexColor()
lib.objects[name].icon:SetVertexColor(value, g, b)
elseif key == "iconG" then
local r, _, b = lib.objects[name].icon:GetVertexColor()
lib.objects[name].icon:SetVertexColor(r, value, b)
elseif key == "iconB" then
local r, g = lib.objects[name].icon:GetVertexColor()
lib.objects[name].icon:SetVertexColor(r, g, value)
end
end
end
if not lib.callbackRegistered then
ldb.RegisterCallback(lib, "LibDataBroker_AttributeChanged__icon", "IconCallback")
ldb.RegisterCallback(lib, "LibDataBroker_AttributeChanged__iconCoords", "IconCallback")
ldb.RegisterCallback(lib, "LibDataBroker_AttributeChanged__iconR", "IconCallback")
ldb.RegisterCallback(lib, "LibDataBroker_AttributeChanged__iconG", "IconCallback")
ldb.RegisterCallback(lib, "LibDataBroker_AttributeChanged__iconB", "IconCallback")
lib.callbackRegistered = true
end
-- Tooltip code ripped from StatBlockCore by Funkydude
local function getAnchors(frame)
local x, y = frame:GetCenter()
if not x or not y then return "CENTER" end
local hhalf = (x > UIParent:GetWidth()*2/3) and "RIGHT" or (x < UIParent:GetWidth()/3) and "LEFT" or ""
local vhalf = (y > UIParent:GetHeight()/2) and "TOP" or "BOTTOM"
return vhalf..hhalf, frame, (vhalf == "TOP" and "BOTTOM" or "TOP")..hhalf
end
local function onEnter(self)
if self.isMoving then return end
local obj = self.dataObject
if obj.OnTooltipShow then
GameTooltip:SetOwner(self, "ANCHOR_NONE")
GameTooltip:SetPoint(getAnchors(self))
obj.OnTooltipShow(GameTooltip)
GameTooltip:Show()
elseif obj.OnEnter then
obj.OnEnter(self)
end
end
local function onLeave(self)
local obj = self.dataObject
GameTooltip:Hide()
if obj.OnLeave then obj.OnLeave(self) end
end
--------------------------------------------------------------------------------
local onClick, onMouseUp, onMouseDown, onDragStart, onDragStop, onDragEnd, updatePosition
do
local minimapShapes = {
["ROUND"] = {true, true, true, true},
["SQUARE"] = {false, false, false, false},
["CORNER-TOPLEFT"] = {false, false, false, true},
["CORNER-TOPRIGHT"] = {false, false, true, false},
["CORNER-BOTTOMLEFT"] = {false, true, false, false},
["CORNER-BOTTOMRIGHT"] = {true, false, false, false},
["SIDE-LEFT"] = {false, true, false, true},
["SIDE-RIGHT"] = {true, false, true, false},
["SIDE-TOP"] = {false, false, true, true},
["SIDE-BOTTOM"] = {true, true, false, false},
["TRICORNER-TOPLEFT"] = {false, true, true, true},
["TRICORNER-TOPRIGHT"] = {true, false, true, true},
["TRICORNER-BOTTOMLEFT"] = {true, true, false, true},
["TRICORNER-BOTTOMRIGHT"] = {true, true, true, false},
}
function updatePosition(button)
local angle = math.rad(button.db and button.db.minimapPos or button.minimapPos or 225)
local x, y, q = math.cos(angle), math.sin(angle), 1
if x < 0 then q = q + 1 end
if y > 0 then q = q + 2 end
local minimapShape = GetMinimapShape and GetMinimapShape() or "ROUND"
local quadTable = minimapShapes[minimapShape]
if quadTable[q] then
x, y = x*80, y*80
else
local diagRadius = 103.13708498985 --math.sqrt(2*(80)^2)-10
x = math.max(-80, math.min(x*diagRadius, 80))
y = math.max(-80, math.min(y*diagRadius, 80))
end
button:SetPoint("CENTER", Minimap, "CENTER", x, y)
end
end
function onClick(self, b) if self.dataObject.OnClick then self.dataObject.OnClick(self, b) end end
function onMouseDown(self) self.isMouseDown = true; self.icon:UpdateCoord() end
function onMouseUp(self) self.isMouseDown = false; self.icon:UpdateCoord() end
do
local function onUpdate(self)
local mx, my = Minimap:GetCenter()
local px, py = GetCursorPosition()
local scale = Minimap:GetEffectiveScale()
px, py = px / scale, py / scale
if self.db then
self.db.minimapPos = math.deg(math.atan2(py - my, px - mx)) % 360
else
self.minimapPos = math.deg(math.atan2(py - my, px - mx)) % 360
end
updatePosition(self)
end
function onDragStart(self)
self:LockHighlight()
self.isMouseDown = true
self.icon:UpdateCoord()
self:SetScript("OnUpdate", onUpdate)
self.isMoving = true
GameTooltip:Hide()
end
end
function onDragStop(self)
self:SetScript("OnUpdate", nil)
self.isMouseDown = false
self.icon:UpdateCoord()
self:UnlockHighlight()
self.isMoving = nil
end
local defaultCoords = {0, 1, 0, 1}
local function updateCoord(self)
local coords = self:GetParent().dataObject.iconCoords or defaultCoords
local deltaX, deltaY = 0, 0
if not self:GetParent().isMouseDown then
deltaX = (coords[2] - coords[1]) * 0.05
deltaY = (coords[4] - coords[3]) * 0.05
end
self:SetTexCoord(coords[1] + deltaX, coords[2] - deltaX, coords[3] + deltaY, coords[4] - deltaY)
end
local function createButton(name, object, db)
local button = CreateFrame("Button", "LibDBIcon10_"..name, Minimap)
button.dataObject = object
button.db = db
button:SetFrameStrata("MEDIUM")
button:SetSize(31, 31)
button:SetFrameLevel(8)
button:RegisterForClicks("anyUp")
button:RegisterForDrag("LeftButton")
button:SetHighlightTexture("Interface\\Minimap\\UI-Minimap-ZoomButton-Highlight")
local overlay = button:CreateTexture(nil, "OVERLAY")
overlay:SetSize(53, 53)
overlay:SetTexture("Interface\\Minimap\\MiniMap-TrackingBorder")
overlay:SetPoint("TOPLEFT")
local background = button:CreateTexture(nil, "BACKGROUND")
background:SetSize(20, 20)
background:SetTexture("Interface\\Minimap\\UI-Minimap-Background")
background:SetPoint("TOPLEFT", 7, -5)
local icon = button:CreateTexture(nil, "ARTWORK")
icon:SetSize(17, 17)
icon:SetTexture(object.icon)
icon:SetPoint("TOPLEFT", 7, -6)
button.icon = icon
button.isMouseDown = false
local r, g, b = icon:GetVertexColor()
icon:SetVertexColor(object.iconR or r, object.iconG or g, object.iconB or b)
icon.UpdateCoord = updateCoord
icon:UpdateCoord()
button:SetScript("OnEnter", onEnter)
button:SetScript("OnLeave", onLeave)
button:SetScript("OnClick", onClick)
if not db or not db.lock then
button:SetScript("OnDragStart", onDragStart)
button:SetScript("OnDragStop", onDragStop)
end
button:SetScript("OnMouseDown", onMouseDown)
button:SetScript("OnMouseUp", onMouseUp)
lib.objects[name] = button
if lib.loggedIn then
updatePosition(button)
if not db or not db.hide then button:Show()
else button:Hide() end
end
end
-- We could use a metatable.__index on lib.objects, but then we'd create
-- the icons when checking things like :IsRegistered, which is not necessary.
local function check(name)
if lib.notCreated[name] then
createButton(name, lib.notCreated[name][1], lib.notCreated[name][2])
lib.notCreated[name] = nil
end
end
lib.loggedIn = lib.loggedIn or false
-- Wait a bit with the initial positioning to let any GetMinimapShape addons
-- load up.
if not lib.loggedIn then
local f = CreateFrame("Frame")
f:SetScript("OnEvent", function()
for _, object in pairs(lib.objects) do
updatePosition(object)
if not lib.disabled and (not object.db or not object.db.hide) then object:Show()
else object:Hide() end
end
lib.loggedIn = true
f:SetScript("OnEvent", nil)
f = nil
end)
f:RegisterEvent("PLAYER_LOGIN")
end
local function getDatabase(name)
return lib.notCreated[name] and lib.notCreated[name][2] or lib.objects[name].db
end
function lib:Register(name, object, db)
if not object.icon then error("Can't register LDB objects without icons set!") end
if lib.objects[name] or lib.notCreated[name] then error("Already registered, nubcake.") end
if not lib.disabled and (not db or not db.hide) then
createButton(name, object, db)
else
lib.notCreated[name] = {object, db}
end
end
function lib:Lock(name)
if not lib:IsRegistered(name) then return end
if lib.objects[name] then
lib.objects[name]:SetScript("OnDragStart", nil)
lib.objects[name]:SetScript("OnDragStop", nil)
end
local db = getDatabase(name)
if db then db.lock = true end
end
function lib:Unlock(name)
if not lib:IsRegistered(name) then return end
if lib.objects[name] then
lib.objects[name]:SetScript("OnDragStart", onDragStart)
lib.objects[name]:SetScript("OnDragStop", onDragStop)
end
local db = getDatabase(name)
if db then db.lock = nil end
end
function lib:Hide(name)
if not lib.objects[name] then return end
lib.objects[name]:Hide()
end
function lib:Show(name)
if lib.disabled then return end
check(name)
lib.objects[name]:Show()
updatePosition(lib.objects[name])
end
function lib:IsRegistered(name)
return (lib.objects[name] or lib.notCreated[name]) and true or false
end
function lib:Refresh(name, db)
if lib.disabled then return end
check(name)
local button = lib.objects[name]
if db then button.db = db end
updatePosition(button)
if not button.db or not button.db.hide then
button:Show()
else
button:Hide()
end
if not button.db or not button.db.lock then
button:SetScript("OnDragStart", onDragStart)
button:SetScript("OnDragStop", onDragStop)
else
button:SetScript("OnDragStart", nil)
button:SetScript("OnDragStop", nil)
end
end
function lib:GetMinimapButton(name)
return lib.objects[name]
end
function lib:EnableLibrary()
lib.disabled = nil
for name, object in pairs(lib.objects) do
if not object.db or not object.db.hide then
object:Show()
updatePosition(object)
end
end
for name, data in pairs(lib.notCreated) do
if not data.db or not data.db.hide then
createButton(name, data[1], data[2])
lib.notCreated[name] = nil
end
end
end
function lib:DisableLibrary()
lib.disabled = true
for name, object in pairs(lib.objects) do
object:Hide()
end
end
@@ -0,0 +1,66 @@
assert(LibStub, "LibDataBroker-1.1 requires LibStub")
assert(LibStub:GetLibrary("CallbackHandler-1.0", true), "LibDataBroker-1.1 requires CallbackHandler-1.0")
local lib, oldminor = LibStub:NewLibrary("LibDataBroker-1.1", 3)
if not lib then return end
oldminor = oldminor or 0
lib.callbacks = lib.callbacks or LibStub:GetLibrary("CallbackHandler-1.0"):New(lib)
lib.attributestorage, lib.namestorage, lib.proxystorage = lib.attributestorage or {}, lib.namestorage or {}, lib.proxystorage or {}
local attributestorage, namestorage, callbacks = lib.attributestorage, lib.namestorage, lib.callbacks
if oldminor < 2 then
lib.domt = {
__metatable = "access denied",
__index = function(self, key) return attributestorage[self] and attributestorage[self][key] end,
}
end
if oldminor < 3 then
lib.domt.__newindex = function(self, key, value)
if not attributestorage[self] then attributestorage[self] = {} end
if attributestorage[self][key] == value then return end
attributestorage[self][key] = value
local name = namestorage[self]
if not name then return end
callbacks:Fire("LibDataBroker_AttributeChanged", name, key, value, self)
callbacks:Fire("LibDataBroker_AttributeChanged_"..name, name, key, value, self)
callbacks:Fire("LibDataBroker_AttributeChanged_"..name.."_"..key, name, key, value, self)
callbacks:Fire("LibDataBroker_AttributeChanged__"..key, name, key, value, self)
end
end
if oldminor < 2 then
function lib:NewDataObject(name, dataobj)
if self.proxystorage[name] then return end
if dataobj then
assert(type(dataobj) == "table", "Invalid dataobj, must be nil or a table")
self.attributestorage[dataobj] = {}
for i,v in pairs(dataobj) do
self.attributestorage[dataobj][i] = v
dataobj[i] = nil
end
end
dataobj = setmetatable(dataobj or {}, self.domt)
self.proxystorage[name], self.namestorage[dataobj] = dataobj, name
self.callbacks:Fire("LibDataBroker_DataObjectCreated", name, dataobj)
return dataobj
end
end
if oldminor < 1 then
function lib:DataObjectIterator()
return pairs(self.proxystorage)
end
function lib:GetDataObjectByName(dataobjectname)
return self.proxystorage[dataobjectname]
end
function lib:GetNameByDataObject(dataobject)
return self.namestorage[dataobject]
end
end
+2
View File
@@ -10,5 +10,7 @@
<Include file="LibSharedMedia-3.0\lib.xml" />
<Include file="NickTag-1.0\NickTag-1.0.xml" />
<Script file="LibDataBroker-1.1\LibDataBroker-1.1.lua"/>
<Script file="LibDBIcon-1.0\LibDBIcon-1.0.lua"/>
<Script file="LibGraph-2.0\LibGraph-2.0.lua"/>
</Ui>
+3 -3
View File
@@ -8,9 +8,9 @@
_ = nil
_detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
_detalhes.userversion = "v1.8.0"
_detalhes.version = "Alpha 012"
_detalhes.realversion = 12
_detalhes.userversion = "v1.8.3"
_detalhes.version = "Alpha 013"
_detalhes.realversion = 13
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> initialization stuff
+59 -9
View File
@@ -187,16 +187,67 @@ end
end
------------------------------------------------------------------------------------------------------------------------
function _detalhes:InstanciaFadeBarras (instancia, segmento)
local _fadeType, _fadeSpeed = _unpack (_detalhes.row_fade_in)
if (segmento) then
if (instancia.segmento == segmento) then
function _detalhes:InstanciaFadeBarras (instancia, segmento)
local _fadeType, _fadeSpeed = _unpack (_detalhes.row_fade_in)
if (segmento) then
if (instancia.segmento == segmento) then
return gump:Fade (instancia, _fadeType, _fadeSpeed, "barras")
end
else
return gump:Fade (instancia, _fadeType, _fadeSpeed, "barras")
end
else
return gump:Fade (instancia, _fadeType, _fadeSpeed, "barras")
end
end
-- reabre todas as instancias
function _detalhes:ReabrirTodasInstancias (temp)
for index = #_detalhes.tabela_instancias, 1, -1 do
local instancia = _detalhes:GetInstance (index)
instancia:AtivarInstancia (temp)
end
end
function _detalhes:LockInstance (flag)
if (type (flag) == "boolean") then
self.isLocked = not flag
end
if (self.isLocked) then
self.isLocked = false
if (self.baseframe) then
self.baseframe.isLocked = false
self.baseframe.lock_button.label:SetText (Loc ["STRING_LOCK_WINDOW"])
self.baseframe.lock_button:SetWidth (self.baseframe.lock_button.label:GetStringWidth()+2)
gump:Fade (self.baseframe.resize_direita, 0)
gump:Fade (self.baseframe.resize_esquerda, 0)
self.baseframe.lock_button:ClearAllPoints()
self.baseframe.lock_button:SetPoint ("right", self.baseframe.resize_direita, "left", -1, 1.5)
end
else
self.isLocked = true
if (self.baseframe) then
self.baseframe.isLocked = true
self.baseframe.lock_button.label:SetText (Loc ["STRING_UNLOCK_WINDOW"])
self.baseframe.lock_button:SetWidth (self.baseframe.lock_button.label:GetStringWidth()+2)
self.baseframe.lock_button:ClearAllPoints()
self.baseframe.lock_button:SetPoint ("bottomright", self.baseframe, "bottomright", -3, 0)
gump:Fade (self.baseframe.resize_direita, 1)
gump:Fade (self.baseframe.resize_esquerda, 1)
end
end
end
function _detalhes:TravasInstancias()
for index, instancia in ipairs (_detalhes.tabela_instancias) do
instancia:LockInstance (true)
end
end
function _detalhes:DestravarInstancias()
for index, instancia in ipairs (_detalhes.tabela_instancias) do
instancia:LockInstance (false)
end
end
--> oposto do desativar, ela apenas volta a mostrar a janela
function _detalhes:AtivarInstancia (temp)
@@ -680,7 +731,7 @@ end
nova_instancia.row_texture_class_colors = true
nova_instancia.row_textL_class_colors = false
nova_instancia.row_textR_class_colors = false
nova_instancia.row_textL_outline = false
nova_instancia.row_textL_outline = true
nova_instancia.row_textR_outline = false
nova_instancia.fixed_row_texture_color = {0, 0, 0}
nova_instancia.fixed_row_text_color = {1, 1, 1}
@@ -706,7 +757,6 @@ end
nova_instancia.icons = {true, true, true, true}
--cria a janela da instância
--local _janela, _header, _window, _slider, _footer = gump:CriaJanelaPrincipal (ID, nova_instancia, true) --gump:NovaJanelaPrincipal (ID, nova_instancia, true)
local _baseframe, _bgframe, _bgframe_display, _scrollframe = gump:CriaJanelaPrincipal (ID, nova_instancia, true)
nova_instancia.baseframe = _baseframe
+28 -18
View File
@@ -502,32 +502,16 @@
--> panic mode
if (_detalhes.segments_panic_mode and _detalhes.in_combat) then
if (_detalhes.segments_panic_mode and _detalhes.can_panic_mode) then
if (_detalhes.tabela_vigente.is_boss) then
_detalhes.tabela_historico = _detalhes.historico:NovoHistorico()
end
end
--> Limpa instâncias
for _, esta_instancia in _ipairs (_detalhes.tabela_instancias) do
--> detona a janela do Solo Mode
esta_instancia.barras = nil
esta_instancia.showing = nil
--> apaga os frames
esta_instancia.scroll = nil
esta_instancia.baseframe = nil
esta_instancia.bgframe = nil
esta_instancia.bgdisplay = nil
esta_instancia.freeze_icon = nil
esta_instancia.freeze_texto = nil
esta_instancia.agrupada_a = nil
esta_instancia.grupada_pos = nil
esta_instancia.agrupado = nil
if (esta_instancia.StatusBar.left) then
esta_instancia.StatusBarSaved = {
["left"] = esta_instancia.StatusBar.left.real_name or "NONE",
@@ -536,9 +520,35 @@
["options"] = esta_instancia.StatusBar.options
}
end
--> erase all widgets frames
esta_instancia.scroll = nil
esta_instancia.baseframe = nil
esta_instancia.bgframe = nil
esta_instancia.bgdisplay = nil
esta_instancia.freeze_icon = nil
esta_instancia.freeze_texto = nil
esta_instancia.barras = nil
esta_instancia.showing = nil
esta_instancia.agrupada_a = nil
esta_instancia.grupada_pos = nil
esta_instancia.agrupado = nil
esta_instancia._version = nil
esta_instancia.h_baixo = nil
esta_instancia.h_esquerda = nil
esta_instancia.h_direita = nil
esta_instancia.h_cima = nil
esta_instancia.botao_separar = nil
esta_instancia.alert = nil
esta_instancia.StatusBar = nil
esta_instancia.consolidateFrame = nil
esta_instancia.consolidateButtonTexture = nil
esta_instancia.consolidateButton = nil
esta_instancia.lastIcon = nil
end
end
+20
View File
@@ -104,8 +104,10 @@
--> hooks
local _hook_cooldowns = false
local _hook_deaths = false
local _hook_buffs = false
local _hook_cooldowns_container = _detalhes.hooks ["HOOK_COOLDOWN"]
local _hook_deaths_container = _detalhes.hooks ["HOOK_DEATH"]
local _hook_buffs_container = _detalhes.hooks ["HOOK_BUFF"]
@@ -692,6 +694,7 @@
------------------------------------------------------------------------------------------------
--> buff uptime
if (_recording_buffs_and_debuffs) then
-- jade spirit doesn't send who_name, that's a shame. --print (spellname, who_name, alvo_name)
if (who_name == alvo_name and raid_members_cache [who_serial] and _in_combat) then
--> call record buffs uptime
--[[not tail call, need to fix this]] parser:add_buff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, "BUFF_UPTIME_IN")
@@ -1283,6 +1286,16 @@
este_jogador.buff_uptime_targets.shadow = shadow.buff_uptime_targets
este_jogador.buff_uptime_spell_tables.shadow = shadow.buff_uptime_spell_tables
end
------------------------------------------------------------------------------------------------
--> hook
if (_hook_buffs) then
--> send event to registred functions
for _, func in _ipairs (_hook_buffs_container) do
func (nil, token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, in_out)
end
end
------------------------------------------------------------------------------------------------
--> add amount
@@ -2601,6 +2614,7 @@
--> leave combat start save tables
if (_detalhes.in_combat) then
_detalhes:SairDoCombate()
_detalhes.can_panic_mode = true
end
return _detalhes:SaveData()
@@ -2758,6 +2772,12 @@
else
_hook_deaths = false
end
if (_detalhes.hooks ["HOOK_BUFF"].enabled) then
_hook_buffs = true
else
_hook_buffs = false
end
return _detalhes:ClearParserCache()
end
+6
View File
@@ -191,6 +191,9 @@
--|TTexturePath: size X: size Y: point offset Y X : texture size : coordx1 L : coordx2 R : coordy1 T : coordy2 B |t
-- left click: 0.0019531:0.1484375:0.4257813:0.6210938 right click: 0.0019531:0.1484375:0.6269531:0.8222656
_detalhes.OnEnterMainWindow (frame.child.instance)
local passou = 0
frame:SetScript ("OnUpdate", function (self, elapsed)
passou = passou + elapsed
@@ -211,6 +214,9 @@
--> on leave
local OnLeave = function (frame)
_detalhes.OnLeaveMainWindow (frame.child.instance)
if (_detalhes.popup.active) then
local passou = 0
frame:SetScript ("OnUpdate", function (self, elapsed)
+14 -2
View File
@@ -124,14 +124,26 @@
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> internal functions
function DetailsToolbarButtonOnEnter (button)
--[[global]] function DetailsToolbarButtonOnEnter (button)
local lower_instance = _detalhes:GetLowerInstanceNumber()
if (lower_instance) then
_detalhes.OnEnterMainWindow (_detalhes:GetInstance (lower_instance), button, 3)
end
if (button.tooltip) then
GameCooltip:Reset()
GameCooltip:AddLine (button.tooltip)
GameCooltip:ShowCooltip (button, "tooltip")
end
end
function DetailsToolbarButtonOnLeave (button)
--[[global]] function DetailsToolbarButtonOnLeave (button)
local lower_instance = _detalhes:GetLowerInstanceNumber()
if (lower_instance) then
_detalhes.OnLeaveMainWindow (_detalhes:GetInstance (lower_instance), button, 3)
end
if (button.tooltip) then
_detalhes.popup:ShowMe (false)
end
+87 -3
View File
@@ -149,7 +149,6 @@
return _detalhes:ScheduleTimer ("SaveMainWindowPosition", 1, self)
end
-- credits to ckknight (http://www.curseforge.com/profiles/ckknight/)
local _scale = self.baseframe:GetEffectiveScale()
local _UIscale = _UIParent:GetScale()
local mostrando = self.mostrando
@@ -182,7 +181,6 @@
function _detalhes:RestoreMainWindowPosition (pre_defined)
-- credits to ckknight (http://www.curseforge.com/profiles/ckknight/)
local _scale = self.baseframe:GetEffectiveScale()
local _UIscale = _UIParent:GetScale()
@@ -210,7 +208,6 @@
x = x or 0
y = y or 0
-- credits to ckknight (http://www.curseforge.com/profiles/ckknight/)
local _scale = self.baseframe:GetEffectiveScale()
local _UIscale = _UIParent:GetScale()
@@ -570,3 +567,90 @@
end
end
end
do
--[1] criar nova instancia
--[2] esticar janela
--[3] resize e trava
--[4] shortcut frame
--[5] micro displays
--[6] snap windows
function _detalhes:run_tutorial()
local lower_instance = _detalhes:GetLowerInstanceNumber()
if (lower_instance) then
local instance = _detalhes:GetInstance (lower_instance)
if (not _detalhes.tutorial.alert_frames [1]) then
_detalhes.MicroButtonAlert.Text:SetText (Loc ["STRING_MINITUTORIAL_1"])
_detalhes.MicroButtonAlert:SetPoint ("bottom", instance.baseframe.cabecalho.novo, "top", 0, 16)
_detalhes.MicroButtonAlert:SetHeight (200)
_detalhes.MicroButtonAlert:Show()
_detalhes.tutorial.alert_frames [1] = true
elseif (not _detalhes.tutorial.alert_frames [2]) then
_detalhes.MicroButtonAlert.Text:SetText (Loc ["STRING_MINITUTORIAL_2"])
_detalhes.MicroButtonAlert:SetPoint ("bottom", instance.baseframe.button_stretch, "top", 0, 15)
instance.baseframe.button_stretch:Show()
instance.baseframe.button_stretch:SetAlpha (1)
_detalhes.MicroButtonAlert:Show()
_detalhes.tutorial.alert_frames [2] = true
elseif (not _detalhes.tutorial.alert_frames [3]) then
_detalhes.MicroButtonAlert.Text:SetText (Loc ["STRING_MINITUTORIAL_3"])
_detalhes.MicroButtonAlert:SetPoint ("bottom", instance.baseframe.resize_direita, "top", -8, 16)
_detalhes.OnEnterMainWindow (instance)
instance.baseframe.button_stretch:SetAlpha (0)
_detalhes.MicroButtonAlert:Show()
_detalhes.tutorial.alert_frames [3] = true
elseif (not _detalhes.tutorial.alert_frames [4]) then
_detalhes.MicroButtonAlert.Text:SetText (Loc ["STRING_MINITUTORIAL_4"])
_detalhes.MicroButtonAlert:SetPoint ("bottom", instance.baseframe, "center", 0, 16)
_detalhes.MicroButtonAlert:Show()
_detalhes.tutorial.alert_frames [4] = true
elseif (not _detalhes.tutorial.alert_frames [5]) then
_detalhes.MicroButtonAlert.Text:SetText (Loc ["STRING_MINITUTORIAL_5"])
_detalhes.MicroButtonAlert:SetPoint ("bottom", instance.baseframe.rodape.top_bg, "top", 0, 16)
_detalhes.MicroButtonAlert:Show()
_detalhes.MicroButtonAlert:SetHeight (220)
_detalhes.tutorial.alert_frames [5] = true
elseif (not _detalhes.tutorial.alert_frames [6]) then
_detalhes.MicroButtonAlert.Text:SetText (Loc ["STRING_MINITUTORIAL_6"])
_detalhes.MicroButtonAlert:SetPoint ("bottom", instance.baseframe.barra_direita, "center", -24, 16)
_detalhes.MicroButtonAlert:SetHeight (200)
_detalhes.MicroButtonAlert:Show()
_detalhes.tutorial.alert_frames [6] = true
end
end
--
_detalhes:ScheduleTimer ("delay_tutorial", 60)
end
function _detalhes:delay_tutorial()
--verificar algo?
_detalhes:run_tutorial()
end
function _detalhes:StartTutorial()
--
if (_G ["DetailsWelcomeWindow"] and _G ["DetailsWelcomeWindow"]:IsShown()) then
return _detalhes:ScheduleTimer ("StartTutorial", 10)
end
--
_detalhes:ScheduleTimer ("delay_tutorial", 20)
end
end
+36 -2
View File
@@ -189,6 +189,19 @@ local ButtonMetaFunctions = {}
return
end
end
--> text align
local smember_textalign = function (_object, _value)
if (_value == "left" or _value == "<") then
_object.button.text:SetPoint ("left", _object.button, "left", 2, 0)
_object.capsule_textalign = "left"
elseif (_value == "center" or _value == "|") then
_object.button.text:SetPoint ("center", _object.button, "center", 0, 0)
_object.capsule_textalign = "center"
elseif (_value == "right" or _value == ">") then
_object.button.text:SetPoint ("right", _object.button, "right", -2, 0)
_object.capsule_textalign = "right"
end
end
local set_members_function_index = {
["tooltip"] = smember_tooltip,
@@ -203,6 +216,7 @@ local ButtonMetaFunctions = {}
["textsize"] = smember_textsize,
["texture"] = smember_texture,
["locked"] = smember_locked,
["textalign"] = smember_textalign,
}
ButtonMetaFunctions.__newindex = function (_table, _key, _value)
@@ -540,7 +554,17 @@ local ButtonMetaFunctions = {}
end
end
button.text:SetPoint ("center", button,"center", 1, -1)
if (button.MyObject.capsule_textalign) then
if (button.MyObject.capsule_textalign == "left") then
button.text:SetPoint ("left", button, "left", 3, -1)
elseif (button.MyObject.capsule_textalign == "center") then
button.text:SetPoint ("center", button, "center", 1, -1)
elseif (button.MyObject.capsule_textalign == "right") then
button.text:SetPoint ("right", button, "right", -1, -1)
end
else
button.text:SetPoint ("center", button,"center", 1, -1)
end
button.mouse_down = GetTime()
local x, y = GetCursorPosition()
@@ -595,7 +619,17 @@ local ButtonMetaFunctions = {}
end
end
button.text:SetPoint ("center", button,"center", 0, 0)
if (button.MyObject.capsule_textalign) then
if (button.MyObject.capsule_textalign == "left") then
button.text:SetPoint ("left", button, "left", 2, 0)
elseif (button.MyObject.capsule_textalign == "center") then
button.text:SetPoint ("center", button, "center", 0, 0)
elseif (button.MyObject.capsule_textalign == "right") then
button.text:SetPoint ("right", button, "right", -2, 0)
end
else
button.text:SetPoint ("center", button,"center", 0, 0)
end
if (button.MyObject.container.isMoving) then
button.MyObject.container:StopMovingOrSizing()
+99 -19
View File
@@ -90,9 +90,12 @@ function DetailsCreateCoolTip()
["NoLastSelectedBar"] = true,
["SubMenuIsTooltip"] = true,
["LeftBorderSize"] = true,
["RightBorderSize"] = true
["RightBorderSize"] = true,
["HeighMod"] = true,
["IconBlendMode"] = true,
["IconBlendModeHover"] = true,
}
CoolTip.OptionsTable = {
["IconSize"] = nil,
["HeightAnchorMod"] = nil,
@@ -122,7 +125,10 @@ function DetailsCreateCoolTip()
["NoLastSelectedBar"] = nil,
["SubMenuIsTooltip"] = nil,
["LeftBorderSize"] = nil,
["RightBorderSize"] = nil
["RightBorderSize"] = nil,
["HeighMod"] = nil,
["IconBlendMode"] = nil,
["IconBlendModeHover"] = nil,
}
--cprops
@@ -152,6 +158,7 @@ function DetailsCreateCoolTip()
local frame2 = CreateFrame ("Frame", "CoolTipFrame2", UIParent, "CooltipMainFrameTemplate")
tinsert (UISpecialFrames, "CoolTipFrame2")
gump:CreateFlashAnimation (frame2)
frame2:SetClampedToScreen (true)
frame2:SetPoint ("bottomleft", frame1, "bottomright")
@@ -377,7 +384,7 @@ function DetailsCreateCoolTip()
--> serach key: ~onenter
botao:SetScript ("OnEnter", function()
if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2) then
if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2 and not botao.isDiv) then
CoolTip.active = true
CoolTip.mouseOver = true
@@ -385,6 +392,12 @@ function DetailsCreateCoolTip()
frame2:SetScript ("OnUpdate", nil)
botao.background:Show()
if (CoolTip.OptionsTable.IconBlendModeHover) then
botao.leftIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendModeHover)
else
botao.leftIcon:SetBlendMode ("BLEND")
end
if (CoolTip.IndexesSub [botao.index] and CoolTip.IndexesSub [botao.index] > 0) then
if (CoolTip.OptionsTable.SubMenuIsTooltip) then
@@ -412,13 +425,21 @@ function DetailsCreateCoolTip()
end)
botao:SetScript ("OnLeave", function()
if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2) then
if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2 and not botao.isDiv) then
CoolTip.active = false
CoolTip.mouseOver = false
botao:SetScript ("OnUpdate", nil)
botao.background:Hide()
if (CoolTip.OptionsTable.IconBlendMode) then
botao.leftIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
botao.rightIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
else
botao.leftIcon:SetBlendMode ("BLEND")
botao.rightIcon:SetBlendMode ("BLEND")
end
elapsedTime = 0
frame1:SetScript ("OnUpdate", OnLeaveUpdateButton)
--CoolTip:HideSub (i)
@@ -460,6 +481,12 @@ function DetailsCreateCoolTip()
botao.background:Show()
if (CoolTip.OptionsTable.IconBlendModeHover) then
botao.leftIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendModeHover)
else
botao.leftIcon:SetBlendMode ("BLEND")
end
frame1:SetScript ("OnUpdate", nil)
frame2:SetScript ("OnUpdate", nil)
@@ -477,6 +504,14 @@ function DetailsCreateCoolTip()
botao.background:Hide()
if (CoolTip.OptionsTable.IconBlendMode) then
botao.leftIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
botao.rightIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
else
botao.leftIcon:SetBlendMode ("BLEND")
botao.rightIcon:SetBlendMode ("BLEND")
end
elapsedTime = 0
frame2:SetScript ("OnUpdate", OnLeaveUpdateButtonSec)
else
@@ -595,14 +630,19 @@ function DetailsCreateCoolTip()
menuButton.leftIcon:SetWidth (leftIconTable [2])
menuButton.leftIcon:SetHeight (leftIconTable [3])
menuButton.leftIcon:SetTexCoord (leftIconTable [4], leftIconTable [5], leftIconTable [6], leftIconTable [7])
local ColorR, ColorG, ColorB, ColorA = gump:ParseColors (leftIconTable [8])
menuButton.leftIcon:SetVertexColor (ColorR, ColorG, ColorB, ColorA)
--menuButton.leftText:SetPoint ("left", menuButton.leftIcon, "right", 3, 0)
if (CoolTip.OptionsTable.IconBlendMode) then
menuButton.leftIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
else
menuButton.leftIcon:SetBlendMode ("BLEND")
end
else
menuButton.leftIcon:SetTexture (nil)
menuButton.leftIcon:SetWidth (3)
menuButton.leftIcon:SetHeight (3)
--menuButton.leftText:SetPoint ("left", menuButton.leftIcon, "left", -5, 0)
end
--> right icon
@@ -611,14 +651,19 @@ function DetailsCreateCoolTip()
menuButton.rightIcon:SetWidth (rightIconTable [2])
menuButton.rightIcon:SetHeight (rightIconTable [3])
menuButton.rightIcon:SetTexCoord (rightIconTable [4], rightIconTable [5], rightIconTable [6], rightIconTable [7])
local ColorR, ColorG, ColorB, ColorA = gump:ParseColors (rightIconTable [8])
menuButton.rightIcon:SetVertexColor (ColorR, ColorG, ColorB, ColorA)
--menuButton.rightText:SetPoint ("right", menuButton.rightIcon, "left", -3, 0)
if (CoolTip.OptionsTable.IconBlendMode) then
menuButton.rightIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
else
menuButton.rightIcon:SetBlendMode ("BLEND")
end
else
menuButton.rightIcon:SetTexture (nil)
menuButton.rightIcon:SetWidth (1)
menuButton.rightIcon:SetHeight (1)
--menuButton.rightText:SetPoint ("right", menuButton.rightIcon, "right", 5, 0)
end
--> overwrite icon size
@@ -1022,6 +1067,14 @@ function DetailsCreateCoolTip()
end
end
function CoolTip:CreateDivBar (button)
button.divbar = button:CreateTexture (nil, "overlay")
button.divbar:SetTexture ("Interface\\TALENTFRAME\\talent-main")
button.divbar:SetTexCoord (0, 0.7890625, 0.248046875, 0.264625)
button.divbar:SetHeight (3)
button.divbar:SetDesaturated (true)
end
function CoolTip:monta_cooltip (host, instancia, options, sub_menus, icones, tamanho1, tamanho2, font, fontsize)
if (CoolTip.Indexes == 0) then
@@ -1104,6 +1157,15 @@ function DetailsCreateCoolTip()
spacing = CoolTip.OptionsTable.YSpacingMod
end
if (not CoolTip.OptionsTable.FixedWidth) then
if (CoolTip.OptionsTable.MinWidth) then
local w = frame1.w + 24
frame1:SetWidth (math.max (w, CoolTip.OptionsTable.MinWidth))
else
frame1:SetWidth (frame1.w + 24)
end
end
--> normalize height of all rows
for i = 1, CoolTip.Indexes do
local menuButton = frame1.Lines [i]
@@ -1120,21 +1182,36 @@ function DetailsCreateCoolTip()
menuButton:SetPoint ("right", frame1, "right")
menuButton:EnableMouse (true)
end
if (not CoolTip.OptionsTable.FixedWidth) then
if (CoolTip.OptionsTable.MinWidth) then
local w = frame1.w + 24
frame1:SetWidth (math.max (w, CoolTip.OptionsTable.MinWidth))
if (menuButton.leftText:GetText() == "$div") then
menuButton.leftText:SetText ("")
menuButton.isDiv = true
if (not menuButton.divbar) then
CoolTip:CreateDivBar (menuButton)
else
menuButton.divbar:Show()
end
menuButton.divbar:SetPoint ("left", menuButton, "left", frame1:GetWidth()*0.10, 0)
menuButton.divbar:SetPoint ("right", menuButton, "right", -frame1:GetWidth()*0.10, 0)
else
frame1:SetWidth (frame1.w + 24)
if (menuButton.divbar) then
menuButton.divbar:Hide()
menuButton.isDiv = false
end
end
end
if (CoolTip.OptionsTable.FixedHeight) then
frame1:SetHeight (CoolTip.OptionsTable.FixedHeight)
else
frame1:SetHeight (_math_max ( (frame1.hHeight * CoolTip.Indexes) + 12 + (-spacing), 22 ))
local mod = CoolTip.OptionsTable.HeighMod or 0
frame1:SetHeight (_math_max ( (frame1.hHeight * CoolTip.Indexes) + 12 + (-spacing) + mod, 22 ))
end
frame1:ClearAllPoints()
@@ -1266,6 +1343,8 @@ function DetailsCreateCoolTip()
end
CoolTip.Host = frame
CoolTip.frame1:SetFrameLevel (frame:GetFrameLevel()+1)
--> defaults
myPoint = myPoint or CoolTip.OptionsTable.MyAnchor or "bottom"
@@ -1736,7 +1815,8 @@ function DetailsCreateCoolTip()
end
if (color) then
fontstring:SetTextColor (unpack (color))
local r, g, b, a = gump:ParseColors (color)
fontstring:SetTextColor (r, g, b, a)
end
local face, size, flags = fontstring:GetFont()
+21 -4
View File
@@ -91,15 +91,32 @@ function gump:NewColor (_colorname, _colortable, _green, _blue, _alpha)
return true
end
function gump:IsHtmlColor (color)
return gump.alias_text_colors [color]
end
local tn = tonumber
function gump:ParseColors (_arg1, _arg2, _arg3, _arg4)
if (_type (_arg1) == "table") then
_arg1, _arg2, _arg3, _arg4 = _unpack (_arg1)
elseif (_type (_arg1) == "string") then
local color = gump.alias_text_colors [_arg1]
if (color) then
_arg1, _arg2, _arg3, _arg4 = _unpack (color)
if (string.find (_arg1, "#")) then
_arg1 = _arg1:gsub ("#","")
if (string.len (_arg1) == 8) then --alpha
_arg1, _arg2, _arg3, _arg4 = tn ("0x" .. _arg1:sub (3, 4))/255, tn ("0x" .. _arg1:sub (5, 6))/255, tn ("0x" .. _arg1:sub (7, 8))/255, tn ("0x" .. _arg1:sub (1, 2))/255
else
_arg1, _arg2, _arg3, _arg4 = tn ("0x" .. _arg1:sub (1, 2))/255, tn ("0x" .. _arg1:sub (3, 4))/255, tn ("0x" .. _arg1:sub (5, 6))/255, 1
end
else
_arg1, _arg2, _arg3, _arg4 = _unpack (gump.alias_text_colors.none)
local color = gump.alias_text_colors [_arg1]
if (color) then
_arg1, _arg2, _arg3, _arg4 = _unpack (color)
else
_arg1, _arg2, _arg3, _arg4 = _unpack (gump.alias_text_colors.none)
end
end
end
+231 -1
View File
@@ -290,6 +290,31 @@ local APIFrameFunctions
return _rawget (self, "have_tooltip")
end
-- frame levels
function PanelMetaFunctions:GetFrameLevel()
return self.widget:GetFrameLevel()
end
function PanelMetaFunctions:SetFrameLevel (level, frame)
if (not frame) then
return self.widget:SetFrameLevel (level)
else
local framelevel = frame:GetFrameLevel (frame) + level
return self.widget:SetFrameLevel (framelevel)
end
end
-- frame stratas
function PanelMetaFunctions:SetFrameStrata()
return self.widget:GetFrameStrata()
end
function PanelMetaFunctions:SetFrameStrata (strata)
if (_type (strata) == "table") then
self.widget:SetFrameStrata (strata:GetFrameStrata())
else
self.widget:SetFrameStrata (strata)
end
end
-- enable and disable gradients
function PanelMetaFunctions:DisableGradient()
self.GradientEnabled = false
@@ -524,4 +549,209 @@ function gump:NewPanel (parent, container, name, member, w, h, backdrop, backdro
end
return PanelObject
end
end
------------color pick
local color_pick_func = function()
local r, g, b = ColorPickerFrame:GetColorRGB()
local a = OpacitySliderFrame:GetValue()
ColorPickerFrame:dcallback (r, g, b, a)
end
local color_pick_func_cancel = function()
ColorPickerFrame:SetColorRGB (unpack (ColorPickerFrame.previousValues))
local r, g, b = ColorPickerFrame:GetColorRGB()
local a = OpacitySliderFrame:GetValue()
ColorPickerFrame:dcallback (r, g, b, a)
end
function gump:ColorPick (frame, r, g, b, alpha, callback)
ColorPickerFrame:SetPoint ("bottomleft", frame, "topright", 0, 0)
ColorPickerFrame.dcallback = callback
ColorPickerFrame.func = color_pick_func
ColorPickerFrame.opacityFunc = color_pick_func
ColorPickerFrame.cancelFunc = color_pick_func_cancel
ColorPickerFrame.opacity = alpha
ColorPickerFrame.hasOpacity = alpha and true
ColorPickerFrame.previousValues = {r, g, b}
ColorPickerFrame:SetParent (UIParent)
ColorPickerFrame:SetFrameStrata ("tooltip")
ColorPickerFrame:SetColorRGB (r, g, b)
ColorPickerFrame:Show()
end
------------icon pick
function gump:IconPick (callback)
if (not gump.IconPickFrame) then
gump.IconPickFrame = CreateFrame ("frame", "DetailsIconPickFrame", UIParent)
tinsert (UISpecialFrames, "DetailsIconPickFrame")
gump.IconPickFrame:SetPoint ("center", UIParent, "center")
gump.IconPickFrame:SetWidth (350)
gump.IconPickFrame:SetHeight (200)
gump.IconPickFrame:EnableMouse (true)
gump.IconPickFrame:SetMovable (true)
gump.IconPickFrame:SetBackdrop ({bgFile = "Interface\\AddOns\\Details\\images\\background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border",
tile = true, tileSize = 32, edgeSize = 32, insets = {left = 5, right = 5, top = 5, bottom = 5}})
gump.IconPickFrame:SetBackdropBorderColor (170/255, 170/255, 170/255)
gump.IconPickFrame:SetBackdropColor (24/255, 24/255, 24/255, .8)
gump.IconPickFrame:SetFrameLevel (1)
gump.IconPickFrame.emptyFunction = function() end
gump.IconPickFrame.callback = gump.IconPickFrame.emptyFunction
--> close button
local close_button = CreateFrame ("button", nil, gump.IconPickFrame, "UIPanelCloseButton")
close_button:SetWidth (32)
close_button:SetHeight (32)
close_button:SetPoint ("TOPRIGHT", gump.IconPickFrame, "TOPRIGHT", -3, 20)
close_button:SetFrameLevel (close_button:GetFrameLevel()+2)
local MACRO_ICON_FILENAMES = {}
gump.IconPickFrame:SetScript ("OnShow", function()
MACRO_ICON_FILENAMES = {};
MACRO_ICON_FILENAMES[1] = "INV_MISC_QUESTIONMARK";
local index = 2;
local numFlyouts = 0;
for i = 1, GetNumSpellTabs() do
local tab, tabTex, offset, numSpells, _ = GetSpellTabInfo(i);
offset = offset + 1;
local tabEnd = offset + numSpells;
for j = offset, tabEnd - 1 do
--to get spell info by slot, you have to pass in a pet argument
local spellType, ID = GetSpellBookItemInfo(j, "player");
if (spellType ~= "FUTURESPELL") then
local spellTexture = strupper(GetSpellBookItemTexture(j, "player"));
if ( not string.match( spellTexture, "INTERFACE\\BUTTONS\\") ) then
MACRO_ICON_FILENAMES[index] = gsub( spellTexture, "INTERFACE\\ICONS\\", "");
index = index + 1;
end
end
if (spellType == "FLYOUT") then
local _, _, numSlots, isKnown = GetFlyoutInfo(ID);
if (isKnown and numSlots > 0) then
for k = 1, numSlots do
local spellID, overrideSpellID, isKnown = GetFlyoutSlotInfo(ID, k)
if (isKnown) then
MACRO_ICON_FILENAMES[index] = gsub( strupper(GetSpellTexture(spellID)), "INTERFACE\\ICONS\\", "");
index = index + 1;
end
end
end
end
end
end
GetMacroIcons (MACRO_ICON_FILENAMES)
GetMacroItemIcons (MACRO_ICON_FILENAMES )
end)
gump.IconPickFrame:SetScript ("OnHide", function()
MACRO_ICON_FILENAMES = nil;
collectgarbage()
end)
gump.IconPickFrame.buttons = {}
local OnClickFunction = function (index)
local button = gump.IconPickFrame.buttons [index]
local texture = button:GetNormalTexture()
gump.IconPickFrame.callback ("INTERFACE\\ICONS\\"..MACRO_ICON_FILENAMES [button.IconID])
end
for i = 0, 9 do
local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i+1, i+1, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..(i+1))
newcheck:SetPoint ("topleft", gump.IconPickFrame, "topleft", 12+(i*30), -13)
newcheck:SetID (i+1)
gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck
end
for i = 11, 20 do
local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i, i, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..i)
newcheck:SetPoint ("topleft", "DetailsIconPickFrameButton"..(i-10), "bottomleft", 0, -1)
newcheck:SetID (i)
gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck
end
for i = 21, 30 do
local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i, i, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..i)
newcheck:SetPoint ("topleft", "DetailsIconPickFrameButton"..(i-10), "bottomleft", 0, -1)
newcheck:SetID (i)
gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck
end
for i = 31, 40 do
local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i, i, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..i)
newcheck:SetPoint ("topleft", "DetailsIconPickFrameButton"..(i-10), "bottomleft", 0, -1)
newcheck:SetID (i)
gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck
end
for i = 41, 50 do
local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i, i, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..i)
newcheck:SetPoint ("topleft", "DetailsIconPickFrameButton"..(i-10), "bottomleft", 0, -1)
newcheck:SetID (i)
gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck
end
for i = 51, 60 do
local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i, i, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..i)
newcheck:SetPoint ("topleft", "DetailsIconPickFrameButton"..(i-10), "bottomleft", 0, -1)
newcheck:SetID (i)
gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck
end
local scroll = CreateFrame ("ScrollFrame", "DetailsIconPickFrameScroll", gump.IconPickFrame, "ListScrollFrameTemplate")
local ChecksFrame_Update = function (self)
--self = self or MacroPopupFrame;
local numMacroIcons = #MACRO_ICON_FILENAMES;
local macroPopupIcon, macroPopupButton;
local macroPopupOffset = FauxScrollFrame_GetOffset (scroll);
local index;
-- Icon list
local texture;
for i = 1, 60 do
macroPopupIcon = _G["DetailsIconPickFrameButton"..i];
macroPopupButton = _G["DetailsIconPickFrameButton"..i];
index = (macroPopupOffset * 10) + i;
texture = MACRO_ICON_FILENAMES [index]
if ( index <= numMacroIcons and texture ) then
macroPopupButton:ChangeIcon ("INTERFACE\\ICONS\\"..texture, "INTERFACE\\ICONS\\"..texture, "INTERFACE\\ICONS\\"..texture, "INTERFACE\\ICONS\\"..texture)
macroPopupButton.IconID = index
macroPopupButton:Show();
else
macroPopupButton:Hide();
end
end
-- Scrollbar stuff
FauxScrollFrame_Update (scroll, ceil (numMacroIcons / 10) , 5, 20 );
end
scroll:SetPoint ("topleft", gump.IconPickFrame, "topleft", -18, -10)
scroll:SetWidth (330)
scroll:SetHeight (178)
scroll:SetScript ("OnVerticalScroll", function (self, offset) FauxScrollFrame_OnVerticalScroll (scroll, offset, 20, ChecksFrame_Update) end)
scroll.update = ChecksFrame_Update
gump.IconPickFrameScroll = scroll
gump.IconPickFrame:Hide()
end
gump.IconPickFrame:Show()
gump.IconPickFrameScroll.update (gump.IconPickFrameScroll)
gump.IconPickFrame.callback = callback or gump.IconPickFrame.emptyFunction
end
+42 -4
View File
@@ -89,7 +89,17 @@ local ImageMetaFunctions = {}
end
--> texture
local smember_texture = function (_object, _value)
return _object.image:SetTexture (_value)
if (type (_value) == "table") then
local r, g, b, a = gump:ParseColors (_value)
_object.image:SetTexture (r, g, b, a or 1)
else
if (gump:IsHtmlColor (_value)) then
local r, g, b, a = gump:ParseColors (_value)
_object.image:SetTexture (r, g, b, a or 1)
else
_object.image:SetTexture (_value)
end
end
end
--> width
local smember_width = function (_object, _value)
@@ -105,8 +115,25 @@ local ImageMetaFunctions = {}
end
--> color
local smember_color = function (_object, _value)
local _value1, _value2, _value3 = gump:ParseColors (_value)
return _object.image:SetTexture (_value1, _value2, _value3)
if (type (_value) == "table") then
local r, g, b, a = gump:ParseColors (_value)
_object.image:SetTexture (r,g,b, a or 1)
else
if (gump:IsHtmlColor (_value)) then
local r, g, b, a = gump:ParseColors (_value)
_object.image:SetTexture (r, g, b, a or 1)
else
_object.image:SetTexture (_value)
end
end
end
--> desaturated
local smember_desaturated = function (_object, _value)
if (_value) then
_object:SetDesaturated (true)
else
_object:SetDesaturated (false)
end
end
local set_members_function_index = {
@@ -117,6 +144,7 @@ local ImageMetaFunctions = {}
["height"] = smember_height,
["texture"] = smember_texture,
["color"] = smember_color,
["blackwhite"] = smember_desaturated,
}
ImageMetaFunctions.__newindex = function (_table, _key, _value)
@@ -225,7 +253,17 @@ function gump:NewImage (parent, container, name, member, w, h, texture, layer)
ImageObject.image:SetHeight (h)
end
if (texture) then
ImageObject.image:SetTexture (texture)
if (type (texture) == "table") then
local r, g, b = gump:ParseColors (texture)
ImageObject.image:SetTexture (r,g,b)
else
if (gump:IsHtmlColor (texture)) then
local r, g, b = gump:ParseColors (texture)
ImageObject.image:SetTexture (r, g, b)
else
ImageObject.image:SetTexture (texture)
end
end
end
setmetatable (ImageObject, ImageMetaFunctions)
+82 -5
View File
@@ -10,6 +10,8 @@ local _type = type --> lua local
local _math_floor = math.floor --> lua local
local loadstring = loadstring --> lua local
local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" )
local cleanfunction = function() end
local APISliderFunctions = false
local SliderMetaFunctions = {}
@@ -74,9 +76,13 @@ local SliderMetaFunctions = {}
return _rawget (_object, "lockdown")
end
--> fractional
local gmember_fractional = function (_object, _value)
local gmember_fractional = function (_object)
return _rawget (_object, "useDecimals")
end
--> value
local gmember_value = function (_object)
return _object()
end
local get_members_function_index = {
["tooltip"] = gmember_tooltip,
@@ -85,6 +91,7 @@ local SliderMetaFunctions = {}
["height"] = gmember_height,
["locked"] = gmember_locked,
["fractional"] = gmember_fractional,
["value"] = gmember_value,
}
SliderMetaFunctions.__index = function (_table, _member_requested)
@@ -148,6 +155,10 @@ local SliderMetaFunctions = {}
local smember_fractional = function (_object, _value)
return _rawset (_object, "useDecimals", _value)
end
--> value
local smember_value = function (_object, _value)
_object (_value)
end
local set_members_function_index = {
["tooltip"] = smember_tooltip,
@@ -158,6 +169,7 @@ local SliderMetaFunctions = {}
["height"] = smember_height,
["locked"] = smember_locked,
["fractional"] = smember_fractional,
["value"] = smember_value,
}
SliderMetaFunctions.__newindex = function (_table, _key, _value)
@@ -340,6 +352,59 @@ local SliderMetaFunctions = {}
end
function SliderMetaFunctions:TypeValue()
if (not self.isSwitch) then
if (not SliderMetaFunctions.editbox_typevalue) then
local editbox = CreateFrame ("EditBox", "DetailsFrameworkSliderEditBox", UIParent)
editbox:SetSize (40, 20)
editbox:SetJustifyH ("center")
editbox:SetBackdrop ({bgFile = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]],
edgeFile = "Interface\\Buttons\\UI-SliderBar-Border", --edgeFile = [[Interface\Tooltips\UI-Tooltip-Border]],
tile = true, edgeSize = 8, tileSize = 5})
editbox:SetFontObject ("GameFontHighlightSmall")
editbox:SetScript ("OnEnterPressed", function()
editbox:ClearFocus()
editbox:Hide()
editbox:GetParent().MyObject.value = tonumber (editbox:GetText())
editbox:GetParent().MyObject.typing_value = false
end)
editbox:SetScript ("OnEscapePressed", function()
editbox:ClearFocus()
editbox:Hide()
editbox:GetParent().MyObject.typing_value = false
end)
SliderMetaFunctions.editbox_typevalue = editbox
end
self.typing_value = true
SliderMetaFunctions.editbox_typevalue:SetSize (self.width, self.height)
SliderMetaFunctions.editbox_typevalue:SetPoint ("center", self.widget, "center")
SliderMetaFunctions.editbox_typevalue:SetFocus()
SliderMetaFunctions.editbox_typevalue:SetParent (self.widget)
SliderMetaFunctions.editbox_typevalue:SetFrameLevel (self.widget:GetFrameLevel()+1)
if (self.useDecimals) then
SliderMetaFunctions.editbox_typevalue:SetText (tostring (string.format ("%.1f", self.value)))
else
SliderMetaFunctions.editbox_typevalue:SetText (tostring (math.floor (self.value)))
end
SliderMetaFunctions.editbox_typevalue:HighlightText()
SliderMetaFunctions.editbox_typevalue:Show()
end
end
local OnMouseDown = function (slider, button)
if (button == "RightButton") then
slider.MyObject:TypeValue()
end
end
local OnHide = function (slider)
if (slider.MyObject.OnHideHook) then
local interrupt = slider.MyObject.OnHideHook (slider)
@@ -347,6 +412,12 @@ local SliderMetaFunctions = {}
return
end
end
if (slider.MyObject.typing_value) then
SliderMetaFunctions.editbox_typevalue:ClearFocus()
SliderMetaFunctions.editbox_typevalue:SetText ("")
slider.MyObject.typing_valu = false
end
end
local OnShow = function (slider)
@@ -378,7 +449,7 @@ local SliderMetaFunctions = {}
else
slider.amt:SetText (math.floor (amt))
end
slider.MyObject.value = amt
slider.MyObject.ivalue = amt
end
@@ -411,7 +482,7 @@ function gump:NewSwitch (parent, container, name, member, w, h, ltext, rtext, de
end
--> build frames
local slider = gump:NewSlider (parent, container, name, member, w, h, 1, 2, 1, defaultv)
local slider = gump:NewSlider (parent, container, name, member, w, h, 1, 2, 1, defaultv, nil, true)
slider:SetBackdrop ({edgeFile = "Interface\\Buttons\\UI-SliderBar-Border", edgeSize = 8,
bgFile = [[Interface\AddOns\Details\images\background]], insets = {left = 3, right = 3, top = 5, bottom = 5}})
@@ -442,7 +513,7 @@ function gump:NewSwitch (parent, container, name, member, w, h, ltext, rtext, de
return slider
end
function gump:NewSlider (parent, container, name, member, w, h, min, max, step, defaultv, isDecemal)
function gump:NewSlider (parent, container, name, member, w, h, min, max, step, defaultv, isDecemal, isSwitch)
--> early checks
if (not name) then
@@ -515,7 +586,7 @@ function gump:NewSlider (parent, container, name, member, w, h, min, max, step,
SliderObject.slider:SetMinMaxValues (min, max)
SliderObject.slider:SetValueStep (step)
SliderObject.slider:SetValue (defaultv)
SliderObject.value = defaultv
SliderObject.ivalue = defaultv
--SliderObject.amt = _G [name .. "_Amt"]
--SliderObject.lock = _G [name .. "_LockTexture"]
@@ -532,6 +603,10 @@ function gump:NewSlider (parent, container, name, member, w, h, min, max, step,
SliderObject.slider:SetThumbTexture (SliderObject.thumb)
SliderObject.slider.thumb = SliderObject.thumb
if (not isSwitch) then
SliderObject.have_tooltip = Loc ["STRING_RIGHTCLICK_TYPEVALUE"]
end
SliderObject.amt = SliderObject.slider:CreateFontString (nil, "overlay", "GameFontHighlightSmall")
local amt = defaultv
@@ -555,6 +630,8 @@ function gump:NewSlider (parent, container, name, member, w, h, min, max, step,
SliderObject.slider:SetScript ("OnHide", OnHide)
SliderObject.slider:SetScript ("OnShow", OnShow)
SliderObject.slider:SetScript ("OnValueChanged", OnValueChanged)
SliderObject.slider:SetScript ("OnMouseDown", OnMouseDown)
_setmetatable (SliderObject, SliderMetaFunctions)
+5
View File
@@ -191,6 +191,11 @@ local TextEntryMetaFunctions = {}
end
end
--> select all text
function TextEntryMetaFunctions:SelectAll()
self.editbox:HighlightText()
end
--> set labal description
function TextEntryMetaFunctions:SetLabelText (text)
if (text) then
+4 -4
View File
@@ -5,10 +5,10 @@ do
local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" )
--> Globals
DETAILS_ATTRIBUTE_DAMAGE = 1
DETAILS_ATTRIBUTE_HEAL = 2
DETAILS_ATTRIBUTE_ENERGY = 3
DETAILS_ATTRIBUTE_MISC = 4
--[[global]] DETAILS_ATTRIBUTE_DAMAGE = 1
--[[global]] DETAILS_ATTRIBUTE_HEAL = 2
--[[global]] DETAILS_ATTRIBUTE_ENERGY = 3
--[[global]] DETAILS_ATTRIBUTE_MISC = 4
_detalhes.atributos_capture = {
"damage", --damage done
+2
View File
@@ -7,12 +7,14 @@
--[[global]] DETAILS_HOOK_COOLDOWN = "HOOK_COOLDOWN"
--[[global]] DETAILS_HOOK_DEATH = "HOOK_DEATH"
--[[global]] DETAILS_HOOK_BUFF = "HOOK_BUFF"
local _detalhes = _G._detalhes
local _
_detalhes.hooks ["HOOK_COOLDOWN"] = {}
_detalhes.hooks ["HOOK_DEATH"] = {}
_detalhes.hooks ["HOOK_BUFF"] = {}
function _detalhes:InstallHook (hook_type, func)
+6 -4
View File
@@ -33,8 +33,6 @@ function _detalhes:SaveDataOnLogout()
_detalhes_database.window_clamp = _detalhes.window_clamp
--> text sizes
_detalhes_database.font_sizes = _detalhes.font_sizes
--tutorial
_detalhes_database.tutorial = _detalhes.tutorial
-- max segments
_detalhes_database.segments_amount = _detalhes.segments_amount
_detalhes_database.segments_amount_to_save = _detalhes.segments_amount_to_save
@@ -127,6 +125,9 @@ function _detalhes:SaveDataOnLogout()
_detalhes_global.SpellOverwriteUser = _detalhes.SpellOverwriteUser
--tutorial
_detalhes_global.tutorial = _detalhes.tutorial
return true
end
@@ -225,8 +226,6 @@ end --]]
_detalhes.clear_graphic = _detalhes_database.clear_graphic
--> text sizes
_detalhes.font_sizes = _detalhes_database.font_sizes
--tutorial
_detalhes.tutorial = _detalhes_database.tutorial
-- row animation
_detalhes.use_row_animations = _detalhes_database.use_row_animations
_detalhes.animate_scroll = _detalhes_database.animate_scroll
@@ -336,6 +335,9 @@ end --]]
_detalhes.trash_auto_remove = _detalhes_global.trash_auto_remove
_detalhes.SpellOverwriteUser = _detalhes_global.SpellOverwriteUser or _detalhes.SpellOverwriteUser
--tutorial
_detalhes.tutorial = _detalhes_global.tutorial
else
_detalhes.is_first_run = true
end
+12
View File
@@ -52,4 +52,16 @@ local _
icon_anchor_plugins = {-7, -13},
icon_plugins_size = {19, 18}
})
_detalhes:InstallSkin ("Simply Gray", {
file = [[Interface\AddOns\Details\images\skins\simplygray_skin]],
author = "Details!",
version = "1.0",
site = "unknown",
desc = "a flat skin",
can_change_alpha_head = true,
icon_anchor_main = {-1, -5},
icon_anchor_plugins = {-7, -13},
icon_plugins_size = {19, 18}
})
+170 -129
View File
@@ -68,11 +68,8 @@ end
local COORDS_SLIDER_TOP = {0.00146484375, 0.03173828125, 0.00244140625, 0.03271484375} -- 1 2 33 34
local COORDS_SLIDER_MIDDLE = {0.00146484375, 0.03173828125, 0.03955078125, 0.10107421875} -- 1 40 33 104
--local COORDS_SLIDER_DOWN = {0.00146484375, 0.03173828125, 0.11767578125, 0.14794921875} -- 1 120 33 152
local COORDS_SLIDER_DOWN = {0.00146484375, 0.03173828125, 0.10986328125, 0.14013671875} -- 1 112 33 144
local COORDS_STRETCH = {0.00146484375, 0.03173828125, 0.21435546875, 0.22900390625} -- 1 219 33 235
local COORDS_RESIZE_RIGHT = {0.00146484375, 0.01611328125, 0.24560546875, 0.26025390625} -- 1 251 17 267
local COORDS_RESIZE_LEFT = {0.02001953125, 0.03271484375, 0.24560546875, 0.26025390625} -- 20 251 34 267
@@ -283,24 +280,81 @@ function _detalhes:EsconderScrollBar (sem_animacao, force)
end
end
local function resize_fade (instancia, modo)
local function OnLeaveMainWindow (instancia, self)
if (instancia.modo ~= _detalhes._detalhes_props["MODO_ALONE"] and not instancia.baseframe.isLocked) then
gump:Fade (instancia.baseframe.resize_direita, modo, 1.0)
gump:Fade (instancia.baseframe.resize_esquerda, modo, 1.0)
gump:Fade (instancia.baseframe.lock_button, modo, 1.0)
--> resizes and lock button
gump:Fade (instancia.baseframe.resize_direita, 1)
gump:Fade (instancia.baseframe.resize_esquerda, 1)
gump:Fade (instancia.baseframe.lock_button, 1)
if (_string_lower (modo) == "out") then
--> stretch button
--gump:Fade (instancia.baseframe.button_stretch, -1)
gump:Fade (instancia.baseframe.button_stretch, "ALPHA", 0)
--> snaps
gump:Fade (instancia.botao_separar, 1)
elseif (instancia.baseframe.isLocked) then
gump:Fade (instancia.baseframe.lock_button, 1)
gump:Fade (instancia.baseframe.button_stretch, 1)
end
end
_detalhes.OnLeaveMainWindow = OnLeaveMainWindow
local function OnEnterMainWindow (instancia, self)
if (instancia.modo ~= _detalhes._detalhes_props["MODO_ALONE"] and not instancia.baseframe.isLocked) then
--> resizes and lock button
gump:Fade (instancia.baseframe.resize_direita, 0)
gump:Fade (instancia.baseframe.resize_esquerda, 0)
gump:Fade (instancia.baseframe.lock_button, 0)
--> stretch button
gump:Fade (instancia.baseframe.button_stretch, 0)
--> snaps
if (modo == 0) then
for _, instancia_id in _pairs (instancia.snap) do
if (instancia_id) then
instancia.botao_separar.texture:Show()
instancia.botao_separar.texture:SetTexCoord (unpack (COORDS_UNLOCK_BUTTON))
gump:Fade (instancia.botao_separar.texture, modo, 1.0)
gump:Fade (instancia.botao_separar, modo, 1.0)
gump:Fade (instancia.botao_separar.texture, 0)
gump:Fade (instancia.botao_separar, 0)
break
end
end
end
elseif (instancia.baseframe.isLocked) then
gump:Fade (instancia.baseframe.lock_button, 0)
gump:Fade (instancia.baseframe.button_stretch, 0)
end
end
_detalhes.OnEnterMainWindow = OnEnterMainWindow
local function resize_fade (instancia, modo)
if (instancia.modo ~= _detalhes._detalhes_props["MODO_ALONE"] and not instancia.baseframe.isLocked) then
gump:Fade (instancia.baseframe.resize_direita, modo)
gump:Fade (instancia.baseframe.resize_esquerda, modo)
gump:Fade (instancia.baseframe.lock_button, modo)
if (modo == 0) then
for _, instancia_id in _pairs (instancia.snap) do
if (instancia_id) then
instancia.botao_separar.texture:Show()
instancia.botao_separar.texture:SetTexCoord (unpack (COORDS_UNLOCK_BUTTON))
gump:Fade (instancia.botao_separar.texture, 0)
gump:Fade (instancia.botao_separar, 0)
break
end
end
else
gump:Fade (instancia.botao_separar, "in", 1.0)
gump:Fade (instancia.botao_separar, 1)
end
end
@@ -557,14 +611,16 @@ end
local function BGFrame_scripts (BG, BaseFrame, instancia)
BG:SetScript("OnEnter", function(self)
resize_fade (instancia, "out")
gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
BG:SetScript("OnEnter", function (self)
--resize_fade (instancia, 0) --mostrar
--gump:Fade (BaseFrame.button_stretch, "alpha", 0.6)
OnEnterMainWindow (instancia, self)
end)
BG:SetScript("OnLeave", function(self)
resize_fade (instancia, "in")
gump:Fade (BaseFrame.button_stretch, -1)
BG:SetScript("OnLeave", function (self)
--resize_fade (instancia, 1) --esconder
--gump:Fade (BaseFrame.button_stretch, -1)
OnLeaveMainWindow (instancia, self)
end)
BG:SetScript ("OnMouseDown", function (frame, button)
@@ -614,14 +670,16 @@ local function BFrame_scripts (BaseFrame, instancia)
_detalhes:SendEvent ("DETAILS_INSTANCE_SIZECHANGED", nil, instancia)
end)
BaseFrame:SetScript("OnEnter", function(self)
resize_fade (instancia, "out")
gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
BaseFrame:SetScript("OnEnter", function (self)
--resize_fade (instancia, 0) --mostrar
--gump:Fade (BaseFrame.button_stretch, "alpha", 0.6)
OnEnterMainWindow (instancia, self)
end)
BaseFrame:SetScript("OnLeave", function(self)
resize_fade (instancia, "in")
gump:Fade (BaseFrame.button_stretch, -1)
BaseFrame:SetScript("OnLeave", function (self)
--resize_fade (instancia, 1) --esconder
--gump:Fade (BaseFrame.button_stretch, -1)
OnLeaveMainWindow (instancia, self)
end)
BaseFrame:SetScript ("OnMouseDown", function (frame, button)
@@ -641,14 +699,16 @@ end
local function BackGroundDisplay_scripts (BackGroundDisplay, BaseFrame, instancia)
BackGroundDisplay:SetScript ("OnEnter", function(self)
resize_fade (instancia, "out")
gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
BackGroundDisplay:SetScript ("OnEnter", function (self)
--resize_fade (instancia, 0) --mostrar
--gump:Fade (BaseFrame.button_stretch, "alpha", 0.6)
OnEnterMainWindow (instancia, self)
end)
BackGroundDisplay:SetScript ("OnLeave", function(self)
resize_fade (instancia, "in")
gump:Fade (BaseFrame.button_stretch, -1)
BackGroundDisplay:SetScript ("OnLeave", function (self)
--resize_fade (instancia, 1) --esconder
--gump:Fade (BaseFrame.button_stretch, -1)
OnLeaveMainWindow (instancia, self)
end)
end
@@ -1060,9 +1120,11 @@ local function resize_scripts (resizer, instancia, ScrollBar, side, baseframe)
end
end)
resizer:SetScript ("OnEnter", function(self)
resizer:SetScript ("OnEnter", function (self)
OnEnterMainWindow (instancia, self)
if (instancia.modo ~= _detalhes._detalhes_props["MODO_ALONE"] and not instancia.baseframe.isLocked) then
gump:Fade (self, "out", 0.1)
self.texture:SetBlendMode ("ADD")
self.mostrando = true
@@ -1072,13 +1134,13 @@ local function resize_scripts (resizer, instancia, ScrollBar, side, baseframe)
_G.GameCooltip:SetOption ("NoLastSelectedBar", true)
_G.GameCooltip:SetOwner (resizer)
_G.GameCooltip:ShowCooltip()
end
end)
resizer:SetScript ("OnLeave", function(self)
resizer:SetScript ("OnLeave", function (self)
if (not self.movendo) then
gump:Fade (self, -1, 3.0)
OnLeaveMainWindow (instancia, self)
end
self.texture:SetBlendMode ("BLEND")
@@ -1091,17 +1153,22 @@ end
local function lock_button_scripts (button, instancia)
button:SetScript ("OnEnter", function(self)
OnEnterMainWindow (instancia, self)
if (instancia.modo ~= _detalhes._detalhes_props["MODO_ALONE"]) then
gump:Fade (self, "out", 0.1)
self.label:SetTextColor (1, 1, 1, .6)
self.mostrando = true
end
end)
button:SetScript ("OnLeave", function(self)
gump:Fade (self, -1, 3.0)
self.label:SetTextColor (.3, .3, .3, .4)
OnLeaveMainWindow (instancia, self)
self.label:SetTextColor (.3, .3, .3, .6)
self.mostrando = false
end)
end
@@ -1127,19 +1194,16 @@ local lockFunctionOnClick = function (button)
gump:Fade (BaseFrame.resize_esquerda, 1)
end
end
_detalhes.lock_instance_function = lockFunctionOnClick
local function bota_separar_script (botao, instancia)
botao:SetScript ("OnEnter", function (self)
if (instancia.modo ~= _detalhes._detalhes_props["MODO_ALONE"]) then
gump:Fade (self, "out", 0.1)
self.mostrando = true
end
OnEnterMainWindow (instancia, self)
self.mostrando = true
end)
botao:SetScript ("OnLeave", function (self)
if (not self.movendo) then
gump:Fade (self, "in", 3.0)
end
OnLeaveMainWindow (instancia, self)
self.mostrando = false
end)
end
@@ -1148,8 +1212,9 @@ local function barra_scripts (esta_barra, instancia, i)
esta_barra:SetScript ("OnEnter", function (self)
self.mouse_over = true
resize_fade (instancia, "out")
gump:Fade (instancia.baseframe.button_stretch, "alpha", 0.3)
--resize_fade (instancia, 0) --mostrar
--gump:Fade (instancia.baseframe.button_stretch, "alpha", 0.6)
OnEnterMainWindow (instancia, esta_barra)
instancia:MontaTooltip (self, i)
@@ -1160,10 +1225,11 @@ local function barra_scripts (esta_barra, instancia, i)
self:SetBackdropColor (0.588, 0.588, 0.588, 0.7)
end)
esta_barra:SetScript ("OnLeave", function(self)
esta_barra:SetScript ("OnLeave", function (self)
self.mouse_over = false
resize_fade (instancia, "in")
gump:Fade (instancia.baseframe.button_stretch, -1)
--resize_fade (instancia, 1) --esconder
--gump:Fade (instancia.baseframe.button_stretch, -1)
OnLeaveMainWindow (instancia, self)
_GameTooltip:Hide()
_detalhes.popup:ShowMe (false)
@@ -1262,11 +1328,11 @@ local function button_stretch_scripts (BaseFrame, BackGroundDisplay, instancia)
button:SetScript ("OnEnter", function (self)
self.mouse_over = true
gump:Fade (self, "out")
gump:Fade (self, 0)
end)
button:SetScript ("OnLeave", function (self)
self.mouse_over = false
gump:Fade (self, -1)
gump:Fade (self, "ALPHA", 0)
end)
button:SetScript ("OnMouseDown", function(self)
@@ -1672,7 +1738,7 @@ function CreateAlertFrame (BaseFrame, instancia)
alert_bg:SetFrameStrata ("HIGH")
alert_bg:SetFrameLevel (BaseFrame:GetFrameLevel() + 6)
alert_bg:Hide()
local toptexture = alert_bg:CreateTexture (nil, "background")
toptexture:SetTexture ([[Interface\Challenges\challenges-main]])
--toptexture:SetTexCoord (0.1921484375, 0.523671875, 0.234375, 0.160859375)
@@ -1969,7 +2035,7 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
BaseFrame.lock_button:SetHeight (16)
BaseFrame.lock_button.label = BaseFrame.lock_button:CreateFontString (nil, "overlay", "GameFontNormal")
BaseFrame.lock_button.label:SetPoint ("right", BaseFrame.lock_button, "right")
BaseFrame.lock_button.label:SetTextColor (.3, .3, .3, .4)
BaseFrame.lock_button.label:SetTextColor (.3, .3, .3, .6)
BaseFrame.lock_button.label:SetJustifyH ("right")
BaseFrame.lock_button.label:SetText (Loc ["STRING_LOCK_WINDOW"])
BaseFrame.lock_button:SetWidth (BaseFrame.lock_button.label:GetStringWidth()+2)
@@ -2587,7 +2653,7 @@ function gump:CriaRodape (BaseFrame, instancia)
BaseFrame.rodape.StatusBarCenterAnchor = StatusBarCenterAnchor
--> display frame
BaseFrame.statusbar = _CreateFrame ("frame", nil, BaseFrame.cabecalho.fechar)
BaseFrame.statusbar = CreateFrame ("frame", nil, 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)
@@ -2613,7 +2679,7 @@ function gump:CriaRodape (BaseFrame, instancia)
BaseFrame.statusbar:Hide()
--> frame invisível
BaseFrame.DOWNFrame = _CreateFrame ("frame", nil, BaseFrame)
BaseFrame.DOWNFrame = CreateFrame ("frame", nil, 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)
@@ -2623,7 +2689,7 @@ function gump:CriaRodape (BaseFrame, instancia)
BaseFrame.DOWNFrame:SetMovable (true)
BaseFrame.DOWNFrame:SetResizable (true)
BGFrame_scripts (BaseFrame.DOWNFrame, BaseFrame, instancia)
BGFrame_scripts (BaseFrame.DOWNFrame, BaseFrame, instancia)
end
function _detalhes:CheckConsolidates()
@@ -3024,10 +3090,10 @@ local build_segment_list = function (self, elapsed)
end
local botao_fechar_on_enter = function (self)
gump:Fade (self:GetParent().button_stretch, "alpha", 0.3)
OnEnterMainWindow (self.instancia, self, 3)
end
local botao_fechar_on_leave = function (self)
gump:Fade (self:GetParent().button_stretch, -1)
OnLeaveMainWindow (self.instancia, self, 3)
end
function _detalhes:ChangeSkin (skin_name)
@@ -3120,6 +3186,7 @@ function gump:CriaCabecalho (BaseFrame, instancia)
end
end)
BaseFrame.cabecalho.fechar.instancia = instancia
BaseFrame.cabecalho.fechar:SetText ("x")
BaseFrame.cabecalho.fechar:SetScript ("OnEnter", botao_fechar_on_enter)
BaseFrame.cabecalho.fechar:SetScript ("OnLeave", botao_fechar_on_leave)
@@ -3240,7 +3307,9 @@ function gump:CriaCabecalho (BaseFrame, instancia)
--> Cooltip raw method for enter/leave show/hide
BaseFrame.cabecalho.modo_selecao:SetScript ("OnEnter", function (self)
gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
--gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
OnEnterMainWindow (instancia, self, 3)
_detalhes.popup.buttonOver = true
BaseFrame.cabecalho.button_mouse_over = true
@@ -3270,7 +3339,8 @@ function gump:CriaCabecalho (BaseFrame, instancia)
end)
BaseFrame.cabecalho.modo_selecao:SetScript ("OnLeave", function (self)
gump:Fade (BaseFrame.button_stretch, -1)
--gump:Fade (BaseFrame.button_stretch, -1)
OnLeaveMainWindow (instancia, self, 3)
_detalhes.popup.buttonOver = false
BaseFrame.cabecalho.button_mouse_over = false
@@ -3338,7 +3408,8 @@ function gump:CriaCabecalho (BaseFrame, instancia)
--> Cooltip raw method for show/hide onenter/onhide
BaseFrame.cabecalho.segmento:SetScript ("OnEnter", function (self)
gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
--gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
OnEnterMainWindow (instancia, self, 3)
_detalhes.popup.buttonOver = true
BaseFrame.cabecalho.button_mouse_over = true
@@ -3355,7 +3426,8 @@ function gump:CriaCabecalho (BaseFrame, instancia)
--> Cooltip raw method
BaseFrame.cabecalho.segmento:SetScript ("OnLeave", function (self)
gump:Fade (BaseFrame.button_stretch, -1)
--gump:Fade (BaseFrame.button_stretch, -1)
OnLeaveMainWindow (instancia, self, 3)
_detalhes.popup.buttonOver = false
BaseFrame.cabecalho.button_mouse_over = false
@@ -3391,8 +3463,8 @@ function gump:CriaCabecalho (BaseFrame, instancia)
BaseFrame.cabecalho.atributo.CoolTip = {
Type = "menu", --> the type, menu tooltip tooltipbars
BuildFunc = BuildAttributeMenu, --> called when user mouse over the frame
OnEnterFunc = function() BaseFrame.cabecalho.button_mouse_over = true; gump:Fade (BaseFrame.button_stretch, "alpha", 0.3) end,
OnLeaveFunc = function() BaseFrame.cabecalho.button_mouse_over = false; gump:Fade (BaseFrame.button_stretch, -1) end,
OnEnterFunc = function() BaseFrame.cabecalho.button_mouse_over = true; OnEnterMainWindow (instancia, BaseFrame.cabecalho.atributo, 3) end,
OnLeaveFunc = function() BaseFrame.cabecalho.button_mouse_over = false; OnLeaveMainWindow (instancia, BaseFrame.cabecalho.atributo, 3) end,
FixedValue = instancia,
ShowSpeed = 0.15,
Options = function()
@@ -3410,64 +3482,14 @@ function gump:CriaCabecalho (BaseFrame, instancia)
BaseFrame.cabecalho.report = gump:NewDetailsButton (BaseFrame, _, instancia, _detalhes.Reportar, instancia, nil, 16, 16, [[Interface\COMMON\VOICECHAT-ON]])
BaseFrame.cabecalho.report:SetPoint ("left", BaseFrame.cabecalho.atributo, "right", -6, 0)
BaseFrame.cabecalho.report:SetFrameLevel (BaseFrame.UPFrame:GetFrameLevel()+1)
--[[
BaseFrame.cabecalho.report:SetScript ("OnEnter", function (self)
gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
_detalhes.popup.buttonOver = true
BaseFrame.cabecalho.button_mouse_over = true
local passou = 0
if (_detalhes.popup.active) then
passou = 0.15
end
self:SetScript ("OnUpdate", function (self, elapsed)
passou = passou+elapsed
if (passou > 0.15) then
CoolTip:Reset()
CoolTip:SetType ("menu")
CoolTip:SetFixedParameter (instancia)
CoolTip:SetColor ("main", "transparent")
CoolTip:AddLine (Loc ["STRING_REPORTFRAME_PARTY"], _, 1, "white")
CoolTip:AddMenu (1, instancia.TrocaTabela, -1)
CoolTip:SetOwner (self)
CoolTip:ShowCooltip()
self:SetScript ("OnUpdate", nil)
end
end)
BaseFrame.cabecalho.report:SetScript ("OnEnter", function (self)
OnEnterMainWindow (instancia, self, 3)
end)
BaseFrame.cabecalho.report:SetScript ("OnLeave", function (self)
OnLeaveMainWindow (instancia, self, 3)
end)
BaseFrame.cabecalho.report:SetScript ("OnLeave", function (self)
gump:Fade (BaseFrame.button_stretch, -1)
_detalhes.popup.buttonOver = false
BaseFrame.cabecalho.button_mouse_over = false
if (_detalhes.popup.active) then
local passou = 0
self:SetScript ("OnUpdate", function (self, elapsed)
passou = passou+elapsed
if (passou > 0.3) then
if (not _detalhes.popup.mouseOver and not _detalhes.popup.buttonOver) then
_detalhes.popup:ShowMe (false)
end
self:SetScript ("OnUpdate", nil)
end
end)
else
self:SetScript ("OnUpdate", nil)
end
end)
--]]
--> BOSS INFO ----------------------------------------------------------------------------------------------------------------------------------------------------
--BaseFrame.cabecalho.boss_info = gump:NewDetailsButton (BaseFrame, BaseFrame, instancia, _detalhes.AbrirEncounterWindow, instancia, nil, 16, 16,
--"Interface\\COMMON\\help-i", "Interface\\COMMON\\help-i", "Interface\\COMMON\\help-i", "Interface\\COMMON\\help-i")
@@ -3481,7 +3503,7 @@ function gump:CriaCabecalho (BaseFrame, instancia)
BaseFrame.cabecalho.novo:SetWidth (30)
BaseFrame.cabecalho.novo:SetHeight (15)
BaseFrame.cabecalho.novo:SetPoint ("RIGHT", BaseFrame.cabecalho.fechar, "LEFT", 1, 0)
BaseFrame.cabecalho.novo:SetScript ("OnClick", function() _detalhes:CriarInstancia(_, true); _detalhes.popup:ShowMe (false) end)
BaseFrame.cabecalho.novo:SetScript ("OnClick", function() _detalhes:CriarInstancia (_, true); _detalhes.popup:ShowMe (false) end)
BaseFrame.cabecalho.novo:SetText ("#"..instancia.meu_id)
--> cooltip through inject
@@ -3530,7 +3552,7 @@ function gump:CriaCabecalho (BaseFrame, instancia)
atributo = _detalhes.RaidTables.Mode or 1
local RaidInfo = _detalhes.RaidTables.Menu [atributo]
CoolTip:AddMenu (1, OnClickNovoMenu, index, nil, nil, "#".. index .. " " .. RaidInfo [1], _, true)
CoolTip:AddIcon (RaidInfo [2], 1, 1, 20, 20, 0, 1, 0, 1)
CoolTip:AddIcon (RaidInfo [2], 1, 1, 20, 20, 0, 1, 0, 1)
else
@@ -3554,9 +3576,9 @@ function gump:CriaCabecalho (BaseFrame, instancia)
--> will call for build menu
BuildFunc = BuildClosedInstanceMenu,
--> a hook for OnEnterScript
OnEnterFunc = function() gump:Fade (BaseFrame.button_stretch, "alpha", 0.3) end,
OnEnterFunc = function() OnEnterMainWindow (instancia, BaseFrame.cabecalho.novo, 3) end,
--> a hook for OnLeaveScript
OnLeaveFunc = function() gump:Fade (BaseFrame.button_stretch, -1) end,
OnLeaveFunc = function() OnLeaveMainWindow (instancia, BaseFrame.cabecalho.novo, 3) end,
--> default message if there is no option avaliable
Default = Loc ["STRING_NOCLOSED_INSTANCES"],
--> instancia is the first parameter sent after click, before parameters
@@ -3612,11 +3634,21 @@ function gump:CriaCabecalho (BaseFrame, instancia)
_detalhes.ResetButton:SetText (Loc ["STRING_ERASE"])
_detalhes.ResetButton:SetScript ("OnClick", function() _detalhes.tabela_historico:resetar() end)
_detalhes.ResetButton:SetScript ("OnEnter", function (self)
gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
local lower_instance = _detalhes:GetLowerInstanceNumber()
if (lower_instance) then
OnEnterMainWindow (_detalhes:GetInstance (lower_instance), self, 3)
end
end)
_detalhes.ResetButton:SetScript ("OnLeave", function (self)
gump:Fade (BaseFrame.button_stretch, -1)
local lower_instance = _detalhes:GetLowerInstanceNumber()
if (lower_instance) then
OnLeaveMainWindow (_detalhes:GetInstance (lower_instance), self, 3)
end
if (_detalhes.popup.active) then
local passou = 0
self:SetScript ("OnUpdate", function (self, elapsed)
@@ -3648,10 +3680,19 @@ function gump:CriaCabecalho (BaseFrame, instancia)
_detalhes.ResetButton2:SetScript ("OnClick", function() _detalhes.tabela_historico:resetar() end)
_detalhes.ResetButton2:SetScript ("OnEnter", function (self)
gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
local lower_instance = _detalhes:GetLowerInstanceNumber()
if (lower_instance) then
OnEnterMainWindow (_detalhes:GetInstance (lower_instance), self, 3)
end
end)
_detalhes.ResetButton2:SetScript ("OnLeave", function (self)
gump:Fade (BaseFrame.button_stretch, -1)
local lower_instance = _detalhes:GetLowerInstanceNumber()
if (lower_instance) then
OnLeaveMainWindow (_detalhes:GetInstance (lower_instance), self, 3)
end
if (_detalhes.popup.active) then
local passou = 0
self:SetScript ("OnUpdate", function (self, elapsed)
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+23 -3
View File
@@ -3,13 +3,27 @@ if not Loc then return end
--------------------------------------------------------------------------------------------------------------------------------------------
-- \n\n|cFFFFFF00-|r
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.8.0|r\n\n- Added a new plugin: You Are Not Prepared.\n\n|cFFFFFF00-|r New options panel!\n\n|cFFFFFF00v1.7.0|r\n\n- Fixed some colors issues with enimies bars.\n\n|cFFFFFF00-|r Fixed some phrases which isn't still not translated to enUS.\n\n|cFFFFFF00-|r Major rewrite on CC-Breaks, now it's working properly.\n\n|cFFFFFF00-|r Added new sub attribute for damage: Voidzones & Debuffs.|cFFFFFF00v1.6.7|r\n\n- Added support to skins, you can change over options panel.\n\n|cFFFFFF00v1.6.5|r\n\n|cFFFFFF00-|r Added sub attribute 'Enemies' which shows, of course, only enemies.\n\n|cFFFFFF00-|r Fixed issue with successful spell cast.\n\n|cFFFFFF00v1.6.3|r\n\n|cFFFFFF00-|r data capture now runs 4% faster.\n\n|cFFFFFF00-|r Fixed issue with pets were wasn't uptading owner activity time.\n\n|cFFFFFF00-|r Fixed healing being counted even out of combat.\n\n|cFFFFFF00-|r Fixed some problems with multi-boss encountes like Twin Consorts.\n\n|cFFFFFF00-|r Added options for concatenate trash segments.\n\n|cFFFFFF00-|r Added options for auto remove trash segments. \n\n|cFFFFFF00-|r Added options for change bar height. \n\n|cFFFFFF00-|r Encounter Details now display how many interrupted and successful cast of a boss skill.\n\n|cFFFFFF00v1.6.1|r\n\n|cFFFFFF00-|r Fixed:\n- a issue with debuff uptime.\n- overall data dps and hps for overall data on micro display.\n- many bugs involving sword and book menus.\n- garbage collector erasing actors with interactions with your group members.\n\n|cFFFFFF00-|r overall data now always use the combat data for measure dps and hps.\n\n|cFFFFFF00v1.6.0|r\n\n|cFFFFFF00-|r Added debuff uptime at misc attribute.\n\n|cFFFFFF00-|r Disabled attributes now have a darkness effect over sword menu.\n\n|cFFFFFF00-|r Fixed a issue were sometimes you need to /reload before change a talent.\n\n|cFFFFFF00v1.5.3|r\n\n|cFFFFFF00-|r Fixed a issue with report data during combat lockdown.\n\n|cFFFFFF00-|r Improved pet owner recognition and added a ignore list if couldn't find his owner.\n\n|cFFFFFF00-|r Added an option to display only frags on enemy players.\n\n|cFFFFFF00-|r Added class colors for frags.\n\n|cFFFFFF00v1.5.2|r\n\n|cFFFFFF00-|r Fixed a issue were turning off buff uptime was disabling healing done too.\n\n|cFFFFFF00-|r Avoidance statistics will not be recorded for pets, ungrouped players and monsters.\n\n|cFFFFFF00-|r Fixed a issue were sometimes buff uptime was taking too long to save data on logout.\n\n|cFFFFFF00v1.5.1|r\n\n|cFFFFFF00-|r Fixed a issue with report data were sometimes wasn't working.\n\n|cFFFFFF00v1.5.0|r\n\n|cFFFFFF00-|r Buff Uptime was been implemented over Miscellaneous attribute.\n\n|cFFFFFF00-|r Death Logs now also display cooldowns and last cooldown used.\n\n|cFFFFFF00-|r Added this window showing the latest changes.\n\n|cFFFFFF00-|r Fixed the issue were sometimes the instance stops to update when clicking on the attribute name over sword menu.\n\n|cFFFFFF00-|r Disabling Healing now shutdown the absorbs too, disabling auras doesn't interrupt absorbs any more.\n\n|cFFFFFF00-|r Friendly Fire now only track players which is inside a group.\n\n|cFFFFFF00-|r Fixed a issue were pet damage on target isn't added to owner target.\n\n|cFFFFFF00-|r Fixed a bug were refreshing a cooldown isn't counting.\n\n|cFFFFFF00-|r Added absorbs for shammy and monk 2P tier 16.\n\n|cFFFFFF00-|r Added slash command 'worldboss' and 'updates'.\n\n"
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.8.3|r\n\n|cFFFFFF00-|r Added new skin: Simple Gray.\n\n|cFFFFFF00-|r Added minimap and interface addon panel buttons.\n\n|cFFFFFF00-|r Added new tutorials bubbles for basic aspects of Details! window.\n\n|cFFFFFF00-|r Fixed a issue with Panic Mode where sometimes his isnt triggered.\n\n|cFFFFFF00v1.8.0|r\n\n|cFFFFFF00-|r Added a new plugin: You Are Not Prepared.\n\n|cFFFFFF00-|r New options panel!\n\n|cFFFFFF00v1.7.0|r\n\n- Fixed some colors issues with enimies bars.\n\n|cFFFFFF00-|r Fixed some phrases which isn't still not translated to enUS.\n\n|cFFFFFF00-|r Major rewrite on CC-Breaks, now it's working properly.\n\n|cFFFFFF00-|r Added new sub attribute for damage: Voidzones & Debuffs.|cFFFFFF00v1.6.7|r\n\n- Added support to skins, you can change over options panel.\n\n|cFFFFFF00v1.6.5|r\n\n|cFFFFFF00-|r Added sub attribute 'Enemies' which shows, of course, only enemies.\n\n|cFFFFFF00-|r Fixed issue with successful spell cast.\n\n|cFFFFFF00v1.6.3|r\n\n|cFFFFFF00-|r data capture now runs 4% faster.\n\n|cFFFFFF00-|r Fixed issue with pets were wasn't uptading owner activity time.\n\n|cFFFFFF00-|r Fixed healing being counted even out of combat.\n\n|cFFFFFF00-|r Fixed some problems with multi-boss encountes like Twin Consorts.\n\n|cFFFFFF00-|r Added options for concatenate trash segments.\n\n|cFFFFFF00-|r Added options for auto remove trash segments. \n\n|cFFFFFF00-|r Added options for change bar height. \n\n|cFFFFFF00-|r Encounter Details now display how many interrupted and successful cast of a boss skill.\n\n|cFFFFFF00v1.6.1|r\n\n|cFFFFFF00-|r Fixed:\n- a issue with debuff uptime.\n- overall data dps and hps for overall data on micro display.\n- many bugs involving sword and book menus.\n- garbage collector erasing actors with interactions with your group members.\n\n|cFFFFFF00-|r overall data now always use the combat data for measure dps and hps.\n\n|cFFFFFF00v1.6.0|r\n\n|cFFFFFF00-|r Added debuff uptime at misc attribute.\n\n|cFFFFFF00-|r Disabled attributes now have a darkness effect over sword menu.\n\n|cFFFFFF00-|r Fixed a issue were sometimes you need to /reload before change a talent.\n\n|cFFFFFF00v1.5.3|r\n\n|cFFFFFF00-|r Fixed a issue with report data during combat lockdown.\n\n|cFFFFFF00-|r Improved pet owner recognition and added a ignore list if couldn't find his owner.\n\n|cFFFFFF00-|r Added an option to display only frags on enemy players.\n\n|cFFFFFF00-|r Added class colors for frags.\n\n|cFFFFFF00v1.5.2|r\n\n|cFFFFFF00-|r Fixed a issue were turning off buff uptime was disabling healing done too.\n\n|cFFFFFF00-|r Avoidance statistics will not be recorded for pets, ungrouped players and monsters.\n\n|cFFFFFF00-|r Fixed a issue were sometimes buff uptime was taking too long to save data on logout.\n\n|cFFFFFF00v1.5.1|r\n\n|cFFFFFF00-|r Fixed a issue with report data were sometimes wasn't working.\n\n|cFFFFFF00v1.5.0|r\n\n|cFFFFFF00-|r Buff Uptime was been implemented over Miscellaneous attribute.\n\n|cFFFFFF00-|r Death Logs now also display cooldowns and last cooldown used.\n\n|cFFFFFF00-|r Added this window showing the latest changes.\n\n|cFFFFFF00-|r Fixed the issue were sometimes the instance stops to update when clicking on the attribute name over sword menu.\n\n|cFFFFFF00-|r Disabling Healing now shutdown the absorbs too, disabling auras doesn't interrupt absorbs any more.\n\n|cFFFFFF00-|r Friendly Fire now only track players which is inside a group.\n\n|cFFFFFF00-|r Fixed a issue were pet damage on target isn't added to owner target.\n\n|cFFFFFF00-|r Fixed a bug were refreshing a cooldown isn't counting.\n\n|cFFFFFF00-|r Added absorbs for shammy and monk 2P tier 16.\n\n|cFFFFFF00-|r Added slash command 'worldboss' and 'updates'.\n\n"
Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails:|r " --> color and details name
Loc ["STRING_YES"] = "Yes"
Loc ["STRING_NO"] = "No"
Loc ["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCFleft click|r: open options panel"
Loc ["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCFright click|r: quick menu"
Loc ["STRING_MINIMAPMENU_NEWWINDOW"] = "Create New Window"
Loc ["STRING_MINIMAPMENU_RESET"] = "Reset"
Loc ["STRING_MINIMAPMENU_REOPEN"] = "Reopen Window"
Loc ["STRING_MINIMAPMENU_REOPENALL"] = "Reopen All"
Loc ["STRING_MINIMAPMENU_UNLOCK"] = "Unlock"
Loc ["STRING_MINIMAPMENU_LOCK"] = "Lock"
Loc ["STRING_INTERFACE_OPENOPTIONS"] = "Open Options Panel"
Loc ["STRING_RIGHTCLICK_TYPEVALUE"] = "right click to type the value"
Loc ["STRING_AUTO"] = "auto"
Loc ["STRING_LEFT"] = "left"
Loc ["STRING_CENTER"] = "center"
@@ -134,7 +148,6 @@ if not Loc then return end
Loc ["STRING_OPTIONS_WINDOW"] = "Options Panel"
--> Wait Messages
Loc ["STRING_NEWROW"] = "waiting refresh..."
@@ -290,7 +303,6 @@ if not Loc then return end
--> report frame
Loc ["STRING_REPORTFRAME_PARTY"] = "Party"
--Loc ["STRING_REPORTFRAME_INSTANCE"] = "Instance"
Loc ["STRING_REPORTFRAME_RAID"] = "Raid"
Loc ["STRING_REPORTFRAME_GUILD"] = "Guild"
Loc ["STRING_REPORTFRAME_OFFICERS"] = "Officer Channel"
@@ -524,3 +536,11 @@ if not Loc then return end
Loc ["STRING_OPTIONS_SAVELOAD_RESET"] = "reset to default"
Loc ["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "apply to all instances"
-- Mini Tutorials -----------------------------------------------------------------------------------------------------------------
Loc ["STRING_MINITUTORIAL_1"] = "Window Instance Button:\n\nClick to open a new Details! window.\n\nMouse over to reopen closed instances."
Loc ["STRING_MINITUTORIAL_2"] = "Stretch Button:\n\nClick, hold and pull to stretch the window.\n\nRelease the button to restore normal size."
Loc ["STRING_MINITUTORIAL_3"] = "Resize and Lock Buttons:\n\nUse this to change the size of the window.\n\nLocking it, make the window unmovable."
Loc ["STRING_MINITUTORIAL_4"] = "Shortcut Panel:\n\nWhen you right click a bar or window background, shortcut panel is shown."
Loc ["STRING_MINITUTORIAL_5"] = "Micro Displays:\n\nThese shows important informations.\n\nLeft Click to config.\n\nRight Click to choose other widget."
Loc ["STRING_MINITUTORIAL_6"] = "Snap Windows:\n\nMove a window near other to snap both.\n\nAlways snap with previous instance number, example: #5 snap with #4, #2 snap with #1."
+196 -6
View File
@@ -2,14 +2,26 @@ local Loc = LibStub("AceLocale-3.0"):NewLocale("Details", "ptBR")
if not Loc then return end
--------------------------------------------------------------------------------------------------------------------------------------------
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.8.0|r\n\n- Adicionado novo plugin: You Are Not Prepared.\n\n|cFFFFFF00-|r Novo painel de opcoes!\n\n|cFFFFFF00v1.7.0|r\n\n- Corrigido alguns problemas com as cores das barras de inimigos.\n\n|cFFFFFF00-|r CC Quebrado foi inteiramente reescrito e agora deve funcionar corretamente.\n\n|cFFFFFF00-|r Adicionado novo sub atributo ao dano: Voidzones & Debuffs.|cFFFFFF00v1.6.7|r\n\n- Adicionado suporte a skins, troque ela atraves do painel de opcoes.\n\n|cFFFFFF00v1.6.5|r\n\n|cFFFFFF00-|r Adicionado o sub atributo 'Inimigos' que mostra, eh claro, somente inimigos.\n\n|cFFFFFF00-|r Corrigido um problema na captura das magias conjuradas.|cFFFFFF00v1.6.3|r\n\n|cFFFFFF00-|r captura de dados agora roda 4% mais rapido.\n\n|cFFFFFF00-|r Corrigido problema onde os ajudantes nao atualizavam o tempo de atividade do dono.\n\n|cFFFFFF00-|r Corrigido problema onde o healing era contado mesmo fora do combate.\n\n|cFFFFFF00-|r Corrigido problema com chefes multiplos como Twin Consorts.\n\n|cFFFFFF00-|r Adicionada opcao para juntar os segmentos de trash mobs.\n\n|cFFFFFF00-|r Adicionada opcao para auto remover os segmentos de trash mobs. \n\n|cFFFFFF00-|r Adicionada opcao para alterar a altura das barras.\n\n|cFFFFFF00-|r Plugin Encounter Details agora mostra quantos cast bem sucedidos as magias interrompidas tiveram.\n\n|cFFFFFF00v1.6.1|r\n\n|cFFFFFF00-|r Corrigido:\n- problema com o tempo de debuffs.\n- dps dos dados gerais e o dps no micro display .\n- varios bugs envolvendo o menu da espada e do livro.\n- o coletor de lixo nao ira mais apagar jogadores com vinculo a membros do grupo.\n\n|cFFFFFF00-|r dados gerais agora sempre ira usar o tempo do combate para medir dps e hps.\n\n|cFFFFFF00v1.6.0|r\n\n|cFFFFFF00-|r Adicionado tempo de debuff no atributo miscelanea.\n\n|cFFFFFF00-|r Atributos desativados agora ficam escurecidos no menu da espada.\n\n|cFFFFFF00-|r Corrigido um problema aonde algumas vezes era necessario dar /reload para trocar um talento.\n\n|cFFFFFF00v1.5.3|r\n\n|cFFFFFF00-|r Corrigido problema ao reportar durante o combate.\n\n|cFFFFFF00-|r Melhorado a reconhecimento dos donos de ajudantes.\n\n|cFFFFFF00-|r Adicionada uma opcao para mostrar apenas frags em cima de jogadores inimigos.\n\n|cFFFFFF00-|r Adicionado cor e icone aos frags.\n\n|cFFFFFF00v1.5.2|r\n\n|cFFFFFF00-|r Corrigido problema onde desativando o tempo dos buffs estava desativando tambem a cura feita.\n\n|cFFFFFF00-|r Estatisticas de Avoidance nao seram mais capturadas para pessoas foram do grupo, monstros ou ajudantes.\n\n|cFFFFFF00-|r Corrigido problema onde as vezes estava demorando muito para salvar o tempo dos buffs ao sair do jogo.\n\n|cFFFFFF00v1.5.1|r\n\n|cFFFFFF00-|r Corrigido problema ao reportar o Dps onde as vezes nao mostrava nenhum jogador.\n\n|cFFFFFF00v1.5.0|r\n\n|cFFFFFF00-|r Buff Uptime foi implementado no atributo miscelanea.\n\n|cFFFFFF00-|r Cooldowns usados agora aparecem nos registros da morte.\n\n|cFFFFFF00-|r Implementado esta janela mostrando as atualizacoes.\n\n|cFFFFFF00-|r Corrigido problema onde algumas vezes clicando no nome do atributo fazia a instancia parar de atualizar.\n\n|cFFFFFF00-|r Desativando a cura agora para as absorcoes tambem. Desligando as Auras nao interrompe as absorcoes. \n\n|cFFFFFF00-|r Fogo Amigo agora conta apenas jogadores dentro do grupo.\n\n|cFFFFFF00-|r Corrigido problema onde o dano feito por um ajudando nao estava contando no alvo do dono.\n\n|cFFFFFF00-|r Corrigido problema onde a atualizacao de um cooldown nao estava sendo contada.\n\n|cFFFFFF00-|r Adicionada as magias de absorcao para 2P tier 16.\n\n|cFFFFFF00-|r Adicionado os comandos de barra 'worldboss' e 'updates'.\n\n|cFFFFFF00-|r Corrigido problema ao reportar onde algumas vezes nao estava funcionando."
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.8.3|r\n\n|cFFFFFF00-|r Adicionada nova skin: Simple Gray.\n\n|cFFFFFF00-|r Adicionado botoes para o Details! no minimapa e menu de addons no painel de intercace.\n\n|cFFFFFF00-|r Adicionados novas bolhas de tutoriais para aspectos basicos das janelas do Details!.\n\n|cFFFFFF00-|r Corrigido o Modo Panico aonde as vezes ele nao era disparado.\n\n|cFFFFFF00v1.8.0|r\n\n- Adicionado novo plugin: You Are Not Prepared.\n\n|cFFFFFF00-|r Novo painel de opcoes!\n\n|cFFFFFF00v1.7.0|r\n\n- Corrigido alguns problemas com as cores das barras de inimigos.\n\n|cFFFFFF00-|r CC Quebrado foi inteiramente reescrito e agora deve funcionar corretamente.\n\n|cFFFFFF00-|r Adicionado novo sub atributo ao dano: Voidzones & Debuffs.|cFFFFFF00v1.6.7|r\n\n- Adicionado suporte a skins, troque ela atraves do painel de opcoes.\n\n|cFFFFFF00v1.6.5|r\n\n|cFFFFFF00-|r Adicionado o sub atributo 'Inimigos' que mostra, eh claro, somente inimigos.\n\n|cFFFFFF00-|r Corrigido um problema na captura das magias conjuradas.|cFFFFFF00v1.6.3|r\n\n|cFFFFFF00-|r captura de dados agora roda 4% mais rapido.\n\n|cFFFFFF00-|r Corrigido problema onde os ajudantes nao atualizavam o tempo de atividade do dono.\n\n|cFFFFFF00-|r Corrigido problema onde o healing era contado mesmo fora do combate.\n\n|cFFFFFF00-|r Corrigido problema com chefes multiplos como Twin Consorts.\n\n|cFFFFFF00-|r Adicionada opcao para juntar os segmentos de trash mobs.\n\n|cFFFFFF00-|r Adicionada opcao para auto remover os segmentos de trash mobs. \n\n|cFFFFFF00-|r Adicionada opcao para alterar a altura das barras.\n\n|cFFFFFF00-|r Plugin Encounter Details agora mostra quantos cast bem sucedidos as magias interrompidas tiveram.\n\n|cFFFFFF00v1.6.1|r\n\n|cFFFFFF00-|r Corrigido:\n- problema com o tempo de debuffs.\n- dps dos dados gerais e o dps no micro display .\n- varios bugs envolvendo o menu da espada e do livro.\n- o coletor de lixo nao ira mais apagar jogadores com vinculo a membros do grupo.\n\n|cFFFFFF00-|r dados gerais agora sempre ira usar o tempo do combate para medir dps e hps.\n\n|cFFFFFF00v1.6.0|r\n\n|cFFFFFF00-|r Adicionado tempo de debuff no atributo miscelanea.\n\n|cFFFFFF00-|r Atributos desativados agora ficam escurecidos no menu da espada.\n\n|cFFFFFF00-|r Corrigido um problema aonde algumas vezes era necessario dar /reload para trocar um talento.\n\n|cFFFFFF00v1.5.3|r\n\n|cFFFFFF00-|r Corrigido problema ao reportar durante o combate.\n\n|cFFFFFF00-|r Melhorado a reconhecimento dos donos de ajudantes.\n\n|cFFFFFF00-|r Adicionada uma opcao para mostrar apenas frags em cima de jogadores inimigos.\n\n|cFFFFFF00-|r Adicionado cor e icone aos frags.\n\n|cFFFFFF00v1.5.2|r\n\n|cFFFFFF00-|r Corrigido problema onde desativando o tempo dos buffs estava desativando tambem a cura feita.\n\n|cFFFFFF00-|r Estatisticas de Avoidance nao seram mais capturadas para pessoas foram do grupo, monstros ou ajudantes.\n\n|cFFFFFF00-|r Corrigido problema onde as vezes estava demorando muito para salvar o tempo dos buffs ao sair do jogo.\n\n|cFFFFFF00v1.5.1|r\n\n|cFFFFFF00-|r Corrigido problema ao reportar o Dps onde as vezes nao mostrava nenhum jogador.\n\n|cFFFFFF00v1.5.0|r\n\n|cFFFFFF00-|r Buff Uptime foi implementado no atributo miscelanea.\n\n|cFFFFFF00-|r Cooldowns usados agora aparecem nos registros da morte.\n\n|cFFFFFF00-|r Implementado esta janela mostrando as atualizacoes.\n\n|cFFFFFF00-|r Corrigido problema onde algumas vezes clicando no nome do atributo fazia a instancia parar de atualizar.\n\n|cFFFFFF00-|r Desativando a cura agora para as absorcoes tambem. Desligando as Auras nao interrompe as absorcoes. \n\n|cFFFFFF00-|r Fogo Amigo agora conta apenas jogadores dentro do grupo.\n\n|cFFFFFF00-|r Corrigido problema onde o dano feito por um ajudando nao estava contando no alvo do dono.\n\n|cFFFFFF00-|r Corrigido problema onde a atualizacao de um cooldown nao estava sendo contada.\n\n|cFFFFFF00-|r Adicionada as magias de absorcao para 2P tier 16.\n\n|cFFFFFF00-|r Adicionado os comandos de barra 'worldboss' e 'updates'.\n\n|cFFFFFF00-|r Corrigido problema ao reportar onde algumas vezes nao estava funcionando."
Loc ["STRING_DETAILS1"] = "|cffffaeaeDetalhes:|r " --> color and details name
Loc ["STRING_YES"] = "Sim"
Loc ["STRING_NO"] = "Nao"
Loc ["STRING_MINIMAP_TOOLTIP1"] = "|cFFCFCFCFbotao esquerdo|r: abrir o painel de opcoes"
Loc ["STRING_MINIMAP_TOOLTIP2"] = "|cFFCFCFCFbotao direito|r: menu rapido"
Loc ["STRING_MINIMAPMENU_NEWWINDOW"] = "Criar Nova Janela"
Loc ["STRING_MINIMAPMENU_RESET"] = "Resetar"
Loc ["STRING_MINIMAPMENU_REOPEN"] = "Reabrir Janela"
Loc ["STRING_MINIMAPMENU_REOPENALL"] = "Reabrir Todas"
Loc ["STRING_MINIMAPMENU_UNLOCK"] = "Destravar"
Loc ["STRING_MINIMAPMENU_LOCK"] = "Travar"
Loc ["STRING_INTERFACE_OPENOPTIONS"] = "Abrir Painel de Opcoes"
Loc ["STRING_RIGHTCLICK_TYPEVALUE"] = "botao direito para digitar o valor"
Loc ["STRING_AUTO"] = "auto"
Loc ["STRING_LEFT"] = "esquerda"
Loc ["STRING_CENTER"] = "centro"
@@ -133,7 +145,8 @@ if not Loc then return end
Loc ["STRING_MODE_PLUGINS"] = "plugins"
Loc ["STRING_OPTIONS_WINDOW"] = "Painel de Opcoes"
-->
--> Wait Messages
Loc ["STRING_NEWROW"] = "esperando atualizar..."
Loc ["STRING_WAITPLUGIN"] = "esperando por\nplugins"
@@ -281,7 +294,6 @@ if not Loc then return end
Loc ["STRING_REPORT_SINGLE_BUFFUPTIME"] = "duracao dos buffs de"
Loc ["STRING_REPORT_SINGLE_DEBUFFUPTIME"] = "duracao dos debuffs de"
Loc ["STRING_NOCLOSED_INSTANCES"] = "Nao ha instancias fechadas,\nclique para abrir uma nova."
--Loc ["STRING_REPORT_FRAG"] =
--> report frame
@@ -335,16 +347,194 @@ if not Loc then return end
Loc ["STRING_HELP_RESIZE"] = "Botoes de redimencionar e travar a janela."
Loc ["STRING_HELP_STRETCH"] = "Clique, segure e puxe para esticar a janela."
------------------------------------------------------------------------------------------------------------------------------------
Loc ["STRING_HELP_MODESELF"] = "Este modo possui plugins destinados apenas ao seu personagem. Voce pode escolher o plugin que deseja usar no menu da espada."
Loc ["STRING_HELP_MODEGROUP"] = "Neste modo somendo é mostrado personagens que estao no seu grupo ou raide."
Loc ["STRING_HELP_MODEALL"] = "Nesta opcao os filtros de grupo estao desativados, o Details! mostra tudo o que foi capturado, incluindo monstros, chefes, adds, entre outros."
Loc ["STRING_HELP_MODERAID"] = "O modo raide eh o oposto do modo lobo solitario, aqui voce encontra plugins destinados ao seu grupo em geral."
--> MISC
Loc ["STRING_PLAYER_DETAILS"] = "Detalhes do Jogador"
Loc ["STRING_MELEE"] = "Corpo-a-Corpo"
Loc ["STRING_AUTOSHOT"] = "Tiro Automatico"
Loc ["STRING_DOT"] = " (DoT)"
Loc ["STRING_UNKNOWSPELL"] = "Magia Desconhecida"
Loc ["STRING_CCBROKE"] = "CC Quebrados"
Loc ["STRING_DISPELLED"] = "Auras Removidas"
Loc ["STRING_SPELL_INTERRUPTED"] = "Magias Interrompidas"
Loc ["STRING_DOT"] = " (DoT)"
-- OPTIONS PANEL -----------------------------------------------------------------------------------------------------------------
Loc ["STRING_OPTIONS_SWITCHINFO"] = "|cFFF79F81 ESQUERDA DESATIVADO|r |cFF81BEF7 DIREITA ATIVADO|r"
Loc ["STRING_OPTIONS_PICKCOLOR"] = "cor"
Loc ["STRING_OPTIONS_EDITIMAGE"] = "Editar Imagem"
Loc ["STRING_OPTIONS_PRESETTOOLD"] = "Esta predefinicao requer uma versao atualizada do Details!."
Loc ["STRING_OPTIONS_PRESETNONAME"] = "De um nome a sua predefinicao."
Loc ["STRING_OPTIONS_EDITINSTANCE"] = "Editando a Instancia:"
Loc ["STRING_OPTIONS_GENERAL"] = "Configuracoes Gerais"
Loc ["STRING_OPTIONS_APPEARANCE"] = "Aparencia"
Loc ["STRING_OPTIONS_PERFORMANCE"] = "Performance"
Loc ["STRING_OPTIONS_SOCIAL"] = "Social"
Loc ["STRING_OPTIONS_SOCIAL_DESC"] = "Diga como voce gostaria de ser conhecido na sua guilda."
Loc ["STRING_OPTIONS_NICKNAME"] = "Apelido"
Loc ["STRING_OPTIONS_NICKNAME_DESC"] = "Digite o seu apelido neste campo. O apelido escolhido sera enviado aos membros da sua guilda e o Details! ira substituir o nome do personagem pelo aplido."
Loc ["STRING_OPTIONS_AVATAR"] = "Escolha o Seu Avatar"
Loc ["STRING_OPTIONS_AVATAR_DESC"] = "O avatar tambem eh enviado aos membros da guilda, ele eh mostrado sobre o tooltip quando passa o mouse sobre uma barra."
Loc ["STRING_OPTIONS_REALMNAME"] = "Remover o Nome do Reino"
Loc ["STRING_OPTIONS_REALMNAME_DESC"] = "Quando ativado, o nome do reino do que o personagem pertence nao eh mostrado.\n\n|cFFFFFFFFExemplo:|r\n\nCharles-Azralon |cFFFFFFFF(desativado)|r\nCharles |cFFFFFFFF(ativado)|r"
Loc ["STRING_OPTIONS_MAXSEGMENTS"] = "Max. Segmentos"
Loc ["STRING_OPTIONS_MAXSEGMENTS_DESC"] = "Esta opcao controla quantos segmentos voce deseja manter.\n\nO recomendado eh |cFFFFFFFF12|r, mas sinta-se livre para ajustar este numero como desejar.\n\nComputadores com |cFFFFFFFF2GB|r ou menos de memoria ram devem manter um numero de segmentos baixo, isto pode ajudar a preservar a memoria."
Loc ["STRING_OPTIONS_SCROLLBAR"] = "Barra de Rolagem"
Loc ["STRING_OPTIONS_SCROLLBAR_DESC"] = "Ativa ou desativa a barra de rolagem.\n\nDetails! usa como padrao um mecanismo para estivar a janela.\n\nA |cFFFFFFFFalca|r para estica-lo encontra-se fora da janela em cima do botao de fechar e de criar instancias."
Loc ["STRING_OPTIONS_MAXINSTANCES"] = "Max. Instancias"
Loc ["STRING_OPTIONS_MAXINSTANCES_DESC"] = "Limita o numero de janelas que podem ser criadas.\n\nVoce pode abrir ou reabrir as janelas atraves do botao de instancia localizado a esquerda do botao de fechar."
Loc ["STRING_OPTIONS_PVPFRAGS"] = "Apenas Frags de Pvp"
Loc ["STRING_OPTIONS_PVPFRAGS_DESC"] = "Quando ativado, serao registrados apenas mortes de jogadores da faccao inimiga."
Loc ["STRING_OPTIONS_TIMEMEASURE"] = "Medidas do Tempo"
Loc ["STRING_OPTIONS_TIMEMEASURE_DESC"] = "|cFFFFFFFFTempo de Atividade|r: o tempo de cada membro da raide eh posto em pausa quando ele ficar ocioso e volta a contar o tempo quando ele voltar a atividade, eh a maneira mais comum de medir o Dps e Hps.\n\n|cFFFFFFFFTempo Efetivo|r: muito usado para ranqueamentos, este metodo usa o tempo total da luta para medir o Dps e Hps de todos os membros da raide."
Loc ["STRING_OPTIONS_PERFORMANCE1"] = "Ajustes de Performance"
Loc ["STRING_OPTIONS_PERFORMANCE1_DESC"] = "Estas opcoes podem ajudar no desempenho deste addon."
Loc ["STRING_OPTIONS_MEMORYT"] = "Ajuste de Memoria"
Loc ["STRING_OPTIONS_MEMORYT_DESC"] = "Details! possui mecanismos internos que lidam com a memoria e tentam ajustar o uso dela de acordo com a memoria disponivel no seu sistema.\n\nTambem eh recomendado limitar o numero de segmentos se o seu computador tiver |cFFFFFFFF2GB|r ou menos de memoria."
Loc ["STRING_OPTIONS_SEGMENTSSAVE"] = "Segmentos Salvos"
Loc ["STRING_OPTIONS_SEGMENTSSAVE_DESC"] = "Esta opcao controla quantos segmentos voce deseja salvar entre logouts e loginss.\n\nValores altos podem fazer o tempo de logoff do seu personagem demorar mais.\n\nSe voce raramente olha os dados da raide do dia anterior, eh muito recomendado deixar esta opcao em 1|cFFFFFFFF1|r."
Loc ["STRING_OPTIONS_PANIMODE"] = "Modo de Panico"
Loc ["STRING_OPTIONS_PANIMODE_DESC"] = "Quando voce cair do jogo durante uma luta contra um Chefe de uma Raide e esta opcao estiver antiva, todos os segmentos sao apagados para o processo de logoff ser rapido."
Loc ["STRING_OPTIONS_ANIMATEBARS"] = "Animar as Barras"
Loc ["STRING_OPTIONS_ANIMATEBARS_DESC"] = "Quando ativa as barras das janelas sao animadas ao inves de 'pularem'."
Loc ["STRING_OPTIONS_ANIMATESCROLL"] = "Animar Barra de Rolagem"
Loc ["STRING_OPTIONS_ANIMATESCROLL_DESC"] = "Quanto ativa, a barra de rolagem faz uma animacao ao ser mostrada e escondida."
Loc ["STRING_OPTIONS_WINDOWSPEED"] = "Velocidade de Atualizacao"
Loc ["STRING_OPTIONS_WINDOWSPEED_DESC"] = "Segundos entre cada atualizacao da janela.\n\n|cFFFFFFFF0.3|r: atualiza cerca de 3 vezes por segundo.\n\n|cFFFFFFFF3.0|r: atualiza a cada 3 segundos."
Loc ["STRING_OPTIONS_CLEANUP"] = "Apagar Segmentos de Limpeza"
Loc ["STRING_OPTIONS_CLEANUP_DESC"] = "Segmentos com 'trash mobs' sao considerados segmentos de limpeza.\n\nEsta opcao ativa a remocao automatica destes segmetnso quando possivel."
Loc ["STRING_OPTIONS_PERFORMANCECAPTURES"] = "Coletor de Informacao do Combate"
Loc ["STRING_OPTIONS_PERFORMANCECAPTURES_DESC"] = "Esta opcao controla quais informacoes serao capturadas durante o combate."
Loc ["STRING_OPTIONS_CDAMAGE"] = "Coletar Dano"
Loc ["STRING_OPTIONS_CHEAL"] = "Coletar Cura"
Loc ["STRING_OPTIONS_CENERGY"] = "Coletar Energia"
Loc ["STRING_OPTIONS_CMISC"] = "Coletar Misc"
Loc ["STRING_OPTIONS_CAURAS"] = "Coletar Auras"
Loc ["STRING_OPTIONS_CDAMAGE_DESC"] = "Ativa a Captura de:\n\n- |cFFFFFFFFDano Feito|r\n- |cFFFFFFFFDano Por Segundo|r\n- |cFFFFFFFFFogo Amigo|r\n- |cFFFFFFFFDano Sofrido|r"
Loc ["STRING_OPTIONS_CHEAL_DESC"] = "Ativa a Captura de:\n\n- |cFFFFFFFFCura Feita|r\n- |cFFFFFFFFAbsorcoes|r\n- |cFFFFFFFFCura Por Segundo|r\n- |cFFFFFFFFSobre Cura|r\n- |cFFFFFFFFCura Recebida|r\n- |cFFFFFFFFCura Inimiga|r\n- |cFFFFFFFFDano Prevenido|r"
Loc ["STRING_OPTIONS_CENERGY_DESC"] = "Ativa a Captura de:\n\n- |cFFFFFFFFMana Restaurada|r\n- |cFFFFFFFFRaiva Gerada|r\n- |cFFFFFFFFEnergia Gerada|r\n- |cFFFFFFFFPoder Runico Gerado|r"
Loc ["STRING_OPTIONS_CMISC_DESC"] = "Ativa a Captura de:\n\n- |cFFFFFFFFQuebra de CC|r\n- |cFFFFFFFFDissipacoes|r\n- |cFFFFFFFFInterrupcoes|r\n- |cFFFFFFFFRess|r\n- |cFFFFFFFFMortes|r"
Loc ["STRING_OPTIONS_CAURAS_DESC"] = "Ativa a Captura de:\n\n- |cFFFFFFFFTempo de Buffs|r\n- |cFFFFFFFFTempo de Debuffs|r\n- |cFFFFFFFFVoid Zones|r\n-|cFFFFFFFF Cooldowns|r"
Loc ["STRING_OPTIONS_CLOUD"] = "Captura Atraves de Nuvem"
Loc ["STRING_OPTIONS_CLOUD_DESC"] = "Quando ativado, as informacoes de capturas deligadas eh buscada em outros membros da raide."
Loc ["STRING_OPTIONS_BARS"] = "Bar Settings"
Loc ["STRING_OPTIONS_BARS_DESC"] = "This options control the appearance of the instance bars."
Loc ["STRING_OPTIONS_BAR_TEXTURE"] = "Texture"
Loc ["STRING_OPTIONS_BAR_TEXTURE_DESC"] = "Choose the texture of bars."
Loc ["STRING_OPTIONS_BAR_BTEXTURE"] = "Background Texture"
Loc ["STRING_OPTIONS_BAR_BTEXTURE_DESC"] = "Choose the background texture of bars."
Loc ["STRING_OPTIONS_BAR_BCOLOR"] = "Background Color"
Loc ["STRING_OPTIONS_BAR_BCOLOR_DESC"] = "Choose the background color of bars."
Loc ["STRING_OPTIONS_BAR_HEIGHT"] = "Height"
Loc ["STRING_OPTIONS_BAR_HEIGHT_DESC"] = "Change the height of bars."
Loc ["STRING_OPTIONS_BAR_COLORBYCLASS"] = "Color By Class"
Loc ["STRING_OPTIONS_BAR_COLORBYCLASS_DESC"] = "When enabled, the instance bars have the color of the character class.\n\nDisabled: bars have a fixed color."
Loc ["STRING_OPTIONS_BAR_COLORBYCLASS2"] = "Background Color By Class"
Loc ["STRING_OPTIONS_BAR_COLORBYCLASS2_DESC"] = "When enabled, the instance bars background have the color of the character class.\n\nDisabled: bars have a fixed color."
--
Loc ["STRING_OPTIONS_TEXT"] = "Text Settings"
Loc ["STRING_OPTIONS_TEXT_DESC"] = "This options control the appearance of the instance bar texts."
Loc ["STRING_OPTIONS_TEXT_SIZE"] = "Size"
Loc ["STRING_OPTIONS_TEXT_SIZE_DESC"] = "Change the size of bar texts."
Loc ["STRING_OPTIONS_TEXT_FONT"] = "Font"
Loc ["STRING_OPTIONS_TEXT_FONT_DESC"] = "Change the font of bar texts."
Loc ["STRING_OPTIONS_TEXT_LOUTILINE"] = "Left Text Outline"
Loc ["STRING_OPTIONS_TEXT_LOUTILINE_DESC"] = "Enable or Disable the outline for left text."
Loc ["STRING_OPTIONS_TEXT_ROUTILINE"] = "Right Text Outline"
Loc ["STRING_OPTIONS_TEXT_ROUTILINE_DESC"] = "Enable or Disable the outline for right text."
Loc ["STRING_OPTIONS_TEXT_LCLASSCOLOR"] = "Left Text Color By Class"
Loc ["STRING_OPTIONS_TEXT_LCLASSCOLOR_DESC"] = "When enabled, the left text uses the class color of the character.\n\nIf disabled, choose the color on the color picker button."
Loc ["STRING_OPTIONS_TEXT_RCLASSCOLOR"] = "Right Text Color By Class"
Loc ["STRING_OPTIONS_TEXT_RCLASSCOLOR_DESC"] = "When enabled, the right text uses the class color of the character.\n\nIf disabled, choose the color on the color picker button."
--
Loc ["STRING_OPTIONS_INSTANCE"] = "Instance Settings"
Loc ["STRING_OPTIONS_INSTANCE_DESC"] = "This options control the appearance of the instance it self."
Loc ["STRING_OPTIONS_INSTANCE_COLOR"] = "Color"
Loc ["STRING_OPTIONS_INSTANCE_COLOR_DESC"] = "Change the color of instance window."
Loc ["STRING_OPTIONS_INSTANCE_ALPHA"] = "Alpha"
Loc ["STRING_OPTIONS_INSTANCE_ALPHA_DESC"] = "This option let you change the color and transparency of instance window background."
Loc ["STRING_OPTIONS_INSTANCE_CURRENT"] = "Auto Switch To Current"
Loc ["STRING_OPTIONS_INSTANCE_CURRENT_DESC"] = "Whenever a combat start and there is no other instance on current segment, this instance auto switch to current segment."
Loc ["STRING_OPTIONS_INSTANCE_SKIN"] = "Skin"
Loc ["STRING_OPTIONS_INSTANCE_SKIN_DESC"] = "Modify all window textures based on a skin theme."
Loc ["STRING_OPTIONS_WP"] = "Wallpaper Settings"
Loc ["STRING_OPTIONS_WP_DESC"] = "This options control the wallpaper of instance."
Loc ["STRING_OPTIONS_WP_ENABLE"] = "Show"
Loc ["STRING_OPTIONS_WP_ENABLE_DESC"] = "Enable or Disable the wallpaper of the instance.\n\nSelect the category and the image you want on the two following boxes."
Loc ["STRING_OPTIONS_WP_GROUP"] = "Category"
Loc ["STRING_OPTIONS_WP_GROUP_DESC"] = "In this box, you select the group of the wallpaper, the images of this category can be chosen on the next dropbox."
Loc ["STRING_OPTIONS_WP_GROUP2"] = "Wallpaper"
Loc ["STRING_OPTIONS_WP_GROUP2_DESC"] = "Select the wallpaper, for more, choose a diferent category on the left dropbox."
Loc ["STRING_OPTIONS_WP_ALIGN"] = "Align"
Loc ["STRING_OPTIONS_WP_ALIGN_DESC"] = "Select how the wallpaper will align within the window instance.\n\n- |cFFFFFFFFFill|r: auto resize and align with all corners.\n\n- |cFFFFFFFFCenter|r: doesn`t resize and align with the center of the window.\n\n-|cFFFFFFFFStretch|r: auto resize on vertical or horizontal and align with left-right or top-bottom sides.\n\n-|cFFFFFFFFFour Corners|r: align with specified corner, no auto resize is made."
Loc ["STRING_OPTIONS_WP_EDIT"] = "Edit Image"
Loc ["STRING_OPTIONS_WP_EDIT_DESC"] = "Open the image editor to change some wallpaper aspects."
Loc ["STRING_OPTIONS_SAVELOAD"] = "Save and Load"
Loc ["STRING_OPTIONS_SAVELOAD_DESC"] = "This options allow you to save or load predefined settings."
Loc ["STRING_OPTIONS_SAVELOAD_PNAME"] = "Preset Name"
Loc ["STRING_OPTIONS_SAVELOAD_SAVE"] = "save"
Loc ["STRING_OPTIONS_SAVELOAD_LOAD"] = "load"
Loc ["STRING_OPTIONS_SAVELOAD_REMOVE"] = "x"
Loc ["STRING_OPTIONS_SAVELOAD_RESET"] = "reset to default"
Loc ["STRING_OPTIONS_SAVELOAD_APPLYTOALL"] = "apply to all instances"
-- Mini Tutorials -----------------------------------------------------------------------------------------------------------------
Loc ["STRING_MINITUTORIAL_1"] = "Botao de Instancias:\n\nClique para abrir uma nova janela do Details!.\n\nPasse o mouse sobre o botao para reabrir janelas fechadas."
Loc ["STRING_MINITUTORIAL_2"] = "Botao de Esticar:\n\nClique, segure e puxe para esticar a janela.\n\nSolte o botao para a janela retornar ao tamanho normal."
Loc ["STRING_MINITUTORIAL_3"] = "Redimencionar e Trancar:\n\nUse este botao para mudar o tamanho da janela.\n\nTrancando ela, impede que a janela seja movida."
Loc ["STRING_MINITUTORIAL_4"] = "Painel de Atalhos:\n\nClicando com o botao direito sobre uma barra ou no fundo da janela, o painel de atalho eh mostrado."
Loc ["STRING_MINITUTORIAL_5"] = "Micro Displays:\n\nMostram informacoes importantes a voce.\n\nBotao esquerdo para configura-las.\n\nBotao direito para escolhar outra informacao."
Loc ["STRING_MINITUTORIAL_6"] = "Juntar Janelas:\n\nMova uma janela proxima a outra para junta-las.\n\nSempre junte janelas com o numero anterior, exemplo: #5 junta com a #4, #2 junta com a #1, etc."
+128
View File
@@ -110,10 +110,27 @@ function _G._detalhes:Start()
}
self.tutorial = self.tutorial or {}
self.tutorial.logons = self.tutorial.logons or 0
self.tutorial.unlock_button = self.tutorial.unlock_button or 0
self.tutorial.version_announce = self.tutorial.version_announce or 0
self.tutorial.main_help_button = self.tutorial.main_help_button or 0
--[1] criar nova instancia
--[2] esticar janela
--[3] resize e trava
--[4] shortcut frame
--[5] micro displays
--[6] snap windows
self.tutorial.alert_frames = self.tutorial.alert_frames or {false, false, false, false, false, false}
--self.tutorial.alert_frames = {false, false, false, false, false, false}
self.tutorial.logons = self.tutorial.logons + 1
if (self.tutorial.logons < 5) then
--if (self.tutorial.logons < 55) then --debug
self:StartTutorial()
end
--> class colors and tcoords
if (not self.class_colors) then
self.class_colors = {}
@@ -348,4 +365,115 @@ function _G._detalhes:Start()
end
end
--> minimap
local LDB = LibStub ("LibDataBroker-1.1", true)
local LDBIcon = LDB and LibStub ("LibDBIcon-1.0", true)
if LDB then
local minimapIcon = LDB:NewDataObject ("Details!", {
type = "data source",
icon = [[Interface\AddOns\Details\images\minimap]],
OnClick = function (self, button)
if (button == "LeftButton") then
local lower_instance = _detalhes:GetLowerInstanceNumber()
_detalhes:OpenOptionsWindow (_detalhes:GetInstance (lower_instance))
elseif (button == "RightButton") then
GameTooltip:Hide()
local GameCooltip = GameCooltip
GameCooltip:Reset()
GameCooltip:SetType ("menu")
GameCooltip:SetOption ("ButtonsYMod", -5)
GameCooltip:SetOption ("HeighMod", 5)
GameCooltip:SetOption ("TextSize", 10)
--344 427 200 268 0.0009765625
--0.672851, 0.833007, 0.391601, 0.522460
GameCooltip:SetBannerImage (1, [[Interface\AddOns\Details\images\icons]], 83*.5, 68*.5, {"bottomleft", "topleft", 1, -4}, {0.672851, 0.833007, 0.391601, 0.522460}, nil)
GameCooltip:SetBannerImage (2, "Interface\\PetBattles\\Weather-Windy", 512*.35, 128*.3, {"bottomleft", "topleft", -25, -4}, {0, 1, 1, 0})
GameCooltip:SetBannerText (1, "Mini Map Menu", {"left", "right", 2, -5}, "white", 10)
--> reset
GameCooltip:AddMenu (1, _detalhes.tabela_historico.resetar, true, nil, nil, Loc ["STRING_MINIMAPMENU_RESET"], nil, true)
GameCooltip:AddIcon ([[Interface\COMMON\VOICECHAT-MUTED]], 1, 1, 14, 14)
GameCooltip:AddLine ("$div")
--> nova instancai
GameCooltip:AddMenu (1, _detalhes.CriarInstancia, true, nil, nil, Loc ["STRING_MINIMAPMENU_NEWWINDOW"], nil, true)
GameCooltip:AddIcon ([[Interface\ICONS\Spell_ChargePositive]], 1, 1, 14, 14, 0.0703125, 0.9453125, 0.0546875, 0.9453125)
--> reopen window 64: 0.0078125
GameCooltip:AddMenu (1, _detalhes.CriarInstancia, true, nil, nil, Loc ["STRING_MINIMAPMENU_REOPEN"], nil, true)
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Priest_VoidShift]], 1, 1, 14, 14, 0.0703125, 0.9453125, 0.0546875, 0.9453125)
GameCooltip:AddMenu (1, _detalhes.ReabrirTodasInstancias, true, nil, nil, Loc ["STRING_MINIMAPMENU_REOPENALL"], nil, true)
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Priest_VoidShift]], 1, 1, 14, 14, 0.0703125, 0.9453125, 0.0546875, 0.9453125, "#ffb400")
GameCooltip:AddLine ("$div")
--> lock
GameCooltip:AddMenu (1, _detalhes.TravasInstancias, true, nil, nil, Loc ["STRING_MINIMAPMENU_LOCK"], nil, true)
GameCooltip:AddIcon ([[Interface\PetBattles\PetBattle-LockIcon]], 1, 1, 14, 14, 0.0703125, 0.9453125, 0.0546875, 0.9453125)
GameCooltip:AddMenu (1, _detalhes.DestravarInstancias, true, nil, nil, Loc ["STRING_MINIMAPMENU_UNLOCK"], nil, true)
GameCooltip:AddIcon ([[Interface\PetBattles\PetBattle-LockIcon]], 1, 1, 14, 14, 0.0703125, 0.9453125, 0.0546875, 0.9453125, "gray")
GameCooltip:SetOwner (self, "topright", "bottomleft")
GameCooltip:ShowCooltip()
end
end,
OnTooltipShow = function (tooltip)
tooltip:AddLine ("Details!", 1, 1, 1)
tooltip:AddLine (Loc ["STRING_MINIMAP_TOOLTIP1"])
tooltip:AddLine (Loc ["STRING_MINIMAP_TOOLTIP2"])
end,
})
if (minimapIcon and not LDBIcon:IsRegistered ("Details!")) then
LDBIcon:Register ("Details!", minimapIcon, [[Interface\AddOns\Details\images\minimap]])
end
end
--> interface menu
local f = CreateFrame ("frame", "DetailsInterfaceOptionsPanel", UIParent)
f.name = "Details"
f.logo = f:CreateTexture (nil, "overlay")
f.logo:SetPoint ("center", f, "center", 0, 0)
f.logo:SetPoint ("top", f, "top", 25, 56)
f.logo:SetTexture ([[Interface\AddOns\Details\images\logotipo]])
f.logo:SetSize (256, 128)
InterfaceOptions_AddCategory (f)
--> open options panel
f.options_button = CreateFrame ("button", nil, f, "OptionsButtonTemplate")
f.options_button:SetText (Loc ["STRING_INTERFACE_OPENOPTIONS"])
f.options_button:SetPoint ("topleft", f, "topleft", 10, -100)
f.options_button:SetWidth (170)
f.options_button:SetScript ("OnClick", function (self)
local lower_instance = _detalhes:GetLowerInstanceNumber()
_detalhes:OpenOptionsWindow (_detalhes:GetInstance (lower_instance))
end)
--> create new window
f.new_window_button = CreateFrame ("button", nil, f, "OptionsButtonTemplate")
f.new_window_button:SetText (Loc ["STRING_MINIMAPMENU_NEWWINDOW"])
f.new_window_button:SetPoint ("topleft", f, "topleft", 10, -125)
f.new_window_button:SetWidth (170)
f.new_window_button:SetScript ("OnClick", function (self)
_detalhes:CriarInstancia (_, true)
end)
--> MicroButtonAlertTemplate
self.MicroButtonAlert = CreateFrame ("frame", "DetailsMicroButtonAlert", UIParent, "MicroButtonAlertTemplate")
self.MicroButtonAlert:Hide()
end