New logging feature

This commit is contained in:
Sica
2025-03-23 23:27:49 +01:00
parent d8ea76762c
commit 91142ac27c
12 changed files with 1997 additions and 447 deletions
+5 -1
View File
@@ -5,8 +5,12 @@
"_",
"this",
"event",
"GetLocale"
"GetLocale",
"time",
"date",
"mod"
],
"Lua.runtime.version": "Lua 5.1",
"Lua.workspace.checkThirdParty": false,
"Lua.workspace.ignoreDir": [],
"workspace.library": [],
+292
View File
@@ -0,0 +1,292 @@
TurtleMail = TurtleMail or {}
local m = TurtleMail
if m.Calendar then return end
---@class Calendar
---@field show fun( data: table, date: number, anchor: table, on_select: function )
---@field hide fun()
---@field is_visible fun():boolean
local M = {}
function M.new()
local BTN_WIDTH = 25
local BTN_HEIGHT = 20
local calendar
local set_year, set_month
local year_dd, month_dd
local date_data = {}
local months = {}
local days = {}
local select_func
for i = 1, 12 do
local timestamp = time( { year = 2025, month = i, day = 1 } )
months[ i ] = date( "%B", timestamp )
end
local function get_end_day_of_month( year, month )
if month == 2 then
if (mod( year, 4 ) == 0 and mod( year, 100 ) ~= 0) or mod( year, 400 ) == 0 then
return 29
else
return 28
end
elseif month == 4 or month == 6 or month == 9 or month == 11 then
return 30
else
return 31
end
end
---@alias DatePart
---| "Year"
---| "Month"
---| "Day"
---@param part DatePart
local function get_valid_dates( part )
local valid = {}
for i, v in ipairs( date_data ) do
local year = tonumber( date( "%Y", v.timestamp ) )
local month = tonumber( date( "%m", v.timestamp ) )
local day = tonumber( date( "%d", v.timestamp ) )
if year and month and day then
if part == "Day" and year == set_year and month == set_month then
valid[ day ] = valid[ day ] and valid[ day ] + 1 or 1
elseif part == "Month" and year == set_year then
valid[ month ] = true
elseif part == "Year" then
valid[ year ] = true
end
end
end
return valid
end
local function refresh()
local current_month = { year = set_year, month = set_month, day = "01" }
local skip_days = date( "%w", time( current_month ) )
local end_day = get_end_day_of_month( tonumber( set_year ), tonumber( set_month ) )
for i = 1, 42 do
days[ i ]:SetText( "" )
days[ i ]:Disable()
days[ i ]:Hide()
end
local valid_days = get_valid_dates( "Day" )
for i = 1, end_day do
local day = days[ i + skip_days ]
local d = i
day:SetText( i )
if valid_days[ i ] then
day.mails = valid_days[ i ]
day:Enable()
end
day:Show()
day:SetScript( "OnClick", function()
local timestamp = time( { year = set_year, month = set_month, day = d } )
if select_func then
select_func( timestamp )
end
calendar:Hide()
end )
end
if tonumber( skip_days + end_day ) < 36 then
calendar:SetHeight( 150 )
else
calendar:SetHeight( 170 )
end
m.api.UIDropDownMenu_SetText( months[ set_month ], month_dd )
m.api.UIDropDownMenu_SetText( set_year, year_dd )
end
local function pfui_skin()
if m.pfui_skin_enabled then
m.api.pfUI.api.SkinDropDown( year_dd, nil, nil, nil, true )
year_dd:SetPoint( "TOPLEFT", -5, -5 )
m.api.pfUI.api.SkinDropDown( month_dd, nil, nil, nil, true )
month_dd:SetPoint( "TOPLEFT", 79, -5 )
m.api.UIDropDownMenu_SetWidth( 70, month_dd )
for i = 1, 42 do
local button = days[ i ]
m.api.pfUI.api.SkinButton( button )
button:SetWidth( BTN_WIDTH - 1 )
button:SetHeight( BTN_HEIGHT - 1 )
end
end
end
---@param parent table
---@param index number
local function create_date_button( parent, index )
local button = m.api.CreateFrame( "Button", "TurtleMailCalendarDay" .. index .. "Button", parent, "UIPanelButtonTemplate" )
button:SetWidth( BTN_WIDTH )
button:SetHeight( BTN_HEIGHT )
button:GetFontString():SetFont( m.pfui_skin_enabled and m.api.pfUI.font_default or "Fonts/FRIZQT__.TTF", 9 )
button:GetFontString():SetTextColor( 1, 1, 1, 1 )
local orig_disable = button.Disable
button.Disable = function( self )
orig_disable( self )
button:GetFontString():SetTextColor( 0.5, 0.5, 0.5, 1 )
end
local orig_enable = button.Enable
button.Enable = function( self )
orig_enable( self )
button:GetFontString():SetTextColor( 1, 1, 1, 1 )
end
button:SetScript( "OnEnter", function()
m.api.GameTooltip:SetOwner( this, "ANCHOR_RIGHT" )
m.api.GameTooltip:SetText( button.mails .. " mail" .. (button.mails > 1 and "s" or ""), 1, 1, 1, 1, true )
m.api.GameTooltip:Show()
end )
button:SetScript( "OnLeave", function()
m.api.GameTooltip:Hide()
end )
return button
end
---@param parent table
---@param name DatePart
---@param on_select function
---@return table
local function create_dropdown( parent, name, on_select )
local dropdown = m.api.CreateFrame( "Frame", "TurtleMailDropdown" .. name, parent, "UIDropDownMenuTemplate" )
m.api.UIDropDownMenu_Initialize( dropdown, function()
local valid_dates = get_valid_dates( name )
local info = m.api.UIDropDownMenu_CreateInfo()
for i in pairs( valid_dates ) do
info.arg1 = i
info.arg2 = name == "Month" and months[ i ] or i
info.value = info.arg1
info.text = info.arg2
info.func = function( index, value )
m.api.UIDropDownMenu_SetText( value, dropdown )
m.api.CloseDropDownMenus()
on_select( index, value )
end
m.api.UIDropDownMenu_AddButton( info )
end
end )
return dropdown
end
local function create_calendar()
local frame = m.api.CreateFrame( "Frame", "TurtleMailCalendarFrame" )
frame:SetFrameStrata( "FULLSCREEN_DIALOG" )
frame:SetWidth( 195 )
frame:SetHeight( 170 )
frame:SetBackdrop( {
bgFile = "Interface/Buttons/WHITE8x8",
edgeFile = "Interface/Buttons/WHITE8x8",
tile = false,
tileSize = 0,
edgeSize = 0.5,
insets = { left = 0, right = 0, top = 0, bottom = 0 }
} )
frame:SetBackdropColor( 0, 0, 0, 0.9 )
frame:SetBackdropBorderColor( .4, .4, .4, 0.9 )
frame:EnableMouse( true )
frame:Hide()
m.api.tinsert( m.api.UISpecialFrames, frame:GetName() )
frame:SetScript( "OnLeave", function()
if m.api.MouseIsOver( frame ) then
return
end
calendar:Hide()
end )
year_dd = create_dropdown( frame, "Year", function( _, v )
set_year = v
refresh()
end )
year_dd:SetPoint( "TOPLEFT", -12, -5 )
m.api.UIDropDownMenu_SetWidth( 55, year_dd )
month_dd = create_dropdown( frame, "Month", function( v )
set_month = v
refresh()
end )
month_dd:SetPoint( "TOPLEFT", 70, -5 )
m.api.UIDropDownMenu_SetWidth( 85, month_dd )
for i = 1, 42 do
table.insert( days, create_date_button( frame, i ) )
end
for i = 1, 6 do
for j = 1, 7 do
days[ (i - 1) * 7 + j ]:SetPoint( "TOPLEFT", frame, 10 + (j - 1) * BTN_WIDTH, -40 - (i - 1) * BTN_HEIGHT )
days[ (i - 1) * 7 + j ]:Disable()
end
end
pfui_skin()
return frame
end
local function show( data, current_date, anchor, on_select )
date_data = data
set_year = tonumber( date( "%Y", current_date ) )
set_month = tonumber( date( "%m", current_date ) )
select_func = on_select
if not calendar then
calendar = create_calendar()
end
if m.pfui_skin_enabled then
calendar:SetPoint( "TOPRIGHT", anchor, "BOTTOMRIGHT", 125, -4 )
else
calendar:SetPoint( "TOPRIGHT", anchor, "BOTTOMRIGHT", 100, 1 )
end
refresh()
calendar:Show()
end
local function hide()
if calendar then
calendar:Hide()
end
end
local function is_visible()
if calendar then
return calendar:IsVisible()
end
return false
end
---@type Calendar
return {
show = show,
hide = hide,
is_visible = is_visible
}
end
m.Calendar = M
return M
+4 -1
View File
@@ -4,9 +4,10 @@ An extension to the Blizzard mail interface which
- **Automatically opens mail, very rapidly**
- **Mails multiple items at once, very rapidly**
- **Autocompletes recipient names**
- **Icons to show if mail was returned or is from**
- **Icons to show if mail was returned or is from AH**
- **Shows collected gold from opened mails**
- **Apply COD to 1st or all mails**
- **Logging of all sent and received mails**
**\<Right Click>** on inbox items to loot the gold, loot the item and destroy the letter, in that order, if any.<br/>
**\<Right Click>** or **\<Left Drag>** to add inventory items to the attachments.<br/>
@@ -14,6 +15,8 @@ An extension to the Blizzard mail interface which
Note that COD is always ignored when opening, both automatically as well as by **\<Right Click>**.
Logging is disabled by default. Enable with `/tm log` command
![Alt text](https://i.imgur.com/H0MUmXd.png)
![Alt text](https://i.imgur.com/LM7tRcx.png)
Binary file not shown.
+1111 -430
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2,9 +2,9 @@
## Interface: 11200
## Title: |cffabd473Turtle|cffffffffMail
## Author: shirsig/sica
## Version: 1.3
## Version: 1.4
## Notes: Mailbox enhancement
## SavedVariables: TurtleMail_AutoCompleteNames
## SavedVariablesPerCharacter: TurtleMail_To TurtleMail_Point
## SavedVariablesPerCharacter: TurtleMail_To TurtleMail_Point TurtleMail_Log
TurtleMail.xml
+547 -11
View File
@@ -5,15 +5,16 @@
<Script file="localization.de.lua"/>
<Script file="localization.es.lua"/>
<Script file="localization.ru.lua"/>
<Script file="TurtleMail.lua"/>
<Script file="Calendar.lua"/>
<Script file="TurtleMail.lua"/>
<Button name="MailAutoCompleteButtonTemplate" virtual="true">
<Button name="TurtleMailAutoCompleteButtonTemplate" virtual="true">
<Size>
<AbsDimension x="120" y="14"/>
</Size>
<Scripts>
<OnClick>
Mail.SelectMatch(this:GetID())
TurtleMail.select_match( this:GetID() )
</OnClick>
</Scripts>
<NormalFont inherits="GameFontNormal"/>
@@ -53,7 +54,7 @@
</Layer>
</Layers>
<Frames>
<Button name="MailAutoCompleteButton1" inherits="MailAutoCompleteButtonTemplate" id="1">
<Button name="MailAutoCompleteButton1" inherits="TurtleMailAutoCompleteButtonTemplate" id="1">
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
@@ -63,22 +64,22 @@
</Anchor>
</Anchors>
</Button>
<Button name="MailAutoCompleteButton2" inherits="MailAutoCompleteButtonTemplate" id="2">
<Button name="MailAutoCompleteButton2" inherits="TurtleMailAutoCompleteButtonTemplate" id="2">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MailAutoCompleteButton1" relativePoint="BOTTOMLEFT"/>
</Anchors>
</Button>
<Button name="MailAutoCompleteButton3" inherits="MailAutoCompleteButtonTemplate" id="3">
<Button name="MailAutoCompleteButton3" inherits="TurtleMailAutoCompleteButtonTemplate" id="3">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MailAutoCompleteButton2" relativePoint="BOTTOMLEFT"/>
</Anchors>
</Button>
<Button name="MailAutoCompleteButton4" inherits="MailAutoCompleteButtonTemplate" id="4">
<Button name="MailAutoCompleteButton4" inherits="TurtleMailAutoCompleteButtonTemplate" id="4">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MailAutoCompleteButton3" relativePoint="BOTTOMLEFT"/>
</Anchors>
</Button>
<Button name="MailAutoCompleteButton5" inherits="MailAutoCompleteButtonTemplate" id="5">
<Button name="MailAutoCompleteButton5" inherits="TurtleMailAutoCompleteButtonTemplate" id="5">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="MailAutoCompleteButton4" relativePoint="BOTTOMLEFT"/>
</Anchors>
@@ -143,13 +144,13 @@
this:RegisterForDrag('LeftButton')
</OnLoad>
<OnReceiveDrag>
Mail.AttachmentButton_OnClick()
TurtleMail.attachment_button_on_click()
</OnReceiveDrag>
<OnDragStart>
Mail.AttachmentButton_OnClick()
TurtleMail.attachment_button_on_click()
</OnDragStart>
<OnClick>
Mail.AttachmentButton_OnClick()
TurtleMail.attachment_button_on_click()
this:GetScript('OnEnter')()
</OnClick>
<OnEnter>
@@ -310,4 +311,539 @@
</Layer>
</Layers>
</Frame>
<Frame name="TurtleMailLogItemTemplate" virtual="true" hidden="true">
<Size>
<AbsDimension x="100" y="30"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
<Anchor point="RIGHT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="$parentBackground" file="Interface/Buttons/WHITE8x8">
<Size>
<AbsDimension x="10" y="1"/>
</Size>
<Anchors>
<Anchor point="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="-1"/>
</Offset>
</Anchor>
<Anchor point="RIGHT" />
</Anchors>
</Texture>
<Texture name="$parentStatus">
<Size>
<AbsDimension x="28" y="28"/>
</Size>
<Anchors>
<Anchor point="TOPRIGHT">
<Offset>
<AbsDimension x="4" y="-10"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
<Layer level="ARTWORK">
<FontString name="$parentTimeStamp" inherits="GameFontNormal">
<Size>
<AbsDimension x="80" y="14"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="30" y="-15"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="$parentMoney" inherits="GameFontNormal">
<Size>
<AbsDimension x="70" y="14"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="130" y="-15"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="$parentParticipant" inherits="GameFontNormal">
<Size>
<AbsDimension x="100" y="14"/>
</Size>
<Anchors>
<Anchor point="TOPRIGHT">
<Offset>
<AbsDimension x="-2" y="-15"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="$parentSubject" inherits="GameFontNormal">
<Size>
<AbsDimension x="270" y="14"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="30" y="-1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Frame name="$parentIcon">
<Size>
<AbsDimension x="28" y="28"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="1" y="-1"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="$parentTexture" file="Interface/Icons/INV_Scroll_01">
<Size>
<AbsDimension x="28" y="28"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
</Frame>
</Frames>
</Frame>
<Frame name="TurtleMailLogFrame" parent="MailFrame" hidden="true">
<Size>
<AbsDimension x="384" y="512"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT"/>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<FontString name="TurtleMailLogTitleText" inherits="GameFontNormal">
<Size>
<AbsDimension x="224" y="14"/>
</Size>
<Anchors>
<Anchor point="CENTER">
<Offset>
<AbsDimension x="6" y="230"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="TurtleMailLogStatusText" inherits="GameFontNormal">
<Size>
<AbsDimension x="150" y="14"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="27" y="-414" />
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Button name="TurtleMailLogFiltersButton" inherits="UIPanelButtonTemplate" text="Filters">
<Size>
<AbsDimension x="70" y="22"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="75" y="-70"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
TurtleMail.log.filter_dropdown()
</OnClick>
</Scripts>
<Layers>
<Layer level="ARTWORK">
<Texture name="$parentArrow" file="Interface\Addons\TurtleMail\TurtleMail-DownArrow.tga">
<Size>
<AbsDimension x="12" y="12"/>
</Size>
<Anchors>
<Anchor point="RIGHT">
<Offset>
<AbsDimension x="-8" y="-1"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
</Layers>
</Button>
<Button name="TurtleMailLogStartTime">
<Size>
<AbsDimension x="80" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="127" y="-45"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<FontString name="$parentTitle" inherits="GameFontNormal" text="Period">
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="-50" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="$parentText" inherits="GameFontNormal" text="13.12.2025">
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<Texture name="$parentLeft" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="8" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="-8" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0" right="0.0625" top="0" bottom="0.625"/>
</Texture>
<Texture name="$parentMiddle" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="88" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="$parentLeft" relativePoint="RIGHT"/>
</Anchors>
<TexCoords left="0.0625" right="0.9375" top="0" bottom="0.625"/>
</Texture>
<Texture name="$parentRight" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="8" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="$parentMiddle" relativePoint="RIGHT"/>
</Anchors>
<TexCoords left="0.9375" right="1.0" top="0" bottom="0.625"/>
</Texture>
</Layer>
</Layers>
<Frames>
<Button name="$parentButton">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="$parent" relativePoint="RIGHT">
<Offset>
<AbsDimension x="-5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
TurtleMail.log.show_calendar( "Start" )
</OnClick>
</Scripts>
<NormalTexture name="$parentNormalTexture" file="Interface\ChatFrame\UI-ChatIcon-ScrollDown-Up">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="RIGHT"/>
</Anchors>
</NormalTexture>
<PushedTexture name="$parentPushedTexture" file="Interface\ChatFrame\UI-ChatIcon-ScrollDown-Down">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="RIGHT"/>
</Anchors>
</PushedTexture>
<DisabledTexture name="$parentDisabledTexture" file="Interface\ChatFrame\UI-ChatIcon-ScrollDown-Disabled">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="RIGHT"/>
</Anchors>
</DisabledTexture>
<HighlightTexture name="$parentHighlightTexture" file="Interface\Buttons\UI-Common-MouseHilight" alphaMode="ADD">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="RIGHT"/>
</Anchors>
</HighlightTexture>
</Button>
</Frames>
</Button>
<Button name="TurtleMailLogEndTime">
<Size>
<AbsDimension x="80" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="245" y="-45"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<FontString name="$parentTitle" inherits="GameFontNormal" text="-">
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="-17" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="$parentText" inherits="GameFontNormal" text="13.12.2025">
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<Texture name="$parentLeft" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="8" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="-8" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0" right="0.0625" top="0" bottom="0.625"/>
</Texture>
<Texture name="$parentMiddle" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="88" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="$parentLeft" relativePoint="RIGHT"/>
</Anchors>
<TexCoords left="0.0625" right="0.9375" top="0" bottom="0.625"/>
</Texture>
<Texture name="$parentRight" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="8" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="$parentMiddle" relativePoint="RIGHT"/>
</Anchors>
<TexCoords left="0.9375" right="1.0" top="0" bottom="0.625"/>
</Texture>
</Layer>
</Layers>
<Frames>
<Button name="$parentButton">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="$parent" relativePoint="RIGHT">
<Offset>
<AbsDimension x="-5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
TurtleMail.log.show_calendar( "End" )
</OnClick>
</Scripts>
<NormalTexture name="$parentNormalTexture" file="Interface\ChatFrame\UI-ChatIcon-ScrollDown-Up">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="RIGHT"/>
</Anchors>
</NormalTexture>
<PushedTexture name="$parentPushedTexture" file="Interface\ChatFrame\UI-ChatIcon-ScrollDown-Down">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="RIGHT"/>
</Anchors>
</PushedTexture>
<DisabledTexture name="$parentDisabledTexture" file="Interface\ChatFrame\UI-ChatIcon-ScrollDown-Disabled">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="RIGHT"/>
</Anchors>
</DisabledTexture>
<HighlightTexture name="$parentHighlightTexture" file="Interface\Buttons\UI-Common-MouseHilight" alphaMode="ADD">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="RIGHT"/>
</Anchors>
</HighlightTexture>
</Button>
</Frames>
</Button>
<Frame name="TurtleMailLogPlayersDropDown" inherits="UIDropDownMenuTemplate" enableMouse="true">
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="231" y="-75"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
TurtleMail.log.players_dropdown_on_load()
</OnLoad>
<OnShow>
TurtleMail.log.players_dropdown_on_load()
</OnShow>
</Scripts>
</Frame>
<ScrollFrame name="TurtleMailLogScrollFrame" inherits="UIPanelScrollFrameTemplate">
<Size>
<AbsDimension x="296" y="312"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="23" y="-98"/>
</Offset>
</Anchor>
</Anchors>
</ScrollFrame>
<Frame name="TurtleMailLogEntriesFrame" enableMouse="true">
<Size>
<AbsDimension x="301" y="255"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="23" y="-98"/>
</Offset>
</Anchor>
</Anchors>
<Frames>
<Frame name="TurtleMailLogItem1" parent="TurtleMailLogEntriesFrame" inherits="TurtleMailLogItemTemplate"/>
<Frame name="TurtleMailLogItem2" parent="TurtleMailLogEntriesFrame" inherits="TurtleMailLogItemTemplate"/>
<Frame name="TurtleMailLogItem3" parent="TurtleMailLogEntriesFrame" inherits="TurtleMailLogItemTemplate"/>
<Frame name="TurtleMailLogItem4" parent="TurtleMailLogEntriesFrame" inherits="TurtleMailLogItemTemplate"/>
<Frame name="TurtleMailLogItem5" parent="TurtleMailLogEntriesFrame" inherits="TurtleMailLogItemTemplate"/>
<Frame name="TurtleMailLogItem6" parent="TurtleMailLogEntriesFrame" inherits="TurtleMailLogItemTemplate"/>
<Frame name="TurtleMailLogItem7" parent="TurtleMailLogEntriesFrame" inherits="TurtleMailLogItemTemplate"/>
<Frame name="TurtleMailLogItem8" parent="TurtleMailLogEntriesFrame" inherits="TurtleMailLogItemTemplate"/>
<Frame name="TurtleMailLogItem9" parent="TurtleMailLogEntriesFrame" inherits="TurtleMailLogItemTemplate"/>
<Frame name="TurtleMailLogItem10" parent="TurtleMailLogEntriesFrame" inherits="TurtleMailLogItemTemplate"/>
</Frames>
</Frame>
<Button name="TurtleMailLogSentButton" inherits="UIPanelButtonTemplate" text="Sent">
<Size>
<AbsDimension x="80" y="22"/>
</Size>
<Anchors>
<Anchor point="BOTTOMRIGHT" relativePoint="BOTTOMRIGHT">
<Offset>
<AbsDimension x="-39" y="80"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
TurtleMail.log.populate( "Sent" )
</OnClick>
</Scripts>
</Button>
<Button name="TurtleMailLogReceivedButton" inherits="UIPanelButtonTemplate" text="Received">
<Size>
<AbsDimension x="80" y="22"/>
</Size>
<Anchors>
<Anchor point="RIGHT" relativeTo="SendMailCancelButton" relativePoint="LEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
TurtleMail.log.populate( "Received" )
</OnClick>
</Scripts>
</Button>
</Frames>
</Frame>
<Button name="MailFrameTab3" inherits="FriendsFrameTabTemplate" id="3" parent="MailFrame" text="Log">
<Anchors>
<Anchor point="LEFT" relativeTo="MailFrameTab2" relativePoint="RIGHT">
<Offset>
<AbsDimension x="-8" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
MailFrameTab_OnClick()
</OnClick>
</Scripts>
</Button>
</Ui>
+3
View File
@@ -1,3 +1,6 @@
TurtleMail = TurtleMail or {}
local L = TurtleMail.L
if GetLocale() == "deDE" then
L[ "collected" ] = "Gesammelt"
L[ "1st mail" ] = "1. Nachricht"
+3
View File
@@ -1,3 +1,6 @@
TurtleMail = TurtleMail or {}
local L = TurtleMail.L
if GetLocale() == "esES" then
L[ "collected" ] = "recogido"
L[ "1st mail" ] = "1er mail"
+3
View File
@@ -1,3 +1,6 @@
TurtleMail = TurtleMail or {}
local L = TurtleMail.L
if GetLocale() == "frFR" then
L[ "collected" ] = "collecté"
L[ "1st mail" ] = "1er message"
+24 -2
View File
@@ -1,4 +1,7 @@
L = {}
TurtleMail = TurtleMail or {}
local L= {}
TurtleMail.L = L
setmetatable( L, { __index = function( _, key) return key end } );
L[ "collected" ] = nil
@@ -7,4 +10,23 @@ L[ "each mail" ] = nil
L[ "Money received" ] = nil
L[ "All mails" ] = nil
L[ "This mail was returned to you." ] = nil
L[ "This mail was sent by an auctionhouse." ] = nil
L[ "This mail was sent by an auctionhouse." ] = nil
L[ "Log" ] = nil
L[ "Received" ] = nil
L[ "Sent" ] = nil
L[ "Auction House" ] = nil
L[ "Returned" ] = nil
L[ "Help" ] = nil
L[ "Toggle logging on/off" ] = nil
L[ "Clear sent log" ] = nil
L[ "Clear received log" ] = nil
L[ "Logging is enabled." ] = nil
L[ "Logging is disabled." ] = nil
L[ "Sent log cleared." ] = nil
L[ "Received log cleared." ] = nil
L[ "AH" ] = "Auction House"
L[ "COD" ] = "C.O.D."
L[ "Money" ] = "Money Attached"
L[ "Players" ] = nil
L[ "date_format" ] = "%d.%m.%Y"
L[ "time_format" ] = "%H:%M"
+3
View File
@@ -1,3 +1,6 @@
TurtleMail = TurtleMail or {}
local L = TurtleMail.L
if GetLocale() == "ruRU" then
L[ "collected" ] = "собрано"
L[ "1st mail" ] = "1-e письмо"