Skip to content

Commit

Permalink
8.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
sirinsidiator committed Sep 21, 2022
1 parent 1bcecde commit 96278d6
Show file tree
Hide file tree
Showing 333 changed files with 52,115 additions and 24,950 deletions.
430 changes: 325 additions & 105 deletions ESOUIDocumentation.txt

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -6,7 +6,7 @@ If you're a Zenimax Media Inc. representative and have any objection to any of t

This repo is also available at http://www.esoui.com/downloads/info1213-ESOUI-TheElderScrollsOnlinesourcecode.html

**Last update: 8.1.7 (API 101035) on 19 Sep 2022.**
**Last update: 8.2.0 (API 101036) on 21 Sep 2022.**

*Join ESOUI Dev Community on Gitter :*

Expand Down
2 changes: 1 addition & 1 deletion bin/update
Expand Up @@ -2,7 +2,7 @@

set -ue

git checkout master
git checkout pts8.2
find esoui/ -type f -name "*.dds" > Textures.txt
grep -Phor 'EsoUI[^"]+?\.dds' esoui/ >> Textures.txt
cat Textures.txt | tr '[A-Z]\\' '[a-z]/' | sort -u > 1.txt
Expand Down
50 changes: 50 additions & 0 deletions esoui/common/gamepad/genericheaders/genericheaders.lua
Expand Up @@ -459,6 +459,26 @@ local function ProcessData(control, data)
return data ~= nil
end
local function GetProcessedNarrationText(control, data)
if control == nil or data == nil then
return ""
end
if type(data) == "function" then
data = data(control)
end
if type(data) == "string" then
return data
elseif type(data) == "number" then
return tostring(data)
else
internalassert(false, "Unsupported data type. A custom narration function will need to be set for this control that returns a string or number.")
end
return ""
end
local function SetAnchorOffsetY(control, index, offsetY)
local isValid, point, relTo, relPoint, offsetX = control:GetAnchor(index)
if isValid then
Expand Down Expand Up @@ -561,6 +581,36 @@ function ZO_GamepadGenericHeader_RefreshData(control, data)
AdjustMessageAnchors(control, g_refreshResults)
end
function ZO_GamepadGenericHeader_GetNarrationText(control, data)
local narration = SCREEN_NARRATION_MANAGER:CreateNarratableObject()
local controls = control.controls
if control.tabBar then
local selectedTabData = control.tabBar:GetSelectedData()
if selectedTabData then
local text = selectedTabData.text or ""
if type(text) == "function" then
text = text(selectedTabData)
end
narration:AddNarrationText(text)
end
end
narration:AddNarrationText(GetProcessedNarrationText(controls[TITLE], data.titleTextNarration or data.titleText))
narration:AddNarrationText(GetProcessedNarrationText(controls[SUBTITLE], data.subtitleTextNarration or data.subtitleText))
narration:AddNarrationText(GetProcessedNarrationText(controls[DATA1HEADER], data.data1HeaderTextNarration or data.data1HeaderText))
narration:AddNarrationText(GetProcessedNarrationText(controls[DATA1], data.data1TextNarration or data.data1Text))
narration:AddNarrationText(GetProcessedNarrationText(controls[DATA2HEADER], data.data2HeaderTextNarration or data.data2HeaderText))
narration:AddNarrationText(GetProcessedNarrationText(controls[DATA2], data.data2TextNarration or data.data2Text))
narration:AddNarrationText(GetProcessedNarrationText(controls[DATA3HEADER], data.data3HeaderTextNarration or data.data3HeaderText))
narration:AddNarrationText(GetProcessedNarrationText(controls[DATA3], data.data3TextNarration or data.data3Text))
narration:AddNarrationText(GetProcessedNarrationText(controls[DATA4HEADER], data.data4HeaderTextNarration or data.data4HeaderText))
narration:AddNarrationText(GetProcessedNarrationText(controls[DATA4], data.data4TextNarration or data.data4Text))
narration:AddNarrationText(GetProcessedNarrationText(controls[MESSAGE], data.messageTextNarration or data.messageText))
return narration
end
local function TabBar_OnDataChanged(control, newData, oldData, reselectingDuringRebuild)
-- Deactivate header ancestor of tabBar control that is passed in
-- ei. apply to header at ZO_GamepadInventoryTopLevel from ZO_GamepadInventoryTopLevelMaskContainerHeaderContainerHeaderTabBar
Expand Down
29 changes: 28 additions & 1 deletion esoui/common/gamepad/zo_gamepadparametricscrolllistscreen.lua
Expand Up @@ -23,7 +23,7 @@ Initialize the parametric list screen.
control should be the top-level-control derived from ZO_Gamepad_ParametricList_Screen.
createTabBar should be a boolean for whether the header should create the tab-bar. If true,
the header data used for udpating the generic header may include tab data. If false, it
the header data used for updating the generic header may include tab data. If false, it
may only provide titleText.
activateOnShow specifies whether the screen should automatically activate its parameteric
Expand Down Expand Up @@ -96,6 +96,18 @@ function ZO_Gamepad_ParametricList_Screen:GetHeaderContainer()
return self.headerContainer
end

