Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adopt blizzard's scroll templates #5134

Open
emptyrivers opened this issue Jun 10, 2024 · 2 comments
Open

Adopt blizzard's scroll templates #5134

emptyrivers opened this issue Jun 10, 2024 · 2 comments
Labels
🎨 Feature Request This is a request for a new feature, or an expansion of an existing feature. 🏃 Performance Issue This issue concerns the performance impact of WeakAuras.

Comments

@emptyrivers
Copy link
Contributor

(mostly a note for myself)

While making this little thing I had the opprotunity to work with the 'modern' scroll templates, and I think they could be put to good use in WeakAuras, too. Here is a tutorial on how to make use of them.

In particular, I think we should modify this part of Options to make use of WowScrollBox + LinearizedTreeDataProvider:

image

We currently use Ace widgets, and are "forced" (are we actually?) to build potentially thousands of them the moment the user opens WeakAurasOptions. This takes a pretty long time if you have a lot of auras, and personally is a big barrier to ever opening options. I predict that using the WowScrollBox system would be the quickest way to eliminate this pain point.

As far as I can tell, WowScrollBox has made its way into every flavor of classic that we support as well, so no need to worry about compatibility problems.

Scrollboxes made using a combination of WowScrollBox + ScrollUtil work differently in important ways:

  • ScrollUtil makes heavy use of object pools to minimize total # of frames used. In particular this means that only what actually needs to be displayed in the scroll view is "created".
  • instead of maintaining a sorted list of frames at all times, ScrollUtil instead makes use of a data provider which can be provided a sort comparator (not unlike how dynamic group sorting works, though blizzard doesn't bother with the incremental sorting that we do)
@emptyrivers emptyrivers added 🎨 Feature Request This is a request for a new feature, or an expansion of an existing feature. 🏃 Performance Issue This issue concerns the performance impact of WeakAuras. labels Jun 10, 2024
@github-actions github-actions bot added the ⏱ Awaiting Response This ticket hasn't been triaged yet. label Jun 10, 2024
@emptyrivers emptyrivers removed the ⏱ Awaiting Response This ticket hasn't been triaged yet. label Jun 11, 2024
@mrbuds
Copy link
Contributor

mrbuds commented Jun 11, 2024

Profiling window use WowScrollBoxList & WowTrimScrollBar templates

@mrbuds
Copy link
Contributor

mrbuds commented Jun 11, 2024

Also note the WeakAurasScrollArea widget for texture picker that is more clever than the original AceGUIContainer-ScrollFrame widget as it doesn't create all not visible elements

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🎨 Feature Request This is a request for a new feature, or an expansion of an existing feature. 🏃 Performance Issue This issue concerns the performance impact of WeakAuras.
Projects
None yet
Development

No branches or pull requests

2 participants