mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-02 19:50:02 +00:00
panel: add addon switcher and tooltips to system info
This commit is contained in:
@@ -0,0 +1,217 @@
|
||||
pfUI:RegisterModule("addons", function ()
|
||||
-- dialog
|
||||
pfUI.addons = CreateFrame("Frame", "pfAddons", UIParent)
|
||||
pfUI.addons:SetHeight(400)
|
||||
pfUI.addons:SetWidth(400)
|
||||
pfUI.addons:SetPoint("CENTER", 0,0)
|
||||
pfUI.addons:EnableMouseWheel(1)
|
||||
pfUI.addons:SetBackdrop(pfUI.backdrop)
|
||||
pfUI.addons:SetBackdropColor(0,0,0,.8)
|
||||
pfUI.addons:SetMovable(true)
|
||||
pfUI.addons:EnableMouse(true)
|
||||
pfUI.addons:SetScript("OnMouseDown",function()
|
||||
pfUI.addons:StartMoving()
|
||||
end)
|
||||
|
||||
pfUI.addons:SetScript("OnMouseUp",function()
|
||||
pfUI.addons:StopMovingOrSizing()
|
||||
end)
|
||||
pfUI.addons:Hide()
|
||||
pfUI.addons:SetScript("OnHide", function()
|
||||
if pfUI.addons.hasChanged then
|
||||
pfUI.gui.reloadDialog:Show()
|
||||
pfUI.addons.hasChanged = nil
|
||||
end
|
||||
end)
|
||||
tinsert(UISpecialFrames,"pfAddons")
|
||||
|
||||
-- title
|
||||
pfUI.addons.caption = pfUI.addons:CreateFontString("Status", "LOW", "GameFontNormal")
|
||||
pfUI.addons.caption:SetFont("Interface\\AddOns\\pfUI\\fonts\\" .. pfUI_config.global.font_default .. ".ttf", pfUI_config.global.font_size + 4, "OUTLINE")
|
||||
pfUI.addons.caption:SetTextColor(.2, 1, .8, 1)
|
||||
pfUI.addons.caption:SetPoint("TOP", 0, -10)
|
||||
pfUI.addons.caption:SetJustifyH("LEFT")
|
||||
pfUI.addons.caption:SetText("Addon List")
|
||||
|
||||
pfUI.addons.close = CreateFrame("Button", "pfBagClose", pfUI.addons)
|
||||
pfUI.addons.close:SetPoint("TOPRIGHT", -pfUI_config.bars.border*2,-pfUI_config.bars.border*2 )
|
||||
pfUI.addons.close:SetBackdrop(pfUI.backdrop)
|
||||
pfUI.addons.close:SetHeight(15)
|
||||
pfUI.addons.close:SetWidth(15)
|
||||
pfUI.addons.close.texture = pfUI.addons.close:CreateTexture("pfBagClose")
|
||||
pfUI.addons.close.texture:SetTexture("Interface\\AddOns\\pfUI\\img\\close")
|
||||
pfUI.addons.close.texture:ClearAllPoints()
|
||||
pfUI.addons.close.texture:SetPoint("TOPLEFT", pfUI.addons.close, "TOPLEFT", 4, -4)
|
||||
pfUI.addons.close.texture:SetPoint("BOTTOMRIGHT", pfUI.addons.close, "BOTTOMRIGHT", -4, 4)
|
||||
pfUI.addons.close.texture:SetVertexColor(1,.25,.25,1)
|
||||
pfUI.addons.close:SetScript("OnEnter", function ()
|
||||
pfUI.addons.close:SetBackdrop(pfUI.backdrop_col)
|
||||
pfUI.addons.close:SetBackdropBorderColor(1,.25,.25,1)
|
||||
end)
|
||||
|
||||
pfUI.addons.close:SetScript("OnLeave", function ()
|
||||
pfUI.addons.close:SetBackdrop(pfUI.backdrop)
|
||||
pfUI.addons.close:SetBackdropBorderColor(1,1,1,1)
|
||||
end)
|
||||
|
||||
pfUI.addons.close:SetScript("OnClick", function()
|
||||
pfUI.addons:Hide()
|
||||
end)
|
||||
|
||||
-- list
|
||||
pfUI.addons.list = CreateFrame("Frame", "pfAddonList", UIParent)
|
||||
pfUI.addons.list:SetHeight(GetNumAddOns() * 25)
|
||||
pfUI.addons.list:SetWidth(350)
|
||||
pfUI.addons.list:SetPoint("CENTER", 0,0)
|
||||
|
||||
for i=1, GetNumAddOns() do
|
||||
local aname, atitle, anote = GetAddOnInfo(i)
|
||||
|
||||
-- basic frame
|
||||
pfUI.addons.list[i] = CreateFrame("Frame", nil, pfUI.addons.list)
|
||||
local frame = pfUI.addons.list[i]
|
||||
frame:SetWidth(350)
|
||||
frame:SetHeight(25)
|
||||
frame:SetBackdrop(pfUI.backdrop_underline)
|
||||
frame:SetBackdropBorderColor(.1,.1,.1,1)
|
||||
frame:SetPoint("TOPLEFT", 12.5, i * -25 + 25)
|
||||
|
||||
-- caption
|
||||
frame.caption = frame:CreateFontString("Status", "LOW", "GameFontNormal")
|
||||
frame.caption:SetFont("Interface\\AddOns\\pfUI\\fonts\\" .. pfUI_config.global.font_default .. ".ttf", pfUI_config.global.font_size + 2, "OUTLINE")
|
||||
frame.caption:SetAllPoints(frame)
|
||||
frame.caption:SetFontObject(GameFontWhite)
|
||||
frame.caption:SetJustifyH("LEFT")
|
||||
frame.caption:SetText(atitle)
|
||||
|
||||
-- input field
|
||||
frame.input = CreateFrame("CheckButton", nil, frame, "UICheckButtonTemplate")
|
||||
frame.input:SetNormalTexture("")
|
||||
frame.input:SetPushedTexture("")
|
||||
frame.input:SetHighlightTexture("")
|
||||
frame.input:SetBackdrop(pfUI.backdrop)
|
||||
frame.input:SetWidth(14)
|
||||
frame.input:SetHeight(14)
|
||||
frame.input:SetPoint("TOPRIGHT" , 0, -4)
|
||||
frame.input:SetID(i)
|
||||
frame.input:SetScript("OnClick", function ()
|
||||
if this:GetChecked() then
|
||||
EnableAddOn(this:GetID())
|
||||
else
|
||||
DisableAddOn(this:GetID())
|
||||
end
|
||||
pfUI.addons.hasChanged = true
|
||||
end)
|
||||
|
||||
if IsAddOnLoaded(i) then
|
||||
frame.input:SetChecked()
|
||||
frame.caption:SetAlpha(1)
|
||||
else
|
||||
frame.caption:SetAlpha(.5)
|
||||
end
|
||||
end
|
||||
|
||||
pfUI.addons.scroll = CreateFrame("ScrollFrame", "pfAddonListScroll", pfUI.addons)
|
||||
pfUI.addons.scroll:SetHeight(350)
|
||||
pfUI.addons.scroll:SetWidth(375)
|
||||
pfUI.addons.scroll:SetPoint("BOTTOM", 0, 10)
|
||||
pfUI.addons.scroll:EnableMouseWheel(1)
|
||||
|
||||
pfUI.addons.scroll:SetScript("OnMouseWheel", function()
|
||||
local current = pfUI.addons.scroll:GetVerticalScroll()
|
||||
local new = current + arg1*-20
|
||||
local max = pfUI.addons.scroll:GetVerticalScrollRange()
|
||||
if new > -20 and new < max + 20 then
|
||||
pfUI.addons.scroll:SetVerticalScroll(new)
|
||||
end
|
||||
|
||||
if new < 0 then pfUI.addons.scroll:SetVerticalScroll(0) end
|
||||
if new > max then pfUI.addons.scroll:SetVerticalScroll(max) end
|
||||
end)
|
||||
|
||||
pfUI.addons.scroll:SetScrollChild(pfUI.addons.list)
|
||||
pfUI.addons.scroll:SetVerticalScroll(0)
|
||||
|
||||
function pfUI.addons.scroll:UpdateScrollState()
|
||||
local current = ceil(pfUI.addons.scroll:GetVerticalScroll() / UIParent:GetEffectiveScale())
|
||||
local max = ceil(pfUI.addons.scroll:GetVerticalScrollRange())
|
||||
pfUI.addons.deco.up:Show()
|
||||
pfUI.addons.deco.down:Show()
|
||||
|
||||
if max > 20 then
|
||||
if current < max then
|
||||
pfUI.addons.deco.down.visible = 1
|
||||
pfUI.addons.deco.down:Show()
|
||||
pfUI.addons.deco.down:SetAlpha(.2)
|
||||
end
|
||||
if current > 5 then
|
||||
pfUI.addons.deco.up.visible = 1
|
||||
pfUI.addons.deco.up:Show()
|
||||
pfUI.addons.deco.up:SetAlpha(.2)
|
||||
end
|
||||
if current > max - 5 then
|
||||
pfUI.addons.deco.down.visible = 0
|
||||
end
|
||||
if current < 5 then
|
||||
pfUI.addons.deco.up.visible = 0
|
||||
end
|
||||
else
|
||||
pfUI.addons.deco.up.visible = 0
|
||||
pfUI.addons.deco.down.visible = 0
|
||||
end
|
||||
end
|
||||
|
||||
-- [[ config section ]] --
|
||||
pfUI.addons.deco = CreateFrame("Frame", nil, pfUI.addons)
|
||||
pfUI.addons.deco:ClearAllPoints()
|
||||
pfUI.addons.deco:SetPoint("TOPLEFT", pfUI.addons.scroll, "TOPLEFT", -5, 5)
|
||||
pfUI.addons.deco:SetPoint("BOTTOMRIGHT", pfUI.addons.scroll, "BOTTOMRIGHT", 5, -5)
|
||||
pfUI.addons.deco:SetBackdrop(pfUI.backdrop)
|
||||
pfUI.addons.deco:SetBackdropColor(0,0,0,.50)
|
||||
|
||||
pfUI.addons.deco.up = CreateFrame("Frame", nil, pfUI.addons.deco)
|
||||
pfUI.addons.deco.up:SetPoint("TOPRIGHT", 0,0)
|
||||
pfUI.addons.deco.up:SetHeight(16)
|
||||
pfUI.addons.deco.up:SetWidth(pfUI.addons.deco:GetWidth())
|
||||
pfUI.addons.deco.up:SetAlpha(0)
|
||||
pfUI.addons.deco.up.visible = 0
|
||||
pfUI.addons.deco.up.texture = pfUI.addons.deco.up:CreateTexture()
|
||||
pfUI.addons.deco.up.texture:SetAllPoints()
|
||||
pfUI.addons.deco.up.texture:SetTexture("Interface\\AddOns\\pfUI\\img\\gradient_up")
|
||||
pfUI.addons.deco.up.texture:SetVertexColor(.2,1,.8)
|
||||
pfUI.addons.deco.up:SetScript("OnUpdate", function()
|
||||
pfUI.addons.scroll:UpdateScrollState()
|
||||
if pfUI.addons.deco.up.visible == 0 and pfUI.addons.deco.up:GetAlpha() > 0 then
|
||||
pfUI.addons.deco.up:SetAlpha(pfUI.addons.deco.up:GetAlpha() - 0.01)
|
||||
elseif pfUI.addons.deco.up.visible == 0 and pfUI.addons.deco.up:GetAlpha() <= 0 then
|
||||
pfUI.addons.deco.up:Hide()
|
||||
end
|
||||
|
||||
if pfUI.addons.deco.up.visible == 1 and pfUI.addons.deco.up:GetAlpha() > .15 then
|
||||
pfUI.addons.deco.up:SetAlpha(pfUI.addons.deco.up:GetAlpha() - 0.01)
|
||||
end
|
||||
end)
|
||||
|
||||
pfUI.addons.deco.down = CreateFrame("Frame", nil, pfUI.addons.deco)
|
||||
pfUI.addons.deco.down:SetPoint("BOTTOMRIGHT", 0,0)
|
||||
pfUI.addons.deco.down:SetHeight(16)
|
||||
pfUI.addons.deco.down:SetWidth(pfUI.addons.deco:GetWidth())
|
||||
pfUI.addons.deco.down:SetAlpha(0)
|
||||
pfUI.addons.deco.down.visible = 0
|
||||
pfUI.addons.deco.down.texture = pfUI.addons.deco.down:CreateTexture()
|
||||
pfUI.addons.deco.down.texture:SetAllPoints()
|
||||
pfUI.addons.deco.down.texture:SetTexture("Interface\\AddOns\\pfUI\\img\\gradient_down")
|
||||
pfUI.addons.deco.down.texture:SetVertexColor(.2,1,.8)
|
||||
pfUI.addons.deco.down:SetScript("OnUpdate", function()
|
||||
pfUI.addons.scroll:UpdateScrollState()
|
||||
if pfUI.addons.deco.down.visible == 0 and pfUI.addons.deco.down:GetAlpha() > 0 then
|
||||
pfUI.addons.deco.down:SetAlpha(pfUI.addons.deco.down:GetAlpha() - 0.01)
|
||||
elseif pfUI.addons.deco.down.visible == 0 and pfUI.addons.deco.down:GetAlpha() <= 0 then
|
||||
pfUI.addons.deco.down:Hide()
|
||||
end
|
||||
|
||||
if pfUI.addons.deco.down.visible == 1 and pfUI.addons.deco.down:GetAlpha() > .15 then
|
||||
pfUI.addons.deco.down:SetAlpha(pfUI.addons.deco.down:GetAlpha() - 0.01)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
+32
-1
@@ -98,9 +98,40 @@ pfUI:RegisterModule("panel", function ()
|
||||
pfUI.panel:OutputPanel("time", date("%H:%M:%S"), tooltip, click)
|
||||
|
||||
-- lag fps
|
||||
local tooltip = function ()
|
||||
local active = 0
|
||||
GameTooltip:ClearLines()
|
||||
GameTooltip:SetOwner(this, "ANCHOR_NONE")
|
||||
GameTooltip:AddLine("|cff555555Systeminfo")
|
||||
for i=1, GetNumAddOns() do
|
||||
if IsAddOnLoaded(i) then
|
||||
active = active + 1
|
||||
end
|
||||
end
|
||||
GameTooltip:AddDoubleLine("Active Addons", "|cffffffff" .. active .. "|cff555555 / |cffffffff" .. GetNumAddOns())
|
||||
GameTooltip:AddLine(" ")
|
||||
local nin, nout, nping = GetNetStats()
|
||||
GameTooltip:AddDoubleLine("Network Down", "|cffffffff" .. round(nin,1) .. "KB/s")
|
||||
GameTooltip:AddDoubleLine("Network Up", "|cffffffff" .. round(nout,1) .. "KB/s")
|
||||
GameTooltip:AddDoubleLine("Network Latency", "|cffffffff" .. nping .. "ms")
|
||||
GameTooltip:AddLine(" ")
|
||||
GameTooltip:AddDoubleLine("Graphic Renderer", "|cffffffff" .. GetCVar("gxApi"))
|
||||
GameTooltip:AddDoubleLine("Screen Resolution", "|cffffffff" .. GetCVar("gxResolution"))
|
||||
GameTooltip:AddDoubleLine("UI-Scale", "|cffffffff" .. round(UIParent:GetEffectiveScale(),2))
|
||||
GameTooltip:Show()
|
||||
end
|
||||
|
||||
local click = function ()
|
||||
if pfUI.addons:IsShown() then
|
||||
pfUI.addons:Hide()
|
||||
else
|
||||
pfUI.addons:Show()
|
||||
end
|
||||
end
|
||||
|
||||
local _, _, lag = GetNetStats()
|
||||
local fps = floor(GetFramerate())
|
||||
pfUI.panel:OutputPanel("fps", floor(GetFramerate()) .. " fps & " .. lag .. " ms")
|
||||
pfUI.panel:OutputPanel("fps", floor(GetFramerate()) .. " fps & " .. lag .. " ms", tooltip, click)
|
||||
end
|
||||
end)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user