init
This commit is contained in:
@@ -0,0 +1,225 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_Mailing --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_mailing --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
local TSM = select(2, ...)
|
||||
local MailTab = TSM:NewModule("MailTab", "AceEvent-3.0", "AceHook-3.0")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_Mailing") -- loads the localization table
|
||||
|
||||
local private = {tabs = {}}
|
||||
|
||||
|
||||
function MailTab:OnEnable()
|
||||
MailTab:RegisterEvent("MAIL_SHOW", function() TSMAPI:CreateTimeDelay("mailShowDelay", 0, private.OnMailShow) end)
|
||||
end
|
||||
|
||||
function private:OnMailShow()
|
||||
private.frame = private.frame or private:CreateMailTab()
|
||||
if TSM.db.global.defaultMailTab then
|
||||
for i=1, MailFrame.numTabs do
|
||||
if _G["MailFrameTab"..i].isTSMTab then
|
||||
_G["MailFrameTab"..i]:Click()
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- make sure the second tab gets loaded so we can send mail
|
||||
local currentTab = PanelTemplates_GetSelectedTab(MailFrame)
|
||||
MailFrameTab2:Click()
|
||||
_G["MailFrameTab"..currentTab]:Click()
|
||||
end
|
||||
|
||||
function private:CreateMailTab()
|
||||
local frame = CreateFrame("Frame", nil, MailFrame)
|
||||
TSMAPI.Design:SetFrameBackdropColor(frame)
|
||||
frame:Hide()
|
||||
frame:SetPoint("TOPLEFT")
|
||||
frame:SetPoint("BOTTOMRIGHT", 40, 0)
|
||||
frame:EnableMouse(true)
|
||||
|
||||
local function OnTabClick(self)
|
||||
PanelTemplates_SetTab(MailFrame, self:GetID())
|
||||
--ButtonFrameTemplate_HideButtonBar(MailFrame)
|
||||
InboxFrame:Hide()
|
||||
OpenMailFrame:Hide()
|
||||
StationeryPopupFrame:Hide()
|
||||
SendMailFrame:Hide()
|
||||
SetSendMailShowing(false)
|
||||
MailFrameTab1:Hide()
|
||||
MailFrameTab2:Hide()
|
||||
MailFrameTab3:Hide()
|
||||
InboxCloseButton:Hide()
|
||||
|
||||
|
||||
private.frame:Show()
|
||||
if TSM.db.global.defaultPage == 1 then
|
||||
private.frame.inboxBtn:Click()
|
||||
elseif TSM.db.global.defaultPage == 2 then
|
||||
private.frame.groupsBtn:Click()
|
||||
elseif TSM.db.global.defaultPage == 3 then
|
||||
private.frame.quickSendBtn:Click()
|
||||
elseif TSM.db.global.defaultPage == 4 then
|
||||
private.frame.otherBtn:Click()
|
||||
end
|
||||
end
|
||||
|
||||
local function OnOtherTabClick()
|
||||
if not private.frame then return end
|
||||
private.frame:Hide()
|
||||
InboxFrame:Show()
|
||||
MailFrameTab1:Show()
|
||||
MailFrameTab2:Show()
|
||||
MailFrameTab3:Show()
|
||||
InboxCloseButton:Show()
|
||||
PanelTemplates_SetTab(MailFrame, 1)
|
||||
end
|
||||
|
||||
--MailTab:Hook("MailFrameTab_OnClick", OnOtherTabClick, true)
|
||||
|
||||
local n = MailFrame.numTabs + 1
|
||||
local tab = CreateFrame("Button", "MailFrameTab"..n, MailFrame, "FriendsFrameTabTemplate")
|
||||
tab:Hide()
|
||||
tab:SetID(n)
|
||||
tab:SetText(TSMAPI.Design:GetInlineColor("link2").."TSM_Mailing|r")
|
||||
tab:SetNormalFontObject(GameFontHighlightSmall)
|
||||
tab.isTSMTab = true
|
||||
tab:SetPoint("LEFT", _G["MailFrameTab"..n-1], "RIGHT", -8, 0)
|
||||
tab:Show()
|
||||
tab:SetScript("OnClick", OnTabClick)
|
||||
PanelTemplates_SetNumTabs(MailFrame, n)
|
||||
PanelTemplates_EnableTab(MailFrame, n)
|
||||
frame.tab = tab
|
||||
|
||||
local iconFrame = CreateFrame("Frame", nil, frame)
|
||||
iconFrame:SetPoint("CENTER", frame, "TOPLEFT", 25, -25)
|
||||
iconFrame:SetHeight(80)
|
||||
iconFrame:SetWidth(80)
|
||||
local icon = iconFrame:CreateTexture(nil, "ARTWORK")
|
||||
icon:SetAllPoints()
|
||||
icon:SetTexture("Interface\\Addons\\TradeSkillMaster\\Media\\TSM_Icon_Big")
|
||||
local ag = iconFrame:CreateAnimationGroup()
|
||||
local spin = ag:CreateAnimation("Rotation")
|
||||
spin:SetOrder(1)
|
||||
spin:SetDuration(2)
|
||||
spin:SetDegrees(90)
|
||||
local spin = ag:CreateAnimation("Rotation")
|
||||
spin:SetOrder(2)
|
||||
spin:SetDuration(4)
|
||||
spin:SetDegrees(-180)
|
||||
local spin = ag:CreateAnimation("Rotation")
|
||||
spin:SetOrder(3)
|
||||
spin:SetDuration(2)
|
||||
spin:SetDegrees(90)
|
||||
ag:SetLooping("REPEAT")
|
||||
iconFrame:SetScript("OnEnter", function() ag:Play() end)
|
||||
iconFrame:SetScript("OnLeave", function() ag:Stop() end)
|
||||
|
||||
local title = TSMAPI.GUI:CreateLabel(frame)
|
||||
title:SetPoint("TOPLEFT", 40, -5)
|
||||
title:SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", -5, -25)
|
||||
title:SetJustifyH("CENTER")
|
||||
title:SetJustifyV("CENTER")
|
||||
title:SetText("TSM_Mailing - "..TSM._version)
|
||||
|
||||
local closeBtn = TSMAPI.GUI:CreateButton(frame, 19)
|
||||
closeBtn:SetPoint("TOPRIGHT", -5, -5)
|
||||
closeBtn:SetWidth(20)
|
||||
closeBtn:SetHeight(20)
|
||||
closeBtn:SetText("X")
|
||||
closeBtn:SetScript("OnClick", CloseMail)
|
||||
|
||||
local switchBtn = TSMAPI.GUI:CreateButton(frame, 15)
|
||||
switchBtn:SetPoint("TOPRIGHT", closeBtn, "TOPLEFT", -4, 0)
|
||||
switchBtn:SetHeight(20)
|
||||
switchBtn:SetWidth(85)
|
||||
switchBtn:SetText("Default UI")
|
||||
switchBtn:SetScript("OnClick", OnOtherTabClick)
|
||||
frame.switchBtn = switchBtn
|
||||
|
||||
local line = TSMAPI.GUI:CreateVerticalLine(frame, 0)
|
||||
line:ClearAllPoints()
|
||||
line:SetPoint("TOPRIGHT", -30, -1)
|
||||
line:SetWidth(2)
|
||||
line:SetHeight(30)
|
||||
TSMAPI.GUI:CreateHorizontalLine(frame, -30)
|
||||
|
||||
private:CreateTabs(frame)
|
||||
return frame
|
||||
end
|
||||
|
||||
function private:CreateTabs(frame)
|
||||
local function OnButtonClick(self)
|
||||
frame.inboxTab:Hide()
|
||||
frame.groupsTab:Hide()
|
||||
frame.otherTab:Hide()
|
||||
frame.quickSendTab:Hide()
|
||||
|
||||
frame.inboxBtn:UnlockHighlight()
|
||||
frame.groupsBtn:UnlockHighlight()
|
||||
frame.otherBtn:UnlockHighlight()
|
||||
frame.quickSendBtn:UnlockHighlight()
|
||||
self:LockHighlight()
|
||||
|
||||
if self == frame.inboxBtn then
|
||||
frame.inboxTab:Show()
|
||||
elseif self == frame.groupsBtn then
|
||||
frame.groupsTab:Show()
|
||||
elseif self == frame.otherBtn then
|
||||
frame.otherTab:Show()
|
||||
elseif self == frame.quickSendBtn then
|
||||
frame.quickSendTab:Show()
|
||||
end
|
||||
end
|
||||
|
||||
local button = TSMAPI.GUI:CreateButton(frame, 15)
|
||||
button:SetPoint("TOPLEFT", 70, -40)
|
||||
button:SetHeight(20)
|
||||
button:SetWidth(55)
|
||||
button:SetText(L["Inbox"])
|
||||
button:SetScript("OnClick", OnButtonClick)
|
||||
frame.inboxBtn = button
|
||||
|
||||
local button = TSMAPI.GUI:CreateButton(frame, 15)
|
||||
button:SetPoint("TOPLEFT", frame.inboxBtn, "TOPRIGHT", 5, 0)
|
||||
button:SetHeight(20)
|
||||
button:SetWidth(95)
|
||||
button:SetText(L["TSM Groups"])
|
||||
button:SetScript("OnClick", OnButtonClick)
|
||||
frame.groupsBtn = button
|
||||
|
||||
local button = TSMAPI.GUI:CreateButton(frame, 15)
|
||||
button:SetPoint("TOPLEFT", frame.groupsBtn, "TOPRIGHT", 5, 0)
|
||||
button:SetHeight(20)
|
||||
button:SetWidth(85)
|
||||
button:SetText(L["Quick Send"])
|
||||
button:SetScript("OnClick", OnButtonClick)
|
||||
frame.quickSendBtn = button
|
||||
|
||||
local button = TSMAPI.GUI:CreateButton(frame, 15)
|
||||
button:SetPoint("TOPLEFT", frame.quickSendBtn, "TOPRIGHT", 5, 0)
|
||||
button:SetPoint("TOPRIGHT", -5, -40)
|
||||
button:SetHeight(20)
|
||||
button:SetText(L["Other"])
|
||||
button:SetScript("OnClick", OnButtonClick)
|
||||
frame.otherBtn = button
|
||||
|
||||
TSMAPI.GUI:CreateHorizontalLine(frame, -70)
|
||||
|
||||
local content = CreateFrame("Frame", nil, frame)
|
||||
content:SetPoint("TOPLEFT", 0, -70)
|
||||
content:SetPoint("BOTTOMRIGHT")
|
||||
|
||||
frame.inboxTab = TSM.Inbox:CreateTab(content)
|
||||
frame.inboxTab:Hide()
|
||||
frame.groupsTab = TSM.Groups:CreateTab(content)
|
||||
frame.groupsTab:Hide()
|
||||
frame.otherTab = TSM.Other:CreateTab(content)
|
||||
frame.otherTab:Hide()
|
||||
frame.quickSendTab = TSM.QuickSend:CreateTab(content)
|
||||
frame.quickSendTab:Hide()
|
||||
end
|
||||
Reference in New Issue
Block a user