function ZO_Gamepad_ParametricList_Screen:GetHeaderNarration()
local headerData = self:GetHeaderData()
if self.header and headerData then
return ZO_GamepadGenericHeader_GetNarrationText(self.header, headerData)
end
end

--Any screens that store the header data elsewhere should override this function
function ZO_Gamepad_ParametricList_Screen:GetHeaderData()
return self.headerData
end

function ZO_Gamepad_ParametricList_Screen:ActivateCurrentList(requestedByHeader)
if self._currentList ~= nil then
self:TryAddListTriggers()
Expand Down Expand Up @@ -194,11 +206,26 @@ function ZO_Gamepad_ParametricList_Screen:AddList(name, callbackParam, listClass
local listContainer = CreateControlFromVirtual("$(parent)"..name, self.control.container, "ZO_Gamepad_ParametricList_Screen_ListContainer")
local list = self:CreateAndSetupList(listContainer.list, callbackParam, listClass, ...)
self.lists[name] = list
if list.RegisterForScreenNarration then
list:RegisterForScreenNarration(self)
else
SCREEN_NARRATION_MANAGER:RegisterParametricListScreen(list, self)
end
local CREATE_HIDDEN = true
self:CreateListFragment(name, CREATE_HIDDEN)
return list
end

function ZO_Gamepad_ParametricList_Screen:UnregisterForNarration()
for _, list in pairs(self.lists) do
if list.UnregisterForScreenNarration then
list:UnregisterForScreenNarration()
else
SCREEN_NARRATION_MANAGER:UnregisterParametricList(list)
end
end
end

function ZO_Gamepad_ParametricList_Screen:GetMainList()
return self.lists["Main"]
end
Expand Down
19 changes: 9 additions & 10 deletions esoui/common/gamepad/zo_gamepadparametricscrolllisttemplates.lua
Expand Up @@ -115,18 +115,15 @@ function ZO_GamepadTabBarScrollList:Deactivate()
end

function ZO_GamepadTabBarScrollList:InitializeKeybindStripDescriptors()
local control = self:GetControl()
local debugName = "Gamepad Tab Bar"
if control then
debugName = debugName .. " " .. control:GetName()
end

--TODO XAR: Look into making these not narrate if there is only one tab
local leftShoulderKeybind =
{
--Ethereal binds show no text, the name field is used to help identify the keybind when debugging. This text does not have to be localized.
name = debugName .. " Left Shoulder",
--Even though this is an ethereal keybind, the name will still be read during screen narration
name = GetString(SI_SCREEN_NARRATION_TABBAR_PREVIOUS_KEYBIND),
keybind = "UI_SHORTCUT_LEFT_SHOULDER",
ethereal = true,
narrateEthereal = true,
etherealNarrationOrder = 0,
callback = function()
if self.active then
self:MovePrevious()
Expand All @@ -136,10 +133,12 @@ function ZO_GamepadTabBarScrollList:InitializeKeybindStripDescriptors()

local rightShoulderKeybind =
{
--Ethereal binds show no text, the name field is used to help identify the keybind when debugging. This text does not have to be localized.
name = debugName .. " Right Shoulder",
--Even though this is an ethereal keybind, the name will still be read during screen narration
name = GetString(SI_SCREEN_NARRATION_TABBAR_NEXT_KEYBIND),
keybind = "UI_SHORTCUT_RIGHT_SHOULDER",
ethereal = true,
narrateEthereal = true,
etherealNarrationOrder = 1,
callback = function()
if self.active then
self:MoveNext()
Expand Down
8 changes: 8 additions & 0 deletions esoui/common/gamepad/zo_textsearch_header_gamepad.lua
Expand Up @@ -13,6 +13,10 @@ function ZO_TextSearch_Header_Gamepad:Initialize(control, onTextChangedCallback)
self.enabled = true

self.headerTextFilterEditBox:SetHandler("OnTextChanged", onTextChangedCallback)
--When the edit box loses focus, fire off a callback that screen narration will listen for
self.headerTextFilterEditBox:SetHandler("OnFocusLost", function() self:FireCallbacks("EditBoxFocusLost") end, "TextSearchHeader")

SCREEN_NARRATION_MANAGER:RegisterTextSearchHeader(self)
end

function ZO_TextSearch_Header_Gamepad:IsActive()
Expand Down Expand Up @@ -64,4 +68,8 @@ end

function ZO_TextSearch_Header_Gamepad:GetText()
return self.headerTextFilterEditBox:GetText()
end

function ZO_TextSearch_Header_Gamepad:GetEditBox()
return self.headerTextFilterEditBox
end
6 changes: 5 additions & 1 deletion esoui/common/globals/shareddialogs.lua
Expand Up @@ -185,7 +185,11 @@ ESO_Dialogs["SHOW_REDEEM_CODE_CONSOLE"] =
{
text = SI_DIALOG_LOG_OUT_ENTER_CODE,
callback = function(dialog)
ShowConsoleRedeemCodeUI()
if IsConsoleUI() then
ShowConsoleRedeemCodeUI()
else -- It's intended that Heron do this as well
OpenURLByType(APPROVED_URL_ESO_ACCOUNT)
end
end,
},

Expand Down
6 changes: 6 additions & 0 deletions esoui/common/tooltip/commontooltips.lua
Expand Up @@ -8,3 +8,9 @@ function ZO_Tooltip:LayoutTextBlockTooltip(text)
section:AddLine(text, self:GetStyle("bodyDescription"))
self:AddSection(section)
end

function ZO_Tooltip:LayoutKeybindTextBlockTooltip(formatString, formatStringParams, keybindIndex)
local section = self:AcquireSection(self:GetStyle("bodySection"))
section:AddParameterizedKeybindLine(formatString, formatStringParams, keybindIndex, self:GetStyle("bodyDescription"))
self:AddSection(section)
end
24 changes: 24 additions & 0 deletions esoui/common/tooltip/tooltipstyles.lua
Expand Up @@ -1219,6 +1219,11 @@ ZO_TOOLTIP_STYLES =
fontColorField = GENERAL_COLOR_WHITE,
},

collectionsPlayerFXOverridden =
{
fontColorField = GENERAL_COLOR_WHITE,
},

-- Gamepad Crown Store Market
instantUnlockIneligibilitySection =
{
Expand Down Expand Up @@ -1781,6 +1786,25 @@ ZO_TOOLTIP_STYLES =
fontFace = "$(GAMEPAD_LIGHT_FONT)",
fontColorField = GENERAL_COLOR_OFF_WHITE,
},

--Character Select
characterDetailsHeader =
{
fontSize = "$(GP_54)",
fontFace = "$(GAMEPAD_MEDIUM_FONT)",
fontStyle = "soft-shadow-thick",
customSpacing = 8,
fontColorField = GENERAL_COLOR_WHITE,
widthPercent = 100,
},

characterDetailsStatsSection =
{
statValuePairSpacing = 10,
childSpacing = 3,
customSpacing = 15,
widthPercent = 100,
},
}

ZO_GAMEPAD_DYEING_TOOLTIP_STYLES =
Expand Down
30 changes: 30 additions & 0 deletions esoui/common/zo_tooltip/gamepad/zo_tooltip_gamepad.lua
Expand Up @@ -184,6 +184,12 @@ function ZO_GamepadTooltip:SetStatusLabelText(tooltipType, stat, value, visualLa

local tooltipContainer = self:GetTooltipContainer(tooltipType)
if tooltipContainer then
--Set the status label narration text on the specified tooltip
local tooltip = self:GetTooltip(tooltipType)
if tooltip then
tooltip:SetStatusLabelNarrationText(stat, value, visualLayer)
end

tooltipContainer.statusLabel:SetText(stat)

if visualLayer ~= "" then
Expand Down Expand Up @@ -344,6 +350,30 @@ function ZO_GamepadTooltip:GetTooltipInfo(tooltipType)
return self.tooltips[tooltipType]
end

function ZO_GamepadTooltip:GetNarrationText(optionalTooltipType)
if self.tooltips[optionalTooltipType] then
--If a valid tooltip type was specified, grab the narration text for that one
local tooltip = self:GetTooltip(optionalTooltipType)
if tooltip then
return tooltip:GetNarrationText()
else
return ""
end
else
--If we didn't get a valid tooltip type, just get the narration text for every visible tooltip
local narrationText = {}
for tooltipType, tooltip in pairs(self.tooltips) do
if tooltip.fragment and tooltip.fragment:IsShowing() then
local tooltip = self:GetTooltip(tooltipType)
if tooltip then
table.insert(narrationText, tooltip:GetNarrationText())
end
end
end
return narrationText
end
end

function ZO_GamepadTooltip_OnInitialized(control, dialogControl)
GAMEPAD_TOOLTIPS = ZO_GamepadTooltip:New(control, dialogControl)
end
3 changes: 2 additions & 1 deletion esoui/fontstrings/fontstrings.txt
@@ -1,2 +1,3 @@
EsoUI\FontStrings\Western\DefaultFontStrings_Western.xml
EsoUI\FontStrings\Japanese\DefaultFontStrings_Japanese.xml
EsoUI\FontStrings\Japanese\DefaultFontStrings_Japanese.xml
EsoUI\FontStrings\SimplifiedChinese\DefaultFontStrings_SimplifiedChinese.xml
16 changes: 8 additions & 8 deletions esoui/fontstrings/japanese/defaultfontstrings_japanese.xml
@@ -1,37 +1,37 @@
<GuiXml>
<!-- Faces -->
<!-- Faces -->
<String name="MEDIUM_FONT" value="EsoUI/Common/Fonts/ESO_FWNTLGUDC70-DB.ttf" />
<BackupFont originalFont="$(MEDIUM_FONT)" backupFont="EsoUI/Common/Fonts/Univers57.otf"/>
<BackupFont originalFont="$(MEDIUM_FONT)" backupFont="EsoUI/Common/Fonts/Univers57Cyrillic-Condensed.otf"/>
<BackupFont originalFont="$(MEDIUM_FONT)" backupFont="EsoUI/Common/Fonts/MYingHeiPRC-W3.otf"/>

<String name="BOLD_FONT" value="EsoUI/Common/Fonts/ESO_FWNTLGUDC70-DB.ttf" />
<BackupFont originalFont="$(BOLD_FONT)" backupFont="EsoUI/Common/Fonts/Univers67.otf"/>
<BackupFont originalFont="$(BOLD_FONT)" backupFont="EsoUI/Common/Fonts/Univers67Cyrillic-CondensedBold.otf"/>
<BackupFont originalFont="$(BOLD_FONT)" backupFont="EsoUI/Common/Fonts/MYingHeiPRC-W3.otf"/>

<String name="CHAT_FONT" value="EsoUI/Common/Fonts/ESO_FWUDC_70-M.ttf" />
<BackupFont originalFont="$(CHAT_FONT)" backupFont="EsoUI/Common/Fonts/Univers57.otf"/>
<BackupFont originalFont="$(CHAT_FONT)" backupFont="EsoUI/Common/Fonts/Univers57Cyrillic-Condensed.otf"/>
<BackupFont originalFont="$(CHAT_FONT)" backupFont="EsoUI/Common/Fonts/MYingHeiPRC-W3.otf"/>

<String name="GAMEPAD_LIGHT_FONT" value="EsoUI/Common/Fonts/ESO_FWNTLGUDC70-DB.ttf" />
<BackupFont originalFont="$(GAMEPAD_LIGHT_FONT)" backupFont="EsoUI/Common/Fonts/FTN47.otf"/>
<BackupFont originalFont="$(GAMEPAD_LIGHT_FONT)" backupFont="EsoUI/Common/Fonts/MYingHeiPRC-W3.otf"/>

<String name="GAMEPAD_MEDIUM_FONT" value="EsoUI/Common/Fonts/FTN57.otf" />
<BackupFont originalFont="$(GAMEPAD_MEDIUM_FONT)" backupFont="EsoUI/Common/Fonts/ESO_FWNTLGUDC70-DB.ttf"/>
<BackupFont originalFont="$(GAMEPAD_MEDIUM_FONT)" backupFont="EsoUI/Common/Fonts/MYingHeiPRC-W3.otf"/>

<String name="GAMEPAD_BOLD_FONT" value="EsoUI/Common/Fonts/FTN87.otf" />
<BackupFont originalFont="$(GAMEPAD_BOLD_FONT)" backupFont="EsoUI/Common/Fonts/ESO_FWNTLGUDC70-DB.ttf"/>
<BackupFont originalFont="$(GAMEPAD_BOLD_FONT)" backupFont="EsoUI/Common/Fonts/MYingHeiPRC-W3.otf"/>

<String name="ANTIQUE_FONT" value="EsoUI/Common/Fonts/ESO_KafuPenji-M.ttf" />
<BackupFont originalFont="$(ANTIQUE_FONT)" backupFont="EsoUI/Common/Fonts/ProseAntiquePSMT.otf"/>
<BackupFont originalFont="$(ANTIQUE_FONT)" backupFont="EsoUI/Common/Fonts/ProseAntiquePSMTCyrillic.otf"/>


<String name="HANDWRITTEN_FONT" value="EsoUI/Common/Fonts/ESO_KafuPenji-M.ttf" />
<BackupFont originalFont="$(HANDWRITTEN_FONT)" backupFont="EsoUI/Common/Fonts/Handwritten_Bold.otf"/>
<BackupFont originalFont="$(HANDWRITTEN_FONT)" backupFont="EsoUI/Common/Fonts/HandwrittenCyrillic_Bold.otf"/>

<String name="STONE_TABLET_FONT" value="EsoUI/Common/Fonts/ESO_KafuPenji-M.ttf" />
<BackupFont originalFont="$(STONE_TABLET_FONT)" backupFont="EsoUI/Common/Fonts/TrajanPro-Regular.otf"/>
<BackupFont originalFont="$(STONE_TABLET_FONT)" backupFont="EsoUI/Common/Fonts/TrajanProCyrillic-Regular.otf"/>

<!-- Sizes -->
<String name="KB_8" value="8"/>
Expand Down

0 comments on commit 96278d6

Please sign in to comment.