Implementation: src/MimironsGoldOMatic.WoWAddon — UI-401–405 (MVP-3). Lua / FrameXML: WoW Addon component guide.
Normative behavior source: addon lifecycle and chat-log contract semantics are defined in docs/overview/SPEC.md. This file focuses on in-game UI shape and interaction ergonomics.
| Area | Link |
|---|---|
| Main UI hub + tokens | UI_SPEC.md |
| Twitch Extension UI | MimironsGoldOMatic.TwitchExtension/UI_SPEC.md |
| WPF Desktop UI | MimironsGoldOMatic.Desktop/UI_SPEC.md |
MVP Stage: MVP-3
Widgets: Frame, Button, EditBox, FontString, Texture, ScrollingMessageFrame or scroll frame pattern.
⚠️ WOW CONSTRAINT: No arbitrary HTML. Layout is driven by
SetPointanchors with XML and/or runtimeCreateFrame, targeting Interface: 30300.
Component: Addon Actor: Streamer Trigger: Player login/session start. MVP Stage: MVP-3
| ID | Element Type | Label/Placeholder | State variants | Action on interact |
|---|---|---|---|---|
| EL-401-01 | Minimap icon | Texture button | hover | toggle UI-402 |
| EL-401-02 | Slash | /mgm (DECISION) |
opens UI-402 |
⚠️ DECISION: The primary operator path is the MAIL_SHOW side panel; minimap icon remains optional when slash-only control is preferred.
| Property | Value |
|---|---|
| Strata | MEDIUM |
| EnableMouse | true (button) |
| Anchors | Minimap cluster DECISION or standalone TOPRIGHT |
[☆] ← EL-401-01 on minimap rim
Component: Addon
Actor: Streamer
Trigger: MAIL_SHOW event or /mgm command.
MVP Stage: MVP-3
| ID | Element Type | Label/Placeholder | State variants | Action on interact |
|---|---|---|---|---|
| EL-402-01 | FontString | Title “MGM Queue” | ||
| EL-402-02 | ScrollFrame + rows | Recipient list | READY/PROC/SENT | click row |
| EL-402-03 | Button | [ Prepare Mail ] | enabled when row READY | fills SendMail* boxes |
| EL-402-04 | FontString | Hint: open mailbox |
| Property | Value |
|---|---|
| Strata | HIGH (above world, below dialogs DECISION) |
| EnableMouse | true |
| Anchors | RIGHT of MailFrame or LEFT MailFrame, TOPRIGHT offset (SetPoint) |
┌─ Mail (vanilla) ─────┐ ┌─ MGM Queue ────────┐
│ │ │ Norinn READY [▶]│
│ To: _________ │ │ Kael SENT │
│ │ │ [ Prepare Mail ] │
└──────────────────────┘ └───────────────────┘
╔══════════════════════╗
║ MGM Queue ║
║ (Open mailbox first)║
╚══════════════════════╝
⚠️ WOW CONSTRAINT: Avoid insecure taint paths.
Prepare Mailshould mutateSendMail*controls only in allowed 3.3.5a contexts.
Component: Addon
Actor: System
Trigger: Successful mail send followed by [MGM_CONFIRM:…] emission.
MVP Stage: MVP-3
| ID | Element Type | Label/Placeholder | State variants | Action on interact |
|---|---|---|---|---|
| EL-403-01 | Frame + text | “Mail sent — Norinn” | fade | click dismiss |
| Strata | TOOLTIP (top visibility) |
| EnableMouse | true |
| Anchors | CENTER UIParent, Y offset positive |
┌─────────────────────┐
│ ✓ Mail sent (Norinn)│
└─────────────────────┘
↑ toast
Component: Addon Actor: System Trigger: Mailbox unavailable, validation failure, or insufficient gold/input constraints. MVP Stage: MVP-3
┌─────────────────────┐
│ ✕ Mailbox closed │
└─────────────────────┘
Strata HIGH; short-lived notification (~3s).
Component: Addon
Actor: Streamer
Trigger: /mgm debug command (optional) or toggle in UI-402.
MVP Stage: MVP-3 (optional)
| ID | Element Type | Label/Placeholder | State variants | Action on interact |
|---|---|---|---|---|
| EL-405-01 | ScrollingMessageFrame | Lines | scroll | |
| EL-405-02 | Checkbox | [ x ] Debug |
Strata LOW (non-blocking during gameplay); optional movable behavior.
╔══════════════════════╗
║ MGM Debug [✕] ║
║ ┌──────────────────┐ ║
║ │ who: Norinn OK │ ║
║ │ whisper hook on │ ║
║ └──────────────────┘ ║
╚══════════════════════╝
⚠️ DECISION: Optional debug frame can be stripped or no-op in release profiles for performance and noise control.
UI-401 (icon/slash) ──→ UI-402 (side panel)
├── EL-402-03 Prepare Mail ──→ (vanilla send)
├── success ───────────────────→ UI-403
└── failure ───────────────────→ UI-404
optional: /mgm debug ──→ UI-405
Full cross-component diagram: Main UI spec — Navigation Flow.