Mountaholic = {}
-- Create main options panel in Interface>Addons.
Mountaholic.Options = CreateFrame("Frame", nil, UIParent)
Mountaholic.Options.name = "Mountaholic"
InterfaceOptions_AddCategory(Mountaholic.Options)
-- Create child panel for Help text.
Mountaholic.Help = CreateFrame("Frame", nil, Mountaholic.Options)
Mountaholic.Help.name = "Help"
Mountaholic.Help.parent = Mountaholic.Options.name
InterfaceOptions_AddCategory(Mountaholic.Help)
-- Title font string.
local title = Mountaholic.Options:CreateFontString(nil, "OVERLAY", "GameFontNormalLarge")
title:SetPoint("TOPLEFT", 16, -16)
title:SetText("Mountaholic")
-- Favorites title.
local favtitle = Mountaholic.Options:CreateFontString(nil, "OVERLAY", "GameFontNormal")
favtitle:SetPoint("TOPLEFT", title, "BOTTOMLEFT", 9, -20)
favtitle:SetText("Favorite Mounts")
-- Favorites description.
local favdesc = Mountaholic.Options:CreateFontString(nil, "OVERLAY", "GameFontHighlightSmall")
favdesc:SetPoint("TOPLEFT", favtitle, "BOTTOMLEFT", 0, -5)
favdesc:SetText(favdesctxt)
favdesc:SetWidth(575)
favdesc:SetWordWrap(true)
favdesc:SetJustifyH("LEFT")
-- Create frame for favorites.
local favframe = CreateFrame("ScrollFrame", nil, Mountaholic.Options)
favframe:SetPoint("TOPLEFT", favdesc, "BOTTOMLEFT", 0, -20)
favframe:SetPoint("BOTTOMRIGHT", favdesc, "BOTTOMLEFT", 575, -125)
local favframebg = favframe:CreateTexture(nil, "BACKGROUND")
favframebg:SetAllPoints(favframe)
favframebg:SetTexture(0, 0, 0, 0.4)
Mountaholic.Options.favscrollframe = favframe
local favcontent = CreateFrame("Frame", nil, scrollframea)
favcontent:SetSize(575, 175)
favframe.content = favcontent
favframe:SetScrollChild(favcontent)
local favscrollbar = CreateFrame("Slider", nil, favframe, "UIPanelScrollBarTemplate")
favscrollbar:SetPoint("TOPLEFT", favframe, "TOPRIGHT", -16, -16)
favscrollbar:SetPoint("BOTTOMLEFT", favframe, "BOTTOMRIGHT", 16, 16)
favscrollbar:SetMinMaxValues(1, favcontent:GetHeight())
favscrollbar:SetValueStep(1)
favscrollbar:SetValue(0)
favscrollbar:SetWidth(16)
favscrollbar:SetScript("OnValueChanged", function(self, value)
self:GetParent():SetVerticalScroll(value)
end)
local favscrollbarbg = favscrollbar:CreateTexture(nil, "BACKGROUND")
favscrollbarbg:SetAllPoints(favscrollbar)
favscrollbarbg:SetTexture(0, 0, 0, 0.4)
Mountaholic.Options.favscrollbar = favscrollbar
favcontent:SetScript("OnMouseWheel", function(self, value)
if value > 0 then
favscrollbar:SetValue(favscrollbar:GetValue() - (favscrollbar:GetHeight()/100))
else
favscrollbar:SetValue(favscrollbar:GetValue() + (favscrollbar:GetHeight()/100))
end
end)
-- Populate favframe.
favcontent:SetScript("OnShow", function(self, event, ...)
local vars = {}
local y = -10
local numMounts, mountName = GetNumCompanions("mount"), nil
for k, v in pairs(Mountaholic_Favorites) do
for i = 1, numMounts do
local _, creatureName, creatureSpellID = GetCompanionInfo("mount",i)
if creatureSpellID == k then
mountName = creatureName
break
end
end
vars[k.."str"] = self:CreateFontString(nil, "OVERLAY", "GameFontHighlight")
vars[k.."str"]:SetPoint("TOPLEFT", self, "TOPLEFT", 10, y)
vars[k.."str"]:SetText(mountName)
vars[k.."str"]:SetWordWrap(true)
vars[k.."str"]:SetJustifyH("LEFT")
vars[k.."str2"] = self:CreateFontString(nil, "OVERLAY", "GameFontHighlight")
vars[k.."str2"]:SetPoint("TOPLEFT", vars[k.."str"], "TOPRIGHT", 5, 0)
vars[k.."str2"]:SetText(" |cff71C671("..k..")")
vars[k.."str2"]:SetWordWrap(true)
vars[k.."str2"]:SetJustifyH("LEFT")
y = y - 15
end
end)