Thread Tools Display Modes
01-17-23, 07:45 PM   #1
pstatix
A Murloc Raider
Join Date: Jan 2023
Posts: 8
Object instance hierarchy documentation?

I see lots of tutorials listing things like UIParent or UIPanelScrollFrameTemplate.

Is there documentation somewhere showing a list of these defined instances and their derivations?
  Reply With Quote
01-17-23, 09:04 PM   #2
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,892
I don't know whether it has what you are looking for but there is :

https://wowpedia.fandom.com/wiki/Wow..._customization
Which is the main page for the UI side of WOW

https://github.com/Gethe/wow-ui-source/tree/classic
Which is the source code for the Classic versions of wow

https://github.com/Gethe/wow-ui-source/tree/live
Which is the retail version equivalent
__________________
  Reply With Quote
01-17-23, 09:46 PM   #3
pstatix
A Murloc Raider
Join Date: Jan 2023
Posts: 8
Kinda? Guess I was curious if there was a curated class/object hierarchy available somewhere.

For example, the UIParent is the parent of all frames (typically) when using /fstack, so maybe there was a document somewhere that showed UIParent at the top, some subclasses, then their subclasses, etc.

This is great information though!
  Reply With Quote
01-17-23, 11:49 PM   #4
Fizzlemizz
I did that?
 
Fizzlemizz's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Dec 2011
Posts: 1,871
Consider UIParent like a sheet of glass over the 3D world. Most UI elements will use it as the base "parent" because it is hidden/shown when you press Alt-Z (as is anything parented to it) but essentially it's just a frame.

Templates are just virtual XML frames used as an outline for other frame/widget structures (in XML or created via CreateFrame). If you extract the UI (or use Xrystal's links) you can see in various XML structures the inherits="xxx" These are the template(s) used as the base structure for the given UI element (some templates will also inherit from other templates).

UIParent and templates are not related.

Widget (frames, buttons, sliders etc.) don't have a traditional inhertence model but you can see an approximation in the first image here
__________________
Fizzlemizz
Maintainer of Discord Unit Frames and Discord Art.
Author of FauxMazzle, FauxMazzleHUD and Move Pad Plus.

Last edited by Fizzlemizz : 01-17-23 at 11:54 PM.
  Reply With Quote
01-18-23, 12:06 AM   #5
Dridzt
A Pyroguard Emberseer
 
Dridzt's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2005
Posts: 1,359
wowprogramming once upon a time
  Reply With Quote
01-18-23, 09:22 AM   #6
pstatix
A Murloc Raider
Join Date: Jan 2023
Posts: 8
Originally Posted by Fizzlemizz View Post
Consider UIParent like a sheet of glass over the 3D world. Most UI elements will use it as the base "parent" because it is hidden/shown when you press Alt-Z (as is anything parented to it) but essentially it's just a frame.

Templates are just virtual XML frames used as an outline for other frame/widget structures (in XML or created via CreateFrame). If you extract the UI (or use Xrystal's links) you can see in various XML structures the inherits="xxx" These are the template(s) used as the base structure for the given UI element (some templates will also inherit from other templates).

UIParent and templates are not related.

Widget (frames, buttons, sliders etc.) don't have a traditional inhertence model but you can see an approximation in the first image here
The templates is what I was getting at, would be nice to have some sort of master listing of the templates to know what classes to use when making your own structures.
  Reply With Quote

WoWInterface » Developer Discussions » General Authoring Discussion » Object instance hierarchy documentation?

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off