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 @@