Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ADDON.SpellRow = {}
- ADDON.SpellRow.__index = ADDON.SpellRow
- function ADDON.SpellRow:GetFrame()
- return self.frame
- end
- function ADDON.SpellRow:CreateRow(parent, index, spell)
- self.frame = CreateFrame('BUTTON', 'spellIdRow' .. index, parent)
- self.frame:SetSize(ADDON:Scale(290), ADDON:Scale(16))
- self.frame.background = self.frame:CreateTexture(nil, 'BACKGROUND')
- self.frame.background:SetAllPoints(self.frame)
- self.frame.background:SetTexture([[Interface\AddOns\AstralAnalytics\Media\Texture\Flat.tga]])
- self.frame.background:SetAlpha(.6)
- self.frame.background:Show()
- self.frame.name = self.frame:CreateFontString(nil, 'OVERLAY', 'AstralFontNormal')
- self.frame.name:SetPoint('LEFT', self.frame, 'LEFT', 4, -1)
- self.frame.name:SetTextColor(1, 1, 1)
- self:SetSpell(spell)
- return self
- end
- function ADDON.SpellRow:SetSpell(spell)
- local name, rank, icon = GetSpellInfo(spell)
- self.frame.name:SetText(name .. " (" .. spell .. ")")
- self.frame:Show()
- end
- function ADDON.SpellRow:ClearSpell()
- self.frame.name:SetText('')
- self.frame:Hide()
- end
- local listScrollFrame = CreateFrame('ScrollFrame', 'parentListContainer', ADDON.AAOptionsFrame, 'FauxScrollFrameTemplate')
- listScrollFrame:SetSize(415, 375)
- listScrollFrame:SetPoint('TOPLEFT')
- local currentDropdownValue = 'taunt'
- local row = {}
- local function CreateSpellList()
- for key, value in pairs(row) do
- ADDON.Print("Hiding")
- value:ClearSpell()
- end
- row[1] = ADDON.SpellRow:CreateRow(listScrollFrame, 1, 1)
- row[1]:GetFrame():SetPoint('TOPLEFT', 'AAOptionsFrame', 'TOPLEFT', 25, -10)
- local currentRow = 1
- for spellId, _ in pairs(AstralAnalytics.spellIds[currentDropdownValue]) do
- if row[currentRow] == nil then
- ADDON.Print('new row for ' .. currentRow .. ' with id ' .. spellId)
- row[currentRow] = ADDON.SpellRow:CreateRow(listScrollFrame, currentRow, spellId)
- row[currentRow]:GetFrame():SetPoint('TOPLEFT', 'spellIdRow' .. currentRow-1, 'BOTTOMLEFT', 0, 0)
- else
- ADDON.Print('setting existing row for ' .. currentRow .. ' with id ' .. spellId)
- row[currentRow]:SetSpell(spellId)
- row[currentRow]:GetFrame():Show()
- end
- currentRow = currentRow + 1
- end
- ADDON.Print(table.getn(row))
- end
- local function spellCategoryDropdown_OnClick(self, arg1, arg2, checked)
- currentDropdownValue = arg1
- UIDropDownMenu_SetText(spellCategoryDropdown, currentDropdownValue)
- CreateSpellList()
- end
- local function initSpellCategoryDropdown(frame, level, menulist)
- local info = UIDropDownMenu_CreateInfo()
- info.func = spellCategoryDropdown_OnClick
- for key, value in pairs(AstralAnalytics.spellIds) do
- info.text, info.arg1, info.checked = key, key, key == currentDropdownValue
- UIDropDownMenu_AddButton(info)
- end
- end
- local spellCategoryDropdown = CreateFrame("Frame", "spellCategoryDropdown", listScrollFrame, "UIDropDownMenuTemplate")
- spellCategoryDropdown:SetPoint('TOPLEFT', listScrollFrame, 'TOPRIGHT', 20, 0)
- spellCategoryDropdown:SetWidth(200)
- UIDropDownMenu_Initialize(spellCategoryDropdown, initSpellCategoryDropdown)
- UIDropDownMenu_SetText(spellCategoryDropdown, currentDropdownValue)
Add Comment
Please, Sign In to add comment