LibAceGUIWidgets

LibAceGUIWidgets is a shared AceGUI-3.0 widget and styling library. It registers reusable, drop-in AceGUI widget types and helpers so addons share one consistent look instead of each rebuilding the same frames.

File Details

LibAceGUIWidgets-v0.1.0

  • R
  • Jul 12, 2026
  • 27.30 KB
  • 9
  • 12.0.7+7
  • Retail + 3

File Name

LibAceGUIWidgets-LibAceGUIWidgets-v0.1.0.zip

Supported Versions

  • 12.0.7
  • 12.0.5
  • 11.2.7
  • 5.5.3
  • 4.4.0
  • 3.4.3
  • 2.5.5
  • 1.15.8

Changelog

[v0.1.0] - Initial library

Added

  • LibAceGUIWidgets-1.0 — a shared, embeddable AceGUI-3.0 widget library for the TOG suite, extracted and decoupled from FastGuildInvite's GUI code.
    • Widget types (AceGUI:Create): ClearFrame (movable/resizable window with a DialogBox title bar), GroupFrame (borderless container), TLabel (text + optional icon with multi-line tooltip). Registered with per-type version guards so each installs independently.
    • RowList (W.RowList:New) — virtual-scrolling data list: sortable headers, alternating row banding, class-coloured columns, right-edge action icons, and a hand-built Blizzard-style scrollbar.
    • Helpers: Brand, AttachTooltip, AnchorTooltip, ApplyMinResize, CreateMenuInfo, MakeLabel; shared FrameBackdrop / PaneBackdrop.
    • Addon-agnostic config API (Configure, SetAccent/GetAccent, SetTooltipOwner, ClassColor — falling back to WoW RAID_CLASS_COLORS — plus optional classDisplay / refontHook hooks). All FGI state (FGI.Tooltip.Owner, addon.BrandColor, addon.color, addon.ClassDisplay, addon.FontStringByText, entry.NoLocaleClass) was routed through this API; the class field is the generic entry.classFile.
    • Composes with LibLocaleOverride for tab/dropdown/release helpers rather than duplicating them.
  • ClearFrame persistence (widget v27, lib MINOR 2) — SetStatusTable binds a saved table; the mover/sizer writes top/left/width/height into it and a new ApplyStatus restores them (default centered 700×500). Consumer windows now persist size/position across sessions, and ClearFrame self-positions on open (previously the consumer had to place it or it wouldn't render).
  • ClearFrame bottom status bar (widget v28, lib MINOR 3) — a PaneBackdrop bar with status text (SetStatusText), a Close button, and an info "i" icon (SetInfoTooltip; string or function(GameTooltip)), all lifted above the resize strips so they don't clip (the LiftAboveSizers technique). Replaces addons' border-clipping top-corner close buttons.
  • Scroll frame helper + slimmer RowList scrollbar (lib MINOR 6) — lib:CreateScrollFrame(parent, opts) returns a vertically-scrolling box with a slim thumb scrollbar ({ scroll, content, scrollbar, SetContentHeight }) for arbitrary content that overflows. RowList's own scrollbar was slimmed (12px track, 24px buttons, narrower gutter) to hand a little more width back to the rows.
  • Dropdown menu helper (lib MINOR 5) — lib:OpenMenu(anchor, items, opts) / ToggleMenu / CloseMenu: a reusable anchored menu with check-marked rows (radio-style selection), click-outside / anchor-toggle to close (via GLOBAL_MOUSE_DOWN), rendered at the anchor's window strata so it never hides behind the window. Replaces consumers' hand-rolled dropdowns.
  • RowList row-hover callbacks (lib MINOR 4) — onRowEnter(entry, idx, rl, rowFrame) and onRowLeave(...) opts, symmetric with onRowClick, so a consumer can show a tooltip (e.g. a game item tooltip) while the pointer is over a row. Rows enable mouse when any of click/enter/leave is supplied.
  • Standalone scaffolding — TOC (multi-flavour interface list), vendored LibStub, a VersionCheck-1.0 bootstrap, .pkgmeta, GitHub release workflow, MIT license, markdownlint/luarc config, the wow-version-replication.ps1 dev-sync watcher, and a CurseForge description under docs/.