promotional bannermobile promotional banner

Coinscry

Companion addon for TradeSkillMaster that adds proper item filters to the Vendoring Buy UI (TBC Anniversary).

File Details

v0.4.0-bcc

  • R
  • May 12, 2026
  • 59.03 KB
  • 3
  • 2.5.5
  • Classic TBC

File Name

coinscry-v0.4.0-bcc.zip

Supported Versions

  • 2.5.5

Coinscry

v0.4.0 (2026-05-12)

Full Changelog Previous Releases

  • v0.4.0: M3-E release (TOC + CHANGELOG)
  • M3-E: embed Coinscry view inside MerchantFrame in vanilla mode
  • Embed mode: yield to MerchantFrame's Buyback tab and restore on Merchant tab
    Clicking Blizzard's Buyback tab now hides our embedded panel so the
    buyback view is visible. Clicking back to the Merchant tab restores
    the panel if the user had it open.
    Implementation: hook MerchantFrame_Update (fires on tab switch).
    Reads MerchantFrame.selectedTab; tab=1 (Merchant) re-shows the panel
    if embedToggleOn, tab=2 (Buyback) hides it.
    To distinguish 'user toggled off via the Coinscry tab' from 'tab
    change hid us temporarily,' split the panel show/hide into two
    layers:
    • Panel.Show / Panel.Hide are user-initiated; they update
      embedToggleOn so the hook knows the user's intent.
    • ShowVisible / HideVisible are internal; just toggle the panel
      frame + enter/exit embed mode without touching embedToggleOn.
      The hook only consults embedToggleOn for the auto-restore path, so
      returning to the Merchant tab brings back exactly what the user had
      open. Coming from a vendor close (Panel.Hide via ApplyAnchor nil)
      clears embedToggleOn so it doesn't leak into the next vendor.
  • Embed mode: also hide BuyBack icon, panel close-X, and resize grip
    Three things to suppress in embed mode that don't fit the
    'replaces the merchant grid' aesthetic:
    • MerchantBuyBackItem ('your last sold item' icon) was floating
      inside our panel area; add it to HIDDEN_MERCHANT_WIDGETS.
    • Our panel's UIPanelCloseButton (the X in our top-right): the tab
      is already the toggle, so the X is redundant and visually noisy
      next to MerchantFrame's own close button.
    • Our drag-to-resize grip: panel size is dictated by MerchantFrame's
      content area, so the grip wouldn't actually do anything useful
      (and StartSizing on a both-anchors-locked frame can produce
      glitchy positions). Restored in attached mode.
      closeBtn and resizeGrip lifted to module-locals so EnterEmbedMode /
      ExitEmbedMode can show/hide them.
  • M3-E: embed Coinscry view inside MerchantFrame in vanilla mode
    When the anchor is Blizzard's MerchantFrame, the panel now embeds
    inside MerchantFrame's content area instead of floating beside it.
    Tab click toggles between Coinscry view and Blizzard's native item
    grid. Default is Blizzard view; enable 'Show Coinscry view on vendor
    open' in /coinscry config for auto-show.
    • Panel.AttachTo accepts a mode parameter: 'embedded' or 'attached'.
      Core.ApplyAnchor picks the mode based on anchor identity:
      MerchantFrame → embedded; TSM frame → attached (unchanged).
    • Embed lifecycle: EnterEmbedMode widens MerchantFrame to fit the
      panel and hides MerchantItem1..12 + page nav. ExitEmbedMode
      restores both. Mode entry/exit is gated by Panel.Show / Panel.Hide
      so the tab toggle naturally maps to 'show Coinscry vs show grid'.
    • When Anchor's chosen frame switches mid-session (e.g., user opens
      TSM4 mid-vendor), AttachTo cleans up the old embed state before
      switching to attached mode.
      Settings clarity:
    • 'Reset filters when opening a vendor' → 'Clear filters when
      opening a vendor', subtitle 'otherwise filters carry over'.
    • 'Auto-open filter panel' → 'Show Coinscry view on vendor open',
      subtitle 'Blizzard / TSM view shows by default'.