ver. 1.0.0
First running version working.
This commit is contained in:
@@ -0,0 +1,685 @@
|
||||
-- pfUI-DQB
|
||||
-- modules/itemtext.lua
|
||||
--
|
||||
-- DQB customization for pfUI Books / Item Text.
|
||||
--
|
||||
-- The original pfUI skin remains responsible for:
|
||||
-- - Main frame
|
||||
-- - Frame backdrop
|
||||
-- - Close button
|
||||
-- - Movement
|
||||
-- - General pfUI appearance
|
||||
--
|
||||
-- DQB only changes:
|
||||
-- - Text colors
|
||||
-- - Parchment background
|
||||
-- - Page controls
|
||||
-- - Scrollbar presentation
|
||||
|
||||
|
||||
local DQB = pfUI and pfUI.dqb
|
||||
|
||||
if not DQB then
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
DQB:RegisterModule("itemtext", function()
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Check configuration
|
||||
--------------------------------------------------------
|
||||
|
||||
if not DQB:IsModuleEnabled("itemtext") then
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- pfUI API
|
||||
--------------------------------------------------------
|
||||
|
||||
local API = pfUI.api
|
||||
|
||||
if not API then
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
local StripTextures = API.StripTextures
|
||||
local CreateBackdrop = API.CreateBackdrop
|
||||
local CreateBackdropShadow = API.CreateBackdropShadow
|
||||
local SkinCloseButton = API.SkinCloseButton
|
||||
local SkinScrollbar = API.SkinScrollbar
|
||||
local SkinArrowButton = API.SkinArrowButton
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Text colors
|
||||
--------------------------------------------------------
|
||||
|
||||
local function SetWhite(text)
|
||||
|
||||
if not text then
|
||||
return
|
||||
end
|
||||
|
||||
text:SetTextColor(
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
)
|
||||
|
||||
text:SetShadowColor(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
)
|
||||
|
||||
text:SetShadowOffset(
|
||||
1,
|
||||
-1
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
local function SetGold(text)
|
||||
|
||||
if not text then
|
||||
return
|
||||
end
|
||||
|
||||
text:SetTextColor(
|
||||
1,
|
||||
0.82,
|
||||
0,
|
||||
1
|
||||
)
|
||||
|
||||
text:SetShadowColor(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
)
|
||||
|
||||
text:SetShadowOffset(
|
||||
1,
|
||||
-1
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Apply text colors
|
||||
--------------------------------------------------------
|
||||
|
||||
local function SetItemTextColors()
|
||||
|
||||
SetGold(
|
||||
ItemTextTitleText
|
||||
)
|
||||
|
||||
SetWhite(
|
||||
ItemTextPageText
|
||||
)
|
||||
|
||||
SetWhite(
|
||||
ItemTextCurrentPage
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Main frame
|
||||
--------------------------------------------------------
|
||||
|
||||
if not ItemTextFrame then
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
StripTextures(
|
||||
ItemTextFrame
|
||||
)
|
||||
|
||||
|
||||
CreateBackdrop(
|
||||
ItemTextFrame,
|
||||
nil,
|
||||
nil,
|
||||
0.75
|
||||
)
|
||||
|
||||
|
||||
CreateBackdropShadow(
|
||||
ItemTextFrame
|
||||
)
|
||||
|
||||
|
||||
ItemTextFrame.backdrop:SetPoint(
|
||||
"TOPLEFT",
|
||||
12,
|
||||
-12
|
||||
)
|
||||
|
||||
|
||||
ItemTextFrame.backdrop:SetPoint(
|
||||
"BOTTOMRIGHT",
|
||||
-30,
|
||||
72
|
||||
)
|
||||
|
||||
|
||||
ItemTextFrame:SetHitRectInsets(
|
||||
12,
|
||||
30,
|
||||
12,
|
||||
72
|
||||
)
|
||||
|
||||
|
||||
if API.EnableMovable then
|
||||
|
||||
API.EnableMovable(
|
||||
ItemTextFrame
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Close button
|
||||
--------------------------------------------------------
|
||||
|
||||
if ItemTextCloseButton then
|
||||
|
||||
SkinCloseButton(
|
||||
ItemTextCloseButton,
|
||||
ItemTextFrame.backdrop,
|
||||
-6,
|
||||
-6
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Text area
|
||||
--------------------------------------------------------
|
||||
|
||||
if ItemTextScrollFrame then
|
||||
|
||||
ItemTextScrollFrame:SetWidth(
|
||||
292
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
if ItemTextPageText then
|
||||
|
||||
ItemTextPageText:SetWidth(
|
||||
282
|
||||
)
|
||||
|
||||
ItemTextPageText:ClearAllPoints()
|
||||
|
||||
ItemTextPageText:SetPoint(
|
||||
"TOPLEFT",
|
||||
4,
|
||||
-15
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
if ItemTextTitleText then
|
||||
|
||||
ItemTextTitleText:ClearAllPoints()
|
||||
|
||||
ItemTextTitleText:SetPoint(
|
||||
"TOP",
|
||||
ItemTextFrame.backdrop,
|
||||
"TOP",
|
||||
0,
|
||||
-10
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Scroll frame
|
||||
--------------------------------------------------------
|
||||
|
||||
if ItemTextScrollFrame then
|
||||
|
||||
StripTextures(
|
||||
ItemTextScrollFrame
|
||||
)
|
||||
|
||||
|
||||
CreateBackdrop(
|
||||
ItemTextScrollFrame,
|
||||
nil,
|
||||
true,
|
||||
0
|
||||
)
|
||||
|
||||
|
||||
SkinScrollbar(
|
||||
ItemTextScrollFrameScrollBar
|
||||
)
|
||||
|
||||
|
||||
ItemTextScrollFrame:ClearAllPoints()
|
||||
|
||||
ItemTextScrollFrame:SetPoint(
|
||||
"TOPRIGHT",
|
||||
-66,
|
||||
-46
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Replace parchment with black translucent background
|
||||
--------------------------------------------------------
|
||||
|
||||
local bg
|
||||
|
||||
|
||||
if ItemTextScrollFrame then
|
||||
|
||||
bg =
|
||||
ItemTextScrollFrame.dqbBackground
|
||||
|
||||
|
||||
if not bg then
|
||||
|
||||
bg =
|
||||
ItemTextScrollFrame:CreateTexture(
|
||||
nil,
|
||||
"LOW"
|
||||
)
|
||||
|
||||
|
||||
bg:SetAllPoints()
|
||||
|
||||
|
||||
ItemTextScrollFrame.dqbBackground =
|
||||
bg
|
||||
|
||||
end
|
||||
|
||||
|
||||
bg:SetTexture(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0.50
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Disable Blizzard parchment material
|
||||
--------------------------------------------------------
|
||||
|
||||
if ItemTextMaterialTopLeft then
|
||||
|
||||
ItemTextMaterialTopLeft.SetTexture =
|
||||
function()
|
||||
|
||||
bg:SetTexture(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0.50
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
ItemTextMaterialTopLeft.Hide =
|
||||
function()
|
||||
|
||||
bg:SetTexture(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0.50
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
ItemTextMaterialTopLeft.Show =
|
||||
function()
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
ItemTextMaterialTopLeft:Hide()
|
||||
|
||||
end
|
||||
|
||||
|
||||
if ItemTextMaterialTopRight then
|
||||
|
||||
ItemTextMaterialTopRight.Show =
|
||||
function()
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
ItemTextMaterialTopRight:Hide()
|
||||
|
||||
end
|
||||
|
||||
|
||||
if ItemTextMaterialBotLeft then
|
||||
|
||||
ItemTextMaterialBotLeft.Show =
|
||||
function()
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
ItemTextMaterialBotLeft:Hide()
|
||||
|
||||
end
|
||||
|
||||
|
||||
if ItemTextMaterialBotRight then
|
||||
|
||||
ItemTextMaterialBotRight.Show =
|
||||
function()
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
ItemTextMaterialBotRight:Hide()
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Current page
|
||||
--------------------------------------------------------
|
||||
|
||||
if ItemTextCurrentPage
|
||||
and ItemTextScrollFrame then
|
||||
|
||||
ItemTextCurrentPage:ClearAllPoints()
|
||||
|
||||
ItemTextCurrentPage:SetPoint(
|
||||
"TOP",
|
||||
ItemTextScrollFrame,
|
||||
"BOTTOM",
|
||||
0,
|
||||
-10
|
||||
)
|
||||
|
||||
ItemTextCurrentPage:SetFontObject(
|
||||
"GameFontWhite"
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Previous page button
|
||||
--------------------------------------------------------
|
||||
|
||||
if ItemTextPrevPageButton
|
||||
and ItemTextScrollFrame then
|
||||
|
||||
SkinArrowButton(
|
||||
ItemTextPrevPageButton,
|
||||
"left",
|
||||
18
|
||||
)
|
||||
|
||||
|
||||
ItemTextPrevPageButton:ClearAllPoints()
|
||||
|
||||
ItemTextPrevPageButton:SetPoint(
|
||||
"TOPLEFT",
|
||||
ItemTextScrollFrame,
|
||||
"BOTTOMLEFT",
|
||||
0,
|
||||
-6
|
||||
)
|
||||
|
||||
|
||||
ItemTextPrevPageButton.Show =
|
||||
function(self)
|
||||
|
||||
self:Enable()
|
||||
|
||||
end
|
||||
|
||||
|
||||
ItemTextPrevPageButton.Hide =
|
||||
function(self)
|
||||
|
||||
self:Disable()
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Next page button
|
||||
--------------------------------------------------------
|
||||
|
||||
if ItemTextNextPageButton
|
||||
and ItemTextScrollFrame then
|
||||
|
||||
SkinArrowButton(
|
||||
ItemTextNextPageButton,
|
||||
"right",
|
||||
18
|
||||
)
|
||||
|
||||
|
||||
ItemTextNextPageButton:ClearAllPoints()
|
||||
|
||||
ItemTextNextPageButton:SetPoint(
|
||||
"TOPRIGHT",
|
||||
ItemTextScrollFrame,
|
||||
"BOTTOMRIGHT",
|
||||
0,
|
||||
-6
|
||||
)
|
||||
|
||||
|
||||
ItemTextNextPageButton.Show =
|
||||
function(self)
|
||||
|
||||
self:Enable()
|
||||
|
||||
end
|
||||
|
||||
|
||||
ItemTextNextPageButton.Hide =
|
||||
function(self)
|
||||
|
||||
self:Disable()
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Keep scrollbar visible
|
||||
--------------------------------------------------------
|
||||
|
||||
if ItemTextScrollFrame
|
||||
and ItemTextScrollFrameScrollBar then
|
||||
|
||||
ItemTextScrollFrame:Show()
|
||||
|
||||
ItemTextScrollFrameScrollBar:Show()
|
||||
|
||||
|
||||
if ItemTextScrollFrameScrollBarScrollUpButton then
|
||||
|
||||
ItemTextScrollFrameScrollBarScrollUpButton:Show()
|
||||
|
||||
end
|
||||
|
||||
|
||||
if ItemTextScrollFrameScrollBarScrollDownButton then
|
||||
|
||||
ItemTextScrollFrameScrollBarScrollDownButton:Show()
|
||||
|
||||
end
|
||||
|
||||
|
||||
ItemTextScrollFrame.Show =
|
||||
function(self)
|
||||
end
|
||||
|
||||
|
||||
ItemTextScrollFrame.Hide =
|
||||
function(self)
|
||||
end
|
||||
|
||||
|
||||
ItemTextScrollFrameScrollBar.Show =
|
||||
function(self)
|
||||
|
||||
if self.thumb then
|
||||
self.thumb:Show()
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
ItemTextScrollFrameScrollBar.Hide =
|
||||
function(self)
|
||||
|
||||
if self.thumb then
|
||||
self.thumb:Hide()
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
if ItemTextScrollFrameScrollBarScrollUpButton then
|
||||
|
||||
ItemTextScrollFrameScrollBarScrollUpButton.Show =
|
||||
function(self)
|
||||
|
||||
if self:GetParent():GetValue() ~= 0 then
|
||||
self:Enable()
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
ItemTextScrollFrameScrollBarScrollUpButton.Hide =
|
||||
function(self)
|
||||
|
||||
self:Disable()
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
if ItemTextScrollFrameScrollBarScrollDownButton then
|
||||
|
||||
ItemTextScrollFrameScrollBarScrollDownButton.Show =
|
||||
function(self)
|
||||
|
||||
self:Enable()
|
||||
|
||||
end
|
||||
|
||||
|
||||
ItemTextScrollFrameScrollBarScrollDownButton.Hide =
|
||||
function(self)
|
||||
|
||||
self:Disable()
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Update colors when the book opens
|
||||
--------------------------------------------------------
|
||||
|
||||
ItemTextFrame:HookScript(
|
||||
"OnShow",
|
||||
function()
|
||||
|
||||
SetItemTextColors()
|
||||
|
||||
if bg then
|
||||
|
||||
bg:SetTexture(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0.50
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
if ItemTextMaterialTopLeft then
|
||||
ItemTextMaterialTopLeft:Hide()
|
||||
end
|
||||
|
||||
if ItemTextMaterialTopRight then
|
||||
ItemTextMaterialTopRight:Hide()
|
||||
end
|
||||
|
||||
if ItemTextMaterialBotLeft then
|
||||
ItemTextMaterialBotLeft:Hide()
|
||||
end
|
||||
|
||||
if ItemTextMaterialBotRight then
|
||||
ItemTextMaterialBotRight:Hide()
|
||||
end
|
||||
|
||||
end
|
||||
)
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Initial colors
|
||||
--------------------------------------------------------
|
||||
|
||||
SetItemTextColors()
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
-- Debug
|
||||
--------------------------------------------------------
|
||||
|
||||
if DQB.Debug then
|
||||
|
||||
DQB:Debug(
|
||||
"itemtext module applied"
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
end)
|
||||
Reference in New Issue
Block a user