forked from Bestoriop/QuickHeal-Turtle-Wow
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQuickClick.lua
More file actions
118 lines (99 loc) · 5.06 KB
/
QuickClick.lua
File metadata and controls
118 lines (99 loc) · 5.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
local IsQuickClickKeyDown = IsControlKeyDown;
local MouseButton = "LeftButton";
local BlizzardFrames = {"PlayerFrame","PetFrame","TargetFrame","TargetofTarget","PartyMemberFrame","PartyMemberPetFrame"};
QuickClick_OldOnClick = {};
--[ Click event handlers ]--
local function QuickClick(button,unit)
if IsQuickClickKeyDown() and button == MouseButton then
QuickHeal(unit);
return true;
else return false end
end
-- PlayerFrame
function QuickClick_PlayerFrame_OnClick(button)
if not QuickClick(button,this.unit) then QuickClick_OldOnClick.PlayerFrame(button) end
end
-- PetFrame
function QuickClick_PetFrame_OnClick(button)
if not QuickClick(button,this.unit) then QuickClick_OldOnClick.PetFrame(button) end
end
-- TargetFrame
function QuickClick_TargetFrame_OnClick(button)
if not QuickClick(button,this.unit) then QuickClick_OldOnClick.TargetFrame(button) end
end
-- TargetofTarget
function QuickClick_TargetofTarget_OnClick(button)
if not QuickClick(button,this.unit) then QuickClick_OldOnClick.TargetofTarget(button) end
end
-- PartyMemberFrame
function QuickClick_PartyMemberFrame_OnClick(partyFrame)
if not QuickClick(arg1,this.unit) then QuickClick_OldOnClick.PartyMemberFrame(partyFrame) end
end
-- PartyMemberPetFrame
function QuickClick_PartyMemberPetFrame_OnClick()
if not QuickClick(arg1,this.unit) then QuickClick_OldOnClick.PartyMemberPetFrame() end
end
-- EasyRaid
function QuickClick_ER_RaidPulloutButton_OnClick()
if not QuickClick(arg1, this.unit or this:GetParent().unit) then QuickClick_OldOnClick.ER_RaidPulloutButton() end
end
function QuickClick_ER_MainTankButton_OnClick()
if not QuickClick(arg1, this.unit or this:GetParent().unit) then QuickClick_OldOnClick.ER_MainTankButton() end
end
-- Discord Unit Frames
function QuickClick_DUF_UnitFrame_OnClick(button)
if not QuickClick(button, this.unit) then QuickClick_OldOnClick.DUF_UnitFrame(button) end
end
function QuickClick_DUF_Element_OnClick(button)
if not QuickClick(button, this.unit or this:GetParent().unit) then QuickClick_OldOnClick.DUF_Element(button) end
end
--[[ Loading and Unloading ]]--
function QuickClick_Load()
-- Hook all Blizzard provided player frames
for i,v in ipairs(BlizzardFrames) do
loadstring("if type("..v.."_OnClick) == \"function\" then QuickClick_OldOnClick."..v..","..v.."_OnClick = "..v.."_OnClick,QuickClick_"..v.."_OnClick end")();
end
-- Hook CT_RA_CustomOnClickFunction
QuickClick_OldOnClick.CT_RA_CustomOnClickFunction,CT_RA_CustomOnClickFunction = CT_RA_CustomOnClickFunction,QuickClick;
-- Hook EasyRaid
if IsAddOnLoaded("EasyRaid") then
if (type(ER_RaidPulloutButton_OnClick) == "function") and (type(ER_MainTankButton_OnClick) == "function") then
QuickClick_OldOnClick.ER_RaidPulloutButton,ER_RaidPulloutButton_OnClick = ER_RaidPulloutButton_OnClick,QuickClick_ER_RaidPulloutButton_OnClick;
QuickClick_OldOnClick.ER_MainTankButton,ER_MainTankButton_OnClick = ER_MainTankButton_OnClick,QuickClick_ER_MainTankButton_OnClick;
end
end
-- Hook Perl Classic Unit Frames and X-Perl
QuickClick_OldOnClick.Perl_Custom_ClickFunction,Perl_Custom_ClickFunction = Perl_Custom_ClickFunction,QuickClick;
-- Hook Discord Unit Frames
if IsAddOnLoaded("DiscordUnitFrames") then
if (type(DUF_UnitFrame_OnClick) == "function") and (type(DUF_Element_OnClick) == "function") then
QuickClick_OldOnClick.DUF_UnitFrame,DUF_UnitFrame_OnClick = DUF_UnitFrame_OnClick,QuickClick_DUF_UnitFrame_OnClick;
QuickClick_OldOnClick.DUF_Element,DUF_Element_OnClick = DUF_Element_OnClick,QuickClick_DUF_Element_OnClick;
end
end
end
function QuickClick_Unload()
-- Unhook all Blizzard provided player frames
for i,v in ipairs(BlizzardFrames) do
loadstring("if type(QuickClick_OldOnClick."..v..") == \"function\" then "..v.."_OnClick = QuickClick_OldOnClick."..v.." end")();
end
-- Unhook CT_RA_CustomOnClickFunction
CT_RA_CustomOnClickFunction = QuickClick_OldOnClick.CT_RA_CustomOnClickFunction;
-- Unhook EasyRaid
if IsAddOnLoaded("EasyRaid") then
if (type(QuickClick_OldOnClick.ER_RaidPulloutButton) == "function") and (type(QuickClick_OldOnClick.ER_MainTankButton) == "function") then
ER_RaidPulloutButton_OnClick = QuickClick_OldOnClick.ER_RaidPulloutButton;
ER_MainTankButton_OnClick = QuickClick_OldOnClick.ER_MainTankButton;
end
end
-- Unhook Perl Classic Unit Frames and X-Perl
Perl_Custom_ClickFunction = QuickClick_OldOnClick.Perl_Custom_ClickFunction;
-- Unhook Discord Unit Frames
if IsAddOnLoaded("DiscordUnitFrames") then
if (type(QuickClick_OldOnClick.DUF_UnitFrame) == "function") and (type(QuickClick_OldOnClick.DUF_Element) == "function") then
DUF_UnitFrame_OnClick = QuickClick_OldOnClick.DUF_UnitFrame;
DUF_Element_OnClick = QuickClick_OldOnClick.DUF_Element;
end
end
QuickClick_OldOnClick = {};
end