Hello,
what XML view do you mean? Did you create a XML UI yourself where you want to add your group members?
Did you check the ESOUI Wiki for entries relating to group, maybe there are examples:
https://wiki.esoui.com/w/index.php?t...ch=group&go=Go
To get the group members you should check teh existing vanilla game lua code. The files are normally structured in fodler names
like /esoui/ingame/<topic> where <topic> would be somehting like "group" then or "party".
The ESOUI source cod can be found here for example:
https://github.com/esoui/esoui/tree/master/esoui
->
https://github.com/esoui/esoui/tree/...i/ingame/group
In there you often find a base file (an objent oriented approach base "class" that other classes inherit from, e.g. ZO_ClassWhateverBase where later ZO_ClassWhatever_Keyboard and ZO_ClassWhatEver_Gamepad inherit from).
And you often find utility files like grouputils.lua which contain functions used in all kind of group related stuff.
Also xml files can exist that relate to both, keyboard and gamepad mode.
In the subfolders keyboard or gamepad you'll find the files for the keyboard or gamepad mode then. So if you want to habe soemthing similar to the keyboard mode XML group UI you need to check the folder:
https://github.com/esoui/esoui/tree/...group/keyboard
In there you'll have lua files and XML files. The XML often is the UI or predefined "virtual" templates of controls or list rows, dialogs etc.
The lua code contains the code that connects the logic with the XML UI output then.
Sometimes XML is missing and lua will create the controls! So it's not always XML and lua! It could be only lua or only XML (containign some smaller lua portions in the xml code like <OnMouseDown> lua code here </OnMouseDown> events).
ZO_GroupList_Keyboard contains the group list as you press P ingame, afaik:
https://github.com/esoui/esoui/blob/...t_keyboard.lua
So if you do not search the group list but the group UI on the left, it's another folder:
Unitframes
https://github.com/esoui/esoui/tree/...ame/unitframes
The XML contans e.g. 2 examples (virtual templates) for a row in that group unit frame, one for keyboard and one for Gamepad mode:
Code:
<StatusBar name="ZO_GroupUnitFrameStatus_Keyboard_Template" inherits="ZO_ArrowStatusBarWithBG" virtual="true">
<Controls>
<Control name="$(parent)BG" hidden="false" />
<Control name="$(parent)Overlay" hidden="false" />
</Controls>
</StatusBar>
<StatusBar name="ZO_GroupUnitFrameStatus_Gamepad_Template" inherits="ZO_DefaultStatusBar" virtual="true">
<Controls>
<Control name="$(parent)BG" hidden="true" />
<Control name="$(parent)Overlay" hidden="true" />
</Controls>
</StatusBar>
And the lua file contains info how these virtual rows are used to create 1 row for each group member, also showing you how the actual group members are read and looped.
local function CreateGroupsAfter(startIndex)
https://github.com/esoui/esoui/blob/...ames.lua#L2134
Lua Code:
local groupSize = GetGroupSize()
local combinedGroupSize = UnitFrames:GetCombinedGroupSize()
for i = startIndex, GROUP_SIZE_MAX do
local unitTag = GetGroupUnitTagByIndex(i) --returns a string unitTag which will be "group<groupIndexHere>" e.g. group1, group2 and so on. Info: The unitTag "Player" -> That's your current character (not returned by this function here!!!)
if unitTag then
CreateGroupMember(i, unitTag, combinedGroupSize)
end
end
...
--and so on
So the function CreateGroupMember
https://github.com/esoui/esoui/blob/...ames.lua#L2107
will create a new row at the XML UI, usng the template defined above ZO_GroupUnitFrameStatus_Keyboard_Template then I'd assume, via function
UnitFrames:CreateFrame
where UnitFrames is the object created for the class ZO_UnitFrames_Manager
https://github.com/esoui/esoui/blob/...ames.lua#L2681
So it will call ZO_UnitFrames_Manager:CreateFrame
https://github.com/esoui/esoui/blob/...rames.lua#L309
It will then call the next class unitFrame = ZO_UnitFrameObject:New ->
https://github.com/esoui/esoui/blob/...rames.lua#L313
Which will internally call the ZO_UnitFrameObject:Initialize function
https://github.com/esoui/esoui/blob/...ames.lua#L1138
This reads the platform uses (pc, console, etc.) and the input type keyboard or gamepad, reads the template from XML to use, and then uses functions like self:AddFadeComponent or ZO_UnitFrameBar:New to create new fading controls or bar controls (self.healthBar -> health e.g.) to show at the UI.
I guess that's not that easy to understand but I cannot explain it better. If you start with ESO addon creation you maybe should first do some more easy tasks -> Or try and error until it works
Check the WIKI for tutorials with XML, and expalining controls and anchors etc. if you are new to this too:
https://wiki.esoui.com/Circonians_Stamina_Bar_Tutorial
https://wiki.esoui.com/Control:SetAnchor
https://wiki.esoui.com/UI_XML
https://wiki.esoui.com/How_to..._do_UI_element_X