madcatzinc@13
|
1 --~ Warcraft Plugin for Cyborg MMO7
|
madcatzinc@0
|
2 --~ Filename: CalbackFactory.lua
|
madcatzinc@0
|
3 --~ Description: Creates lua callbacks that can be executed from a user keycombination
|
madcatzinc@0
|
4 --~ Copyright (C) 2012 Mad Catz Inc.
|
madcatzinc@0
|
5 --~ Author: Christopher Hooks
|
madcatzinc@0
|
6
|
madcatzinc@0
|
7 --~ This program is free software; you can redistribute it and/or
|
madcatzinc@0
|
8 --~ modify it under the terms of the GNU General Public License
|
madcatzinc@0
|
9 --~ as published by the Free Software Foundation; either version 2
|
madcatzinc@0
|
10 --~ of the License, or (at your option) any later version.
|
madcatzinc@0
|
11
|
madcatzinc@0
|
12 --~ This program is distributed in the hope that it will be useful,
|
madcatzinc@0
|
13 --~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
madcatzinc@0
|
14 --~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
madcatzinc@0
|
15 --~ GNU General Public License for more details.
|
madcatzinc@0
|
16
|
madcatzinc@0
|
17 --~ You should have received a copy of the GNU General Public License
|
madcatzinc@0
|
18 --~ along with this program; if not, write to the Free Software
|
madcatzinc@0
|
19 --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
madcatzinc@0
|
20
|
madcatzinc@23
|
21 ------------------------------------------------------------------------------
|
madcatzinc@0
|
22
|
madcatzinc@23
|
23 local CallbackFactory_methods = {}
|
madcatzinc@23
|
24 local CallbackFactory_mt = {__index=CallbackFactory_methods}
|
madcatzinc@0
|
25
|
madcatzinc@23
|
26 local function CallbackFactory()
|
madcatzinc@23
|
27 local self = {}
|
madcatzinc@23
|
28 self.Frame = CreateFrame("Frame", "CallbackFactoryFrame", UIParent)
|
madcatzinc@23
|
29 self.Callbacks = {}
|
madcatzinc@23
|
30 self.Id = 1
|
madcatzinc@13
|
31
|
madcatzinc@23
|
32 setmetatable(self, CallbackFactory_mt)
|
madcatzinc@0
|
33
|
madcatzinc@23
|
34 return self
|
madcatzinc@23
|
35 end
|
madcatzinc@4
|
36
|
madcatzinc@23
|
37 function CallbackFactory_methods:AddCallback(fn)
|
madcatzinc@23
|
38 local name = "Button"..self.Id
|
madcatzinc@23
|
39 self.Callbacks[name] = CreateFrame("Button", name, self.Frame)
|
madcatzinc@23
|
40 self.Callbacks[name]:SetScript("OnClick", fn)
|
madcatzinc@23
|
41 self.Id = self.Id + 1
|
madcatzinc@23
|
42 return self.Callbacks[name],self.Frame,name
|
madcatzinc@23
|
43 end
|
madcatzinc@4
|
44
|
madcatzinc@23
|
45 function CallbackFactory_methods:RemoveCallback(name)
|
madcatzinc@23
|
46 self.Callbacks[name] = nil
|
madcatzinc@23
|
47 end
|
madcatzinc@4
|
48
|
madcatzinc@23
|
49 local callbacks = {}
|
madcatzinc@4
|
50
|
madcatzinc@23
|
51 function CallbackFactory_methods:GetCallback(name)
|
madcatzinc@23
|
52 return callbacks[name]
|
madcatzinc@23
|
53 end
|
madcatzinc@4
|
54
|
madcatzinc@23
|
55 ------------------------------------------------------------------------------
|
madcatzinc@4
|
56
|
madcatzinc@23
|
57 function callbacks.Map()
|
jerome@67
|
58 ToggleWorldMap()
|
madcatzinc@23
|
59 end
|
madcatzinc@4
|
60
|
madcatzinc@23
|
61 function callbacks.CharacterPage()
|
madcatzinc@23
|
62 ToggleCharacter("PaperDollFrame")
|
madcatzinc@23
|
63 end
|
madcatzinc@0
|
64
|
madcatzinc@23
|
65 function callbacks.Spellbook()
|
madcatzinc@23
|
66 ToggleFrame(SpellBookFrame)
|
madcatzinc@23
|
67 end
|
madcatzinc@0
|
68
|
madcatzinc@23
|
69 function callbacks.Macros()
|
madcatzinc@30
|
70 if MacroFrame and MacroFrame:IsShown() and MacroFrame:IsVisible() then
|
madcatzinc@23
|
71 HideUIPanel(MacroFrame)
|
madcatzinc@23
|
72 else
|
madcatzinc@23
|
73 ShowMacroFrame()
|
madcatzinc@23
|
74 end
|
madcatzinc@23
|
75 end
|
madcatzinc@0
|
76
|
madcatzinc@23
|
77 function callbacks.QuestLog()
|
jerome@67
|
78 ToggleQuestLog()
|
madcatzinc@23
|
79 end
|
madcatzinc@0
|
80
|
madcatzinc@23
|
81 function callbacks.Achievement()
|
madcatzinc@23
|
82 ToggleAchievementFrame()
|
madcatzinc@23
|
83 end
|
madcatzinc@23
|
84
|
madcatzinc@23
|
85 function callbacks.Inventory()
|
madcatzinc@23
|
86 ToggleAllBags()
|
madcatzinc@23
|
87 end
|
madcatzinc@23
|
88
|
madcatzinc@23
|
89 ------------------------------------------------------------------------------
|
madcatzinc@23
|
90
|
madcatzinc@23
|
91 CyborgMMO_CallbackFactory = CallbackFactory()
|
madcatzinc@23
|
92
|