diff --git a/crates/benilla-app/assets/ui/HelpFrame.xml b/crates/benilla-app/assets/ui/HelpFrame.xml
new file mode 100644
index 00000000..691cdc98
--- /dev/null
+++ b/crates/benilla-app/assets/ui/HelpFrame.xml
@@ -0,0 +1,1669 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HelpFrameButton_FitToText(HelpFrameHomeIssues)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ScrollFrame_OnLoad()
+ self.updateFunc = HelpFrameGM_Update
+
+
+
+
+
+
+
+
+ HelpFrameGM_Update()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ScrollFrame_OnLoad()
+ local trough = getglobal(self:GetName() .. "ScrollBarTrough")
+ BenillaScrollTrough_Seat(trough, getglobal(self:GetName() .. "ScrollBar"))
+ trough:Show()
+
+
+
+
+
+
+
+ ScrollingEdit_OnTextChanged()
+ ScrollingEdit_OnCursorChanged(arg1, arg2, arg3, arg4)
+ HideUIPanel(HelpFrame)
+
+
+
+
+
+
+
+
+
+
+
+ self:RegisterEvent("UPDATE_TICKET")
+ self:RegisterEvent("GMSURVEY_DISPLAY")
+
+ HelpFrameOpenTicket_OnEvent(event)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HelpFrameHarassment_OnLoad()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HelpFrameButton_FitToText(HelpFrameStuckStuck)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HelpFrame_OnLoad(self)
+ HelpFrame_OnShow(self)
+ HelpFrame_OnEvent()
+
+ PlaySound("igCharacterInfoClose")
+ if UpdateMicroButtons then UpdateMicroButtons() end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if TOOLTIP_DEFAULT_COLOR then
+ self:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b)
+ end
+ if TOOLTIP_DEFAULT_BACKGROUND_COLOR then
+ self:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b)
+ end
+ self:RegisterEvent("UPDATE_TICKET")
+ self:RegisterEvent("PLAYER_ENTERING_WORLD")
+
+ TicketStatusFrame_OnEvent(self)
+ TicketStatus_OnUpdate(arg1)
+
+ TicketStatus_OnClick()
+
+
+
diff --git a/crates/benilla-app/assets/ui/MicroMenu.xml b/crates/benilla-app/assets/ui/MicroMenu.xml
index d68cbbd8..de6fc068 100644
--- a/crates/benilla-app/assets/ui/MicroMenu.xml
+++ b/crates/benilla-app/assets/ui/MicroMenu.xml
@@ -29,12 +29,13 @@
bar plate doesn't paint over them. Same shape the bag bar next door already uses.
SCOPE / real-client divergences (noted, not bugs):
- - ONE button has no panel to open yet: Help (no HelpFrame). It is drawn, hovers, and
- highlights like the rest, but its click is a no-op — the same "art only, wired the day the
- panel lands" call the page up/down arrows on this same bar already make. Deliberately NOT
- greyed with the ref's `-Disabled` art: a dead grey button mid-row reads as a broken bar,
- and the point of this slice is that the bar reads whole. It is one OnClick line from live.
- (Socials went live with decision 0668, Main Menu with 0674.)
+ - EVERY button now opens something. Help was the last "art only, wired the day the panel
+ lands" one, and HelpFrame.xml is that panel — its click is `ToggleHelpFrame()` and its
+ pushed arm is in UpdateMicroButtons below, exactly as the ref writes both. (Socials went
+ live with decision 0668, Main Menu with 0674, Help with the HelpFrame transcription.)
+ The bar was deliberately never greyed with the ref's `-Disabled` art while the gap
+ lasted: a dead grey button mid-row reads as a broken bar, and it really was one OnClick
+ line from live.
- The "(key)" suffix is LIVE since 0997: `button.binding` carries the binding ACTION
name (TOGGLECHARACTER0, TOGGLESPELLBOOK, ...) and the tooltip looks the key up through
GetBindingKey at hover time — the ref MicroButtonTooltipText's own contract, restored
@@ -173,15 +174,23 @@
-- ref UpdateMicroButtons (l.20-84): each button reflects whether its panel is up. The
-- MainMenu arm is the ref's own six-way test (l.47-58) minus the five frames that don't
-- exist here — GameMenuFrame is the one that does (decision 0674), and it is the one the
- -- reference lists first. Its keyring arm has no frame here; the still-unwired Help button
- -- simply never pushes.
+ -- reference lists first. Its keyring arm (l.79-83) still has no frame here.
+ --
+ -- The Help arm is the ref's l.72-76, live since HelpFrame.xml landed. It calls BACK into
+ -- this function from its own OnShow and OnHide, which is the ref's wiring too and is why
+ -- the reference's HelpFrame is the one panel that does not need an event to stay in sync.
function UpdateMicroButtons()
BenillaMicroButton_SetPushed(CharacterMicroButton, BenillaMicro_PanelShown("CharacterFrame"))
BenillaMicroButton_SetPushed(SpellbookMicroButton, BenillaMicro_PanelShown("SpellBookFrame"))
BenillaMicroButton_SetPushed(TalentMicroButton, BenillaMicro_PanelShown("BenillaTalentFrame"))
BenillaMicroButton_SetPushed(QuestLogMicroButton, BenillaMicro_PanelShown("QuestLogFrame"))
+ -- ref l.60-64. Missing since the Socials button went live with decision 0668: the
+ -- window opened but its button never read pushed. Spotted while wiring Help, which is
+ -- the same arm one line down; fixed here rather than left for a bug report.
+ BenillaMicroButton_SetPushed(SocialsMicroButton, BenillaMicro_PanelShown("FriendsFrame"))
BenillaMicroButton_SetPushed(WorldMapMicroButton, BenillaMicro_PanelShown("WorldMapFrame"))
BenillaMicroButton_SetPushed(MainMenuMicroButton, BenillaMicro_PanelShown("GameMenuFrame"))
+ BenillaMicroButton_SetPushed(HelpMicroButton, BenillaMicro_PanelShown("HelpFrame"))
end
-- ref CharacterMicroButton_SetPushed/_SetNormal (l.109-117): the portrait shifts its window
@@ -358,13 +367,19 @@
-
+
diff --git a/crates/benilla-app/assets/ui/UiPanels.xml b/crates/benilla-app/assets/ui/UiPanels.xml
index c80f9fbb..69f82084 100644
--- a/crates/benilla-app/assets/ui/UiPanels.xml
+++ b/crates/benilla-app/assets/ui/UiPanels.xml
@@ -26,9 +26,10 @@