vrtc / chorus (public) (License: CC0) (since 2023-08-12) (hash sha1)
World of Warcraft add-on stub. The overall goal is to create a specialized raid frame.
List of commits:
Subject Hash Author Date (UTC)
feat!: add raid group profiles 57b4b36b800beaf6843bc3cfc954340d914b71fa Vladyslav Bondarenko 2024-06-14 22:19:47
feat!: prepare nightly release 0.8.0 e11a3bbdfad85e4c4716e4ecfd3e7f5b8f009058 Vladyslav Bondarenko 2024-06-14 15:33:18
fix: globalize string constants cc5893ba83f388c0a58b183321f63867b10248ad Vladyslav Bondarenko 2024-06-14 15:12:35
feat: always show player frame 1eb20501d74ee931691f02abc31a176569a7d299 Vladyslav Bondarenko 2024-06-14 14:34:42
feat: add header background to larger units ef000eebb9ef5a8211f6aff47e2a1c38a3badf4a Vladyslav Bondarenko 2024-06-14 13:54:04
feat: unknown unit level is rendered as red f830dfcf22bf2f8e5c087de8f42a89f6733f5269 Vladyslav Bondarenko 2024-06-14 13:51:34
fix: make unit level text bold 2a4ea6baea2107a3f1ec8ab7bca4edb169a4575b Vladyslav Bondarenko 2024-06-14 13:51:01
feat: narrow backdrop for larger frames 77b080701c68bb8f6e353e15586f0e8063266d5c Vladyslav Bondarenko 2024-06-14 11:24:16
fix!: clever defaults for backdrop dimensions 2b894d724b4c9c97f5c27b98f43bf3e4616cb1ed Vladyslav Bondarenko 2024-06-14 10:58:30
fix!: render backdrop reliably for TOT frames 2f45f0afaee507cc5fc88a9892bf4474c644f173 Vladyslav Bondarenko 2024-06-14 09:55:18
fix: solo and party frames must never overlap 6776655fe59277688c4cb6b19d00f6dcf41cca89 Vladyslav Bondarenko 2024-06-14 09:13:23
fix: tiny unit frame border visual glitch 14090239c7535614ce4a02c7ee06d8204dd90a74 Vladyslav Bondarenko 2024-06-13 14:36:22
fix: generalize frame backdrop color picker 9960ac95ee03be3d8c93c49f773b850b057d9502 Vladyslav Bondarenko 2024-06-12 10:04:46
fix: remove some obsolete notes 2e0bd3ec7f1e445473836d4a97817dece7e8e4c3 Vladyslav Bondarenko 2024-06-12 09:11:32
fix: show aura tooltip given spell name 75860ee70c3e2fdcef8c51b56e86eaa3178c9a0d Vladyslav Bondarenko 2024-02-06 22:04:10
fix!: correct aura weight map validator 9df60b2e2da12d9f6f1470610a638aa6de3b31e7 Vladyslav Bondarenko 2024-01-28 22:27:59
doc: add `ldoc` annotations 0f7e2cbf74fe354c1c34fc9cd63b8b53237f8682 Vladyslav Bondarenko 2024-01-28 21:58:55
fix!: load the add-on correctly b857b8764be59195f65137f2bd577289d7c76cc9 Vladyslav Bondarenko 2024-01-28 04:46:25
release: prepare release 0.7.0 ba97f4d7e7eb9ff984d88d75a740e24c0e90bb05 Vladyslav Bondarenko 2024-01-27 15:10:27
doc: add recipe to produce documentation de290d89eee64d11752024b3b7dd5eeea062414e Vladyslav Bondarenko 2024-01-27 15:03:45
Commit 57b4b36b800beaf6843bc3cfc954340d914b71fa - feat!: add raid group profiles
Add three separate frame configurations for raid groups of different
size. The most appropriate configuration is selected automatically at
runtime, depending on the current size of the raid group.

WARNING: The mechanism of selecting the raid profile is naive and
requires testing.

NOTE: The frames for __each__ profile are allocated at initialization.
Frames are not reused between profiles. This decreases performance, but
eases development. This quirk is also the reason why XML descriptors
were chosen instead of dynamic Lua scripting to achieve the same result,
since XML descriptors supposedly execute quicker.
Author: Vladyslav Bondarenko
Author date (UTC): 2024-06-14 22:19
Committer name: Vladyslav Bondarenko
Committer date (UTC): 2024-06-14 22:19
Parent(s): 6ecd623a5e6b07954012d8e93f24c11cd3a18911
Signer:
Signing key: EFF9624877D25D02
Signing status: E
Tree: cb4aca63b0d2a5b57abb8d1162058fa13979f3fc
File Lines added Lines deleted
ChorusRaidFrameGenerator.mk 13 0
Makefile 6 2
bin/ChorusRaidFrameGenerator.lua 249 0
src/Chorus.xml 41 39
src/ChorusGroupFrame.lua 19 7
src/ChorusLargeRaidFrame.xml 508 0
src/ChorusRaidFrame.lua 0 13
src/ChorusRaidFrame.xml 0 328
src/ChorusRaidFrameTemplate.xml 15 0
src/ChorusSmallRaidFrame.xml 508 0
src/ChorusTinyRaidFrame.xml 508 0
src/Makefile 4 2
File ChorusRaidFrameGenerator.mk added (mode: 100644) (index 0000000..9d77161)
1 XMLLINT_FORMAT = ${XMLLINT} ${XMLLINTFLAGS} --format -
2
3 ${srcdir}src/ChorusTinyRaidFrame.xml: ${srcdir}bin/ChorusRaidFrameGenerator.lua ${srcdir}src/ChorusRaidFrameTemplate.xml
4 ${LUA} ${LUAFLAGS} ${srcdir}bin/ChorusRaidFrameGenerator.lua ChorusTinyRaidFrame ChorusTinyRaidUnitFrameTemplate 64 16 | ${XMLLINT_FORMAT} > $@
5
6 ${srcdir}src/ChorusSmallRaidFrame.xml: ${srcdir}bin/ChorusRaidFrameGenerator.lua ${srcdir}src/ChorusRaidFrameTemplate.xml
7 ${LUA} ${LUAFLAGS} ${srcdir}bin/ChorusRaidFrameGenerator.lua ChorusSmallRaidFrame ChorusSmallRaidUnitFrameTemplate 96 32 | ${XMLLINT_FORMAT} > $@
8
9 ${srcdir}src/ChorusLargeRaidFrame.xml: ${srcdir}bin/ChorusRaidFrameGenerator.lua ${srcdir}src/ChorusRaidFrameTemplate.xml
10 ${LUA} ${LUAFLAGS} ${srcdir}bin/ChorusRaidFrameGenerator.lua ChorusLargeRaidFrame ChorusLargeRaidUnitFrameTemplate 160 100 | ${XMLLINT_FORMAT} > $@
11
12 ${srcdir}src/ChorusHugeRaidFrame.xml: ${srcdir}bin/ChorusRaidFrameGenerator.lua ${srcdir}src/ChorusRaidFrameTemplate.xml
13 ${LUA} ${LUAFLAGS} ${srcdir}bin/ChorusRaidFrameGenerator.lua ChorusHugeRaidFrame ChorusHugeRaidUnitFrameTemplate 200 150 | ${XMLLINT_FORMAT} > $@
File Makefile changed (mode: 100644) (index 9027349..8e3b5b2)
... ... LUACHECKFLAGS=--config ${srcdir}etc/luacheckrc.lua
20 20 LDOC=ldoc LDOC=ldoc
21 21 LDOCFLAGS= LDOCFLAGS=
22 22
23 # WARNING: XML encoding is significant, it's "UTF-8" and __not__ "UTF8".
23 24 XMLLINT=xmllint XMLLINT=xmllint
24 XMLLINTFLAGS=--nonet --schema ${srcdir}share/FrameXML/UI.xsd
25 XMLLINTFLAGS=--nonet --encode UTF-8 --schema ${srcdir}share/FrameXML/UI.xsd
25 26
26 27 INSTALL=unzip -d ${DESTDIR}Interface/AddOns INSTALL=unzip -d ${DESTDIR}Interface/AddOns
27 28
 
