You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
4.5 KiB

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule('Skins')
local _G = _G
local next = next
local hooksecurefunc = hooksecurefunc
local function HandleCheckBox(checkbox)
checkbox:CreateBackdrop()
checkbox.backdrop:SetInside(nil, 4, 4)
for _, region in next, { checkbox:GetRegions() } do
if region:IsObjectType('Texture') then
if region:GetTexture() == 130751 then
if E.private.skins.checkBoxSkin then
region:SetTexture(E.Media.Textures.Melli)
local checkedTexture = checkbox:GetCheckedTexture()
checkedTexture:SetVertexColor(1, .82, 0, 0.8)
checkedTexture:SetInside(checkbox.backdrop)
end
else
region:SetTexture(E.ClearTexture)
end
end
end
end
local function HandleDialogs()
local dialog = _G.EditModeSystemSettingsDialog
for _, button in next, { dialog.Buttons:GetChildren() } do
if button.Controller and not button.isSkinned then
S:HandleButton(button)
end
end
for _, frame in next, { dialog.Settings:GetChildren() } do
local dd = frame.Dropdown
if dd and (dd.DropDownMenu and not dd.isSkinned) then
S:HandleDropDownBox(dd.DropDownMenu, 250)
dd.isSkinned = true
end
local checkbox = frame.Button
if checkbox and not checkbox.backdrop then
HandleCheckBox(checkbox)
end
end
end
function S:EditorManagerFrame()
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.editor) then return end
-- Main Window
local editMode = _G.EditModeManagerFrame
editMode:StripTextures()
editMode:CreateBackdrop('Transparent')
if E.global.general.disableTutorialButtons then
editMode.Tutorial:Kill()
end
S:HandleCloseButton(editMode.CloseButton)
S:HandleButton(editMode.RevertAllChangesButton)
S:HandleButton(editMode.SaveChangesButton)
S:HandleDropDownBox(editMode.LayoutDropdown.DropDownMenu, 250)
S:HandleCheckBox(editMode.ShowGridCheckButton.Button)
S:HandleCheckBox(editMode.EnableSnapCheckButton.Button)
S:HandleCheckBox(editMode.EnableAdvancedOptionsCheckButton.Button)
S:HandleTrimScrollBar(editMode.AccountSettings.SettingsContainer.ScrollBar)
editMode.AccountSettings.SettingsContainer.BorderArt:StripTextures()
editMode.AccountSettings.SettingsContainer:SetTemplate('Transparent')
editMode.AccountSettings.Expander.Divider:StripTextures()
-- Group Containers (Basic, Frames, Combat, Misc)
for _, frames in next, { editMode.AccountSettings.SettingsContainer.ScrollChild:GetChildren() } do
for _, frame in next, { frames:GetChildren() } do
if frame.Button then -- BasicOptionsContainer
S:HandleCheckBox(frame.Button)
else -- AdvancedOptionsContainer
for _, child in next, { frame:GetChildren() } do
if child.Button then
S:HandleCheckBox(child.Button)
end
end
end
end
end
-- Layout Creator
local layout = _G.EditModeNewLayoutDialog
layout:StripTextures()
layout:CreateBackdrop('Transparent')
S:HandleButton(layout.AcceptButton)
S:HandleButton(layout.CancelButton)
S:HandleEditBox(layout.LayoutNameEditBox)
HandleCheckBox(layout.CharacterSpecificLayoutCheckButton.Button)
-- Layout Unsaved
local unsaved = _G.EditModeUnsavedChangesDialog
unsaved:StripTextures()
unsaved:CreateBackdrop('Transparent')
S:HandleButton(unsaved.CancelButton)
S:HandleButton(unsaved.ProceedButton)
S:HandleButton(unsaved.SaveAndProceedButton)
-- Layout Importer
local import = _G.EditModeImportLayoutDialog
import:StripTextures()
import:CreateBackdrop('Transparent')
S:HandleButton(import.AcceptButton)
S:HandleButton(import.CancelButton)
HandleCheckBox(import.CharacterSpecificLayoutCheckButton.Button)
local importBox = import.ImportBox
S:HandleEditBox(importBox)
local importBackdrop = importBox.backdrop
importBackdrop:ClearAllPoints()
importBackdrop:Point('TOPLEFT', importBox, -4, 4)
importBackdrop:Point('BOTTOMRIGHT', importBox, 0, -4)
local scrollbar = importBox.ScrollBar
S:HandleScrollBar(scrollbar)
scrollbar:ClearAllPoints()
scrollbar:Point('TOPLEFT', importBox, 'TOPRIGHT', 4, 4)
scrollbar:Point('BOTTOMLEFT', importBox, 'BOTTOMRIGHT', 0, -4)
local editbox = import.LayoutNameEditBox
S:HandleEditBox(editbox)
local editbackdrop = editbox.backdrop
editbackdrop:ClearAllPoints()
editbackdrop:Point('TOPLEFT', editbox, -2, -4)
editbackdrop:Point('BOTTOMRIGHT', editbox, 2, 4)
-- Dialog (Mover Settings)
local dialog = _G.EditModeSystemSettingsDialog
dialog:StripTextures()
dialog:CreateBackdrop('Transparent')
S:HandleCloseButton(dialog.CloseButton)
hooksecurefunc(dialog.Buttons, 'AddLayoutChildren', HandleDialogs)
HandleDialogs()
end
S:AddCallback('EditorManagerFrame')