mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 06:40:13 -05:00
Remove all the old right-click menu hackery
Evidently this isn't needed anymore on any current client, 11.x, Classic-era, et al.
This commit is contained in:
225
IceHUD.lua
225
IceHUD.lua
@ -107,8 +107,6 @@ IceHUD.validBarList = { "Bar", "HiBar", "RoundBar", "ColorBar", "RivetBar", "Riv
|
|||||||
"BloodGlaives", "ArcHUD", "FangRune", "DHUD", "CleanCurvesOut", "CleanTank", "PillTank", "GemTank" }
|
"BloodGlaives", "ArcHUD", "FangRune", "DHUD", "CleanCurvesOut", "CleanTank", "PillTank", "GemTank" }
|
||||||
IceHUD.validCustomModules = {Bar="Buff/Debuff watcher", Counter="Buff/Debuff stack counter", CD="Cooldown bar", Health="Health bar", Mana="Mana bar", CounterBar="Stack count bar"}
|
IceHUD.validCustomModules = {Bar="Buff/Debuff watcher", Counter="Buff/Debuff stack counter", CD="Cooldown bar", Health="Health bar", Mana="Mana bar", CounterBar="Stack count bar"}
|
||||||
|
|
||||||
IceHUD_UnitFrame_DropDown = CreateFrame("Frame", "IceHUD_UnitFrame_DropDown", UIParent, "UIDropDownMenuTemplate")
|
|
||||||
|
|
||||||
--@debug@
|
--@debug@
|
||||||
IceHUD.optionsLoaded = true
|
IceHUD.optionsLoaded = true
|
||||||
--@end-debug@
|
--@end-debug@
|
||||||
@ -801,229 +799,6 @@ function IceHUD:GetIsInLFGGroup()
|
|||||||
return IsInLFGGroup
|
return IsInLFGGroup
|
||||||
end
|
end
|
||||||
|
|
||||||
local BLACKLISTED_UNIT_MENU_OPTIONS = {}
|
|
||||||
if UnitPopupButtons then
|
|
||||||
BLACKLISTED_UNIT_MENU_OPTIONS = {
|
|
||||||
SET_FOCUS = "ICEHUD_SET_FOCUS",
|
|
||||||
CLEAR_FOCUS = "ICEHUD_CLEAR_FOCUS",
|
|
||||||
LOCK_FOCUS_FRAME = true,
|
|
||||||
UNLOCK_FOCUS_FRAME = true,
|
|
||||||
}
|
|
||||||
if select(2, UnitClass("player")) ~= "WARLOCK" then
|
|
||||||
BLACKLISTED_UNIT_MENU_OPTIONS[PET_DISMISS] = "ICEHUD_PET_DISMISS"
|
|
||||||
end
|
|
||||||
|
|
||||||
UnitPopupButtons["ICEHUD_SET_FOCUS"] = {
|
|
||||||
text = L["Type %s to set focus"]:format(SLASH_FOCUS1),
|
|
||||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
|
|
||||||
dist = 0,
|
|
||||||
}
|
|
||||||
|
|
||||||
UnitPopupButtons["ICEHUD_CLEAR_FOCUS"] = {
|
|
||||||
text = L["Type %s to clear focus"]:format(SLASH_CLEARFOCUS1),
|
|
||||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
|
|
||||||
dist = 0,
|
|
||||||
}
|
|
||||||
|
|
||||||
UnitPopupButtons["ICEHUD_PET_DISMISS"] = {
|
|
||||||
text = L["Use your Dismiss Pet spell to dismiss a pet"],
|
|
||||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click dismiss a pet with custom unit frames."],
|
|
||||||
dist = 0,
|
|
||||||
}
|
|
||||||
elseif UnitPopupSetFocusButtonMixin then
|
|
||||||
IceHUDUnitPopupSetFocusButtonMixin = CreateFromMixins(UnitPopupButtonBaseMixin)
|
|
||||||
function IceHUDUnitPopupSetFocusButtonMixin:GetText()
|
|
||||||
return L["Type %s to set focus"]:format(SLASH_FOCUS1)
|
|
||||||
end
|
|
||||||
function IceHUDUnitPopupSetFocusButtonMixin:OnClick()
|
|
||||||
end
|
|
||||||
|
|
||||||
IceHUDUnitPopupClearFocusButtonMixin = CreateFromMixins(UnitPopupButtonBaseMixin)
|
|
||||||
function IceHUDUnitPopupClearFocusButtonMixin:GetText()
|
|
||||||
return L["Type %s to clear focus"]:format(SLASH_CLEARFOCUS1)
|
|
||||||
end
|
|
||||||
function IceHUDUnitPopupClearFocusButtonMixin:OnClick()
|
|
||||||
end
|
|
||||||
|
|
||||||
IceHUDUnitPopupPetDismissButtonMixin = CreateFromMixins(UnitPopupButtonBaseMixin)
|
|
||||||
function IceHUDUnitPopupPetDismissButtonMixin:GetText()
|
|
||||||
return L["Use your Dismiss Pet spell to dismiss a pet"]
|
|
||||||
end
|
|
||||||
function IceHUDUnitPopupPetDismissButtonMixin:CanShow()
|
|
||||||
return UnitPopupPetDismissButtonMixin:CanShow()
|
|
||||||
end
|
|
||||||
function IceHUDUnitPopupPetDismissButtonMixin:OnClick()
|
|
||||||
end
|
|
||||||
|
|
||||||
BLACKLISTED_UNIT_MENU_OPTIONS[SET_FOCUS] = IceHUDUnitPopupSetFocusButtonMixin
|
|
||||||
BLACKLISTED_UNIT_MENU_OPTIONS[CLEAR_FOCUS] = IceHUDUnitPopupClearFocusButtonMixin
|
|
||||||
BLACKLISTED_UNIT_MENU_OPTIONS[LOCK_FOCUS_FRAME] = true
|
|
||||||
BLACKLISTED_UNIT_MENU_OPTIONS[UNLOCK_FOCUS_FRAME] = true
|
|
||||||
|
|
||||||
if select(2, UnitClass("player")) ~= "WARLOCK" then
|
|
||||||
BLACKLISTED_UNIT_MENU_OPTIONS[PET_DISMISS] = IceHUDUnitPopupPetDismissButtonMixin
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local munged_unit_menus = {}
|
|
||||||
local function munge_unit_menu(menu)
|
|
||||||
local result = munged_unit_menus[menu]
|
|
||||||
if result then
|
|
||||||
return result
|
|
||||||
end
|
|
||||||
|
|
||||||
if not UnitPopupMenus then
|
|
||||||
munged_unit_menus[menu] = menu
|
|
||||||
return menu
|
|
||||||
end
|
|
||||||
|
|
||||||
local data = UnitPopupMenus[menu]
|
|
||||||
if not data then
|
|
||||||
munged_unit_menus[menu] = menu
|
|
||||||
return menu
|
|
||||||
end
|
|
||||||
|
|
||||||
local found = false
|
|
||||||
if data.GetMenuButtons then
|
|
||||||
local btns = data.GetMenuButtons()
|
|
||||||
for i=1, #btns do
|
|
||||||
if btns[i].IsMenu() then
|
|
||||||
local subbtns = btns[i].GetMenuButtons()
|
|
||||||
for j=1, #subbtns do
|
|
||||||
if BLACKLISTED_UNIT_MENU_OPTIONS[subbtns[j]:GetText()] then
|
|
||||||
found = true
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if BLACKLISTED_UNIT_MENU_OPTIONS[btns[i]:GetText()] then
|
|
||||||
found = true
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if found then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
for _, v in ipairs(data) do
|
|
||||||
if BLACKLISTED_UNIT_MENU_OPTIONS[v] then
|
|
||||||
found = true
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if not found then
|
|
||||||
-- nothing to remove or add, we're all fine here.
|
|
||||||
munged_unit_menus[menu] = menu
|
|
||||||
return menu
|
|
||||||
end
|
|
||||||
|
|
||||||
local new_data = {}
|
|
||||||
if data.GetMenuButtons then
|
|
||||||
local new_buttons_list = {}
|
|
||||||
local btns = data.GetMenuButtons()
|
|
||||||
for i=1, #btns do
|
|
||||||
if btns[i].IsMenu() then
|
|
||||||
local subbtns = btns[i].GetMenuButtons()
|
|
||||||
for j=1, #subbtns do
|
|
||||||
if subbtns[j] then
|
|
||||||
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[subbtns[j]:GetText()]
|
|
||||||
if not blacklisted then
|
|
||||||
new_buttons_list[#new_buttons_list+1] = subbtns[j]
|
|
||||||
elseif blacklisted ~= true then
|
|
||||||
new_buttons_list[#new_buttons_list+1] = blacklisted
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[btns[i]:GetText()]
|
|
||||||
if not blacklisted then
|
|
||||||
new_buttons_list[#new_buttons_list+1] = btns[i]
|
|
||||||
elseif blacklisted ~= true then
|
|
||||||
new_buttons_list[#new_buttons_list+1] = blacklisted
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
new_data = data
|
|
||||||
function new_data:GetMenuButtons()
|
|
||||||
return new_buttons_list
|
|
||||||
end
|
|
||||||
else
|
|
||||||
for _, v in ipairs(data) do
|
|
||||||
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[v]
|
|
||||||
if not blacklisted then
|
|
||||||
new_data[#new_data+1] = v
|
|
||||||
elseif blacklisted ~= true then
|
|
||||||
new_data[#new_data+1] = blacklisted
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local new_menu_name = "ICEHUD_" .. menu
|
|
||||||
|
|
||||||
UnitPopupMenus[new_menu_name] = new_data
|
|
||||||
munged_unit_menus[menu] = new_menu_name
|
|
||||||
return new_menu_name
|
|
||||||
end
|
|
||||||
IceHUD.MungeUnitMenu = munge_unit_menu
|
|
||||||
|
|
||||||
local function figure_unit_menu(unit)
|
|
||||||
if unit == "focus" then
|
|
||||||
return "FOCUS"
|
|
||||||
end
|
|
||||||
|
|
||||||
if UnitIsUnit(unit, "player") then
|
|
||||||
return "SELF"
|
|
||||||
end
|
|
||||||
|
|
||||||
if UnitIsUnit(unit, "vehicle") then
|
|
||||||
-- NOTE: vehicle check must come before pet check for accuracy's sake because
|
|
||||||
-- a vehicle may also be considered your pet
|
|
||||||
return "VEHICLE"
|
|
||||||
end
|
|
||||||
|
|
||||||
if UnitIsUnit(unit, "pet") then
|
|
||||||
return "PET"
|
|
||||||
end
|
|
||||||
|
|
||||||
if not UnitIsPlayer(unit) then
|
|
||||||
return "TARGET"
|
|
||||||
end
|
|
||||||
|
|
||||||
local id = UnitInRaid(unit)
|
|
||||||
if id then
|
|
||||||
return "RAID_PLAYER", id
|
|
||||||
end
|
|
||||||
|
|
||||||
if UnitInParty(unit) then
|
|
||||||
return "PARTY"
|
|
||||||
end
|
|
||||||
|
|
||||||
return "PLAYER"
|
|
||||||
end
|
|
||||||
|
|
||||||
if UnitPopupFrames then
|
|
||||||
UnitPopupFrames[#UnitPopupFrames+1] = "IceHUD_UnitFrame_DropDown"
|
|
||||||
end
|
|
||||||
|
|
||||||
IceHUD.DropdownUnit = nil
|
|
||||||
if UnitPopup_ShowMenu then
|
|
||||||
UIDropDownMenu_Initialize(IceHUD_UnitFrame_DropDown, function()
|
|
||||||
if not IceHUD.DropdownUnit then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local menu, id = figure_unit_menu(IceHUD.DropdownUnit)
|
|
||||||
if menu then
|
|
||||||
menu = IceHUD.MungeUnitMenu(menu)
|
|
||||||
UnitPopup_ShowMenu(IceHUD_UnitFrame_DropDown, menu, IceHUD.DropdownUnit, nil, id)
|
|
||||||
end
|
|
||||||
end, "MENU", nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
function IceHUD:OutOfCombatWrapper(func)
|
function IceHUD:OutOfCombatWrapper(func)
|
||||||
return function(...)
|
return function(...)
|
||||||
return IceHUD:RunOnLeaveCombat(func, ...)
|
return IceHUD:RunOnLeaveCombat(func, ...)
|
||||||
|
@ -922,13 +922,6 @@ function PlayerHealth.prototype:CreateBackground(redraw)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if not self.frame.button.menu and UnitPopup_ShowMenu then
|
|
||||||
self.frame.button.menu = function(this, unit)
|
|
||||||
IceHUD.DropdownUnit = unit
|
|
||||||
ToggleDropDownMenu(1, nil, IceHUD_UnitFrame_DropDown, "cursor")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
self:EnableClickTargeting(self.moduleSettings.allowMouseInteraction)
|
self:EnableClickTargeting(self.moduleSettings.allowMouseInteraction)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -962,7 +955,7 @@ function PlayerHealth.prototype:EnableClickTargeting(bEnable)
|
|||||||
self.frame.button:EnableMouse(true)
|
self.frame.button:EnableMouse(true)
|
||||||
self.frame.button:RegisterForClicks("AnyUp")
|
self.frame.button:RegisterForClicks("AnyUp")
|
||||||
self.frame.button:SetAttribute("type1", "target")
|
self.frame.button:SetAttribute("type1", "target")
|
||||||
self.frame.button:SetAttribute("type2", UnitPopup_ShowMenu and "menu" or "togglemenu")
|
self.frame.button:SetAttribute("type2", "togglemenu")
|
||||||
self.frame.button:SetAttribute("unit", self.unit)
|
self.frame.button:SetAttribute("unit", self.unit)
|
||||||
|
|
||||||
-- set up click casting
|
-- set up click casting
|
||||||
|
@ -713,13 +713,6 @@ function IceTargetHealth.prototype:CreateBackground(redraw)
|
|||||||
self.frame.button:SetPoint("BOTTOMRIGHT", self.frame, "BOTTOMRIGHT", -1 * self.frame:GetWidth() / 1.5, 0)
|
self.frame.button:SetPoint("BOTTOMRIGHT", self.frame, "BOTTOMRIGHT", -1 * self.frame:GetWidth() / 1.5, 0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if not self.frame.button.menu and UnitPopup_ShowMenu then
|
|
||||||
self.frame.button.menu = function(this, unit)
|
|
||||||
IceHUD.DropdownUnit = unit
|
|
||||||
ToggleDropDownMenu(1, nil, IceHUD_UnitFrame_DropDown, "cursor")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -733,7 +726,7 @@ function IceTargetHealth.prototype:EnableClickTargeting(bEnable)
|
|||||||
self.frame.button:EnableMouse(true)
|
self.frame.button:EnableMouse(true)
|
||||||
self.frame.button:RegisterForClicks("AnyUp")
|
self.frame.button:RegisterForClicks("AnyUp")
|
||||||
self.frame.button:SetAttribute("type1", "target")
|
self.frame.button:SetAttribute("type1", "target")
|
||||||
self.frame.button:SetAttribute("type2", UnitPopup_ShowMenu and "menu" or "togglemenu")
|
self.frame.button:SetAttribute("type2", "togglemenu")
|
||||||
self.frame.button:SetAttribute("unit", self.unit)
|
self.frame.button:SetAttribute("unit", self.unit)
|
||||||
|
|
||||||
-- set up click casting
|
-- set up click casting
|
||||||
|
@ -1150,7 +1150,7 @@ do -- OVERRIDE: IceTargetInfo.prototype:CreateFrame(redraw)
|
|||||||
self.frame:SetScript("OnLeave", function(frame) self:OnLeave(frame) end)
|
self.frame:SetScript("OnLeave", function(frame) self:OnLeave(frame) end)
|
||||||
|
|
||||||
self.frame:SetAttribute("type1", "target")
|
self.frame:SetAttribute("type1", "target")
|
||||||
self.frame:SetAttribute("type2", UnitPopup_ShowMenu and "menu" or "togglemenu")
|
self.frame:SetAttribute("type2", "togglemenu")
|
||||||
|
|
||||||
-- set up click casting
|
-- set up click casting
|
||||||
ClickCastFrames = ClickCastFrames or {}
|
ClickCastFrames = ClickCastFrames or {}
|
||||||
@ -1173,13 +1173,6 @@ do -- OVERRIDE: IceTargetInfo.prototype:CreateFrame(redraw)
|
|||||||
|
|
||||||
self.frame:SetAttribute("unit", self.unit)
|
self.frame:SetAttribute("unit", self.unit)
|
||||||
|
|
||||||
if not self.frame.menu and UnitPopup_ShowMenu then
|
|
||||||
self.frame.menu = function(this, unit)
|
|
||||||
IceHUD.DropdownUnit = unit
|
|
||||||
ToggleDropDownMenu(1, nil, IceHUD_UnitFrame_DropDown, "cursor")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- create a fancy highlight frame for mouse over
|
-- create a fancy highlight frame for mouse over
|
||||||
if (not self.frame.highLight) then
|
if (not self.frame.highLight) then
|
||||||
|
Reference in New Issue
Block a user