... ... VERSION ?= ${shell ${GIT} ${GITFLAGS} describe}
39 40 # File `src/Chorus.lua` must be loaded first by the tools. # File `src/Chorus.lua` must be loaded first by the tools.
40 41 include ${srcdir}src/Makefile include ${srcdir}src/Makefile
41 42
42 all: | check
43 # Generate XML templates for raid frames.
44 include ${srcdir}ChorusRaidFrameGenerator.mk
45
46 all: ${LUAFILES} ${XMLFILES} | check
43 47
44 48 dist: ${NAME}-${VERSION}.zip | check dist: ${NAME}-${VERSION}.zip | check
45 49
File bin/ChorusRaidFrameGenerator.lua added (mode: 100644) (index 0000000..f63fcad)
1 local mod = {}
2
3
4 local header = [[
5 <?xml version="1.0" encoding="UTF-8"?>
6 <Ui xmlns="http://www.blizzard.com/wow/ui/">
7 <!-- See `ChorusRaidFrameTemplate.xml` for the unit button template declarations. -->
8 <Frame name="%s" hidden="true">
9 <Size>
10 <AbsDimension x="%d" y="%d"/>
11 </Size>
12 <Anchors>
13 <Anchor point="CENTER">
14 <Offset>
15 <AbsDimension x="0" y="0"/>
16 </Offset>
17 </Anchor>
18 </Anchors>
19 ]]
20
21 local section = [[
22 <Frame name="%s" inherits="%s" id="%d">
23 <Anchors>
24 <Anchor point="BOTTOMLEFT">
25 <Offset>
26 <AbsDimension x="%d" y="%d"/>
27 </Offset>
28 </Anchor>
29 </Anchors>
30 <Attributes>
31 <Attribute name="unit" type="string" value="%s"/>
32 </Attributes>
33 </Frame>
34 ]]
35
36 local footer = [[
37 </Frame>
38 </Ui>]]
39
40 function mod.emitRaidButton(buttonName, buttonTemplate, buttonId, buttonX, buttonY, unitDesignation)
41 assert(buttonName ~= nil)
42 assert('string' == type(buttonName))
43 assert(string.len(buttonName) >= 1)
44 assert(string.len(buttonName) <= 256)
45
46 assert(buttonTemplate ~= nil)
47 assert('string' == type(buttonTemplate))
48 assert(string.len(buttonTemplate) >= 1)
49 assert(string.len(buttonTemplate) <= 256)
50
51 assert(buttonId ~= nil)
52 assert('number' == type(buttonId))
53 assert(buttonId >= 1)
54 assert(buttonId <= 60)
55 buttonId = math.floor(math.abs(buttonId))
56
57 assert(buttonX ~= nil)
58 assert('number' == type(buttonX))
59 assert(buttonX >= 0)
60 assert(buttonX <= 8192)
61
62 assert(buttonY ~= nil)
63 assert('number' == type(buttonY))
64 assert(buttonY >= 0)
65 assert(buttonY <= 8192)
66
67 assert(unitDesignation ~= nil)
68 assert('string' == type(unitDesignation))
69 assert(string.len(unitDesignation) >= 5)
70 assert(string.len(unitDesignation) <= 6)
71
72 assert('raid' == string.sub(unitDesignation, 1, 4))
73 local n = tonumber(string.sub(unitDesignation, 5))
74 n = math.abs(math.floor(n))
75 assert('number' == type(n))
76 assert(n >= 1)
77 assert(n <= 60)
78
79 print(string.format(section, buttonName, buttonTemplate, buttonId,
80 buttonX, buttonY, unitDesignation))
81 end
82
83 --[[--
84 Emit exactly `groupSizeMax` quantity of buttons, with given `buttonTemplate`,
85 and other settings.
86
87 To make buttons grow horizontally, set `dirX=1` and `dirY=0`.
88
89 To make buttons grow vertically, set `dirX=0` and `dirY=1`.
90
91 WARNING: No other combination of `dirX` and `dirY` are permissible.
92
93 @function mod.emitRaidGroup
94 @tparam string raidFrameName the designation by which the root raid frame can be accessed at runtime as a global variable
95 @tparam string buttonTemplate the designation of one of several permissible button templates
96 @tparam number buttonWidth the width of a single button
97 @tparam number buttonHeight the height of a single button
98 @tparam number padding zero or positive float, the size of the gaps between individual buttons
99 @tparam number ox the origin point X component
100 @tparam number oy the origin point Y component
101 @tparam number dirX movement direction normalized vector X component
102 @tparam number dirY movement direction normalized vector Y component
103 @tparam number groupSizeMax positive integer, assumed a constant, the exact number of buttons emitted
104 @tparam number groupNumber positive integer, the numerical identifier of the group
105 @return nothing, prints to standard output
106 ]]
107 function mod.emitRaidGroup(raidFrameName, buttonTemplate, buttonWidth,
108 buttonHeight, padding, ox, oy, dirX, dirY, groupSizeMax, groupNumber)
109
110 assert(groupNumber ~= nil)
111 assert('number' == type(groupNumber))
112 assert(groupNumber >= 1)
113 assert(groupNumber <= 8)
114 groupNumber = math.abs(math.ceil(groupNumber))
115
116 assert(5 == groupSizeMax)
117
118 assert(ox >= 0)
119
120 assert(oy >= 0)
121
122 assert(padding >= 0)
123 assert(padding <= 36)
124
125 assert(dirX ~= nil)
126 assert('number' == type(dirX))
127 dirX = math.abs(math.ceil(dirX))
128
129 assert(dirY ~= nil)
130 assert('number' == type(dirY))
131 dirY = math.abs(math.ceil(dirY))
132
133 assert((1 == dirX and 0 == dirY) or
134 (0 == dirX and 1 == dirY))
135
136 print(string.format('<!-- Group %d. -->', groupNumber))
137 local i = 0
138 local buttonId = math.abs(math.ceil((groupNumber - 1) * groupSizeMax))
139 while (i < groupSizeMax) do
140 buttonId = buttonId + 1
141 local buttonName = string.format('%sButton%02d', raidFrameName, buttonId)
142 --[[ Button template defined earlier. ]]--
143 local w = buttonWidth * i + padding * i
144 local h = buttonHeight * i + padding * i
145 local buttonX = ox + w * dirX
146 local buttonY = oy + h * dirY
147 local unitDesignation = string.format('raid%d', buttonId)
148
149 mod.emitRaidButton(buttonName, buttonTemplate,
150 buttonId, buttonX, buttonY, unitDesignation)
151
152 i = i + 1
153 end
154 end
155
156 function mod.emitRaidFrame(raidFrameName, buttonTemplate, buttonWidth, buttonHeight)
157 assert(raidFrameName ~= nil)
158 assert('string' == type(raidFrameName))
159 assert(string.len(raidFrameName) >= 1)
160 assert(string.len(raidFrameName) <= 256)
161
162 assert(buttonTemplate ~= nil)
163 assert('string' == type(buttonTemplate))
164 assert('ChorusTinyRaidUnitFrameTemplate' == buttonTemplate or
165 'ChorusSmallRaidUnitFrameTemplate' == buttonTemplate or
166 'ChorusLargeRaidUnitFrameTemplate' == buttonTemplate or
167 'ChorusHugeRaidUnitFrameTemplate' == buttonTemplate)
168
169 assert(buttonWidth ~= nil)
170 buttonWidth = tonumber(buttonWidth)
171 assert('number' == type(buttonWidth))
172 assert(buttonWidth >= 12)
173 assert(buttonWidth <= 320)
174
175 assert(buttonHeight ~= nil)
176 buttonHeight = tonumber(buttonHeight)
177 assert('number' == type(buttonHeight))
178 assert(buttonHeight >= 12)
179 assert(buttonHeight <= 320)
180
181 local raidSizeMax = 40
182 local groupSizeMax = 5
183
184 local groupQuantity = math.ceil(raidSizeMax / groupSizeMax)
185
186 --[[ The table of raid buttons grows vertically from bottom left to top
187 right, indefinitely. However, when the limit of rows is reached, the
188 vertical position of the cursor is reset, and horizonal position is
189 offset, as to allow the table to grow horizontally. The purpose is to
190 save visual screen space for the end user. ]]--
191
192 --[[ Effectively, by default, the raid frame is split into two blocks
193 of 4 groups x 5 members. ]]--
194
195 local blockQuantity = 2
196 assert(blockQuantity > 0)
197 blockQuantity = math.ceil(math.abs(blockQuantity))
198
199 local padding = 6
200 assert(padding >= 0)
201
202 local raidFrameWidth = groupSizeMax * buttonWidth
203 local raidFrameHeight = groupQuantity * buttonHeight
204
205 print(string.format(header, raidFrameName, raidFrameWidth,
206 raidFrameHeight))
207
208 print('<Frames>')
209
210 local dirX = 1
211 local dirY = 0
212
213 local block = 0
214 local groupNumber = 0
215 while (block < blockQuantity) do
216 print(string.format('<!-- Block %d. -->', block + 1))
217
218 local ox = buttonWidth * groupSizeMax * block
219 local i = 0
220 while (i < groupQuantity / blockQuantity) do
221 groupNumber = groupNumber + 1
222
223 local oy = buttonHeight * groupSizeMax * i
224
225 mod.emitRaidGroup(raidFrameName, buttonTemplate,
226 buttonWidth, buttonHeight, padding, ox, oy, dirX, dirY,
227 groupSizeMax, groupNumber)
228 i = i + 1
229 end
230 block = block + 1
231 end
232
233 print('</Frames>')
234 print(footer)
235 end
236
237 function mod.main(...)
238 mod.emitRaidFrame(...)
239 end
240
241 ChorusRaidFrameGenerator = mod
242
243 do
244 if arg ~= nil and 'table' == type(arg) then
245 mod.main(unpack(arg))
246 end
247
248 return mod
249 end
File src/Chorus.xml changed (mode: 100644) (index 076431a..4d1296b)
1 1 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
2 2 <Ui xmlns="http://www.blizzard.com/wow/ui/"> <Ui xmlns="http://www.blizzard.com/wow/ui/">
3 <Script file="Chorus.lua"/>
4 <Script file="ChorusTest.lua"/>
5 <Script file="local.lua"/>
6 <Include file="ChorusFont.xml"/>
7 <!-- Templates (abstract classes). -->
8 <Include file="ChorusAuraButtonTemplate.xml"/>
9 <Include file="ChorusAuraFrameTemplate.xml"/>
10 <Include file="ChorusAuraTooltipFrameTemplate.xml"/>
11 <Include file="ChorusProgressFrameTemplate.xml"/>
12 <Include file="ChorusHealthFrameTemplate.xml"/>
13 <Include file="ChorusPowerFrameTemplate.xml"/>
14 <Include file="ChorusCastFrameTemplate.xml"/>
15 <Include file="ChorusUnitNameFrameTemplate.xml"/>
16 <Include file="ChorusRangeFrameTemplate.xml"/>
17 <Include file="ChorusThreatFrameTemplate.xml"/>
18 <Include file="ChorusRaidTargetIconFrameTemplate.xml"/>
19 <Include file="ChorusUnitLevelFrameTemplate.xml"/>
20 <Include file="ChorusUnitAffectingCombatFrameTemplate.xml"/>
21 <Include file="ChorusUnitGroupRoleFrameTemplate.xml"/>
22 <Include file="ChorusUnitButtonTemplate.xml"/>
23 <Include file="ChorusUnitFrameTemplate.xml"/>
24 <Include file="ChorusUnitBackgroundTemplate.xml"/>
25 <Include file="ChorusUnitBackdropTemplate.xml"/>
26 <Include file="ChorusHugeUnitFrameTemplate.xml"/>
27 <Include file="ChorusLargeUnitFrameTemplate.xml"/>
28 <Include file="ChorusSmallUnitFrameTemplate.xml"/>
29 <Include file="ChorusTinyUnitFrameTemplate.xml"/>
30 <!-- Frames (concrete classes, interface implementations, object instances). -->
31 <Include file="ChorusPartyFrame.xml"/>
32 <Include file="ChorusRaidFrame.xml"/>
33 <Include file="ChorusPlayerFrame.xml"/>
34 <Include file="ChorusTargetFrame.xml"/>
35 <Include file="ChorusFocusFrame.xml"/>
36 <!--
37 The load order is critically important, especially for
38 `ChorusGroupFrame`. Critical runtime errors may occurr.
39 -->
40 <Include file="ChorusGroupFrame.xml"/>
41 <Include file="ChorusFrame.xml"/>
3 <Script file="Chorus.lua"/>
4 <Script file="ChorusTest.lua"/>
5 <Script file="local.lua"/>
6 <Include file="ChorusFont.xml"/>
7 <!-- Templates (abstract classes). -->
8 <Include file="ChorusAuraButtonTemplate.xml"/>
9 <Include file="ChorusAuraFrameTemplate.xml"/>
10 <Include file="ChorusAuraTooltipFrameTemplate.xml"/>
11 <Include file="ChorusProgressFrameTemplate.xml"/>
12 <Include file="ChorusHealthFrameTemplate.xml"/>
13 <Include file="ChorusPowerFrameTemplate.xml"/>
14 <Include file="ChorusCastFrameTemplate.xml"/>
15 <Include file="ChorusUnitNameFrameTemplate.xml"/>
16 <Include file="ChorusRangeFrameTemplate.xml"/>
17 <Include file="ChorusThreatFrameTemplate.xml"/>
18 <Include file="ChorusRaidTargetIconFrameTemplate.xml"/>
19 <Include file="ChorusUnitLevelFrameTemplate.xml"/>
20 <Include file="ChorusUnitAffectingCombatFrameTemplate.xml"/>
21 <Include file="ChorusUnitGroupRoleFrameTemplate.xml"/>
22 <Include file="ChorusUnitButtonTemplate.xml"/>
23 <Include file="ChorusUnitFrameTemplate.xml"/>
24 <Include file="ChorusUnitBackgroundTemplate.xml"/>
25 <Include file="ChorusUnitBackdropTemplate.xml"/>
26 <Include file="ChorusHugeUnitFrameTemplate.xml"/>
27 <Include file="ChorusLargeUnitFrameTemplate.xml"/>
28 <Include file="ChorusSmallUnitFrameTemplate.xml"/>
29 <Include file="ChorusTinyUnitFrameTemplate.xml"/>
30 <!-- `ChorusRaidFrameTemplate.xml` MUST be loaded AFTER all unit templates. -->
31 <Include file="ChorusRaidFrameTemplate.xml"/>
32 <!-- Frames (concrete classes, interface implementations, object instances). -->
33 <Include file="ChorusPartyFrame.xml"/>
34 <Include file="ChorusTinyRaidFrame.xml"/>
35 <Include file="ChorusSmallRaidFrame.xml"/>
36 <Include file="ChorusLargeRaidFrame.xml"/>
37 <Include file="ChorusPlayerFrame.xml"/>
38 <Include file="ChorusTargetFrame.xml"/>
39 <Include file="ChorusFocusFrame.xml"/>
40 <!-- `ChorusGroupFrame.xml` MUST be loaded AFTER all raid, party and solo frames.
41 Otherwise, critical runtime failure will occurr. -->
42 <Include file="ChorusGroupFrame.xml"/>
43 <Include file="ChorusFrame.xml"/>
42 44 </Ui> </Ui>
File src/ChorusGroupFrame.lua changed (mode: 100644) (index 015b043..f0154a1)
... ... demand, instead of the usual event processors, that are then handled by
12 12 ]] ]]
13 13
14 14 local Chorus = Chorus local Chorus = Chorus
15 local ChorusLargeRaidFrame = ChorusLargeRaidFrame
15 16 local ChorusPartyFrame = ChorusPartyFrame local ChorusPartyFrame = ChorusPartyFrame
16 local ChorusRaidFrame = ChorusRaidFrame
17 local ChorusSmallRaidFrame = ChorusSmallRaidFrame
18 local ChorusTinyRaidFrame = ChorusTinyRaidFrame
17 19
18 20 function Chorus.groupFrameMain(self) function Chorus.groupFrameMain(self)
19 21 assert(self ~= nil) assert(self ~= nil)
 
