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!: extend huge unit with more aura buttons 36bba5e5bb7170758410ca3d7e3b619a68591937 Vladyslav Bondarenko 2025-01-17 14:58:43
fix: update TOT aura more frequently 29751221b920518b14a51c9bf1b486f5a177ad4f Vladyslav Bondarenko 2024-12-23 16:59:12
feat: change aura collapse button graphics 7085558a5afbcd942f3a9e368fdb617083304c5d Vladyslav Bondarenko 2024-12-20 22:45:32
fix: bump version 24da29749a723ae0a9025d23974d4ba5edfae720 Vladyslav Bondarenko 2024-12-04 03:43:51
fix: role widget toggle visibility correctly c8393fa228fc07c892993228f4a0b91b06cab319 Vladyslav Bondarenko 2024-12-03 08:00:46
fix: prepare release 0.11.0 c60fa1b56310a13399d60992f8334b0f88490fd1 Vladyslav Bondarenko 2024-12-03 03:56:40
fix: typo in aura frame initializator be11f220fc2d2e009a0be0258c23855993b71f2b Vladyslav Bondarenko 2024-12-02 12:12:55
fix: remove redundant initialization 611d5ec779272d3fcceefdc18852ee0de320e19d Vladyslav Bondarenko 2024-12-02 11:49:28
fix: adjust frames for all resolutions d378a6b25a5e8c87af367e199f57dc4b7781b26f Vladyslav Bondarenko 2024-12-02 11:13:10
fix: adjust buff priorities bfa198b18dfdfaab3db2d0f31e3b794eb52c9b9b Vladyslav Bondarenko 2024-12-02 10:32:14
fix!: remove all taint from aura buttons 198dcbb367596370de36e6ebbcde3c9a1887b657 Vladyslav Bondarenko 2024-07-14 23:21:37
fix: show death knight rune frame at player frame 9949a0bafac5d0f1ccbcd3f80b301977d4fa4e0f Vladyslav Bondarenko 2024-07-14 15:46:33
feat: prepare release 0.10.0 7b12ee714c95d94d9d34dd034fe7c1b27b29fa0e Vladyslav Bondarenko 2024-06-27 12:54:18
fix: raid profile toggle robustness 9cba01bac77db4d383c159136f904fec00f57d43 Vladyslav Bondarenko 2024-06-25 07:11:38
fix: cast bar update robustness e2e7910e0d96eb65aea9a2a3337fa50cecccc45f Vladyslav Bondarenko 2024-06-25 07:11:07
fix!: toggle raid frame 59503ee6ec8744f057e959c026cacb0e39ee62db Vladyslav Bondarenko 2024-06-23 07:58:42
feat!: prepare release 0.9.0 6b15c2a4567dae6b363d69fa84348aa2dbca7b74 Vladyslav Bondarenko 2024-06-18 22:41:56
fix: add UnitIsTapped to known globals list 9536f6ae6bb9f2e4ce1a668f3a55c2ad0a225cb7 Vladyslav Bondarenko 2024-06-18 22:40:45
feat: upgrade cast bar f050d4444480983bfe7475bdafbfeb2c291c3472 Vladyslav Bondarenko 2024-06-18 18:11:20
fix!: only update cast bar when it's visible 7c2081b92a1ec323911520a977c00f68078bae18 Vladyslav Bondarenko 2024-06-18 17:09:56
Commit 36bba5e5bb7170758410ca3d7e3b619a68591937 - feat!: extend huge unit with more aura buttons
Specialize aura buttons into tiny and large. Add tiny aura buttons to
huge unit frames, so that more auras are visible on target, focus and
player unit frames.

