acdream/tests/AcDream.App.Tests/UI/Layout
Erik c721830e71
Some checks are pending
Headless portability / portable-headless (ubuntu-latest) (push) Waiting to run
Headless portability / portable-headless (windows-latest) (push) Waiting to run
Headless portability / linux-graphical (push) Waiting to run
Headless portability / linux-vulkan (push) Waiting to run
feat(ui): Slice 5.4 — the authored vendor browse panel (LayoutDesc 0x21000012)
The vendor window is retail's own: LayoutDesc 0x21000012, root
0x100000B7, found by enumerating all 101 layouts for the one
containing both known tab controls and clinched by the root's Type
0x10000017 — the literal UIElement::RegisterElementClass id for
gmVendorUI (pc:202075). Discovery evidence and the D0 read live in
the research doc's new §B.4.

D0 corrected two assumptions: retail's category "tabs" are a UiMenu
DROPDOWN fed by a hardcoded 18-row ordered category table (ported
bit-for-bit against our ItemType enum; list always scoped to exactly
one category, first-present wins, selection preserved across refresh
per retail's clamp), and the layout authors THREE tabs — Items
(browse, this slice), Buying and Selling (staged-transaction review,
Slice 6) — decision 4's "browse/Buy tab" names the Items tab retail's
mode-2 OpenTab opens. The non-default tabs render and switch pages
but stay inert, fenced in comments.

VendorUiController mounts Items: category dropdown, icon-cell item
row with the retained scrollbar, per-unit retail pricing via
VendorPricing.SellPrice (the vendor-stock path VendorProfile::
VendorSellPrice feeds), name/cost on selection. The panel is a pure
projection of VendorState — opens on populate, closes on clear; the
close button's VendorState.Close() is its only permitted mutation.
Nothing on the wire.

AP-110 narrowed (vendor leaves the absent-panels list); AP-161 files
the precise Slice-6 remainder (Buying/Selling unwired, Buy/Add
buttons, InqAcceptability). Twelve controller tests on a real-dat
fixture. Clean-room complete solution: 11,323 passed / 4 skipped /
0 failed.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-08-07 17:00:21 +02:00
..
fixtures feat(ui): Slice 5.4 — the authored vendor browse panel (LayoutDesc 0x21000012) 2026-08-07 17:00:21 +02:00
AppraisalUiControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
CharacterControllerTests.cs feat(render): Campaign V slice V11 commit 1 - delete ImGui, Studio, and the DevTools frontend 2026-07-28 23:56:04 +02:00
CharacterLayoutImportProbe.cs feat(player): port retail augmentation stat chain 2026-07-31 08:08:23 +02:00
CharacterSheetProviderTests.cs feat(player): port retail augmentation stat chain 2026-07-31 08:08:23 +02:00
CharacterStatControllerTests.cs fix(ui): refresh live skill rows 2026-07-31 08:22:46 +02:00
ChatLayoutConformanceTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ChatLayoutFixtureGenerator.cs test(D.2b): chat golden fixture + resolved-Type conformance (widget-generalization Task 1) 2026-06-16 16:55:51 +02:00
ChatWindowControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
CombatLayoutConformanceTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
CombatUiControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
CreatureAppraisalRowsTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DatWidgetFactoryFontResolveTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DatWidgetFactoryTests.cs feat(ui): port retail UIElement_Dragbar so authored drag strips move their windows 2026-07-29 21:04:33 +02:00
EffectsUiControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ElementReaderTests.cs feat(ui): D.2b item interaction + retail cursors + live character sheet 2026-07-03 09:18:43 +02:00
ExternalContainerControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
FixtureLoader.cs feat(ui): Slice 5.4 — the authored vendor browse panel (LayoutDesc 0x21000012) 2026-08-07 17:00:21 +02:00
IndicatorBarControllerTests.cs fix(movement): invalidate burden on enchantment changes 2026-07-31 10:16:27 +02:00
IndicatorDetailPanelControllerTests.cs fix(ui): restore effect detail scrolling 2026-07-17 13:28:18 +02:00
InventoryControllerTests.cs fix(movement): invalidate burden on enchantment changes 2026-07-31 10:16:27 +02:00
InventoryFrameImportProbe.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ItemAppraisalTextFormatterTests.cs fix(ui): preserve retail item titles and spacing 2026-07-24 05:21:01 +02:00
ItemCooldownUiControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ItemListCellTemplateTests.cs feat(items): port retail shared cooldown overlays 2026-07-23 10:41:16 +02:00
JumpPowerbarControllerTests.cs feat(ui): port retail jump power bar 2026-07-13 10:22:12 +02:00
JumpPowerbarLayoutConformanceTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
LayoutConformanceTests.cs feat(ui): port retained widget foundations 2026-07-10 17:55:41 +02:00
LayoutImporterTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PaperdollClickMapTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PaperdollControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PaperdollSlotBackgroundTests.cs fix(paperdoll): port quest-gated Aetheria slots 2026-07-13 09:55:20 +02:00
PaperdollToggleTests.cs feat(D.2b): Slice 2 — paperdoll armor/non-armor partition + Slots toggle state 2026-06-23 08:57:50 +02:00
RadarControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RadarLayoutConformanceTests.cs feat(ui): port retail radar and compass 2026-07-10 16:14:37 +02:00
RadarLayoutFixtureGenerator.cs feat(ui): port retail radar and compass 2026-07-10 16:14:37 +02:00
RadarSnapshotProviderTests.cs refactor(app): key live projections by runtime identity 2026-07-25 21:50:58 +02:00
RetailDialogFactoryTests.cs refactor(net): converge live session state reset 2026-07-21 12:00:48 +02:00
RetailFixtureConformanceTests.cs feat(ui): port retail appraisal panel 2026-07-23 11:34:08 +02:00
RetailFpsControllerTests.cs fix #213: complete suicide and framerate presentation 2026-07-13 15:50:47 +02:00
RetailLayoutFixtureGenerator.cs feat(ui): Slice 5.4 — the authored vendor browse panel (LayoutDesc 0x21000012) 2026-08-07 17:00:21 +02:00
RetailPanelUiControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RetailWindowFrameTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
SelectedObjectControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
SpellbookRowStyleTests.cs fix(ui): keep spellbook tab captions above chrome 2026-07-15 17:02:14 +02:00
SpellbookWindowControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
SpellcastingUiControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
SpellExamineComponentTemplateFactoryTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ToolbarControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ToolbarInputControllerTests.cs feat(ui): complete retail quick-slot input 2026-07-11 08:59:49 +02:00
UiDatElementTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
UiPropertyBagTests.cs fix(combat): restore retail power bar layers 2026-07-12 21:14:14 +02:00
UiTextLayoutCacheTests.cs test(app): put every strict-zero site on the probe (#250) 2026-07-29 03:49:13 +02:00
UiViewportFactoryTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
VendorUiControllerTests.cs feat(ui): Slice 5.4 — the authored vendor browse panel (LayoutDesc 0x21000012) 2026-08-07 17:00:21 +02:00
VitalsBindingTests.cs feat(ui): port retained widget foundations 2026-07-10 17:55:41 +02:00
VividTargetIndicatorLayoutTests.cs feat(selection): port retail offscreen target indicator 2026-07-18 07:41:12 +02:00