comparison Options.lua @ 184:1ee86bbb05a0

more options rearranging
author Flick <flickerstreak@gmail.com>
date Fri, 22 Oct 2010 16:03:04 +0000
parents 55c2fc0c8d55
children 2e7a322e0195
comparison
equal deleted inserted replaced
183:1696ff2c80cc 184:1ee86bbb05a0
3 local L = ReAction.L 3 local L = ReAction.L
4 local InCombatLockdown = InCombatLockdown 4 local InCombatLockdown = InCombatLockdown
5 5
6 6
7 local configID = "ReAction" 7 local configID = "ReAction"
8 local configProfileID = "ReAction_Profile" 8 local displayName = L["ReAction"]
9 9
10 local function SlashHandler(option) 10
11 if option == "config" or option == "options" then 11 function ReAction:InitializeOptions()
12 ReAction:ShowOptions() 12 local AceConfigReg = LibStub("AceConfigRegistry-3.0")
13 elseif option == "edit" then 13 local AceConfigDialog = LibStub("AceConfigDialog-3.0")
14 ReAction:ShowEditor() 14
15 elseif option == "unlock" then 15 local options = {
16 ReAction:SetConfigMode(true) 16 type = "group",
17 elseif option == "lock" then 17 name = displayName,
18 ReAction:SetConfigMode(false) 18 handler = self,
19 elseif option == "kb" then 19 args = {
20 ReAction:SetKeybindMode(true) 20 general = {
21 else 21 type = "group",
22 print(("%3.1f"):format(version)) 22 name = displayName,
23 print("/rxn config") 23 args = {
24 print("/rxn edit") 24 _desc = {
25 print("/rxn lock") 25 type = "description",
26 print("/rxn unlock") 26 name = L["Customizable replacement for Blizzard's Action Bars"],
27 print("/rxn kb") 27 order = 1,
28 end 28 },
29 end 29 unlock = {
30 30 type = "toggle",
31 31 name = L["Unlock Bars"],
32 function ReAction:GetOptions() 32 desc = L["Unlock bars for dragging and resizing with the mouse"],
33 if not self.options then 33 get = "GetConfigMode",
34 self.options = { 34 set = "OptionSetConfigMode",
35 type = "group", 35 width = "full",
36 name = "ReAction", 36 disabled = InCombatLockdown,
37 args = { 37 order = 2,
38 _desc = { 38 },
39 type = "description", 39 hide = {
40 name = L["Customizable replacement for Blizzard's Action Bars"], 40 type = "toggle",
41 order = 1, 41 name = L["Hide Blizzard Action Bars"],
42 }, 42 desc = L["Hide the default main bar and extra action bars"],
43 unlock = { 43 handler = self:GetModule("HideBlizzard"),
44 type = "toggle", 44 get = "IsHidden",
45 name = L["Unlock Bars"], 45 set = "SetHidden",
46 desc = L["Unlock bars for dragging and resizing with the mouse"], 46 disabled = "OptionDisabled",
47 handler = self, 47 width = "full",
48 get = "GetConfigMode", 48 order = 3,
49 set = function(info, value) self:SetConfigMode(value) end, 49 },
50 width = "full", 50 hideVehicle = {
51 disabled = InCombatLockdown, 51 type = "toggle",
52 order = 2, 52 name = L["Hide Blizzard Vehicle Bar"],
53 }, 53 desc = L["Hide the default vechicle action bar"],
54 hide = { 54 handler = self:GetModule("HideBlizzard"),
55 type = "toggle", 55 get = "IsHidden",
56 name = L["Hide Blizzard Action Bars"], 56 set = "SetHidden",
57 desc = L["Hide the default main bar and extra action bars"], 57 disabled = "OptionDisabled",
58 handler = self:GetModule("HideBlizzard"), 58 width = "full",
59 get = "IsHidden", 59 order = 4,
60 set = "SetHidden", 60 },
61 disabled = "OptionDisabled", 61 edit = {
62 width = "full", 62 type = "execute",
63 order = 3, 63 name = L["Edit Bars..."],
64 }, 64 desc = L["Show the ReAction Bar Editor dialogue"],
65 hideVehicle = { 65 func = "OptionShowEditor",
66 type = "toggle", 66 order = 5,
67 name = L["Hide Blizzard Vehicle Bar"], 67 },
68 desc = L["Hide the default vechicle action bar"], 68 _closeThis = {
69 handler = self:GetModule("HideBlizzard"), 69 type = "toggle",
70 get = "IsHidden", 70 name = L["Close on Launch"],
71 set = "SetHidden", 71 desc = L["Close the Interface Options window when launching the ReAction Bar Editor"],
72 disabled = "OptionDisabled", 72 get = "OptionGetCloseThis",
73 width = "full", 73 set = "OptionSetCloseThis",
74 order = 4, 74 order = 6,
75 }, 75 cmdHidden = true,
76 edit = { 76 dropdownHidden = true,
77 type = "execute", 77 },
78 name = L["Edit Bars..."], 78 keybind = {
79 desc = L["Show the ReAction Bar Editor dialogue"], 79 type = "execute",
80 handler = self:GetModule("ConfigUI"), 80 name = L["Key Bindings"],
81 func = "OptionShowEditor", 81 desc = L["Show the keybinding dialogue"],
82 order = 5, 82 func = "OptionLaunchKeybindMode",
83 }, 83 order = 7,
84 _closeThis = { 84 },
85 type = "toggle", 85 skipProfileWarning = {
86 name = L["Close on Launch"], 86 type = "toggle",
87 desc = L["Close the Interface Options window when launching the ReAction Bar Editor"], 87 name = L["Skip profile keybind warning"],
88 handler = self:GetModule("ConfigUI"), 88 desc = L["Don't show a warning about updating keybinds when switching profiles"],
89 get = "OptionGetCloseThis", 89 get = "OptionGetSkipKeybindWarning",
90 set = "OptionSetCloseThis", 90 set = "OptionSetSkipKeybindWarning",
91 order = 6, 91 width = "double",
92 cmdHidden = true, 92 order = 8,
93 dropdownHidden = true, 93 },
94 }, 94 }
95 keybind = { 95 },
96 type = "execute", 96 profiles = LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db),
97 name = L["Key Bindings"],
98 desc = L["Show the keybinding dialogue"],
99 func = function() self:SetKeybindMode(true) end,
100 order = 7,
101 },
102 skipProfileWarning = {
103 type = "toggle",
104 name = L["Skip profile keybind warning"],
105 desc = L["Don't show a warning about updating keybinds when switching profiles"],
106 get = function() return ReAction.db.global.skipKeybindWarning end,
107 set = function(info, value) ReAction.db.global.skipKeybindWarning = value end,
108 width = "double",
109 order = 8,
110 },
111 }
112 } 97 }
113 end 98 }
114 return self.options 99
115 end 100 AceConfigReg:RegisterOptionsTable(configID,options)
116 101
117 102 local f = AceConfigDialog:AddToBlizOptions(configID, displayName, nil, "general")
118 function ReAction:GetProfileOptions() 103
119 if not self.profileOptions then 104 if f and f.obj then
120 self.profileOptions = LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db) 105 f.obj:SetCallback("default",
121 end 106 function()
122 return self.profileOptions 107 self.db:ResetProfile()
123 end 108 AceConfigReg:NotifyChange(configID)
124 109 end )
125 110 end
126 function ReAction:InitializeOptions() 111
127 local AceConfigReg = LibStub("AceConfigRegistry-3.0") 112 AceConfigDialog:AddToBlizOptions(configID, options.args.profiles.name, configID, "profiles")
128 local AceConfigDialog = LibStub("AceConfigDialog-3.0")
129
130 AceConfigReg:RegisterOptionsTable(configID,ReAction:GetOptions())
131 AceConfigReg:RegisterOptionsTable(configProfileID,ReAction:GetProfileOptions())
132
133 self.configFrame = AceConfigDialog:AddToBlizOptions(configID, L["ReAction"])
134 self.configProfileFrame = AceConfigDialog:AddToBlizOptions(configProfileID, L["Profiles"], configID)
135
136 self.configFrame.obj:SetCallback("default",
137 function()
138 self.db:ResetProfile()
139 AceConfigReg:NotifyChange(configID)
140 end )
141 113
142 self.db.RegisterCallback(self,"OnProfileChanged") 114 self.db.RegisterCallback(self,"OnProfileChanged")
143 self.db.RegisterCallback(self,"OnProfileReset", "OnProfileChanged") 115 self.db.RegisterCallback(self,"OnProfileReset", "OnProfileChanged")
144 self.db.RegisterCallback(self,"OnProfileCopied","OnProfileChanged") 116 self.db.RegisterCallback(self,"OnProfileCopied","OnProfileChanged")
145 117
146 SlashCmdList["REACTION"] = SlashHandler 118 SlashCmdList["REACTION"] = function(option)
119 option = string.match(option or "", "^%s*(%S+)")
120 if option == "config" or option == "options" then
121 ReAction:ShowOptions()
122 elseif option == "edit" then
123 ReAction:ShowEditor()
124 elseif option == "unlock" then
125 ReAction:SetConfigMode(true)
126 elseif option == "lock" then
127 ReAction:SetConfigMode(false)
128 elseif option == "kb" then
129 ReAction:SetKeybindMode(true)
130 else
131 print(("ReAction %3.1f:"):format(ReAction.version))
132 print("Usage:")
133 print("/rxn config")
134 print("/rxn edit")
135 print("/rxn lock")
136 print("/rxn unlock")
137 print("/rxn kb")
138 end
139 end
140
147 _G["SLASH_REACTION1"] = "/reaction" 141 _G["SLASH_REACTION1"] = "/reaction"
148 _G["SLASH_REACTION2"] = "/rxn" 142 _G["SLASH_REACTION2"] = "/rxn"
149 143
150 StaticPopupDialogs["REACTION_KB_WARN"] = { 144 StaticPopupDialogs["REACTION_KB_WARN"] = {
151 text = L["ReAction profile changed: check your keybinds, they may need to be updated."], 145 text = L["ReAction profile changed: check your keybinds, they may need to be updated."],
162 function ReAction:ShowOptions() 156 function ReAction:ShowOptions()
163 InterfaceOptionsFrame_OpenToCategory(configID) 157 InterfaceOptionsFrame_OpenToCategory(configID)
164 end 158 end
165 159
166 160
167 function ReAction:PopKeybindWarning() 161 function ReAction:OnProfileChanged()
162 self:RebuildAll()
168 if not self.db.global.skipKeybindWarning then 163 if not self.db.global.skipKeybindWarning then
169 StaticPopup_Show("REACTION_KB_WARN") 164 StaticPopup_Show("REACTION_KB_WARN")
170 end 165 end
171 end 166 end
172 167
173 function ReAction:OnProfileChanged() 168
174 self:Disable() 169 function ReAction:OptionSetConfigMode(info, value)
175 self:Enable() 170 self:SetConfigMode(value)
176 self:PopKeybindWarning() 171 end
172
173
174 function ReAction:OptionShowEditor()
175 self:ShowEditor()
176 if self.db.profile.closeOptionsOnEditorLaunch then
177 InterfaceOptionsFrame:Hide()
178 end
179 end
180
181
182 function ReAction:OptionGetCloseThis()
183 return self.db.profile.closeOptionsOnEditorLaunch
184 end
185
186
187 function ReAction:OptionSetCloseThis(info,val)
188 self.db.profile.closeOptionsOnEditorLaunch = val
189 end
190
191
192 function ReAction:OptionLaunchKeybindMode()
193 self:SetKeybindMode(true)
194 end
195
196
197 function ReAction:OptionGetSkipKeybindWarning()
198 return self.db.global.skipKeybindWarning
199 end
200
201
202 function ReAction:OptionSetSkipKeybindWarning(info, value)
203 self.db.global.skipKeybindWarning = value
177 end 204 end
178 205
179 206
180 -- export to LDB 207 -- export to LDB
181 LibStub:GetLibrary("LibDataBroker-1.1"):NewDataObject( "ReAction", 208 local LDB = LibStub:GetLibrary("LibDataBroker-1.1")
209 if LDB then
210 LDB:NewDataObject( "ReAction",
182 { 211 {
183 type = "launcher", 212 type = "launcher",
184 icon = "Interface\\Icons\\INV_Qiraj_JewelEncased", 213 icon = "Interface\\Icons\\INV_Qiraj_JewelEncased",
185 214
186 OnClick = function( frame, button ) 215 OnClick = function( frame, button )
205 tooltip:AddLine(format("|cffffd200%s|r %s",L["Right-click"],L["for bar editor dialog"])) 234 tooltip:AddLine(format("|cffffd200%s|r %s",L["Right-click"],L["for bar editor dialog"]))
206 tooltip:AddLine(format("|cff00ff00%s|r %s",L["Shift-click"],L["to unlock bars"])) 235 tooltip:AddLine(format("|cff00ff00%s|r %s",L["Shift-click"],L["to unlock bars"]))
207 tooltip:AddLine(format("|cff00cccc%s|r %s",L["Alt-click"],L["for keybind mode"])) 236 tooltip:AddLine(format("|cff00cccc%s|r %s",L["Alt-click"],L["for keybind mode"]))
208 end, 237 end,
209 238
210 } 239 })
211 ) 240 end