- the auction house end to end: right-clicking an auctioneer opens Browse/Bids/Auctions on the server's reply — search, the category tree from your own DBCs, the reference's 50-a-page pager, multi-key sorting (directions corrected at the bytes), bid/buyout, the sell slot with deposit and duration, cancel with its fee popup; prices sit on the reference's own money-frame kit in lined-up columns, the twenty auction messages split refusals-red / outcomes-to-chat, and a won or sold auction reads as a proper mail receipt — the window's Lua re-worded in our own terms after the overlap ratchet caught the first cut leaning on the reference's text - the PvP honor system whole: the Honor tab and the inspect page over a real wire model, with current rank and highest-ever rank correctly two different fields - a day of reported fixes: WASD survives a /logout re-entry, addon settings save on a window close and Cmd+Q (exactly once — a mac close could fire the tail twice), clams open again, random-enchant items name themselves on every surface, the loot window's rows hold their seats with legible counts, idle players stop sinking through building floors, the shooter re-pulls between Auto Shots, portraits loosen ~19% to the client's own aspect-1.0 matrix, and big creatures thump the camera off the CameraShakes table - character select clicks like 1.12 — captions whiten on hover, buttons fire on release, Humans face straight ahead off the stage bone's real yaw, the facing is per-character, and hunter/warlock pets stand beside you at their family-ramp size with their own emitters (the imp's flames), the Voidwalker's sequence-hidden shackles culled - the smaller player-facing set: nameplate on/off rows in Options with the CanAttack category gate (emissaries stop plating), the bonus bar slides up with igBonusBarOpen, the camera's framing height glides on a shapeshift, the open letter evicts the centre seat, the far-band fog hull stops printing a pale horizon stripe at low view distance, the guide arrow is gold with per-source rim art, error text fades through its shadow too, and /convertraid converts the party - README: the auction house and PvP honor move out of "not built yet" Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
375 lines
24 KiB
XML
375 lines
24 KiB
XML
<Ui>
|
|
<!--
|
|
The stance/shapeshift bar (vanilla ShapeshiftBarFrame, ref-BonusActionBarFrame.xml/.lua —
|
|
extracted from patch.MPQ). Warrior stances, druid forms, rogue Stealth: one CheckButton per
|
|
known form, checked = the ACTIVE form (the descriptor's UNIT_FIELD_BYTES_1 byte-2 form,
|
|
wow-re bonusbar-shapeshift.md), grey icon when not castable, cooldown swipe, click casts
|
|
the form (`crate::ui_shapeshift` drains CastShapeshiftForm onto the wire).
|
|
|
|
Geometry QUOTED from the ref's ShapeshiftBar_UpdatePosition (BonusActionBarFrame.lua
|
|
l.229-251), which forks on whether MultiBarBottomLeft is up: buttons 30x30, button1 at frame
|
|
BOTTOMLEFT +(11,3), chained +7; NormalTexture UI-Quickslot2 at the RAISED mode's 50x50 (ref
|
|
l.236-237), CENTER (0,-1) like the action template. Max 10 slots (NUM_SHAPESHIFT_SLOTS).
|
|
|
|
THE SEAT IS NOT THIS FILE'S — the XML anchor below (MainMenuBar TOPLEFT +(30,45)) is only
|
|
the value the manage pass computes with the bottom-left bar up, written statically so the
|
|
frame is somewhere sane before the first pass runs. `ShapeshiftBarFrame` is a managed row
|
|
(UIParent.xml: baseY 0, bottomLeft 45, xOffset 30), so the pass re-derives +45 raised and
|
|
+0 unraised — the ref's own two positions — and re-seats the frame on every bar change. That
|
|
used to be a distinction without a difference (0270's bottom bars were always on, so raised
|
|
was the only state); decision 1500 made all four extra bars player options, and the unraised
|
|
state is now reachable. It is covered, and `multibar_stance_tests` pins both seats.
|
|
|
|
The ART half of that same fork IS this file's, and it is `ShapeshiftBar_UpdatePosition` in
|
|
the script below: the ref's unraised branch also shows the ShapeshiftBarEnds/Middle shelf
|
|
strips and grows each button's ring from 50x50 to 64x64. That branch was dead code while the
|
|
bottom bars were always on, and 1500 made it the DEFAULT — every form class meets the
|
|
unraised bar on a fresh character — so a shelf-less bar would be the shipped look rather than
|
|
an edge case. It rides `UIParent_RegisterManagedPositionListener` (decision 1499's
|
|
after-every-recompute hook, the same one the bag stack uses) so the art settles when the pass
|
|
that decides raised-ness has finished, and it needs no edit to UIParent.xml.
|
|
|
|
Ref divergences (deliberate):
|
|
- ONE refresh event: the app diffs the whole pushed form list (identity, active, castable,
|
|
cooldown) and fires UPDATE_SHAPESHIFT_FORMS on any change — so the ref's separate
|
|
Update/UpdateState split over six events (SPELL_UPDATE_COOLDOWN/_USABLE,
|
|
PLAYER_AURAS_CHANGED, UPDATE_INVENTORY_ALERTS "Wha??", ACTIONBAR_PAGE_CHANGED) collapses
|
|
into Update on UPDATE_SHAPESHIFT_FORMS + PLAYER_ENTERING_WORLD.
|
|
- No lastSelected bookkeeping (ref ShapeshiftBar_ChangeForm) — checked state is always
|
|
re-derived from the pushed `isActive`, never locally latched: the server's form byte is
|
|
the truth and the app re-pushes on its every change. (Verified dead in the ref itself:
|
|
`lastSelected` is written twice and read nowhere in the shipped FrameXML.)
|
|
-->
|
|
<Script><![CDATA[
|
|
NUM_SHAPESHIFT_SLOTS = 10
|
|
|
|
-- RIGHT-CLICK IS DEAD HERE, and deliberately (decision 1030 reverting 1027). The ref's
|
|
-- ShapeshiftButtonTemplate registers NOTHING: it inherits ActionButtonTemplate and then
|
|
-- overrides <OnLoad> with a body that only scales the cooldown, so the
|
|
-- `RegisterForClicks("LeftButtonUp","RightButtonUp")` that ActionButton_OnLoad gives every
|
|
-- other action-style button (ref ActionButton.lua:109) is lost and the default
|
|
-- {LeftButtonUp} stands. A right-press therefore neither flashes the pushed art
|
|
-- (0x77924b gates that on the same mask) nor casts. It reads like a Blizzard oversight
|
|
-- and it is the only bar that behaves this way — reproduced anyway, because the director
|
|
-- checked it against the reference and called faithful.
|
|
function BenillaShapeshiftButton_OnLoad(button, index)
|
|
button.index = index
|
|
button.icon = getglobal(button:GetName() .. "Icon")
|
|
button.cooldown = getglobal(button:GetName() .. "Cooldown")
|
|
end
|
|
|
|
-- The CheckButton widget toggles itself BEFORE OnClick fires (the widget contract); the
|
|
-- ref immediately reverts that toggle (ShapeshiftButtonTemplate OnClick, ref-
|
|
-- BonusActionBarFrame.xml l.31-38), so the checked ring never follows the click — only
|
|
-- the isActive repaint. That is what keeps a warrior's ACTIVE stance lit through the
|
|
-- click's silent wire no-op (stances never cancel — the 0x4b4963 guard), and a druid
|
|
-- form/Stealth lit until the server actually confirms the shift-out. The revert is
|
|
-- unconditional, which is why no click here can leave a lit form dark — unlike the pet
|
|
-- bar's flat SetChecked(0), which needs a repaint to be correct.
|
|
function BenillaShapeshiftButton_OnClick(button)
|
|
if button:GetChecked() then
|
|
button:SetChecked(nil)
|
|
else
|
|
button:SetChecked(1)
|
|
end
|
|
CastShapeshiftForm(button.index)
|
|
end
|
|
|
|
-- Hover: the form's spell tooltip through the engine channel (ref ShapeshiftBar's
|
|
-- GameTooltip:SetShapeshift; decision 0274 P2). Anchor: the ref's ShapeshiftButton
|
|
-- OnEnter (BonusActionBarFrame.xml l.40-45) takes the default corner when UberTooltips
|
|
-- is "1" — its byte-verified stock default — and sits beside the button otherwise. Like
|
|
-- the action bar's, that fork was collapsed to the "1" leg until B230 registered the CVar
|
|
-- (cvars.rs carries the byte-read); the stock look is unchanged, the off leg is reachable.
|
|
function BenillaShapeshiftButton_OnEnter(button)
|
|
if not GameTooltip then return end -- engine tests load file subsets
|
|
if GetCVar("UberTooltips") == "0" then
|
|
GameTooltip:SetOwner(button, "ANCHOR_RIGHT")
|
|
else
|
|
GameTooltip_SetDefaultAnchor(GameTooltip, button)
|
|
end
|
|
GameTooltip:SetShapeshift(button.index)
|
|
end
|
|
|
|
function BenillaShapeshiftButton_OnLeave(button)
|
|
GameTooltip:Hide()
|
|
end
|
|
|
|
-- Ref ShapeshiftBar_Update + ShapeshiftBar_UpdateState fused (SCOPE note above): size the
|
|
-- bar to the form count (hide the whole frame at 0 — a formless class never shows it),
|
|
-- then paint each button — icon, checked (active), the 1.0/0.4 castable tint (ref l.210-214),
|
|
-- cooldown swipe (CooldownFrame_SetTimer, Cooldown.xml's shared transcription).
|
|
function ShapeshiftBar_Update()
|
|
local numForms = GetNumShapeshiftForms()
|
|
if numForms > 0 then
|
|
-- ── The shelf's LENGTH is the form count (ref l.161-175) ─────────────────────
|
|
-- The three strips are DECLARED as the >2-form chain (Left → Middle → Right), so
|
|
-- the one- and two-form shelves have to re-point the end cap. Hiding the middle
|
|
-- strip does NOT close its gap — a hidden region still resolves its rect, here
|
|
-- and in the reference — so without this the 42x50 right cap sits 38px past the
|
|
-- last button as a stray empty recess: a rogue's Stealth with a second, always-
|
|
-- empty slot beside it. One form pulls the cap back INSIDE the left cap (+12, a
|
|
-- 54px shelf around the single button); two butt the caps together; past two the
|
|
-- middle strip carries one slot per extra form and the cap chains off it.
|
|
if numForms == 1 then
|
|
ShapeshiftBarRight:SetPoint("LEFT", ShapeshiftBarLeft, "LEFT", 12, 0)
|
|
elseif numForms == 2 then
|
|
ShapeshiftBarRight:SetPoint("LEFT", ShapeshiftBarLeft, "RIGHT", 0, 0)
|
|
else
|
|
ShapeshiftBarMiddle:SetPoint("LEFT", ShapeshiftBarLeft, "RIGHT", 0, 0)
|
|
ShapeshiftBarMiddle:SetWidth(38 * (numForms - 2))
|
|
ShapeshiftBarMiddle:SetTexCoord(0, numForms - 2, 0, 1)
|
|
ShapeshiftBarRight:SetPoint("LEFT", ShapeshiftBarMiddle, "RIGHT", 0, 0)
|
|
end
|
|
ShapeshiftBarFrame:Show()
|
|
else
|
|
ShapeshiftBarFrame:Hide()
|
|
end
|
|
for i = 1, NUM_SHAPESHIFT_SLOTS do
|
|
local button = getglobal("ShapeshiftButton" .. i)
|
|
if i <= numForms then
|
|
local texture, name, isActive, isCastable = GetShapeshiftFormInfo(i)
|
|
button.icon:SetTexture(texture or BENILLA_FALLBACK_ICON)
|
|
local start, duration, enable = GetShapeshiftFormCooldown(i)
|
|
CooldownFrame_SetTimer(button.cooldown, start, duration, enable)
|
|
if isActive then
|
|
button:SetChecked(1)
|
|
else
|
|
button:SetChecked(0)
|
|
end
|
|
if isCastable then
|
|
button.icon:SetVertexColor(1.0, 1.0, 1.0)
|
|
else
|
|
button.icon:SetVertexColor(0.4, 0.4, 0.4)
|
|
end
|
|
button:Show()
|
|
else
|
|
button:Hide()
|
|
end
|
|
end
|
|
-- The art depends on the form COUNT too (the middle strip's `> 2`), so it is re-derived
|
|
-- here as well as on every managed-position pass. Pure derivation, so running it twice
|
|
-- costs nothing and missing it costs a strip.
|
|
ShapeshiftBar_UpdatePosition()
|
|
end
|
|
|
|
-- ── The raised/unraised ART fork (ref ShapeshiftBar_UpdatePosition, l.229-251) ──────────
|
|
-- The reference's function does TWO things and we only owe it one. Its two SetPoints —
|
|
-- MainMenuBar TOPLEFT +(30,45) with the bottom-left multibar up, +(30,0) without — are
|
|
-- already `UIParent_ManageFramePositions`' job here: `ShapeshiftBarFrame` is a managed row
|
|
-- (baseY 0, bottomLeft 45, xOffset 30), which IS those two positions, and a second
|
|
-- SetPoint from this file would be a competing answer to a question already answered.
|
|
-- What the pass does NOT carry is the art half, and that is this:
|
|
--
|
|
-- raised — the three shelf strips hidden, each button's ring 50x50. The shelf art IS
|
|
-- the bar's border and only reads as one while the bar sits on the main bar;
|
|
-- a row up it would draw across whatever is underneath (the same rule the
|
|
-- pass applies to the pet bar's sliding strips).
|
|
-- unraised — the two END-CAPS shown, the MIDDLE strip shown only past two forms, each
|
|
-- button's ring 64x64.
|
|
--
|
|
-- The `> 2` on the middle strip is the ref's own and easy to miss: a two-form class (a
|
|
-- priest with Shadowform, a warrior before Berserker) gets the end caps and no middle.
|
|
--
|
|
-- **This became load-bearing with 1500.** While the bottom bars were always on (0270) the
|
|
-- raised branch was the only reachable state and this whole fork was dead code; now every
|
|
-- form class sees the UNRAISED bar on a fresh character, so the shelf-less version would be
|
|
-- the shipped default look rather than an edge case.
|
|
--
|
|
-- It keeps the reference's NAME because the corpus replaces that name wholesale:
|
|
-- CT_BottomBar.lua:712/741 saves and overwrites `ShapeshiftBar_UpdatePosition` to take the
|
|
-- bar over. The listener below therefore calls it through the GLOBAL, so an addon that
|
|
-- replaces it really does take the art with it.
|
|
function ShapeshiftBar_UpdatePosition()
|
|
local raised = MultiBarBottomLeft and MultiBarBottomLeft:IsShown()
|
|
local ring = 64
|
|
if raised then
|
|
ring = 50
|
|
ShapeshiftBarLeft:Hide()
|
|
ShapeshiftBarMiddle:Hide()
|
|
ShapeshiftBarRight:Hide()
|
|
else
|
|
ShapeshiftBarLeft:Show()
|
|
ShapeshiftBarRight:Show()
|
|
if GetNumShapeshiftForms() > 2 then
|
|
ShapeshiftBarMiddle:Show()
|
|
else
|
|
ShapeshiftBarMiddle:Hide()
|
|
end
|
|
end
|
|
-- The ref sizes only the buttons a form occupies; ours sizes all ten. Same pixels (a
|
|
-- hidden button draws nothing) and one less thing to get wrong — a button that appears
|
|
-- later is already the right size, without this needing to run again for it.
|
|
for i = 1, NUM_SHAPESHIFT_SLOTS do
|
|
local ringTexture = getglobal("ShapeshiftButton" .. i .. "NormalTexture")
|
|
ringTexture:SetWidth(ring)
|
|
ringTexture:SetHeight(ring)
|
|
end
|
|
end
|
|
|
|
function ShapeshiftBar_OnLoad()
|
|
local frame = this
|
|
frame:RegisterEvent("PLAYER_ENTERING_WORLD")
|
|
frame:RegisterEvent("UPDATE_SHAPESHIFT_FORMS")
|
|
ShapeshiftBar_Update()
|
|
end
|
|
|
|
function ShapeshiftBar_OnEvent()
|
|
local frame = this
|
|
ShapeshiftBar_Update()
|
|
end
|
|
|
|
-- Re-derive the art after every managed-position recompute (decision 1499's hook — the same
|
|
-- after-the-pass seam the bag stack registers on). The pass is what decides whether this bar
|
|
-- is raised, so the art fork has to run when the pass has finished and not before. Called
|
|
-- through the global name so an addon replacement is honoured (see the function's comment).
|
|
-- Guarded for the harnesses that load this file without UIParent.xml, the way BagFrame.xml
|
|
-- guards its own registration.
|
|
if UIParent_RegisterManagedPositionListener then
|
|
UIParent_RegisterManagedPositionListener(function() ShapeshiftBar_UpdatePosition() end)
|
|
end
|
|
]]></Script>
|
|
|
|
<!--
|
|
One stance button (ref ShapeshiftButtonTemplate: 30x30, inherits ActionButtonTemplate's
|
|
art set): icon fills (BACKGROUND); Cooldown child (the ref SetScale(.83)s the 36px
|
|
template's — ours is sized 30x30 directly); the raised-mode 50x50 UI-Quickslot2 ring
|
|
CENTER (0,-1); the action template's pushed/highlight/checked trio.
|
|
-->
|
|
<CheckButton name="BenillaShapeshiftButtonTemplate" virtual="true">
|
|
<Size><AbsDimension x="30" y="30"/></Size>
|
|
<Layers>
|
|
<Layer level="BACKGROUND">
|
|
<Texture name="$parentIcon"/>
|
|
</Layer>
|
|
</Layers>
|
|
<Frames>
|
|
<Cooldown name="$parentCooldown" hidden="true">
|
|
<Size><AbsDimension x="30" y="30"/></Size>
|
|
<Anchors>
|
|
<Anchor point="CENTER" relativePoint="CENTER"><Offset><AbsDimension x="0" y="-1"/></Offset></Anchor>
|
|
</Anchors>
|
|
</Cooldown>
|
|
</Frames>
|
|
<NormalTexture name="$parentNormalTexture" file="Interface\Buttons\UI-Quickslot2">
|
|
<Size><AbsDimension x="50" y="50"/></Size>
|
|
<Anchors>
|
|
<Anchor point="CENTER" relativePoint="CENTER"><Offset><AbsDimension x="0" y="-1"/></Offset></Anchor>
|
|
</Anchors>
|
|
</NormalTexture>
|
|
<PushedTexture file="Interface\Buttons\UI-Quickslot-Depress"/>
|
|
<HighlightTexture file="Interface\Buttons\ButtonHilight-Square" alphaMode="ADD"/>
|
|
<CheckedTexture file="Interface\Buttons\CheckButtonHilight" alphaMode="ADD"/>
|
|
<Scripts>
|
|
<OnClick>BenillaShapeshiftButton_OnClick(self)</OnClick>
|
|
<OnEnter>BenillaShapeshiftButton_OnEnter(self)</OnEnter>
|
|
<OnLeave>BenillaShapeshiftButton_OnLeave(self)</OnLeave>
|
|
</Scripts>
|
|
</CheckButton>
|
|
|
|
<Frame name="ShapeshiftBarFrame" hidden="true">
|
|
<Size><AbsDimension x="29" y="32"/></Size>
|
|
<Anchors>
|
|
<Anchor point="BOTTOMLEFT" relativeTo="MainMenuBar" relativePoint="TOPLEFT"><Offset><AbsDimension x="30" y="45"/></Offset></Anchor>
|
|
</Anchors>
|
|
<!-- The shelf art (ref BonusActionBarFrame.xml l.220-249), declared HIDDEN.
|
|
|
|
The header above says this art "is not modeled at all" because raised mode hides it and
|
|
we are permanently raised. That reasoning was right about the PIXELS and wrong about
|
|
the NAMES: 1219/1223 settled that the reference does not choose between shown and
|
|
absent, and "we don't show it" is not a reason for it not to exist. Four frames landed
|
|
on that principle; these are the first REGIONS to, which is why the sweep that closed
|
|
the class missed them — it ran over the frames/tables ranking, and a Texture is
|
|
neither.
|
|
|
|
Two corpus addons index them, and both do pure LAYOUT — they do not use the art, they
|
|
move it, exactly the shape 1223 found for BonusActionBarFrame:
|
|
zBarEx/zMainBar.lua:288-290 SetParent(MainMenuBar) on all three
|
|
CT_BottomBar.lua:681-692 ClearAllPoints + SetPoint off-screen
|
|
Absent, `ShapeshiftBarLeft:ClearAllPoints()` is `attempt to index global` and takes the
|
|
addon's whole handler with it.
|
|
|
|
Geometry, anchor chain and TexCoords quoted whole: Left and Right are two crops of ONE
|
|
`ShapeshiftBarEnds` file (0..0.453125 and 0.453125..0.875), Middle its own, and Right
|
|
hangs off Middle's RIGHT — the >2-form chain, which is the DECLARED state only. The
|
|
cap is re-pointed per form count by `ShapeshiftBar_Update` above (the ref's l.161-175):
|
|
hiding the middle strip leaves its 38px rect behind, so the declared chain alone
|
|
strands the cap past the last button.
|
|
|
|
`hidden="true"` is the RAISED state, and it is only the pre-pass value now:
|
|
`ShapeshiftBar_UpdatePosition` (above) shows and hides all three from the bottom-left
|
|
multibar's state on every managed-position pass. Declared hidden rather than shown so a
|
|
harness that never runs the pass draws nothing new. -->
|
|
<Layers>
|
|
<Layer level="OVERLAY">
|
|
<Texture name="ShapeshiftBarLeft" file="Interface\ShapeshiftBar\ShapeshiftBarEnds" hidden="true">
|
|
<Size><AbsDimension x="45" y="50"/></Size>
|
|
<Anchors><Anchor point="BOTTOMLEFT"/></Anchors>
|
|
<TexCoords left="0" right="0.453125" top="0" bottom="1"/>
|
|
</Texture>
|
|
<Texture name="ShapeshiftBarMiddle" file="Interface\ShapeshiftBar\ShapeshiftBarMiddle" hidden="true">
|
|
<Size><AbsDimension x="38" y="50"/></Size>
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftBarLeft" relativePoint="RIGHT"/></Anchors>
|
|
<TexCoords left="0" right="1" top="0" bottom="1"/>
|
|
</Texture>
|
|
<Texture name="ShapeshiftBarRight" file="Interface\ShapeshiftBar\ShapeshiftBarEnds" hidden="true">
|
|
<Size><AbsDimension x="42" y="50"/></Size>
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftBarMiddle" relativePoint="RIGHT"/></Anchors>
|
|
<TexCoords left="0.453125" right="0.875" top="0" bottom="1"/>
|
|
</Texture>
|
|
</Layer>
|
|
</Layers>
|
|
<Frames>
|
|
<CheckButton name="ShapeshiftButton1" inherits="BenillaShapeshiftButtonTemplate">
|
|
<Anchors><Anchor point="BOTTOMLEFT" relativePoint="BOTTOMLEFT"><Offset><AbsDimension x="11" y="3"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaShapeshiftButton_OnLoad(self, 1)</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="ShapeshiftButton2" inherits="BenillaShapeshiftButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftButton1" relativePoint="RIGHT"><Offset><AbsDimension x="7" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaShapeshiftButton_OnLoad(self, 2)</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="ShapeshiftButton3" inherits="BenillaShapeshiftButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftButton2" relativePoint="RIGHT"><Offset><AbsDimension x="7" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaShapeshiftButton_OnLoad(self, 3)</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="ShapeshiftButton4" inherits="BenillaShapeshiftButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftButton3" relativePoint="RIGHT"><Offset><AbsDimension x="7" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaShapeshiftButton_OnLoad(self, 4)</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="ShapeshiftButton5" inherits="BenillaShapeshiftButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftButton4" relativePoint="RIGHT"><Offset><AbsDimension x="7" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaShapeshiftButton_OnLoad(self, 5)</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="ShapeshiftButton6" inherits="BenillaShapeshiftButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftButton5" relativePoint="RIGHT"><Offset><AbsDimension x="7" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaShapeshiftButton_OnLoad(self, 6)</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="ShapeshiftButton7" inherits="BenillaShapeshiftButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftButton6" relativePoint="RIGHT"><Offset><AbsDimension x="7" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaShapeshiftButton_OnLoad(self, 7)</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="ShapeshiftButton8" inherits="BenillaShapeshiftButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftButton7" relativePoint="RIGHT"><Offset><AbsDimension x="7" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaShapeshiftButton_OnLoad(self, 8)</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="ShapeshiftButton9" inherits="BenillaShapeshiftButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftButton8" relativePoint="RIGHT"><Offset><AbsDimension x="7" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaShapeshiftButton_OnLoad(self, 9)</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="ShapeshiftButton10" inherits="BenillaShapeshiftButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="ShapeshiftButton9" relativePoint="RIGHT"><Offset><AbsDimension x="7" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaShapeshiftButton_OnLoad(self, 10)</OnLoad></Scripts>
|
|
</CheckButton>
|
|
</Frames>
|
|
<Scripts>
|
|
<OnLoad>ShapeshiftBar_OnLoad()</OnLoad>
|
|
<OnEvent>ShapeshiftBar_OnEvent()</OnEvent>
|
|
<!-- The stance bar is the pet/stance term of the managed bottom-stack positions
|
|
(UIParent.xml, decision 0272): its show/hide re-fires the pass, exactly the
|
|
ref's BonusActionBarFrame.xml:350-355. -->
|
|
<OnShow>UIParent_ManageFramePositions()</OnShow>
|
|
<OnHide>UIParent_ManageFramePositions()</OnHide>
|
|
</Scripts>
|
|
</Frame>
|
|
</Ui>
|