Requires optimization. The layout is not final.
Author: Vladyslav Bondarenko
Author date (UTC): 2025-01-17 14:58
Committer name: Vladyslav Bondarenko
Committer date (UTC): 2025-01-27 16:37
Parent(s): 95249f24afd423899b14b5aa70440d2900da49d0
Signer:
Signing key: EFF9624877D25D02
Signing status: E
Tree: b311ab59de446f41dbf197f8f3750b4c772a2c20
File Lines added Lines deleted
src/ChorusAuraButtonTemplate.lua 142 2
src/ChorusAuraButtonTemplate.xml 37 8
src/ChorusAuraFrameTemplate.lua 8 5
src/ChorusAuraFrameTemplate.xml 138 12
src/ChorusHugeUnitFrameTemplate.xml 5 11
File src/ChorusAuraButtonTemplate.lua changed (mode: 100644) (index 26f2742..921ac56)
... ... local function apply(auraButton, unitDesignation, auraIndex, filter)
400 400 applyChargeQuantity(auraButton, chargeQuantity) applyChargeQuantity(auraButton, chargeQuantity)
401 401 end end
402 402
403 local function saneUnit(frame)
404 assert(frame ~= nil)
405
406 --[[-- @warning Insecure aura buttons access protected properties, like
407 "unit" via `SecureButton_GetUnit`. This may or may not cause issues,
408 like aura buttons not updating property. ]]
409
410 local u = frame.unit or SecureButton_GetUnit(frame) or 'none'
411
412 assert(u ~= nil)
413
414 assert('string' == type(u))
415 u = string.lower(strtrim(u))
416 assert(string.len(u) >= 1)
417 assert(string.len(u) <= 256)
418
419 return u
420 end
421
422 local function saneUnitAuraFilter(auraButton)
423 assert(auraButton ~= nil)
424
425 local filter = auraButton.filter or SecureButton_GetAttribute(auraButton, 'filter')
426
427 assert(filter ~= nil)
428
429 assert('string' == type(filter))
430 filter = string.upper(strtrim(filter))
431 assert(string.len(filter) >= 1)
432 assert(string.len(filter) <= 256)
433
434 return filter
435 end
436
437 local function saneUnitAuraIndex(auraButton)
438 assert(auraButton ~= nil)
439
440 local i = auraButton.index or 0
441 assert(i ~= nil)
442 assert('number' == type(i))
443 i = math.min(math.max(0, math.abs(math.floor(i))), 8192)
444
445 return i
446 end
447
448 local function saneEvent(eventCategory)
449 assert(eventCategory ~= nil)
450
451 assert('string' == type(eventCategory))
452 eventCategory = string.upper(strtrim(eventCategory))
453 assert(string.len(eventCategory) >= 1)
454 assert(string.len(eventCategory) <= 256)
455
456 return eventCategory
457 end
458
403 459 --[[-- --[[--
404 460 Process stream of events, filter events only relevant to the aura button. Process stream of events, filter events only relevant to the aura button.
405 461
 
... ... function Chorus.auraButtonEventProcessor(self, eventCategory, ...)
468 524 apply(self, thisUnit, i, filter) apply(self, thisUnit, i, filter)
469 525 end end
470 526
527 local function auraTinyButtonApply(auraTinyButton, artworkFile)
528 assert(auraTinyButton ~= nil)
529
530 artworkFile = artworkFile or "Interface\\Icons\\INV_Misc_QuestionMark"
531 assert(artworkFile ~= nil)
532
533 local artwork = auraTinyButton.artwork
534 assert(artwork ~= nil)
535
536 artwork:SetTexture(artworkFile)
537 end
538
539 local function auraTinyButtonUnapply(auraTinyButton)
540 assert(auraTinyButton ~= nil)
541
542 auraTinyButton.index = nil
543 auraTinyButton.spell = nil
544
545 local artwork = auraTinyButton.artwork
546
547 if artwork then
548 artwork:SetTexture(nil)
549 end
550 end
551
552 local function auraTinyButtonRefresh(auraTinyButton)
553 assert(auraTinyButton ~= nil)
554
555 local u = saneUnit(auraTinyButton)
556 local filter = saneUnitAuraFilter(auraTinyButton)
557 local i = saneUnitAuraIndex(auraTinyButton)
558
559 local auraName, _, artworkFile = UnitAura(u, i, filter)
560
561 if UnitExists(u) and UnitIsConnected(u) and auraName then
562 auraTinyButtonApply(auraTinyButton, artworkFile)
563 else
564 auraTinyButtonUnapply(auraTinyButton)
565 end
566 end
567
568 local function auraTinyButtonEventProcessor(auraTinyButton, eventCategory, ...)
569 assert(auraTinyButton ~= nil)
570
571 --[[ Only refresh for the relevant unit. ]]--
572
573 if 'UNIT_AURA' == eventCategory then
574 local eventUnit = select(1, ...)
575 local thisUnit = saneUnit(auraTinyButton)
576 if UnitIsUnit(thisUnit, eventUnit) then
577 auraTinyButtonRefresh(auraTinyButton)
578 end
579 else
580 auraTinyButtonRefresh(auraTinyButton)
581 end
582 end
583
471 584 --[[-- --[[--
472 585 Process the state of given aura button, then apply the details to the native Process the state of given aura button, then apply the details to the native
473 586 `GameTooltip`. `GameTooltip`.
 
... ... end
527 640 --[[-- --[[--
528 641 Initialize the aura button frame with callbacks and children. Initialize the aura button frame with callbacks and children.
529 642
530 @function auraButtonMain
643 @function auraLargeButtonMain
531 644 @tparam frame self @tparam frame self
532 645 @return nothing @return nothing
533 646 ]] ]]
534 function Chorus.auraButtonMain(self)
647 function Chorus.auraLargeButtonMain(self)
535 648 local n = self:GetName() local n = self:GetName()
536 649 if n then if n then
537 650 self.artwork = _G[n .. 'Artwork'] self.artwork = _G[n .. 'Artwork']
 
... ... function Chorus.auraButtonMain(self)
548 661
549 662 auraButtonTextScale(self) auraButtonTextScale(self)
550 663 end end
664
665 function Chorus.auraTinyButtonMain(auraTinyButton)
666 assert(auraTinyButton ~= nil)
667
668 local b = auraTinyButton
669
670 local n = b:GetName()
671 assert(n ~= nil)
672
673 assert('string' == type(n))
674 n = strtrim(n)
675 assert(string.len(n) >= 1)
676 assert(string.len(n) <= 256)
677
678 local artwork = _G[n .. 'Artwork']
679 assert(artwork ~= nil)
680
681 b.artwork = artwork
682
683 b:RegisterEvent('UNIT_AURA')
684 b:RegisterEvent('PLAYER_ENTERING_WORLD')
685
686 --[[-- @todo Clean up large and tiny aura button event processors, to
687 reuse code. ]]
688
689 b:SetScript('OnEvent', auraTinyButtonEventProcessor)
690 end
File src/ChorusAuraButtonTemplate.xml changed (mode: 100644) (index 45e99c5..521a5c5)
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="ChorusAuraButtonTemplate.lua"/>
3 <Script file="ChorusAuraButtonTemplate.lua"/>
4 4 <Frame name="ChorusAuraButtonTemplate" virtual="true"> <Frame name="ChorusAuraButtonTemplate" virtual="true">
5 <Scripts>
6 <OnEnter>Chorus.auraButtonGameTooltipShow(self);</OnEnter>
7 <OnLeave>Chorus.auraButtonGameTooltipHide(self);</OnLeave>
8 </Scripts>
9 <Attributes>
10 <Attribute name="useparent-unit" type="boolean" value="true"/>
11 <Attribute name="useparent-filter" type="boolean" value="true"/>
12 </Attributes>
13 </Frame>
14 <Frame name="ChorusAuraLargeButtonTemplate" inherits="ChorusAuraButtonTemplate" virtual="true">
5 15 <Size> <Size>
6 16 <AbsDimension x="30" y="30" /> <AbsDimension x="30" y="30" />
7 17 </Size> </Size>
 
66 76 </Layer> </Layer>
67 77 </Layers> </Layers>
68 78 <Scripts> <Scripts>
69 <OnLoad>Chorus.auraButtonMain(self);</OnLoad>
70 <OnEnter>Chorus.auraButtonGameTooltipShow(self);</OnEnter>
71 <OnLeave>Chorus.auraButtonGameTooltipHide(self);</OnLeave>
79 <OnLoad>Chorus.auraLargeButtonMain(self);</OnLoad>
80 </Scripts>
81 </Frame>
82 <Frame name="ChorusAuraTinyButtonTemplate" inherits="ChorusAuraButtonTemplate" virtual="true">
83 <Size>
84 <AbsDimension x="12" y="12" />
85 </Size>
86 <Layers>
87 <Layer level="ARTWORK">
88 <Texture file="Interface\Icons\INV_Misc_QuestionMark" name="$parentArtwork" nonBlocking="true">
89 <Size>
90 <AbsDimension x="10" y="10"/>
91 </Size>
92 <Anchors>
93 <Anchor point="TOPLEFT">
94 <Offset>
95 <AbsDimension x="1" y="-1"/>
96 </Offset>
97 </Anchor>
98 </Anchors>
99 <TexCoords left="0.30" right="0.70" top="0.12" bottom="0.82"/>
100 </Texture>
101 </Layer>
102 </Layers>
103 <Scripts>
104 <OnLoad>Chorus.auraTinyButtonMain(self);</OnLoad>
72 105 </Scripts> </Scripts>
73 <Attributes>
74 <Attribute name="useparent-unit" type="boolean" value="true"/>
75 <Attribute name="useparent-filter" type="boolean" value="true"/>
76 </Attributes>
77 106 </Frame> </Frame>
78 107 </Ui> </Ui>
File src/ChorusAuraFrameTemplate.lua changed (mode: 100644) (index e93d6a8..b396732)
... ... buttons are handled by `ChorusAuraButtonTemplate`.
7 7
8 8 local Chorus = Chorus local Chorus = Chorus
9 9
10 local auraButtonEventProcessor = Chorus.auraButtonEventProcessor
11
12 10 local SecureButton_GetUnit = Chorus.test.SecureButton_GetUnit or SecureButton_GetUnit local SecureButton_GetUnit = Chorus.test.SecureButton_GetUnit or SecureButton_GetUnit
13 11
14 12 --[[ See `FrameXML/BuffFrame.lua:BUFF_MAX_DISPLAY`. ]]-- --[[ See `FrameXML/BuffFrame.lua:BUFF_MAX_DISPLAY`. ]]--
 
... ... local function auraFrameEventProcessor(self, eventCategory, ...)
111 109 assert(q ~= nil) assert(q ~= nil)
112 110 assert('table' == type(q)) assert('table' == type(q))
113 111
112
114 113 local i = 0 local i = 0
115 114 local t = {self:GetChildren()} local t = {self:GetChildren()}
116 115 while (i < #q) do while (i < #q) do
 
... ... local function auraFrameEventProcessor(self, eventCategory, ...)
128 127 assert(k >= 0) assert(k >= 0)
129 128 b.index = k b.index = k
130 129
131 auraButtonEventProcessor(b, eventCategory, ...)
130 local callback = b:GetScript('OnEvent')
131 assert(callback ~= nil)
132 callback(b, eventCategory, ...)
132 133 end end
133 134
134 135 while (i < #t) do while (i < #t) do
 
... ... local function auraFrameEventProcessor(self, eventCategory, ...)
137 138 assert(b ~= nil) assert(b ~= nil)
138 139 b.index = 0 b.index = 0
139 140
140 auraButtonEventProcessor(b, eventCategory, ...)
141 local callback = b:GetScript('OnEvent')
142 assert(callback ~= nil)
143 callback(b, eventCategory, ...)
141 144 end end
142 145 end end
143 146
 
... ... local function createEveryAuraButton(auraFrame)
158 161 i = i + 1 i = i + 1
159 162
160 163 local m = string.format('%sAuraButton%02d', n, i) local m = string.format('%sAuraButton%02d', n, i)
161 local b = CreateFrame('FRAME', m, self, 'ChorusAuraButtonTemplate')
164 local b = CreateFrame('FRAME', m, self, 'ChorusAuraLargeButtonTemplate')
162 165 b:SetPoint('TOPLEFT', x, -y) b:SetPoint('TOPLEFT', x, -y)
163 166 x = x + b:GetWidth() x = x + b:GetWidth()
164 167 bmaxh = math.max(bmaxh, b:GetHeight()) bmaxh = math.max(bmaxh, b:GetHeight())
File src/ChorusAuraFrameTemplate.xml changed (mode: 100644) (index 7a78e48..3a28bb5)
12 12 </Frame> </Frame>
13 13 <Frame name="ChorusLargeAuraFrameTemplate" inherits="ChorusAuraFrameTemplate" virtual="true"> <Frame name="ChorusLargeAuraFrameTemplate" inherits="ChorusAuraFrameTemplate" virtual="true">
14 14 <Size> <Size>
15 <AbsDimension x="240" y="30"/>
15 <AbsDimension x="240" y="42"/>
16 16 </Size> </Size>
17 17 <Frames> <Frames>
18 <Frame name="$parentAuraButton1" inherits="ChorusAuraButtonTemplate" id="1">
18 <Frame name="$parentAuraButton1" inherits="ChorusAuraLargeButtonTemplate" id="1">
19 19 <Anchors> <Anchors>
20 20 <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT"> <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT">
21 21 <Offset> <Offset>
 
24 24 </Anchor> </Anchor>
25 25 </Anchors> </Anchors>
26 26 </Frame> </Frame>
27 <Frame name="$parentAuraButton2" inherits="ChorusAuraButtonTemplate" id="2">
27 <Frame name="$parentAuraButton2" inherits="ChorusAuraLargeButtonTemplate" id="2">
28 28 <Anchors> <Anchors>
29 29 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton1" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton1" relativePoint="BOTTOMRIGHT">
30 30 <Offset> <Offset>
 
33 33 </Anchor> </Anchor>
34 34 </Anchors> </Anchors>
35 35 </Frame> </Frame>
36 <Frame name="$parentAuraButton3" inherits="ChorusAuraButtonTemplate" id="3">
36 <Frame name="$parentAuraButton3" inherits="ChorusAuraLargeButtonTemplate" id="3">
37 37 <Anchors> <Anchors>
38 38 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton2" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton2" relativePoint="BOTTOMRIGHT">
39 39 <Offset> <Offset>
 
42 42 </Anchor> </Anchor>
43 43 </Anchors> </Anchors>
44 44 </Frame> </Frame>
45 <Frame name="$parentAuraButton4" inherits="ChorusAuraButtonTemplate" id="4">
45 <Frame name="$parentAuraButton4" inherits="ChorusAuraLargeButtonTemplate" id="4">
46 46 <Anchors> <Anchors>
47 47 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton3" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton3" relativePoint="BOTTOMRIGHT">
48 48 <Offset> <Offset>
 
51 51 </Anchor> </Anchor>
52 52 </Anchors> </Anchors>
53 53 </Frame> </Frame>
54 <Frame name="$parentAuraButton5" inherits="ChorusAuraButtonTemplate" id="5">
54 <Frame name="$parentAuraButton5" inherits="ChorusAuraLargeButtonTemplate" id="5">
55 55 <Anchors> <Anchors>
56 56 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton4" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton4" relativePoint="BOTTOMRIGHT">
57 57 <Offset> <Offset>
 
60 60 </Anchor> </Anchor>
61 61 </Anchors> </Anchors>
62 62 </Frame> </Frame>
63 <Frame name="$parentAuraButton6" inherits="ChorusAuraButtonTemplate" id="6">
63 <Frame name="$parentAuraButton6" inherits="ChorusAuraLargeButtonTemplate" id="6">
64 64 <Anchors> <Anchors>
65 65 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton5" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton5" relativePoint="BOTTOMRIGHT">
66 66 <Offset> <Offset>
 
69 69 </Anchor> </Anchor>
70 70 </Anchors> </Anchors>
71 71 </Frame> </Frame>
72 <Frame name="$parentAuraButton7" inherits="ChorusAuraTinyButtonTemplate" id="7">
73 <Anchors>
74 <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT">
75 <Offset>
76 <AbsDimension x="6" y="30"/>
77 </Offset>
78 </Anchor>
79 </Anchors>
80 </Frame>
81 <Frame name="$parentAuraButton8" inherits="ChorusAuraTinyButtonTemplate" id="8">
82 <Anchors>
83 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton7" relativePoint="BOTTOMRIGHT">
84 <Offset>
85 <AbsDimension x="0" y="0"/>
86 </Offset>
87 </Anchor>
88 </Anchors>
89 </Frame>
90 <Frame name="$parentAuraButton9" inherits="ChorusAuraTinyButtonTemplate" id="9">
91 <Anchors>
92 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton8" relativePoint="BOTTOMRIGHT">
93 <Offset>
94 <AbsDimension x="0" y="0"/>
95 </Offset>
96 </Anchor>
97 </Anchors>
98 </Frame>
99 <Frame name="$parentAuraButton10" inherits="ChorusAuraTinyButtonTemplate" id="10">
100 <Anchors>
101 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton9" relativePoint="BOTTOMRIGHT">
102 <Offset>
103 <AbsDimension x="0" y="0"/>
104 </Offset>
105 </Anchor>
106 </Anchors>
107 </Frame>
108 <Frame name="$parentAuraButton11" inherits="ChorusAuraTinyButtonTemplate" id="11">
109 <Anchors>
110 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton10" relativePoint="BOTTOMRIGHT">
111 <Offset>
112 <AbsDimension x="0" y="0"/>
113 </Offset>
114 </Anchor>
115 </Anchors>
116 </Frame>
117 <Frame name="$parentAuraButton12" inherits="ChorusAuraTinyButtonTemplate" id="12">
118 <Anchors>
119 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton11" relativePoint="BOTTOMRIGHT">
120 <Offset>
121 <AbsDimension x="0" y="0"/>
122 </Offset>
123 </Anchor>
124 </Anchors>
125 </Frame>
126 <Frame name="$parentAuraButton13" inherits="ChorusAuraTinyButtonTemplate" id="13">
127 <Anchors>
128 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton12" relativePoint="BOTTOMRIGHT">
129 <Offset>
130 <AbsDimension x="0" y="0"/>
131 </Offset>
132 </Anchor>
133 </Anchors>
134 </Frame>
135 <Frame name="$parentAuraButton14" inherits="ChorusAuraTinyButtonTemplate" id="14">
136 <Anchors>
137 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton13" relativePoint="BOTTOMRIGHT">
138 <Offset>
139 <AbsDimension x="0" y="0"/>
140 </Offset>
141 </Anchor>
142 </Anchors>
143 </Frame>
144 <Frame name="$parentAuraButton15" inherits="ChorusAuraTinyButtonTemplate" id="15">
145 <Anchors>
146 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton14" relativePoint="BOTTOMRIGHT">
147 <Offset>
148 <AbsDimension x="0" y="0"/>
149 </Offset>
150 </Anchor>
151 </Anchors>
152 </Frame>
153 <Frame name="$parentAuraButton16" inherits="ChorusAuraTinyButtonTemplate" id="16">
154 <Anchors>
155 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton15" relativePoint="BOTTOMRIGHT">
156 <Offset>
157 <AbsDimension x="0" y="0"/>
158 </Offset>
159 </Anchor>
160 </Anchors>
161 </Frame>
162 <Frame name="$parentAuraButton17" inherits="ChorusAuraTinyButtonTemplate" id="17">
163 <Anchors>
164 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton16" relativePoint="BOTTOMRIGHT">
165 <Offset>
166 <AbsDimension x="0" y="0"/>
167 </Offset>
168 </Anchor>
169 </Anchors>
170 </Frame>
171 <Frame name="$parentAuraButton18" inherits="ChorusAuraTinyButtonTemplate" id="18">
172 <Anchors>
173 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton17" relativePoint="BOTTOMRIGHT">
174 <Offset>
175 <AbsDimension x="0" y="0"/>
176 </Offset>
177 </Anchor>
178 </Anchors>
179 </Frame>
180 <Frame name="$parentAuraButton19" inherits="ChorusAuraTinyButtonTemplate" id="19">
181 <Anchors>
182 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton18" relativePoint="BOTTOMRIGHT">
183 <Offset>
184 <AbsDimension x="0" y="0"/>
185 </Offset>
186 </Anchor>
187 </Anchors>
188 </Frame>
189 <Frame name="$parentAuraButton20" inherits="ChorusAuraTinyButtonTemplate" id="20">
190 <Anchors>
191 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton19" relativePoint="BOTTOMRIGHT">
192 <Offset>
193 <AbsDimension x="0" y="0"/>
194 </Offset>
195 </Anchor>
196 </Anchors>
197 </Frame>
72 198 </Frames> </Frames>
73 199 </Frame> </Frame>
74 200 <Frame name="ChorusSmallAuraFrameTemplate" inherits="ChorusAuraFrameTemplate" virtual="true"> <Frame name="ChorusSmallAuraFrameTemplate" inherits="ChorusAuraFrameTemplate" virtual="true">
 
76 202 <AbsDimension x="120" y="30"/> <AbsDimension x="120" y="30"/>
77 203 </Size> </Size>
78 204 <Frames> <Frames>
79 <Frame name="$parentAuraButton1" inherits="ChorusAuraButtonTemplate" id="1">
205 <Frame name="$parentAuraButton1" inherits="ChorusAuraLargeButtonTemplate" id="1">
80 206 <Anchors> <Anchors>
81 207 <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT"> <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT">
82 208 <Offset> <Offset>
 
85 211 </Anchor> </Anchor>
86 212 </Anchors> </Anchors>
87 213 </Frame> </Frame>
88 <Frame name="$parentAuraButton2" inherits="ChorusAuraButtonTemplate" id="2">
214 <Frame name="$parentAuraButton2" inherits="ChorusAuraLargeButtonTemplate" id="2">
89 215 <Anchors> <Anchors>
90 216 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton1" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton1" relativePoint="BOTTOMRIGHT">
91 217 <Offset> <Offset>
 
94 220 </Anchor> </Anchor>
95 221 </Anchors> </Anchors>
96 222 </Frame> </Frame>
97 <Frame name="$parentAuraButton3" inherits="ChorusAuraButtonTemplate" id="3">
223 <Frame name="$parentAuraButton3" inherits="ChorusAuraLargeButtonTemplate" id="3">
98 224 <Anchors> <Anchors>
99 225 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton2" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton2" relativePoint="BOTTOMRIGHT">
100 226 <Offset> <Offset>
 
103 229 </Anchor> </Anchor>
104 230 </Anchors> </Anchors>
105 231 </Frame> </Frame>
106 <Frame name="$parentAuraButton4" inherits="ChorusAuraButtonTemplate" id="4">
232 <Frame name="$parentAuraButton4" inherits="ChorusAuraLargeButtonTemplate" id="4">
107 233 <Anchors> <Anchors>
108 234 <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton3" relativePoint="BOTTOMRIGHT"> <Anchor point="BOTTOMLEFT" relativeTo="$parentAuraButton3" relativePoint="BOTTOMRIGHT">
109 235 <Offset> <Offset>
 
119 245 <AbsDimension x="30" y="30"/> <AbsDimension x="30" y="30"/>
120 246 </Size> </Size>
121 247 <Frames> <Frames>
122 <Frame name="$parentAuraButton1" inherits="ChorusAuraButtonTemplate" id="1">
248 <Frame name="$parentAuraButton1" inherits="ChorusAuraLargeButtonTemplate" id="1">
123 249 <Anchors> <Anchors>
124 250 <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT"> <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT">
125 251 <Offset> <Offset>
File src/ChorusHugeUnitFrameTemplate.xml changed (mode: 100644) (index 4d465b8..51f2295)
2 2 <Ui xmlns="http://www.blizzard.com/wow/ui/"> <Ui xmlns="http://www.blizzard.com/wow/ui/">
3 3 <Frame name="ChorusHugeUnitFrameTemplate" inherits="ChorusUnitFrameTemplate" virtual="true"> <Frame name="ChorusHugeUnitFrameTemplate" inherits="ChorusUnitFrameTemplate" virtual="true">
4 4 <Size> <Size>
5 <AbsDimension x="200" y="150"/>
5 <AbsDimension x="200" y="174"/>
6 6 </Size> </Size>
7 7 <Frames> <Frames>
8 8 <!-- Header background. --> <!-- Header background. -->
 
137 137 </StatusBar> </StatusBar>
138 138 <Frame name="$parentBuffFrame" inherits="ChorusLargeAuraFrameTemplate"> <Frame name="$parentBuffFrame" inherits="ChorusLargeAuraFrameTemplate">
139 139 <Anchors> <Anchors>
140 <Anchor point="TOPRIGHT">
141 <Offset x="0" y="-90"/>
142 </Anchor>
143 <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="TOPLEFT">
144 <Offset x="0" y="-120"/>
140 <Anchor point="TOPLEFT" relativeTo="$parentCastFrame" relativePoint="BOTTOMLEFT">
141 <Offset x="0" y="0"/>
145 142 </Anchor> </Anchor>
146 143 </Anchors> </Anchors>
147 144 <Attributes> <Attributes>
 
150 147 </Frame> </Frame>
151 148 <Frame name="$parentDebuffFrame" inherits="ChorusLargeAuraFrameTemplate"> <Frame name="$parentDebuffFrame" inherits="ChorusLargeAuraFrameTemplate">
152 149 <Anchors> <Anchors>
153 <Anchor point="TOPRIGHT">
154 <Offset x="0" y="-120"/>
155 </Anchor>
156 <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="TOPLEFT">
157 <Offset x="0" y="-150"/>
150 <Anchor point="TOPLEFT" relativeTo="$parentBuffFrame" relativePoint="BOTTOMLEFT">
151 <Offset x="0" y="0"/>
158 152 </Anchor> </Anchor>
159 153 </Anchors> </Anchors>
160 154 <Attributes> <Attributes>
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