Quantcast
--[[
##############################################################################
_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
 ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__      #
  __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____     #
   ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____    #
    ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____   #
     _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____  #
      __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ #
       _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_#
        ___\///////////___________\///___________\/////////_____\///////////_#
##############################################################################
S U P E R - V I L L A I N - U I   By: Munglunch                              #
##############################################################################
##########################################################
LOCALIZED LUA FUNCTIONS
##########################################################
]]--
--[[ GLOBALS ]]--
local _G = _G;
local unpack 	= _G.unpack;
local select 	= _G.select;
local pairs 	= _G.pairs;
local string 	= _G.string;
--[[ STRING METHODS ]]--
local format = string.format;
--[[
##########################################################
GET ADDON DATA
##########################################################
]]--
local SuperVillain, L = unpack(SVUI);
local MOD = SuperVillain.Registry:Expose('SVStyle');
local DOCK = SuperVillain.Registry:Expose('SVDock');
--[[
##########################################################
RECOUNT
##########################################################
]]--
local function NoColor(a)
  for p=1,a:GetNumRegions()do
    local q=select(p,a:GetRegions())
    if q:GetObjectType()=='Texture'then
      q:SetDesaturated(true)
      if q:GetTexture()=='Interface\\DialogFrame\\UI-DialogBox-Corner'then
        q:SetTexture(nil)
        q:MUNG()
      end
    end
  end;
end;

local function StyleRecount()

  function Recount:ShowReset()
    MOD:LoadAlert(L['Reset Recount?'], function(self) Recount:ResetData() self:GetParent():Hide() end)
  end

  local function StyleFrame(frame)
    MOD:ApplyFrameStyle(frame,"Transparent")
    frame.Panel:SetAllPoints()
    frame.Panel:SetPoint('TOPLEFT', frame, 'TOPLEFT', 0, -6)
    frame.CloseButton:SetPoint('TOPRIGHT', frame, 'TOPRIGHT', -1, -9)
    frame:SetBackdrop(nil)

    frame.TitleBackground = CreateFrame('Frame', nil, frame)
    frame.TitleBackground:SetFixedPanelTemplate("Default")
    frame.TitleBackground:SetPanelColor("class")
    frame.TitleBackground:SetPoint('TOP', frame, 'TOP', 0, -8)
    frame.TitleBackground.timeLapse = 0
    frame.TitleBackground:SetScript('OnUpdate', function(self,elapsed)
      self.timeLapse = self.timeLapse + elapsed
      if(self.timeLapse < 0.2) then
        return
      else
        self.timeLapse = 0
      end
      self:SetSize(frame:GetWidth() - 4, 22)
    end)
    frame.TitleBackground:SetFrameLevel(frame:GetFrameLevel())
    frame.Title:SetPoint('TOPLEFT', frame, 'TOPLEFT', 6, -12)
    NoColor(frame.CloseButton)
    if frame.ConfigButton then NoColor(frame.ConfigButton) end
    if frame.FileButton then NoColor(frame.FileButton) end
    if frame.LeftButton then NoColor(frame.LeftButton) end
    if frame.ResetButton then NoColor(frame.ResetButton) end
    if frame.RightButton then NoColor(frame.RightButton) end
    if frame.ReportButton then NoColor(frame.ReportButton) end
    if frame.SummaryButton then NoColor(frame.SummaryButton) end
  end

  local RecountFrames = {
    Recount.MainWindow,
    Recount.ConfigWindow,
    Recount.GraphWindow,
    Recount.DetailWindow,
  }

  for _, frame in pairs(RecountFrames) do
    if frame then
      StyleFrame(frame)
    end
  end

  MOD:ApplyScrollStyle(Recount_MainWindow_ScrollBarScrollBar)

  Recount_MainWindow:HookScript('OnShow', function(self) if InCombatLockdown() then return end;if DOCK.CurrentlyDocked["Recount_MainWindow"] then SuperDockWindowRight:Show() end end)
  Recount.MainWindow.FileButton:HookScript('OnClick', function(self) if LibDropdownFrame0 then MOD:ApplyFrameStyle(LibDropdownFrame0) end end)

  hooksecurefunc(Recount, 'ShowScrollbarElements', function(self, name) Recount_MainWindow_ScrollBarScrollBar:Show() end)
  hooksecurefunc(Recount, 'HideScrollbarElements', function(self, name) Recount_MainWindow_ScrollBarScrollBar:Hide() end)
  hooksecurefunc(Recount, 'CreateFrame', function(self, frame) StyleFrame(_G[frame]) end)

  hooksecurefunc(Recount, 'ShowReport', function(self)
    if Recount_ReportWindow.isStyled then return end
    Recount_ReportWindow.isStyled = true
    MOD:ApplyFrameStyle(Recount_ReportWindow.Whisper)
    Recount_ReportWindow.ReportButton:SetButtonTemplate()
    MOD:ApplyScrollbarStyle(Recount_ReportWindow_Slider)
    Recount_ReportWindow_Slider:GetThumbTexture():Size(6,6)
  end)
end
MOD:SaveAddonStyle("Recount", StyleRecount)

function MOD:Docklet_Recount(parent)
  if not Recount then return end;
  local n=Recount.MainWindow.Panel;
  if n and not n.Panel then
    n:Show()
    n:SetFixedPanelTemplate('Transparent',true)
  end;
  Recount.db.profile.Locked=true;
  Recount.db.profile.Scaling=1;
  Recount.db.profile.ClampToScreen=true;
  Recount.db.profile.FrameStrata='2-LOW'
  Recount.MainWindow:ClearAllPoints()
  Recount.MainWindow:SetAllPoints(parent)
  Recount:SetStrataAndClamp()
  Recount:LockWindows(true)
  Recount:ResizeMainWindow()
  Recount_MainWindow_ScrollBar:Hide()
end;