Added support to Profiles, now you can share the same config between two or more characters
Added support for BattleTag friends over report window. Added pet threat to Tiny Threat plugin when out of a party or raid group. Fixed a issue with close button where it disappear without close the window when toolbar is in bottom side. Also fixed a issue where swapping toolbar positioning was sometimes making close button disappear. Fixed a problem opening options panel through minimap when there is no window opened.
This commit is contained in:
@@ -14,6 +14,7 @@ locales\Details-enUS.lua
|
||||
boot.lua
|
||||
core\util.lua
|
||||
|
||||
functions\profiles.lua
|
||||
functions\hooks.lua
|
||||
functions\skins.lua
|
||||
functions\boss.lua
|
||||
@@ -96,4 +97,6 @@ core\network.lua
|
||||
|
||||
core\parser.lua
|
||||
|
||||
functions\loaddata.lua
|
||||
|
||||
startup.lua
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
_ = nil
|
||||
_detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
|
||||
_detalhes.userversion = "v1.11.10"
|
||||
_detalhes.userversion = "v1.12.00"
|
||||
_detalhes.version = "Alpha 016"
|
||||
_detalhes.realversion = 16
|
||||
|
||||
@@ -25,6 +25,7 @@ do
|
||||
_detalhes.__index = _detalhes
|
||||
_detalhes._tempo = time()
|
||||
_detalhes.debug = false
|
||||
_detalhes.opened_windows = 0
|
||||
|
||||
--> containers
|
||||
--> armazenas as funções do parser - All parse functions
|
||||
@@ -76,7 +77,7 @@ do
|
||||
_detalhes.RaidTables.Plugins = {}
|
||||
--> name to plugin object
|
||||
_detalhes.RaidTables.NameTable = {}
|
||||
|
||||
|
||||
--> solo -------------------------------------------------------------------
|
||||
--> general functions for solo mode plugins
|
||||
_detalhes.SoloTables = {}
|
||||
@@ -245,8 +246,12 @@ do
|
||||
|
||||
--> print messages
|
||||
function _detalhes:Msg (_string, arg1, arg2, arg3, arg4)
|
||||
|
||||
print (Loc ["STRING_DETAILS1"] .. _string, arg1 or "", arg2 or "", arg3 or "", arg4 or "")
|
||||
if (self.__name) then
|
||||
--> yes, we have a name!
|
||||
print ("|cffffaeae" .. self.__name .. "|r |cffcc7c7c(plugin)|r: " .. _string, arg1 or "", arg2 or "", arg3 or "", arg4 or "")
|
||||
else
|
||||
print (Loc ["STRING_DETAILS1"] .. _string, arg1 or "", arg2 or "", arg3 or "", arg4 or "")
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
+124
-27
@@ -36,6 +36,10 @@ local sub_atributos = _detalhes.sub_atributos
|
||||
local segmentos = _detalhes.segmentos
|
||||
|
||||
--> STARTUP reativa as instancias e regenera as tabelas das mesmas
|
||||
function _detalhes:RestartInstances()
|
||||
return _detalhes:ReativarInstancias()
|
||||
end
|
||||
|
||||
function _detalhes:ReativarInstancias()
|
||||
_detalhes.opened_windows = 0
|
||||
for index = #_detalhes.tabela_instancias, 1, -1 do
|
||||
@@ -152,6 +156,10 @@ end
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function _detalhes:ShutDown()
|
||||
return self:DesativarInstancia()
|
||||
end
|
||||
|
||||
--> desativando a instância ela fica em stand by e apenas hida a janela
|
||||
function _detalhes:DesativarInstancia()
|
||||
|
||||
@@ -320,16 +328,22 @@ end
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
--> cria uma nova instância e a joga para o container de instâncias
|
||||
|
||||
function _detalhes:CreateInstance (id)
|
||||
return _detalhes:CriarInstancia (_, id)
|
||||
end
|
||||
|
||||
function _detalhes:CriarInstancia (_, id)
|
||||
|
||||
if (id and _type (id) == "boolean") then
|
||||
|
||||
if (#_detalhes.tabela_instancias >= _detalhes.instances_amount) then
|
||||
return _detalhes:Msg (Loc ["STRING_INSTANCE_LIMIT"])
|
||||
_detalhes:Msg (Loc ["STRING_INSTANCE_LIMIT"])
|
||||
return false
|
||||
end
|
||||
|
||||
local new_instance = _detalhes:NovaInstancia (#_detalhes.tabela_instancias+1)
|
||||
_detalhes.tabela_instancias [#_detalhes.tabela_instancias+1] = new_instance
|
||||
|
||||
return new_instance
|
||||
|
||||
elseif (id) then
|
||||
@@ -353,7 +367,6 @@ end
|
||||
end
|
||||
|
||||
local new_instance = _detalhes:NovaInstancia (#_detalhes.tabela_instancias+1)
|
||||
_detalhes.tabela_instancias [#_detalhes.tabela_instancias+1] = new_instance
|
||||
|
||||
if (not _detalhes.initializing) then
|
||||
_detalhes:SendEvent ("DETAILS_INSTANCE_OPEN", nil, new_instance)
|
||||
@@ -700,7 +713,8 @@ end
|
||||
|
||||
local new_instance = {}
|
||||
_setmetatable (new_instance, _detalhes)
|
||||
|
||||
_detalhes.tabela_instancias [#_detalhes.tabela_instancias+1] = new_instance
|
||||
|
||||
--> instance number
|
||||
new_instance.meu_id = ID
|
||||
|
||||
@@ -788,6 +802,8 @@ end
|
||||
|
||||
new_instance:ShowSideBars()
|
||||
|
||||
--local skin = fazer aqui o esquema de resgatar a skin salva no profile.
|
||||
|
||||
--> apply standard skin if have one saved
|
||||
if (_detalhes.standard_skin) then
|
||||
|
||||
@@ -818,7 +834,7 @@ end
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
--> ao reiniciar o addon esta função é rodada para recriar a janela da instância
|
||||
--> search key: ~restaura ~inicio
|
||||
--> search key: ~restaura ~inicio ~start
|
||||
function _detalhes:RestauraJanela (index, temp)
|
||||
|
||||
--> load
|
||||
@@ -845,13 +861,26 @@ function _detalhes:RestauraJanela (index, temp)
|
||||
self.row_height = self.row_info.height + self.row_info.space.between
|
||||
|
||||
--> create frames
|
||||
local _baseframe, _bgframe, _bgframe_display, _scrollframe = gump:CriaJanelaPrincipal (self.meu_id, self)
|
||||
self.baseframe = _baseframe
|
||||
self.bgframe = _bgframe
|
||||
self.bgdisplay = _bgframe_display
|
||||
self.scroll = _scrollframe
|
||||
_baseframe:EnableMouseWheel (false)
|
||||
self.alturaAntiga = _baseframe:GetHeight()
|
||||
local instance_baseframe = _G ["DetailsBaseFrame" .. self.meu_id]
|
||||
if (instance_baseframe) then
|
||||
local _baseframe, _bgframe, _bgframe_display, _scrollframe = instance_baseframe, _G ["Details_WindowFrame" .. self.meu_id], _G ["Details_GumpFrame" .. self.meu_id], _G ["Details_ScrollBar" .. self.meu_id]
|
||||
self.baseframe = _baseframe
|
||||
self.bgframe = _bgframe
|
||||
self.bgdisplay = _bgframe_display
|
||||
self.scroll = _scrollframe
|
||||
_baseframe:EnableMouseWheel (false)
|
||||
self.alturaAntiga = _baseframe:GetHeight()
|
||||
else
|
||||
local _baseframe, _bgframe, _bgframe_display, _scrollframe = gump:CriaJanelaPrincipal (self.meu_id, self)
|
||||
self.baseframe = _baseframe
|
||||
self.bgframe = _bgframe
|
||||
self.bgdisplay = _bgframe_display
|
||||
self.scroll = _scrollframe
|
||||
_baseframe:EnableMouseWheel (false)
|
||||
self.alturaAntiga = _baseframe:GetHeight()
|
||||
end
|
||||
|
||||
|
||||
|
||||
--> change the attribute
|
||||
_detalhes:TrocaTabela (self, self.segmento, self.atributo, self.sub_atributo, true) --> passando true no 5º valor para a função ignorar a checagem de valores iguais
|
||||
@@ -931,6 +960,52 @@ function _detalhes:RestauraJanela (index, temp)
|
||||
|
||||
end
|
||||
|
||||
function _detalhes:ExportSkin()
|
||||
|
||||
local exported = {
|
||||
version = _detalhes.preset_version --skin version
|
||||
}
|
||||
|
||||
for key, value in pairs (self) do
|
||||
if (_detalhes.instance_defaults [key]) then
|
||||
if (type (value) == "table") then
|
||||
exported [key] = table_deepcopy (value)
|
||||
else
|
||||
exported [key] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return exported
|
||||
|
||||
end
|
||||
|
||||
function _detalhes:ApplySavedSkin (style)
|
||||
|
||||
if (not style.version or _detalhes.preset_version > style.version) then
|
||||
return _detalhes:Msg (Loc ["STRING_OPTIONS_PRESETTOOLD"])
|
||||
end
|
||||
|
||||
--> set skin preset
|
||||
local skin = style.skin
|
||||
self.skin = ""
|
||||
self:ChangeSkin (skin)
|
||||
|
||||
--> overwrite all instance parameters with saved ones
|
||||
for key, value in pairs (style) do
|
||||
if (key ~= "skin") then
|
||||
if (type (value) == "table") then
|
||||
self [key] = table_deepcopy (value)
|
||||
else
|
||||
self [key] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--> apply all changed attributes
|
||||
self:ChangeSkin()
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function _detalhes:InstanceReset (instance)
|
||||
@@ -1502,15 +1577,17 @@ function _detalhes:ChangeIcon (icon)
|
||||
|
||||
if (self.atributo == 5) then
|
||||
--> custom
|
||||
local icon = _detalhes.custom [self.sub_atributo].icon
|
||||
self.baseframe.cabecalho.atributo_icon:SetTexture (icon)
|
||||
self.baseframe.cabecalho.atributo_icon:SetTexCoord (5/64, 60/64, 3/64, 62/64)
|
||||
|
||||
local icon_size = skin.icon_plugins_size
|
||||
self.baseframe.cabecalho.atributo_icon:SetWidth (icon_size[1])
|
||||
self.baseframe.cabecalho.atributo_icon:SetHeight (icon_size[2])
|
||||
local icon_anchor = skin.icon_anchor_plugins
|
||||
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", icon_anchor[1], icon_anchor[2])
|
||||
if (_detalhes.custom [self.sub_atributo]) then
|
||||
local icon = _detalhes.custom [self.sub_atributo].icon
|
||||
self.baseframe.cabecalho.atributo_icon:SetTexture (icon)
|
||||
self.baseframe.cabecalho.atributo_icon:SetTexCoord (5/64, 60/64, 3/64, 62/64)
|
||||
|
||||
local icon_size = skin.icon_plugins_size
|
||||
self.baseframe.cabecalho.atributo_icon:SetWidth (icon_size[1])
|
||||
self.baseframe.cabecalho.atributo_icon:SetHeight (icon_size[2])
|
||||
local icon_anchor = skin.icon_anchor_plugins
|
||||
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", icon_anchor[1], icon_anchor[2])
|
||||
end
|
||||
else
|
||||
--> normal
|
||||
local half = 0.00048828125
|
||||
@@ -1786,11 +1863,18 @@ function _detalhes:monta_relatorio (este_relatorio, custom)
|
||||
total, keyName, first = _detalhes.atributo_misc:RefreshWindow (self, self.showing, true, true)
|
||||
end
|
||||
elseif (atributo == 5) then --> custom
|
||||
total, keyName, first = _detalhes.atributo_custom:RefreshWindow (self, self.showing, true, {key = "custom"})
|
||||
total = self.showing.totals [self.customName]
|
||||
atributo = _detalhes.custom [self.sub_atributo].attribute
|
||||
container = self.showing [atributo]._ActorTable
|
||||
|
||||
|
||||
if (_detalhes.custom [self.sub_atributo]) then
|
||||
total, keyName, first = _detalhes.atributo_custom:RefreshWindow (self, self.showing, true, {key = "custom"})
|
||||
total = self.showing.totals [self.customName]
|
||||
atributo = _detalhes.custom [self.sub_atributo].attribute
|
||||
container = self.showing [atributo]._ActorTable
|
||||
else
|
||||
total, keyName, first = _detalhes.atributo_damage:RefreshWindow (self, self.showing, true, true)
|
||||
total = 1
|
||||
atributo = 1
|
||||
container = self.showing [atributo]._ActorTable
|
||||
end
|
||||
--print (total, keyName, first, atributo)
|
||||
end
|
||||
|
||||
@@ -2058,7 +2142,9 @@ function _detalhes:envia_relatorio (linhas, custom)
|
||||
end
|
||||
|
||||
local to_who = _detalhes.report_where
|
||||
local channel = to_who:find ("|")
|
||||
|
||||
local channel = to_who:find ("CHANNEL")
|
||||
local is_btag = to_who:find ("REALID")
|
||||
|
||||
if (channel) then
|
||||
|
||||
@@ -2069,6 +2155,17 @@ function _detalhes:envia_relatorio (linhas, custom)
|
||||
end
|
||||
|
||||
return
|
||||
|
||||
elseif (is_btag) then
|
||||
|
||||
local id = to_who:gsub ((".*|"), "")
|
||||
local presenceID = tonumber (id)
|
||||
|
||||
for i = 1, #linhas do
|
||||
BNSendWhisper (presenceID, linhas[i])
|
||||
end
|
||||
|
||||
return
|
||||
|
||||
elseif (to_who == "WHISPER") then --> whisper
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ _detalhes.instance_defaults = {
|
||||
--sort direction is the direction of results on bars (1 = top to bottom 2 = bottom to top)
|
||||
bars_sort_direction = 1,
|
||||
--reset button info
|
||||
resetbutton_info = {text_color = {1, 0.82, 0, 1}, text_face = "Friz Quadrata TT", text_size = 12, color_overlay = {1, 1, 1, 1}, always_small = false},
|
||||
resetbutton_info = {text_color = {1, 0.82, 0, 1}, text_color_small = {1, 0.82, 0, 1}, text_face = "Friz Quadrata TT", text_size = 12, color_overlay = {1, 1, 1, 1}, always_small = false},
|
||||
--instance button info
|
||||
instancebutton_info = {text_color = {1, 0.82, 0, 1}, text_face = "Friz Quadrata TT", text_size = 12, color_overlay = {1, 1, 1, 1}},
|
||||
--close button info
|
||||
|
||||
@@ -560,6 +560,50 @@
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function _detalhes:ClearInstances()
|
||||
for _, esta_instancia in _ipairs (_detalhes.tabela_instancias) do
|
||||
--> detona a janela do Solo Mode
|
||||
|
||||
if (esta_instancia.StatusBar.left) then
|
||||
esta_instancia.StatusBarSaved = {
|
||||
["left"] = esta_instancia.StatusBar.left.real_name or "NONE",
|
||||
["center"] = esta_instancia.StatusBar.center.real_name or "NONE",
|
||||
["right"] = esta_instancia.StatusBar.right.real_name or "NONE",
|
||||
["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
|
||||
|
||||
function _detalhes:reset_window (instancia)
|
||||
if (instancia.segmento == -1) then
|
||||
|
||||
+39
-3
@@ -2566,7 +2566,7 @@
|
||||
|
||||
|
||||
-- PARSER
|
||||
--serach key: ~parser ~event
|
||||
--serach key: ~parser ~event ~start ~inicio
|
||||
|
||||
function _detalhes:OnEvent (evento, ...)
|
||||
|
||||
@@ -2783,14 +2783,50 @@
|
||||
_detalhes.can_panic_mode = true
|
||||
end
|
||||
|
||||
return _detalhes:SaveData()
|
||||
--if (UnitName ("player") == "Tiranaa" or UnitName ("player") == "Triciclo") then
|
||||
|
||||
_detalhes:SaveConfig()
|
||||
|
||||
_detalhes:SaveProfile()
|
||||
|
||||
--_detalhes_global = nil
|
||||
--_detalhes_database = nil
|
||||
|
||||
--else
|
||||
-- return _detalhes:SaveData()
|
||||
--end
|
||||
|
||||
elseif (evento == "ADDON_LOADED") then
|
||||
|
||||
local addon_name = _select (1, ...)
|
||||
|
||||
if (addon_name == "Details") then
|
||||
_detalhes:LoadData()
|
||||
|
||||
--> cooltip
|
||||
if (not _G.GameCooltip) then
|
||||
_detalhes.popup = DetailsCreateCoolTip()
|
||||
else
|
||||
_detalhes.popup = _G.GameCooltip
|
||||
end
|
||||
|
||||
--> write into details object all basic keys
|
||||
_detalhes:ApplyBasicKeys()
|
||||
|
||||
--if (_detalhes_global and _detalhes_global.profile_pool and _detalhes_global.profile_pool [UnitGUID ("player")]) then
|
||||
--> apply basic startup
|
||||
_detalhes:ApplyBasicKeys()
|
||||
--> check if is first run
|
||||
_detalhes:IsFirstRun()
|
||||
--> load all the saved combats
|
||||
_detalhes:LoadCombatTables()
|
||||
--> load the profiles
|
||||
_detalhes:LoadConfig()
|
||||
|
||||
--else
|
||||
--> load the addon
|
||||
-- _detalhes:LoadData()
|
||||
--end
|
||||
|
||||
_detalhes:UpdateParserGears()
|
||||
_detalhes:Start()
|
||||
end
|
||||
|
||||
@@ -293,6 +293,7 @@ function DropDownMetaFunctions:Select (optionName, byOptionNumber)
|
||||
local menu = self.func()
|
||||
|
||||
if (byOptionNumber and type (optionName) == "number") then
|
||||
--print ("selected", optionName)
|
||||
return self:Selected (menu [optionName])
|
||||
end
|
||||
|
||||
@@ -489,6 +490,12 @@ function DetailsDropDownOnMouseDown (button)
|
||||
_this_row.label:SetPoint ("left", _this_row.statusbar, "left", 2, 0)
|
||||
end
|
||||
|
||||
if (_table.iconsize) then
|
||||
_this_row.icon:SetSize (_table.iconsize[1], _table.iconsize[2])
|
||||
else
|
||||
_this_row.icon:SetSize (20, 20)
|
||||
end
|
||||
|
||||
if (_table.font) then
|
||||
_this_row.label:SetFont (_table.font, 10.5)
|
||||
else
|
||||
|
||||
@@ -246,6 +246,8 @@ function gump:NewLabel (parent, container, name, member, text, font, size, color
|
||||
LabelObject.label = parent:CreateFontString (name, "OVERLAY", font)
|
||||
LabelObject.widget = LabelObject.label
|
||||
|
||||
LabelObject.label.MyObject = LabelObject
|
||||
|
||||
if (not APILabelFunctions) then
|
||||
APILabelFunctions = true
|
||||
local idx = getmetatable (LabelObject.label).__index
|
||||
|
||||
@@ -0,0 +1,310 @@
|
||||
--File Revision: 1
|
||||
--Last Modification: 07/04/2014
|
||||
-- Change Log:
|
||||
-- 07/04/2014: File Created.
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
local _detalhes = _G._detalhes
|
||||
local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" )
|
||||
local _
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> On Details! Load:
|
||||
--> load default keys into the main object
|
||||
|
||||
function _detalhes:ApplyBasicKeys()
|
||||
|
||||
--> we are not in debug mode
|
||||
self.debug = false
|
||||
|
||||
--> who is
|
||||
self.playername = UnitName ("player")
|
||||
self.playerserial = UnitGUID ("player")
|
||||
|
||||
--> player faction and enemy faction
|
||||
self.faction = UnitFactionGroup ("player")
|
||||
if (self.faction == PLAYER_FACTION_GROUP[0]) then --> player is horde
|
||||
self.faction_against = PLAYER_FACTION_GROUP[1] --> ally
|
||||
elseif (self.faction == PLAYER_FACTION_GROUP[1]) then --> player is alliance
|
||||
self.faction_against = PLAYER_FACTION_GROUP[0] --> horde
|
||||
end
|
||||
|
||||
self.zone_type = nil
|
||||
_detalhes.temp_table1 = {}
|
||||
|
||||
--> combat
|
||||
self.encounter = {}
|
||||
self.in_combat = false
|
||||
self.combat_id = 0
|
||||
|
||||
--> instances (windows)
|
||||
self.solo = self.solo or nil
|
||||
self.raid = self.raid or nil
|
||||
self.opened_windows = 0
|
||||
|
||||
self.default_texture = [[Interface\AddOns\Details\images\bar4]]
|
||||
self.default_texture_name = "Details D'ictum"
|
||||
|
||||
self.tooltip_max_targets = 3
|
||||
self.tooltip_max_abilities = 3
|
||||
self.tooltip_max_pets = 1
|
||||
|
||||
self.class_coords_version = 1
|
||||
self.class_colors_version = 1
|
||||
|
||||
self.school_colors = {
|
||||
[1] = {1.00, 1.00, 0.00},
|
||||
[2] = {1.00, 0.90, 0.50},
|
||||
[4] = {1.00, 0.50, 0.00},
|
||||
[8] = {0.30, 1.00, 0.30},
|
||||
[16] = {0.50, 1.00, 1.00},
|
||||
[32] = {0.50, 0.50, 1.00},
|
||||
[64] = {1.00, 0.50, 1.00},
|
||||
["unknown"] = {0.5, 0.75, 0.75, 1}
|
||||
}
|
||||
|
||||
--> load default profile keys
|
||||
for key, value in pairs (_detalhes.default_profile) do
|
||||
if (type (value) == "table") then
|
||||
local ctable = table_deepcopy (value)
|
||||
self [key] = ctable
|
||||
else
|
||||
self [key] = value
|
||||
end
|
||||
end
|
||||
|
||||
--> end
|
||||
return true
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> On Details! Load:
|
||||
--> check if this is a first run, reset, or else.
|
||||
|
||||
function _detalhes:IsFirstRun()
|
||||
|
||||
--> check and build the default container for character database
|
||||
if (not _detalhes_database) then
|
||||
_detalhes_database = table_deepcopy (_detalhes.default_player_data)
|
||||
end
|
||||
|
||||
if (_detalhes_global and not _detalhes_global.profile_pool) then
|
||||
_detalhes_global.profile_pool = {}
|
||||
end
|
||||
|
||||
for key, value in pairs (_detalhes.default_player_data) do
|
||||
if (_detalhes_database [key] == nil) then
|
||||
if (type (value) == "table") then
|
||||
_detalhes_database [key] = table_deepcopy (_detalhes.default_player_data [key])
|
||||
else
|
||||
_detalhes_database [key] = value
|
||||
end
|
||||
end
|
||||
|
||||
if (type (value) == "table") then
|
||||
_detalhes [key] = table_deepcopy (_detalhes_database [key])
|
||||
else
|
||||
_detalhes [key] = value
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--> check and build the default container for account database
|
||||
if (not _detalhes_global) then
|
||||
_detalhes_global = table_deepcopy (_detalhes.default_global_data)
|
||||
end
|
||||
|
||||
for key, value in pairs (_detalhes.default_global_data) do
|
||||
if (_detalhes_global [key] == nil) then
|
||||
if (type (value) == "table") then
|
||||
_detalhes_global [key] = table_deepcopy (_detalhes.default_global_data [key])
|
||||
else
|
||||
_detalhes_global [key] = value
|
||||
end
|
||||
end
|
||||
|
||||
if (type (value) == "table") then
|
||||
_detalhes [key] = table_deepcopy (_detalhes_global [key])
|
||||
else
|
||||
_detalhes [key] = value
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--> end
|
||||
return true
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> On Details! Load:
|
||||
--> load previous saved combat data
|
||||
|
||||
function _detalhes:LoadCombatTables()
|
||||
|
||||
--> if isn't nothing saved, build a new one
|
||||
if (not _detalhes_database.tabela_historico) then
|
||||
_detalhes.tabela_historico = _detalhes.historico:NovoHistorico()
|
||||
_detalhes.tabela_pets = _detalhes.container_pets:NovoContainer()
|
||||
_detalhes.tabela_overall = _detalhes.combate:NovaTabela()
|
||||
_detalhes.tabela_vigente = _detalhes.combate:NovaTabela (_, _detalhes.tabela_overall)
|
||||
|
||||
else
|
||||
|
||||
--> build basic containers
|
||||
-- segments
|
||||
_detalhes.tabela_historico = _detalhes_database.tabela_historico or _detalhes.historico:NovoHistorico()
|
||||
-- overall
|
||||
_detalhes.tabela_overall = _detalhes.combate:NovaTabela()
|
||||
-- pets
|
||||
_detalhes.tabela_pets = _detalhes_database.tabela_pets or _detalhes.container_pets:NovoContainer()
|
||||
|
||||
--> if the core revision was incremented, reset all combat data
|
||||
if (_detalhes.last_realversion < _detalhes.realversion) then
|
||||
--> details was been hard upgraded
|
||||
_detalhes.tabela_historico = _detalhes.historico:NovoHistorico()
|
||||
_detalhes.tabela_pets = _detalhes.container_pets:NovoContainer()
|
||||
_detalhes.tabela_overall = _detalhes.combate:NovaTabela()
|
||||
_detalhes.tabela_vigente = _detalhes.combate:NovaTabela (_, _detalhes.tabela_overall)
|
||||
end
|
||||
|
||||
--> re-build all indexes and metatables
|
||||
_detalhes:RestauraMetaTables()
|
||||
|
||||
--> get last combat table
|
||||
local historico_UM = _detalhes.tabela_historico.tabelas[1]
|
||||
|
||||
if (historico_UM) then
|
||||
_detalhes.tabela_vigente = historico_UM --> significa que elas eram a mesma tabela, então aqui elas se tornam a mesma tabela
|
||||
else
|
||||
_detalhes.tabela_vigente = _detalhes.combate:NovaTabela (_, _detalhes.tabela_overall)
|
||||
end
|
||||
|
||||
--> need refresh for all containers
|
||||
for _, container in ipairs (_detalhes.tabela_overall) do
|
||||
container.need_refresh = true
|
||||
end
|
||||
for _, container in ipairs (_detalhes.tabela_vigente) do
|
||||
container.need_refresh = true
|
||||
end
|
||||
|
||||
--> erase combat data from the database
|
||||
_detalhes_database.tabela_vigente = nil
|
||||
_detalhes_database.tabela_historico = nil
|
||||
_detalhes_database.tabela_pets = nil
|
||||
end
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> On Details! Load:
|
||||
--> load the saved config on the addon
|
||||
|
||||
function _detalhes:LoadConfig()
|
||||
|
||||
--> profile
|
||||
|
||||
--> instances
|
||||
_detalhes.tabela_instancias = _detalhes_database.tabela_instancias or {}
|
||||
--> plugins data
|
||||
_detalhes.plugin_database = _detalhes_database.plugin_database or {}
|
||||
|
||||
_detalhes:ReativarInstancias()
|
||||
|
||||
--> fix for the 500
|
||||
if (_detalhes_database.active_profile == "") then
|
||||
--> é a primeira vez que este character usa profiles, precisa copiar as keys existentes
|
||||
local current_profile_name = _detalhes:GetCurrentProfileName()
|
||||
_detalhes:GetProfile (current_profile_name, true)
|
||||
_detalhes:SaveProfileSpecial()
|
||||
end
|
||||
|
||||
--> load profile and active instances
|
||||
local current_profile_name = _detalhes:GetCurrentProfileName()
|
||||
_detalhes:GetProfile (current_profile_name, true)
|
||||
|
||||
_detalhes:ApplyProfile (current_profile_name, true)
|
||||
|
||||
--> startup
|
||||
|
||||
--> set the nicktag cache host
|
||||
_detalhes:NickTagSetCache (_detalhes_database.nick_tag_cache)
|
||||
|
||||
--> count data
|
||||
_detalhes:CountDataOnLoad()
|
||||
|
||||
|
||||
--> solo e raid plugin
|
||||
if (_detalhes_database.SoloTablesSaved) then
|
||||
if (_detalhes_database.SoloTablesSaved.Mode) then
|
||||
_detalhes.SoloTables.Mode = _detalhes_database.SoloTablesSaved.Mode
|
||||
_detalhes.SoloTables.LastSelected = _detalhes_database.SoloTablesSaved.LastSelected
|
||||
else
|
||||
_detalhes.SoloTables.Mode = 1
|
||||
end
|
||||
end
|
||||
|
||||
if (_detalhes_database.RaidTablesSaved) then
|
||||
if (_detalhes_database.RaidTablesSaved.Mode) then
|
||||
_detalhes.RaidTables.Mode = _detalhes_database.RaidTablesSaved.Mode
|
||||
_detalhes.RaidTables.LastSelected = _detalhes_database.RaidTablesSaved.LastSelected
|
||||
else
|
||||
_detalhes.RaidTables.Mode = 1
|
||||
end
|
||||
end
|
||||
|
||||
--> switch tables
|
||||
_detalhes.switch.slots = _detalhes_database.switchSaved.slots
|
||||
_detalhes.switch.table = _detalhes_database.switchSaved.table
|
||||
|
||||
--> buffs
|
||||
_detalhes.savedbuffs = _detalhes_database.savedbuffs
|
||||
_detalhes.Buffs:BuildTables()
|
||||
|
||||
--> custom
|
||||
_detalhes.custom = _detalhes_global.custom
|
||||
|
||||
--> parser
|
||||
_detalhes.capture_current = {}
|
||||
for captureType, captureValue in pairs (_detalhes.capture_real) do
|
||||
_detalhes.capture_current [captureType] = captureValue
|
||||
end
|
||||
|
||||
--> spells overwrite
|
||||
_detalhes.SpellOverwriteUser = _detalhes_global.SpellOverwriteUser or _detalhes.SpellOverwriteUser
|
||||
|
||||
--> version first run
|
||||
if (not _detalhes_database.last_version or _detalhes_database.last_version ~= _detalhes.userversion) then
|
||||
_detalhes.is_version_first_run = true
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> On Details! Load:
|
||||
--> count logons, tutorials, etc
|
||||
|
||||
function _detalhes:CountDataOnLoad()
|
||||
|
||||
--> basic
|
||||
if (not _detalhes_global.got_first_run) then
|
||||
_detalhes.is_first_run = true
|
||||
end
|
||||
|
||||
--> tutorial
|
||||
self.tutorial = self.tutorial or {}
|
||||
|
||||
self.tutorial.logons = self.tutorial.logons or 0
|
||||
self.tutorial.logons = self.tutorial.logons + 1
|
||||
|
||||
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
|
||||
self.tutorial.alert_frames = self.tutorial.alert_frames or {false, false, false, false, false, false}
|
||||
|
||||
self.tutorial.main_help_button = self.tutorial.main_help_button + 1
|
||||
|
||||
self.character_data = self.character_data or {logons = 0}
|
||||
self.character_data.logons = self.character_data.logons + 1
|
||||
|
||||
end
|
||||
@@ -0,0 +1,644 @@
|
||||
--File Revision: 1
|
||||
--Last Modification: 07/04/2014
|
||||
-- Change Log:
|
||||
-- 07/04/2014: File Created.
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
local _detalhes = _G._detalhes
|
||||
local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" )
|
||||
local _
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> Profiles:
|
||||
--> return the current profile name
|
||||
|
||||
function _detalhes:GetCurrentProfileName()
|
||||
|
||||
--> check is have a profile name
|
||||
if (_detalhes_database.active_profile == "") then
|
||||
local character_key = UnitName ("player") .. "-" .. GetRealmName()
|
||||
_detalhes_database.active_profile = character_key
|
||||
end
|
||||
|
||||
--> end
|
||||
return _detalhes_database.active_profile
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> Profiles:
|
||||
--> create a new profile
|
||||
|
||||
function _detalhes:CreateProfile (name)
|
||||
|
||||
if (not name or type (name) ~= "string" or name == "") then
|
||||
return false
|
||||
end
|
||||
|
||||
--> check if already exists
|
||||
if (_detalhes_global.__profiles [name]) then
|
||||
return false
|
||||
end
|
||||
|
||||
--> copy the default table
|
||||
local new_profile = table_deepcopy (_detalhes.default_profile)
|
||||
new_profile.instances = {}
|
||||
|
||||
--> add to global container
|
||||
_detalhes_global.__profiles [name] = new_profile
|
||||
|
||||
--> end
|
||||
return new_profile
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> Profiles:
|
||||
--> return the list os all profiles
|
||||
|
||||
function _detalhes:GetProfileList()
|
||||
|
||||
--> build the table
|
||||
local t = {}
|
||||
for name, profile in pairs (_detalhes_global.__profiles) do
|
||||
t [#t + 1] = name
|
||||
end
|
||||
|
||||
--> end
|
||||
return t
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> Profiles:
|
||||
--> delete a profile
|
||||
|
||||
function _detalhes:EraseProfile (profile_name)
|
||||
|
||||
--> erase profile table
|
||||
_detalhes_global.__profiles [profile_name] = nil
|
||||
|
||||
if (_detalhes_database.active_profile == profile_name) then
|
||||
|
||||
local character_key = UnitName ("player") .. "-" .. GetRealmName()
|
||||
|
||||
local my_profile = _detalhes:GetProfile (character_key)
|
||||
|
||||
if (my_profile) then
|
||||
_detalhes:ApplyProfile (character_key, true)
|
||||
else
|
||||
local profile = _detalhes:CreateProfile (character_key)
|
||||
_detalhes:ApplyProfile (character_key, true)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--> end
|
||||
return true
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> Profiles:
|
||||
--> return the profile table requested
|
||||
|
||||
function _detalhes:GetProfile (name, create)
|
||||
|
||||
--> get the profile, create and return
|
||||
local profile = _detalhes_global.__profiles [name]
|
||||
|
||||
if (not profile and not create) then
|
||||
return false
|
||||
|
||||
elseif (not profile and create) then
|
||||
profile = _detalhes:CreateProfile (name)
|
||||
|
||||
end
|
||||
|
||||
--> end
|
||||
return profile
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> Profiles:
|
||||
--> reset the profile
|
||||
function _detalhes:ResetProfile (profile_name)
|
||||
|
||||
--> get the profile
|
||||
local profile = _detalhes:GetProfile (profile_name, true)
|
||||
|
||||
if (not profile) then
|
||||
return false
|
||||
end
|
||||
|
||||
--> reset
|
||||
|
||||
local instances = profile.instances
|
||||
for index, instance in ipairs (instances) do
|
||||
for key, value in pairs (_detalhes.instance_defaults) do
|
||||
if (type (value) == "table") then
|
||||
instance [key] = table_deepcopy (value)
|
||||
else
|
||||
instance [key] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local profile = table_deepcopy (_detalhes.default_profile)
|
||||
profile.instances = instances
|
||||
|
||||
_detalhes:ApplyProfile (profile_name, true)
|
||||
|
||||
--> end
|
||||
return true
|
||||
end
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> Profiles:
|
||||
--> return the profile table requested
|
||||
|
||||
function _detalhes:ApplyProfile (profile_name, nosave, is_copy)
|
||||
|
||||
--> get the profile
|
||||
local profile = _detalhes:GetProfile (profile_name, true)
|
||||
|
||||
--> if the profile doesn't exist, just quit
|
||||
if (not profile) then
|
||||
_detalhes:Msg ("Profile Not Found.")
|
||||
return false
|
||||
end
|
||||
|
||||
--> always save the previous profile, except if nosave flag is up
|
||||
if (not nosave) then
|
||||
--> salva o profile ativo no momento
|
||||
_detalhes:SaveProfile()
|
||||
end
|
||||
|
||||
--> update profile keys before go
|
||||
for key, value in pairs (_detalhes.default_profile) do
|
||||
if (profile [key] == nil) then
|
||||
if (type (value) == "table") then
|
||||
profile [key] = table_deepcopy (_detalhes.default_profile [key])
|
||||
else
|
||||
profile [key] = value
|
||||
end
|
||||
|
||||
elseif (type (value) == "table") then
|
||||
for key2, value2 in pairs (value) do
|
||||
if (profile [key] [key2] == nil) then
|
||||
if (type (value2) == "table") then
|
||||
profile [key] [key2] = table_deepcopy (_detalhes.default_profile [key] [key2])
|
||||
else
|
||||
profile [key] [key2] = value2
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
--> apply the profile values
|
||||
for key, _ in pairs (_detalhes.default_profile) do
|
||||
local value = profile [key]
|
||||
|
||||
if (type (value) == "table") then
|
||||
local ctable = table_deepcopy (value)
|
||||
_detalhes [key] = ctable
|
||||
else
|
||||
_detalhes [key] = value
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--> apply the skin
|
||||
|
||||
local saved_skins = profile.instances
|
||||
|
||||
--> we need to create instances if the profile have more saved skins then the current amount of instances
|
||||
if (#_detalhes.tabela_instancias < #saved_skins) then
|
||||
for i = #_detalhes.tabela_instancias+1, #saved_skins do
|
||||
|
||||
--> esse inicio precisa ser em silêncio
|
||||
|
||||
local new_instance = _detalhes:CreateInstance (true)
|
||||
if (not new_instance) then
|
||||
break
|
||||
end
|
||||
|
||||
new_instance:ShutDown()
|
||||
end
|
||||
end
|
||||
|
||||
for index, instance in ipairs (_detalhes.tabela_instancias) do
|
||||
|
||||
local this_skin = saved_skins [index]
|
||||
|
||||
if (this_skin) then
|
||||
if (not instance.iniciada and not _detalhes.initializing) then
|
||||
instance:RestauraJanela()
|
||||
instance:ApplySavedSkin (this_skin)
|
||||
instance:DesativarInstancia()
|
||||
elseif (instance.iniciada) then
|
||||
instance:ApplySavedSkin (this_skin)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--> end
|
||||
|
||||
if (not is_copy) then
|
||||
_detalhes.active_profile = profile_name
|
||||
_detalhes_database.active_profile = profile_name
|
||||
--_detalhes:SaveProfile()
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> Profiles:
|
||||
--> return the profile table requested
|
||||
|
||||
function _detalhes:SaveProfile (saveas)
|
||||
|
||||
--> get the current profile
|
||||
|
||||
local profile_name
|
||||
|
||||
if (saveas) then
|
||||
profile_name = saveas
|
||||
else
|
||||
profile_name = _detalhes:GetCurrentProfileName()
|
||||
end
|
||||
|
||||
local profile = _detalhes:GetProfile (profile_name, true)
|
||||
|
||||
--> save default keys
|
||||
|
||||
for key, _ in pairs (_detalhes.default_profile) do
|
||||
|
||||
local current_value = _detalhes [key]
|
||||
|
||||
if (type (current_value) == "table") then
|
||||
local ctable = table_deepcopy (current_value)
|
||||
profile [key] = ctable
|
||||
else
|
||||
profile [key] = current_value
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--> save skins
|
||||
table.wipe (profile.instances)
|
||||
|
||||
for index, instance in ipairs (_detalhes.tabela_instancias) do
|
||||
local exported = instance:ExportSkin()
|
||||
profile.instances [index] = exported
|
||||
end
|
||||
|
||||
--> end
|
||||
return profile
|
||||
end
|
||||
|
||||
local default_profile = {
|
||||
|
||||
--> class icons and colors
|
||||
class_icons_small = [[Interface\AddOns\Details\images\classes_small]],
|
||||
class_coords = {
|
||||
["HUNTER"] = {
|
||||
0, -- [1]
|
||||
0.25, -- [2]
|
||||
0.25, -- [3]
|
||||
0.5, -- [4]
|
||||
},
|
||||
["WARRIOR"] = {
|
||||
0, -- [1]
|
||||
0.25, -- [2]
|
||||
0, -- [3]
|
||||
0.25, -- [4]
|
||||
},
|
||||
["ROGUE"] = {
|
||||
0.49609375, -- [1]
|
||||
0.7421875, -- [2]
|
||||
0, -- [3]
|
||||
0.25, -- [4]
|
||||
},
|
||||
["MAGE"] = {
|
||||
0.25, -- [1]
|
||||
0.49609375, -- [2]
|
||||
0, -- [3]
|
||||
0.25, -- [4]
|
||||
},
|
||||
["PET"] = {
|
||||
0.25, -- [1]
|
||||
0.49609375, -- [2]
|
||||
0.75, -- [3]
|
||||
1, -- [4]
|
||||
},
|
||||
["DRUID"] = {
|
||||
0.7421875, -- [1]
|
||||
0.98828125, -- [2]
|
||||
0, -- [3]
|
||||
0.25, -- [4]
|
||||
},
|
||||
["MONK"] = {
|
||||
0.5, -- [1]
|
||||
0.73828125, -- [2]
|
||||
0.5, -- [3]
|
||||
0.75, -- [4]
|
||||
},
|
||||
["DEATHKNIGHT"] = {
|
||||
0.25, -- [1]
|
||||
0.5, -- [2]
|
||||
0.5, -- [3]
|
||||
0.75, -- [4]
|
||||
},
|
||||
["UNKNOW"] = {
|
||||
0.5, -- [1]
|
||||
0.75, -- [2]
|
||||
0.75, -- [3]
|
||||
1, -- [4]
|
||||
},
|
||||
["PRIEST"] = {
|
||||
0.49609375, -- [1]
|
||||
0.7421875, -- [2]
|
||||
0.25, -- [3]
|
||||
0.5, -- [4]
|
||||
},
|
||||
["UNGROUPPLAYER"] = {
|
||||
0.5, -- [1]
|
||||
0.75, -- [2]
|
||||
0.75, -- [3]
|
||||
1, -- [4]
|
||||
},
|
||||
["Alliance"] = {
|
||||
0.49609375, -- [1]
|
||||
0.7421875, -- [2]
|
||||
0.75, -- [3]
|
||||
1, -- [4]
|
||||
},
|
||||
["WARLOCK"] = {
|
||||
0.7421875, -- [1]
|
||||
0.98828125, -- [2]
|
||||
0.25, -- [3]
|
||||
0.5, -- [4]
|
||||
},
|
||||
["ENEMY"] = {
|
||||
0, -- [1]
|
||||
0.25, -- [2]
|
||||
0.75, -- [3]
|
||||
1, -- [4]
|
||||
},
|
||||
["Horde"] = {
|
||||
0.7421875, -- [1]
|
||||
0.98828125, -- [2]
|
||||
0.75, -- [3]
|
||||
1, -- [4]
|
||||
},
|
||||
["PALADIN"] = {
|
||||
0, -- [1]
|
||||
0.25, -- [2]
|
||||
0.5, -- [3]
|
||||
0.75, -- [4]
|
||||
},
|
||||
["MONSTER"] = {
|
||||
0, -- [1]
|
||||
0.25, -- [2]
|
||||
0.75, -- [3]
|
||||
1, -- [4]
|
||||
},
|
||||
["SHAMAN"] = {
|
||||
0.25, -- [1]
|
||||
0.49609375, -- [2]
|
||||
0.25, -- [3]
|
||||
0.5, -- [4]
|
||||
},
|
||||
},
|
||||
|
||||
class_colors = {
|
||||
["HUNTER"] = {
|
||||
0.67, -- [1]
|
||||
0.83, -- [2]
|
||||
0.45, -- [3]
|
||||
},
|
||||
["WARRIOR"] = {
|
||||
0.78, -- [1]
|
||||
0.61, -- [2]
|
||||
0.43, -- [3]
|
||||
},
|
||||
["PALADIN"] = {
|
||||
0.96, -- [1]
|
||||
0.55, -- [2]
|
||||
0.73, -- [3]
|
||||
},
|
||||
["SHAMAN"] = {
|
||||
0, -- [1]
|
||||
0.44, -- [2]
|
||||
0.87, -- [3]
|
||||
},
|
||||
["MAGE"] = {
|
||||
0.41, -- [1]
|
||||
0.8, -- [2]
|
||||
0.94, -- [3]
|
||||
},
|
||||
["ROGUE"] = {
|
||||
1, -- [1]
|
||||
0.96, -- [2]
|
||||
0.41, -- [3]
|
||||
},
|
||||
["UNKNOW"] = {
|
||||
0.2, -- [1]
|
||||
0.2, -- [2]
|
||||
0.2, -- [3]
|
||||
},
|
||||
["PRIEST"] = {
|
||||
1, -- [1]
|
||||
1, -- [2]
|
||||
1, -- [3]
|
||||
},
|
||||
["WARLOCK"] = {
|
||||
0.58, -- [1]
|
||||
0.51, -- [2]
|
||||
0.79, -- [3]
|
||||
},
|
||||
["UNGROUPPLAYER"] = {
|
||||
0.4, -- [1]
|
||||
0.4, -- [2]
|
||||
0.4, -- [3]
|
||||
},
|
||||
["ENEMY"] = {
|
||||
0.94117, -- [1]
|
||||
0, -- [2]
|
||||
0.0196, -- [3]
|
||||
1, -- [4]
|
||||
},
|
||||
["version"] = 1,
|
||||
["PET"] = {
|
||||
0.3, -- [1]
|
||||
0.4, -- [2]
|
||||
0.5, -- [3]
|
||||
},
|
||||
["DRUID"] = {
|
||||
1, -- [1]
|
||||
0.49, -- [2]
|
||||
0.04, -- [3]
|
||||
},
|
||||
["MONK"] = {
|
||||
0, -- [1]
|
||||
1, -- [2]
|
||||
0.59, -- [3]
|
||||
},
|
||||
["DEATHKNIGHT"] = {
|
||||
0.77, -- [1]
|
||||
0.12, -- [2]
|
||||
0.23, -- [3]
|
||||
},
|
||||
},
|
||||
|
||||
--> minimap
|
||||
minimap = {hide = false, radius = 160, minimapPos = 220},
|
||||
--> PvP
|
||||
only_pvp_frags = false,
|
||||
|
||||
--> window size
|
||||
max_window_size = {width = 480, height = 450},
|
||||
new_window_size = {width = 300, height = 95},
|
||||
window_clamp = {-8, 0, 21, -14},
|
||||
|
||||
--> segments
|
||||
segments_amount = 12,
|
||||
segments_amount_to_save = 5,
|
||||
segments_panic_mode = true,
|
||||
--> max instances
|
||||
instances_amount = 12,
|
||||
--> if clear ungroup characters when logout
|
||||
clear_ungrouped = true,
|
||||
--> if clear graphic data when logout
|
||||
clear_graphic = true,
|
||||
|
||||
--> text sizes
|
||||
font_sizes = {menus = 10},
|
||||
ps_abbreviation = 3,
|
||||
|
||||
--> performance
|
||||
use_row_animations = false,
|
||||
animate_scroll = false,
|
||||
use_scroll = false,
|
||||
update_speed = 1,
|
||||
time_type = 2,
|
||||
memory_threshold = 3,
|
||||
memory_ram = 64,
|
||||
remove_realm_from_name = true,
|
||||
trash_concatenate = false,
|
||||
trash_auto_remove = true,
|
||||
|
||||
--> death log
|
||||
deadlog_limit = 12,
|
||||
|
||||
--> report
|
||||
report_lines = 5,
|
||||
report_to_who = "",
|
||||
|
||||
--> colors
|
||||
default_bg_color = 0.0941,
|
||||
default_bg_alpha = 0.5,
|
||||
|
||||
--> fades
|
||||
row_fade_in = {"in", 0.2},
|
||||
windows_fade_in = {"in", 0.2},
|
||||
row_fade_out = {"out", 0.2},
|
||||
windows_fade_out = {"out", 0.2},
|
||||
|
||||
--> captures
|
||||
capture_real = {
|
||||
["damage"] = true,
|
||||
["heal"] = true,
|
||||
["energy"] = false,
|
||||
["miscdata"] = true,
|
||||
["aura"] = true,
|
||||
["spellcast"] = true,
|
||||
},
|
||||
|
||||
--> cloud capture
|
||||
cloud_capture = true,
|
||||
--> combat time mim
|
||||
minimum_combat_time = 5,
|
||||
|
||||
--> skins
|
||||
standard_skin = false, --?
|
||||
skin = "Default Skin", --?
|
||||
--> modes
|
||||
|
||||
--> switch
|
||||
|
||||
}
|
||||
|
||||
_detalhes.default_profile = default_profile
|
||||
|
||||
-- aqui fica as propriedades do jogador que não serão armazenadas no profile
|
||||
local default_player_data = {
|
||||
--> current combat number
|
||||
combat_id = 0,
|
||||
--> nicktag cache
|
||||
nick_tag_cache = {},
|
||||
--> plugin data
|
||||
plugin_database = {},
|
||||
--> information about this character
|
||||
character_data = {logons = 0},
|
||||
--> version
|
||||
last_realversion = _detalhes.realversion,
|
||||
last_version = "v1.0.0",
|
||||
--> profile
|
||||
active_profile = "",
|
||||
--> plugins tables
|
||||
SoloTablesSaved = {},
|
||||
RaidTablesSaved = {},
|
||||
--> switch tables
|
||||
switchSaved = {slots = 6, table = {}},
|
||||
--> saved skins
|
||||
savedStyles = {},
|
||||
}
|
||||
|
||||
_detalhes.default_player_data = default_player_data
|
||||
|
||||
local default_global_data = {
|
||||
|
||||
--> profile pool
|
||||
__profiles = {},
|
||||
custom = {},
|
||||
savedStyles = {},
|
||||
tutorial = {logons = 0, unlock_button = 0, version_announce = 0, main_help_button = 0, alert_frames = {false, false, false, false, false, false}, },
|
||||
}
|
||||
|
||||
_detalhes.default_global_data = default_global_data
|
||||
|
||||
|
||||
|
||||
function _detalhes:SaveProfileSpecial()
|
||||
|
||||
--> get the current profile
|
||||
local profile_name = _detalhes:GetCurrentProfileName()
|
||||
local profile = _detalhes:GetProfile (profile_name, true)
|
||||
|
||||
--> save default keys
|
||||
for key, _ in pairs (_detalhes.default_profile) do
|
||||
|
||||
local current_value = _detalhes_database [key] or _detalhes_global [key] or _detalhes.default_player_data [key] or _detalhes.default_global_data [key]
|
||||
|
||||
if (type (current_value) == "table") then
|
||||
local ctable = table_deepcopy (current_value)
|
||||
profile [key] = ctable
|
||||
else
|
||||
profile [key] = current_value
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--> save skins
|
||||
table.wipe (profile.instances)
|
||||
|
||||
for index, instance in ipairs (_detalhes.tabela_instancias) do
|
||||
local exported = instance:ExportSkin()
|
||||
profile.instances [index] = exported
|
||||
end
|
||||
|
||||
--> end
|
||||
return profile
|
||||
end
|
||||
+87
-125
@@ -119,6 +119,11 @@ end
|
||||
-- On Account
|
||||
|
||||
_detalhes_global = _detalhes_global or {}
|
||||
|
||||
--> profiles
|
||||
_detalhes_global.__profiiles = _detalhes.__profiiles
|
||||
|
||||
--> skins
|
||||
_detalhes_global.savedStyles = _detalhes.savedStyles
|
||||
_detalhes_global.standard_skin = _detalhes.standard_skin
|
||||
_detalhes_global.got_first_run = true
|
||||
@@ -146,11 +151,15 @@ end
|
||||
--tutorial
|
||||
_detalhes_global.tutorial = _detalhes.tutorial
|
||||
|
||||
--profiles
|
||||
_detalhes_global.__profiiles = _detalhes.__profiiles
|
||||
|
||||
return true
|
||||
|
||||
end
|
||||
|
||||
local force_reset = function()
|
||||
print ("Check Point: Force reset.")
|
||||
_detalhes.tabela_instancias = {}
|
||||
_detalhes.tabela_historico = _detalhes.historico:NovoHistorico()
|
||||
_detalhes.tabela_pets = _detalhes.container_pets:NovoContainer()
|
||||
@@ -171,20 +180,20 @@ end --]]
|
||||
|
||||
if (_detalhes_database) then
|
||||
|
||||
----------------------------------------------------------------------------------------
|
||||
--> fora dos profiles
|
||||
----------------------------------------------------------------------------------------
|
||||
|
||||
--> nicktag cache
|
||||
_detalhes.nick_tag_cache = _detalhes_database.nick_tag_cache or {}
|
||||
_detalhes:NickTagSetCache (_detalhes.nick_tag_cache)
|
||||
_detalhes.only_pvp_frags = _detalhes_database.only_pvp_frags
|
||||
|
||||
--> minimap
|
||||
_detalhes.minimap = _detalhes_database.minimap
|
||||
|
||||
--> plugin data
|
||||
_detalhes.plugin_database = _detalhes_database.plugin_database
|
||||
|
||||
|
||||
--> character info
|
||||
_detalhes.character_data = _detalhes_database.character_data
|
||||
|
||||
|
||||
--> build basic containers
|
||||
_detalhes.tabela_historico = _detalhes_database.tabela_historico or _detalhes.historico:NovoHistorico() -- segments
|
||||
_detalhes.tabela_overall = _detalhes.combate:NovaTabela() -- overall
|
||||
@@ -205,16 +214,10 @@ end --]]
|
||||
if (_detalhes.last_version ~= _detalhes.userversion) then
|
||||
_detalhes.is_version_first_run = true
|
||||
end
|
||||
|
||||
|
||||
--> re-build all indexes and metatables
|
||||
_detalhes:RestauraMetaTables()
|
||||
|
||||
--> instances (windows)
|
||||
_detalhes.tabela_instancias = _detalhes_database.tabela_instancias or {}
|
||||
_detalhes.class_icons_small = _detalhes_database.class_icons_small
|
||||
_detalhes.class_coords = _detalhes_database.class_coords
|
||||
_detalhes.class_colors = _detalhes_database.class_colors
|
||||
|
||||
|
||||
--> get last combat table
|
||||
local historico_UM = _detalhes.tabela_historico.tabelas[1]
|
||||
|
||||
@@ -225,6 +228,22 @@ end --]]
|
||||
end
|
||||
|
||||
_detalhes.combat_id = _detalhes_database.combat_id
|
||||
|
||||
----------------------------------------------------------------------------------------
|
||||
--> estão nos profiles
|
||||
----------------------------------------------------------------------------------------
|
||||
|
||||
--> minimap
|
||||
_detalhes.minimap = _detalhes_database.minimap
|
||||
--> PvP
|
||||
_detalhes.only_pvp_frags = _detalhes_database.only_pvp_frags
|
||||
|
||||
--> instances (windows)
|
||||
|
||||
_detalhes.tabela_instancias = _detalhes_database.tabela_instancias or {}
|
||||
_detalhes.class_icons_small = _detalhes_database.class_icons_small
|
||||
_detalhes.class_coords = _detalhes_database.class_coords
|
||||
_detalhes.class_colors = _detalhes_database.class_colors
|
||||
|
||||
if (_detalhes_database.SoloTables) then
|
||||
if (_detalhes_database.SoloTables.Mode) then
|
||||
@@ -303,12 +322,12 @@ end --]]
|
||||
_detalhes_database.tabela_pets = nil
|
||||
|
||||
else
|
||||
_detalhes.tabela_instancias = {}
|
||||
_detalhes.tabela_historico = _detalhes.historico:NovoHistorico()
|
||||
_detalhes.tabela_pets = _detalhes.container_pets:NovoContainer()
|
||||
_detalhes.tabela_overall = _detalhes.combate:NovaTabela()
|
||||
_detalhes.tabela_vigente = _detalhes.combate:NovaTabela (_, _detalhes.tabela_overall)
|
||||
_detalhes_database = {}
|
||||
_detalhes.tabela_instancias = {}
|
||||
_detalhes.tabela_historico = _detalhes.historico:NovoHistorico()
|
||||
_detalhes.tabela_pets = _detalhes.container_pets:NovoContainer()
|
||||
_detalhes.tabela_overall = _detalhes.combate:NovaTabela()
|
||||
_detalhes.tabela_vigente = _detalhes.combate:NovaTabela (_, _detalhes.tabela_overall)
|
||||
_detalhes_database = {}
|
||||
end
|
||||
|
||||
-- capture
|
||||
@@ -333,7 +352,6 @@ end --]]
|
||||
_detalhes.cloud_capture = _detalhes_database.cloud_capture
|
||||
_detalhes.minimum_combat_time = _detalhes_database.minimum_combat_time
|
||||
|
||||
|
||||
-- On Account
|
||||
|
||||
local _detalhes_global = _G._detalhes_global
|
||||
@@ -342,6 +360,8 @@ end --]]
|
||||
--saved styles
|
||||
--vardump (_detalhes_global.savedStyles)
|
||||
|
||||
_detalhes.__profiiles = _detalhes_global.__profiiles
|
||||
|
||||
_detalhes.savedStyles = _detalhes_global.savedStyles or _detalhes.savedStyles
|
||||
_detalhes.standard_skin = _detalhes_global.standard_skin
|
||||
|
||||
@@ -371,6 +391,10 @@ end --]]
|
||||
|
||||
--tutorial
|
||||
_detalhes.tutorial = _detalhes_global.tutorial
|
||||
|
||||
--profiles
|
||||
_detalhes.__profiiles = _detalhes_global.__profiiles
|
||||
|
||||
else
|
||||
_detalhes.is_first_run = true
|
||||
end
|
||||
@@ -391,115 +415,53 @@ function _detalhes:WipeConfig()
|
||||
|
||||
end
|
||||
|
||||
function _detalhes:ApplyConfigDataOnLoad()
|
||||
|
||||
--> basic
|
||||
self.instances_amount = self.instances_amount or 12
|
||||
self.segments_amount = self.segments_amount or 12
|
||||
self.segments_amount_to_save = self.segments_amount_to_save or 5
|
||||
self.memory_threshold = self.memory_threshold or 3
|
||||
self.memory_ram = self.memory_ram or 64
|
||||
self.deadlog_limit = self.deadlog_limit or 12
|
||||
self.minimum_combat_time = self.minimum_combat_time or 5
|
||||
self.update_speed = self.update_speed or 1
|
||||
self.time_type = self.time_type or 2
|
||||
self.row_fade_in = self.row_fade_in or {"in", 0.2}
|
||||
self.row_fade_out = self.row_fade_out or {"out", 0.2}
|
||||
self.windows_fade_in = self.windows_fade_in or {"in", 0.2}
|
||||
self.windows_fade_out = self.windows_fade_out or {"out", 0.2}
|
||||
self.default_bg_color = self.default_bg_color or 0.0941
|
||||
self.default_bg_alpha = self.default_bg_alpha or 0.7
|
||||
self.new_window_size = self.new_window_size or {width = 300, height = 95}
|
||||
self.max_window_size = self.max_window_size or {width = 480, height = 450}
|
||||
self.window_clamp = self.window_clamp or {-8, 0, 21, -14}
|
||||
self.window_clamp = {-8, 0, 21, -14}
|
||||
self.report_lines = self.report_lines or 5
|
||||
self.report_to_who = self.report_to_who or ""
|
||||
self.animate_scroll = self.animate_scroll or false
|
||||
self.use_scroll = self.use_scroll or false
|
||||
self.font_sizes = self.font_sizes or {menus = 10}
|
||||
self.minimap = self.minimap or {hide = false, radius = 160, minimapPos = 220}
|
||||
function _detalhes:SaveConfig()
|
||||
|
||||
self.ps_abbreviation = self.ps_abbreviation or 3
|
||||
--> cleanup
|
||||
_detalhes:PrepareTablesForSave()
|
||||
_detalhes_database.tabela_instancias = _detalhes.tabela_instancias
|
||||
|
||||
--> buffs
|
||||
_detalhes.Buffs:SaveBuffs()
|
||||
|
||||
self.plugin_database = self.plugin_database or {}
|
||||
|
||||
--> tutorial
|
||||
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
|
||||
self.tutorial.alert_frames = self.tutorial.alert_frames or {false, false, false, false, false, false}
|
||||
self.tutorial.logons = self.tutorial.logons + 1
|
||||
self.tutorial.main_help_button = self.tutorial.main_help_button + 1
|
||||
self.character_data = self.character_data or {logons = 0}
|
||||
self.character_data.logons = self.character_data.logons + 1
|
||||
|
||||
--> class colors
|
||||
if (not self.class_colors or not self.class_colors.version or self.class_colors.version < self.class_colors_version) then
|
||||
self.class_colors = {version = 1}
|
||||
for classe, tabela_cor in pairs ( RAID_CLASS_COLORS ) do
|
||||
self.class_colors [classe] = {tabela_cor.r, tabela_cor.g, tabela_cor.b}
|
||||
--> salva o container do personagem
|
||||
for key, value in pairs (_detalhes.default_player_data) do
|
||||
_detalhes_database [key] = _detalhes [key]
|
||||
end
|
||||
self.class_colors ["UNKNOW"] = {0.2, 0.2, 0.2}
|
||||
self.class_colors ["UNGROUPPLAYER"] = {0.4, 0.4, 0.4}
|
||||
self.class_colors ["PET"] = {0.3, 0.4, 0.5}
|
||||
self.class_colors ["ENEMY"] = {0.94117, 0, 0.01960, 1}
|
||||
end
|
||||
|
||||
self.class_icons_small = self.class_icons_small or [[Interface\AddOns\Details\images\classes_small]]
|
||||
|
||||
--> class coords
|
||||
if (not self.class_coords or not self.class_coords.version or self.class_coords.version < self.class_coords_version) then
|
||||
self.class_coords = {}
|
||||
for class, tcoord in pairs (_G.CLASS_ICON_TCOORDS) do
|
||||
self.class_coords [class] = tcoord
|
||||
--> salva o container das globais
|
||||
for key, value in pairs (_detalhes.default_global_data) do
|
||||
if (key ~= "__profiles") then
|
||||
_detalhes_global [key] = _detalhes [key]
|
||||
end
|
||||
end
|
||||
|
||||
self.class_coords ["Alliance"] = {0.49609375, 0.7421875, 0.75, 1}
|
||||
self.class_coords ["Horde"] = {0.7421875, 0.98828125, 0.75, 1}
|
||||
self.class_coords ["PET"] = {0.25, 0.49609375, 0.75, 1}
|
||||
self.class_coords ["MONSTER"] = {0, 0.25, 0.75, 1}
|
||||
self.class_coords ["ENEMY"] = {0, 0.25, 0.75, 1}
|
||||
self.class_coords ["UNKNOW"] = {0.5, 0.75, 0.75, 1}
|
||||
self.class_coords ["UNGROUPPLAYER"] = {0.5, 0.75, 0.75, 1}
|
||||
end
|
||||
--> solo e raid mode
|
||||
if (_detalhes.SoloTables.Mode) then
|
||||
_detalhes_database.SoloTablesSaved = {}
|
||||
_detalhes_database.SoloTablesSaved.Mode = _detalhes.SoloTables.Mode
|
||||
if (_detalhes.SoloTables.Plugins [_detalhes.SoloTables.Mode]) then
|
||||
_detalhes_database.SoloTablesSaved.LastSelected = _detalhes.SoloTables.Plugins [_detalhes.SoloTables.Mode].real_name
|
||||
end
|
||||
end
|
||||
if (_detalhes.RaidTables.Mode) then
|
||||
_detalhes_database.RaidTablesSaved = {}
|
||||
_detalhes_database.RaidTablesSaved.Mode = _detalhes.RaidTables.Mode
|
||||
if (_detalhes.RaidTables.Plugins [_detalhes.RaidTables.Mode]) then
|
||||
_detalhes_database.RaidTablesSaved.LastSelected = _detalhes.RaidTables.Plugins [_detalhes.RaidTables.Mode].real_name
|
||||
end
|
||||
end
|
||||
|
||||
--> salva switch tables
|
||||
_detalhes_database.switchSaved.slots = _detalhes.switch.slots
|
||||
_detalhes_database.switchSaved.table = _detalhes.switch.table
|
||||
|
||||
--> last versions
|
||||
_detalhes_database.last_realversion = _detalhes.realversion --> core number
|
||||
_detalhes_database.last_version = _detalhes.userversion --> version
|
||||
_detalhes_global.got_first_run = true
|
||||
|
||||
--> booleans
|
||||
if (type (self.trash_concatenate) ~= "boolean") then
|
||||
self.trash_concatenate = false
|
||||
end
|
||||
if (type (self.trash_auto_remove) ~= "boolean") then
|
||||
self.trash_auto_remove = true
|
||||
end
|
||||
--> overwrite spells
|
||||
_detalhes_global.SpellOverwriteUser = _detalhes.SpellOverwriteUser
|
||||
|
||||
if (type (self.only_pvp_frags) ~= "boolean") then
|
||||
self.only_pvp_frags = false
|
||||
end
|
||||
|
||||
if (type (self.remove_realm_from_name) ~= "boolean") then
|
||||
self.remove_realm_from_name = true
|
||||
end
|
||||
|
||||
if (type (self.cloud_capture) ~= "boolean") then
|
||||
self.cloud_capture = true
|
||||
end
|
||||
|
||||
if (type (self.segments_panic_mode) ~= "boolean") then
|
||||
self.segments_panic_mode = true
|
||||
end
|
||||
|
||||
if (type (self.clear_graphic) ~= "boolean") then
|
||||
self.clear_graphic = self.clear_graphic or true
|
||||
end
|
||||
|
||||
if (type (self.clear_ungrouped) ~= "boolean") then
|
||||
self.clear_ungrouped = self.clear_ungrouped or true
|
||||
end
|
||||
|
||||
if (type (self.use_row_animations) ~= "boolean") then
|
||||
self.use_row_animations = self.use_row_animations or false
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
+2
-2
@@ -97,7 +97,7 @@ local _
|
||||
menu_anchor = {-18, 1},
|
||||
instance_button_anchor = {-12, 3},
|
||||
instancebutton_info = {text_color = {.8, .6, .0, 0.8}, text_face = "Friz Quadrata TT", text_size = 10, color_overlay = {1, 1, 1, 1}},
|
||||
resetbutton_info = {text_color = {.8, .8, .8, 0.8}, text_face = "Friz Quadrata TT", text_size = 12, color_overlay = {1, 1, 1, 1}, always_small = true},
|
||||
resetbutton_info = {text_color = {.8, .8, .8, 0.8}, text_color_small = {0, 0, 0, 0}, text_face = "Friz Quadrata TT", text_size = 12, color_overlay = {1, 1, 1, 1}, always_small = true},
|
||||
show_sidebars = false,
|
||||
show_statusbar = false,
|
||||
color = {.3, .3, .3, 1},
|
||||
@@ -381,7 +381,7 @@ local _
|
||||
--[[ when a skin is selected, all customized properties of the window is reseted and then the overwrites are applied]]
|
||||
--[[ for the complete cprop list see the file classe_instancia_include.lua]]
|
||||
instance_cprops = {
|
||||
resetbutton_info = {text_color = {0.7, 0.7, 0.7, 1}, text_face = "Friz Quadrata TT", text_size = 12, color_overlay = {1, 1, 1, 1}},
|
||||
resetbutton_info = {text_color = {0.7, 0.7, 0.7, 1}, text_color_small = {0, 0, 0, 0}, text_face = "Friz Quadrata TT", text_size = 12, color_overlay = {1, 1, 1, 1}},
|
||||
instancebutton_info = {text_color = {.7, .7, .7, 1}, text_face = "Friz Quadrata TT", text_size = 12, color_overlay = {1, 1, 1, 1}},
|
||||
menu_anchor = {-18, 1},
|
||||
instance_button_anchor = {-27, 3},
|
||||
|
||||
+16
-2
@@ -69,8 +69,14 @@ function SlashCmdList.DETAILS (msg, editbox)
|
||||
end
|
||||
else
|
||||
local lower_instance = _detalhes:GetLowerInstanceNumber()
|
||||
print (_detalhes:GetInstance (lower_instance))
|
||||
_detalhes:OpenOptionsWindow (_detalhes:GetInstance (lower_instance))
|
||||
if (not lower_instance) then
|
||||
local instance = _detalhes:GetInstance (1)
|
||||
_detalhes.CriarInstancia (_, _, 1)
|
||||
_detalhes:OpenOptionsWindow (instance)
|
||||
else
|
||||
_detalhes:OpenOptionsWindow (_detalhes:GetInstance (lower_instance))
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
elseif (command == Loc ["STRING_SLASH_WORLDBOSS"]) then
|
||||
@@ -418,6 +424,14 @@ function SlashCmdList.DETAILS (msg, editbox)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
elseif (command == "profile") then
|
||||
|
||||
local profile = rest:match("^(%S*)%s*(.-)$")
|
||||
|
||||
print ("Force apply profile: ", profile)
|
||||
|
||||
_detalhes:ApplyProfile (profile, false)
|
||||
|
||||
elseif (msg == "users") then
|
||||
_detalhes.users = {}
|
||||
|
||||
+327
-62
@@ -9,6 +9,7 @@ local LDBIcon = LDB and LibStub ("LibDBIcon-1.0", true)
|
||||
local g = _detalhes.gump
|
||||
local _
|
||||
local preset_version = 3
|
||||
_detalhes.preset_version = preset_version
|
||||
|
||||
function _detalhes:OpenOptionsWindow (instance)
|
||||
|
||||
@@ -128,7 +129,12 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
|
||||
if (atributo == 5) then --> custom
|
||||
local CustomObject = _detalhes.custom [sub_atributo]
|
||||
InstanceList [#InstanceList+1] = {value = index, label = _detalhes.atributos.lista [atributo] .. " - " .. CustomObject.name, onclick = onSelectInstance, icon = CustomObject.icon}
|
||||
|
||||
if (CustomObject) then
|
||||
InstanceList [#InstanceList+1] = {value = index, label = _detalhes.atributos.lista [atributo] .. " - " .. CustomObject.name, onclick = onSelectInstance, icon = CustomObject.icon}
|
||||
else
|
||||
InstanceList [#InstanceList+1] = {value = index, label = "unknown" .. " - " .. " invalid custom", onclick = onSelectInstance, icon = [[Interface\COMMON\VOICECHAT-MUTED]]}
|
||||
end
|
||||
|
||||
else
|
||||
local modo = _this_instance.modo
|
||||
@@ -159,6 +165,9 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
return InstanceList
|
||||
end
|
||||
|
||||
--local profile_string = g:NewLabel (window, nil, nil, "instancetext", "Current Profile:", "GameFontNormal", 12)
|
||||
--profile_string:SetPoint ("bottomleft", window, "bottomleft", 27, 11)
|
||||
|
||||
local instances = g:NewDropDown (window, _, "$parentInstanceSelectDropdown", "instanceDropdown", 200, 18, buildInstanceMenu, nil)
|
||||
instances:SetPoint ("bottomright", window, "bottomright", -17, 09)
|
||||
|
||||
@@ -169,13 +178,44 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
--instances_string:Hide()
|
||||
|
||||
--> left panel buttons
|
||||
local select_options = function (options_type)
|
||||
|
||||
local menu_indexes = {
|
||||
[1] = "General Settings",
|
||||
[2] = "General Settings",
|
||||
[13] = "General Settings",
|
||||
[3] = "Appearance",
|
||||
[4] = "Appearance",
|
||||
[5] = "Appearance",
|
||||
[6] = "Appearance",
|
||||
[7] = "Appearance",
|
||||
[8] = "Appearance",
|
||||
[9] = "Appearance",
|
||||
[10] = "Performance",
|
||||
[11] = "Performance",
|
||||
[12] = "Skins",
|
||||
}
|
||||
|
||||
local menus = {
|
||||
{"Display", "Combat", "Profiles"},
|
||||
{"Skin Selection", "Row Settings", "Row Texts", "Window Settings", "Menu Bar", "Reset/Instance/Close", "Wallpaper"},
|
||||
{"Performance Tweaks", "Data Collector"},
|
||||
{"Plugins Management"}
|
||||
}
|
||||
|
||||
local menus2 = {
|
||||
"Display", "Combat",
|
||||
"Skin Selection", "Row Settings", "Row Texts", "Window Settings", "Menu Bar", "Reset/Instance/Close", "Wallpaper",
|
||||
"Performance Tweaks", "Data Collector",
|
||||
"Plugins Management", "Profiles"
|
||||
}
|
||||
|
||||
local select_options = function (options_type, true_index)
|
||||
|
||||
window:hide_all_options()
|
||||
|
||||
window:un_hide_options (options_type)
|
||||
|
||||
editing.text = editing.options [options_type]
|
||||
editing.text = menus2 [options_type]
|
||||
|
||||
-- ~altura
|
||||
if (options_type == 12) then
|
||||
@@ -234,13 +274,8 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
local g_performance_texture = g:NewImage (window, _, "$parentPluginsSettingsTexture", "PluginsSettingsTexture", 160, 33, [[Interface\AddOns\Details\images\options_window]])
|
||||
g_performance_texture:SetTexCoord (0, 0.15625, 0.78515625, 0.8173828125)
|
||||
g_performance_texture:SetPoint ("topleft", g_plugin, "topleft", 0, 0)
|
||||
|
||||
local menus = {
|
||||
{"Display", "Combat"},
|
||||
{"Skin", "Row", "Row Texts", "Window Settings", "Top Menu Bar", "Reset/Instance/Close", "Wallpaper"},
|
||||
{"Performance Tweaks", "Data Collector"},
|
||||
{"Plugins Management"}
|
||||
}
|
||||
|
||||
local menus_settings = {1, 2, 13, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
|
||||
|
||||
--> create menus
|
||||
local anchors = {g_settings, g_appearance, g_performance, g_plugin}
|
||||
@@ -274,7 +309,7 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
texture:SetPoint (38, y-2)
|
||||
texture:SetVertexColor (1, 1, 1, .5)
|
||||
|
||||
local button = g:NewButton (window, _, "$parentButton_" .. index .. "_" .. i, nil, 150, 18, select_options, true_index, nil, "", menus [index] [i])
|
||||
local button = g:NewButton (window, _, "$parentButton_" .. index .. "_" .. i, nil, 150, 18, select_options, menus_settings [true_index], true_index, "", menus [index] [i])
|
||||
button:SetPoint (40, y)
|
||||
button.textalign = "<"
|
||||
button.textcolor = textcolor
|
||||
@@ -306,6 +341,7 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
[10] = {},
|
||||
[11] = {},
|
||||
[12] = {},
|
||||
[13] = {}, --profiles
|
||||
} --> vai armazenar os frames das opções
|
||||
|
||||
|
||||
@@ -327,7 +363,7 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
|
||||
container:SetBackdrop({
|
||||
edgeFile = "Interface\\DialogFrame\\UI-DialogBox-gold-Border", tile = true, tileSize = 16, edgeSize = 5,
|
||||
insets = {left = 1, right = 1, top = 0, bottom = 1},})
|
||||
insets = {left = 1, right = 1, top = 0, bottom = 1},})
|
||||
container:SetBackdropBorderColor (0, 0, 0, 0)
|
||||
container:SetBackdropColor (0, 0, 0, 0)
|
||||
|
||||
@@ -415,6 +451,7 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
table.insert (window.options [10], window:create_box_no_scroll (10))
|
||||
table.insert (window.options [11], window:create_box_no_scroll (11))
|
||||
table.insert (window.options [12], window:create_box (12))
|
||||
table.insert (window.options [13], window:create_box_no_scroll (13))
|
||||
|
||||
function window:hide_all_options()
|
||||
for _, frame in ipairs (window.options) do
|
||||
@@ -436,6 +473,10 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
end
|
||||
end
|
||||
|
||||
--local yellow_point = window:CreateTexture (nil, "overlay")
|
||||
--yellow_point:SetSize (16, 16)
|
||||
--yellow_point:SetTexture ([[Interface\QUESTFRAME\UI-Quest-BulletPoint]])
|
||||
|
||||
local background_on_enter = function (self)
|
||||
if (self.background_frame) then
|
||||
self = self.background_frame
|
||||
@@ -445,6 +486,14 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
info_text.active = true
|
||||
info_text.text = self.parent.info
|
||||
end
|
||||
|
||||
self.label:SetTextColor (1, .8, 0)
|
||||
|
||||
--self:SetBackdrop ({edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", tile = true, tileSize = 16, edgeSize = 8,
|
||||
--insets = {left = 1, right = 1, top = 0, bottom = 1},})
|
||||
|
||||
--yellow_point:Show()
|
||||
--yellow_point:SetPoint ("right", self, "left", 5, -1)
|
||||
end
|
||||
local background_on_leave = function (self)
|
||||
if (self.background_frame) then
|
||||
@@ -455,6 +504,13 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
info_text.active = false
|
||||
--info_text.text = ""
|
||||
end
|
||||
|
||||
self.label:SetTextColor (1, 1, 1)
|
||||
|
||||
--self:SetBackdrop (nil)
|
||||
|
||||
--yellow_point:ClearAllPoints()
|
||||
--yellow_point:Hide()
|
||||
end
|
||||
|
||||
function window:create_line_background (frameX, label, parent)
|
||||
@@ -466,6 +522,7 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
f:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16, insets = {left = 0, right = 0, top = 0, bottom = 0}})
|
||||
f:SetBackdropColor (0, 0, 0, 0)
|
||||
f.parent = parent
|
||||
f.label = label
|
||||
if (parent.widget) then
|
||||
parent.widget.background_frame = f
|
||||
else
|
||||
@@ -684,15 +741,65 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
frame1.avatarPreview2.texcoord = cords
|
||||
frame1.avatarPreview2:SetVertexColor (unpack (color))
|
||||
|
||||
--> animate bars
|
||||
|
||||
g:NewLabel (frame1, _, "$parentAnimateLabel", "animateLabel", Loc ["STRING_OPTIONS_ANIMATEBARS"], "GameFontHighlightLeft")
|
||||
g:NewSwitch (frame1, _, "$parentAnimateSlider", "animateSlider", 60, 20, _, _, _detalhes.use_row_animations) -- ltext, rtext, defaultv
|
||||
frame1.animateSlider:SetPoint ("left",frame1.animateLabel, "right", 2, 0)
|
||||
frame1.animateSlider.info = Loc ["STRING_OPTIONS_ANIMATEBARS_DESC"]
|
||||
frame1.animateSlider.OnSwitch = function (self, _, value) --> slider, fixedValue, sliderValue (false, true)
|
||||
_detalhes.use_row_animations = value
|
||||
end
|
||||
|
||||
window:create_line_background (frame1, frame1.animateLabel, frame1.animateSlider)
|
||||
frame1.animateSlider:SetHook ("OnEnter", background_on_enter)
|
||||
frame1.animateSlider:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
--> update speed
|
||||
|
||||
g:NewSlider (frame1, _, "$parentSliderUpdateSpeed", "updatespeedSlider", SLIDER_WIDTH, 20, 0.3, 3, 0.1, _detalhes.update_speed, true)
|
||||
g:NewLabel (frame1, _, "$parentUpdateSpeedLabel", "updatespeedLabel", Loc ["STRING_OPTIONS_WINDOWSPEED"], "GameFontHighlightLeft")
|
||||
--
|
||||
frame1.updatespeedSlider:SetPoint ("left", frame1.updatespeedLabel, "right", 2, 0)
|
||||
frame1.updatespeedSlider:SetThumbSize (50)
|
||||
frame1.updatespeedSlider.useDecimals = true
|
||||
local updateColor = function (slider, value)
|
||||
if (value < 1) then
|
||||
slider.amt:SetTextColor (1, value, 0)
|
||||
elseif (value > 1) then
|
||||
slider.amt:SetTextColor (-(value-3), 1, 0)
|
||||
else
|
||||
slider.amt:SetTextColor (1, 1, 0)
|
||||
end
|
||||
end
|
||||
frame1.updatespeedSlider:SetHook ("OnValueChange", function (self, _, amount)
|
||||
_detalhes:CancelTimer (_detalhes.atualizador)
|
||||
_detalhes.update_speed = amount
|
||||
_detalhes.atualizador = _detalhes:ScheduleRepeatingTimer ("AtualizaGumpPrincipal", _detalhes.update_speed, -1)
|
||||
updateColor (self, amount)
|
||||
end)
|
||||
updateColor (frame1.updatespeedSlider, _detalhes.update_speed)
|
||||
|
||||
frame1.updatespeedSlider.info = Loc ["STRING_OPTIONS_WINDOWSPEED_DESC"]
|
||||
|
||||
window:create_line_background (frame1, frame1.updatespeedLabel, frame1.updatespeedSlider)
|
||||
frame1.updatespeedSlider:SetHook ("OnEnter", background_on_enter)
|
||||
frame1.updatespeedSlider:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
--> anchors
|
||||
|
||||
titulo_display:SetPoint (10, -200)
|
||||
titulo_display_desc:SetPoint (10, -220)
|
||||
|
||||
frame1.segmentsLabel:SetPoint (10, -260)
|
||||
frame1.scrollLabel:SetPoint (10, -285)
|
||||
frame1.maxInstancesLabel:SetPoint (10, -310)
|
||||
frame1.minimapLabel:SetPoint (10, -335)
|
||||
frame1.dpsAbbreviateLabel:SetPoint (10, -360)
|
||||
frame1.realmNameLabel:SetPoint (10, -385)
|
||||
frame1.animateLabel:SetPoint (10, -260)
|
||||
frame1.updatespeedLabel:SetPoint (10, -285)
|
||||
|
||||
frame1.segmentsLabel:SetPoint (10, -310)
|
||||
frame1.scrollLabel:SetPoint (10, -335)
|
||||
frame1.maxInstancesLabel:SetPoint (10, -360)
|
||||
frame1.minimapLabel:SetPoint (10, -385)
|
||||
frame1.dpsAbbreviateLabel:SetPoint (10, -410)
|
||||
frame1.realmNameLabel:SetPoint (10, -435)
|
||||
|
||||
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -853,7 +960,165 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
frame2.hideOnCombatAlphaLabel:SetPoint (10, -160)
|
||||
frame2.autoSwitchLabel:SetPoint (10, -195)
|
||||
frame2.autoCurrentLabel:SetPoint (10, -220) --auto current
|
||||
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
-- General Settings - Profiles
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
local frame13 = window.options [13][1]
|
||||
|
||||
--> profiles title
|
||||
local titulo_profiles = g:NewLabel (frame13, _, "$parentTituloProfiles", "tituloProfilesLabel", Loc ["STRING_OPTIONS_PROFILES_TITLE"], "GameFontNormal", 16)
|
||||
local titulo_profiles_desc = g:NewLabel (frame13, _, "$parentTituloProfiles2", "tituloProfiles2Label", Loc ["STRING_OPTIONS_PROFILES_TITLE_DESC"], "GameFontNormal", 9, "white")
|
||||
titulo_profiles_desc.width = 320
|
||||
|
||||
--> current profile
|
||||
local current_profile_label = g:NewLabel (frame13, _, "$parentCurrentProfileLabel1", "currentProfileLabel1", Loc ["STRING_OPTIONS_PROFILES_CURRENT"], "GameFontHighlightLeft")
|
||||
local current_profile_label2 = g:NewLabel (frame13, _, "$parentCurrentProfileLabel2", "currentProfileLabel2", "", "GameFontNormal")
|
||||
current_profile_label2:SetPoint ("left", current_profile_label, "right", 3, 0)
|
||||
|
||||
local info_holder_frame = CreateFrame ("frame", nil, frame13.widget or frame13)
|
||||
info_holder_frame:SetPoint ("topleft", current_profile_label.widget, "topleft")
|
||||
info_holder_frame:SetPoint ("bottomright", current_profile_label2.widget, "bottomright")
|
||||
|
||||
info_holder_frame.info = Loc ["STRING_OPTIONS_PROFILES_CURRENT_DESC"]
|
||||
window:create_line_background (frame13, current_profile_label.widget, info_holder_frame)
|
||||
info_holder_frame:SetScript ("OnEnter", background_on_enter)
|
||||
info_holder_frame:SetScript ("OnLeave", background_on_leave)
|
||||
|
||||
--> select profile
|
||||
local profile_selected = function (_, instance, profile_name)
|
||||
_detalhes:ApplyProfile (profile_name)
|
||||
_detalhes:Msg ("Profile loaded:", profile_name)
|
||||
_detalhes:OpenOptionsWindow (instance)
|
||||
end
|
||||
local build_profile_menu = function()
|
||||
local menu = {}
|
||||
|
||||
for index, profile_name in ipairs (_detalhes:GetProfileList()) do
|
||||
menu [#menu+1] = {value = profile_name, label = profile_name, onclick = profile_selected, icon = "Interface\\MINIMAP\\Vehicle-HammerGold-3"}
|
||||
end
|
||||
|
||||
return menu
|
||||
end
|
||||
local select_profile_dropdown = g:NewDropDown (frame13, _, "$parentSelectProfileDropdown", "selectProfileDropdown", 160, 20, build_profile_menu, 1)
|
||||
local select_profile_label = g:NewLabel (frame13, _, "$parentSelectProfileLabel", "selectProfileLabel", Loc ["STRING_OPTIONS_PROFILES_SELECT"], "GameFontHighlightLeft")
|
||||
select_profile_dropdown:SetPoint ("left", select_profile_label, "right", 2, 0)
|
||||
|
||||
select_profile_dropdown.info = Loc ["STRING_OPTIONS_PROFILES_SELECT_DESC"]
|
||||
window:create_line_background (frame13, select_profile_label, select_profile_dropdown)
|
||||
select_profile_dropdown:SetHook ("OnEnter", background_on_enter)
|
||||
select_profile_dropdown:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
--> new profile
|
||||
local profile_name = g:NewTextEntry (frame13, _, "$parentProfileNameEntry", "profileNameEntry", 120, 20)
|
||||
local profile_name_label = g:NewLabel (frame13, _, "$parentProfileNameLabel", "profileNameLabel", Loc ["STRING_OPTIONS_PROFILES_CREATE"], "GameFontHighlightLeft")
|
||||
profile_name:SetPoint ("left", profile_name_label, "right", 2, 0)
|
||||
|
||||
local create_profile = function()
|
||||
local text = profile_name:GetText()
|
||||
if (text == "") then
|
||||
return _detalhes:Msg ("Name field is empty.")
|
||||
end
|
||||
|
||||
local new_profile = _detalhes:CreateProfile (text)
|
||||
if (new_profile) then
|
||||
_detalhes:ApplyProfile (text)
|
||||
_detalhes:OpenOptionsWindow (window.instance)
|
||||
else
|
||||
return _detalhes:Msg ("Profile not created.")
|
||||
end
|
||||
end
|
||||
local profile_create_button = g:NewButton (frame13, _, "$parentProfileCreateButton", "profileCreateButton", 50, 19, create_profile, nil, nil, nil, Loc ["STRING_OPTIONS_SAVELOAD_SAVE"])
|
||||
profile_create_button:InstallCustomTexture()
|
||||
profile_create_button:SetPoint ("left", profile_name, "right", 2, 0)
|
||||
|
||||
profile_name.info = Loc ["STRING_OPTIONS_PROFILES_CREATE_DESC"]
|
||||
window:create_line_background (frame13, profile_name_label, profile_name)
|
||||
profile_name:SetHook ("OnEnter", background_on_enter)
|
||||
profile_name:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
|
||||
--> copy profile
|
||||
local profile_selectedCopy = function (_, instance, profile_name)
|
||||
--copiar o profile
|
||||
local current_instance = window.instance
|
||||
_detalhes:ApplyProfile (profile_name, nil, true)
|
||||
_detalhes:OpenOptionsWindow (current_instance)
|
||||
end
|
||||
local build_copy_menu = function()
|
||||
local menu = {}
|
||||
|
||||
for index, profile_name in ipairs (_detalhes:GetProfileList()) do
|
||||
menu [#menu+1] = {value = profile_name, label = profile_name, onclick = profile_selectedCopy, icon = "Interface\\MINIMAP\\Vehicle-HammerGold-2"}
|
||||
end
|
||||
|
||||
return menu
|
||||
end
|
||||
local select_profileCopy_dropdown = g:NewDropDown (frame13, _, "$parentSelectProfileCopyDropdown", "selectProfileCopyDropdown", 160, 20, build_copy_menu, 1)
|
||||
local select_profileCopy_label = g:NewLabel (frame13, _, "$parentSelectProfileCopyLabel", "selectProfileCopyLabel", Loc ["STRING_OPTIONS_PROFILES_COPY"], "GameFontHighlightLeft")
|
||||
select_profileCopy_dropdown:SetPoint ("left", select_profileCopy_label, "right", 2, 0)
|
||||
|
||||
select_profileCopy_dropdown.info = Loc ["STRING_OPTIONS_PROFILES_COPY_DESC"]
|
||||
window:create_line_background (frame13, select_profileCopy_label, select_profileCopy_dropdown)
|
||||
select_profileCopy_dropdown:SetHook ("OnEnter", background_on_enter)
|
||||
select_profileCopy_dropdown:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
--> erase profile
|
||||
local profile_selectedErase = function (_, instance, profile_name)
|
||||
local current_instance = window.instance
|
||||
_detalhes:EraseProfile (profile_name)
|
||||
_detalhes:OpenOptionsWindow (current_instance)
|
||||
end
|
||||
local build_erase_menu = function()
|
||||
local menu = {}
|
||||
|
||||
for index, profile_name in ipairs (_detalhes:GetProfileList()) do
|
||||
menu [#menu+1] = {value = profile_name, label = profile_name, onclick = profile_selectedErase, icon = "Interface\\MINIMAP\\Vehicle-HammerGold-1", color = {1, 1, 1}, iconcolor = {1, .90, .90}}
|
||||
end
|
||||
|
||||
return menu
|
||||
end
|
||||
local select_profileErase_dropdown = g:NewDropDown (frame13, _, "$parentSelectProfileEraseDropdown", "selectProfileEraseDropdown", 160, 20, build_erase_menu, 1)
|
||||
local select_profileErase_label = g:NewLabel (frame13, _, "$parentSelectProfileEraseLabel", "selectProfileLabel", Loc ["STRING_OPTIONS_PROFILES_ERASE"], "GameFontHighlightLeft")
|
||||
select_profileErase_dropdown:SetPoint ("left", select_profileErase_label, "right", 2, 0)
|
||||
|
||||
select_profileErase_dropdown.info = Loc ["STRING_OPTIONS_PROFILES_ERASE_DESC"]
|
||||
window:create_line_background (frame13, select_profileErase_label, select_profileErase_dropdown)
|
||||
select_profileErase_dropdown:SetHook ("OnEnter", background_on_enter)
|
||||
select_profileErase_dropdown:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
--> reset profile
|
||||
|
||||
local reset_profile = function()
|
||||
local current_instance = window.instance
|
||||
_detalhes:ResetProfile (_detalhes:GetCurrentProfileName())
|
||||
_detalhes:OpenOptionsWindow (current_instance)
|
||||
end
|
||||
|
||||
local profile_reset_button = g:NewButton (frame13, _, "$parentProfileResetButton", "profileResetButton", 128, 19, reset_profile, nil, nil, nil, Loc ["STRING_OPTIONS_PROFILES_RESET"])
|
||||
profile_reset_button:InstallCustomTexture()
|
||||
|
||||
local hiddenlabel = g:NewLabel (frame13, _, "$parentProfileResetButtonLabel", "profileResetButtonLabel", "", "GameFontHighlightLeft")
|
||||
hiddenlabel:SetPoint ("left", profile_reset_button, "left")
|
||||
|
||||
profile_reset_button.info = Loc ["STRING_OPTIONS_PROFILES_RESET_DESC"]
|
||||
window:create_line_background (frame13, hiddenlabel, profile_reset_button)
|
||||
profile_reset_button:SetHook ("OnEnter", background_on_enter)
|
||||
profile_reset_button:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
profile_reset_button.button.texture:SetVertexColor (1, .8, 0)
|
||||
|
||||
--> anchors
|
||||
titulo_profiles:SetPoint (10, -10)
|
||||
titulo_profiles_desc:SetPoint (10, -30)
|
||||
|
||||
current_profile_label:SetPoint (10, -90)
|
||||
select_profile_label:SetPoint (10, -125)
|
||||
profile_name_label:SetPoint (10, -150)
|
||||
select_profileCopy_label:SetPoint (10, -185)
|
||||
select_profileErase_label:SetPoint (10, -210)
|
||||
profile_reset_button:SetPoint (10, -245)
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
-- Appearance - Skin
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -2477,8 +2742,7 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
|
||||
--------------- Memory
|
||||
g:NewSlider (frame10, _, "$parentSliderSegmentsSave", "segmentsSliderToSave", SLIDER_WIDTH, 20, 1, 5, 1, _detalhes.segments_amount_to_save)
|
||||
g:NewSlider (frame10, _, "$parentSliderUpdateSpeed", "updatespeedSlider", SLIDER_WIDTH, 20, 0.3, 3, 0.1, _detalhes.update_speed, true)
|
||||
|
||||
|
||||
g:NewLabel (frame10, _, "$parentLabelMemory", "memoryLabel", Loc ["STRING_OPTIONS_MEMORYT"], "GameFontHighlightLeft")
|
||||
|
||||
g:NewSlider (frame10, _, "$parentSliderMemory", "memorySlider", SLIDER_WIDTH, 20, 1, 4, 1, _detalhes.memory_threshold)
|
||||
@@ -2551,18 +2815,7 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
frame10.panicModeSlider:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
--------------- Animate Rows
|
||||
g:NewLabel (frame10, _, "$parentAnimateLabel", "animateLabel", Loc ["STRING_OPTIONS_ANIMATEBARS"], "GameFontHighlightLeft")
|
||||
|
||||
g:NewSwitch (frame10, _, "$parentAnimateSlider", "animateSlider", 60, 20, _, _, _detalhes.use_row_animations) -- ltext, rtext, defaultv
|
||||
frame10.animateSlider:SetPoint ("left",frame10.animateLabel, "right", 2, 0)
|
||||
frame10.animateSlider.info = Loc ["STRING_OPTIONS_ANIMATEBARS_DESC"]
|
||||
frame10.animateSlider.OnSwitch = function (self, _, value) --> slider, fixedValue, sliderValue (false, true)
|
||||
_detalhes.use_row_animations = value
|
||||
end
|
||||
|
||||
window:create_line_background (frame10, frame10.animateLabel, frame10.animateSlider)
|
||||
frame10.animateSlider:SetHook ("OnEnter", background_on_enter)
|
||||
frame10.animateSlider:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
--------------- Animate scroll bar
|
||||
g:NewLabel (frame10, _, "$parentAnimateScrollLabel", "animatescrollLabel", Loc ["STRING_OPTIONS_ANIMATESCROLL"], "GameFontHighlightLeft")
|
||||
@@ -2580,34 +2833,7 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
frame10.animatescrollSlider:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
--------------- Update Speed
|
||||
g:NewLabel (frame10, _, "$parentUpdateSpeedLabel", "updatespeedLabel", Loc ["STRING_OPTIONS_WINDOWSPEED"], "GameFontHighlightLeft")
|
||||
|
||||
--
|
||||
frame10.updatespeedSlider:SetPoint ("left", frame10.updatespeedLabel, "right", 2, 0)
|
||||
frame10.updatespeedSlider:SetThumbSize (50)
|
||||
frame10.updatespeedSlider.useDecimals = true
|
||||
local updateColor = function (slider, value)
|
||||
if (value < 1) then
|
||||
slider.amt:SetTextColor (1, value, 0)
|
||||
elseif (value > 1) then
|
||||
slider.amt:SetTextColor (-(value-3), 1, 0)
|
||||
else
|
||||
slider.amt:SetTextColor (1, 1, 0)
|
||||
end
|
||||
end
|
||||
frame10.updatespeedSlider:SetHook ("OnValueChange", function (self, _, amount)
|
||||
_detalhes:CancelTimer (_detalhes.atualizador)
|
||||
_detalhes.update_speed = amount
|
||||
_detalhes.atualizador = _detalhes:ScheduleRepeatingTimer ("AtualizaGumpPrincipal", _detalhes.update_speed, -1)
|
||||
updateColor (self, amount)
|
||||
end)
|
||||
updateColor (frame10.updatespeedSlider, _detalhes.update_speed)
|
||||
|
||||
frame10.updatespeedSlider.info = Loc ["STRING_OPTIONS_WINDOWSPEED_DESC"]
|
||||
|
||||
window:create_line_background (frame10, frame10.updatespeedLabel, frame10.updatespeedSlider)
|
||||
frame10.updatespeedSlider:SetHook ("OnEnter", background_on_enter)
|
||||
frame10.updatespeedSlider:SetHook ("OnLeave", background_on_leave)
|
||||
|
||||
|
||||
--------------- Erase Trash
|
||||
g:NewLabel (frame10, _, "$parentEraseTrash", "eraseTrashLabel", Loc ["STRING_OPTIONS_CLEANUP"], "GameFontHighlightLeft")
|
||||
@@ -2629,10 +2855,10 @@ function _detalhes:OpenOptionsWindow (instance)
|
||||
frame10.memoryLabel:SetPoint (10, -70)
|
||||
frame10.segmentsSaveLabel:SetPoint (10, -95)
|
||||
frame10.panicModeLabel:SetPoint (10, -120)
|
||||
frame10.animateLabel:SetPoint (10, -145)
|
||||
--frame10.animateLabel:SetPoint (10, -145)
|
||||
--frame10.animatescrollLabel:SetPoint (10, -170)
|
||||
frame10.updatespeedLabel:SetPoint (10, -170)
|
||||
frame10.eraseTrashLabel:SetPoint (10, -195)
|
||||
--frame10.updatespeedLabel:SetPoint (10, -170)
|
||||
frame10.eraseTrashLabel:SetPoint (10, -145)
|
||||
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
-- Performance - Captures
|
||||
@@ -3006,6 +3232,41 @@ end
|
||||
----------------------------------------------------------------------------------------
|
||||
--> Show
|
||||
|
||||
--> window 1
|
||||
_G.DetailsOptionsWindow1RealmNameSlider.MyObject:SetValue (_detalhes.remove_realm_from_name)
|
||||
_G.DetailsOptionsWindow1Slider.MyObject:SetValue (_detalhes.segments_amount) --segments
|
||||
_G.DetailsOptionsWindow1UseScrollSlider.MyObject:SetValue (_detalhes.use_scroll)
|
||||
_G.DetailsOptionsWindow1SliderMaxInstances.MyObject:SetValue (_detalhes.instances_amount)
|
||||
_G.DetailsOptionsWindow1MinimapSlider.MyObject:SetValue (not _detalhes.minimap.hide)
|
||||
_G.DetailsOptionsWindow1AbbreviateDropdown.MyObject:Select (_detalhes.ps_abbreviation)
|
||||
_G.DetailsOptionsWindow1SliderUpdateSpeed.MyObject:SetValue (_detalhes.update_speed)
|
||||
_G.DetailsOptionsWindow1AnimateSlider.MyObject:SetValue (_detalhes.use_row_animations)
|
||||
|
||||
--> window 2
|
||||
_G.DetailsOptionsWindow2FragsPvpSlider.MyObject:SetValue (_detalhes.only_pvp_frags)
|
||||
_G.DetailsOptionsWindow2TTDropdown.MyObject:Select (_detalhes.time_type)
|
||||
|
||||
--> window 13
|
||||
_G.DetailsOptionsWindow13SelectProfileDropdown.MyObject:Select (_detalhes:GetCurrentProfileName())
|
||||
_G.DetailsOptionsWindow13SelectProfileDropdown.MyObject:SetFixedParameter (instance)
|
||||
|
||||
--> window 10
|
||||
_G.DetailsOptionsWindow10SliderMemory.MyObject:SetValue (_detalhes.memory_threshold)
|
||||
_G.DetailsOptionsWindow10PanicModeSlider.MyObject:SetValue (_detalhes.segments_panic_mode)
|
||||
_G.DetailsOptionsWindow10ClearAnimateScrollSlider.MyObject:SetValue (_detalhes.animate_scroll)
|
||||
_G.DetailsOptionsWindow10SliderSegmentsSave.MyObject:SetValue (_detalhes.segments_amount_to_save)
|
||||
|
||||
|
||||
|
||||
--> window 11
|
||||
_G.DetailsOptionsWindow11CaptureDamageSlider.MyObject:SetValue (_detalhes.capture_real ["damage"])
|
||||
_G.DetailsOptionsWindow11CaptureHealSlider.MyObject:SetValue (_detalhes.capture_real ["heal"])
|
||||
_G.DetailsOptionsWindow11CaptureEnergySlider.MyObject:SetValue (_detalhes.capture_real ["energy"])
|
||||
_G.DetailsOptionsWindow11CaptureMiscSlider.MyObject:SetValue (_detalhes.capture_real ["miscdata"])
|
||||
_G.DetailsOptionsWindow11CaptureAuraSlider.MyObject:SetValue (_detalhes.capture_real ["aura"])
|
||||
_G.DetailsOptionsWindow11CloudAuraSlider.MyObject:SetValue (_detalhes.cloud_capture)
|
||||
|
||||
----------
|
||||
_G.DetailsOptionsWindow8ResetTextColorPick.MyObject:SetColor (unpack (instance.resetbutton_info.text_color))
|
||||
_G.DetailsOptionsWindow8ResetTextSizeSlider.MyObject:SetValue (instance.resetbutton_info.text_size)
|
||||
_G.DetailsOptionsWindow8ResetTextFontDropdown.MyObject:Select (instance.resetbutton_info.text_face)
|
||||
@@ -3176,6 +3437,10 @@ end
|
||||
|
||||
_G.DetailsOptionsWindow4IconFileEntry:SetText (instance.row_info.icon_file)
|
||||
|
||||
--profiles
|
||||
_G.DetailsOptionsWindow13CurrentProfileLabel2.MyObject:SetText (_detalhes_database.active_profile)
|
||||
|
||||
|
||||
window:Show()
|
||||
|
||||
local avatar = NickTag:GetNicknameAvatar (UnitGUID ("player"), NICKTAG_DEFAULT_AVATAR, true)
|
||||
|
||||
+90
-17
@@ -1989,12 +1989,14 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
|
||||
|
||||
--> details version
|
||||
instancia._version = baseframe:CreateFontString (nil, "overlay", "GameFontHighlightSmall")
|
||||
instancia._version:SetPoint ("left", backgrounddisplay, "left", 20, 0)
|
||||
--instancia._version:SetPoint ("left", backgrounddisplay, "left", 20, 0)
|
||||
instancia._version:SetTextColor (1, 1, 1)
|
||||
instancia._version:SetText ("this is a alpha version of Details\nyou can help us sending bug reports\nuse the blue button.")
|
||||
if (not _detalhes.initializing) then
|
||||
instancia._version:Hide()
|
||||
|
||||
end
|
||||
instancia._version:Hide()
|
||||
|
||||
|
||||
--> wallpaper
|
||||
baseframe.wallpaper = backgrounddisplay:CreateTexture (nil, "overlay")
|
||||
@@ -2822,7 +2824,6 @@ function _detalhes:StatusBarAlert (text, icon, color, time)
|
||||
end
|
||||
|
||||
function _detalhes:SetCloseButtonSettings (overlaycolor)
|
||||
|
||||
if (overlaycolor == "reset") then
|
||||
overlaycolor = {1, 1, 1, 1}
|
||||
end
|
||||
@@ -2849,7 +2850,7 @@ function _detalhes:SetInstanceButtonSettings (textfont, textsize, textcolor, ove
|
||||
textcolor = {1, 0.81, 0, 1}
|
||||
overlaycolor = {1, 1, 1, 1}
|
||||
end
|
||||
|
||||
|
||||
--> text color
|
||||
if (textcolor) then
|
||||
local r, g, b, a = gump:ParseColors (textcolor)
|
||||
@@ -2891,7 +2892,7 @@ function _detalhes:SetInstanceButtonSettings (textfont, textsize, textcolor, ove
|
||||
self.baseframe.cabecalho.novo.Right:SetVertexColor (r, g, b, a)
|
||||
end
|
||||
|
||||
function _detalhes:SetDeleteButtonSettings (textfont, textsize, textcolor, overlaycolor, alwaysminimized)
|
||||
function _detalhes:SetDeleteButtonSettings (textfont, textsize, textcolor, overlaycolor, alwaysminimized, smalltextcolor)
|
||||
|
||||
if (textfont == "reset") then
|
||||
--print ("text color:", _G.DetailsResetButton1Text:GetTextColor())
|
||||
@@ -2901,10 +2902,11 @@ function _detalhes:SetDeleteButtonSettings (textfont, textsize, textcolor, overl
|
||||
textfont = "Friz Quadrata TT"
|
||||
textsize = 12
|
||||
textcolor = {1, 0.81, 0, 1}
|
||||
smalltextcolor = {1, 0.81, 0, 1}
|
||||
overlaycolor = {1, 1, 1, 1}
|
||||
alwaysminimized = false
|
||||
end
|
||||
|
||||
|
||||
--> text color
|
||||
if (textcolor) then
|
||||
local r, g, b, a = gump:ParseColors (textcolor)
|
||||
@@ -2914,9 +2916,21 @@ function _detalhes:SetDeleteButtonSettings (textfont, textsize, textcolor, overl
|
||||
self.resetbutton_info.text_color [4] = a
|
||||
end
|
||||
|
||||
if (smalltextcolor) then
|
||||
local r, g, b, a = gump:ParseColors (smalltextcolor)
|
||||
self.resetbutton_info.text_color_small [1] = r
|
||||
self.resetbutton_info.text_color_small [2] = g
|
||||
self.resetbutton_info.text_color_small [3] = b
|
||||
self.resetbutton_info.text_color_small [4] = a
|
||||
end
|
||||
|
||||
if (not self.resetbutton_info.text_color_small) then
|
||||
self.resetbutton_info.text_color_small = {1, 0.81, 0, 1}
|
||||
end
|
||||
|
||||
if (_detalhes.ResetButtonInstance == self.meu_id) then
|
||||
_G.DetailsResetButton1Text:SetTextColor (unpack (self.resetbutton_info.text_color))
|
||||
_G.DetailsResetButton2Text2:SetTextColor (unpack (self.resetbutton_info.text_color))
|
||||
_G.DetailsResetButton2Text2:SetTextColor (unpack (self.resetbutton_info.text_color_small))
|
||||
end
|
||||
|
||||
--> text font
|
||||
@@ -3561,6 +3575,60 @@ local botao_fechar_on_leave = function (self)
|
||||
OnLeaveMainWindow (self.instancia, self, 3)
|
||||
end
|
||||
|
||||
function SetCloseButtonAnchors (self, this_skin)
|
||||
if (self.toolbar_side == 1) then --top
|
||||
|
||||
self.baseframe.cabecalho.fechar:SetScript ("OnMouseDown", function()
|
||||
self.baseframe.cabecalho.fechar:ClearAllPoints()
|
||||
self.baseframe.cabecalho.fechar:SetPoint ("bottomright", self.baseframe, "topright", this_skin.close_button_anchor[1]+1, this_skin.close_button_anchor[2]-1)
|
||||
end)
|
||||
|
||||
self.baseframe.cabecalho.fechar:SetScript ("OnMouseUp", function()
|
||||
self.baseframe.cabecalho.fechar:ClearAllPoints()
|
||||
self.baseframe.cabecalho.fechar:SetPoint ("bottomright", self.baseframe, "topright", this_skin.close_button_anchor[1], this_skin.close_button_anchor[2])
|
||||
|
||||
self.baseframe.cabecalho.fechar:Disable()
|
||||
self:DesativarInstancia()
|
||||
|
||||
if (_detalhes.opened_windows == 0) then
|
||||
print (Loc ["STRING_CLOSEALL"])
|
||||
end
|
||||
end)
|
||||
|
||||
elseif (self.toolbar_side == 2) then --bottom
|
||||
|
||||
self.baseframe.cabecalho.fechar:SetScript ("OnMouseDown", function()
|
||||
local y = 0
|
||||
if (self.show_statusbar) then
|
||||
y = -14
|
||||
end
|
||||
|
||||
local _x, _y = unpack (this_skin.close_button_anchor_bottom)
|
||||
self.baseframe.cabecalho.fechar:ClearAllPoints()
|
||||
self.baseframe.cabecalho.fechar:SetPoint ("topright", self.baseframe, "bottomright", _x + 1, _y + y - 1)
|
||||
end)
|
||||
|
||||
self.baseframe.cabecalho.fechar:SetScript ("OnMouseUp", function()
|
||||
local y = 0
|
||||
if (self.show_statusbar) then
|
||||
y = -14
|
||||
end
|
||||
|
||||
local _x, _y = unpack (this_skin.close_button_anchor_bottom)
|
||||
self.baseframe.cabecalho.fechar:ClearAllPoints()
|
||||
self.baseframe.cabecalho.fechar:SetPoint ("topright", self.baseframe, "bottomright", _x, _y + y)
|
||||
|
||||
self.baseframe.cabecalho.fechar:Disable()
|
||||
self:DesativarInstancia()
|
||||
|
||||
if (_detalhes.opened_windows == 0) then
|
||||
print (Loc ["STRING_CLOSEALL"])
|
||||
end
|
||||
end)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
-- ~skin
|
||||
function _detalhes:ChangeSkin (skin_name)
|
||||
|
||||
@@ -3598,10 +3666,10 @@ function _detalhes:ChangeSkin (skin_name)
|
||||
if (_detalhes.ResetButtonInstance == self.meu_id) then
|
||||
self:SetDeleteButtonSettings ("reset")
|
||||
end
|
||||
DetailsResetButton2Text2:SetText ("-")
|
||||
|
||||
--> reset close button
|
||||
self:SetCloseButtonSettings ("reset")
|
||||
DetailsResetButton2Text2:SetText ("-")
|
||||
|
||||
--> overwrites
|
||||
local overwrite_cprops = this_skin.instance_cprops
|
||||
@@ -3686,8 +3754,10 @@ function _detalhes:ChangeSkin (skin_name)
|
||||
_detalhes:DisableUIPanelButton (_detalhes.ResetButton2)
|
||||
end
|
||||
else
|
||||
_detalhes:RestoreUIPanelButton (_detalhes.ResetButton)
|
||||
_detalhes:RestoreUIPanelButton (_detalhes.ResetButton2)
|
||||
if (_detalhes.ResetButtonInstance == self.meu_id) then
|
||||
_detalhes:RestoreUIPanelButton (_detalhes.ResetButton)
|
||||
_detalhes:RestoreUIPanelButton (_detalhes.ResetButton2)
|
||||
end
|
||||
end
|
||||
|
||||
----------> custom instance button
|
||||
@@ -3731,12 +3801,7 @@ function _detalhes:ChangeSkin (skin_name)
|
||||
self.baseframe.cabecalho.fechar:SetSize (18, 18)
|
||||
end
|
||||
|
||||
self.baseframe.cabecalho.fechar:SetScript ("OnMouseDown", function()
|
||||
self.baseframe.cabecalho.fechar:SetPoint ("bottomright", self.baseframe, "topright", this_skin.close_button_anchor[1]+1, this_skin.close_button_anchor[2]-1)
|
||||
end)
|
||||
self.baseframe.cabecalho.fechar:SetScript ("OnMouseUp", function()
|
||||
self.baseframe.cabecalho.fechar:SetPoint ("bottomright", self.baseframe, "topright", this_skin.close_button_anchor[1], this_skin.close_button_anchor[2])
|
||||
end)
|
||||
SetCloseButtonAnchors (self, this_skin)
|
||||
|
||||
else
|
||||
self.baseframe.cabecalho.fechar:SetDisabledTexture ([[Interface\Buttons\UI-Panel-MinimizeButton-Disabled]])
|
||||
@@ -3868,6 +3933,7 @@ function _detalhes:ChangeSkin (skin_name)
|
||||
|
||||
--> refresh options panel if opened
|
||||
if (_G.DetailsOptionsWindow and _G.DetailsOptionsWindow:IsShown()) then
|
||||
--print (self.meu_id)
|
||||
_detalhes:OpenOptionsWindow (self)
|
||||
end
|
||||
|
||||
@@ -3911,6 +3977,9 @@ function _detalhes:ToolbarSide (side)
|
||||
--> botão fechar
|
||||
self.baseframe.cabecalho.fechar:ClearAllPoints()
|
||||
self.baseframe.cabecalho.fechar:SetPoint ("bottomright", self.baseframe, "topright", unpack (skin.close_button_anchor))
|
||||
if (skin.close_button_coords) then
|
||||
SetCloseButtonAnchors (self, skin)
|
||||
end
|
||||
--> ball r
|
||||
self.baseframe.cabecalho.ball_r:SetTexCoord (unpack (COORDS_RIGHT_BALL))
|
||||
self.baseframe.cabecalho.ball_r:ClearAllPoints()
|
||||
@@ -3948,6 +4017,9 @@ function _detalhes:ToolbarSide (side)
|
||||
self.baseframe.cabecalho.fechar:ClearAllPoints()
|
||||
local _x, _y = unpack (skin.close_button_anchor_bottom)
|
||||
self.baseframe.cabecalho.fechar:SetPoint ("topright", self.baseframe, "bottomright", _x, _y + y)
|
||||
if (skin.close_button_coords) then
|
||||
SetCloseButtonAnchors (self, skin)
|
||||
end
|
||||
--> ball r
|
||||
self.baseframe.cabecalho.ball_r:ClearAllPoints()
|
||||
local _x, _y = unpack (skin.right_corner_anchor_bottom)
|
||||
@@ -4893,7 +4965,8 @@ function gump:CriaCabecalho (baseframe, instancia)
|
||||
|
||||
--> Botão de Ajuda ----------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
if (instancia.meu_id == 1 and _detalhes.tutorial.logons < 3) then
|
||||
--> disabled
|
||||
if (instancia.meu_id == 1 and _detalhes.tutorial.logons < 0) then
|
||||
|
||||
--> help button
|
||||
local helpButton = CreateFrame ("button", "DetailsMainWindowHelpButton", baseframe, "MainHelpPlateButton")
|
||||
|
||||
+94
-25
@@ -202,28 +202,86 @@ local _UISpecialFrames = UISpecialFrames --> wow api locals
|
||||
|
||||
--> dropdown menus
|
||||
|
||||
local function cria_drop_down (este_gump)
|
||||
local function cria_drop_down (este_gump)
|
||||
|
||||
local selecionar = _CreateFrame ("Button", "Details_Report_DropDown", este_gump, "UIDropDownMenuTemplate")
|
||||
este_gump.select = selecionar
|
||||
|
||||
selecionar:SetPoint ("topleft", este_gump, "topleft", 93, -53)
|
||||
--local selecionar = _CreateFrame ("Button", "Details_Report_DropDown", este_gump, "UIDropDownMenuTemplate")
|
||||
--este_gump.select = selecionar
|
||||
--selecionar:SetPoint ("topleft", este_gump, "topleft", 93, -53)
|
||||
|
||||
local function OnClick (self)
|
||||
_UIDropDownMenu_SetSelectedID (selecionar, self:GetID())
|
||||
_detalhes.report_where = self.value
|
||||
--local function OnClick (self)
|
||||
-- _UIDropDownMenu_SetSelectedID (selecionar, self:GetID())
|
||||
-- _detalhes.report_where = self.value
|
||||
--end
|
||||
|
||||
--[[
|
||||
Emote: 255 251 255
|
||||
Yell: 255 63 64
|
||||
Guild Chat: 64 251 64
|
||||
Officer Chat: 64 189 64
|
||||
Achievement: 255 251 0
|
||||
Whisper: 255 126 255
|
||||
RealID: 0 251 246
|
||||
Party: 170 167 255
|
||||
Party Lead: 118 197 255
|
||||
Raid: 255 125 0
|
||||
Raid Warning: 255 71 0
|
||||
Raid Lead: 255 71 9
|
||||
BG Leader: 255 216 183
|
||||
General/Trade: 255 189 192
|
||||
--]]
|
||||
|
||||
local iconsize = {16, 16}
|
||||
|
||||
local lista = {
|
||||
{Loc ["STRING_REPORTFRAME_PARTY"], "PARTY", function() return GetNumSubgroupMembers() > 0 end, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.53125, 0.7265625, 0.078125, 0.40625}, color = {0.66, 0.65, 1}}},
|
||||
{Loc ["STRING_REPORTFRAME_RAID"], "RAID", _IsInRaid, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.53125, 0.7265625, 0.078125, 0.40625}, color = {1, 0.49, 0}}},
|
||||
{Loc ["STRING_REPORTFRAME_GUILD"], "GUILD", _IsInGuild, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.8046875, 0.96875, 0.125, 0.390625}, color = {0.25, 0.98, 0.25}}},
|
||||
{Loc ["STRING_REPORTFRAME_OFFICERS"], "OFFICER", _IsInGuild, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.8046875, 0.96875, 0.125, 0.390625}, color = {0.25, 0.74, 0.25}}},
|
||||
{Loc ["STRING_REPORTFRAME_WHISPER"], "WHISPER", nil, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.0546875, 0.1953125, 0.625, 0.890625}, color = {1, 0.49, 1}}},
|
||||
{Loc ["STRING_REPORTFRAME_WHISPERTARGET"], "WHISPER2", nil, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.0546875, 0.1953125, 0.625, 0.890625}, color = {1, 0.49, 1}}},
|
||||
{Loc ["STRING_REPORTFRAME_SAY"], "SAY", nil, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.0390625, 0.203125, 0.09375, 0.375}, color = {1, 1, 1}}},
|
||||
{Loc ["STRING_REPORTFRAME_COPY"], "COPY", nil, {iconsize = iconsize, icon = [[Interface\Buttons\UI-GuildButton-PublicNote-Disabled]], coords = {0, 1, 0, 1}, color = {1, 1, 1}}},
|
||||
}
|
||||
|
||||
local on_click = function (self, fixedParam, selectedOutput)
|
||||
_detalhes.report_where = selectedOutput
|
||||
end
|
||||
|
||||
local build_list = function()
|
||||
|
||||
local output_array = {}
|
||||
|
||||
for index, case in ipairs (lista) do
|
||||
if (not case [3] or case [3]()) then
|
||||
output_array [#output_array + 1] = {iconsize = case [4].iconsize, value = case [2], label = case [1], onclick = on_click, icon = case [4].icon, texcoord = case [4].coords, iconcolor = case [4].color}
|
||||
end
|
||||
end
|
||||
|
||||
local channels = {_GetChannelList()} --> coloca o resultado em uma tabela .. {id1, canal1, id2, canal2}
|
||||
for i = 1, #channels, 2 do --> total de canais
|
||||
|
||||
output_array [#output_array + 1] = {iconsize = iconsize, value = "CHANNEL|"..channels [i+1], label = channels [i]..". "..channels [i+1], onclick = on_click, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], texcoord = {0.3046875, 0.4453125, 0.109375, 0.390625}, iconcolor = {149/255, 112/255, 112/255}}
|
||||
|
||||
--lista [#lista+1] = {channels [i]..". "..channels [i+1], "CHANNEL|"..channels [i+1]}
|
||||
end
|
||||
|
||||
local bnet_friends = {}
|
||||
|
||||
local BnetFriends = BNGetNumFriends()
|
||||
for i = 1, BnetFriends do
|
||||
local presenceID, presenceName, battleTag, isBattleTagPresence, toonName, toonID, client, isOnline, lastOnline, isAFK, isDND, messageText, noteText, isRIDFriend, broadcastTime, canSoR = BNGetFriendInfo (i)
|
||||
if (isOnline) then
|
||||
output_array [#output_array + 1] = {iconsize = iconsize, value = "REALID|" .. presenceID, label = presenceName, onclick = on_click, icon = [[Interface\FriendsFrame\Battlenet-Battleneticon]], texcoord = {0.125, 0.875, 0.125, 0.875}, iconcolor = {1, 1, 1}}
|
||||
end
|
||||
end
|
||||
|
||||
return output_array
|
||||
end
|
||||
|
||||
local select_output = gump:NewDropDown (este_gump, _, "$parentOutputDropdown", "select", 185, 20, build_list, 1)
|
||||
select_output:SetPoint ("topleft", este_gump, "topleft", 107, -55)
|
||||
este_gump.select = select_output.widget
|
||||
|
||||
local lista = {
|
||||
{Loc ["STRING_REPORTFRAME_PARTY"], "PARTY", function() return GetNumSubgroupMembers() > 0 end},
|
||||
{Loc ["STRING_REPORTFRAME_RAID"], "RAID", _IsInRaid},
|
||||
{Loc ["STRING_REPORTFRAME_GUILD"], "GUILD", _IsInGuild},
|
||||
{Loc ["STRING_REPORTFRAME_OFFICERS"], "OFFICER", _IsInGuild},
|
||||
{Loc ["STRING_REPORTFRAME_WHISPER"], "WHISPER"},
|
||||
{Loc ["STRING_REPORTFRAME_WHISPERTARGET"], "WHISPER2"},
|
||||
{Loc ["STRING_REPORTFRAME_SAY"], "SAY"},
|
||||
{Loc ["STRING_REPORTFRAME_COPY"], "COPY"},
|
||||
}
|
||||
|
||||
local function initialize (self, level)
|
||||
local info = _UIDropDownMenu_CreateInfo()
|
||||
@@ -236,6 +294,16 @@ local _UISpecialFrames = UISpecialFrames --> wow api locals
|
||||
for i = 1, #channels, 2 do --> total de canais
|
||||
lista [#lista+1] = {channels [i]..". "..channels [i+1], "CHANNEL|"..channels [i+1]}
|
||||
end
|
||||
|
||||
local BnetFriends = BNGetNumFriends()
|
||||
for i = 1, BnetFriends do
|
||||
local presenceID, presenceName, battleTag, isBattleTagPresence, toonName, toonID, client, isOnline, lastOnline, isAFK, isDND, messageText, noteText, isRIDFriend, broadcastTime, canSoR = BNGetFriendInfo (i)
|
||||
if (isOnline) then
|
||||
lista [#lista+1] = {presenceName, "REALID|" .. presenceID, nil, [[Interface\FriendsFrame\Battlenet-Battleneticon]]}
|
||||
end
|
||||
end
|
||||
|
||||
--BNSendWhisper
|
||||
|
||||
for index, v in _pairs (lista) do
|
||||
|
||||
@@ -243,18 +311,19 @@ local _UISpecialFrames = UISpecialFrames --> wow api locals
|
||||
info = _UIDropDownMenu_CreateInfo()
|
||||
info.text = v[1]
|
||||
info.value = v[2]
|
||||
|
||||
if (v[4]) then
|
||||
info.icon = v[4]
|
||||
end
|
||||
|
||||
info.func = OnClick
|
||||
_UIDropDownMenu_AddButton (info, level)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
_UIDropDownMenu_Initialize (selecionar, initialize)
|
||||
_UIDropDownMenu_SetWidth (selecionar, 165)
|
||||
_UIDropDownMenu_SetButtonWidth (selecionar, 120)
|
||||
_UIDropDownMenu_SetSelectedValue (selecionar, "WHISPER")
|
||||
_detalhes.report_where = "WHISPER"
|
||||
_UIDropDownMenu_JustifyText (selecionar, "LEFT")
|
||||
|
||||
end
|
||||
|
||||
--> slider
|
||||
@@ -331,7 +400,7 @@ local _UISpecialFrames = UISpecialFrames --> wow api locals
|
||||
este_gump.wisp_who:SetText (Loc ["STRING_REPORTFRAME_WHISPER"] .. ":")
|
||||
este_gump.wisp_who:SetTextColor (1, 1, 1, 1)
|
||||
|
||||
este_gump.wisp_who:SetPoint ("topleft", este_gump.select, "topleft", 28, -30)
|
||||
este_gump.wisp_who:SetPoint ("topleft", este_gump.select, "topleft", 14, -30)
|
||||
|
||||
_detalhes:SetFontSize (este_gump.wisp_who, 10)
|
||||
|
||||
@@ -342,7 +411,7 @@ local _UISpecialFrames = UISpecialFrames --> wow api locals
|
||||
editbox:SetAutoFocus (false)
|
||||
editbox:SetFontObject ("GameFontHighlightSmall")
|
||||
|
||||
editbox:SetPoint ("TOPLEFT", este_gump.select, "TOPLEFT", 78, -28)
|
||||
editbox:SetPoint ("TOPLEFT", este_gump.select, "TOPLEFT", 64, -28)
|
||||
|
||||
editbox:SetHeight (14)
|
||||
editbox:SetWidth (120)
|
||||
|
||||
@@ -319,7 +319,7 @@ function _detalhes:OpenWelcomeWindow ()
|
||||
if (_detalhes.time_type == 1) then --> chronometer
|
||||
chronometer:SetChecked (true)
|
||||
continuous:SetChecked (false)
|
||||
elseif (_detalhes.time_type == 1) then --> continuous
|
||||
elseif (_detalhes.time_type == 2) then --> continuous
|
||||
chronometer:SetChecked (false)
|
||||
continuous:SetChecked (true)
|
||||
end
|
||||
@@ -701,6 +701,8 @@ function _detalhes:OpenWelcomeWindow ()
|
||||
skin_dropdown:SetPoint ("left", skin_label, "right", 2)
|
||||
skin_label:SetPoint ("topleft", window, "topleft", 30, -140)
|
||||
|
||||
skin_dropdown:Select ("Default Skin")
|
||||
|
||||
--wallpapper
|
||||
--> agora cria os 2 dropdown da categoria e wallpaper
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ if not Loc then return end
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.11.10|r\n\n|cFFFFFF00-|r Accuracy with warcraftlogs.com now is very high and okey with worldoflogs.com. Make sure the option |cFFFFDD00Time Measure|r under General Settings -> Combat is set to |cFFFFDD00Effective Time|r.\n\n|cFFFFFF00-|r Options Window has been revamped, again.\n\n|cFFFFFF00-|r Added a option for change the class icons.\n\n|cFFFFFF00-|r Added options for show Total Bar and configure it.\n\n|cFFFFFF00-|r Added a option for save a Standard Skin, new windows opened use this skin.\n\n|cFFFFFF00-|r Added a new skin: ElvUI Frame Style.\n\n|cFFFFFF00-|r When hover a spell icon under Player Details Window, the spell description is shown.\n\n|cFFFFFF00-|r Pressing Shift key on a spell bar over the Encounter Details Window, shows up the spell description.\n\n|cFFFFFF00v1.11.6|r\n\n|cFFFFFF00-|r Added new skin: Minimalistic, a very clean one.\n\n|cFFFFFF00-|r Added a new tab called avoidance on Player Details window for tanks.\n\n|cFFFFFF00-|r Added Copy & Paste option on report window. Now you can share your dps on twitter and facebook!\n\n|cFFFFFF00-|r Added a new option for auto switch what a window shows when you enter in a combat.\n\n|cFFFFFF00-|r Fixed issue with window background alpha which was changing the value everytime the options window is opened.\n\n|cFFFFFF00-|r Fixed the gap between the bar and the window background when disabling borders.\n\n|cFFFFFF00-|r Make some improvements on Tiny Threat plugin.\n\n|cFFFFFF00v1.11.3|r\n\n|cFFFFFF00-|r Fixed more known issues with skins.\n\n|cFFFFFF00-|r Fixed an issue where plugin icons wasn't hiding after close all windows.\n\n|cFFFFFF00v1.11.2|r\n\n|cFFFFFF00-|r Fixed bugs where Details! stop working if no plugin is actived on Wow addon panel.\n\n|cFFFFFF00v1.11.0|r\n\n|cFFFFFF00-|r Added an option for abbreviate Dps and Hps.\n\n|cFFFFFF00-|r Fixed issue where the window icon fade away when reopening the window.\n\n|cFFFFFF00-|r Improvements in class recognition.\n\n|cFFFFFF00-|r Added follow spells as defensive cooldowns:\nHealing Tide Totem, Spirit Link Totem, Demoralizing Banner, Mass Spell Reflection and Shield Block.\n\n|cFFFFFF00-|r More improvements done in Encounter Details plugin.\n\n|cFFFFFF00-|r Improvements made in the downloadable plugins: Timeline and Advanced Death Logs.\n\n|cFFFFFF00v1.10.0|r\n\n|cFFFFFF00-|r Fixed a issue with overall data Dps when have only one segment.\n\n|cFFFFFF00-|r Changed colors and added some backgrounds for menus.\n\n|cFFFFFF00-|r Options panel has his height size increased.\n\n|cFFFFFF00-|r Added options for hide the window or change the transparency when in combat.\n\n|cFFFFFF00-|r Added a control panel for plugins, where you can enable or disable then.\n\n|cFFFFFF00v1.9.5|r\n\n|cFFFFFF00-|r More fixes on Skins support and new tools for plugins.|r\n\n|cFFFFFF00v1.9.4|r\n\n|cFFFFFF00-|r Minor bug fixes and improvements on Welcome Screen.\n\n|cFFFFFF00v1.9.3|r\n\n|cFFFFFF00-|r The bar now starts after the icon instead of left window border.\n\n|cFFFFFF00-|r Welcome window now is localizated to others languages\n\n|cFFFFFF00-|r Fixed issue with Damage Rank Plugin.\n\n|cFFFFFF00v1.9.1|r\n\n|cFFFFFF00-|r fixed issue with main window icon when no plugin installed. \n\n|cFFFFFF00-|r fixed issue with some options button text which where out of positioning."
|
||||
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.12.0|r\n\n|cFFFFFF00-|r Added support to Profiles, now you can share the same config between two or more characters.\n\n|cFFFFFF00-|r Added support for BattleTag friends over report window.\n\n|cFFFFFF00-|r Added pet threat to Tiny Threat plugin when out of a party or raid group.\n\n|cFFFFFF00-|r Fixed a issue with close button where it disappear without close the window when toolbar is in bottom side.\n\n|cFFFFFF00-|r Also fixed a issue where swapping toolbar positioning was sometimes making close button disappear.\n\n|cFFFFFF00-|r Fixed a problem opening options panel through minimap when there is no window opened.\n\n|cFFFFFF00v1.11.10|r\n\n|cFFFFFF00-|r Accuracy with warcraftlogs.com now is very high and okey with worldoflogs.com. Make sure the option |cFFFFDD00Time Measure|r under General Settings -> Combat is set to |cFFFFDD00Effective Time|r.\n\n|cFFFFFF00-|r Options Window has been revamped, again.\n\n|cFFFFFF00-|r Added a option for change the class icons.\n\n|cFFFFFF00-|r Added options for show Total Bar and configure it.\n\n|cFFFFFF00-|r Added a option for save a Standard Skin, new windows opened use this skin.\n\n|cFFFFFF00-|r Added a new skin: ElvUI Frame Style.\n\n|cFFFFFF00-|r When hover a spell icon under Player Details Window, the spell description is shown.\n\n|cFFFFFF00-|r Pressing Shift key on a spell bar over the Encounter Details Window, shows up the spell description.\n\n|cFFFFFF00v1.11.6|r\n\n|cFFFFFF00-|r Added new skin: Minimalistic, a very clean one.\n\n|cFFFFFF00-|r Added a new tab called avoidance on Player Details window for tanks.\n\n|cFFFFFF00-|r Added Copy & Paste option on report window. Now you can share your dps on twitter and facebook!\n\n|cFFFFFF00-|r Added a new option for auto switch what a window shows when you enter in a combat.\n\n|cFFFFFF00-|r Fixed issue with window background alpha which was changing the value everytime the options window is opened.\n\n|cFFFFFF00-|r Fixed the gap between the bar and the window background when disabling borders.\n\n|cFFFFFF00-|r Make some improvements on Tiny Threat plugin.\n\n|cFFFFFF00v1.11.3|r\n\n|cFFFFFF00-|r Fixed more known issues with skins.\n\n|cFFFFFF00-|r Fixed an issue where plugin icons wasn't hiding after close all windows.\n\n|cFFFFFF00v1.11.2|r\n\n|cFFFFFF00-|r Fixed bugs where Details! stop working if no plugin is actived on Wow addon panel.\n\n|cFFFFFF00v1.11.0|r\n\n|cFFFFFF00-|r Added an option for abbreviate Dps and Hps.\n\n|cFFFFFF00-|r Fixed issue where the window icon fade away when reopening the window.\n\n|cFFFFFF00-|r Improvements in class recognition.\n\n|cFFFFFF00-|r Added follow spells as defensive cooldowns:\nHealing Tide Totem, Spirit Link Totem, Demoralizing Banner, Mass Spell Reflection and Shield Block.\n\n|cFFFFFF00-|r More improvements done in Encounter Details plugin.\n\n|cFFFFFF00-|r Improvements made in the downloadable plugins: Timeline and Advanced Death Logs.\n\n|cFFFFFF00v1.10.0|r\n\n|cFFFFFF00-|r Fixed a issue with overall data Dps when have only one segment.\n\n|cFFFFFF00-|r Changed colors and added some backgrounds for menus.\n\n|cFFFFFF00-|r Options panel has his height size increased.\n\n|cFFFFFF00-|r Added options for hide the window or change the transparency when in combat.\n\n|cFFFFFF00-|r Added a control panel for plugins, where you can enable or disable then.\n\n|cFFFFFF00v1.9.5|r\n\n|cFFFFFF00-|r More fixes on Skins support and new tools for plugins.|r\n\n|cFFFFFF00v1.9.4|r\n\n|cFFFFFF00-|r Minor bug fixes and improvements on Welcome Screen."
|
||||
|
||||
Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails:|r " --> color and details name
|
||||
|
||||
@@ -638,6 +638,27 @@ Loc ["STRING_OPTIONS_BARGROW_DIRECTION_DESC"] = "Change the bars grow method.."
|
||||
Loc ["STRING_OPTIONS_BARSORT_DIRECTION"] = "Sort Direction"
|
||||
Loc ["STRING_OPTIONS_BARSORT_DIRECTION_DESC"] = "Change the order which characters are shown within the bars."
|
||||
|
||||
Loc ["STRING_OPTIONS_PROFILES_TITLE"] = "Profiles"
|
||||
Loc ["STRING_OPTIONS_PROFILES_TITLE_DESC"] = "This options allow you share the same settings between different characters."
|
||||
|
||||
Loc ["STRING_OPTIONS_PROFILES_CURRENT"] = "Current Profile:"
|
||||
Loc ["STRING_OPTIONS_PROFILES_CURRENT_DESC"] = "This is the current actived profile name."
|
||||
|
||||
Loc ["STRING_OPTIONS_PROFILES_SELECT"] = "Select Profile"
|
||||
Loc ["STRING_OPTIONS_PROFILES_SELECT_DESC"] = "Allows you change the current profile overwriting all your current settings.\n\nProfiles are useful if you desire shared settings between more then one character."
|
||||
|
||||
Loc ["STRING_OPTIONS_PROFILES_CREATE"] = "Create Profile"
|
||||
Loc ["STRING_OPTIONS_PROFILES_CREATE_DESC"] = "Create a new empty profile."
|
||||
|
||||
Loc ["STRING_OPTIONS_PROFILES_COPY"] = "Copy Profile From"
|
||||
Loc ["STRING_OPTIONS_PROFILES_COPY_DESC"] = "Copy all settings from the selected profile to current profile overwriting all values."
|
||||
|
||||
Loc ["STRING_OPTIONS_PROFILES_ERASE"] = "Remove Profile"
|
||||
Loc ["STRING_OPTIONS_PROFILES_ERASE_DESC"] = "Remove the selected profile."
|
||||
|
||||
Loc ["STRING_OPTIONS_PROFILES_RESET"] = "Reset Current Profile"
|
||||
Loc ["STRING_OPTIONS_PROFILES_RESET_DESC"] = "Reset all settings."
|
||||
|
||||
Loc ["STRING_OPTIONS_WP"] = "Wallpaper Settings"
|
||||
Loc ["STRING_OPTIONS_WP_DESC"] = "This options control the wallpaper of instance."
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ if not Loc then return end
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.11.10|r\n\n|cFFFFFF00-|r Accuracy with warcraftlogs.com now is very high and okey with worldoflogs.com. Make sure the option |cFFFFDD00Time Measure|r under General Settings -> Combat is set to |cFFFFDD00Effective Time|r.\n\n|cFFFFFF00-|r Options Window has been revamped, again.\n\n|cFFFFFF00-|r Added a option for change the class icons.\n\n|cFFFFFF00-|r Added options for show Total Bar and configure it.\n\n|cFFFFFF00-|r Added a option for save a Standard Skin, new windows opened use this skin.\n\n|cFFFFFF00-|r Added a new skin: ElvUI Frame Style.\n\n|cFFFFFF00-|r When hover a spell icon under Player Details Window, the spell description is shown.\n\n|cFFFFFF00-|r Pressing Shift key on a spell bar over the Encounter Details Window, shows up the spell description.\n\n|cFFFFFF00v1.11.6|r\n\n|cFFFFFF00-|r Adicionado nova skin: Minimalistic.\n\n|cFFFFFF00-|r Adicionado nova aba chamada avoidance no painel de detalhes do jogador apenas para tanques.\n\n|cFFFFFF00-|r Adicionado opcao de Copiar e Coloar na janela de criar relatorios. Agora voce pode dizer seu dps aos seus amigos no twitter e facebook!\n\n|cFFFFFF00-|r Adicionada nova opcao de troca o que uma janela esta mostrando quando voce entrar em combate.\n\n|cFFFFFF00-|r Corrigido problema com a transparencia da janela onde ela mudava sozinha sempre que a janela de opcoes eta aberta.\n\n|cFFFFFF00-|r Corrigido o vao em branco que ficava entre o inicio de uma barra e o fundo da janela quando as bordas eram desligadas.\n\n|cFFFFFF00-|r Feito algumas melhorias no plugin Tiny Threat.\n\n|cFFFFFF00v1.11.3|r\n\n|cFFFFFF00-|r Corrigido mais problemas conhecidos com as Skins.\n\n|cFFFFFF00-|r Corrigido problema onde os icones dos plugins nao eram escondidos apos fechar todas as janelas.\n\n|cFFFFFF00v1.11.2|r\n\n|cFFFFFF00-|r Corrigido problemas onde o Details! parava de funcionar se nenhum plugin estiver ligado no painel de addons do Wow.|cFFFFFF00v1.11.0|r\n\n|cFFFFFF00-|r Adicionado opcao para abreviar o Dps e o Hps.\n\n|cFFFFFF00-|r Corrigido um problema onde o icone da janela desaparecia ao reabri-la.\n\n|cFFFFFF00-|r Melhorias no reconhecimento das classes.\n\n|cFFFFFF00-|r As seguintes magias foram adicionadas como cooldowns: Healing Tide Totem, Spirit Link Totem, Demoralizing Banner, Mass Spell Reflection and Shield Block.\n\n|cFFFFFF00-|r Mais melhorias feitas no plugin Encounter Details.\n\n|cFFFFFF00-|r Melhorias feitas nos plugins disponiveis para download: Timeline e Advanced Death Logs.\n\n|cFFFFFF00v1.10.0|r\n\n|cFFFFFF00-|r Corrigido um problema no Dps no segmento total quando existia apenas 1 segmento.\n\n|cFFFFFF00-|r Cores e imagem de fundo dos menus foram alterados.\n\n|cFFFFFF00-|r A altura do painel de opcoes foi aumentada.\n\n|cFFFFFF00-|r Adicionada opcao para esconder ou alterar a transparencia da janela quando estiver em combate.\n\n|cFFFFFF00-|r Adicionado um painel de controle de plugins para ativar ou desativa-los.\n\n|cFFFFFF00v1.9.5|r\n\n|cFFFFFF00-|rMais correcoes para as Skins e suporte a novos plugins.|r\n\n|cFFFFFF00v1.9.4|r\n\n|cFFFFFF00-|r Pequenas correcoes e melhorias na tela de boas vindas.\n\n|cFFFFFF00v1.9.3|r\n\n|cFFFFFF00-|r A barra agora comeca apos o icone e nao mais na borda esquerda da janela.\n\n|cFFFFFF00-|r Janela de boas vindas agora esta traduzida para outros idiomas.\n\n|cFFFFFF00-|r Corrigido o problema que estava afetando o plugin de Rank de Dano.\n\n|cFFFFFF00v1.9.1|r\n\n|cFFFFFF00-|r corrigido problema do icone na janela principal quando nao havia nenhum plugin instalado. \n\n|cFFFFFF00-|r corrigido problema com alguns botoes no painel de opcoes onde o texto estava fora do lugar.\n\n|cFFFFFF00-|r corrigido a posicao dos sub menus quando proximos a borda direita do monitor.\n\n|cFFFFFF00-|r corrigida a posicao do botao de fechar do skin padrao.\n\n|cFFFFFF00-|r corrigido um erro nas skins ao selecionar um plugin de raide ou solo.|cFFFFFF00v1.9.0|r\n\n|cFFFFFF00-|r Corrigido o problema de nao movimentar o botao no minimapa.\n\n|cFFFFFF00-|r Suporte a skins foi reescrito e agora ficou mais flexivel.\n\n|cFFFFFF00-|r Adicionadas mais de 20 opcoes de customizacao no painel de opcoes.\n\n|cFFFFFF00v1.8.4|r\n\n|cFFFFFF00-|r Adicionado comando 'details reinstalar' no qual limpa a configuracao do Details! em caso de erros.\n\n|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."
|
||||
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.12.0|r\n\n|cFFFFFF00-|r Added support to Profiles, now you can share the same config between two or more characters.\n\n|cFFFFFF00-|r Added support for BattleTag friends over report window.\n\n|cFFFFFF00-|r Added pet threat to Tiny Threat plugin when out of a party or raid group.\n\n|cFFFFFF00-|r Fixed a issue with close button where it disappear without close the window when toolbar is in bottom side.\n\n|cFFFFFF00-|r Also fixed a issue where swapping toolbar positioning was sometimes making close button disappear.\n\n|cFFFFFF00-|r Fixed a problem opening options panel through minimap when there is no window opened.\n\n|cFFFFFF00v1.11.10|r\n\n|cFFFFFF00-|r Accuracy with warcraftlogs.com now is very high and okey with worldoflogs.com. Make sure the option |cFFFFDD00Time Measure|r under General Settings -> Combat is set to |cFFFFDD00Effective Time|r.\n\n|cFFFFFF00-|r Options Window has been revamped, again.\n\n|cFFFFFF00-|r Added a option for change the class icons.\n\n|cFFFFFF00-|r Added options for show Total Bar and configure it.\n\n|cFFFFFF00-|r Added a option for save a Standard Skin, new windows opened use this skin.\n\n|cFFFFFF00-|r Added a new skin: ElvUI Frame Style.\n\n|cFFFFFF00-|r When hover a spell icon under Player Details Window, the spell description is shown.\n\n|cFFFFFF00-|r Pressing Shift key on a spell bar over the Encounter Details Window, shows up the spell description.\n\n|cFFFFFF00v1.11.6|r\n\n|cFFFFFF00-|r Adicionado nova skin: Minimalistic.\n\n|cFFFFFF00-|r Adicionado nova aba chamada avoidance no painel de detalhes do jogador apenas para tanques.\n\n|cFFFFFF00-|r Adicionado opcao de Copiar e Coloar na janela de criar relatorios. Agora voce pode dizer seu dps aos seus amigos no twitter e facebook!\n\n|cFFFFFF00-|r Adicionada nova opcao de troca o que uma janela esta mostrando quando voce entrar em combate.\n\n|cFFFFFF00-|r Corrigido problema com a transparencia da janela onde ela mudava sozinha sempre que a janela de opcoes eta aberta.\n\n|cFFFFFF00-|r Corrigido o vao em branco que ficava entre o inicio de uma barra e o fundo da janela quando as bordas eram desligadas.\n\n|cFFFFFF00-|r Feito algumas melhorias no plugin Tiny Threat.\n\n|cFFFFFF00v1.11.3|r\n\n|cFFFFFF00-|r Corrigido mais problemas conhecidos com as Skins.\n\n|cFFFFFF00-|r Corrigido problema onde os icones dos plugins nao eram escondidos apos fechar todas as janelas.\n\n|cFFFFFF00v1.11.2|r\n\n|cFFFFFF00-|r Corrigido problemas onde o Details! parava de funcionar se nenhum plugin estiver ligado no painel de addons do Wow.|cFFFFFF00v1.11.0|r\n\n|cFFFFFF00-|r Adicionado opcao para abreviar o Dps e o Hps.\n\n|cFFFFFF00-|r Corrigido um problema onde o icone da janela desaparecia ao reabri-la.\n\n|cFFFFFF00-|r Melhorias no reconhecimento das classes.\n\n|cFFFFFF00-|r As seguintes magias foram adicionadas como cooldowns: Healing Tide Totem, Spirit Link Totem, Demoralizing Banner, Mass Spell Reflection and Shield Block.\n\n|cFFFFFF00-|r Mais melhorias feitas no plugin Encounter Details.\n\n|cFFFFFF00-|r Melhorias feitas nos plugins disponiveis para download: Timeline e Advanced Death Logs.\n\n|cFFFFFF00v1.10.0|r\n\n|cFFFFFF00-|r Corrigido um problema no Dps no segmento total quando existia apenas 1 segmento.\n\n|cFFFFFF00-|r Cores e imagem de fundo dos menus foram alterados.\n\n|cFFFFFF00-|r A altura do painel de opcoes foi aumentada.\n\n|cFFFFFF00-|r Adicionada opcao para esconder ou alterar a transparencia da janela quando estiver em combate.\n\n|cFFFFFF00-|r Adicionado um painel de controle de plugins para ativar ou desativa-los.\n\n|cFFFFFF00v1.9.5|r\n\n|cFFFFFF00-|rMais correcoes para as Skins e suporte a novos plugins.|r\n\n|cFFFFFF00v1.9.4|r\n\n|cFFFFFF00-|r Pequenas correcoes e melhorias na tela de boas vindas.\n\n|cFFFFFF00v1.9.3|r\n\n|cFFFFFF00-|r A barra agora comeca apos o icone e nao mais na borda esquerda da janela.\n\n|cFFFFFF00-|r Janela de boas vindas agora esta traduzida para outros idiomas.\n\n|cFFFFFF00-|r Corrigido o problema que estava afetando o plugin de Rank de Dano.\n\n|cFFFFFF00v1.9.1|r\n\n|cFFFFFF00-|r corrigido problema do icone na janela principal quando nao havia nenhum plugin instalado. \n\n|cFFFFFF00-|r corrigido problema com alguns botoes no painel de opcoes onde o texto estava fora do lugar.\n\n|cFFFFFF00-|r corrigido a posicao dos sub menus quando proximos a borda direita do monitor.\n\n|cFFFFFF00-|r corrigida a posicao do botao de fechar do skin padrao.\n\n|cFFFFFF00-|r corrigido um erro nas skins ao selecionar um plugin de raide ou solo.|cFFFFFF00v1.9.0|r\n\n|cFFFFFF00-|r Corrigido o problema de nao movimentar o botao no minimapa.\n\n|cFFFFFF00-|r Suporte a skins foi reescrito e agora ficou mais flexivel.\n\n|cFFFFFF00-|r Adicionadas mais de 20 opcoes de customizacao no painel de opcoes."
|
||||
|
||||
Loc ["STRING_DETAILS1"] = "|cffffaeaeDetalhes:|r " --> color and details name
|
||||
|
||||
|
||||
@@ -385,7 +385,7 @@ local siege_of_orgrimmar = {
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Norushen]],
|
||||
|
||||
--combat_end = {1, 72276},
|
||||
encounter_start = {delay = 25},
|
||||
encounter_start = {delay = 0},
|
||||
equalize = true,
|
||||
|
||||
spell_mechanics = {
|
||||
|
||||
@@ -288,6 +288,8 @@ local function CreatePluginFrames (data)
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
--> player
|
||||
local thisplayer_name = GetUnitName ("player", true)
|
||||
local threat_table_index = ThreatMeter.player_list_hash [thisplayer_name]
|
||||
local threat_table = ThreatMeter.player_list_indexes [threat_table_index]
|
||||
@@ -300,6 +302,24 @@ local function CreatePluginFrames (data)
|
||||
threat_table [2] = 0
|
||||
threat_table [3] = false
|
||||
end
|
||||
|
||||
--> pet
|
||||
if (UnitExists ("pet")) then
|
||||
local thisplayer_name = GetUnitName ("pet", true) .. " *PET*"
|
||||
local threat_table_index = ThreatMeter.player_list_hash [thisplayer_name]
|
||||
local threat_table = ThreatMeter.player_list_indexes [threat_table_index]
|
||||
|
||||
if (threat_table) then
|
||||
local isTanking, status, threatpct, rawthreatpct, threatvalue = _UnitDetailedThreatSituation ("pet", "target")
|
||||
if (status) then
|
||||
threat_table [2] = threatpct
|
||||
threat_table [3] = isTanking
|
||||
else
|
||||
threat_table [2] = 0
|
||||
threat_table [3] = false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--> sort
|
||||
@@ -314,10 +334,6 @@ local function CreatePluginFrames (data)
|
||||
return
|
||||
end
|
||||
|
||||
--and ThreatMeter.player_list_indexes [1] [2] > 0
|
||||
-- ThreatMeter.player_list_indexes = {}
|
||||
-- ThreatMeter.player_list_hash = {}
|
||||
|
||||
local lastIndex = 0
|
||||
local shownMe = false
|
||||
|
||||
@@ -447,9 +463,16 @@ local function CreatePluginFrames (data)
|
||||
ThreatMeter.player_list_indexes [#ThreatMeter.player_list_indexes+1] = t
|
||||
ThreatMeter.player_list_hash [thisplayer_name] = #ThreatMeter.player_list_indexes
|
||||
|
||||
if (UnitExists ("pet")) then
|
||||
local thispet_name = GetUnitName ("pet", true) .. " *PET*"
|
||||
local role = "DAMAGER"
|
||||
local t = {thispet_name, 0, false, role, class}
|
||||
ThreatMeter.player_list_indexes [#ThreatMeter.player_list_indexes+1] = t
|
||||
ThreatMeter.player_list_hash [thispet_name] = #ThreatMeter.player_list_indexes
|
||||
end
|
||||
end
|
||||
|
||||
local job_thread = ThreatMeter:ScheduleRepeatingTimer ("Tick", 1)
|
||||
local job_thread = ThreatMeter:ScheduleRepeatingTimer ("Tick", ThreatMeter.options.updatespeed)
|
||||
ThreatMeter.job_thread = job_thread
|
||||
end
|
||||
end
|
||||
@@ -500,7 +523,7 @@ function ThreatMeter:OnEvent (_, event, ...)
|
||||
local MINIMAL_DETAILS_VERSION_REQUIRED = 1
|
||||
|
||||
--> Install
|
||||
local install = _G._detalhes:InstallPlugin ("TANK", Loc ["STRING_PLUGIN_NAME"], "Interface\\Icons\\Ability_Paladin_ShieldofVengeance", ThreatMeter, "DETAILS_PLUGIN_TINY_THREAT", MINIMAL_DETAILS_VERSION_REQUIRED, "Details! Team", "v1.02")
|
||||
local install, saveddata = _G._detalhes:InstallPlugin ("TANK", Loc ["STRING_PLUGIN_NAME"], "Interface\\Icons\\Ability_Paladin_ShieldofVengeance", ThreatMeter, "DETAILS_PLUGIN_TINY_THREAT", MINIMAL_DETAILS_VERSION_REQUIRED, "Details! Team", "v1.04")
|
||||
if (type (install) == "table" and install.error) then
|
||||
print (install.error)
|
||||
end
|
||||
@@ -516,12 +539,57 @@ function ThreatMeter:OnEvent (_, event, ...)
|
||||
ThreatMeterFrame:RegisterEvent ("PLAYER_TARGET_CHANGED")
|
||||
ThreatMeterFrame:RegisterEvent ("PLAYER_REGEN_DISABLED")
|
||||
ThreatMeterFrame:RegisterEvent ("PLAYER_REGEN_ENABLED")
|
||||
|
||||
--> Saved data
|
||||
ThreatMeter.saveddata = saveddata or {}
|
||||
|
||||
ThreatMeter.saveddata.updatespeed = ThreatMeter.saveddata.updatespeed or 1
|
||||
ThreatMeter.saveddata.animate = ThreatMeter.saveddata.animate or false
|
||||
ThreatMeter.saveddata.showamount = ThreatMeter.saveddata.showamount or false
|
||||
|
||||
ThreatMeter.options = ThreatMeter.saveddata
|
||||
|
||||
--> Register slash commands
|
||||
SLASH_DETAILS_TINYTHREAT1, SLASH_DETAILS_TINYTHREAT2 = "/tinythreat", "/tt"
|
||||
|
||||
function SlashCmdList.DETAILS_TINYTHREAT (msg, editbox)
|
||||
|
||||
local command, rest = msg:match("^(%S*)%s*(.-)$")
|
||||
|
||||
if (command == Loc ["STRING_SLASH_ANIMATE"]) then
|
||||
|
||||
elseif (command == Loc ["STRING_SLASH_SPEED"]) then
|
||||
|
||||
if (rest) then
|
||||
local speed = tonumber (rest)
|
||||
if (speed) then
|
||||
if (speed > 3) then
|
||||
speed = 3
|
||||
elseif (speed < 0.3) then
|
||||
speed = 0.3
|
||||
end
|
||||
|
||||
ThreatMeter.saveddata.updatespeed = speed
|
||||
ThreatMeter:Msg (Loc ["STRING_SLASH_SPEED_CHANGED"] .. speed)
|
||||
else
|
||||
ThreatMeter:Msg (Loc ["STRING_SLASH_SPEED_CURRENT"] .. ThreatMeter.saveddata.updatespeed)
|
||||
end
|
||||
end
|
||||
|
||||
elseif (command == Loc ["STRING_SLASH_AMOUNT"]) then
|
||||
|
||||
else
|
||||
|
||||
ThreatMeter:Msg (Loc ["STRING_COMMAND_LIST"])
|
||||
print ("|cffffaeae/tinythreat " .. Loc ["STRING_SLASH_SPEED"] .. "|r: " .. Loc ["STRING_SLASH_SPEED_DESC"])
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
elseif (event == "PLAYER_LOGOUT") then
|
||||
_detalhes_databaseThreat = ThreatMeter.data
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
## Interface: 50400
|
||||
## Title: Details Tiny Threat (plugin)
|
||||
## Notes: Plugin for Details
|
||||
## SavedVariablesPerCharacter: _detalhes_databaseThreat
|
||||
## RequiredDeps: Details
|
||||
## OptionalDeps: Ace3
|
||||
|
||||
|
||||
@@ -4,4 +4,13 @@ if (not Loc) then
|
||||
return
|
||||
end
|
||||
|
||||
Loc ["STRING_PLUGIN_NAME"] = "Tiny Threat"
|
||||
Loc ["STRING_PLUGIN_NAME"] = "Tiny Threat"
|
||||
|
||||
Loc ["STRING_SLASH_ANIMATE"] = "animate"
|
||||
Loc ["STRING_SLASH_SPEED"] = "speed"
|
||||
Loc ["STRING_SLASH_AMOUNT"] = "amount"
|
||||
|
||||
Loc ["STRING_COMMAND_LIST"] = "Available Commands:"
|
||||
Loc ["STRING_SLASH_SPEED_DESC"] = "Changes the frequency (in seconds) which the window is updated, allow values between 0.1 and 3.0"
|
||||
Loc ["STRING_SLASH_SPEED_CHANGED"] = "Update Speed changed to "
|
||||
Loc ["STRING_SLASH_SPEED_CURRENT"] = "Update Speed current value is "
|
||||
+62
-55
@@ -11,56 +11,9 @@ function _G._detalhes:Start()
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> details defaults
|
||||
_detalhes.debug = false
|
||||
local _
|
||||
--> who is
|
||||
self.playername = UnitName ("player")
|
||||
self.playerserial = UnitGUID ("player")
|
||||
|
||||
--> player faction and enemy faction
|
||||
self.faction = UnitFactionGroup ("player")
|
||||
if (self.faction == PLAYER_FACTION_GROUP[0]) then --> player is horde
|
||||
self.faction_against = PLAYER_FACTION_GROUP[1] --> ally
|
||||
elseif (self.faction == PLAYER_FACTION_GROUP[1]) then --> player is alliance
|
||||
self.faction_against = PLAYER_FACTION_GROUP[0] --> horde
|
||||
end
|
||||
|
||||
self.zone_type = nil
|
||||
_detalhes.temp_table1 = {}
|
||||
|
||||
--> combat
|
||||
self.encounter = {}
|
||||
self.in_combat = false
|
||||
self.combat_id = self.combat_id or 0
|
||||
|
||||
--> instances (windows)
|
||||
self.solo = self.solo or nil
|
||||
self.raid = self.raid or nil
|
||||
self.opened_windows = 0
|
||||
|
||||
self.default_texture = [[Interface\AddOns\Details\images\bar4]]
|
||||
self.default_texture_name = "Details D'ictum"
|
||||
|
||||
self.tooltip_max_targets = 3
|
||||
self.tooltip_max_abilities = 3
|
||||
self.tooltip_max_pets = 1
|
||||
|
||||
self.class_coords_version = 1
|
||||
self.class_colors_version = 1
|
||||
|
||||
self.school_colors = {
|
||||
[1] = {1.00, 1.00, 0.00},
|
||||
[2] = {1.00, 0.90, 0.50},
|
||||
[4] = {1.00, 0.50, 0.00},
|
||||
[8] = {0.30, 1.00, 0.30},
|
||||
[16] = {0.50, 1.00, 1.00},
|
||||
[32] = {0.50, 0.50, 1.00},
|
||||
[64] = {1.00, 0.50, 1.00},
|
||||
["unknown"] = {0.5, 0.75, 0.75, 1}
|
||||
}
|
||||
|
||||
--> parse all config
|
||||
_detalhes:ApplyConfigDataOnLoad()
|
||||
--_detalhes:CountDataOnLoad()
|
||||
|
||||
--> single click row function replace
|
||||
--damage, dps, damage taken, friendly fire
|
||||
@@ -76,8 +29,7 @@ function _G._detalhes:Start()
|
||||
--> initialize
|
||||
|
||||
--> build frames
|
||||
--> cooltip
|
||||
self.popup = DetailsCreateCoolTip()
|
||||
|
||||
--> fast switch
|
||||
if (self.switch.InitSwitch) then
|
||||
self.switch:InitSwitch()
|
||||
@@ -123,7 +75,7 @@ function _G._detalhes:Start()
|
||||
if (self:QuantasInstancias() == 0) then
|
||||
self:CriarInstancia()
|
||||
else
|
||||
self:ReativarInstancias()
|
||||
--self:ReativarInstancias()
|
||||
end
|
||||
self:GetLowerInstanceNumber()
|
||||
self:CheckConsolidates()
|
||||
@@ -242,15 +194,17 @@ function _G._detalhes:Start()
|
||||
function self:AnnounceVersion()
|
||||
for index, instancia in ipairs (self.tabela_instancias) do
|
||||
if (instancia.ativa) then
|
||||
self.gump:Fade (instancia._version, "in", 5)
|
||||
self.gump:Fade (instancia._version, "in", 0.1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--[[
|
||||
if (self.tutorial.version_announce < 4) then
|
||||
self:ScheduleTimer ("AnnounceVersion", 20)
|
||||
self.tutorial.version_announce = self.tutorial.version_announce + 1
|
||||
else
|
||||
|
||||
for index, instancia in ipairs (self.tabela_instancias) do
|
||||
if (instancia.ativa) then
|
||||
self.gump:Fade (instancia._version, 0)
|
||||
@@ -264,6 +218,7 @@ function _G._detalhes:Start()
|
||||
end
|
||||
end
|
||||
end
|
||||
--]]
|
||||
|
||||
if (self.is_first_run) then
|
||||
|
||||
@@ -296,13 +251,16 @@ function _G._detalhes:Start()
|
||||
|
||||
--_detalhes:OpenWelcomeWindow()
|
||||
|
||||
--desligado por preocaução
|
||||
if (self.tutorial.logons < 2) then
|
||||
self:StartTutorial()
|
||||
--self:StartTutorial()
|
||||
end
|
||||
|
||||
--> feedback trhead
|
||||
if (self.tutorial.logons > 100) then -- and self.tutorial.logons < 104
|
||||
if (self.tutorial.logons > 100 and false) then -- and self.tutorial.logons < 104
|
||||
|
||||
--desligado por preocaução
|
||||
|
||||
if (not self.tutorial.feedback_window1) then
|
||||
self.tutorial.feedback_window1 = true
|
||||
|
||||
@@ -407,6 +365,7 @@ function _G._detalhes:Start()
|
||||
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]],
|
||||
@@ -414,8 +373,15 @@ function _G._detalhes:Start()
|
||||
OnClick = function (self, button)
|
||||
|
||||
if (button == "LeftButton") then
|
||||
|
||||
local lower_instance = _detalhes:GetLowerInstanceNumber()
|
||||
_detalhes:OpenOptionsWindow (_detalhes:GetInstance (lower_instance))
|
||||
if (not lower_instance) then
|
||||
local instance = _detalhes:GetInstance (1)
|
||||
_detalhes.CriarInstancia (_, _, 1)
|
||||
_detalhes:OpenOptionsWindow (instance)
|
||||
else
|
||||
_detalhes:OpenOptionsWindow (_detalhes:GetInstance (lower_instance))
|
||||
end
|
||||
|
||||
elseif (button == "RightButton") then
|
||||
|
||||
@@ -484,6 +450,7 @@ function _G._detalhes:Start()
|
||||
|
||||
if (minimapIcon and not LDBIcon:IsRegistered ("Details!")) then
|
||||
LDBIcon:Register ("Details!", minimapIcon, self.minimap)
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
@@ -670,6 +637,46 @@ function _G._detalhes:Start()
|
||||
f:Hide()
|
||||
|
||||
|
||||
local lower = _detalhes:GetLowerInstanceNumber()
|
||||
if (lower) then
|
||||
local instance = _detalhes:GetInstance (lower)
|
||||
if (instance) then
|
||||
|
||||
--in development
|
||||
local dev_icon = instance.bgdisplay:CreateTexture (nil, "overlay")
|
||||
dev_icon:SetWidth (40)
|
||||
dev_icon:SetHeight (40)
|
||||
dev_icon:SetPoint ("bottomleft", instance.baseframe, "bottomleft", 4, 8)
|
||||
dev_icon:SetTexture ([[Interface\DialogFrame\UI-Dialog-Icon-AlertOther]])
|
||||
dev_icon:SetAlpha (.3)
|
||||
|
||||
local dev_text = instance.bgdisplay:CreateFontString (nil, "overlay", "GameFontHighlightSmall")
|
||||
dev_text:SetHeight (64)
|
||||
dev_text:SetPoint ("left", dev_icon, "right", 5, 0)
|
||||
dev_text:SetTextColor (1, 1, 1)
|
||||
dev_text:SetText ("Details is Under\nDevelopment")
|
||||
dev_text:SetAlpha (.3)
|
||||
|
||||
--version
|
||||
self.gump:Fade (instance._version, 0)
|
||||
instance._version:SetText ("Details! Alpha " .. _detalhes.userversion .. " (core: " .. self.realversion .. ")")
|
||||
instance._version:SetPoint ("bottomleft", instance.baseframe, "bottomleft", 5, 1)
|
||||
|
||||
if (instance.auto_switch_to_old) then
|
||||
instance:SwitchBack()
|
||||
end
|
||||
|
||||
function _detalhes:FadeStartVersion()
|
||||
_detalhes.gump:Fade (dev_icon, "in", 2)
|
||||
_detalhes.gump:Fade (dev_text, "in", 2)
|
||||
self.gump:Fade (instance._version, "in", 2)
|
||||
end
|
||||
|
||||
_detalhes:ScheduleTimer ("FadeStartVersion", 7)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user