81771ec1ec
- Added a new tab on options panel for broker config. - Added new abbreviation method called "comma". - Fully removed the delete button switch between instances, new all instances have a delete button. - Full re-write on the instance, delete and close buttons. - Fixed the total healing done by the raid group which was counting overheal too. - HotCorners now sort icons according with most used. - Few changes on all skins in order to fit on the new right menu buttons. - Added Horde avatars. - Fixed issue where shortcut panel shows below thw windows when its in Dialog strata. - Fixed problem with import data capture for charts. - API Cooltip: Added new option: TextShadow -> true or false. - New API: _detalhes.StatusBar:SetPlugin (instance, pluginname, anchor) - New API: _detalhes:SetPlayerDetailsWindowTexture (texture) - New API: _detalhes:SetOptionsWindowTexture (texture)
802 lines
30 KiB
Lua
802 lines
30 KiB
Lua
--no inicio da luta gravar tabela com os coolsdowns de cada jogador e ir anotando quando eles sao usados.
|
|
|
|
--File Revision: 1
|
|
--Last Modification: 27/07/2013
|
|
-- Change Log:
|
|
-- 27/07/2013: Finished alpha version.
|
|
|
|
function _G._detalhes:Start()
|
|
|
|
--teste de box
|
|
--[[
|
|
local f = CreateFrame ("frame", "TestBoxFrame", UIParent)
|
|
f:SetPoint ("center", UIParent, "center")
|
|
f:SetSize (256, 256)
|
|
f:SetMovable (true)
|
|
|
|
local t = f:CreateTexture (nil, "artwork")
|
|
t:SetSize (90, 90)
|
|
t:SetPoint ("topleft", f, "topleft")
|
|
t:SetTexture ("Interface\\Addons\\Details\\box")
|
|
t:SetTexCoord (0.29296875, 0.64453125, 0.265625-0.001953125, 0.6171875+0.001953125) -- 75 68 165 158 0.001953125 //
|
|
|
|
local left = f:CreateFontString (nil, "overlay", "GameFontNormal")
|
|
local right = f:CreateFontString (nil, "overlay", "GameFontNormal")
|
|
local top = f:CreateFontString (nil, "overlay", "GameFontNormal")
|
|
local bottom = f:CreateFontString (nil, "overlay", "GameFontNormal")
|
|
|
|
left:SetPoint ("right", t, "left", -20, 0)
|
|
right:SetPoint ("left", t, "right", 20, 0)
|
|
top:SetPoint ("bottom", t, "top", 0, 20)
|
|
bottom:SetPoint ("top", t, "bottom", 0, -20)
|
|
|
|
function f:UpdateLeftRight()
|
|
left:SetText ("left: " .. string.format ("%.3f", t:GetLeft()))
|
|
right:SetText ("right: " .. string.format ("%.3f", t:GetRight()))
|
|
top:SetText ("top: " .. string.format ("%.3f", t:GetTop()))
|
|
bottom:SetText ("bottom: " .. string.format ("%.3f", t:GetBottom()))
|
|
end
|
|
f:UpdateLeftRight()
|
|
|
|
f:SetScript ("OnMouseDown", function() f:StartMoving(); f:SetScript("OnUpdate", function() f:UpdateLeftRight() end) end)
|
|
f:SetScript ("OnMouseUp", function() f:StopMovingOrSizing(); f:SetScript("OnUpdate", nil); f:UpdateLeftRight() end)
|
|
|
|
function _detalhes:updatetestbox()
|
|
f:UpdateLeftRight()
|
|
end
|
|
_detalhes:ScheduleTimer("updatetestbox", 5)
|
|
|
|
--]]
|
|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
--> details defaults
|
|
|
|
--> parse all config
|
|
--_detalhes:CountDataOnLoad()
|
|
|
|
--> single click row function replace
|
|
--damage, dps, damage taken, friendly fire
|
|
self.row_singleclick_overwrite [1] = {true, true, true, true, self.atributo_damage.ReportSingleFragsLine, true, self.atributo_damage.ReportSingleVoidZoneLine}
|
|
--healing, hps, overheal, healing taken
|
|
self.row_singleclick_overwrite [2] = {true, true, true, true, false, self.atributo_heal.ReportSingleDamagePreventedLine}
|
|
--mana, rage, energy, runepower
|
|
self.row_singleclick_overwrite [3] = {true, true, true, true}
|
|
--cc breaks, ress, interrupts, dispells, deaths
|
|
self.row_singleclick_overwrite [4] = {true, true, true, true, self.atributo_misc.ReportSingleDeadLine, self.atributo_misc.ReportSingleCooldownLine, self.atributo_misc.ReportSingleBuffUptimeLine, self.atributo_misc.ReportSingleDebuffUptimeLine}
|
|
|
|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
--> initialize
|
|
|
|
--> build frames
|
|
|
|
--> fast switch
|
|
if (self.switch.InitSwitch) then
|
|
self.switch:InitSwitch()
|
|
end
|
|
--> custom window
|
|
self.custom = self.custom or {}
|
|
self:InitCustom()
|
|
--> actor info
|
|
self.janela_info = self.gump:CriaJanelaInfo()
|
|
self.gump:Fade (self.janela_info, 1)
|
|
--> copy and paste window
|
|
self:CreateCopyPasteWindow()
|
|
self.CreateCopyPasteWindow = nil
|
|
--> yesno frame
|
|
self.yesNo = self.gump:NewPanel (UIParent, _, "DetailsYesNoWindow", _, 500, 80)
|
|
self.yesNo:SetPoint ("center", UIParent, "center")
|
|
self.gump:NewLabel (self.yesNo, _, "$parentAsk", "ask", "")
|
|
self.yesNo ["ask"]:SetPoint ("center", self.yesNo, "center", 0, 25)
|
|
self.yesNo ["ask"]:SetWidth (480)
|
|
self.yesNo ["ask"]:SetJustifyH ("center")
|
|
self.yesNo ["ask"]:SetHeight (22)
|
|
local Loc = LibStub ("AceLocale-3.0"):GetLocale ("Details")
|
|
self.gump:NewButton (self.yesNo, _, "$parentNo", "no", 100, 30, function() self.yesNo:Hide() end, nil, nil, nil, Loc ["STRING_NO"])
|
|
self.gump:NewButton (self.yesNo, _, "$parentYes", "yes", 100, 30, nil, nil, nil, nil, Loc ["STRING_YES"])
|
|
self.yesNo ["no"]:SetPoint (10, -45)
|
|
self.yesNo ["yes"]:SetPoint (390, -45)
|
|
self.yesNo ["no"]:InstallCustomTexture()
|
|
self.yesNo ["yes"]:InstallCustomTexture()
|
|
self.yesNo ["yes"]:SetHook ("OnMouseUp", function() self.yesNo:Hide() end)
|
|
function _detalhes:Ask (msg, func, ...)
|
|
self.yesNo ["ask"].text = msg
|
|
local p1, p2 = ...
|
|
self.yesNo ["yes"]:SetClickFunction (func, p1, p2)
|
|
self.yesNo:Show()
|
|
end
|
|
self.yesNo:Hide()
|
|
|
|
--> start instances
|
|
|
|
--_detalhes.custom = {}
|
|
--_detalhes.tabela_instancias = {}
|
|
|
|
if (self:QuantasInstancias() == 0) then
|
|
self:CriarInstancia()
|
|
else
|
|
--self:ReativarInstancias()
|
|
end
|
|
self:GetLowerInstanceNumber()
|
|
self:CheckConsolidates()
|
|
|
|
--> start time machine
|
|
self.timeMachine:Ligar()
|
|
|
|
--> update abbreviation shorcut
|
|
self.atributo_damage:UpdateSelectedToKFunction()
|
|
self.atributo_heal:UpdateSelectedToKFunction()
|
|
self.atributo_energy:UpdateSelectedToKFunction()
|
|
self.atributo_misc:UpdateSelectedToKFunction()
|
|
|
|
--> start instances updater
|
|
self:AtualizaGumpPrincipal (-1, true)
|
|
self.atualizador = self:ScheduleRepeatingTimer ("AtualizaGumpPrincipal", _detalhes.update_speed, -1)
|
|
|
|
for index = 1, #self.tabela_instancias do
|
|
local instance = self.tabela_instancias [index]
|
|
if (instance:IsAtiva()) then
|
|
self:ScheduleTimer ("RefreshBars", 1, instance)
|
|
self:ScheduleTimer ("InstanceReset", 1, instance)
|
|
self:ScheduleTimer ("InstanceRefreshRows", 1, instance)
|
|
end
|
|
end
|
|
|
|
function self:RefreshAfterStartup()
|
|
|
|
self:AtualizaGumpPrincipal (-1, true)
|
|
|
|
local lower_instance = _detalhes:GetLowerInstanceNumber()
|
|
|
|
for index = 1, #self.tabela_instancias do
|
|
local instance = self.tabela_instancias [index]
|
|
if (instance:IsAtiva()) then
|
|
--> refresh wallpaper
|
|
if (instance.wallpaper.enabled) then
|
|
instance:InstanceWallpaper (true)
|
|
end
|
|
|
|
--> refresh desaturated icons if is lower instance
|
|
if (index == lower_instance) then
|
|
instance:DesaturateMenu()
|
|
end
|
|
end
|
|
end
|
|
|
|
_detalhes.ToolBar:ReorganizeIcons() --> refresh all skin
|
|
|
|
self.RefreshAfterStartup = nil
|
|
end
|
|
self:ScheduleTimer ("RefreshAfterStartup", 4)
|
|
|
|
|
|
|
|
--> start garbage collector
|
|
self.ultima_coleta = 0
|
|
self.intervalo_coleta = 720
|
|
self.intervalo_memoria = 180
|
|
self.garbagecollect = self:ScheduleRepeatingTimer ("IniciarColetaDeLixo", self.intervalo_coleta)
|
|
self.memorycleanup = self:ScheduleRepeatingTimer ("CheckMemoryPeriodically", self.intervalo_memoria)
|
|
self.next_memory_check = time()+self.intervalo_memoria
|
|
|
|
--> start parser
|
|
|
|
--> load parser capture options
|
|
self:CaptureRefresh()
|
|
--> register parser events
|
|
--self.listener:RegisterEvent ("COMBAT_LOG_EVENT_UNFILTERED")
|
|
self.parser_frame:RegisterEvent ("COMBAT_LOG_EVENT_UNFILTERED")
|
|
self.listener:RegisterEvent ("PLAYER_REGEN_DISABLED")
|
|
self.listener:RegisterEvent ("PLAYER_REGEN_ENABLED")
|
|
self.listener:RegisterEvent ("SPELL_SUMMON")
|
|
self.listener:RegisterEvent ("UNIT_PET")
|
|
|
|
self.listener:RegisterEvent ("PARTY_MEMBERS_CHANGED")
|
|
self.listener:RegisterEvent ("GROUP_ROSTER_UPDATE")
|
|
self.listener:RegisterEvent ("PARTY_CONVERTED_TO_RAID")
|
|
|
|
self.listener:RegisterEvent ("INSTANCE_ENCOUNTER_ENGAGE_UNIT")
|
|
|
|
self.listener:RegisterEvent ("ZONE_CHANGED_NEW_AREA")
|
|
self.listener:RegisterEvent ("PLAYER_ENTERING_WORLD")
|
|
|
|
self.listener:RegisterEvent ("ENCOUNTER_START")
|
|
self.listener:RegisterEvent ("ENCOUNTER_END")
|
|
|
|
--self.listener:RegisterAllEvents()
|
|
|
|
-- self.listener:RegisterEvent ("SPELL_CAST_START")
|
|
-- self.listener:RegisterEvent ("UNIT_SPELLCAST_STOP")
|
|
-- self.listener:RegisterEvent ("UNIT_SPELLCAST_SUCCEEDED")
|
|
-- self.listener:RegisterEvent ("UNIT_SPELLCAST_FAILED")
|
|
-- self.listener:RegisterEvent ("UNIT_SPELLCAST_FAILED_QUIET")
|
|
-- self.listener:RegisterEvent ("UNIT_SPELLCAST_INTERRUPTED")
|
|
----------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
local SharedMedia = LibStub:GetLibrary ("LibSharedMedia-3.0")
|
|
|
|
function _detalhes:CooltipPreset (preset)
|
|
|
|
local GameCooltip = GameCooltip
|
|
|
|
GameCooltip:Reset()
|
|
|
|
if (preset == 1) then
|
|
GameCooltip:SetOption ("TextFont", "Friz Quadrata TT")
|
|
GameCooltip:SetOption ("TextColor", "orange")
|
|
GameCooltip:SetOption ("TextSize", 12)
|
|
GameCooltip:SetOption ("ButtonsYMod", -4)
|
|
GameCooltip:SetOption ("YSpacingMod", -4)
|
|
GameCooltip:SetOption ("IgnoreButtonAutoHeight", true)
|
|
GameCooltip:SetColor (1, 0.5, 0.5, 0.5, 0.5)
|
|
end
|
|
end
|
|
|
|
--> done
|
|
self.initializing = nil
|
|
|
|
--> group
|
|
self.details_users = {}
|
|
self.in_group = IsInGroup() or IsInRaid()
|
|
|
|
--> send messages gathered on initialization
|
|
self:ScheduleTimer ("ShowDelayMsg", 10)
|
|
|
|
--> send instance open signal
|
|
for index, instancia in ipairs (self.tabela_instancias) do
|
|
if (instancia.ativa) then
|
|
self:SendEvent ("DETAILS_INSTANCE_OPEN", nil, instancia)
|
|
--instancia:SetBarGrowDirection()
|
|
end
|
|
end
|
|
|
|
--> all done, send started signal and we are ready
|
|
function self:AnnounceStartup()
|
|
self:SendEvent ("DETAILS_STARTED", "SEND_TO_ALL")
|
|
end
|
|
self:ScheduleTimer ("AnnounceStartup", 5)
|
|
|
|
--> announce alpha version
|
|
function self:AnnounceVersion()
|
|
for index, instancia in ipairs (self.tabela_instancias) do
|
|
if (instancia.ativa) then
|
|
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)
|
|
instancia._version:SetText ("Details! Alpha " .. _detalhes.userversion .. " (core: " .. self.realversion .. ")")
|
|
instancia._version:SetPoint ("bottomleft", instancia.baseframe, "bottomleft", 0, 1)
|
|
self.gump:Fade (instancia._version, "in", 10)
|
|
|
|
if (instancia.auto_switch_to_old) then
|
|
instancia:SwitchBack()
|
|
end
|
|
end
|
|
end
|
|
end
|
|
--]]
|
|
|
|
--_detalhes:OpenWelcomeWindow() --for debug
|
|
|
|
if (self.is_first_run) then
|
|
|
|
_detalhes:OpenWelcomeWindow()
|
|
|
|
if (#self.custom == 0) then
|
|
local Healthstone = {
|
|
["attribute"] = 2,
|
|
["spell"] = "6262",
|
|
["name"] = "Healthstone",
|
|
["sattribute"] = 1,
|
|
["target"] = "",
|
|
["source"] = "[raid]",
|
|
["icon"] = "Interface\\Icons\\warlock_ healthstone",
|
|
}
|
|
self.custom [#self.custom+1] = Healthstone
|
|
|
|
local HealingPotion = {
|
|
["attribute"] = 2,
|
|
["spell"] = "105708",
|
|
["name"] = "Healing Potion",
|
|
["sattribute"] = 1,
|
|
["target"] = "",
|
|
["source"] = "[raid]",
|
|
["icon"] = "Interface\\Icons\\trade_alchemy_potiond3",
|
|
}
|
|
self.custom [#self.custom+1] = HealingPotion
|
|
end
|
|
|
|
_detalhes:FillUserCustomSpells()
|
|
|
|
end
|
|
|
|
--_detalhes:OpenWelcomeWindow()
|
|
|
|
--desligado por preocaução
|
|
if (self.tutorial.logons < 2) then
|
|
--self:StartTutorial()
|
|
end
|
|
|
|
--> feedback trhead
|
|
if (self.tutorial.logons > 100) then -- and self.tutorial.logons < 104
|
|
|
|
--desligado por preocaução
|
|
|
|
if (not self.tutorial.feedback_window1) then
|
|
self.tutorial.feedback_window1 = true
|
|
|
|
local feedback_frame = CreateFrame ("FRAME", "DetailsFeedbackWindow", UIParent, "ButtonFrameTemplate")
|
|
tinsert (UISpecialFrames, "DetailsFeedbackWindow")
|
|
feedback_frame:SetPoint ("center", UIParent, "center")
|
|
feedback_frame:SetSize (512, 200)
|
|
feedback_frame.portrait:SetTexture ([[Interface\CHARACTERFRAME\TEMPORARYPORTRAIT-FEMALE-GNOME]])
|
|
|
|
feedback_frame.TitleText:SetText ("Details! Need Your Help!")
|
|
|
|
feedback_frame.uppertext = feedback_frame:CreateFontString (nil, "artwork", "GameFontNormal")
|
|
feedback_frame.uppertext:SetText ("Tell us about your experience using Details!, what you liked most, where we could improve, what things you want to see in the future?")
|
|
feedback_frame.uppertext:SetPoint ("topleft", feedback_frame, "topleft", 60, -32)
|
|
local font, _, flags = feedback_frame.uppertext:GetFont()
|
|
feedback_frame.uppertext:SetFont (font, 10, flags)
|
|
feedback_frame.uppertext:SetTextColor (1, 1, 1, .8)
|
|
feedback_frame.uppertext:SetWidth (440)
|
|
|
|
|
|
local editbox = _detalhes.gump:NewTextEntry (feedback_frame, nil, "$parentTextEntry", "text", 387, 14)
|
|
editbox:SetPoint (20, -106)
|
|
editbox:SetAutoFocus (false)
|
|
editbox:SetHook ("OnEditFocusGained", function()
|
|
editbox.text = "http://www.mmo-champion.com/threads/1480721-New-damage-meter-%28Details!%29-need-help-with-tests-and-feedbacks"
|
|
editbox:HighlightText()
|
|
end)
|
|
editbox:SetHook ("OnEditFocusLost", function()
|
|
editbox.text = "http://www.mmo-champion.com/threads/1480721-New-damage-meter-%28Details!%29-need-help-with-tests-and-feedbacks"
|
|
editbox:HighlightText()
|
|
end)
|
|
editbox:SetHook ("OnChar", function()
|
|
editbox.text = "http://www.mmo-champion.com/threads/1480721-New-damage-meter-%28Details!%29-need-help-with-tests-and-feedbacks"
|
|
editbox:HighlightText()
|
|
end)
|
|
editbox.text = "http://www.mmo-champion.com/threads/1480721-New-damage-meter-%28Details!%29-need-help-with-tests-and-feedbacks"
|
|
|
|
|
|
feedback_frame.midtext = feedback_frame:CreateFontString (nil, "artwork", "GameFontNormal")
|
|
feedback_frame.midtext:SetText ("visit the link above and let's make Details! stronger!")
|
|
feedback_frame.midtext:SetPoint ("center", editbox.widget, "center")
|
|
feedback_frame.midtext:SetPoint ("top", editbox.widget, "bottom", 0, -2)
|
|
feedback_frame.midtext:SetJustifyH ("center")
|
|
local font, _, flags = feedback_frame.midtext:GetFont()
|
|
feedback_frame.midtext:SetFont (font, 10, flags)
|
|
--feedback_frame.midtext:SetTextColor (1, 1, 1, 1)
|
|
feedback_frame.midtext:SetWidth (440)
|
|
|
|
|
|
feedback_frame.gnoma = feedback_frame:CreateTexture (nil, "artwork")
|
|
feedback_frame.gnoma:SetPoint ("topright", feedback_frame, "topright", -1, -59)
|
|
feedback_frame.gnoma:SetTexture ("Interface\\AddOns\\Details\\images\\icons2")
|
|
feedback_frame.gnoma:SetSize (105*1.05, 107*1.05)
|
|
feedback_frame.gnoma:SetTexCoord (0.2021484375, 0, 0.7919921875, 1)
|
|
|
|
feedback_frame.close = CreateFrame ("Button", "DetailsFeedbackWindowCloseButton", feedback_frame, "OptionsButtonTemplate")
|
|
feedback_frame.close:SetPoint ("bottomleft", feedback_frame, "bottomleft", 8, 4)
|
|
feedback_frame.close:SetText ("Close")
|
|
feedback_frame.close:SetScript ("OnClick", function (self)
|
|
editbox:ClearFocus()
|
|
feedback_frame:Hide()
|
|
end)
|
|
|
|
feedback_frame.postpone = CreateFrame ("Button", "DetailsFeedbackWindowPostPoneButton", feedback_frame, "OptionsButtonTemplate")
|
|
feedback_frame.postpone:SetPoint ("bottomright", feedback_frame, "bottomright", -10, 4)
|
|
feedback_frame.postpone:SetText ("Remind-me Later")
|
|
feedback_frame.postpone:SetScript ("OnClick", function (self)
|
|
editbox:ClearFocus()
|
|
feedback_frame:Hide()
|
|
_detalhes.tutorial.feedback_window1 = false
|
|
end)
|
|
feedback_frame.postpone:SetWidth (130)
|
|
|
|
feedback_frame:SetScript ("OnHide", function()
|
|
editbox:ClearFocus()
|
|
end)
|
|
|
|
--0.0009765625 512
|
|
function _detalhes:FeedbackSetFocus()
|
|
DetailsFeedbackWindow:Show()
|
|
DetailsFeedbackWindowTextEntry.MyObject:SetFocus()
|
|
DetailsFeedbackWindowTextEntry.MyObject:HighlightText()
|
|
end
|
|
_detalhes:ScheduleTimer ("FeedbackSetFocus", 5)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
if (self.is_version_first_run) then
|
|
|
|
local enable_reset_warning = true
|
|
|
|
local lower_instance = _detalhes:GetLowerInstanceNumber()
|
|
if (lower_instance) then
|
|
lower_instance = _detalhes:GetInstance (lower_instance)
|
|
if (lower_instance) then
|
|
lower_instance:InstanceAlert (Loc ["STRING_VERSION_UPDATE"], {[[Interface\GossipFrame\AvailableQuestIcon]], 16, 16, false}, 60, {_detalhes.OpenNewsWindow})
|
|
end
|
|
end
|
|
|
|
_detalhes:FillUserCustomSpells()
|
|
|
|
if (_detalhes_database.last_realversion and _detalhes_database.last_realversion < 18 and enable_reset_warning) then
|
|
|
|
--print ("Last Version:", _detalhes_database.last_version, "Last Interval Version:", _detalhes_database.last_realversion)
|
|
|
|
local resetwarning_frame = CreateFrame ("FRAME", "DetailsResetConfigWarningDialog", UIParent, "ButtonFrameTemplate")
|
|
resetwarning_frame:SetFrameStrata ("LOW")
|
|
tinsert (UISpecialFrames, "DetailsResetConfigWarningDialog")
|
|
resetwarning_frame:SetPoint ("center", UIParent, "center")
|
|
resetwarning_frame:SetSize (512, 200)
|
|
resetwarning_frame.portrait:SetTexture ([[Interface\CHARACTERFRAME\TEMPORARYPORTRAIT-FEMALE-GNOME]])
|
|
resetwarning_frame:SetScript ("OnHide", function()
|
|
DetailsBubble:HideBubble()
|
|
end)
|
|
|
|
resetwarning_frame.TitleText:SetText ("Noooooooooooo!!!")
|
|
|
|
resetwarning_frame.midtext = resetwarning_frame:CreateFontString (nil, "artwork", "GameFontNormal")
|
|
resetwarning_frame.midtext:SetText ("A pack of murlocs has attacked Details! tech center, our gnomes engineers are working on fixing the damage.\n\n If something is messed in your Details!, you can click on the 'Reset Skin' button.")
|
|
resetwarning_frame.midtext:SetPoint ("topleft", resetwarning_frame, "topleft", 10, -90)
|
|
resetwarning_frame.midtext:SetJustifyH ("center")
|
|
resetwarning_frame.midtext:SetWidth (370)
|
|
|
|
resetwarning_frame.gnoma = resetwarning_frame:CreateTexture (nil, "artwork")
|
|
resetwarning_frame.gnoma:SetPoint ("topright", resetwarning_frame, "topright", -3, -80)
|
|
resetwarning_frame.gnoma:SetTexture ("Interface\\AddOns\\Details\\images\\icons2")
|
|
resetwarning_frame.gnoma:SetSize (89*1.00, 97*1.00)
|
|
--resetwarning_frame.gnoma:SetTexCoord (0.212890625, 0.494140625, 0.798828125, 0.99609375) -- 109 409 253 510
|
|
resetwarning_frame.gnoma:SetTexCoord (0.17578125, 0.001953125, 0.59765625, 0.787109375) -- 1 306 90 403
|
|
|
|
resetwarning_frame.close = CreateFrame ("Button", "DetailsFeedbackWindowCloseButton", resetwarning_frame, "OptionsButtonTemplate")
|
|
resetwarning_frame.close:SetPoint ("bottomleft", resetwarning_frame, "bottomleft", 8, 4)
|
|
resetwarning_frame.close:SetText ("Close")
|
|
resetwarning_frame.close:SetScript ("OnClick", function (self)
|
|
resetwarning_frame:Hide()
|
|
end)
|
|
|
|
resetwarning_frame.see_updates = CreateFrame ("Button", "DetailsResetWindowSeeUpdatesButton", resetwarning_frame, "OptionsButtonTemplate")
|
|
resetwarning_frame.see_updates:SetPoint ("bottomright", resetwarning_frame, "bottomright", -10, 4)
|
|
resetwarning_frame.see_updates:SetText ("Update Info")
|
|
resetwarning_frame.see_updates:SetScript ("OnClick", function (self)
|
|
_detalhes.OpenNewsWindow()
|
|
DetailsBubble:HideBubble()
|
|
--resetwarning_frame:Hide()
|
|
end)
|
|
resetwarning_frame.see_updates:SetWidth (130)
|
|
|
|
resetwarning_frame.reset_skin = CreateFrame ("Button", "DetailsResetWindowResetSkinButton", resetwarning_frame, "OptionsButtonTemplate")
|
|
resetwarning_frame.reset_skin:SetPoint ("right", resetwarning_frame.see_updates, "left", -10, 0)
|
|
resetwarning_frame.reset_skin:SetText ("Reset Skin")
|
|
resetwarning_frame.reset_skin:SetScript ("OnClick", function (self)
|
|
--do the reset
|
|
for index, instance in ipairs (_detalhes.tabela_instancias) do
|
|
if (not instance.iniciada) then
|
|
instance:RestauraJanela()
|
|
local skin = instance.skin
|
|
instance:ChangeSkin ("Default Skin")
|
|
instance:ChangeSkin ("Minimalistic")
|
|
instance:ChangeSkin (skin)
|
|
instance:DesativarInstancia()
|
|
else
|
|
local skin = instance.skin
|
|
instance:ChangeSkin ("Default Skin")
|
|
instance:ChangeSkin ("Minimalistic")
|
|
instance:ChangeSkin (skin)
|
|
end
|
|
end
|
|
end)
|
|
resetwarning_frame.reset_skin:SetWidth (130)
|
|
|
|
function _detalhes:ResetWarningDialog()
|
|
DetailsResetConfigWarningDialog:Show()
|
|
DetailsBubble:SetOwner (resetwarning_frame.gnoma, "bottomright", "topleft", 30, -37, 1)
|
|
DetailsBubble:FlipHorizontal()
|
|
DetailsBubble:SetBubbleText ("", "", "WWHYYYYYYYYY!!!!", "", "")
|
|
DetailsBubble:TextConfig (14, nil, "deeppink")
|
|
DetailsBubble:ShowBubble()
|
|
|
|
|
|
end
|
|
_detalhes:ScheduleTimer ("ResetWarningDialog", 7)
|
|
|
|
end
|
|
end
|
|
|
|
--> interface menu
|
|
local f = CreateFrame ("frame", "DetailsInterfaceOptionsPanel", UIParent)
|
|
f.name = "Details"
|
|
f.logo = f:CreateTexture (nil, "overlay")
|
|
f.logo:SetPoint ("center", f, "center", 0, 0)
|
|
f.logo:SetPoint ("top", f, "top", 25, 56)
|
|
f.logo:SetTexture ([[Interface\AddOns\Details\images\logotipo]])
|
|
f.logo:SetSize (256, 128)
|
|
InterfaceOptions_AddCategory (f)
|
|
|
|
--> open options panel
|
|
f.options_button = CreateFrame ("button", nil, f, "OptionsButtonTemplate")
|
|
f.options_button:SetText (Loc ["STRING_INTERFACE_OPENOPTIONS"])
|
|
f.options_button:SetPoint ("topleft", f, "topleft", 10, -100)
|
|
f.options_button:SetWidth (170)
|
|
f.options_button:SetScript ("OnClick", function (self)
|
|
local lower_instance = _detalhes:GetLowerInstanceNumber()
|
|
_detalhes:OpenOptionsWindow (_detalhes:GetInstance (lower_instance))
|
|
end)
|
|
|
|
--> create new window
|
|
f.new_window_button = CreateFrame ("button", nil, f, "OptionsButtonTemplate")
|
|
f.new_window_button:SetText (Loc ["STRING_MINIMAPMENU_NEWWINDOW"])
|
|
f.new_window_button:SetPoint ("topleft", f, "topleft", 10, -125)
|
|
f.new_window_button:SetWidth (170)
|
|
f.new_window_button:SetScript ("OnClick", function (self)
|
|
_detalhes:CriarInstancia (_, true)
|
|
end)
|
|
|
|
--> MicroButtonAlertTemplate
|
|
self.MicroButtonAlert = CreateFrame ("frame", "DetailsMicroButtonAlert", UIParent, "MicroButtonAlertTemplate")
|
|
self.MicroButtonAlert:Hide()
|
|
|
|
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
|
|
|
|
--> minimap
|
|
local LDB = LibStub ("LibDataBroker-1.1", true)
|
|
local LDBIcon = LDB and LibStub ("LibDBIcon-1.0", true)
|
|
|
|
if LDB then
|
|
|
|
local databroker = LDB:NewDataObject ("Details!", {
|
|
type = "launcher",
|
|
icon = [[Interface\AddOns\Details\images\minimap]],
|
|
text = "0",
|
|
|
|
HotCornerIgnore = true,
|
|
|
|
OnClick = function (self, button)
|
|
|
|
if (button == "LeftButton") then
|
|
|
|
--> 1 = open options panel
|
|
if (_detalhes.minimap.onclick_what_todo == 1) then
|
|
local lower_instance = _detalhes:GetLowerInstanceNumber()
|
|
if (not lower_instance) then
|
|
local instance = _detalhes:GetInstance (1)
|
|
_detalhes.CriarInstancia (_, _, 1)
|
|
_detalhes:OpenOptionsWindow (instance)
|
|
else
|
|
_detalhes:OpenOptionsWindow (_detalhes:GetInstance (lower_instance))
|
|
end
|
|
|
|
--> 2 = reset data
|
|
elseif (_detalhes.minimap.onclick_what_todo == 2) then
|
|
_detalhes.tabela_historico:resetar()
|
|
|
|
--> 3 = unknown
|
|
elseif (_detalhes.minimap.onclick_what_todo == 3) then
|
|
|
|
end
|
|
|
|
elseif (button == "RightButton") then
|
|
|
|
GameTooltip:Hide()
|
|
local GameCooltip = GameCooltip
|
|
|
|
GameCooltip:Reset()
|
|
GameCooltip:SetType ("menu")
|
|
GameCooltip:SetOption ("ButtonsYMod", -5)
|
|
GameCooltip:SetOption ("HeighMod", 5)
|
|
GameCooltip:SetOption ("TextSize", 10)
|
|
|
|
--344 427 200 268 0.0009765625
|
|
--0.672851, 0.833007, 0.391601, 0.522460
|
|
|
|
GameCooltip:SetBannerImage (1, [[Interface\AddOns\Details\images\icons]], 83*.5, 68*.5, {"bottomleft", "topleft", 1, -4}, {0.672851, 0.833007, 0.391601, 0.522460}, nil)
|
|
GameCooltip:SetBannerImage (2, "Interface\\PetBattles\\Weather-Windy", 512*.35, 128*.3, {"bottomleft", "topleft", -25, -4}, {0, 1, 1, 0})
|
|
GameCooltip:SetBannerText (1, "Mini Map Menu", {"left", "right", 2, -5}, "white", 10)
|
|
|
|
--> reset
|
|
GameCooltip:AddMenu (1, _detalhes.tabela_historico.resetar, true, nil, nil, Loc ["STRING_MINIMAPMENU_RESET"], nil, true)
|
|
GameCooltip:AddIcon ([[Interface\COMMON\VOICECHAT-MUTED]], 1, 1, 14, 14)
|
|
|
|
GameCooltip:AddLine ("$div")
|
|
|
|
--> nova instancai
|
|
GameCooltip:AddMenu (1, _detalhes.CriarInstancia, true, nil, nil, Loc ["STRING_MINIMAPMENU_NEWWINDOW"], nil, true)
|
|
GameCooltip:AddIcon ([[Interface\ICONS\Spell_ChargePositive]], 1, 1, 14, 14, 0.0703125, 0.9453125, 0.0546875, 0.9453125)
|
|
|
|
--> reopen window 64: 0.0078125
|
|
local reopen = function()
|
|
for _, instance in ipairs (_detalhes.tabela_instancias) do
|
|
if (not instance:IsAtiva()) then
|
|
_detalhes:CriarInstancia (instance.meu_id)
|
|
return
|
|
end
|
|
end
|
|
end
|
|
GameCooltip:AddMenu (1, reopen, nil, nil, nil, Loc ["STRING_MINIMAPMENU_REOPEN"], nil, true)
|
|
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Priest_VoidShift]], 1, 1, 14, 14, 0.0703125, 0.9453125, 0.0546875, 0.9453125)
|
|
|
|
GameCooltip:AddMenu (1, _detalhes.ReabrirTodasInstancias, true, nil, nil, Loc ["STRING_MINIMAPMENU_REOPENALL"], nil, true)
|
|
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Priest_VoidShift]], 1, 1, 14, 14, 0.0703125, 0.9453125, 0.0546875, 0.9453125, "#ffb400")
|
|
|
|
GameCooltip:AddLine ("$div")
|
|
|
|
--> lock
|
|
GameCooltip:AddMenu (1, _detalhes.TravasInstancias, true, nil, nil, Loc ["STRING_MINIMAPMENU_LOCK"], nil, true)
|
|
GameCooltip:AddIcon ([[Interface\PetBattles\PetBattle-LockIcon]], 1, 1, 14, 14, 0.0703125, 0.9453125, 0.0546875, 0.9453125)
|
|
|
|
GameCooltip:AddMenu (1, _detalhes.DestravarInstancias, true, nil, nil, Loc ["STRING_MINIMAPMENU_UNLOCK"], nil, true)
|
|
GameCooltip:AddIcon ([[Interface\PetBattles\PetBattle-LockIcon]], 1, 1, 14, 14, 0.0703125, 0.9453125, 0.0546875, 0.9453125, "gray")
|
|
|
|
GameCooltip:SetOwner (self, "topright", "bottomleft")
|
|
GameCooltip:ShowCooltip()
|
|
|
|
|
|
end
|
|
end,
|
|
OnTooltipShow = function (tooltip)
|
|
tooltip:AddLine ("Details!", 1, 1, 1)
|
|
if (_detalhes.minimap.onclick_what_todo == 1) then
|
|
tooltip:AddLine (Loc ["STRING_MINIMAP_TOOLTIP1"])
|
|
elseif (_detalhes.minimap.onclick_what_todo == 2) then
|
|
tooltip:AddLine (Loc ["STRING_MINIMAP_TOOLTIP11"])
|
|
end
|
|
tooltip:AddLine (Loc ["STRING_MINIMAP_TOOLTIP2"])
|
|
end,
|
|
})
|
|
|
|
if (databroker and not LDBIcon:IsRegistered ("Details!")) then
|
|
LDBIcon:Register ("Details!", databroker, self.minimap)
|
|
end
|
|
|
|
_detalhes.databroker = databroker
|
|
|
|
end
|
|
|
|
--register lib-hotcorners
|
|
local on_click_on_hotcorner_button = function (frame, button)
|
|
if (_detalhes.hotcorner_topleft.onclick_what_todo == 1) then
|
|
local lower_instance = _detalhes:GetLowerInstanceNumber()
|
|
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 (_detalhes.hotcorner_topleft.onclick_what_todo == 2) then
|
|
_detalhes.tabela_historico:resetar()
|
|
end
|
|
end
|
|
|
|
local on_click_on_quickclick_button = function (frame, button)
|
|
|
|
if (_detalhes.hotcorner_topleft.quickclick_what_todo == 1) then
|
|
local lower_instance = _detalhes:GetLowerInstanceNumber()
|
|
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 (_detalhes.hotcorner_topleft.quickclick_what_todo == 2) then
|
|
_detalhes.tabela_historico:resetar()
|
|
end
|
|
end
|
|
|
|
local tooltip_hotcorner = function()
|
|
GameTooltip:AddLine ("Details!", 1, 1, 1, 1)
|
|
if (_detalhes.hotcorner_topleft.onclick_what_todo == 1) then
|
|
GameTooltip:AddLine ("|cFF00FF00Left Click:|r open options panel.", 1, 1, 1, 1)
|
|
|
|
elseif (_detalhes.hotcorner_topleft.onclick_what_todo == 2) then
|
|
GameTooltip:AddLine ("|cFF00FF00Left Click:|r clear all segments.", 1, 1, 1, 1)
|
|
|
|
end
|
|
end
|
|
|
|
_detalhes:RegisterHotCornerButton (
|
|
--> absolute name
|
|
"Details!",
|
|
--> corner
|
|
"TOPLEFT",
|
|
--> config table
|
|
self.hotcorner_topleft,
|
|
--> frame _G name
|
|
"DetailsLeftCornerButton",
|
|
--> icon
|
|
[[Interface\AddOns\Details\images\minimap]],
|
|
--> tooltip
|
|
tooltip_hotcorner,
|
|
--> click function
|
|
on_click_on_hotcorner_button,
|
|
--> menus
|
|
nil,
|
|
--> quick click
|
|
on_click_on_quickclick_button)
|
|
|
|
--> register time captures
|
|
--_detalhes:LoadUserTimeCaptures()
|
|
|
|
--[[
|
|
local f = CreateFrame ("frame", nil, UIParent)
|
|
f:SetSize (200, 200)
|
|
f:SetPoint ("center", UIParent, "center")
|
|
local t = f:CreateTexture (nil, "overlay")
|
|
t:SetPoint ("center", f, "center")
|
|
t:SetTexture (1, 1, 1, 1)
|
|
t:SetSize (100, 100)
|
|
|
|
f:SetAlpha (.1)
|
|
t:SetAlpha (1)
|
|
t:SetVertexColor (1, 1, 1, 1)
|
|
|
|
local b = CreateFrame ("button", "teste", f, "OptionsButtonTemplate")
|
|
b:SetSize (75, 30)
|
|
b:SetPoint ("left", f, "left")
|
|
b:SetAlpha (1)
|
|
--]]
|
|
|
|
function _detalhes:OpenOptionsWindowAtStart()
|
|
--_detalhes:OpenOptionsWindow (_detalhes.tabela_instancias[1])
|
|
--print (_G ["DetailsClearSegmentsButton1"]:GetSize())
|
|
end
|
|
_detalhes:ScheduleTimer ("OpenOptionsWindowAtStart", 2)
|
|
|
|
end
|
|
|