New logging feature
This commit is contained in:
+5
-1
@@ -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
@@ -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,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
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Binary file not shown.
+1111
-430
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -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
@@ -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>
|
||||
@@ -1,3 +1,6 @@
|
||||
TurtleMail = TurtleMail or {}
|
||||
local L = TurtleMail.L
|
||||
|
||||
if GetLocale() == "deDE" then
|
||||
L[ "collected" ] = "Gesammelt"
|
||||
L[ "1st mail" ] = "1. Nachricht"
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
TurtleMail = TurtleMail or {}
|
||||
local L = TurtleMail.L
|
||||
|
||||
if GetLocale() == "esES" then
|
||||
L[ "collected" ] = "recogido"
|
||||
L[ "1st mail" ] = "1er mail"
|
||||
|
||||
@@ -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
@@ -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"
|
||||
@@ -1,3 +1,6 @@
|
||||
TurtleMail = TurtleMail or {}
|
||||
local L = TurtleMail.L
|
||||
|
||||
if GetLocale() == "ruRU" then
|
||||
L[ "collected" ] = "собрано"
|
||||
L[ "1st mail" ] = "1-e письмо"
|
||||
|
||||
Reference in New Issue
Block a user