b53f36a794
- hauts faits (Achievements.lua) : camelot n'en a pas, la fenetre du client se deplace par son en-tete, place gardee et reposee apres UpdateUIPanelPositions - tutoriel (Tutorial.lua) : fenetre, bouton d'alerte et compteur masques - horloge (TimeManager.lua) : ButtonFrameTemplate 220 x 240, globe en portrait, encart, menus d'alarme en style 1 (Gb.MenuStyle1), case d'alarme - carte de zone (ZoneMap.lua) : cadre battlefieldminimap-border, croix rouge, alpha suivant l'opacite (image retiree : le client la repose) - cabine d'essayage (DressUp.lua) : ButtonFrameTemplate 450 x 545, fond de race, fleches et rotation a la souris - inspection (Inspect.lua) : 338 x 424, deplacable, portrait 48, onglets lateraux, page du personnage a la camelot (cadre Char-Paperdoll), page JcJ en cartes avec en tete le nom du rang et l'embleme de la faction sous son insigne, Civilian sans rang ni donnees ; bouton Talents - talents de l'inspecte (Talents.lua) : notre fenetre en lecture seule, compacte (colonnes de 260, sans portes ni bande du bas), sans recherche ni points ; elle ne suit pas l'inspection - JcJ (PvPTab.lua) : seuils de rang lus du serveur (canal d'addon PVPTITLES de mod-pvp-titles-ext : RANKS, REQ), sans serveur les seules victoires ; etat Deshonore (DISHONOR) : rang et temps restant, blason brise de la faction a la place de l'embleme - debuff Deshonore dessine par ForeverUI en tete des affaiblissements (Buffs.lua), aucun sort ni DBC requis - art : blasons brises honor-dishonored-alliance / -horde (cuits par tools/cuire_deshonneur.py), battlefieldminimap, char-paperdoll-* - /fui croix : temoin de la croix de la feuille de personnage - banc : inspection, talents compacts, tete JcJ, canal du serveur, blason brise, debuff dessine, temoin de la croix - README : lignes JcJ, fenetres secondaires, ameliorations et affaiblissements Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
87 lines
2.9 KiB
Lua
87 lines
2.9 KiB
Lua
-- ForeverUI : la fenetre des hauts faits, deplacable (demande de
|
|
-- l'utilisateur, 2026-09-28 : « Hauts faits : ils n'existent pas dans
|
|
-- Camelot, rend juste la fenetre deplacable »).
|
|
--
|
|
-- RELEVE -- CE QUE LE CLIENT CHARGE (Blizzard_AchievementUI.xml / .lua de
|
|
-- 3.3.5, charge a la demande) :
|
|
-- AchievementFrame 768 x 500, non deplacable ; AchievementFrameHeader
|
|
-- 726 x 106 (souris active), pose au-dessus de la fenetre ;
|
|
-- Blizzard_AchievementUI.lua, ligne 1 : UIPanelWindows["AchievementFrame"]
|
|
-- = { area = "doublewide", pushable = 0, width = 840, xoffset = 80,
|
|
-- whileDead = 1 } -- le systeme de panneaux la repose a gauche
|
|
-- (FramePositionDelegate:UpdateUIPanelPositions, UIParent.lua) a chaque
|
|
-- ouverture ou fermeture d'un panneau.
|
|
--
|
|
-- RELEVE -- CAMELOT : blizzard_achievementui.toc ne charge ses fichiers que
|
|
-- pour mainline, tbc, wrath, cata et mists -- pas camelot.
|
|
--
|
|
-- CE QUI EST FAIT. La fenetre garde l'allure de 3.3.5 et reste un panneau
|
|
-- (Echap la ferme, elle pousse les autres comme avant). Son en-tete sert de
|
|
-- poignee ; la place est retenue dans ForeverUIDB.positions (cle
|
|
-- « hautsfaits », haut-centre de la fenetre, comme Superposition.lua) et
|
|
-- reposee apres le systeme de panneaux (UpdateUIPanelPositions) et a
|
|
-- l'ouverture. Rien n'y est securise : le deplacement marche aussi en
|
|
-- combat.
|
|
|
|
local ForeverUI = ForeverUI or {}
|
|
_G.ForeverUI = ForeverUI
|
|
|
|
local A = {}
|
|
ForeverUI.HautsFaits = A
|
|
|
|
local CLE = "hautsfaits"
|
|
|
|
local function positions()
|
|
ForeverUIDB = ForeverUIDB or {}
|
|
ForeverUIDB.positions = ForeverUIDB.positions or {}
|
|
return ForeverUIDB.positions
|
|
end
|
|
|
|
function A.Reposer()
|
|
local f = AchievementFrame
|
|
local p = positions()[CLE]
|
|
if not f or not p then return end
|
|
f:ClearAllPoints()
|
|
f:SetPoint("TOP", UIParent, "TOP", p.x, p.y)
|
|
end
|
|
|
|
function A.Habiller()
|
|
local f = AchievementFrame
|
|
local poignee = AchievementFrameHeader
|
|
if not f or not poignee or f.foreverDeplacable then return end
|
|
f.foreverDeplacable = true
|
|
f:SetMovable(true)
|
|
f:SetClampedToScreen(true)
|
|
poignee:EnableMouse(true)
|
|
poignee:RegisterForDrag("LeftButton")
|
|
poignee:SetScript("OnDragStart", function()
|
|
f:StartMoving()
|
|
end)
|
|
poignee:SetScript("OnDragStop", function()
|
|
f:StopMovingOrSizing()
|
|
local cx = f:GetCenter()
|
|
local ux = UIParent:GetCenter()
|
|
local x, y = cx - ux, f:GetTop() - UIParent:GetTop()
|
|
f:ClearAllPoints()
|
|
f:SetPoint("TOP", UIParent, "TOP", x, y)
|
|
-- la place est a nous : le client ne la retient pas en plus
|
|
if f.SetUserPlaced then f:SetUserPlaced(false) end
|
|
positions()[CLE] = { x = x, y = y }
|
|
end)
|
|
f:HookScript("OnShow", A.Reposer)
|
|
hooksecurefunc("UpdateUIPanelPositions", function()
|
|
if f:IsShown() then A.Reposer() end
|
|
end)
|
|
A.Reposer()
|
|
end
|
|
|
|
A.Habiller()
|
|
|
|
local veille = CreateFrame("Frame")
|
|
veille:RegisterEvent("ADDON_LOADED")
|
|
veille:SetScript("OnEvent", function(_, _, nom)
|
|
if nom == "Blizzard_AchievementUI" then
|
|
A.Habiller()
|
|
end
|
|
end)
|