diff --git a/Postal.lua b/Postal.lua
index af84def..887ef8c 100644
--- a/Postal.lua
+++ b/Postal.lua
@@ -2,7 +2,7 @@ local self = CreateFrame('Frame', nil, MailFrame)
Postal = self
self:SetScript('OnUpdate', function() this:UPDATE() end)
self:SetScript('OnEvent', function() this[event](this) end)
-for _, event in {'ADDON_LOADED', 'VARIABLES_LOADED', 'UI_ERROR_MESSAGE', 'CURSOR_UPDATE', 'BAG_UPDATE', 'MAIL_CLOSED', 'MAIL_SEND_SUCCESS'} do
+for _, event in { 'ADDON_LOADED', 'VARIABLES_LOADED', 'UI_ERROR_MESSAGE', 'CURSOR_UPDATE', 'BAG_UPDATE', 'MAIL_CLOSED', 'MAIL_SEND_SUCCESS' } do
self:RegisterEvent(event)
end
@@ -14,7 +14,7 @@ function self:pack(...) return arg end
self.hook, self.orig = {}, {}
function self:Hook(...)
- for i=1,arg.n do
+ for i = 1, arg.n do
self.orig[arg[i]] = getglobal(arg[i])
setglobal(arg[i], self.hook[arg[i]])
end
@@ -30,10 +30,10 @@ do
end
end
function self:When(predicate, callback)
- state = {predicate = predicate, callback = callback}
+ state = { predicate = predicate, callback = callback }
end
function self:Wait(callback)
- state = {predicate = function() return true end, callback = callback}
+ state = { predicate = function() return true end, callback = callback }
end
function self:Kill()
state = nil
@@ -66,7 +66,7 @@ function self:MAIL_CLOSED()
-- Hides the minimap unread mail button if there are no unread mail on closing the mailbox.
-- Does not scan past the first 50 items since only the first 50 are viewable.
- for i=1,GetInboxNumItems() do
+ for i = 1, GetInboxNumItems() do
if not ({GetInboxHeaderInfo(i)})[9] then return end
end
MiniMapMailFrame:Hide()
@@ -104,18 +104,18 @@ function self:ADDON_LOADED()
PostalHorizontalBarLeft:SetTexture([[Interface\ClassTrainerFrame\UI-ClassTrainer-HorizontalBar]])
PostalHorizontalBarLeft:SetWidth(256)
PostalHorizontalBarLeft:SetHeight(16)
- PostalHorizontalBarLeft:SetTexCoord(0, 1, 0, 0.25)
+ PostalHorizontalBarLeft:SetTexCoord(0, 1, 0, .25)
SendMailFrame:CreateTexture('PostalHorizontalBarRight', 'BACKGROUND')
PostalHorizontalBarRight:SetTexture([[Interface\ClassTrainerFrame\UI-ClassTrainer-HorizontalBar]])
PostalHorizontalBarRight:SetWidth(75)
PostalHorizontalBarRight:SetHeight(16)
- PostalHorizontalBarRight:SetTexCoord(0, 0.29296875, 0.25, 0.5)
+ PostalHorizontalBarRight:SetTexCoord(0, .29296875, .25, .5)
PostalHorizontalBarRight:SetPoint('LEFT', PostalHorizontalBarLeft, 'RIGHT')
do
- local background = ({SendMailPackageButton:GetRegions()})[1]
+ local background = ({ SendMailPackageButton:GetRegions() })[1]
background:Hide()
- local count = ({SendMailPackageButton:GetRegions()})[3]
+ local count = ({ SendMailPackageButton:GetRegions() })[3]
count:Hide()
SendMailPackageButton:Disable()
SendMailPackageButton:SetScript('OnReceiveDrag', nil)
@@ -154,9 +154,20 @@ function self:ADDON_LOADED()
SendMailNameEditBox:SetScript('OnChar', function()
Postal_To = nil
SendMailFrame_SendeeAutocomplete()
+ AutoCompleteBox:SetPoint('TOPLEFT', SendMailNameEditBox, 'BOTTOMLEFT', 0, 3)
+ for i = 1, 5 do
+ local button = getglobal('AutoCompleteButton' .. i)
+ button:SetText('kek')
+ button:GetFontString():SetPoint('LEFT', button, 'LEFT', 15, 0)
+ button:Enable()
+ button:Show()
+ end
+ AutoCompleteBox:SetHeight(5 * AutoCompleteButton1:GetHeight() + 35)
+ AutoCompleteBox:SetWidth(120)
+ AutoCompleteBox:Show()
end)
- for _, editBox in {SendMailNameEditBox, SendMailSubjectEditBox} do
+ for _, editBox in { SendMailNameEditBox, SendMailSubjectEditBox } do
editBox:SetScript('OnEditFocusGained', function()
this:HighlightText()
end)
@@ -173,7 +184,7 @@ function self:ADDON_LOADED()
this:SetScript('OnUpdate', nil)
end)
end
- lastClick = {t=GetTime(), x=x, y=y}
+ lastClick = { t=GetTime(), x=x, y=y }
end)
end
end
@@ -196,7 +207,7 @@ function self.hook.OpenMail_Reply(...)
end
function self:Print(msg, r, g, b)
- DEFAULT_CHAT_FRAME:AddMessage('Postal: '..msg, r, g, b)
+ DEFAULT_CHAT_FRAME:AddMessage('Postal: ' .. msg, r, g, b)
end
function self:Present(...)
@@ -220,10 +231,10 @@ function self.hook.InboxFrame_Update()
for i=1,7 do
local index = (i + (InboxFrame.pageNum - 1) * 7)
if index > GetInboxNumItems() then
- getglobal('PostalBoxItem'..i..'CB'):Hide()
+ getglobal('PostalBoxItem' .. i .. 'CB'):Hide()
else
- getglobal('PostalBoxItem'..i..'CB'):Show()
- getglobal('PostalBoxItem'..i..'CB'):SetChecked(self.Inbox_selectedItems[index])
+ getglobal('PostalBoxItem' .. i .. 'CB'):Show()
+ getglobal('PostalBoxItem' .. i .. 'CB'):SetChecked(self.Inbox_selectedItems[index])
end
end
self:Inbox_Lock()
@@ -318,12 +329,12 @@ function self:Inbox_OpenItem(i, inboxCount, selected)
return self:Inbox_OpenMail(selected)
elseif item then
TakeInboxItem(i)
- self:When(function() return not ({GetInboxHeaderInfo(i)})[8] or GetInboxNumItems() < inboxCount or self.Inbox_skip end, function()
+ self:When(function() return not ({ GetInboxHeaderInfo(i) })[8] or GetInboxNumItems() < inboxCount or self.Inbox_skip end, function()
return self:Inbox_OpenItem(i, inboxCount, selected)
end)
elseif money > 0 then
TakeInboxMoney(i)
- self:When(function() return ({GetInboxHeaderInfo(i)})[5] == 0 or GetInboxNumItems() < inboxCount or self.Inbox_skip end, function()
+ self:When(function() return ({ GetInboxHeaderInfo(i) })[5] == 0 or GetInboxNumItems() < inboxCount or self.Inbox_skip end, function()
return self:Inbox_OpenItem(i, inboxCount, selected)
end)
else
@@ -427,19 +438,19 @@ function self.hook.SendMailFrame_Update()
SendMailScrollFrame:SetHeight(scrollHeight)
SendMailScrollChildFrame:SetHeight(scrollHeight)
- local SendMailScrollFrameTop = ({SendMailScrollFrame:GetRegions()})[3]
+ local SendMailScrollFrameTop = ({ SendMailScrollFrame:GetRegions() })[3]
SendMailScrollFrameTop:SetHeight(scrollHeight)
- SendMailScrollFrameTop:SetTexCoord(0, 0.484375, 0, scrollHeight / 256)
+ SendMailScrollFrameTop:SetTexCoord(0, .484375, 0, scrollHeight / 256)
StationeryBackgroundLeft:SetHeight(scrollHeight)
- StationeryBackgroundLeft:SetTexCoord(0, 1.0, 0, scrollHeight / 256)
+ StationeryBackgroundLeft:SetTexCoord(0, 1, 0, scrollHeight / 256)
StationeryBackgroundRight:SetHeight(scrollHeight)
- StationeryBackgroundRight:SetTexCoord(0, 1.0, 0, scrollHeight / 256)
+ StationeryBackgroundRight:SetTexCoord(0, 1, 0, scrollHeight / 256)
-- Set Items
- for i=1,ATTACHMENTS_MAX do
+ for i = 1, ATTACHMENTS_MAX do
if cursory >= 0 then
getglobal('PostalAttachment'..i):Enable()
getglobal('PostalAttachment'..i):Show()
@@ -471,34 +482,34 @@ function self.hook.ClickSendMailItemButton()
end
function self.hook.GetContainerItemInfo(...)
- local item = {arg[1], arg[2]}
+ local item = { arg[1], arg[2] }
local ret = self:pack(self.orig.GetContainerItemInfo(unpack(arg)))
ret[3] = ret[3] or self:SendMail_Attached(item) and 1 or nil
return unpack(ret)
end
function self.hook.PickupContainerItem(...)
- local item = {arg[1], arg[2]}
+ local item = { arg[1], arg[2] }
if self:SendMail_Attached(item) then return end
if GetContainerItemInfo(unpack(item)) then self:SetCursorItem(item) end
return self.orig.PickupContainerItem(unpack(arg))
end
function self.hook.SplitContainerItem(...)
- local item = {arg[1], arg[2]}
+ local item = { arg[1], arg[2] }
if self:SendMail_Attached(item) then return end
return self.orig.SplitContainerItem(unpack(arg))
end
function self.hook.UseContainerItem(...)
- local item = {arg[1], arg[2]}
+ local item = { arg[1], arg[2] }
if self:SendMail_Attached(item) then return end
if IsShiftKeyDown() or IsControlKeyDown() or IsAltKeyDown() then
return self.orig.UseContainerItem(unpack(arg))
elseif SendMailFrame:IsVisible() then
self:SendMail_SetAttachment(item)
elseif TradeFrame:IsVisible() then
- for i=1,6 do
+ for i = 1, 6 do
if not GetTradePlayerItemLink(i) then
self.orig.PickupContainerItem(unpack(arg))
ClickTradeButton(i)
@@ -571,8 +582,8 @@ function self:SendMail_SetAttachment(item, slot)
return
elseif not slot then
for i=1,ATTACHMENTS_MAX do
- if not getglobal('PostalAttachment'..i).item then
- slot = getglobal('PostalAttachment'..i)
+ if not getglobal('PostalAttachment' .. i).item then
+ slot = getglobal('PostalAttachment' .. i)
break
end
end
@@ -599,8 +610,8 @@ end
function self:SendMail_NumAttachments()
local num = 0
- for i=1,ATTACHMENTS_MAX do
- if getglobal('PostalAttachment'..i).item then
+ for i = 1, ATTACHMENTS_MAX do
+ if getglobal('PostalAttachment' .. i).item then
num = num + 1
end
end
@@ -609,8 +620,8 @@ end
function self:SendMail_Attachments()
local arr = {}
- for i=1,ATTACHMENTS_MAX do
- local btn = getglobal('PostalAttachment'..i)
+ for i = 1, ATTACHMENTS_MAX do
+ local btn = getglobal('PostalAttachment' .. i)
if btn.item then
tinsert(arr, btn.item)
end
@@ -620,13 +631,13 @@ end
function self:SendMail_Clear()
for i=1,ATTACHMENTS_MAX do
- getglobal('PostalAttachment'..i).item = nil
+ getglobal('PostalAttachment' .. i).item = nil
end
PostalMailButton:Disable()
- SendMailNameEditBox:SetText('')
+ SendMailNameEditBox:SetText''
SendMailNameEditBox:SetFocus()
- PostalSubjectEditBox:SetText('')
- SendMailBodyEditBox:SetText('')
+ PostalSubjectEditBox:SetText''
+ SendMailBodyEditBox:SetText''
MoneyInputFrame_ResetMoney(SendMailMoney)
SendMailRadioButton_OnClick(1)
@@ -671,4 +682,26 @@ function self:SendMail_Send()
self:SendMail_Send()
end)
end
+end
+
+function self:FuzzyMatcher(input)
+ local uppercaseInput = strupper(input)
+ local pattern = '(.*)'
+ for i = 1, strlen(uppercaseInput) do
+ if strfind(strsub(uppercaseInput, i, i), '%w') or strfind(strsub(uppercaseInput, i, i), '%s') then
+ pattern = pattern .. strsub(uppercaseInput, i, i) .. '(.-)'
+ end
+ end
+ return function(candidate)
+ local match = { strfind(strupper(candidate), pattern) }
+ if match[1] then
+ local rating = 0
+ for i = 4, getn(match) - 1 do
+ if strlen(match[i]) == 0 then
+ rating = rating + 1
+ end
+ end
+ return rating
+ end
+ end
end
\ No newline at end of file
diff --git a/Postal.xml b/Postal.xml
index f9fe705..304f49e 100644
--- a/Postal.xml
+++ b/Postal.xml
@@ -7,24 +7,17 @@ C:\Projects\WoW\Bin\Interface\FrameXML\UI.xsd">
-
-
- this:GetFontString():SetPoint('LEFT', this, 'LEFT', 15, 0)
-
+
-
-
-
-
+
+
+
-
+
-
-
-
@@ -38,7 +31,7 @@ C:\Projects\WoW\Bin\Interface\FrameXML\UI.xsd">
-
+
@@ -82,7 +75,13 @@ C:\Projects\WoW\Bin\Interface\FrameXML\UI.xsd">
-
+
+ local AUTOCOMPLETE_MAX_BUTTONS = 5
+ this:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b)
+ this:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b)
+ this.maxHeight = AUTOCOMPLETE_MAX_BUTTONS * AutoCompleteButton1:GetHeight()
+ AutoCompleteInstructions:SetText("|cffbbbbbbPress Tab|r")
+