diff --git a/ElvUI/Init.lua b/ElvUI/Init.lua
index 7982c04..0413eda 100644
--- a/ElvUI/Init.lua
+++ b/ElvUI/Init.lua
@@ -19,10 +19,9 @@ local InCombatLockdown = InCombatLockdown
local IsAddOnLoaded = IsAddOnLoaded
local LoadAddOn = LoadAddOn
local ReloadUI = ReloadUI
+local EscapeMenu = EscapeMenu
local ERR_NOT_IN_COMBAT = ERR_NOT_IN_COMBAT
-local GameMenuButtonLogout = GameMenuButtonLogout
-local GameMenuFrame = GameMenuFrame
BINDING_HEADER_ELVUI = GetAddOnMetadata(..., "Title")
@@ -178,34 +177,9 @@ function AddOn:OnInitialize()
self:StaticPopup_Show("TUKUI_ELVUI_INCOMPATIBLE")
end
- local GameMenuButton = CreateFrame("Button", "ElvUI_MenuButton", GameMenuFrame, "GameMenuButtonTemplate")
- GameMenuButton:SetText(self.title)
- GameMenuButton:SetScript("OnClick", function()
+ local GameMenuButton = EscapeMenu:AddButton(self.title, EscapeMenuSection.AddOns, function()
AddOn:ToggleOptionsUI()
- HideUIPanel(GameMenuFrame)
- 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
+ return true
end)
self.loadedtime = GetTime()
diff --git a/ElvUI/Modules/DataTexts/System.lua b/ElvUI/Modules/DataTexts/System.lua
index 9cf97be..ab2fefa 100644
--- a/ElvUI/Modules/DataTexts/System.lua
+++ b/ElvUI/Modules/DataTexts/System.lua
@@ -141,12 +141,10 @@ local function UpdateCPU()
end
local function ToggleGameMenuFrame()
- if GameMenuFrame:IsShown() then
- PlaySound("igMainMenuQuit")
- HideUIPanel(GameMenuFrame)
+ if EscapeMenu:IsShown() then
+ HideUIPanel(EscapeMenu)
else
- PlaySound("igMainMenuOpen")
- ShowUIPanel(GameMenuFrame)
+ ShowUIPanel(EscapeMenu)
end
end
diff --git a/ElvUI/Modules/Maps/Minimap.lua b/ElvUI/Modules/Maps/Minimap.lua
index 1a836c1..3206edd 100644
--- a/ElvUI/Modules/Maps/Minimap.lua
+++ b/ElvUI/Modules/Maps/Minimap.lua
@@ -99,12 +99,10 @@ local menuList = {
text = MAINMENU_BUTTON,
notCheckable = 1,
func = function()
- if GameMenuFrame:IsShown() then
- PlaySound("igMainMenuQuit")
- HideUIPanel(GameMenuFrame)
+ if EscapeMenu:IsShown() then
+ HideUIPanel(EscapeMenu)
else
- PlaySound("igMainMenuOpen")
- ShowUIPanel(GameMenuFrame)
+ ShowUIPanel(EscapeMenu)
end
end
},
diff --git a/ElvUI/Modules/Skins/Blizzard/Misc.lua b/ElvUI/Modules/Skins/Blizzard/Misc.lua
index 9f94490..d28a2c1 100644
--- a/ElvUI/Modules/Skins/Blizzard/Misc.lua
+++ b/ElvUI/Modules/Skins/Blizzard/Misc.lua
@@ -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
-- ESC/Menu Buttons
- GameMenuFrame:StripTextures()
- GameMenuFrame:CreateBackdrop("Transparent")
+ EscapeMenu:StripTextures()
+ EscapeMenu:CreateBackdrop("Transparent")
- GameMenuFrameHeader:Point("TOP", 0, 7)
+ EscapeMenuHeader:Point("TOP", 0, 7)
- local menuButtons = {
- GameMenuButtonOptions,
- GameMenuButtonSoundOptions,
- 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])
+ for _, section in ipairs(EscapeMenu.sections) do
+ for _, button in ipairs(section) do
+ S:HandleButton(button)
end
end
diff --git a/ElvUI_Enhanced/Modules/Blizzard/AddonList.lua b/ElvUI_Enhanced/Modules/Blizzard/AddonList.lua
deleted file mode 100644
index d16d82d..0000000
--- a/ElvUI_Enhanced/Modules/Blizzard/AddonList.lua
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/ElvUI_Enhanced/Modules/Blizzard/Blizzard.lua b/ElvUI_Enhanced/Modules/Blizzard/Blizzard.lua
index 1991754..b1333da 100644
--- a/ElvUI_Enhanced/Modules/Blizzard/Blizzard.lua
+++ b/ElvUI_Enhanced/Modules/Blizzard/Blizzard.lua
@@ -3,7 +3,6 @@ local mod = E:NewModule("Enhanced_Blizzard", "AceHook-3.0", "AceEvent-3.0")
function mod:Initialize()
self:DeathRecap()
- self:AddonList()
self:DressUpFrame()
self:ErrorFrameSize()
end
diff --git a/ElvUI_Enhanced/Modules/Blizzard/Load_Blizzard.xml b/ElvUI_Enhanced/Modules/Blizzard/Load_Blizzard.xml
index 55659ce..a05016a 100644
--- a/ElvUI_Enhanced/Modules/Blizzard/Load_Blizzard.xml
+++ b/ElvUI_Enhanced/Modules/Blizzard/Load_Blizzard.xml
@@ -2,7 +2,6 @@
-