comparison modules/Totem.lua @ 163:ab5c37989986

- totem bar now stores which page was selected across sessions - totem bar shouldn't be messed up if resized around on non-shaman toons now
author Flick <flickerstreak@gmail.com>
date Sat, 22 Aug 2009 00:12:44 +0000
parents fc08372f0c7a
children 363dd8130205
comparison
equal deleted inserted replaced
162:fc08372f0c7a 163:ab5c37989986
81 profile.buttons[name] = {} 81 profile.buttons[name] = {}
82 end 82 end
83 local btnCfg = profile.buttons[name] 83 local btnCfg = profile.buttons[name]
84 84
85 local r, c = bar:GetButtonGrid() 85 local r, c = bar:GetButtonGrid()
86 local n = r*c 86 local n = min(r*c,6)
87 n = min(n,Button.SetupBarHeader(bar)) 87 Button.SetupBarHeader(bar)
88 for i = 1, n do 88 for i = 1, n do
89 if btnCfg[i] == nil then 89 if btnCfg[i] == nil then
90 btnCfg[i] = {} 90 btnCfg[i] = {}
91 end 91 end
92 if btns[i] == nil then 92 if btns[i] == nil then
93 local success, r = pcall(Button.New,Button,i,btnCfg,bar) 93 local success, r = pcall(Button.New,Button,i,btnCfg,bar)
94 if success and r then 94 if success then
95 btns[i] = r 95 btns[i] = r
96 bar:AddButton(i,r) 96 if r then
97 bar:AddButton(i,r)
98 end
97 else 99 else
98 geterrorhandler()(r) 100 geterrorhandler()(r)
99 n = i - 1 101 n = i - 1
100 bar:ClipNButtons(n) 102 bar:ClipNButtons(n)
101 break 103 break
102 end 104 end
103 end 105 end
104 btns[i]:Refresh() 106 if btns[i] then
107 btns[i]:Refresh()
108 end
105 end 109 end
106 for i = n+1, #btns do 110 for i = n+1, #btns do
107 if btns[i] then 111 if btns[i] then
108 bar:RemoveButton(btns[i]) 112 bar:RemoveButton(btns[i])
109 btns[i] = btns[i]:Destroy() 113 btns[i] = btns[i]:Destroy()