- 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:
@@ -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
|
||||
@@ -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>
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user