Thanks for your response. I went ahead and tried to give it another shot based off your feedback. I also tried to move all of my interface code into wowlua so I could give the full picture and the framestack of my result.
Unfortunately I'm still not getting an icon so I'm still a bit puzzled. Attached is the result of that.
The reason I was thinking of using a ScrollFrame is because I was going to have options for each stance.
Here is the code in case anyone would like to try it locally:
Lua Code:
local function MyAddOn_BuildStanceListItem(f, index, icon, name, active)
StanceIconFrame = CreateFrame("Frame", "StanceIconFrame"..index, f);
StanceIconFrame:SetSize(68, 68);
StanceIconFrame:SetPoint("TOPLEFT");
StanceIcon = StanceIconFrame:CreateTexture("StanceIcon"..index, "ARTWORK");
StanceIcon:SetTexture(icon);
StanceIcon:SetSize(68, 68);
StanceIcon:SetPoint("TOPLEFT");
StanceIconFrame.texture = StanceIcon;
end
local f = CreateFrame("Frame", "MyAddOnFrame", UIParent, "UIPanelDialogTemplate");
f:SetSize(384, 512);
f:SetPoint("LEFT");
f.Title:ClearAllPoints();
f.Title:SetFontObject("GameFontHighlight");
f.Title:SetPoint("LEFT", MyAddOnFrameTitleBG, "LEFT", 6, 1);
f.Title:SetText("My Awesome AddOn");
f.ScrollFrame = CreateFrame("ScrollFrame", nil, f, "UIPanelScrollFrameTemplate");
f.ScrollFrame:SetPoint("TOPLEFT", MyAddOnFrameDialogBG, "TOPLEFT", 4, -8);
f.ScrollFrame:SetPoint("BOTTOMRIGHT", MyAddOnFrameDialogBG, "BOTTOMRIGHT", -3, 4);
f.ScrollFrame:SetClipsChildren(true);
f.ScrollFrame:SetScript("OnMouseWheel", ScrollFrame_OnMouseWheel);
f.ScrollFrame.ScrollBar:ClearAllPoints();
f.ScrollFrame.ScrollBar:SetPoint("TOPLEFT", f.ScrollFrame, "TOPRIGHT", -12, -18);
f.ScrollFrame.ScrollBar:SetPoint("BOTTOMRIGHT", f.ScrollFrame, "BOTTOMRIGHT", -7, 18);
f.ScrollChild = CreateFrame("Frame", nil, f.ScrollFrame)
f.ScrollFrame:SetScrollChild(f.ScrollChild)
for index=1,GetNumShapeshiftForms(),1 do
icon, name, active = GetShapeshiftFormInfo(index)
MyAddOn_BuildStanceListItem(f.ScrollChild, index, icon, name, active);
end