... ... function Chorus.groupFrameMain(self)
21 23 local secureHandler = ChorusGroupSecureHandler local secureHandler = ChorusGroupSecureHandler
22 24 assert(secureHandler ~= nil) assert(secureHandler ~= nil)
23 25
26 assert(ChorusLargeRaidFrame ~= nil)
24 27 assert(ChorusPartyFrame ~= nil) assert(ChorusPartyFrame ~= nil)
25 assert(ChorusPlayerFrame ~= nil)
26 assert(ChorusRaidFrame ~= nil)
28 assert(ChorusSmallRaidFrame ~= nil)
29 assert(ChorusTinyRaidFrame ~= nil)
30
31 --[[ WARNING: There is a naming convention quirk. "Large" raid frame
32 means, that raid buttons are large, and therefore is suiteable for
33 __small__ raids. ]]--
27 34
28 35 secureHandler:SetFrameRef('ChorusPartyFrame', ChorusPartyFrame) secureHandler:SetFrameRef('ChorusPartyFrame', ChorusPartyFrame)
29 secureHandler:SetFrameRef('ChorusRaidFrame', ChorusRaidFrame)
36 secureHandler:SetFrameRef('ChorusTinyRaidFrame', ChorusTinyRaidFrame)
37 secureHandler:SetFrameRef('ChorusSmallRaidFrame', ChorusSmallRaidFrame)
38 secureHandler:SetFrameRef('ChorusLargeRaidFrame', ChorusLargeRaidFrame)
39
40 --[[ NOTE: The order of macro conditionals in the state driver script
41 is significant. The first switch that checks will return the value.]]--
30 42
31 --[[ TODO Add line `[@raid11,exists] ChorusRaid25Frame;` for 25 men raid, etc. ]]--
32 43 --[[ TODO Replace the arena conditional with actual arena frame, when implemented. ]]-- --[[ TODO Replace the arena conditional with actual arena frame, when implemented. ]]--
33 44 RegisterStateDriver(secureHandler, 'group', [[ RegisterStateDriver(secureHandler, 'group', [[
34 45 [@arena1,exists] ChorusPartyFrame; [@arena1,exists] ChorusPartyFrame;
35 [@raid1,exists] ChorusRaidFrame;
46 [@raid1,exists] ChorusLargeRaidFrame;
47 [@raid6,exists] ChorusSmallRaidFrame;
48 [@raid26,exists] ChorusTinyRaidFrame;
36 49 [@party1,exists] ChorusPartyFrame; [@party1,exists] ChorusPartyFrame;
37 50 ]]) ]])
38 51
39 52 --[[ TODO Implement separate or additional arena unit group frame. ]]-- --[[ TODO Implement separate or additional arena unit group frame. ]]--
40 --[[ TODO Implement separate raid profiles for 10, 25 and 40 men raids. ]]--
41 53 secureHandler:WrapScript(secureHandler, 'OnAttributeChanged', [[ secureHandler:WrapScript(secureHandler, 'OnAttributeChanged', [[
42 54 if name ~= 'state-group' then if name ~= 'state-group' then
43 55 return return
File src/ChorusLargeRaidFrame.xml added (mode: 100644) (index 0000000..57891b3)
1 <?xml version="1.0" encoding="UTF-8"?>
2 <Ui xmlns="http://www.blizzard.com/wow/ui/">
3 <!-- See `ChorusRaidFrameTemplate.xml` for the unit button template declarations. -->
4 <Frame name="ChorusLargeRaidFrame" hidden="true">
5 <Size>
6 <AbsDimension x="800" y="800"/>
7 </Size>
8 <Anchors>
9 <Anchor point="CENTER">
10 <Offset>
11 <AbsDimension x="0" y="0"/>
12 </Offset>
13 </Anchor>
14 </Anchors>
15 <Frames>
16 <!-- Block 1. -->
17 <!-- Group 1. -->
18 <Frame name="ChorusLargeRaidFrameButton01" inherits="ChorusLargeRaidUnitFrameTemplate" id="1">
19 <Anchors>
20 <Anchor point="BOTTOMLEFT">
21 <Offset>
22 <AbsDimension x="0" y="0"/>
23 </Offset>
24 </Anchor>
25 </Anchors>
26 <Attributes>
27 <Attribute name="unit" type="string" value="raid1"/>
28 </Attributes>
29 </Frame>
30 <Frame name="ChorusLargeRaidFrameButton02" inherits="ChorusLargeRaidUnitFrameTemplate" id="2">
31 <Anchors>
32 <Anchor point="BOTTOMLEFT">
33 <Offset>
34 <AbsDimension x="166" y="0"/>
35 </Offset>
36 </Anchor>
37 </Anchors>
38 <Attributes>
39 <Attribute name="unit" type="string" value="raid2"/>
40 </Attributes>
41 </Frame>
42 <Frame name="ChorusLargeRaidFrameButton03" inherits="ChorusLargeRaidUnitFrameTemplate" id="3">
43 <Anchors>
44 <Anchor point="BOTTOMLEFT">
45 <Offset>
46 <AbsDimension x="332" y="0"/>
47 </Offset>
48 </Anchor>
49 </Anchors>
50 <Attributes>
51 <Attribute name="unit" type="string" value="raid3"/>
52 </Attributes>
53 </Frame>
54 <Frame name="ChorusLargeRaidFrameButton04" inherits="ChorusLargeRaidUnitFrameTemplate" id="4">
55 <Anchors>
56 <Anchor point="BOTTOMLEFT">
57 <Offset>
58 <AbsDimension x="498" y="0"/>
59 </Offset>
60 </Anchor>
61 </Anchors>
62 <Attributes>
63 <Attribute name="unit" type="string" value="raid4"/>
64 </Attributes>
65 </Frame>
66 <Frame name="ChorusLargeRaidFrameButton05" inherits="ChorusLargeRaidUnitFrameTemplate" id="5">
67 <Anchors>
68 <Anchor point="BOTTOMLEFT">
69 <Offset>
70 <AbsDimension x="664" y="0"/>
71 </Offset>
72 </Anchor>
73 </Anchors>
74 <Attributes>
75 <Attribute name="unit" type="string" value="raid5"/>
76 </Attributes>
77 </Frame>
78 <!-- Group 2. -->
79 <Frame name="ChorusLargeRaidFrameButton06" inherits="ChorusLargeRaidUnitFrameTemplate" id="6">
80 <Anchors>
81 <Anchor point="BOTTOMLEFT">
82 <Offset>
83 <AbsDimension x="0" y="500"/>
84 </Offset>
85 </Anchor>
86 </Anchors>
87 <Attributes>
88 <Attribute name="unit" type="string" value="raid6"/>
89 </Attributes>
90 </Frame>
91 <Frame name="ChorusLargeRaidFrameButton07" inherits="ChorusLargeRaidUnitFrameTemplate" id="7">
92 <Anchors>
93 <Anchor point="BOTTOMLEFT">
94 <Offset>
95 <AbsDimension x="166" y="500"/>
96 </Offset>
97 </Anchor>
98 </Anchors>
99 <Attributes>
100 <Attribute name="unit" type="string" value="raid7"/>
101 </Attributes>
102 </Frame>
103 <Frame name="ChorusLargeRaidFrameButton08" inherits="ChorusLargeRaidUnitFrameTemplate" id="8">
104 <Anchors>
105 <Anchor point="BOTTOMLEFT">
106 <Offset>
107 <AbsDimension x="332" y="500"/>
108 </Offset>
109 </Anchor>
110 </Anchors>
111 <Attributes>
112 <Attribute name="unit" type="string" value="raid8"/>
113 </Attributes>
114 </Frame>
115 <Frame name="ChorusLargeRaidFrameButton09" inherits="ChorusLargeRaidUnitFrameTemplate" id="9">
116 <Anchors>
117 <Anchor point="BOTTOMLEFT">
118 <Offset>
119 <AbsDimension x="498" y="500"/>
120 </Offset>
121 </Anchor>
122 </Anchors>
123 <Attributes>
124 <Attribute name="unit" type="string" value="raid9"/>
125 </Attributes>
126 </Frame>
127 <Frame name="ChorusLargeRaidFrameButton10" inherits="ChorusLargeRaidUnitFrameTemplate" id="10">
128 <Anchors>
129 <Anchor point="BOTTOMLEFT">
130 <Offset>
131 <AbsDimension x="664" y="500"/>
132 </Offset>
133 </Anchor>
134 </Anchors>
135 <Attributes>
136 <Attribute name="unit" type="string" value="raid10"/>
137 </Attributes>
138 </Frame>
139 <!-- Group 3. -->
140 <Frame name="ChorusLargeRaidFrameButton11" inherits="ChorusLargeRaidUnitFrameTemplate" id="11">
141 <Anchors>
142 <Anchor point="BOTTOMLEFT">
143 <Offset>
144 <AbsDimension x="0" y="1000"/>
145 </Offset>
146 </Anchor>
147 </Anchors>
148 <Attributes>
149 <Attribute name="unit" type="string" value="raid11"/>
150 </Attributes>
151 </Frame>
152 <Frame name="ChorusLargeRaidFrameButton12" inherits="ChorusLargeRaidUnitFrameTemplate" id="12">
153 <Anchors>
154 <Anchor point="BOTTOMLEFT">
155 <Offset>
156 <AbsDimension x="166" y="1000"/>
157 </Offset>
158 </Anchor>
159 </Anchors>
160 <Attributes>
161 <Attribute name="unit" type="string" value="raid12"/>
162 </Attributes>
163 </Frame>
164 <Frame name="ChorusLargeRaidFrameButton13" inherits="ChorusLargeRaidUnitFrameTemplate" id="13">
165 <Anchors>
166 <Anchor point="BOTTOMLEFT">
167 <Offset>
168 <AbsDimension x="332" y="1000"/>
169 </Offset>
170 </Anchor>
171 </Anchors>
172 <Attributes>
173 <Attribute name="unit" type="string" value="raid13"/>
174 </Attributes>
175 </Frame>
176 <Frame name="ChorusLargeRaidFrameButton14" inherits="ChorusLargeRaidUnitFrameTemplate" id="14">
177 <Anchors>
178 <Anchor point="BOTTOMLEFT">
179 <Offset>
180 <AbsDimension x="498" y="1000"/>
181 </Offset>
182 </Anchor>
183 </Anchors>
184 <Attributes>
185 <Attribute name="unit" type="string" value="raid14"/>
186 </Attributes>
187 </Frame>
188 <Frame name="ChorusLargeRaidFrameButton15" inherits="ChorusLargeRaidUnitFrameTemplate" id="15">
189 <Anchors>
190 <Anchor point="BOTTOMLEFT">
191 <Offset>
192 <AbsDimension x="664" y="1000"/>
193 </Offset>
194 </Anchor>
195 </Anchors>
196 <Attributes>
197 <Attribute name="unit" type="string" value="raid15"/>
198 </Attributes>
199 </Frame>
200 <!-- Group 4. -->
201 <Frame name="ChorusLargeRaidFrameButton16" inherits="ChorusLargeRaidUnitFrameTemplate" id="16">
202 <Anchors>
203 <Anchor point="BOTTOMLEFT">
204 <Offset>
205 <AbsDimension x="0" y="1500"/>
206 </Offset>
207 </Anchor>
208 </Anchors>
209 <Attributes>
210 <Attribute name="unit" type="string" value="raid16"/>
211 </Attributes>
212 </Frame>
213 <Frame name="ChorusLargeRaidFrameButton17" inherits="ChorusLargeRaidUnitFrameTemplate" id="17">
214 <Anchors>
215 <Anchor point="BOTTOMLEFT">
216 <Offset>
217 <AbsDimension x="166" y="1500"/>
218 </Offset>
219 </Anchor>
220 </Anchors>
221 <Attributes>
222 <Attribute name="unit" type="string" value="raid17"/>
223 </Attributes>
224 </Frame>
225 <Frame name="ChorusLargeRaidFrameButton18" inherits="ChorusLargeRaidUnitFrameTemplate" id="18">
226 <Anchors>
227 <Anchor point="BOTTOMLEFT">
228 <Offset>
229 <AbsDimension x="332" y="1500"/>
230 </Offset>
231 </Anchor>
232 </Anchors>
233 <Attributes>
234 <Attribute name="unit" type="string" value="raid18"/>
235 </Attributes>
236 </Frame>
237 <Frame name="ChorusLargeRaidFrameButton19" inherits="ChorusLargeRaidUnitFrameTemplate" id="19">
238 <Anchors>
239 <Anchor point="BOTTOMLEFT">
240 <Offset>
241 <AbsDimension x="498" y="1500"/>
242 </Offset>
243 </Anchor>
244 </Anchors>
245 <Attributes>
246 <Attribute name="unit" type="string" value="raid19"/>
247 </Attributes>
248 </Frame>
249 <Frame name="ChorusLargeRaidFrameButton20" inherits="ChorusLargeRaidUnitFrameTemplate" id="20">
250 <Anchors>
251 <Anchor point="BOTTOMLEFT">
252 <Offset>
253 <AbsDimension x="664" y="1500"/>
254 </Offset>
255 </Anchor>
256 </Anchors>
257 <Attributes>
258 <Attribute name="unit" type="string" value="raid20"/>
259 </Attributes>
260 </Frame>
261 <!-- Block 2. -->
262 <!-- Group 5. -->
263 <Frame name="ChorusLargeRaidFrameButton21" inherits="ChorusLargeRaidUnitFrameTemplate" id="21">
264 <Anchors>
265 <Anchor point="BOTTOMLEFT">
266 <Offset>
267 <AbsDimension x="800" y="0"/>
268 </Offset>
269 </Anchor>
270 </Anchors>
271 <Attributes>
272 <Attribute name="unit" type="string" value="raid21"/>
273 </Attributes>
274 </Frame>
275 <Frame name="ChorusLargeRaidFrameButton22" inherits="ChorusLargeRaidUnitFrameTemplate" id="22">
276 <Anchors>
277 <Anchor point="BOTTOMLEFT">
278 <Offset>
279 <AbsDimension x="966" y="0"/>
280 </Offset>
281 </Anchor>
282 </Anchors>
283 <Attributes>
284 <Attribute name="unit" type="string" value="raid22"/>
285 </Attributes>
286 </Frame>
287 <Frame name="ChorusLargeRaidFrameButton23" inherits="ChorusLargeRaidUnitFrameTemplate" id="23">
288 <Anchors>
289 <Anchor point="BOTTOMLEFT">
290 <Offset>
291 <AbsDimension x="1132" y="0"/>
292 </Offset>
293 </Anchor>
294 </Anchors>
295 <Attributes>
296 <Attribute name="unit" type="string" value="raid23"/>
297 </Attributes>
298 </Frame>
299 <Frame name="ChorusLargeRaidFrameButton24" inherits="ChorusLargeRaidUnitFrameTemplate" id="24">
300 <Anchors>
301 <Anchor point="BOTTOMLEFT">
302 <Offset>
303 <AbsDimension x="1298" y="0"/>
304 </Offset>
305 </Anchor>
306 </Anchors>
307 <Attributes>
308 <Attribute name="unit" type="string" value="raid24"/>
309 </Attributes>
310 </Frame>
311 <Frame name="ChorusLargeRaidFrameButton25" inherits="ChorusLargeRaidUnitFrameTemplate" id="25">
312 <Anchors>
313 <Anchor point="BOTTOMLEFT">
314 <Offset>
315 <AbsDimension x="1464" y="0"/>
316 </Offset>
317 </Anchor>
318 </Anchors>
319 <Attributes>
320 <Attribute name="unit" type="string" value="raid25"/>
321 </Attributes>
322 </Frame>
323 <!-- Group 6. -->
324 <Frame name="ChorusLargeRaidFrameButton26" inherits="ChorusLargeRaidUnitFrameTemplate" id="26">
325 <Anchors>
326 <Anchor point="BOTTOMLEFT">
327 <Offset>
328 <AbsDimension x="800" y="500"/>
329 </Offset>
330 </Anchor>
331 </Anchors>
332 <Attributes>
333 <Attribute name="unit" type="string" value="raid26"/>
334 </Attributes>
335 </Frame>
336 <Frame name="ChorusLargeRaidFrameButton27" inherits="ChorusLargeRaidUnitFrameTemplate" id="27">
337 <Anchors>
338 <Anchor point="BOTTOMLEFT">
339 <Offset>
340 <AbsDimension x="966" y="500"/>
341 </Offset>
342 </Anchor>
343 </Anchors>
344 <Attributes>
345 <Attribute name="unit" type="string" value="raid27"/>
346 </Attributes>
347 </Frame>
348 <Frame name="ChorusLargeRaidFrameButton28" inherits="ChorusLargeRaidUnitFrameTemplate" id="28">
349 <Anchors>
350 <Anchor point="BOTTOMLEFT">
351 <Offset>
352 <AbsDimension x="1132" y="500"/>
353 </Offset>
354 </Anchor>
355 </Anchors>
356 <Attributes>
357 <Attribute name="unit" type="string" value="raid28"/>
358 </Attributes>
359 </Frame>
360 <Frame name="ChorusLargeRaidFrameButton29" inherits="ChorusLargeRaidUnitFrameTemplate" id="29">
361 <Anchors>
362 <Anchor point="BOTTOMLEFT">
363 <Offset>
364 <AbsDimension x="1298" y="500"/>
365 </Offset>
366 </Anchor>
367 </Anchors>
368 <Attributes>
369 <Attribute name="unit" type="string" value="raid29"/>
370 </Attributes>
371 </Frame>
372 <Frame name="ChorusLargeRaidFrameButton30" inherits="ChorusLargeRaidUnitFrameTemplate" id="30">
373 <Anchors>
374 <Anchor point="BOTTOMLEFT">
375 <Offset>
376 <AbsDimension x="1464" y="500"/>
377 </Offset>
378 </Anchor>
379 </Anchors>
380 <Attributes>
381 <Attribute name="unit" type="string" value="raid30"/>
382 </Attributes>
383 </Frame>
384 <!-- Group 7. -->
385 <Frame name="ChorusLargeRaidFrameButton31" inherits="ChorusLargeRaidUnitFrameTemplate" id="31">
386 <Anchors>
387 <Anchor point="BOTTOMLEFT">
388 <Offset>
389 <AbsDimension x="800" y="1000"/>
390 </Offset>
391 </Anchor>
392 </Anchors>
393 <Attributes>
394 <Attribute name="unit" type="string" value="raid31"/>
395 </Attributes>
396 </Frame>
397 <Frame name="ChorusLargeRaidFrameButton32" inherits="ChorusLargeRaidUnitFrameTemplate" id="32">
398 <Anchors>
399 <Anchor point="BOTTOMLEFT">
400 <Offset>
401 <AbsDimension x="966" y="1000"/>
402 </Offset>
403 </Anchor>
404 </Anchors>
405 <Attributes>
406 <Attribute name="unit" type="string" value="raid32"/>
407 </Attributes>
408 </Frame>
409 <Frame name="ChorusLargeRaidFrameButton33" inherits="ChorusLargeRaidUnitFrameTemplate" id="33">
410 <Anchors>
411 <Anchor point="BOTTOMLEFT">
412 <Offset>
413 <AbsDimension x="1132" y="1000"/>
414 </Offset>
415 </Anchor>
416 </Anchors>
417 <Attributes>
418 <Attribute name="unit" type="string" value="raid33"/>
419 </Attributes>
420 </Frame>
421 <Frame name="ChorusLargeRaidFrameButton34" inherits="ChorusLargeRaidUnitFrameTemplate" id="34">
422 <Anchors>
423 <Anchor point="BOTTOMLEFT">
424 <Offset>
425 <AbsDimension x="1298" y="1000"/>
426 </Offset>
427 </Anchor>
428 </Anchors>
429 <Attributes>
430 <Attribute name="unit" type="string" value="raid34"/>
431 </Attributes>
432 </Frame>
433 <Frame name="ChorusLargeRaidFrameButton35" inherits="ChorusLargeRaidUnitFrameTemplate" id="35">
434 <Anchors>
435 <Anchor point="BOTTOMLEFT">
436 <Offset>
437 <AbsDimension x="1464" y="1000"/>
438 </Offset>
439 </Anchor>
440 </Anchors>
441 <Attributes>
442 <Attribute name="unit" type="string" value="raid35"/>
443 </Attributes>
444 </Frame>
445 <!-- Group 8. -->
446 <Frame name="ChorusLargeRaidFrameButton36" inherits="ChorusLargeRaidUnitFrameTemplate" id="36">
447 <Anchors>
448 <Anchor point="BOTTOMLEFT">
449 <Offset>
450 <AbsDimension x="800" y="1500"/>
451 </Offset>
452 </Anchor>
453 </Anchors>
454 <Attributes>
455 <Attribute name="unit" type="string" value="raid36"/>
456 </Attributes>
457 </Frame>
458 <Frame name="ChorusLargeRaidFrameButton37" inherits="ChorusLargeRaidUnitFrameTemplate" id="37">
459 <Anchors>
460 <Anchor point="BOTTOMLEFT">
461 <Offset>
462 <AbsDimension x="966" y="1500"/>
463 </Offset>
464 </Anchor>
465 </Anchors>
466 <Attributes>
467 <Attribute name="unit" type="string" value="raid37"/>
468 </Attributes>
469 </Frame>
470 <Frame name="ChorusLargeRaidFrameButton38" inherits="ChorusLargeRaidUnitFrameTemplate" id="38">
471 <Anchors>
472 <Anchor point="BOTTOMLEFT">
473 <Offset>
474 <AbsDimension x="1132" y="1500"/>
475 </Offset>
476 </Anchor>
477 </Anchors>
478 <Attributes>
479 <Attribute name="unit" type="string" value="raid38"/>
480 </Attributes>
481 </Frame>
482 <Frame name="ChorusLargeRaidFrameButton39" inherits="ChorusLargeRaidUnitFrameTemplate" id="39">
483 <Anchors>
484 <Anchor point="BOTTOMLEFT">
485 <Offset>
486 <AbsDimension x="1298" y="1500"/>
487 </Offset>
488 </Anchor>
489 </Anchors>
490 <Attributes>
491 <Attribute name="unit" type="string" value="raid39"/>
492 </Attributes>
493 </Frame>
494 <Frame name="ChorusLargeRaidFrameButton40" inherits="ChorusLargeRaidUnitFrameTemplate" id="40">
495 <Anchors>
496 <Anchor point="BOTTOMLEFT">
497 <Offset>
498 <AbsDimension x="1464" y="1500"/>
499 </Offset>
500 </Anchor>
501 </Anchors>
502 <Attributes>
503 <Attribute name="unit" type="string" value="raid40"/>
504 </Attributes>
505 </Frame>
506 </Frames>
507 </Frame>
508 </Ui>
File src/ChorusRaidFrame.lua deleted (index 03dbee5..0000000)
1 --[[--
2 `ChorusRaidFrame` is a primitive raid group frame.
3
4 @submodule chorus
5 ]]
6
7 local function raidFrameMain(self)
8 assert(self ~= nil)
9 end
10
11 Chorus.raidFrameMain = function(...)
12 return raidFrameMain(...)
13 end
File src/ChorusRaidFrame.xml deleted (index 99454e8..0000000)
1 <?xml version="1.0" encoding="UTF-8"?>
2 <Ui xmlns="http://www.blizzard.com/wow/ui/">
3 <Script file="ChorusRaidFrame.lua"/>
4 <Frame name="ChorusSmallRaidUnitFrameTemplate" inherits="ChorusSmallUnitFrameTemplate,ChorusMemberUnitFrameTemplate" virtual="true"/>
5 <Frame name="ChorusRaidFrame" hidden="true">
6 <Size>
7 <AbsDimension x="500" y="400"/>
8 </Size>
9 <Anchors>
10 <Anchor point="CENTER">
11 <Offset>
12 <AbsDimension x="0" y="0"/>
13 </Offset>
14 </Anchor>
15 </Anchors>
16 <Scripts>
17 <OnLoad>Chorus.raidFrameMain(self);</OnLoad>
18 </Scripts>
19 <Frames>
20 <!-- Row 1 -->
21 <Frame name="ChorusRaidFrame1" inherits="ChorusSmallRaidUnitFrameTemplate">
22 <Anchors>
23 <Anchor point="BOTTOMLEFT">
24 <Offset>
25 <AbsDimension x="0" y="0"/>
26 </Offset>
27 </Anchor>
28 </Anchors>
29 <Attributes>
30 <Attribute name="unit" type="string" value="raid1"/>
31 </Attributes>
32 </Frame>
33 <Frame name="ChorusRaidFrame2" inherits="ChorusSmallRaidUnitFrameTemplate">
34 <Anchors>
35 <Anchor point="BOTTOMLEFT">
36 <Offset>
37 <AbsDimension x="100" y="0"/>
38 </Offset>
39 </Anchor>
40 </Anchors>
41 <Attributes>
42 <Attribute name="unit" type="string" value="raid2"/>
43 </Attributes>
44 </Frame>
45 <Frame name="ChorusRaidFrame3" inherits="ChorusSmallRaidUnitFrameTemplate">
46 <Anchors>
47 <Anchor point="BOTTOMLEFT">
48 <Offset>
49 <AbsDimension x="200" y="0"/>
50 </Offset>
51 </Anchor>
52 </Anchors>
53 <Attributes>
54 <Attribute name="unit" type="string" value="raid3"/>
55 </Attributes>
56 </Frame>
57 <Frame name="ChorusRaidFrame4" inherits="ChorusSmallRaidUnitFrameTemplate">
58 <Anchors>
59 <Anchor point="BOTTOMLEFT">
60 <Offset>
61 <AbsDimension x="300" y="0"/>
62 </Offset>
63 </Anchor>
64 </Anchors>
65 <Attributes>
66 <Attribute name="unit" type="string" value="raid4"/>
67 </Attributes>
68 </Frame>
69 <Frame name="ChorusRaidFrame5" inherits="ChorusSmallRaidUnitFrameTemplate">
70 <Anchors>
71 <Anchor point="BOTTOMLEFT">
72 <Offset>
73 <AbsDimension x="400" y="0"/>
74 </Offset>
75 </Anchor>
76 </Anchors>
77 <Attributes>
78 <Attribute name="unit" type="string" value="raid5"/>
79 </Attributes>
80 </Frame>
81 <!-- Row 2 -->
82 <Frame name="ChorusRaidFrame6" inherits="ChorusSmallRaidUnitFrameTemplate">
83 <Anchors>
84 <Anchor point="BOTTOMLEFT">
85 <Offset>
86 <AbsDimension x="0" y="50"/>
87 </Offset>
88 </Anchor>
89 </Anchors>
90 <Attributes>
91 <Attribute name="unit" type="string" value="raid6"/>
92 </Attributes>
93 </Frame>
94 <Frame name="ChorusRaidFrame7" inherits="ChorusSmallRaidUnitFrameTemplate">
95 <Anchors>
96 <Anchor point="BOTTOMLEFT">
97 <Offset>
98 <AbsDimension x="100" y="50"/>
99 </Offset>
100 </Anchor>
101 </Anchors>
102 <Attributes>
103 <Attribute name="unit" type="string" value="raid7"/>
104 </Attributes>
105 </Frame>
106 <Frame name="ChorusRaidFrame8" inherits="ChorusSmallRaidUnitFrameTemplate">
107 <Anchors>
108 <Anchor point="BOTTOMLEFT">
109 <Offset>
110 <AbsDimension x="200" y="50"/>
111 </Offset>
112 </Anchor>
113 </Anchors>
114 <Attributes>
115 <Attribute name="unit" type="string" value="raid8"/>
116 </Attributes>
117 </Frame>
118 <Frame name="ChorusRaidFrame9" inherits="ChorusSmallRaidUnitFrameTemplate">
119 <Anchors>
120 <Anchor point="BOTTOMLEFT">
121 <Offset>
122 <AbsDimension x="300" y="50"/>
123 </Offset>
124 </Anchor>
125 </Anchors>
126 <Attributes>
127 <Attribute name="unit" type="string" value="raid9"/>
128 </Attributes>
129 </Frame>
130 <Frame name="ChorusRaidFrame10" inherits="ChorusSmallRaidUnitFrameTemplate">
131 <Anchors>
132 <Anchor point="BOTTOMLEFT">
133 <Offset>
134 <AbsDimension x="400" y="50"/>
135 </Offset>
136 </Anchor>
137 </Anchors>
138 <Attributes>
139 <Attribute name="unit" type="string" value="raid10"/>
140 </Attributes>
141 </Frame>
142 <!-- Row 3 -->
143 <Frame name="ChorusRaidFrame11" inherits="ChorusSmallRaidUnitFrameTemplate">
144 <Anchors>
145 <Anchor point="BOTTOMLEFT">
146 <Offset>
147 <AbsDimension x="0" y="100"/>
148 </Offset>
149 </Anchor>
150 </Anchors>
151 <Attributes>
152 <Attribute name="unit" type="string" value="raid11"/>
153 </Attributes>
154 </Frame>
155 <Frame name="ChorusRaidFrame12" inherits="ChorusSmallRaidUnitFrameTemplate">
156 <Anchors>
157 <Anchor point="BOTTOMLEFT">
158 <Offset>
159 <AbsDimension x="100" y="100"/>
160 </Offset>
161 </Anchor>
162 </Anchors>
163 <Attributes>
164 <Attribute name="unit" type="string" value="raid12"/>
165 </Attributes>
166 </Frame>
167 <Frame name="ChorusRaidFrame13" inherits="ChorusSmallRaidUnitFrameTemplate">
168 <Anchors>
169 <Anchor point="BOTTOMLEFT">
170 <Offset>
171 <AbsDimension x="200" y="100"/>
172 </Offset>
173 </Anchor>
174 </Anchors>
175 <Attributes>
176 <Attribute name="unit" type="string" value="raid13"/>
177 </Attributes>
178 </Frame>
179 <Frame name="ChorusRaidFrame14" inherits="ChorusSmallRaidUnitFrameTemplate">
180 <Anchors>
181 <Anchor point="BOTTOMLEFT">
182 <Offset>
183 <AbsDimension x="300" y="100"/>
184 </Offset>
185 </Anchor>
186 </Anchors>
187 <Attributes>
188 <Attribute name="unit" type="string" value="raid14"/>
189 </Attributes>
190 </Frame>
191 <Frame name="ChorusRaidFrame15" inherits="ChorusSmallRaidUnitFrameTemplate">
192 <Anchors>
193 <Anchor point="BOTTOMLEFT">
194 <Offset>
195 <AbsDimension x="400" y="100"/>
196 </Offset>
197 </Anchor>
198 </Anchors>
199 <Attributes>
200 <Attribute name="unit" type="string" value="raid15"/>
201 </Attributes>
202 </Frame>
203 <!-- Row 4 -->
204 <Frame name="ChorusRaidFrame16" inherits="ChorusSmallRaidUnitFrameTemplate">
205 <Anchors>
206 <Anchor point="BOTTOMLEFT">
207 <Offset>
208 <AbsDimension x="0" y="150"/>
209 </Offset>
210 </Anchor>
211 </Anchors>
212 <Attributes>
213 <Attribute name="unit" type="string" value="raid16"/>
214 </Attributes>
215 </Frame>
216 <Frame name="ChorusRaidFrame17" inherits="ChorusSmallRaidUnitFrameTemplate">
217 <Anchors>
218 <Anchor point="BOTTOMLEFT">
219 <Offset>
220 <AbsDimension x="100" y="150"/>
221 </Offset>
222 </Anchor>
223 </Anchors>
224 <Attributes>
225 <Attribute name="unit" type="string" value="raid17"/>
226 </Attributes>
227 </Frame>
228 <Frame name="ChorusRaidFrame18" inherits="ChorusSmallRaidUnitFrameTemplate">
229 <Anchors>
230 <Anchor point="BOTTOMLEFT">
231 <Offset>
232 <AbsDimension x="200" y="150"/>
233 </Offset>
234 </Anchor>
235 </Anchors>
236 <Attributes>
237 <Attribute name="unit" type="string" value="raid18"/>
238 </Attributes>
239 </Frame>
240 <Frame name="ChorusRaidFrame19" inherits="ChorusSmallRaidUnitFrameTemplate">
241 <Anchors>
242 <Anchor point="BOTTOMLEFT">
243 <Offset>
244 <AbsDimension x="300" y="150"/>
245 </Offset>
246 </Anchor>
247 </Anchors>
248 <Attributes>
249 <Attribute name="unit" type="string" value="raid19"/>
250 </Attributes>
251 </Frame>
252 <Frame name="ChorusRaidFrame20" inherits="ChorusSmallRaidUnitFrameTemplate">
253 <Anchors>
254 <Anchor point="BOTTOMLEFT">
255 <Offset>
256 <AbsDimension x="400" y="150"/>
257 </Offset>
258 </Anchor>
259 </Anchors>
260 <Attributes>
261 <Attribute name="unit" type="string" value="raid20"/>
262 </Attributes>
263 </Frame>
264 <!-- Row 5 -->
265 <Frame name="ChorusRaidFrame21" inherits="ChorusSmallRaidUnitFrameTemplate">
266 <Anchors>
267 <Anchor point="BOTTOMLEFT">
268 <Offset>
269 <AbsDimension x="0" y="200"/>
270 </Offset>
271 </Anchor>
272 </Anchors>
273 <Attributes>
274 <Attribute name="unit" type="string" value="raid21"/>
275 </Attributes>
276 </Frame>
277 <Frame name="ChorusRaidFrame22" inherits="ChorusSmallRaidUnitFrameTemplate">
278 <Anchors>
279 <Anchor point="BOTTOMLEFT">
280 <Offset>
281 <AbsDimension x="100" y="200"/>
282 </Offset>
283 </Anchor>
284 </Anchors>
285 <Attributes>
286 <Attribute name="unit" type="string" value="raid22"/>
287 </Attributes>
288 </Frame>
289 <Frame name="ChorusRaidFrame23" inherits="ChorusSmallRaidUnitFrameTemplate">
290 <Anchors>
291 <Anchor point="BOTTOMLEFT">
292 <Offset>
293 <AbsDimension x="200" y="200"/>
294 </Offset>
295 </Anchor>
296 </Anchors>
297 <Attributes>
298 <Attribute name="unit" type="string" value="raid23"/>
299 </Attributes>
300 </Frame>
301 <Frame name="ChorusRaidFrame24" inherits="ChorusSmallRaidUnitFrameTemplate">
302 <Anchors>
303 <Anchor point="BOTTOMLEFT">
304 <Offset>
305 <AbsDimension x="300" y="200"/>
306 </Offset>
307 </Anchor>
308 </Anchors>
309 <Attributes>
310 <Attribute name="unit" type="string" value="raid24"/>
311 </Attributes>
312 </Frame>
313 <Frame name="ChorusRaidFrame25" inherits="ChorusSmallRaidUnitFrameTemplate">
314 <Anchors>
315 <Anchor point="BOTTOMLEFT">
316 <Offset>
317 <AbsDimension x="400" y="200"/>
318 </Offset>
319 </Anchor>
320 </Anchors>
321 <Attributes>
322 <Attribute name="unit" type="string" value="raid25"/>
323 </Attributes>
324 </Frame>
325
326 </Frames>
327 </Frame>
328 </Ui>
File src/ChorusRaidFrameTemplate.xml added (mode: 100644) (index 0000000..0806b58)
1 <?xml version="1.0" encoding="UTF-8"?>
2 <Ui xmlns="http://www.blizzard.com/wow/ui/">
3 <Frame name="ChorusTinyRaidUnitFrameTemplate"
4 inherits="ChorusTinyUnitFrameTemplate,ChorusMemberUnitFrameTemplate"
5 virtual="true"/>
6 <Frame name="ChorusSmallRaidUnitFrameTemplate"
7 inherits="ChorusSmallUnitFrameTemplate,ChorusMemberUnitFrameTemplate"
8 virtual="true"/>
9 <Frame name="ChorusLargeRaidUnitFrameTemplate"
10 inherits="ChorusLargeUnitFrameTemplate,ChorusMemberUnitFrameTemplate"
11 virtual="true"/>
12 <Frame name="ChorusHugeRaidUnitFrameTemplate"
13 inherits="ChorusHugeUnitFrameTemplate,ChorusMemberUnitFrameTemplate"
14 virtual="true"/>
15 </Ui>
File src/ChorusSmallRaidFrame.xml added (mode: 100644) (index 0000000..dbd774d)
1 <?xml version="1.0" encoding="UTF-8"?>
2 <Ui xmlns="http://www.blizzard.com/wow/ui/">
3 <!-- See `ChorusRaidFrameTemplate.xml` for the unit button template declarations. -->
4 <Frame name="ChorusSmallRaidFrame" hidden="true">
5 <Size>
6 <AbsDimension x="480" y="256"/>
7 </Size>
8 <Anchors>
9 <Anchor point="CENTER">
10 <Offset>
11 <AbsDimension x="0" y="0"/>
12 </Offset>
13 </Anchor>
14 </Anchors>
15 <Frames>
16 <!-- Block 1. -->
17 <!-- Group 1. -->
18 <Frame name="ChorusSmallRaidFrameButton01" inherits="ChorusSmallRaidUnitFrameTemplate" id="1">
19 <Anchors>
20 <Anchor point="BOTTOMLEFT">
21 <Offset>
22 <AbsDimension x="0" y="0"/>
23 </Offset>
24 </Anchor>
25 </Anchors>
26 <Attributes>
27 <Attribute name="unit" type="string" value="raid1"/>
28 </Attributes>
29 </Frame>
30 <Frame name="ChorusSmallRaidFrameButton02" inherits="ChorusSmallRaidUnitFrameTemplate" id="2">
31 <Anchors>
32 <Anchor point="BOTTOMLEFT">
33 <Offset>
34 <AbsDimension x="102" y="0"/>
35 </Offset>
36 </Anchor>
37 </Anchors>
38 <Attributes>
39 <Attribute name="unit" type="string" value="raid2"/>
40 </Attributes>
41 </Frame>
42 <Frame name="ChorusSmallRaidFrameButton03" inherits="ChorusSmallRaidUnitFrameTemplate" id="3">
43 <Anchors>
44 <Anchor point="BOTTOMLEFT">
45 <Offset>
46 <AbsDimension x="204" y="0"/>
47 </Offset>
48 </Anchor>
49 </Anchors>
50 <Attributes>
51 <Attribute name="unit" type="string" value="raid3"/>
52 </Attributes>
53 </Frame>
54 <Frame name="ChorusSmallRaidFrameButton04" inherits="ChorusSmallRaidUnitFrameTemplate" id="4">
55 <Anchors>
56 <Anchor point="BOTTOMLEFT">
57 <Offset>
58 <AbsDimension x="306" y="0"/>
59 </Offset>
60 </Anchor>
61 </Anchors>
62 <Attributes>
63 <Attribute name="unit" type="string" value="raid4"/>
64 </Attributes>
65 </Frame>
66 <Frame name="ChorusSmallRaidFrameButton05" inherits="ChorusSmallRaidUnitFrameTemplate" id="5">
67 <Anchors>
68 <Anchor point="BOTTOMLEFT">
69 <Offset>
70 <AbsDimension x="408" y="0"/>
71 </Offset>
72 </Anchor>
73 </Anchors>
74 <Attributes>
75 <Attribute name="unit" type="string" value="raid5"/>
76 </Attributes>
77 </Frame>
78 <!-- Group 2. -->
79 <Frame name="ChorusSmallRaidFrameButton06" inherits="ChorusSmallRaidUnitFrameTemplate" id="6">
80 <Anchors>
81 <Anchor point="BOTTOMLEFT">
82 <Offset>
83 <AbsDimension x="0" y="160"/>
84 </Offset>
85 </Anchor>
86 </Anchors>
87 <Attributes>
88 <Attribute name="unit" type="string" value="raid6"/>
89 </Attributes>
90 </Frame>
91 <Frame name="ChorusSmallRaidFrameButton07" inherits="ChorusSmallRaidUnitFrameTemplate" id="7">
92 <Anchors>
93 <Anchor point="BOTTOMLEFT">
94 <Offset>
95 <AbsDimension x="102" y="160"/>
96 </Offset>
97 </Anchor>
98 </Anchors>
99 <Attributes>
100 <Attribute name="unit" type="string" value="raid7"/>
101 </Attributes>
102 </Frame>
103 <Frame name="ChorusSmallRaidFrameButton08" inherits="ChorusSmallRaidUnitFrameTemplate" id="8">
104 <Anchors>
105 <Anchor point="BOTTOMLEFT">
106 <Offset>
107 <AbsDimension x="204" y="160"/>
108 </Offset>
109 </Anchor>
110 </Anchors>
111 <Attributes>
112 <Attribute name="unit" type="string" value="raid8"/>
113 </Attributes>
114 </Frame>
115 <Frame name="ChorusSmallRaidFrameButton09" inherits="ChorusSmallRaidUnitFrameTemplate" id="9">
116 <Anchors>
117 <Anchor point="BOTTOMLEFT">
118 <Offset>
119 <AbsDimension x="306" y="160"/>
120 </Offset>
121 </Anchor>
122 </Anchors>
123 <Attributes>
124 <Attribute name="unit" type="string" value="raid9"/>
125 </Attributes>
126 </Frame>
127 <Frame name="ChorusSmallRaidFrameButton10" inherits="ChorusSmallRaidUnitFrameTemplate" id="10">
128 <Anchors>
129 <Anchor point="BOTTOMLEFT">
130 <Offset>
131 <AbsDimension x="408" y="160"/>
132 </Offset>
133 </Anchor>
134 </Anchors>
135 <Attributes>
136 <Attribute name="unit" type="string" value="raid10"/>
137 </Attributes>
138 </Frame>
139 <!-- Group 3. -->
140 <Frame name="ChorusSmallRaidFrameButton11" inherits="ChorusSmallRaidUnitFrameTemplate" id="11">
141 <Anchors>
142 <Anchor point="BOTTOMLEFT">
143 <Offset>
144 <AbsDimension x="0" y="320"/>
145 </Offset>
146 </Anchor>
147 </Anchors>
148 <Attributes>
149 <Attribute name="unit" type="string" value="raid11"/>
150 </Attributes>
151 </Frame>
152 <Frame name="ChorusSmallRaidFrameButton12" inherits="ChorusSmallRaidUnitFrameTemplate" id="12">
153 <Anchors>
154 <Anchor point="BOTTOMLEFT">
155 <Offset>
156 <AbsDimension x="102" y="320"/>
157 </Offset>
158 </Anchor>
159 </Anchors>
160 <Attributes>
161 <Attribute name="unit" type="string" value="raid12"/>
162 </Attributes>
163 </Frame>
164 <Frame name="ChorusSmallRaidFrameButton13" inherits="ChorusSmallRaidUnitFrameTemplate" id="13">
165 <Anchors>
166 <Anchor point="BOTTOMLEFT">
167 <Offset>
168 <AbsDimension x="204" y="320"/>
169 </Offset>
170 </Anchor>
171 </Anchors>
172 <Attributes>
173 <Attribute name="unit" type="string" value="raid13"/>
174 </Attributes>
175 </Frame>
176 <Frame name="ChorusSmallRaidFrameButton14" inherits="ChorusSmallRaidUnitFrameTemplate" id="14">
177 <Anchors>
178 <Anchor point="BOTTOMLEFT">
179 <Offset>
180 <AbsDimension x="306" y="320"/>
181 </Offset>
182 </Anchor>
183 </Anchors>
184 <Attributes>
185 <Attribute name="unit" type="string" value="raid14"/>
186 </Attributes>
187 </Frame>
188 <Frame name="ChorusSmallRaidFrameButton15" inherits="ChorusSmallRaidUnitFrameTemplate" id="15">
189 <Anchors>
190 <Anchor point="BOTTOMLEFT">
191 <Offset>
192 <AbsDimension x="408" y="320"/>
193 </Offset>
194 </Anchor>
195 </Anchors>
196 <Attributes>
197 <Attribute name="unit" type="string" value="raid15"/>
198 </Attributes>
199 </Frame>
200 <!-- Group 4. -->
201 <Frame name="ChorusSmallRaidFrameButton16" inherits="ChorusSmallRaidUnitFrameTemplate" id="16">
202 <Anchors>
203 <Anchor point="BOTTOMLEFT">
204 <Offset>
205 <AbsDimension x="0" y="480"/>
206 </Offset>
207 </Anchor>
208 </Anchors>
209 <Attributes>
210 <Attribute name="unit" type="string" value="raid16"/>
211 </Attributes>
212 </Frame>
213 <Frame name="ChorusSmallRaidFrameButton17" inherits="ChorusSmallRaidUnitFrameTemplate" id="17">
214 <Anchors>
215 <Anchor point="BOTTOMLEFT">
216 <Offset>
217 <AbsDimension x="102" y="480"/>
218 </Offset>
219 </Anchor>
220 </Anchors>
221 <Attributes>
222 <Attribute name="unit" type="string" value="raid17"/>
223 </Attributes>
224 </Frame>
225 <Frame name="ChorusSmallRaidFrameButton18" inherits="ChorusSmallRaidUnitFrameTemplate" id="18">
226 <Anchors>
227 <Anchor point="BOTTOMLEFT">
228 <Offset>
229 <AbsDimension x="204" y="480"/>
230 </Offset>
231 </Anchor>
232 </Anchors>
233 <Attributes>
234 <Attribute name="unit" type="string" value="raid18"/>
235 </Attributes>
236 </Frame>
237 <Frame name="ChorusSmallRaidFrameButton19" inherits="ChorusSmallRaidUnitFrameTemplate" id="19">
238 <Anchors>
239 <Anchor point="BOTTOMLEFT">
240 <Offset>
241 <AbsDimension x="306" y="480"/>
242 </Offset>
243 </Anchor>
244 </Anchors>
245 <Attributes>
246 <Attribute name="unit" type="string" value="raid19"/>
247 </Attributes>
248 </Frame>
249 <Frame name="ChorusSmallRaidFrameButton20" inherits="ChorusSmallRaidUnitFrameTemplate" id="20">
250 <Anchors>
251 <Anchor point="BOTTOMLEFT">
252 <Offset>
253 <AbsDimension x="408" y="480"/>
254 </Offset>
255 </Anchor>
256 </Anchors>
257 <Attributes>
258 <Attribute name="unit" type="string" value="raid20"/>
259 </Attributes>
260 </Frame>
261 <!-- Block 2. -->
262 <!-- Group 5. -->
263 <Frame name="ChorusSmallRaidFrameButton21" inherits="ChorusSmallRaidUnitFrameTemplate" id="21">
264 <Anchors>
265 <Anchor point="BOTTOMLEFT">
266 <Offset>
267 <AbsDimension x="480" y="0"/>
268 </Offset>
269 </Anchor>
270 </Anchors>
271 <Attributes>
272 <Attribute name="unit" type="string" value="raid21"/>
273 </Attributes>
274 </Frame>
275 <Frame name="ChorusSmallRaidFrameButton22" inherits="ChorusSmallRaidUnitFrameTemplate" id="22">
276 <Anchors>
277 <Anchor point="BOTTOMLEFT">
278 <Offset>
279 <AbsDimension x="582" y="0"/>
280 </Offset>
281 </Anchor>
282 </Anchors>
283 <Attributes>
284 <Attribute name="unit" type="string" value="raid22"/>
285 </Attributes>
286 </Frame>
287 <Frame name="ChorusSmallRaidFrameButton23" inherits="ChorusSmallRaidUnitFrameTemplate" id="23">
288 <Anchors>
289 <Anchor point="BOTTOMLEFT">
290 <Offset>
291 <AbsDimension x="684" y="0"/>
292 </Offset>
293 </Anchor>
294 </Anchors>
295 <Attributes>
296 <Attribute name="unit" type="string" value="raid23"/>
297 </Attributes>
298 </Frame>
299 <Frame name="ChorusSmallRaidFrameButton24" inherits="ChorusSmallRaidUnitFrameTemplate" id="24">
300 <Anchors>
301 <Anchor point="BOTTOMLEFT">
302 <Offset>
303 <AbsDimension x="786" y="0"/>
304 </Offset>
305 </Anchor>
306 </Anchors>
307 <Attributes>
308 <Attribute name="unit" type="string" value="raid24"/>
309 </Attributes>
310 </Frame>
311 <Frame name="ChorusSmallRaidFrameButton25" inherits="ChorusSmallRaidUnitFrameTemplate" id="25">
312 <Anchors>
313 <Anchor point="BOTTOMLEFT">
314 <Offset>
315 <AbsDimension x="888" y="0"/>
316 </Offset>
317 </Anchor>
318 </Anchors>
319 <Attributes>
320 <Attribute name="unit" type="string" value="raid25"/>
321 </Attributes>
322 </Frame>
323 <!-- Group 6. -->
324 <Frame name="ChorusSmallRaidFrameButton26" inherits="ChorusSmallRaidUnitFrameTemplate" id="26">
325 <Anchors>
326 <Anchor point="BOTTOMLEFT">
327 <Offset>
328 <AbsDimension x="480" y="160"/>
329 </Offset>
330 </Anchor>
331 </Anchors>
332 <Attributes>
333 <Attribute name="unit" type="string" value="raid26"/>
334 </Attributes>
335 </Frame>
336 <Frame name="ChorusSmallRaidFrameButton27" inherits="ChorusSmallRaidUnitFrameTemplate" id="27">
337 <Anchors>
338 <Anchor point="BOTTOMLEFT">
339 <Offset>
340 <AbsDimension x="582" y="160"/>
341 </Offset>
342 </Anchor>
343 </Anchors>
344 <Attributes>
345 <Attribute name="unit" type="string" value="raid27"/>
346 </Attributes>
347 </Frame>
348 <Frame name="ChorusSmallRaidFrameButton28" inherits="ChorusSmallRaidUnitFrameTemplate" id="28">
349 <Anchors>
350 <Anchor point="BOTTOMLEFT">
351 <Offset>
352 <AbsDimension x="684" y="160"/>
353 </Offset>
354 </Anchor>
355 </Anchors>
356 <Attributes>
357 <Attribute name="unit" type="string" value="raid28"/>
358 </Attributes>
359 </Frame>
360 <Frame name="ChorusSmallRaidFrameButton29" inherits="ChorusSmallRaidUnitFrameTemplate" id="29">
361 <Anchors>
362 <Anchor point="BOTTOMLEFT">
363 <Offset>
364 <AbsDimension x="786" y="160"/>
365 </Offset>
366 </Anchor>
367 </Anchors>
368 <Attributes>
369 <Attribute name="unit" type="string" value="raid29"/>
370 </Attributes>
371 </Frame>
372 <Frame name="ChorusSmallRaidFrameButton30" inherits="ChorusSmallRaidUnitFrameTemplate" id="30">
373 <Anchors>
374 <Anchor point="BOTTOMLEFT">
375 <Offset>
376 <AbsDimension x="888" y="160"/>
377 </Offset>
378 </Anchor>
379 </Anchors>
380 <Attributes>
381 <Attribute name="unit" type="string" value="raid30"/>
382 </Attributes>
383 </Frame>
384 <!-- Group 7. -->
385 <Frame name="ChorusSmallRaidFrameButton31" inherits="ChorusSmallRaidUnitFrameTemplate" id="31">
386 <Anchors>
387 <Anchor point="BOTTOMLEFT">
388 <Offset>
389 <AbsDimension x="480" y="320"/>
390 </Offset>
391 </Anchor>
392 </Anchors>
393 <Attributes>
394 <Attribute name="unit" type="string" value="raid31"/>
395 </Attributes>
396 </Frame>
397 <Frame name="ChorusSmallRaidFrameButton32" inherits="ChorusSmallRaidUnitFrameTemplate" id="32">
398 <Anchors>
399 <Anchor point="BOTTOMLEFT">
400 <Offset>
401 <AbsDimension x="582" y="320"/>
402 </Offset>
403 </Anchor>
404 </Anchors>
405 <Attributes>
406 <Attribute name="unit" type="string" value="raid32"/>
407 </Attributes>
408 </Frame>
409 <Frame name="ChorusSmallRaidFrameButton33" inherits="ChorusSmallRaidUnitFrameTemplate" id="33">
410 <Anchors>
411 <Anchor point="BOTTOMLEFT">
412 <Offset>
413 <AbsDimension x="684" y="320"/>
414 </Offset>
415 </Anchor>
416 </Anchors>
417 <Attributes>
418 <Attribute name="unit" type="string" value="raid33"/>
419 </Attributes>
420 </Frame>
421 <Frame name="ChorusSmallRaidFrameButton34" inherits="ChorusSmallRaidUnitFrameTemplate" id="34">
422 <Anchors>
423 <Anchor point="BOTTOMLEFT">
424 <Offset>
425 <AbsDimension x="786" y="320"/>
426 </Offset>
427 </Anchor>
428 </Anchors>
429 <Attributes>
430 <Attribute name="unit" type="string" value="raid34"/>
431 </Attributes>
432 </Frame>
433 <Frame name="ChorusSmallRaidFrameButton35" inherits="ChorusSmallRaidUnitFrameTemplate" id="35">
434 <Anchors>
435 <Anchor point="BOTTOMLEFT">
436 <Offset>
437 <AbsDimension x="888" y="320"/>
438 </Offset>
439 </Anchor>
440 </Anchors>
441 <Attributes>
442 <Attribute name="unit" type="string" value="raid35"/>
443 </Attributes>
444 </Frame>
445 <!-- Group 8. -->
446 <Frame name="ChorusSmallRaidFrameButton36" inherits="ChorusSmallRaidUnitFrameTemplate" id="36">
447 <Anchors>
448 <Anchor point="BOTTOMLEFT">
449 <Offset>
450 <AbsDimension x="480" y="480"/>
451 </Offset>
452 </Anchor>
453 </Anchors>
454 <Attributes>
455 <Attribute name="unit" type="string" value="raid36"/>
456 </Attributes>
457 </Frame>
458 <Frame name="ChorusSmallRaidFrameButton37" inherits="ChorusSmallRaidUnitFrameTemplate" id="37">
459 <Anchors>
460 <Anchor point="BOTTOMLEFT">
461 <Offset>
462 <AbsDimension x="582" y="480"/>
463 </Offset>
464 </Anchor>
465 </Anchors>
466 <Attributes>
467 <Attribute name="unit" type="string" value="raid37"/>
468 </Attributes>
469 </Frame>
470 <Frame name="ChorusSmallRaidFrameButton38" inherits="ChorusSmallRaidUnitFrameTemplate" id="38">
471 <Anchors>
472 <Anchor point="BOTTOMLEFT">
473 <Offset>
474 <AbsDimension x="684" y="480"/>
475 </Offset>
476 </Anchor>
477 </Anchors>
478 <Attributes>
479 <Attribute name="unit" type="string" value="raid38"/>
480 </Attributes>
481 </Frame>
482 <Frame name="ChorusSmallRaidFrameButton39" inherits="ChorusSmallRaidUnitFrameTemplate" id="39">
483 <Anchors>
484 <Anchor point="BOTTOMLEFT">
485 <Offset>
486 <AbsDimension x="786" y="480"/>
487 </Offset>
488 </Anchor>
489 </Anchors>
490 <Attributes>
491 <Attribute name="unit" type="string" value="raid39"/>
492 </Attributes>
493 </Frame>
494 <Frame name="ChorusSmallRaidFrameButton40" inherits="ChorusSmallRaidUnitFrameTemplate" id="40">
495 <Anchors>
496 <Anchor point="BOTTOMLEFT">
497 <Offset>
498 <AbsDimension x="888" y="480"/>
499 </Offset>
500 </Anchor>
501 </Anchors>
502 <Attributes>
503 <Attribute name="unit" type="string" value="raid40"/>
504 </Attributes>
505 </Frame>
506 </Frames>
507 </Frame>
508 </Ui>
File src/ChorusTinyRaidFrame.xml added (mode: 100644) (index 0000000..ae721a5)
1 <?xml version="1.0" encoding="UTF-8"?>
2 <Ui xmlns="http://www.blizzard.com/wow/ui/">
3 <!-- See `ChorusRaidFrameTemplate.xml` for the unit button template declarations. -->
4 <Frame name="ChorusTinyRaidFrame" hidden="true">
5 <Size>
6 <AbsDimension x="320" y="128"/>
7 </Size>
8 <Anchors>
9 <Anchor point="CENTER">
10 <Offset>
11 <AbsDimension x="0" y="0"/>
12 </Offset>
13 </Anchor>
14 </Anchors>
15 <Frames>
16 <!-- Block 1. -->
17 <!-- Group 1. -->
18 <Frame name="ChorusTinyRaidFrameButton01" inherits="ChorusTinyRaidUnitFrameTemplate" id="1">
19 <Anchors>
20 <Anchor point="BOTTOMLEFT">
21 <Offset>
22 <AbsDimension x="0" y="0"/>
23 </Offset>
24 </Anchor>
25 </Anchors>
26 <Attributes>
27 <Attribute name="unit" type="string" value="raid1"/>
28 </Attributes>
29 </Frame>
30 <Frame name="ChorusTinyRaidFrameButton02" inherits="ChorusTinyRaidUnitFrameTemplate" id="2">
31 <Anchors>
32 <Anchor point="BOTTOMLEFT">
33 <Offset>
34 <AbsDimension x="70" y="0"/>
35 </Offset>
36 </Anchor>
37 </Anchors>
38 <Attributes>
39 <Attribute name="unit" type="string" value="raid2"/>
40 </Attributes>
41 </Frame>
42 <Frame name="ChorusTinyRaidFrameButton03" inherits="ChorusTinyRaidUnitFrameTemplate" id="3">
43 <Anchors>
44 <Anchor point="BOTTOMLEFT">
45 <Offset>
46 <AbsDimension x="140" y="0"/>
47 </Offset>
48 </Anchor>
49 </Anchors>
50 <Attributes>
51 <Attribute name="unit" type="string" value="raid3"/>
52 </Attributes>
53 </Frame>
54 <Frame name="ChorusTinyRaidFrameButton04" inherits="ChorusTinyRaidUnitFrameTemplate" id="4">
55 <Anchors>
56 <Anchor point="BOTTOMLEFT">
57 <Offset>
58 <AbsDimension x="210" y="0"/>
59 </Offset>
60 </Anchor>
61 </Anchors>
62 <Attributes>
63 <Attribute name="unit" type="string" value="raid4"/>
64 </Attributes>
65 </Frame>
66 <Frame name="ChorusTinyRaidFrameButton05" inherits="ChorusTinyRaidUnitFrameTemplate" id="5">
67 <Anchors>
68 <Anchor point="BOTTOMLEFT">
69 <Offset>
70 <AbsDimension x="280" y="0"/>
71 </Offset>
72 </Anchor>
73 </Anchors>
74 <Attributes>
75 <Attribute name="unit" type="string" value="raid5"/>
76 </Attributes>
77 </Frame>
78 <!-- Group 2. -->
79 <Frame name="ChorusTinyRaidFrameButton06" inherits="ChorusTinyRaidUnitFrameTemplate" id="6">
80 <Anchors>
81 <Anchor point="BOTTOMLEFT">
82 <Offset>
83 <AbsDimension x="0" y="80"/>
84 </Offset>
85 </Anchor>
86 </Anchors>
87 <Attributes>
88 <Attribute name="unit" type="string" value="raid6"/>
89 </Attributes>
90 </Frame>
91 <Frame name="ChorusTinyRaidFrameButton07" inherits="ChorusTinyRaidUnitFrameTemplate" id="7">
92 <Anchors>
93 <Anchor point="BOTTOMLEFT">
94 <Offset>
95 <AbsDimension x="70" y="80"/>
96 </Offset>
97 </Anchor>
98 </Anchors>
99 <Attributes>
100 <Attribute name="unit" type="string" value="raid7"/>
101 </Attributes>
102 </Frame>
103 <Frame name="ChorusTinyRaidFrameButton08" inherits="ChorusTinyRaidUnitFrameTemplate" id="8">
104 <Anchors>
105 <Anchor point="BOTTOMLEFT">
106 <Offset>
107 <AbsDimension x="140" y="80"/>
108 </Offset>
109 </Anchor>
110 </Anchors>
111 <Attributes>
112 <Attribute name="unit" type="string" value="raid8"/>
113 </Attributes>
114 </Frame>
115 <Frame name="ChorusTinyRaidFrameButton09" inherits="ChorusTinyRaidUnitFrameTemplate" id="9">
116 <Anchors>
117 <Anchor point="BOTTOMLEFT">
118 <Offset>
119 <AbsDimension x="210" y="80"/>
120 </Offset>
121 </Anchor>
122 </Anchors>
123 <Attributes>
124 <Attribute name="unit" type="string" value="raid9"/>
125 </Attributes>
126 </Frame>
127 <Frame name="ChorusTinyRaidFrameButton10" inherits="ChorusTinyRaidUnitFrameTemplate" id="10">
128 <Anchors>
129 <Anchor point="BOTTOMLEFT">
130 <Offset>
131 <AbsDimension x="280" y="80"/>
132 </Offset>
133 </Anchor>
134 </Anchors>
135 <Attributes>
136 <Attribute name="unit" type="string" value="raid10"/>
137 </Attributes>
138 </Frame>
139 <!-- Group 3. -->
140 <Frame name="ChorusTinyRaidFrameButton11" inherits="ChorusTinyRaidUnitFrameTemplate" id="11">
141 <Anchors>
142 <Anchor point="BOTTOMLEFT">
143 <Offset>
144 <AbsDimension x="0" y="160"/>
145 </Offset>
146 </Anchor>
147 </Anchors>
148 <Attributes>
149 <Attribute name="unit" type="string" value="raid11"/>
150 </Attributes>
151 </Frame>
152 <Frame name="ChorusTinyRaidFrameButton12" inherits="ChorusTinyRaidUnitFrameTemplate" id="12">
153 <Anchors>
154 <Anchor point="BOTTOMLEFT">
155 <Offset>
156 <AbsDimension x="70" y="160"/>
157 </Offset>
158 </Anchor>
159 </Anchors>
160 <Attributes>
161 <Attribute name="unit" type="string" value="raid12"/>
162 </Attributes>
163 </Frame>
164 <Frame name="ChorusTinyRaidFrameButton13" inherits="ChorusTinyRaidUnitFrameTemplate" id="13">
165 <Anchors>
166 <Anchor point="BOTTOMLEFT">
167 <Offset>
168 <AbsDimension x="140" y="160"/>
169 </Offset>
170 </Anchor>
171 </Anchors>
172 <Attributes>
173 <Attribute name="unit" type="string" value="raid13"/>
174 </Attributes>
175 </Frame>
176 <Frame name="ChorusTinyRaidFrameButton14" inherits="ChorusTinyRaidUnitFrameTemplate" id="14">
177 <Anchors>
178 <Anchor point="BOTTOMLEFT">
179 <Offset>
180 <AbsDimension x="210" y="160"/>
181 </Offset>
182 </Anchor>
183 </Anchors>
184 <Attributes>
185 <Attribute name="unit" type="string" value="raid14"/>
186 </Attributes>
187 </Frame>
188 <Frame name="ChorusTinyRaidFrameButton15" inherits="ChorusTinyRaidUnitFrameTemplate" id="15">
189 <Anchors>
190 <Anchor point="BOTTOMLEFT">
191 <Offset>
192 <AbsDimension x="280" y="160"/>
193 </Offset>
194 </Anchor>
195 </Anchors>
196 <Attributes>
197 <Attribute name="unit" type="string" value="raid15"/>
198 </Attributes>
199 </Frame>
200 <!-- Group 4. -->
201 <Frame name="ChorusTinyRaidFrameButton16" inherits="ChorusTinyRaidUnitFrameTemplate" id="16">
202 <Anchors>
203 <Anchor point="BOTTOMLEFT">
204 <Offset>
205 <AbsDimension x="0" y="240"/>
206 </Offset>
207 </Anchor>
208 </Anchors>
209 <Attributes>
210 <Attribute name="unit" type="string" value="raid16"/>
211 </Attributes>
212 </Frame>
213 <Frame name="ChorusTinyRaidFrameButton17" inherits="ChorusTinyRaidUnitFrameTemplate" id="17">
214 <Anchors>
215 <Anchor point="BOTTOMLEFT">
216 <Offset>
217 <AbsDimension x="70" y="240"/>
218 </Offset>
219 </Anchor>
220 </Anchors>
221 <Attributes>
222 <Attribute name="unit" type="string" value="raid17"/>
223 </Attributes>
224 </Frame>
225 <Frame name="ChorusTinyRaidFrameButton18" inherits="ChorusTinyRaidUnitFrameTemplate" id="18">
226 <Anchors>
227 <Anchor point="BOTTOMLEFT">
228 <Offset>
229 <AbsDimension x="140" y="240"/>
230 </Offset>
231 </Anchor>
232 </Anchors>
233 <Attributes>
234 <Attribute name="unit" type="string" value="raid18"/>
235 </Attributes>
236 </Frame>
237 <Frame name="ChorusTinyRaidFrameButton19" inherits="ChorusTinyRaidUnitFrameTemplate" id="19">
238 <Anchors>
239 <Anchor point="BOTTOMLEFT">
240 <Offset>
241 <AbsDimension x="210" y="240"/>
242 </Offset>
243 </Anchor>
244 </Anchors>
245 <Attributes>
246 <Attribute name="unit" type="string" value="raid19"/>
247 </Attributes>
248 </Frame>
249 <Frame name="ChorusTinyRaidFrameButton20" inherits="ChorusTinyRaidUnitFrameTemplate" id="20">
250 <Anchors>
251 <Anchor point="BOTTOMLEFT">
252 <Offset>
253 <AbsDimension x="280" y="240"/>
254 </Offset>
255 </Anchor>
256 </Anchors>
257 <Attributes>
258 <Attribute name="unit" type="string" value="raid20"/>
259 </Attributes>
260 </Frame>
261 <!-- Block 2. -->
262 <!-- Group 5. -->
263 <Frame name="ChorusTinyRaidFrameButton21" inherits="ChorusTinyRaidUnitFrameTemplate" id="21">
264 <Anchors>
265 <Anchor point="BOTTOMLEFT">
266 <Offset>
267 <AbsDimension x="320" y="0"/>
268 </Offset>
269 </Anchor>
270 </Anchors>
271 <Attributes>
272 <Attribute name="unit" type="string" value="raid21"/>
273 </Attributes>
274 </Frame>
275 <Frame name="ChorusTinyRaidFrameButton22" inherits="ChorusTinyRaidUnitFrameTemplate" id="22">
276 <Anchors>
277 <Anchor point="BOTTOMLEFT">
278 <Offset>
279 <AbsDimension x="390" y="0"/>
280 </Offset>
281 </Anchor>
282 </Anchors>
283 <Attributes>
284 <Attribute name="unit" type="string" value="raid22"/>
285 </Attributes>
286 </Frame>
287 <Frame name="ChorusTinyRaidFrameButton23" inherits="ChorusTinyRaidUnitFrameTemplate" id="23">
288 <Anchors>
289 <Anchor point="BOTTOMLEFT">
290 <Offset>
291 <AbsDimension x="460" y="0"/>
292 </Offset>
293 </Anchor>
294 </Anchors>
295 <Attributes>
296 <Attribute name="unit" type="string" value="raid23"/>
297 </Attributes>
298 </Frame>
299 <Frame name="ChorusTinyRaidFrameButton24" inherits="ChorusTinyRaidUnitFrameTemplate" id="24">
300 <Anchors>
301 <Anchor point="BOTTOMLEFT">
302 <Offset>
303 <AbsDimension x="530" y="0"/>
304 </Offset>
305 </Anchor>
306 </Anchors>
307 <Attributes>
308 <Attribute name="unit" type="string" value="raid24"/>
309 </Attributes>
310 </Frame>
311 <Frame name="ChorusTinyRaidFrameButton25" inherits="ChorusTinyRaidUnitFrameTemplate" id="25">
312 <Anchors>
313 <Anchor point="BOTTOMLEFT">
314 <Offset>
315 <AbsDimension x="600" y="0"/>
316 </Offset>
317 </Anchor>
318 </Anchors>
319 <Attributes>
320 <Attribute name="unit" type="string" value="raid25"/>
321 </Attributes>
322 </Frame>
323 <!-- Group 6. -->
324 <Frame name="ChorusTinyRaidFrameButton26" inherits="ChorusTinyRaidUnitFrameTemplate" id="26">
325 <Anchors>
326 <Anchor point="BOTTOMLEFT">
327 <Offset>
328 <AbsDimension x="320" y="80"/>
329 </Offset>
330 </Anchor>
331 </Anchors>
332 <Attributes>
333 <Attribute name="unit" type="string" value="raid26"/>
334 </Attributes>
335 </Frame>
336 <Frame name="ChorusTinyRaidFrameButton27" inherits="ChorusTinyRaidUnitFrameTemplate" id="27">
337 <Anchors>
338 <Anchor point="BOTTOMLEFT">
339 <Offset>
340 <AbsDimension x="390" y="80"/>
341 </Offset>
342 </Anchor>
343 </Anchors>
344 <Attributes>
345 <Attribute name="unit" type="string" value="raid27"/>
346 </Attributes>
347 </Frame>
348 <Frame name="ChorusTinyRaidFrameButton28" inherits="ChorusTinyRaidUnitFrameTemplate" id="28">
349 <Anchors>
350 <Anchor point="BOTTOMLEFT">
351 <Offset>
352 <AbsDimension x="460" y="80"/>
353 </Offset>
354 </Anchor>
355 </Anchors>
356 <Attributes>
357 <Attribute name="unit" type="string" value="raid28"/>
358 </Attributes>
359 </Frame>
360 <Frame name="ChorusTinyRaidFrameButton29" inherits="ChorusTinyRaidUnitFrameTemplate" id="29">
361 <Anchors>
362 <Anchor point="BOTTOMLEFT">
363 <Offset>
364 <AbsDimension x="530" y="80"/>
365 </Offset>
366 </Anchor>
367 </Anchors>
368 <Attributes>
369 <Attribute name="unit" type="string" value="raid29"/>
370 </Attributes>
371 </Frame>
372 <Frame name="ChorusTinyRaidFrameButton30" inherits="ChorusTinyRaidUnitFrameTemplate" id="30">
373 <Anchors>
374 <Anchor point="BOTTOMLEFT">
375 <Offset>
376 <AbsDimension x="600" y="80"/>
377 </Offset>
378 </Anchor>
379 </Anchors>
380 <Attributes>
381 <Attribute name="unit" type="string" value="raid30"/>
382 </Attributes>
383 </Frame>
384 <!-- Group 7. -->
385 <Frame name="ChorusTinyRaidFrameButton31" inherits="ChorusTinyRaidUnitFrameTemplate" id="31">
386 <Anchors>
387 <Anchor point="BOTTOMLEFT">
388 <Offset>
389 <AbsDimension x="320" y="160"/>
390 </Offset>
391 </Anchor>
392 </Anchors>
393 <Attributes>
394 <Attribute name="unit" type="string" value="raid31"/>
395 </Attributes>
396 </Frame>
397 <Frame name="ChorusTinyRaidFrameButton32" inherits="ChorusTinyRaidUnitFrameTemplate" id="32">
398 <Anchors>
399 <Anchor point="BOTTOMLEFT">
400 <Offset>
401 <AbsDimension x="390" y="160"/>
402 </Offset>
403 </Anchor>
404 </Anchors>
405 <Attributes>
406 <Attribute name="unit" type="string" value="raid32"/>
407 </Attributes>
408 </Frame>
409 <Frame name="ChorusTinyRaidFrameButton33" inherits="ChorusTinyRaidUnitFrameTemplate" id="33">
410 <Anchors>
411 <Anchor point="BOTTOMLEFT">
412 <Offset>
413 <AbsDimension x="460" y="160"/>
414 </Offset>
415 </Anchor>
416 </Anchors>
417 <Attributes>
418 <Attribute name="unit" type="string" value="raid33"/>
419 </Attributes>
420 </Frame>
421 <Frame name="ChorusTinyRaidFrameButton34" inherits="ChorusTinyRaidUnitFrameTemplate" id="34">
422 <Anchors>
423 <Anchor point="BOTTOMLEFT">
424 <Offset>
425 <AbsDimension x="530" y="160"/>
426 </Offset>
427 </Anchor>
428 </Anchors>
429 <Attributes>
430 <Attribute name="unit" type="string" value="raid34"/>
431 </Attributes>
432 </Frame>
433 <Frame name="ChorusTinyRaidFrameButton35" inherits="ChorusTinyRaidUnitFrameTemplate" id="35">
434 <Anchors>
435 <Anchor point="BOTTOMLEFT">
436 <Offset>
437 <AbsDimension x="600" y="160"/>
438 </Offset>
439 </Anchor>
440 </Anchors>
441 <Attributes>
442 <Attribute name="unit" type="string" value="raid35"/>
443 </Attributes>
444 </Frame>
445 <!-- Group 8. -->
446 <Frame name="ChorusTinyRaidFrameButton36" inherits="ChorusTinyRaidUnitFrameTemplate" id="36">
447 <Anchors>
448 <Anchor point="BOTTOMLEFT">
449 <Offset>
450 <AbsDimension x="320" y="240"/>
451 </Offset>
452 </Anchor>
453 </Anchors>
454 <Attributes>
455 <Attribute name="unit" type="string" value="raid36"/>
456 </Attributes>
457 </Frame>
458 <Frame name="ChorusTinyRaidFrameButton37" inherits="ChorusTinyRaidUnitFrameTemplate" id="37">
459 <Anchors>
460 <Anchor point="BOTTOMLEFT">
461 <Offset>
462 <AbsDimension x="390" y="240"/>
463 </Offset>
464 </Anchor>
465 </Anchors>
466 <Attributes>
467 <Attribute name="unit" type="string" value="raid37"/>
468 </Attributes>
469 </Frame>
470 <Frame name="ChorusTinyRaidFrameButton38" inherits="ChorusTinyRaidUnitFrameTemplate" id="38">
471 <Anchors>
472 <Anchor point="BOTTOMLEFT">
473 <Offset>
474 <AbsDimension x="460" y="240"/>
475 </Offset>
476 </Anchor>
477 </Anchors>
478 <Attributes>
479 <Attribute name="unit" type="string" value="raid38"/>
480 </Attributes>
481 </Frame>
482 <Frame name="ChorusTinyRaidFrameButton39" inherits="ChorusTinyRaidUnitFrameTemplate" id="39">
483 <Anchors>
484 <Anchor point="BOTTOMLEFT">
485 <Offset>
486 <AbsDimension x="530" y="240"/>
487 </Offset>
488 </Anchor>
489 </Anchors>
490 <Attributes>
491 <Attribute name="unit" type="string" value="raid39"/>
492 </Attributes>
493 </Frame>
494 <Frame name="ChorusTinyRaidFrameButton40" inherits="ChorusTinyRaidUnitFrameTemplate" id="40">
495 <Anchors>
496 <Anchor point="BOTTOMLEFT">
497 <Offset>
498 <AbsDimension x="600" y="240"/>
499 </Offset>
500 </Anchor>
501 </Anchors>
502 <Attributes>
503 <Attribute name="unit" type="string" value="raid40"/>
504 </Attributes>
505 </Frame>
506 </Frames>
507 </Frame>
508 </Ui>
File src/Makefile changed (mode: 100644) (index 306b857..de670ea)
... ... ${srcdir}src/ChorusUnitFrameTemplate.lua \
26 26 ${srcdir}src/ChorusUnitGroupRoleFrameTemplate.lua \ ${srcdir}src/ChorusUnitGroupRoleFrameTemplate.lua \
27 27 ${srcdir}src/ChorusUnitLevelFrameTemplate.lua \ ${srcdir}src/ChorusUnitLevelFrameTemplate.lua \
28 28 ${srcdir}src/ChorusUnitNameFrameTemplate.lua \ ${srcdir}src/ChorusUnitNameFrameTemplate.lua \
29 ${srcdir}src/ChorusRaidFrame.lua \
30 29 ${srcdir}src/ChorusPartyFrame.lua \ ${srcdir}src/ChorusPartyFrame.lua \
31 30 ${srcdir}src/ChorusGroupFrame.lua \ ${srcdir}src/ChorusGroupFrame.lua \
32 31 ${srcdir}src/ChorusFrame.lua ${srcdir}src/ChorusFrame.lua
 
... ... ${srcdir}src/ChorusUnitFrameTemplate.xml \
56 55 ${srcdir}src/ChorusUnitGroupRoleFrameTemplate.xml \ ${srcdir}src/ChorusUnitGroupRoleFrameTemplate.xml \
57 56 ${srcdir}src/ChorusUnitLevelFrameTemplate.xml \ ${srcdir}src/ChorusUnitLevelFrameTemplate.xml \
58 57 ${srcdir}src/ChorusUnitNameFrameTemplate.xml \ ${srcdir}src/ChorusUnitNameFrameTemplate.xml \
58 ${srcdir}src/ChorusRaidFrameTemplate.xml \
59 59 ${srcdir}src/ChorusFocusFrame.xml \ ${srcdir}src/ChorusFocusFrame.xml \
60 60 ${srcdir}src/ChorusPlayerFrame.xml \ ${srcdir}src/ChorusPlayerFrame.xml \
61 61 ${srcdir}src/ChorusTargetFrame.xml \ ${srcdir}src/ChorusTargetFrame.xml \
62 62 ${srcdir}src/ChorusPartyFrame.xml \ ${srcdir}src/ChorusPartyFrame.xml \
63 ${srcdir}src/ChorusRaidFrame.xml \
63 ${srcdir}src/ChorusTinyRaidFrame.xml \
64 ${srcdir}src/ChorusSmallRaidFrame.xml \
65 ${srcdir}src/ChorusLargeRaidFrame.xml \
64 66 ${srcdir}src/ChorusGroupFrame.xml \ ${srcdir}src/ChorusGroupFrame.xml \
65 67 ${srcdir}src/ChorusFrame.xml ${srcdir}src/ChorusFrame.xml
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/vrtc/chorus

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/vrtc/chorus

Clone this repository using git:
git clone git://git.rocketgit.com/user/vrtc/chorus

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main