Mercurial > wow > breuesk
comparison Gui.lua @ 40:90622848932b
Converted the tree to a dropdown + tree and the results are pretty good
author | John@Doomsday |
---|---|
date | Wed, 14 Mar 2012 10:13:48 -0400 |
parents | 7bfbff27a3d7 |
children | 72055fc7e115 |
comparison
equal
deleted
inserted
replaced
39:ecef0cba2913 | 40:90622848932b |
---|---|
64 color = string.format("%02x%02x%02x",255*color.r,255*color.g,255*color.b) | 64 color = string.format("%02x%02x%02x",255*color.r,255*color.g,255*color.b) |
65 end | 65 end |
66 if color == nil then return str end | 66 if color == nil then return str end |
67 return "|cff"..tostring(color or "ffffff")..str.."|r" | 67 return "|cff"..tostring(color or "ffffff")..str.."|r" |
68 end | 68 end |
69 local tree = {} | 69 local pull = {} |
70 local ltemp = 0 | |
70 for i,v in pairs(bsk.lists) do | 71 for i,v in pairs(bsk.lists) do |
71 local entry = {value=i,text=v.name} | 72 pull[i] = v.name |
72 if getn(v) > 0 then | 73 --local entry = {value=i,text=v.name} |
73 entry.children = {} | 74 if ltemp == 0 and getn(v) > 0 then |
74 for x,y in ipairs(v) do | 75 ltemp = i |
75 local p = bsk.persons[y.id] | 76 end |
76 local line = {value=y.id,text=p.main,icon=[[Interface\Glues\CharacterCreate\UI-CharacterCreate-Classes]]} | 77 end |
77 line.iconCoords=CLASS_ICON_TCOORDS[p.class] | 78 |
78 bsk:PopulateRaidList() -- todo: this should be elsewhere | 79 bsk:PopulateRaidList() -- todo: this should be elsewhere |
79 if not bsk.raidIdP[y.id] and not bsk.reserveIdP[y.id] then | 80 |
80 line.disabled = true | 81 |
81 else | 82 bsk.scroller = AceGUI:Create("ScrollFrame") |
82 line.text=colorize(line.text,RAID_CLASS_COLORS[p.class]) | 83 bsk.scroller:SetLayout("List") |
83 end | 84 bsk.scroller:SetHeight(0) -- prevents a nasty graphical bug, dont ask me why |
84 table.insert(entry.children,line) | 85 bsk.scroller:SetFullHeight(true) |
85 end | 86 bsk.scroller:SetFullWidth(true) |
86 else | |
87 entry.disabled=true | |
88 end | |
89 table.insert(tree,entry) | |
90 end | |
91 local treegroup = AceGUI:Create("TreeGroup") | |
92 treegroup:SetTree(tree) | |
93 treegroup:EnableButtonTooltips(false) | |
94 treegroup:SetFullWidth(true) | |
95 treegroup:SetFullHeight(true) | |
96 treegroup:SetAutoAdjustHeight(false) | |
97 | |
98 treegroup:SetCallback("OnGroupSelected", function(widget,_,uniquevalue) bsk:Print("OGS: uniquevalue: "..uniquevalue) | |
99 end) | |
100 treegroup:SetCallback("OnClick", function(widget,_,uniquevalue) bsk:Print("Onclick: uniquevalue: " .. uniquevalue) end) | |
101 treegroup:SetCallback("OnButtonEnter", function(widget,_,value) bsk:Print("OnButtonEnter: value: " .. value) end) | |
102 | |
103 container:AddChild(treegroup) | |
104 | |
105 local scroller = AceGUI:Create("ScrollFrame") | |
106 scroller:SetLayout("List") | |
107 scroller:SetHeight(0) -- prevents a nasty graphical bug, dont ask me why | |
108 scroller:SetFullHeight(true) | |
109 scroller:SetFullWidth(true) | |
110 | 87 |
111 local label = AceGUI:Create("InteractiveLabel") | 88 local label = AceGUI:Create("InteractiveLabel") |
112 label:SetText("fucking hell\n") | 89 label:SetText("fucking hell\n") |
113 scroller:AddChild(label) | 90 bsk.scroller:AddChild(label) |
114 scroller:AddChild(rightGroup) | 91 bsk.scroller:AddChild(rightGroup) |
115 --widget:ReleaseChildren() | 92 |
116 --widget:SetLayout("List") | 93 bsk.treecontrol = AceGUI:Create("TreeGroup") |
117 --widget:AddChild(scroller) | 94 bsk.treecontrol:EnableButtonTooltips(false) |
118 treegroup:AddChild(scroller) | 95 bsk.treecontrol:SetFullWidth(true) |
96 bsk.treecontrol:SetFullHeight(true) | |
97 bsk.treecontrol:SetAutoAdjustHeight(false) | |
98 | |
99 bsk.treecontrol:AddChild(bsk.scroller) | |
100 | |
101 local pulldown = AceGUI:Create("Dropdown") | |
102 pulldown:SetWidth(175) | |
103 pulldown:SetList(pull) | |
104 for i,v in pairs(bsk.lists) do | |
105 if getn(v) == 0 then | |
106 pulldown:SetItemDisabled(i,true) | |
107 end | |
108 end | |
109 local ovc = function(_,_,value) | |
110 --bsk.treecontrol:ReleaseChildren() | |
111 local tree = {} | |
112 for x,y in ipairs(bsk.lists[value]) do | |
113 local p = bsk.persons[y.id] | |
114 local line = {value=y.id,text=p.main,icon=[[Interface\Glues\CharacterCreate\UI-CharacterCreate-Classes]]} | |
115 line.iconCoords=CLASS_ICON_TCOORDS[p.class] | |
116 if not bsk.raidIdP[y.id] and not bsk.reserveIdP[y.id] then | |
117 line.disabled = true | |
118 else | |
119 line.text=colorize(line.text,RAID_CLASS_COLORS[p.class]) | |
120 end | |
121 table.insert(tree,line) | |
122 end | |
123 bsk.treecontrol:SetTree(tree) | |
124 end | |
125 pulldown:SetCallback("OnValueChanged", ovc) | |
126 if ltemp > 0 then pulldown:SetValue(ltemp); ovc(nil,nil,ltemp) end -- sadly, SetValue doesn't fire a OnValueChanged | |
127 | |
128 container:AddChild(pulldown) | |
129 container:AddChild(bsk.treecontrol) | |
130 | |
131 --pulldown:EnableButtonTooltips(false) | |
132 --pulldown:SetFullWidth(true) | |
133 --pulldown:SetFullHeight(true) | |
134 --pulldown:SetAutoAdjustHeight(false) | |
135 | |
136 --pulldown:SetCallback("OnGroupSelected", function(widget,_,uniquevalue) bsk:Print("OGS: uniquevalue: "..uniquevalue) | |
137 --end) | |
138 --pulldown:SetCallback("OnClick", function(widget,_,uniquevalue) bsk:Print("Onclick: uniquevalue: " .. uniquevalue) end) | |
139 --pulldown:SetCallback("OnButtonEnter", function(widget,_,value) bsk:Print("OnButtonEnter: value: " .. value) end) | |
140 | |
141 | |
119 end | 142 end |
120 end | 143 end |
121 | 144 |
122 --local myhook = function(tooltip, spellid) | 145 --local myhook = function(tooltip, spellid) |
123 --tooltip:AddLine("MSS was here", 1, 1, 1) | 146 --tooltip:AddLine("MSS was here", 1, 1, 1) |