esc menu changes

This commit is contained in:
andrew6180
2024-04-09 15:55:28 -07:00
parent a3f0c62e62
commit 59e5160c69
7 changed files with 15 additions and 489 deletions
+3 -29
View File
@@ -19,10 +19,9 @@ local InCombatLockdown = InCombatLockdown
local IsAddOnLoaded = IsAddOnLoaded local IsAddOnLoaded = IsAddOnLoaded
local LoadAddOn = LoadAddOn local LoadAddOn = LoadAddOn
local ReloadUI = ReloadUI local ReloadUI = ReloadUI
local EscapeMenu = EscapeMenu
local ERR_NOT_IN_COMBAT = ERR_NOT_IN_COMBAT local ERR_NOT_IN_COMBAT = ERR_NOT_IN_COMBAT
local GameMenuButtonLogout = GameMenuButtonLogout
local GameMenuFrame = GameMenuFrame
BINDING_HEADER_ELVUI = GetAddOnMetadata(..., "Title") BINDING_HEADER_ELVUI = GetAddOnMetadata(..., "Title")
@@ -178,34 +177,9 @@ function AddOn:OnInitialize()
self:StaticPopup_Show("TUKUI_ELVUI_INCOMPATIBLE") self:StaticPopup_Show("TUKUI_ELVUI_INCOMPATIBLE")
end end
local GameMenuButton = CreateFrame("Button", "ElvUI_MenuButton", GameMenuFrame, "GameMenuButtonTemplate") local GameMenuButton = EscapeMenu:AddButton(self.title, EscapeMenuSection.AddOns, function()
GameMenuButton:SetText(self.title)
GameMenuButton:SetScript("OnClick", function()
AddOn:ToggleOptionsUI() AddOn:ToggleOptionsUI()
HideUIPanel(GameMenuFrame) return true
end)
GameMenuFrame[AddOnName] = GameMenuButton
GameMenuButton:Size(GameMenuButtonLogout:GetWidth(), GameMenuButtonLogout:GetHeight())
GameMenuButtonRatings:HookScript("OnShow", function(self)
GameMenuFrame:SetHeight(GameMenuFrame:GetHeight() + self:GetHeight())
end)
GameMenuButtonRatings:HookScript("OnHide", function(self)
GameMenuFrame:SetHeight(GameMenuFrame:GetHeight() - self:GetHeight())
end)
GameMenuFrame:HookScript("OnShow", function()
if not GameMenuFrame.isElvUI then
GameMenuFrame:SetHeight(GameMenuFrame:GetHeight() + GameMenuButtonLogout:GetHeight() + 1)
GameMenuFrame.isElvUI = true
end
local _, relTo = GameMenuButtonLogout:GetPoint()
if relTo ~= GameMenuFrame[AddOnName] then
GameMenuFrame[AddOnName]:ClearAllPoints()
GameMenuFrame[AddOnName]:Point("TOPLEFT", relTo, "BOTTOMLEFT", 0, -1)
GameMenuButtonLogout:ClearAllPoints()
GameMenuButtonLogout:Point("TOPLEFT", GameMenuFrame[AddOnName], "BOTTOMLEFT", 0, -16)
end
end) end)
self.loadedtime = GetTime() self.loadedtime = GetTime()
+3 -5
View File
@@ -141,12 +141,10 @@ local function UpdateCPU()
end end
local function ToggleGameMenuFrame() local function ToggleGameMenuFrame()
if GameMenuFrame:IsShown() then if EscapeMenu:IsShown() then
PlaySound("igMainMenuQuit") HideUIPanel(EscapeMenu)
HideUIPanel(GameMenuFrame)
else else
PlaySound("igMainMenuOpen") ShowUIPanel(EscapeMenu)
ShowUIPanel(GameMenuFrame)
end end
end end
+3 -5
View File
@@ -99,12 +99,10 @@ local menuList = {
text = MAINMENU_BUTTON, text = MAINMENU_BUTTON,
notCheckable = 1, notCheckable = 1,
func = function() func = function()
if GameMenuFrame:IsShown() then if EscapeMenu:IsShown() then
PlaySound("igMainMenuQuit") HideUIPanel(EscapeMenu)
HideUIPanel(GameMenuFrame)
else else
PlaySound("igMainMenuOpen") ShowUIPanel(EscapeMenu)
ShowUIPanel(GameMenuFrame)
end end
end end
}, },
+6 -22
View File
@@ -11,30 +11,14 @@ S:AddCallback("Skin_Misc", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.misc then return end if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.misc then return end
-- ESC/Menu Buttons -- ESC/Menu Buttons
GameMenuFrame:StripTextures() EscapeMenu:StripTextures()
GameMenuFrame:CreateBackdrop("Transparent") EscapeMenu:CreateBackdrop("Transparent")
GameMenuFrameHeader:Point("TOP", 0, 7) EscapeMenuHeader:Point("TOP", 0, 7)
local menuButtons = { for _, section in ipairs(EscapeMenu.sections) do
GameMenuButtonOptions, for _, button in ipairs(section) do
GameMenuButtonSoundOptions, S:HandleButton(button)
GameMenuButtonUIOptions,
-- GameMenuButtonMacOptions,
GameMenuButtonKeybindings,
GameMenuButtonMacros,
-- GameMenuButtonRatings,
GameMenuButtonLogout,
GameMenuButtonQuit,
GameMenuButtonContinue,
ElvUI_MenuButton
}
for i = 1, #menuButtons do
local button = menuButtons[i]
if button then
S:HandleButton(menuButtons[i])
end end
end end
@@ -1,426 +0,0 @@
local E, L, V, P, G = unpack(ElvUI)
local mod = E:GetModule("Enhanced_Blizzard")
local _G = _G
local select = select
local floor = math.floor
local tconcat = table.concat
local CreateFrame = CreateFrame
local DisableAddOn = DisableAddOn
local EnableAddOn = EnableAddOn
local GetAddOnDependencies = GetAddOnDependencies
local GetAddOnInfo = GetAddOnInfo
local GetNumAddOns = GetNumAddOns
local IsAddOnLoadOnDemand = IsAddOnLoadOnDemand
local IsAddOnLoaded = IsAddOnLoaded
local IsShiftKeyDown = IsShiftKeyDown
local LoadAddOn = LoadAddOn
local PlaySound = PlaySound
local function AddonList_HasAnyChanged()
local status = ElvUI_AddonList.startStatus
for i = 1, GetNumAddOns() do
local _, _, _, enabled, _, reason = GetAddOnInfo(i)
if not ((enabled == status[i].enabled and not status[i].lod)
or reason == "DEP_DISABLED"
or status[i].reason == "DEP_DISABLED"
or (enabled and status[i].lod and not IsAddOnLoaded(i))
or (not enabled and status[i].lod and not IsAddOnLoaded(i)))
then
return true
end
end
end
local function AddonList_IsAddOnLoadOnDemand(index)
if IsAddOnLoadOnDemand(index) and not IsAddOnLoaded(index) then
return true
end
end
local function AddonList_IsDepsLoaded(...)
local depsCount = select("#", ...)
if depsCount == 0 then return end
for i = 1, depsCount do
if not IsAddOnLoaded(select(i, ...)) then
return
end
end
return true
end
local function AddonList_SetStatus(entry, load, status, reload)
if load then
entry.LoadButton:Show()
else
entry.LoadButton:Hide()
end
if status then
entry.Status:Show()
else
entry.Status:Hide()
end
if reload then
entry.Reload:Show()
else
entry.Reload:Hide()
end
end
local function AddonList_Update()
local numEntries = GetNumAddOns()
local addonIndex, entry, checkbox, status
for i = 1, 20 do
addonIndex = ElvUI_AddonList.offset + i
entry = _G["ElvUI_AddonListEntry"..i]
if addonIndex > numEntries then
entry:Hide()
else
local name, title, _, enabled, loadable, reason = GetAddOnInfo(addonIndex)
checkbox = _G["ElvUI_AddonListEntry"..i.."Enabled"]
checkbox:SetChecked(enabled)
status = _G["ElvUI_AddonListEntry"..i.."Title"]
if loadable or (enabled and (reason == "DEP_DEMAND_LOADED" or reason == "DEMAND_LOADED")) then
status:SetTextColor(1.0, 0.78, 0.0)
elseif enabled and reason ~= "DEP_DISABLED" then
status:SetTextColor(1.0, 0.1, 0.1)
else
status:SetTextColor(0.5, 0.5, 0.5)
end
if title then
status:SetText(title)
else
status:SetText(name)
end
status = _G["ElvUI_AddonListEntry"..i.."Status"]
if not loadable and reason then
status:SetText(_G["ADDON_"..reason])
else
status:SetText("")
end
if enabled ~= ElvUI_AddonList.startStatus[addonIndex].enabled and reason ~= "DEP_DISABLED" and ElvUI_AddonList.startStatus[addonIndex].reason ~= "DEP_DISABLED" then
if enabled then
if AddonList_IsAddOnLoadOnDemand(addonIndex) then
if AddonList_IsDepsLoaded(GetAddOnDependencies(addonIndex)) then
AddonList_SetStatus(entry, true)
else
AddonList_SetStatus(entry)
end
else
AddonList_SetStatus(entry, nil, nil, true)
end
elseif AddonList_IsAddOnLoadOnDemand(addonIndex) then
AddonList_SetStatus(entry, nil, true)
else
AddonList_SetStatus(entry, nil, nil, true)
end
else
AddonList_SetStatus(entry, nil, true)
end
entry.id = addonIndex
entry:Show()
end
end
FauxScrollFrame_Update(ElvUI_AddonListScrollFrame, numEntries, 20, 16, nil, nil, nil, nil, nil, nil, true)
if AddonList_HasAnyChanged() then
ElvUI_AddonListOkayButton:SetText(L["Reload UI"])
ElvUI_AddonList.shouldReload = true
else
ElvUI_AddonListOkayButton:SetText(OKAY)
ElvUI_AddonList.shouldReload = false
end
end
local function AddonList_Enable(index, enabled)
if enabled then
EnableAddOn(index)
else
DisableAddOn(index)
end
AddonList_Update()
end
local function AddonList_LoadAddOn(index)
if not AddonList_IsAddOnLoadOnDemand(index) then return end
LoadAddOn(index)
if IsAddOnLoaded(index) then
ElvUI_AddonList.startStatus[index].enabled = 1
ElvUI_AddonList.startStatus[index].lod = nil
end
AddonList_Update()
end
local function AddonTooltip_BuildDeps(...)
local depsCount = select("#", ...)
if depsCount == 0 then return end
local deps
if depsCount == 1 then
deps = ...
elseif depsCount > 1 then
deps = tconcat({...}, ", ")
end
return L["Dependencies: "] .. deps
end
local function AddonTooltip_Update(self)
local name, title, notes, _, _, security = GetAddOnInfo(self.id)
if not name then return end
GameTooltip:SetOwner(self)
if security == "BANNED" then
GameTooltip:SetText(L["This addon has been disabled. You should install an updated version."])
else
if title then
GameTooltip:AddLine(title)
else
GameTooltip:AddLine(name)
end
GameTooltip:AddLine(notes, 1.0, 1.0, 1.0)
local dependsStr = AddonTooltip_BuildDeps(GetAddOnDependencies(self.id))
if dependsStr then
GameTooltip:AddLine(AddonTooltip_BuildDeps(GetAddOnDependencies(self.id)))
end
end
GameTooltip:Show()
end
function mod:AddonList()
if IsAddOnLoaded("ACP") then return end
local S = E:GetModule("Skins")
local addonList = CreateFrame("Frame", "ElvUI_AddonList", UIParent)
addonList:SetFrameStrata("HIGH")
addonList:Size(520, 466)
addonList:Point("CENTER", 0, 0)
addonList:SetTemplate("Transparent")
addonList:SetClampedToScreen(true)
addonList:SetMovable(true)
addonList:EnableMouse(true)
addonList:RegisterForDrag("LeftButton")
addonList:Hide()
tinsert(UISpecialFrames, addonList:GetName())
addonList.offset = 0
addonList.startStatus = {}
for i = 1, GetNumAddOns() do
local _, _, _, enabled, _, reason = GetAddOnInfo(i)
addonList.startStatus[i] = {
enabled = enabled,
reason = reason,
lod = IsAddOnLoadOnDemand(i)
}
end
addonList:SetScript("OnDragStart", function(self)
if IsShiftKeyDown() then
self:StartMoving()
end
end)
addonList:SetScript("OnDragStop", function(self)
self:StopMovingOrSizing()
end)
local addonTitle = addonList:CreateFontString("$parentTitle", "BACKGROUND", "GameFontNormal")
addonTitle:Point("TOP", 0, -7)
addonTitle:SetText(ADDONS)
local cancelButton = CreateFrame("Button", "$parentCancelButton", addonList, "UIPanelButtonTemplate")
cancelButton:Size(80, 22)
cancelButton:Point("BOTTOMRIGHT", -8, 8)
cancelButton:SetText(CANCEL)
S:HandleButton(cancelButton)
cancelButton:SetScript("OnClick", function()
ElvUI_AddonList:Hide()
end)
local okayButton = CreateFrame("Button", "$parentOkayButton", addonList, "UIPanelButtonTemplate")
okayButton:Size(80, 22)
okayButton:Point("RIGHT", cancelButton, "LEFT", -7, 0)
okayButton:SetText(OKAY)
S:HandleButton(okayButton)
okayButton:SetScript("OnClick", function()
if ElvUI_AddonList.shouldReload then
ReloadUI()
else
ElvUI_AddonList:Hide()
end
end)
local enableAllButton = CreateFrame("Button", "$parentEnableAllButton", addonList, "UIPanelButtonTemplate")
enableAllButton:Size(120, 22)
enableAllButton:Point("BOTTOMLEFT", 8, 8)
enableAllButton:SetText(L["Enable All"])
S:HandleButton(enableAllButton)
enableAllButton:SetScript("OnClick", function()
EnableAllAddOns()
AddonList_Update()
end)
local disableAllButton = CreateFrame("Button", "$parentDisableAllButton", addonList, "UIPanelButtonTemplate")
disableAllButton:Size(120, 22)
disableAllButton:Point("LEFT", enableAllButton, "RIGHT", 7, 0)
disableAllButton:SetText(L["Disable All"])
S:HandleButton(disableAllButton)
disableAllButton:SetScript("OnClick", function()
DisableAllAddOns()
AddonList_Update()
end)
addonList:SetScript("OnShow", function()
AddonList_Update()
PlaySound("igMainMenuOption")
end)
addonList:SetScript("OnHide", function()
PlaySound("igMainMenuOptionCheckBoxOn")
end)
local scrollFrame = CreateFrame("ScrollFrame", "$parentScrollFrame", addonList, "FauxScrollFrameTemplate")
scrollFrame:SetTemplate("Transparent")
scrollFrame:Point("TOPLEFT", 8, -25)
scrollFrame:Point("BOTTOMRIGHT", -29, 37)
scrollFrame.scrollBar = _G[scrollFrame:GetName().."ScrollBar"]
S:HandleScrollBar(scrollFrame.scrollBar, 5)
scrollFrame.scrollBar:Point("TOPLEFT", scrollFrame, "TOPRIGHT", 4, -18)
scrollFrame.scrollBar:Point("BOTTOMLEFT", scrollFrame, "BOTTOMRIGHT", 4, 18)
scrollFrame:SetScript("OnVerticalScroll", function(self, offset)
self.scrollBar:SetValue(offset)
addonList.offset = floor((offset / 16) + 0.5)
AddonList_Update()
if GameTooltip:IsShown() then
AddonTooltip_Update(GameTooltip:GetOwner())
end
end)
local function Enable_OnClick(self)
AddonList_Enable(self:GetParent().id, self:GetChecked())
PlaySound("igMainMenuOptionCheckBoxOn")
end
local function Load_OnClick(self)
AddonList_LoadAddOn(self:GetParent().id)
end
local addonListEntry = {}
for i = 1, 20 do
addonListEntry[i] = CreateFrame("Button", "ElvUI_AddonListEntry"..i, scrollFrame)
addonListEntry[i]:Size(scrollFrame:GetWidth() - 8, 16)
addonListEntry[i].id = i
if i == 1 then
addonListEntry[i]:Point("TOPLEFT", 4, -4)
else
addonListEntry[i]:Point("TOP", addonListEntry[i - 1], "BOTTOM", 0, -4)
end
local enabled = CreateFrame("CheckButton", "$parentEnabled", addonListEntry[i])
enabled:Size(24, 24)
enabled:Point("LEFT", -4, 0)
S:HandleCheckBox(enabled)
local title = addonListEntry[i]:CreateFontString("$parentTitle", "BACKGROUND", "GameFontNormal")
title:Size(220, 12)
title:Point("LEFT", 22, 0)
title:SetJustifyH("LEFT")
local status = addonListEntry[i]:CreateFontString("$parentStatus", "BACKGROUND", "GameFontNormalSmall")
status:Size(220, 12)
status:Point("RIGHT", -22, 0)
status:SetJustifyH("RIGHT")
addonListEntry[i].Status = status
local reload = addonListEntry[i]:CreateFontString("$parentReload", "BACKGROUND", "GameFontRed")
reload:Size(220, 12)
reload:Point("RIGHT", -22, 0)
reload:SetJustifyH("RIGHT")
reload:SetText(L["Requires Reload"])
addonListEntry[i].Reload = reload
local load = CreateFrame("Button", "$parentLoad", addonListEntry[i], "UIPanelButtonTemplate")
load:Size(100, 22)
load:Point("RIGHT", -21, 0)
load:SetText(L["Load AddOn"])
S:HandleButton(load)
addonListEntry[i].LoadButton = load
addonListEntry[i]:SetScript("OnEnter", AddonTooltip_Update)
addonListEntry[i]:SetScript("OnLeave", GameTooltip_Hide)
enabled:SetScript("OnClick", Enable_OnClick)
load:SetScript("OnClick", Load_OnClick)
end
local buttonAddons = CreateFrame("Button", "ElvUI_AddonListButton", GameMenuFrame, "GameMenuButtonTemplate")
buttonAddons:Point("TOP", GameMenuButtonMacros, "BOTTOM", 0, -1)
buttonAddons:SetText(ADDONS)
S:HandleButton(buttonAddons)
buttonAddons:SetScript("OnClick", function()
HideUIPanel(GameMenuFrame)
ElvUI_AddonList:Show()
end)
self:HookScript(GameMenuButtonRatings, "OnShow", function(self)
buttonAddons:Point("TOP", self, "BOTTOM", 0, -1)
end)
self:HookScript(GameMenuButtonRatings, "OnHide", function(self)
buttonAddons:Point("TOP", GameMenuButtonMacros, "BOTTOM", 0, -1)
end)
GameMenuButtonLogout:SetScript("OnShow", function(self)
self:Point("TOP", buttonAddons, "BOTTOM", 0, -16)
if not StaticPopup_Visible("CAMP") and not StaticPopup_Visible("QUIT") then
self:Enable()
else
self:Disable()
end
end)
if GetLocale() == "koKR" then
if IsMacClient() then
GameMenuFrame:Height(308)
else
GameMenuFrame:Height(282)
end
else
if IsMacClient() then
GameMenuFrame:Height(292)
else
GameMenuFrame:Height(266)
end
end
end
@@ -3,7 +3,6 @@ local mod = E:NewModule("Enhanced_Blizzard", "AceHook-3.0", "AceEvent-3.0")
function mod:Initialize() function mod:Initialize()
self:DeathRecap() self:DeathRecap()
self:AddonList()
self:DressUpFrame() self:DressUpFrame()
self:ErrorFrameSize() self:ErrorFrameSize()
end end
@@ -2,7 +2,6 @@
<Script file="Blizzard.lua"/> <Script file="Blizzard.lua"/>
<Script file="DeathRecap.lua"/> <Script file="DeathRecap.lua"/>
<Script file="TakeAllMail.lua"/> <Script file="TakeAllMail.lua"/>
<Script file="AddonList.lua"/>
<Script file="DressUpFrame.lua"/> <Script file="DressUpFrame.lua"/>
<Script file="BetterSearchBox.lua"/> <Script file="BetterSearchBox.lua"/>
<Script file="AnimatedAchievementsBars.lua"/> <Script file="AnimatedAchievementsBars.lua"/>