comparison modules/FuBar_ReActionFu/FuBar_ReActionFu.lua @ 30:0d95ce7a9ec2

- added Ace3 externs - converted ReAction_ConfigUI to use blizzard interface addons panel via AceConfigDialog-3.0 - partially converted FuBar module to LibRock, deprecated it (going to remove it entirely later) - cleaned up a couple other tidbits
author Flick <flickerstreak@gmail.com>
date Wed, 02 Apr 2008 23:31:13 +0000
parents 21bcaf8215ff
children
comparison
equal deleted inserted replaced
29:9c89042bc328 30:0d95ce7a9ec2
3 3
4 --]] 4 --]]
5 5
6 -- local imports 6 -- local imports
7 local ReAction = ReAction 7 local ReAction = ReAction
8 local L = ReAction.L
9 local _G = _G
10 local Tablet = AceLibrary("Tablet-2.0")
11 local Dewdrop = AceLibrary("Dewdrop-2.0")
12 8
13 -- module declaration 9 -- module declaration
14 local moduleID = "ReActionFu" 10 local moduleID = "ReActionFu"
15 local rmodule = ReAction:NewModule( moduleID ) 11 local module = ReAction:NewModule( moduleID,
16 local module = AceLibrary("AceAddon-2.0"):new("FuBarPlugin-2.0") 12 "FuBarPlugin-3.0"
17 rmodule.fubar = module 13 )
18 14
19 module.hasIcon = "Interface\\Icons\\INV_Qiraj_JewelEncased" 15 local fubarOptions = {
20 module.hasNoColor = true 16 iconPath = "Interface\\Icons\\INV_Qiraj_JewelEncased",
21 module.clickableTooltip = false 17 hasNoColor = true,
22 module.cannotDetachTooltip = true 18 tooltipType = "Tablet-2.0",
23 module.hideMenuTitle = true 19 configType = "Dewdrop-2.0",
24 module.independentProfile = true 20 hasNoText = true,
25 module.defaultPosition = "LEFT" 21 defaultPosition = "LEFT",
26 module.defaultMinimapPosition = 240 -- degrees 22 defaultMinimapPosition = 240, -- degrees
23 clickableTooltip = false,
24 independentProfile = true
25 cannotDetachTooltip = true
26 hideMenuTitle = true
27 }
27 28
28 function rmodule:OnInitialize() 29 function module:OnInitialize()
29 self.db = ReAction.db:RegisterNamespace(moduleID, 30 self.db = ReAction.db:RegisterNamespace(moduleID,
30 { 31 {
31 profile = { 32 profile = {
32 requireFuBar = false 33 requireFuBar = false
33 } 34 }
37 38
38 if self.db.profile.requireFuBar == true then 39 if self.db.profile.requireFuBar == true then
39 self:Hide() 40 self:Hide()
40 end 41 end
41 42
43 self.OnMenuRequest = {
44 type = "group",
45 handler = ReAction,
46 args = {
47 -- include profile management by default
48 profile = LibStub("AceDBOptions-3.0"):GetOptionsTable(ReAction.db)
49 }
50 }
51
52 -- insert each module's registered global opts into the table top level
53 local opts = self.OnMenuRequest
54 for m, tbl in pairs(ReAction:GetOptions("global")) do
55 if tbl.args then
56 for k, v in pairs(tbl.args) do
57 opts.args[k] = v
58 end
59 end
60 end
61
62 -- listen for new module adds
63 ReAction.RegisterCallback(self, "OnOptionsRegistered")
64
65 -- configure FuBarPlugin
66 for k, v in pairs(fubarOptions) do
67 self:SetFuBarOption(k,v)
68 end
42 end 69 end
43 70
44 function rmodule:OnEnable() 71 function module:OnProfileChanged()
45
46 end
47
48 function rmodule:OnDisable()
49
50 end
51
52 function rmodule:OnProfileChanged()
53 if self.db.profile.requireFuBar == true then 72 if self.db.profile.requireFuBar == true then
54 module:Hide() 73 module:Hide()
55 else 74 else
56 self:Show() 75 self:Show()
57 end 76 end
58 end 77 end
59 78
60 function module:OnTooltipUpdate() 79 function module:OnOptionsRegistered( evtName, context, module, opts )
61 80 if context == "global" then
62 end 81 if opts.args then
63 82 for k, v in pairs(tbl.args) do
64 function module:OnClick(button) 83 opts.args[k] = v
65
66 end
67
68 function module:OnMenuRequest( level, value, inTooltip, valueN_1, valueN_2, valueN_3, valueN_4 )
69 if not self.aceOptionsTable then
70 local opts = {
71 type = "group",
72 handler = ReAction,
73 args = {
74 }
75 }
76 Dewdrop:InjectAceOptionsTable(ReAction,opts)
77 self.aceOptionsTable = opts
78 end
79 for _, m in ReAction:IterateModules() do
80 if m and type(m.GetGlobalOptions) == "function" then
81 for k,v in pairs(m:GetGlobalOptions()) do
82 self.aceOptionsTable.args[k] = v
83 end 84 end
84 end 85 end
85 end 86 end
86 Dewdrop:FeedAceOptionsTable(self.aceOptionsTable)
87 end 87 end
88 88
89 function module:OnFuBarClick(button)
90 -- TODO:
91 -- alt, shift, ctrl clicks
92 end
93
94 function module:OnUpdateFuBarTooltip()
95 -- TODO:
96 -- display status of config mode, keybind mode, etc
97 end
98