113 lines
4.4 KiB
Lua
113 lines
4.4 KiB
Lua
local addon, tab = ...
|
|
local _G = _G
|
|
|
|
local function uniqueName(name)
|
|
local unique,n = name.."1" ,1
|
|
while(_G[unique]) do
|
|
n = n + 1
|
|
unique = format("%s%s",name,n)
|
|
end
|
|
return unique
|
|
end
|
|
|
|
local function onclick(self)
|
|
PanelTemplates_SetTab(self:GetParent(), self:GetID());
|
|
end
|
|
|
|
local function createSpecialFrame(name, store, tabin)
|
|
name = name or addon
|
|
tabin = tabin or {}
|
|
tabin['tex1'] = tabin['tex1'] or "Interface/TaxiFrame/UI-TaxiFrame-TopLeft.blp" -- 256x256
|
|
tabin['tex1w'] = tabin['tex1w'] or 256
|
|
tabin['tex1h'] = tabin['tex1h'] or 256
|
|
tabin['tex2'] = tabin['tex2'] or "Interface/TaxiFrame/UI-TaxiFrame-TopRight" -- 128x256
|
|
tabin['tex2w'] = tabin['tex2w'] or 128
|
|
tabin['tex2h'] = tabin['tex2h'] or 256
|
|
tabin['tex3'] = tabin['tex3'] or "Interface/TaxiFrame/UI-TaxiFrame-BotLeft" -- 256x256
|
|
tabin['tex3w'] = tabin['tex3w'] or 256
|
|
tabin['tex3h'] = tabin['tex3h'] or 256
|
|
tabin['tex4'] = tabin['tex4'] or "Interface/TaxiFrame/UI-TaxiFrame-BotRight" -- 128x256
|
|
tabin['tex4w'] = tabin['tex4w'] or 128
|
|
tabin['tex4h'] = tabin['tex4h'] or 256
|
|
tabin['tex5'] = tabin['tex5'] or "Interface/MERCHANTFRAME/UI-BuyBack-Icon" -- 64x64
|
|
tabin['tex5w'] = tabin['tex5w'] or 64
|
|
tabin['tex5h'] = tabin['tex5h'] or 64
|
|
tabin['title'] = tabin['title'] or addon
|
|
tabin['strata'] = tabin['strata'] or "MEDIUM"
|
|
local frame = CreateFrame("Frame",uniqueName(name),UIParent)
|
|
frame:SetWidth(348)
|
|
frame:SetHeight(512)
|
|
frame:SetPoint("CENTER",UIParent,"CENTER",0,0)
|
|
frame['tab'] = store
|
|
-- tab['loadFrame'](frame)
|
|
tab['AddDrag'](frame)
|
|
frame['title'] = frame:CreateFontString("$PARENTTitle","OVERLAY","GameFontNormal")
|
|
frame['title']:SetPoint("TOP",frame,"TOP",0,-17)
|
|
frame['title']:SetText(tabin['title'])
|
|
frame['tex1'] = frame:CreateTexture(tabin['tex1'],tabin['strata'])
|
|
frame['tex1f'] = CreateFrame("Frame","$PARENTt1",frame)
|
|
frame['tex1f']:SetWidth(tabin['tex1w'])
|
|
frame['tex1f']:SetFrameLevel(5)
|
|
frame['tex1f']:SetHeight(tabin['tex1w'])
|
|
frame['tex1']:SetAllPoints(frame['tex1f'])
|
|
frame['tex1']:SetTexture(tabin['tex1'])
|
|
frame['tex2'] = frame:CreateTexture(tabin['tex2'],tabin['strata'])
|
|
frame['tex2f'] = CreateFrame("Frame","$PARENTt2",frame)
|
|
frame['tex2f']:SetWidth(tabin['tex2w'])
|
|
frame['tex2f']:SetHeight(tabin['tex2h'])
|
|
frame['tex2']:SetAllPoints(frame['tex2f'])
|
|
frame['tex2']:SetTexture(tabin['tex2'])
|
|
frame['tex3'] = frame:CreateTexture(tabin['tex3'],tabin['strata'])
|
|
frame['tex3f'] = CreateFrame("Frame","$PARENTt3",frame)
|
|
frame['tex3f']:SetWidth(tabin['tex3w'])
|
|
frame['tex3f']:SetHeight(tabin['tex3h'])
|
|
frame['tex3']:SetAllPoints(frame['tex3f'])
|
|
frame['tex3']:SetTexture(tabin['tex3'])
|
|
frame['tex4'] = frame:CreateTexture(tabin['tex4'],tabin['strata'])
|
|
frame['tex4f'] = CreateFrame("Frame","$PARENTt4",frame)
|
|
frame['tex4f']:SetWidth(tabin['tex4w'])
|
|
frame['tex4f']:SetHeight(tabin['tex4h'])
|
|
frame['tex4']:SetAllPoints(frame['tex4f'])
|
|
frame['tex4']:SetTexture(tabin['tex4'])
|
|
frame['tex5'] = frame:CreateTexture(tabin['tex5'],"BACKGROUND")
|
|
frame['tex5f'] = CreateFrame("Frame","$PARENTt5",frame)
|
|
frame['tex5f']:SetWidth(tabin['tex5w'])
|
|
frame['tex5f']:SetHeight(tabin['tex5h'])
|
|
frame['tex5']:SetAllPoints(frame['tex5f'])
|
|
frame['tex5']:SetTexture(tabin['tex5'])
|
|
frame['tex5f']:SetFrameLevel(6)
|
|
frame['tex1f']:SetPoint("TOPLEFT",frame,"TOPLEFT")
|
|
frame['tex5f']:SetPoint("TOPLEFT",frame,"TOPLEFT",8,-5)
|
|
frame['tex2f']:SetPoint("TOPRIGHT",frame,"TOPRIGHT")
|
|
frame['tex3f']:SetPoint("BOTTOMLEFT",frame,"BOTTOMLEFT")
|
|
frame['tex4f']:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT")
|
|
frame['closebutton'] = CreateFrame("Button","$PARENTCloseButton",frame,"UIPanelCloseButton")
|
|
frame['closebutton']:SetPoint("TOPRIGHT",frame,"TOPRIGHT",-30,-8)
|
|
frame['numTabs'] = tabin['numTabs'] or 0
|
|
local prev = frame
|
|
local anchor = "CENTER"
|
|
local parentanchor = "BOTTOMLEFT"
|
|
local x,y = 60,62
|
|
local framenum
|
|
if(frame['numTabs'] and frame['numTabs'] > 0) then
|
|
for k = 1, frame['numTabs'] do
|
|
framenum = format("frametab%d",k)
|
|
frame[framenum] = CreateFrame("Button",format("$PARENTTab%d",k),frame,"CharacterFrameTabButtonTemplate")
|
|
frame[framenum]:SetPoint(anchor,prev,parentanchor,x,y)
|
|
frame[framenum]:SetFrameStrata("HIGH")
|
|
frame[framenum]:SetText(tabin['tabtxt'..k] or "none")
|
|
frame[framenum]:SetID(k)
|
|
frame[framenum]:SetScript("OnClick", onclick)
|
|
x = -16
|
|
y = 0
|
|
anchor = "LEFT"
|
|
parentanchor = "RIGHT"
|
|
prev = frame[framenum]
|
|
end
|
|
end
|
|
PanelTemplates_SetTab(frame, 1);
|
|
frame:Hide()
|
|
return frame
|
|
end
|
|
|
|
tab['createSpecialFrame'] = createSpecialFrame |