Quantcast

Mail dt alpha

Darthpred [07-21-13 - 20:45]
Mail dt alpha
Filename
ElvUI_SLE/modules/datatexts/load_datatexts.xml
ElvUI_SLE/modules/datatexts/mail.lua
diff --git a/ElvUI_SLE/modules/datatexts/load_datatexts.xml b/ElvUI_SLE/modules/datatexts/load_datatexts.xml
index d56029f..9bf38c7 100755
--- a/ElvUI_SLE/modules/datatexts/load_datatexts.xml
+++ b/ElvUI_SLE/modules/datatexts/load_datatexts.xml
@@ -8,6 +8,7 @@
 	<Script file='friends.lua'/>
 	<Script file='guild.lua'/>
 	<Script file='played.lua'/>
+	<Script file='mail.lua'/>

 	<Include file='dashboard\load_dashboard.xml'/>
 	<Script file='options.lua'/>
diff --git a/ElvUI_SLE/modules/datatexts/mail.lua b/ElvUI_SLE/modules/datatexts/mail.lua
new file mode 100644
index 0000000..6ab5c8d
--- /dev/null
+++ b/ElvUI_SLE/modules/datatexts/mail.lua
@@ -0,0 +1,89 @@
+local E, L, V, P, G, _ =  unpack(ElvUI);
+local DT = E:GetModule('DataTexts')
+
+local Mail_Icon = "|TInterface\\MINIMAP\\TRACKING\\Mailbox.blp:14:14|t";
+local OldShow = MiniMapMailFrame.Show
+local fuck = false
+
+local Read;
+
+
+local function MakeIconString()
+	local str = ""
+		str = str..Mail_Icon
+
+	return str
+end
+
+local function OnEvent(self, event, ...)
+	local newMail = false
+
+	if event == "UPDATE_PENDING_MAIL" or event == "PLAYER_ENTERING_WORLD" or event =="PLAYER_LOGIN" then
+		if fuck then
+			MiniMapMailFrame:Hide()
+			MiniMapMailFrame.Show = dummyFunc
+		else
+			MiniMapMailFrame.Show = OldShow
+		end
+
+		newMail = HasNewMail()
+
+		if unreadMail ~= newMail then
+			unreadMail = newMail
+		end
+
+		self:UnregisterEvent("PLAYER_ENTERING_WORLD")
+		self:UnregisterEvent("PLAYER_LOGIN")
+	end
+
+	if event == "MAIL_INBOX_UPDATE" or event == "MAIL_SHOW" or event == "MAIL_CLOSED" then
+		for i = 1, GetInboxNumItems() do
+			local _, _, _, _, _, _, _, _, wasRead = GetInboxHeaderInfo(i);
+			if( not wasRead ) then
+				newMail = true;
+				break;
+			end
+		end
+	end
+
+	if newMail then
+		self.text:SetText(MakeIconString().."New Mail")
+		Read = false;
+	else
+		self.text:SetText("No Mail")
+		Read = true;
+	end
+
+end
+
+local function OnEnter(self)
+	DT:SetupTooltip(self)
+
+
+
+	local sender1, sender2, sender3 = GetLatestThreeSenders()
+
+	if not Read then
+		DT.tooltip:AddLine(HAVE_MAIL_FROM)
+		DT.tooltip:AddLine("    "..sender1)
+		if sender2 then DT.tooltip:AddLine("    "..sender2) end
+		if sender3 then DT.tooltip:AddLine("    "..sender3) end
+
+	end
+	DT.tooltip:Show()
+end
+
+--[[
+	DT:RegisterDatatext(name, events, eventFunc, updateFunc, clickFunc, onEnterFunc, onLeaveFunc)
+
+	name - name of the datatext (required)
+	events - must be a table with string values of event names to register
+	eventFunc - function that gets fired when an event gets triggered
+	updateFunc - onUpdate script target function
+	click - function to fire when clicking the datatext
+	onEnterFunc - function to fire OnEnter
+	onLeaveFunc - function to fire OnLeave, if not provided one will be set for you that hides the tooltip.
+]]
+
+DT:RegisterDatatext('S&L Mail', {'PLAYER_ENTERING_WORLD', 'MAIL_INBOX_UPDATE', 'UPDATE_PENDING_MAIL', 'MAIL_CLOSED', 'PLAYER_LOGIN','MAIL_SHOW'}, OnEvent, nil, nil, OnEnter)
+