- the four extra action bars become per-character options, off by default, on a new Action Bars options page — the toggles ride the server's own byte (`CMSG_SET_ACTIONBAR_TOGGLES` into `PLAYER_FIELD_BYTES`), so a fresh character's zero is the default for free; turning the bottom-left bar off gives the stance bar its previously unbuilt unraised look, end-caps and 64×64 rings - bag windows stop drawing straight through a raised bottom bar: the bottom band has ONE owner — the manage pass — the bag stack joins it through a listener seam, and a guard test walks all eight raisable-bar combinations across 24 bar/tenant pairs and refuses overlap - the item-push card takes the reference's real geometry, closing the gap 0887 measured - resizable addon windows stop at their bounds instead of pinning and walking across the screen: four per-frame f32s with 0.0 the disable sentinel, the clamp on the interactive drag only with the residual rebated out of the drag delta, `<ResizeBounds>` in XML honoured — and `SetFontString`'s three raises land exactly as the bytes have them Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
533 lines
42 KiB
XML
533 lines
42 KiB
XML
<Ui>
|
|
<!--
|
|
**The four extra action bars — MultiBarBottomLeft/BottomRight and the vertical
|
|
MultiBarRight/MultiBarLeft — are PLAYER OPTIONS, and all four ship OFF (decision 1500,
|
|
which reverses 0270 and the half of 1219 that made "hidden" unconditional).**
|
|
|
|
0270 made the two bottom bars unconditionally on and the toggles unshippable; 1219 added
|
|
the two vertical ones as unconditionally hidden frames for the addons that index them. Both
|
|
were the director's call at the time, and 1500 is the director's call now: the four bars
|
|
become rows on the Options window's Action Bars page, and a fresh character sees none of
|
|
them.
|
|
|
|
THE STORE IS THE SERVER'S, not a CVar and not a saved variable — verified against the real
|
|
1.12.1 binary by a wow-re §5 cross-check (three independent derivations, arbitrated;
|
|
wow-5875-re commit 417c2d31, node system/ui/scratch/action-bar-toggles.md):
|
|
- The four bits live in **PLAYER_FIELD_BYTES byte 2**, written with
|
|
**CMSG_SET_ACTIONBAR_TOGGLES (opcode 703)**. Per-character and server-persisted, which is
|
|
what makes "off by default" fall out for free: a fresh character's byte is 0.
|
|
- `SetActionBarToggles` takes exactly **FOUR** arguments (`cmp esi,4` at 0x4e770e) and packs
|
|
them as arg1→0x01, arg2→0x02, arg3→0x04, arg4→0x08. **A FIFTH argument is silently
|
|
DROPPED by the binding** — it never reaches the byte or the wire — even though the
|
|
reference's own options panel passes ALWAYS_SHOW_MULTIBARS as one. That is why the grid
|
|
option below is a saved variable and the four bars are not: the split is a verified
|
|
consequence of the binding's arity, not an authoring choice.
|
|
- `GetActionBarToggles` returns exactly FOUR values, each the Lua number `1` or `nil` —
|
|
never booleans, and four nils when not in world.
|
|
- The client NEVER writes that field locally and NOTHING fires on a change to it. So the
|
|
LIVE state is the four Lua globals below; `GetActionBarToggles()` is read ONCE, on
|
|
PLAYER_ENTERING_WORLD (UIParent.xml), purely as their seed. Nothing re-reads it.
|
|
|
|
The bar↔bit mapping is a FrameXML-layer rule — the binary is bar-agnostic: 0x01 →
|
|
MultiBarBottomLeft, 0x02 → MultiBarBottomRight, 0x04 → MultiBarRight, 0x08 → MultiBarLeft,
|
|
and **MultiBarLeft shows only when bar 3 is ALSO on** (confirmed by reading the install's
|
|
own MultiActionBars.lua l.73, `if ( SHOW_MULTI_ACTIONBAR_3 and SHOW_MULTI_ACTIONBAR_4 )`).
|
|
That conjunction is not arbitrary: MultiBarLeft's TOPRIGHT hangs off MultiBarRight's
|
|
TOPLEFT, so on its own it would be a column of buttons anchored to a bar that is not there.
|
|
|
|
Geometry + slot ranges QUOTED from the real 1.12 FrameXML (extracted from patch.MPQ):
|
|
- ref-MultiActionBars.xml l.36-39/496-513: each bar a 500x38 frame; BottomLeft's
|
|
BOTTOMLEFT anchors to ActionButton1's TOPLEFT +(0,17); BottomRight's LEFT anchors to
|
|
BottomLeft's RIGHT +(10,0); 12 buttons chained BOTTOMLEFT then LEFT-of-prev-RIGHT +6.
|
|
- ref-ActionButton.lua l.6-9/446-467 (ActionButton_GetPagedID): BottomLeft = page 6 ⇒
|
|
actions 61..72; BottomRight = page 5 ⇒ actions 49..60. The bases below feed
|
|
BenillaActionButton_Action (ActionBar.xml), which carries the ref's parent-name fork
|
|
as per-button data.
|
|
- Buttons reuse BenillaActionButtonTemplate + the whole ActionBar.xml handler set: same
|
|
click/drag/keyless-use, same feedback layer (state/usable/cooldown/flash), fanned from
|
|
MainMenuBar's bar-level events via the BENILLA_ACTION_BUTTONS roster each button
|
|
joins at OnLoad.
|
|
|
|
Ref divergences (deliberate, mirroring ActionBar.xml's SCOPE notes):
|
|
- MULTIACTIONBAR1/2BUTTON1-12 are BINDABLE since 1008 (the ref's own commands, registered
|
|
in crate::bindings::commands with the ref's runOnUp pair below); they ship UNBOUND like
|
|
the ref (no MULTIACTIONBAR* line in any of the install's bindings-cache.wtf files), so
|
|
out of the box the hotkey corner still carries the ref's range dot — a bound slot wears
|
|
its abbreviated label exactly like the main bar (ActionBar.xml's PaintHotkey law).
|
|
- Empty wells hide (the ref's own default) and appear as drop-target rings only while the
|
|
grid is asked for — a held cursor payload, or ALWAYS_SHOW_MULTIBARS below — unlike the
|
|
main bar's always-visible wells (its art has sockets; floating rings over bare world
|
|
would not read as a bar).
|
|
- MULTIACTIONBAR3/4BUTTON (the vertical bars' commands) still stay OUT of
|
|
`bindings::commands`. 1008's honest tree held while those bars could never be shown, and
|
|
it holds differently now that they can: the keybind screen lists what the player can
|
|
reach, and a bar behind an option is reachable. Registering them is a separate slice with
|
|
its own default-bindings question; until then painting a hotkey from an unregistered
|
|
command is a no-op (GetBindingKey answers nil) and the label is simply blank.
|
|
-->
|
|
<Script><![CDATA[
|
|
-- ref ActionButton.lua:6-7 — BOTTOMLEFT_ACTIONBAR_PAGE = 6, BOTTOMRIGHT_ACTIONBAR_PAGE = 5;
|
|
-- base = (page - 1) * 12.
|
|
BENILLA_MULTIBAR_BOTTOMLEFT_BASE = 60
|
|
BENILLA_MULTIBAR_BOTTOMRIGHT_BASE = 48
|
|
-- ref ActionButton.lua:8-9 — LEFT_ACTIONBAR_PAGE = 4, RIGHT_ACTIONBAR_PAGE = 3.
|
|
BENILLA_MULTIBAR_LEFT_BASE = 36
|
|
BENILLA_MULTIBAR_RIGHT_BASE = 24
|
|
|
|
-- ref MultiActionBars.lua:1 — every extra bar is twelve wells wide.
|
|
NUM_MULTIBAR_BUTTONS = 12
|
|
|
|
-- ── The four toggles: LIVE state, seeded once from the server byte ──────────────────────
|
|
-- These names are the REFERENCE's and they are a published contract, not a private cache —
|
|
-- the addon corpus reads and writes them directly. Bartender2.lua:45-48 sets all four to 1
|
|
-- at load (it takes the bars over), and CT_BarMod reads each one by name in three separate
|
|
-- places to decide whether a button of ours is its business (CT_BarMod.lua:232-235,
|
|
-- 1573-1576, 1624-1627). So the names are fixed and the VALUES have to be what the corpus
|
|
-- expects: 1 or nil, exactly what GetActionBarToggles returns, never true/false.
|
|
--
|
|
-- nil here = OFF, which is also the whole of "off by default": a fresh character's server
|
|
-- byte is 0, and the seed on PLAYER_ENTERING_WORLD (UIParent.xml) writes these four back
|
|
-- to nil. Declared explicitly anyway rather than left absent — an undeclared global reads
|
|
-- nil too, but then nothing in this file says the state exists.
|
|
SHOW_MULTI_ACTIONBAR_1 = nil
|
|
SHOW_MULTI_ACTIONBAR_2 = nil
|
|
SHOW_MULTI_ACTIONBAR_3 = nil
|
|
SHOW_MULTI_ACTIONBAR_4 = nil
|
|
|
|
-- The FIFTH switch, and the one with a different store — see the header: the engine
|
|
-- binding drops a fifth argument, so this one has no server side and is an ordinary
|
|
-- saved-variable global, exactly as the reference makes it (UIOptionsFrame.lua l.106-107
|
|
-- assigns "0" and RegisterForSave's it). It holds the four bars' EMPTY wells open so the
|
|
-- player can see the shape of a bar they have not filled yet. String "1"/"0", because that
|
|
-- is what the options row's uvar store writes; zBar reads it as either
|
|
-- (zActionButton.lua:61 tests both spellings) and so does the reader below.
|
|
--
|
|
-- This assignment is also the row's registered DEFAULT: OptionsGlobalRow_OnLoad captures
|
|
-- the file-scope value at load, so this line is the single source of it.
|
|
ALWAYS_SHOW_MULTIBARS = "0"
|
|
|
|
-- The four bars in toggle (and bit) order, each paired with the main-bar page it takes OUT
|
|
-- of the paging cycle while it is up — a page a multibar already displays must not also be
|
|
-- reachable on the main bar, or paging up shows you the twelve actions already on screen
|
|
-- beside it. ActionBar.xml declares VIEWABLE_ACTION_BAR_PAGES with all six viewable (all
|
|
-- four bars start hidden) and this file does the arithmetic from there.
|
|
BENILLA_MULTIBARS = {
|
|
{frame = "MultiBarBottomLeft", page = BOTTOMLEFT_ACTIONBAR_PAGE},
|
|
{frame = "MultiBarBottomRight", page = BOTTOMRIGHT_ACTIONBAR_PAGE},
|
|
{frame = "MultiBarRight", page = RIGHT_ACTIONBAR_PAGE},
|
|
{frame = "MultiBarLeft", page = LEFT_ACTIONBAR_PAGE},
|
|
}
|
|
|
|
-- One bar: on screen or not, and the main-bar page it owns settled to match. Split out so
|
|
-- MultiActionBar_Update below reads as the four-line list it actually is — which is where
|
|
-- the one thing a reader must not miss lives (bar 4's compound condition).
|
|
function BenillaMultiBar_Settle(bar, up)
|
|
local frame = getglobal(bar.frame)
|
|
if up then
|
|
frame:Show()
|
|
VIEWABLE_ACTION_BAR_PAGES[bar.page] = nil
|
|
else
|
|
frame:Hide()
|
|
VIEWABLE_ACTION_BAR_PAGES[bar.page] = 1
|
|
end
|
|
end
|
|
|
|
-- Re-derive all four bars from the four globals. Every writer of that state calls this —
|
|
-- the options rows, the PLAYER_ENTERING_WORLD seed, and any addon that sets a global and
|
|
-- asks for the bars back (the reference's own contract, and Bartender2 relies on it).
|
|
--
|
|
-- **The manage pass runs from HERE, not from per-bar OnShow/OnHide**, and that is a choice
|
|
-- worth naming because both work. A bar coming up or going down moves the cast bar, the
|
|
-- chat frames, the stance/pet row and the bag stack's corner
|
|
-- (UIPARENT_MANAGED_FRAME_POSITIONS), and the pass reads the bars' own :IsShown() rather
|
|
-- than these globals — so it must run AFTER the last Show/Hide, not four times in the
|
|
-- middle of them. One call at the end of the one function that moves them is that; four
|
|
-- OnShow/OnHide hooks would fire the pass up to four times per click, and three of those
|
|
-- times against a half-applied state. The reference reaches the same place from the other
|
|
-- side: its options panel calls MultiActionBar_Update() and UIParent_ManageFramePositions()
|
|
-- back to back at every one of its five click sites (UIOptionsFrame.xml l.665-666 et al).
|
|
function MultiActionBar_Update()
|
|
local bars = BENILLA_MULTIBARS
|
|
BenillaMultiBar_Settle(bars[1], SHOW_MULTI_ACTIONBAR_1)
|
|
BenillaMultiBar_Settle(bars[2], SHOW_MULTI_ACTIONBAR_2)
|
|
BenillaMultiBar_Settle(bars[3], SHOW_MULTI_ACTIONBAR_3)
|
|
-- Bar 4 is the one bar with a COMPOUND condition (ref MultiActionBars.lua l.73) — see
|
|
-- the header for why MultiBarLeft cannot stand without MultiBarRight under it.
|
|
BenillaMultiBar_Settle(bars[4], SHOW_MULTI_ACTIONBAR_3 and SHOW_MULTI_ACTIONBAR_4)
|
|
UIParent_ManageFramePositions()
|
|
end
|
|
|
|
-- ── The empty-well grid over the four bars ──────────────────────────────────────────────
|
|
-- The three verbs are the reference's own published names and signatures, and the corpus
|
|
-- is why they are worth shipping as such: CT_BarMod REPLACES MultiActionBar_UpdateGrid
|
|
-- wholesale (CT_BarMod.lua:1649) and zBar WRAPS ShowAllGrids/HideAllGrids around its own
|
|
-- bars (zActionButton.lua:83-94), both by name and both expecting this shape. The
|
|
-- per-button half lives in ActionBar.xml (ActionButton_ShowGrid/_HideGrid over
|
|
-- `button.showgrid`), which is where the reference keeps it too.
|
|
function MultiActionBar_UpdateGrid(barName, show)
|
|
for i = 1, NUM_MULTIBAR_BUTTONS do
|
|
local button = getglobal(barName .. "Button" .. i)
|
|
if show then
|
|
ActionButton_ShowGrid(button)
|
|
else
|
|
ActionButton_HideGrid(button)
|
|
end
|
|
end
|
|
end
|
|
|
|
function MultiActionBar_ShowAllGrids()
|
|
for _, bar in ipairs(BENILLA_MULTIBARS) do
|
|
MultiActionBar_UpdateGrid(bar.frame, 1)
|
|
end
|
|
end
|
|
|
|
function MultiActionBar_HideAllGrids()
|
|
for _, bar in ipairs(BENILLA_MULTIBARS) do
|
|
MultiActionBar_UpdateGrid(bar.frame)
|
|
end
|
|
end
|
|
|
|
-- The option's apply: re-derive the grid from ALWAYS_SHOW_MULTIBARS. Run on every write of
|
|
-- that global (the row's applyFunc) and once at startup over the restored saved value —
|
|
-- the reference does the same restore by hand in its VARIABLES_LOADED ladder
|
|
-- (UIOptionsFrame.lua l.217-220); ours is OptionsFrame_ApplySavedSettings' walk.
|
|
--
|
|
-- Both spellings tested because the global is published and the two stores disagree: our
|
|
-- options row writes the STRING "1", while an addon setting it writes the number (zBar
|
|
-- tests both for exactly this reason, zActionButton.lua:61).
|
|
--
|
|
-- The `held` latch is ours and it is what makes this option a WELL-BEHAVED holder of the
|
|
-- count: one asker may hold at most one. Without it, re-applying an "off" that was already
|
|
-- off decrements every button again — so applying defaults while a payload is in hand would
|
|
-- close the wells that payload is holding open. The reference has exactly that flaw; the
|
|
-- latch also means the startup apply of the default "0" is a no-op instead of a decrement.
|
|
BENILLA_MULTIBAR_GRID_HELD = nil
|
|
|
|
function MultiActionBar_UpdateGridVisibility()
|
|
local want
|
|
if ALWAYS_SHOW_MULTIBARS == "1" or ALWAYS_SHOW_MULTIBARS == 1 then want = 1 end
|
|
if want == BENILLA_MULTIBAR_GRID_HELD then return end
|
|
BENILLA_MULTIBAR_GRID_HELD = want
|
|
if want then
|
|
MultiActionBar_ShowAllGrids()
|
|
return
|
|
end
|
|
MultiActionBar_HideAllGrids()
|
|
end
|
|
|
|
-- ── The write half of a bar toggle (the Options rows' setter) ───────────────────────────
|
|
-- The reference has no counterpart: its panel edits SHOW_MULTI_ACTIONBAR_n inline in each
|
|
-- checkbox's OnClick and batches ONE SetActionBarToggles into UIOptionsFrame_Save. Our
|
|
-- window commits on the click (0961's grammar, no Save button), so the whole edit — the
|
|
-- global, the bars, the packet — is this one function and the rows pass it a bar index.
|
|
--
|
|
-- `value` is the row's "1"/"0" STRING (OptionsRow_Set hands an API row its own string), and
|
|
-- the number/boolean spellings are tolerated because this is reachable from addon code too.
|
|
-- What is stored is 1 or nil and nothing else: that is what GetActionBarToggles returns and
|
|
-- what the corpus expects to read back (see the globals' own comment above).
|
|
--
|
|
-- **FOUR arguments.** Not five. The reference passes ALWAYS_SHOW_MULTIBARS as a fifth and
|
|
-- the binding drops it on the floor (`cmp esi,4` at 0x4e770e) — see the header. The whole
|
|
-- byte is re-sent every time because the packet carries the byte, not a delta.
|
|
function BenillaMultiBar_SetShown(bar, value)
|
|
local on
|
|
if value and value ~= "0" and value ~= 0 then on = 1 end
|
|
setglobal("SHOW_MULTI_ACTIONBAR_" .. bar, on)
|
|
MultiActionBar_Update()
|
|
SetActionBarToggles(SHOW_MULTI_ACTIONBAR_1, SHOW_MULTI_ACTIONBAR_2,
|
|
SHOW_MULTI_ACTIONBAR_3, SHOW_MULTI_ACTIONBAR_4)
|
|
end
|
|
|
|
-- The MULTIACTIONBAR keybind pair — ref MultiActionBars.lua:24-45 MultiActionButtonDown/Up,
|
|
-- the same NORMAL→PUSHED debounce dance as the main bar's ActionButtonDown/Up
|
|
-- (ActionBar.xml — the ref's MacroFrame_SaveMacro hook is not modeled there either).
|
|
-- Driven by the binding dispatch (crate::bindings, Kind::EdgeUpDown — decision 1008).
|
|
--
|
|
-- `bar` IS THE WHOLE FRAME-NAME PREFIX, not a suffix (decision 1199). The reference resolves
|
|
-- `getglobal(bar.."Button"..id)` and its own Bindings.xml passes "MultiBarBottomLeft"; ours
|
|
-- used to pass "BottomLeft" and splice "MultiBar" on in here. Same arity, different MEANING
|
|
-- — the silent kind of wrong shape: zBar calls `MultiActionButtonDown("zBar"..barid, id)`
|
|
-- and under the old splice built the nonexistent frame name "MultiBarzBar1Button1". The
|
|
-- caller now names the bar in full, exactly as the reference's binding does, so a third-
|
|
-- party bar can address these at all. `onSelf` rides to UseAction like ActionButtonUp's.
|
|
function MultiActionButtonDown(bar, id)
|
|
local button = getglobal(bar .. "Button" .. id)
|
|
if ( button:GetButtonState() == "NORMAL" ) then
|
|
button:SetButtonState("PUSHED")
|
|
end
|
|
end
|
|
|
|
function MultiActionButtonUp(bar, id, onSelf)
|
|
local button = getglobal(bar .. "Button" .. id)
|
|
if ( button:GetButtonState() == "PUSHED" ) then
|
|
button:SetButtonState("NORMAL")
|
|
UseAction(BenillaActionButton_Action(button), 0, onSelf)
|
|
-- Ref MultiActionButtonUp:39-43: the checked ring reflects the use immediately.
|
|
BenillaActionButton_UpdateState(button)
|
|
end
|
|
end
|
|
]]></Script>
|
|
|
|
<!-- frameStrata HIGH on both bottom bars is the ref's own (`MultiActionBars.xml` l.36 and l.151,
|
|
HorizontalMultiBar1/2). They share the bottom band with the bag windows, which are MEDIUM on
|
|
both sides by design — and both sides carry deep nested button trees, so co-tenanting one
|
|
stratum is exactly the level-outranks-insertion collision decision 0597 fixed for the party
|
|
frame. HIGH is what keeps the bars above an open bag.
|
|
|
|
`hidden="true"` on ALL FOUR bars since 1500 — the reference's own posture for every one of
|
|
them (its HorizontalMultiBar1/2 templates carry it too, l.36/l.151), and the shipped state
|
|
a character with a zero toggle byte lands in. MultiActionBar_Update is the only thing that
|
|
opens one. -->
|
|
<Frame name="MultiBarBottomLeft" frameStrata="HIGH" hidden="true">
|
|
<Size><AbsDimension x="500" y="38"/></Size>
|
|
<Anchors>
|
|
<Anchor point="BOTTOMLEFT" relativeTo="ActionButton1" relativePoint="TOPLEFT"><Offset><AbsDimension x="0" y="17"/></Offset></Anchor>
|
|
</Anchors>
|
|
<Frames>
|
|
<CheckButton name="MultiBarBottomLeftButton1" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="BOTTOMLEFT" relativePoint="BOTTOMLEFT"><Offset><AbsDimension x="0" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 1, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton2" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton1" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 2, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton3" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton2" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 3, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton4" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton3" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 4, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton5" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton4" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 5, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton6" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton5" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 6, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton7" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton6" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 7, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton8" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton7" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 8, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton9" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton8" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 9, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton10" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton9" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 10, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton11" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton10" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 11, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomLeftButton12" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomLeftButton11" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 12, BENILLA_MULTIBAR_BOTTOMLEFT_BASE, "MULTIACTIONBAR1BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
</Frames>
|
|
</Frame>
|
|
|
|
<!-- HIGH and hidden, same as BottomLeft above (ref `MultiActionBars.xml` l.151). -->
|
|
<Frame name="MultiBarBottomRight" frameStrata="HIGH" hidden="true">
|
|
<Size><AbsDimension x="500" y="38"/></Size>
|
|
<Anchors>
|
|
<Anchor point="LEFT" relativeTo="MultiBarBottomLeft" relativePoint="RIGHT"><Offset><AbsDimension x="10" y="0"/></Offset></Anchor>
|
|
</Anchors>
|
|
<Frames>
|
|
<CheckButton name="MultiBarBottomRightButton1" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="BOTTOMLEFT" relativePoint="BOTTOMLEFT"><Offset><AbsDimension x="0" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 1, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton2" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton1" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 2, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton3" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton2" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 3, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton4" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton3" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 4, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton5" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton4" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 5, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton6" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton5" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 6, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton7" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton6" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 7, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton8" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton7" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 8, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton9" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton8" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 9, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton10" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton9" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 10, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton11" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton10" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 11, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarBottomRightButton12" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="LEFT" relativeTo="MultiBarBottomRightButton11" relativePoint="RIGHT"><Offset><AbsDimension x="6" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 12, BENILLA_MULTIBAR_BOTTOMRIGHT_BASE, "MULTIACTIONBAR2BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
</Frames>
|
|
</Frame>
|
|
|
|
<!-- **The two VERTICAL bars — now the same kind of thing as the two above them.**
|
|
|
|
They were scoped out first (a bar nobody asked for should not exist), then 1219 built them
|
|
as real frames that shipped unconditionally hidden — because the reference does not choose
|
|
between "shown" and "absent": `MultiActionBars.xml` l.515/523 instantiates BOTH as real
|
|
`parent="UIParent"` frames whose templates (VerticalMultiBar3/4, l.266/381) carry
|
|
`hidden="true"`, and they stay hidden until SHOW_MULTI_ACTIONBAR_3/4 says otherwise.
|
|
|
|
What 1219 bought, and still buys, is that Atlas, Bartender2 and FuBartender2 stopped DYING
|
|
at session start on `MultiBarLeft` — Atlas at `Atlas.lua:387`
|
|
(`MultiBarLeft:SetFrameStrata("MEDIUM")`), Bartender2 at `Bartender2.lua:74`
|
|
(`MultiBarLeft:ClearAllPoints()`). Neither shows the bar; both only need it to be there.
|
|
Five more addons index `MultiBarRight` (decision 1218's corrected ranking).
|
|
|
|
What 1500 changed is only the last sentence of that story: "hidden, and nothing can show
|
|
it" has become "hidden, until the player ticks its row" — SHOW_MULTI_ACTIONBAR_3/4 and the
|
|
Options page's two Right ActionBar rows. `MultiBarLeft` still needs `MultiBarRight` under
|
|
it (the header's conjunction), which is why its row is a dependent child of bar 3's.
|
|
|
|
Pages from ref-ActionButton.lua l.8-9: LEFT_ACTIONBAR_PAGE = 4 (actions 37..48),
|
|
RIGHT_ACTIONBAR_PAGE = 3 (actions 25..36). Geometry from ref-MultiActionBars.xml: a 38x500
|
|
frame, button 1 at TOPRIGHT, each next TOP-to-BOTTOM of the previous at -6. -->
|
|
|
|
<Frame name="MultiBarRight" frameStrata="HIGH" hidden="true">
|
|
<Size><AbsDimension x="38" y="500"/></Size>
|
|
<Anchors>
|
|
<Anchor point="BOTTOMRIGHT"><Offset><AbsDimension x="-7" y="98"/></Offset></Anchor>
|
|
</Anchors>
|
|
<Frames>
|
|
<CheckButton name="MultiBarRightButton1" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOPRIGHT" relativePoint="TOPRIGHT"><Offset><AbsDimension x="0" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 1, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton2" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton1" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 2, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton3" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton2" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 3, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton4" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton3" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 4, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton5" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton4" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 5, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton6" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton5" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 6, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton7" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton6" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 7, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton8" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton7" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 8, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton9" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton8" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 9, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton10" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton9" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 10, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton11" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton10" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 11, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarRightButton12" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarRightButton11" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 12, BENILLA_MULTIBAR_RIGHT_BASE, "MULTIACTIONBAR3BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
</Frames>
|
|
</Frame>
|
|
|
|
<Frame name="MultiBarLeft" frameStrata="HIGH" hidden="true">
|
|
<Size><AbsDimension x="38" y="500"/></Size>
|
|
<Anchors>
|
|
<Anchor point="TOPRIGHT" relativeTo="MultiBarRight" relativePoint="TOPLEFT"><Offset><AbsDimension x="-5" y="0"/></Offset></Anchor>
|
|
</Anchors>
|
|
<Frames>
|
|
<CheckButton name="MultiBarLeftButton1" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOPRIGHT" relativePoint="TOPRIGHT"><Offset><AbsDimension x="0" y="0"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 1, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton2" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton1" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 2, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton3" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton2" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 3, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton4" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton3" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 4, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton5" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton4" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 5, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton6" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton5" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 6, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton7" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton6" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 7, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton8" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton7" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 8, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton9" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton8" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 9, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton10" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton9" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 10, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton11" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton10" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 11, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
<CheckButton name="MultiBarLeftButton12" inherits="BenillaActionButtonTemplate">
|
|
<Anchors><Anchor point="TOP" relativeTo="MultiBarLeftButton11" relativePoint="BOTTOM"><Offset><AbsDimension x="0" y="-6"/></Offset></Anchor></Anchors>
|
|
<Scripts><OnLoad>BenillaActionButton_OnLoad(self, 12, BENILLA_MULTIBAR_LEFT_BASE, "MULTIACTIONBAR4BUTTON")</OnLoad></Scripts>
|
|
</CheckButton>
|
|
</Frames>
|
|
</Frame>
|
|
</Ui>
|