395 lines
15 KiB
Lua
395 lines
15 KiB
Lua
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local S = E:GetModule("Skins")
|
|
|
|
--Lua functions
|
|
local _G = _G
|
|
local unpack = unpack
|
|
local fmod = math.fmod
|
|
--WoW API / Variables
|
|
local hooksecurefunc = hooksecurefunc
|
|
local CLASS_SORT_ORDER = CLASS_SORT_ORDER
|
|
|
|
S:AddCallbackForAddon("Blizzard_Calendar", "Skin_Blizzard_Calendar", function()
|
|
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.calendar then return end
|
|
|
|
CalendarFrame:StripTextures()
|
|
CalendarFrame:CreateBackdrop("Transparent")
|
|
CalendarFrame.backdrop:Point("TOPLEFT", 3, -7)
|
|
CalendarFrame.backdrop:Point("BOTTOMRIGHT", -2, -4)
|
|
|
|
S:SecureHook("Calendar_Show", function()
|
|
S:SetUIPanelWindowInfo(CalendarFrame, "xoffset", 8, nil, true)
|
|
S:SetUIPanelWindowInfo(CalendarFrame, "yoffset", -5, nil, true)
|
|
S:SetUIPanelWindowInfo(CalendarFrame, "width", nil, -8)
|
|
S:SetBackdropHitRect(CalendarFrame)
|
|
S:Unhook("Calendar_Show")
|
|
end)
|
|
|
|
CalendarFrameModalOverlay:SetFrameStrata("DIALOG")
|
|
CalendarModalDummy:SetAllPoints(CalendarFrameModalOverlay)
|
|
CalendarFrameBlocker:SetAllPoints(CalendarFrameModalOverlay)
|
|
|
|
CalendarFrame:EnableMouseWheel(true)
|
|
CalendarFrame:SetScript("OnMouseWheel", function(_, value)
|
|
if value > 0 then
|
|
if CalendarPrevMonthButton:IsEnabled() == 1 then
|
|
CalendarPrevMonthButton_OnClick()
|
|
end
|
|
else
|
|
if CalendarNextMonthButton:IsEnabled() == 1 then
|
|
CalendarNextMonthButton_OnClick()
|
|
end
|
|
end
|
|
end)
|
|
|
|
S:HandleCloseButton(CalendarCloseButton, CalendarFrame.backdrop)
|
|
|
|
S:HandleNextPrevButton(CalendarPrevMonthButton)
|
|
S:HandleNextPrevButton(CalendarNextMonthButton)
|
|
|
|
CalendarPrevMonthButton:Point("RIGHT", CalendarMonthBackground, "LEFT", 0, -8)
|
|
CalendarNextMonthButton:Point("LEFT", CalendarMonthBackground, "RIGHT", 0, -8)
|
|
|
|
do
|
|
local frame = CalendarFilterFrame
|
|
local button = CalendarFilterButton
|
|
local text = CalendarFilterFrameText
|
|
|
|
frame:StripTextures()
|
|
frame:Width(155)
|
|
frame:Point("TOPRIGHT", -32, -24)
|
|
|
|
text:Point("RIGHT", -34, 3)
|
|
|
|
button:Point("RIGHT", frame, "RIGHT", -10, 3)
|
|
button.SetPoint = E.noop
|
|
|
|
S:HandleNextPrevButton(button)
|
|
|
|
frame:CreateBackdrop("Default")
|
|
frame.backdrop:Point("TOPLEFT", 20, 4)
|
|
frame.backdrop:Point("BOTTOMRIGHT", button, "BOTTOMRIGHT", 2, -2)
|
|
end
|
|
|
|
local bg = CreateFrame("Frame", "CalendarFrameBackdrop", CalendarFrame)
|
|
bg:SetTemplate("Default")
|
|
bg:SetOutside(CalendarDayButton1, 3, 3, CalendarDayButton42)
|
|
|
|
CalendarContextMenu:SetTemplate("Transparent")
|
|
CalendarContextMenu.SetBackdropColor = E.noop
|
|
CalendarContextMenu.SetBackdropBorderColor = E.noop
|
|
|
|
CalendarInviteStatusContextMenu:SetTemplate("Transparent")
|
|
CalendarInviteStatusContextMenu.SetBackdropColor = E.noop
|
|
CalendarInviteStatusContextMenu.SetBackdropBorderColor = E.noop
|
|
|
|
for i = 1, 7 do
|
|
_G["CalendarContextMenuButton"..i]:StyleButton()
|
|
end
|
|
|
|
for i = 1, 42 do
|
|
local button = _G["CalendarDayButton"..i]
|
|
local eventTexture = _G["CalendarDayButton"..i.."EventTexture"]
|
|
local overlayFrame = _G["CalendarDayButton"..i.."OverlayFrame"]
|
|
button:SetFrameLevel(button:GetFrameLevel() + 1)
|
|
button:Size(91 - E.Border)
|
|
button:SetTemplate("Default", nil, true)
|
|
button:SetBackdropColor(0, 0, 0, 0)
|
|
button:GetNormalTexture():SetInside()
|
|
button:GetNormalTexture():SetDrawLayer("BACKGROUND")
|
|
button:GetHighlightTexture():SetInside()
|
|
button:GetHighlightTexture():SetTexture(1, 1, 1, 0.3)
|
|
eventTexture:SetInside()
|
|
overlayFrame:SetInside()
|
|
|
|
hooksecurefunc(eventTexture, "SetTexCoord", function(self, left, right, top, bottom)
|
|
if left == 0 and right == 1 and top == 0 and bottom == 1 then
|
|
if self._blocked then return end
|
|
|
|
self._blocked = true
|
|
self:SetTexCoord(unpack(E.TexCoords))
|
|
self._blocked = nil
|
|
end
|
|
end)
|
|
|
|
for j = 1, 4 do
|
|
local EventButton = _G["CalendarDayButton"..i.."EventButton"..j]
|
|
EventButton:StripTextures()
|
|
EventButton:StyleButton()
|
|
end
|
|
|
|
button:ClearAllPoints()
|
|
if i == 1 then
|
|
button:SetPoint("TOPLEFT", CalendarWeekday1Background, "BOTTOMLEFT", 0, 0)
|
|
elseif fmod(i, 7) == 1 then
|
|
button:SetPoint("TOPLEFT", _G["CalendarDayButton"..(i - 7)], "BOTTOMLEFT", 0, -E.Border)
|
|
else
|
|
button:SetPoint("TOPLEFT", _G["CalendarDayButton"..(i - 1)], "TOPRIGHT", E.Border, 0)
|
|
end
|
|
end
|
|
|
|
CalendarTodayFrame:StripTextures()
|
|
CalendarTodayFrame:SetTemplate("Default")
|
|
CalendarTodayFrame:Size(CalendarDayButton1:GetWidth(), CalendarDayButton1:GetHeight())
|
|
CalendarTodayFrame:SetBackdropBorderColor(unpack(E.media.rgbvaluecolor))
|
|
local value = E.db.general.valuecolor
|
|
CalendarTodayFrame:SetBackdropColor(value.r, value.g, value.b, 0.5)
|
|
CalendarTodayFrame:HookScript("OnUpdate", function(self) self:SetAlpha(CalendarTodayTextureGlow:GetAlpha()) end)
|
|
CalendarTodayFrame:CreateShadow()
|
|
CalendarTodayFrame.shadow:SetBackdropBorderColor(unpack(E.media.rgbvaluecolor))
|
|
|
|
CalendarCreateEventFrame:StripTextures()
|
|
CalendarCreateEventFrame:SetTemplate("Transparent")
|
|
CalendarCreateEventFrame:Point("TOPLEFT", CalendarFrame, "TOPRIGHT", -3, -7)
|
|
CalendarCreateEventTitleFrame:StripTextures()
|
|
|
|
CalendarCreateEventFrameModalOverlay:SetAllPoints(CalendarCreateEventFrame)
|
|
CalendarCreateEventFrameModalOverlay:SetFrameStrata("DIALOG")
|
|
CalendarEventFrameBlocker:SetAllPoints(CalendarCreateEventFrameModalOverlay)
|
|
|
|
S:HandleButton(CalendarCreateEventCreateButton, true)
|
|
S:HandleButton(CalendarCreateEventMassInviteButton, true)
|
|
S:HandleButton(CalendarCreateEventInviteButton, true)
|
|
CalendarCreateEventInviteButton:Point("TOPLEFT", CalendarCreateEventInviteEdit, "TOPRIGHT", 4, 1)
|
|
CalendarCreateEventInviteEdit:Width(CalendarCreateEventInviteEdit:GetWidth() - 2)
|
|
|
|
CalendarCreateEventInviteList:StripTextures()
|
|
CalendarCreateEventInviteList:SetTemplate("Default")
|
|
|
|
S:HandleEditBox(CalendarCreateEventInviteEdit)
|
|
S:HandleEditBox(CalendarCreateEventTitleEdit)
|
|
S:HandleDropDownBox(CalendarCreateEventTypeDropDown, 157)
|
|
|
|
CalendarCreateEventDescriptionContainer:StripTextures()
|
|
CalendarCreateEventDescriptionContainer:SetTemplate("Default")
|
|
|
|
S:HandleCloseButton(CalendarCreateEventCloseButton, CalendarCreateEventFrame)
|
|
|
|
S:HandleCheckBox(CalendarCreateEventLockEventCheck)
|
|
|
|
S:HandleDropDownBox(CalendarCreateEventHourDropDown, 68)
|
|
S:HandleDropDownBox(CalendarCreateEventMinuteDropDown, 68)
|
|
S:HandleDropDownBox(CalendarCreateEventAMPMDropDown, 68)
|
|
S:HandleDropDownBox(CalendarCreateEventRepeatOptionDropDown, 157)
|
|
|
|
CalendarCreateEventIcon:CreateBackdrop()
|
|
CalendarCreateEventIcon:Point("TOPLEFT", 14, -26)
|
|
CalendarCreateEventIcon:SetTexCoord(unpack(E.TexCoords))
|
|
CalendarCreateEventIcon.SetTexCoord = E.noop
|
|
|
|
CalendarCreateEventTitleEdit:Size(160, 18)
|
|
CalendarCreateEventTitleEdit:Point("TOPLEFT", 14, -85)
|
|
|
|
CalendarCreateEventTypeDropDown:Point("TOPLEFT", 158, -81)
|
|
|
|
CalendarCreateEventHourDropDown:Point("TOPLEFT", -7, -108)
|
|
CalendarCreateEventMinuteDropDown:Point("LEFT", CalendarCreateEventHourDropDown, "RIGHT", -23, 0)
|
|
CalendarCreateEventAMPMDropDown:Point("LEFT", CalendarCreateEventMinuteDropDown, "RIGHT", -23, 0)
|
|
|
|
CalendarCreateEventRepeatOptionDropDown:Point("TOPLEFT", 158, -108)
|
|
|
|
CalendarCreateEventDescriptionContainer:Size(294, 68)
|
|
CalendarCreateEventDescriptionContainer:Point("TOPLEFT", 13, -138)
|
|
|
|
CalendarCreateEventLockEventCheck:Point("TOPRIGHT", -122, 1)
|
|
|
|
CalendarCreateEventInviteList:Point("TOP", 0, -43)
|
|
CalendarCreateEventInviteEdit:Point("TOPLEFT", CalendarCreateEventInviteList, "BOTTOMLEFT", 1, -8)
|
|
CalendarCreateEventMassInviteButton:Point("BOTTOMLEFT", 13, 13)
|
|
CalendarCreateEventCreateButton:Point("BOTTOMRIGHT", -13, 13)
|
|
|
|
CalendarCreateEventInviteListSection:StripTextures()
|
|
|
|
CalendarClassButtonContainer:HookScript("OnShow", function()
|
|
for i, class in ipairs(CLASS_SORT_ORDER) do
|
|
local button = _G["CalendarClassButton"..i]
|
|
button:StripTextures()
|
|
button:CreateBackdrop("Default")
|
|
button:Size(23)
|
|
|
|
local coords = CLASS_ICON_TCOORDS[class]
|
|
local buttonIcon = button:GetNormalTexture()
|
|
buttonIcon:SetTexture("Interface\\Glues\\CharacterCreate\\UI-CharacterCreate-Classes")
|
|
buttonIcon:SetTexCoord(coords[1] + 0.02, coords[2] - 0.02, coords[3] + 0.02, coords[4] - 0.02)
|
|
end
|
|
|
|
CalendarClassButton1:Point("TOPLEFT", 2, 0)
|
|
|
|
CalendarClassTotalsButton:StripTextures()
|
|
CalendarClassTotalsButton:CreateBackdrop("Default")
|
|
CalendarClassTotalsButton:Size(23)
|
|
end)
|
|
|
|
-- Texture Picker Frame
|
|
CalendarTexturePickerFrame:StripTextures()
|
|
CalendarTexturePickerTitleFrame:StripTextures()
|
|
|
|
CalendarTexturePickerFrame:SetTemplate("Transparent")
|
|
CalendarTexturePickerFrame:Width(280)
|
|
CalendarTexturePickerFrame:ClearAllPoints()
|
|
CalendarTexturePickerFrame:Point("TOPLEFT", CalendarEventFrameBlocker, "TOPRIGHT", 31, 0)
|
|
|
|
S:HandleScrollBar(CalendarTexturePickerScrollBar)
|
|
S:HandleButton(CalendarTexturePickerAcceptButton, true)
|
|
S:HandleButton(CalendarTexturePickerCancelButton, true)
|
|
S:HandleButton(CalendarCreateEventInviteButton, true)
|
|
S:HandleButton(CalendarCreateEventRaidInviteButton, true)
|
|
|
|
for i = 1, 16 do
|
|
_G["CalendarTexturePickerScrollFrameButton"..i]:StyleButton()
|
|
end
|
|
|
|
CalendarTexturePickerScrollFrame:CreateBackdrop("Transparent")
|
|
CalendarTexturePickerScrollFrame.backdrop:Point("TOPLEFT", -2, 2)
|
|
CalendarTexturePickerScrollFrame.backdrop:Point("BOTTOMRIGHT", 2, -4)
|
|
|
|
CalendarTexturePickerScrollFrame:Point("TOPLEFT", 10, -20)
|
|
|
|
CalendarTexturePickerScrollBar:Point("TOPLEFT", CalendarTexturePickerScrollFrame, "TOPRIGHT", 5, -17)
|
|
CalendarTexturePickerScrollBar:Point("BOTTOMLEFT", CalendarTexturePickerScrollFrame, "BOTTOMRIGHT", 5, 15)
|
|
|
|
CalendarTexturePickerCancelButton:Point("BOTTOMRIGHT", -8, 8)
|
|
|
|
-- Mass Invite Frame
|
|
CalendarMassInviteFrame:StripTextures()
|
|
CalendarMassInviteFrame:SetTemplate("Transparent")
|
|
|
|
S:HandleCloseButton(CalendarMassInviteCloseButton, CalendarMassInviteFrame)
|
|
|
|
CalendarMassInviteTitleFrame:StripTextures()
|
|
|
|
S:HandleDropDownBox(CalendarMassInviteGuildRankMenu, 140)
|
|
|
|
S:HandleEditBox(CalendarMassInviteGuildMinLevelEdit)
|
|
S:HandleEditBox(CalendarMassInviteGuildMaxLevelEdit)
|
|
|
|
S:HandleButton(CalendarMassInviteGuildAcceptButton)
|
|
S:HandleButton(CalendarMassInviteArenaButton2)
|
|
S:HandleButton(CalendarMassInviteArenaButton3)
|
|
S:HandleButton(CalendarMassInviteArenaButton5)
|
|
|
|
CalendarMassInviteFrame:Size(307, 179)
|
|
CalendarMassInviteFrame:ClearAllPoints()
|
|
CalendarMassInviteFrame:Point("TOPLEFT", CalendarCreateEventFrame, "TOPRIGHT", 31, 0)
|
|
|
|
CalendarMassInviteGuildLevelText:Point("TOPLEFT", 40, -53)
|
|
|
|
CalendarMassInviteFrameLevelDivider:Point("TOPLEFT", 51, -74)
|
|
CalendarMassInviteGuildMinLevelEdit:Height(18)
|
|
CalendarMassInviteGuildMinLevelEdit:Point("TOPLEFT", 20, -72)
|
|
CalendarMassInviteGuildMaxLevelEdit:Height(18)
|
|
CalendarMassInviteGuildMaxLevelEdit:Point("TOPLEFT", 65, -72)
|
|
|
|
CalendarMassInviteGuildRankText:Point("TOPLEFT", 188, -53)
|
|
CalendarMassInviteGuildRankMenu:Point("TOPLEFT", 167, -68)
|
|
|
|
CalendarMassInviteGuildAcceptButton:Point("TOPRIGHT", -8, -100)
|
|
|
|
CalendarMassInviteArenaButton2:Point("TOPLEFT", 8, -149)
|
|
CalendarMassInviteArenaButton3:Point("TOP", 0, -149)
|
|
CalendarMassInviteArenaButton5:Point("TOPRIGHT", -8, -149)
|
|
|
|
select(6, CalendarMassInviteFrame:GetRegions()):Point("TOP", 0, -130)
|
|
|
|
-- Raid View
|
|
CalendarViewRaidFrame:StripTextures()
|
|
CalendarViewRaidFrame:SetTemplate("Transparent")
|
|
CalendarViewRaidFrame:Point("TOPLEFT", CalendarFrame, "TOPRIGHT", -3, -7)
|
|
|
|
S:HandleCloseButton(CalendarViewRaidCloseButton, CalendarViewRaidFrame)
|
|
|
|
CalendarViewRaidTitleFrame:StripTextures()
|
|
|
|
-- Holiday View
|
|
CalendarViewHolidayFrame:StripTextures(true)
|
|
CalendarViewHolidayFrame:SetTemplate("Transparent")
|
|
CalendarViewHolidayFrame:Point("TOPLEFT", CalendarFrame, "TOPRIGHT", -3, -7)
|
|
CalendarViewHolidayTitleFrame:StripTextures()
|
|
S:HandleCloseButton(CalendarViewHolidayCloseButton, CalendarViewHolidayFrame)
|
|
|
|
-- Event View
|
|
CalendarViewEventFrame:StripTextures()
|
|
CalendarViewEventFrame:SetTemplate("Transparent")
|
|
CalendarViewEventFrame:Point("TOPLEFT", CalendarFrame, "TOPRIGHT", -3, -7)
|
|
|
|
S:HandleCloseButton(CalendarViewEventCloseButton, CalendarViewEventFrame)
|
|
|
|
CalendarViewEventTitleFrame:StripTextures()
|
|
|
|
CalendarViewEventDescriptionContainer:StripTextures()
|
|
CalendarViewEventDescriptionContainer:SetTemplate("Transparent")
|
|
|
|
CalendarViewEventInviteList:StripTextures()
|
|
CalendarViewEventInviteList:SetTemplate("Transparent")
|
|
CalendarViewEventInviteListSection:StripTextures()
|
|
|
|
S:HandleScrollBar(CalendarViewEventDescriptionScrollFrameScrollBar)
|
|
S:HandleScrollBar(CalendarViewEventInviteListScrollFrameScrollBar)
|
|
|
|
CalendarViewEventFrameModalOverlay:SetAllPoints(CalendarViewEventFrame)
|
|
CalendarViewEventFrameModalOverlay:SetFrameStrata("DIALOG")
|
|
|
|
S:HandleButton(CalendarViewEventAcceptButton)
|
|
S:HandleButton(CalendarViewEventTentativeButton)
|
|
S:HandleButton(CalendarViewEventRemoveButton)
|
|
S:HandleButton(CalendarViewEventDeclineButton)
|
|
|
|
CalendarViewEventIcon:CreateBackdrop()
|
|
CalendarViewEventIcon:SetTexCoord(unpack(E.TexCoords))
|
|
CalendarViewEventIcon.SetTexCoord = E.noop
|
|
|
|
CalendarViewEventDescriptionContainer:Size(294, 68)
|
|
CalendarViewEventDescriptionContainer:Point("TOPLEFT", 13, -94)
|
|
|
|
CalendarViewEventDescriptionScrollFrameScrollBar:Point("TOPLEFT", CalendarViewEventDescriptionScrollFrame, "TOPRIGHT", 4, -15)
|
|
CalendarViewEventDescriptionScrollFrameScrollBar:Point("BOTTOMLEFT", CalendarViewEventDescriptionScrollFrame, "BOTTOMRIGHT", 4, 15)
|
|
|
|
CalendarViewEventInviteListScrollFrameScrollBar:Point("TOPLEFT", CalendarViewEventInviteListScrollFrame, "TOPRIGHT", 7, -16)
|
|
CalendarViewEventInviteListScrollFrameScrollBar:Point("BOTTOMLEFT", CalendarViewEventInviteListScrollFrame, "BOTTOMRIGHT", 7, 16)
|
|
|
|
CalendarViewEventIcon:Point("TOPLEFT", 14, -26)
|
|
|
|
CalendarViewEventInviteListSection:Point("TOPLEFT", 0, -177)
|
|
|
|
-- Event Picker Frame
|
|
CalendarEventPickerFrame:StripTextures()
|
|
CalendarEventPickerTitleFrame:StripTextures()
|
|
|
|
CalendarEventPickerFrame:SetTemplate("Transparent")
|
|
CalendarEventPickerFrame:SetFrameLevel(CalendarFrameModalOverlay:GetFrameLevel() + 10)
|
|
|
|
S:HandleScrollBar(CalendarEventPickerScrollBar)
|
|
S:HandleButton(CalendarEventPickerCloseButton, true)
|
|
|
|
CalendarEventPickerScrollFrame:Width(253)
|
|
CalendarEventPickerScrollFrame:Point("TOPLEFT", 8, -22)
|
|
|
|
CalendarEventPickerScrollBar:Point("TOPLEFT", CalendarEventPickerScrollFrame, "TOPRIGHT", 3, -19)
|
|
CalendarEventPickerScrollBar:Point("BOTTOMLEFT", CalendarEventPickerScrollFrame, "BOTTOMRIGHT", 3, 17)
|
|
|
|
CalendarEventPickerCloseButton:Point("BOTTOMRIGHT", -8, 8)
|
|
|
|
-- Create Event
|
|
S:HandleScrollBar(CalendarCreateEventDescriptionScrollFrameScrollBar)
|
|
S:HandleScrollBar(CalendarCreateEventInviteListScrollFrameScrollBar)
|
|
|
|
CalendarCreateEventDescriptionScrollFrameScrollBar:Point("TOPLEFT", CalendarCreateEventDescriptionScrollFrame, "TOPRIGHT", 4, -15)
|
|
CalendarCreateEventDescriptionScrollFrameScrollBar:Point("BOTTOMLEFT", CalendarCreateEventDescriptionScrollFrame, "BOTTOMRIGHT", 4, 15)
|
|
|
|
CalendarCreateEventInviteListScrollFrameScrollBar:Point("TOPLEFT", CalendarCreateEventInviteListScrollFrame, "TOPRIGHT", 7, -16)
|
|
CalendarCreateEventInviteListScrollFrameScrollBar:Point("BOTTOMLEFT", CalendarCreateEventInviteListScrollFrame, "BOTTOMRIGHT", 7, 16)
|
|
|
|
if CalendarCreateEventInviteListScrollFrame.buttons then
|
|
for _, button in ipairs(CalendarCreateEventInviteListScrollFrame.buttons) do
|
|
S:HandleButtonHighlight(button)
|
|
end
|
|
else
|
|
CalendarCreateEventInviteList:HookScript("OnEvent", function(self, event)
|
|
if event == "ADDON_LOADED" then
|
|
for _, button in ipairs(self.scrollFrame.buttons) do
|
|
S:HandleButtonHighlight(button)
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
end) |