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 detailed buff and debuff popup 1ff7bcff470419c7fa40c6b946e441867dda4825 Vladyslav Bondarenko 2023-08-27 20:42:05
fix!: Further specialize every aura frame 1ec8385427bda76ea40840e68da7f5948d5af9bd Vladyslav Bondarenko 2023-08-27 18:40:55
fix!: Disable test mockup for release 0.4 54113d6a7f222ea2f382a1d5382c8e941e7537b1 Vladyslav Bondarenko 2023-08-26 22:42:33
fix: Apply source formatting before 0.4 cb1c5f11b553aba43751091c8746abdf261806e6 Vladyslav Bondarenko 2023-08-26 22:36:57
fix!: Cast bar consistent between targets a7c5e11ec5094033e946a95002010e5b02d6da74 Vladyslav Bondarenko 2023-08-26 21:56:35
fix(test)!: Add primitive test mockups f2b7fcf2058c7c1b61ef43241f55e92a5113bf57 Vladyslav Bondarenko 2023-08-26 16:55:54
feat(build): Update project descriptors for 0.3 740e01cc3a8888e0500ce213d7901f66625919ab Vladyslav Bondarenko 2023-08-25 21:15:10
feat: Add solo target of target f11b332540168ff42f4f9b53abd87b8b2a09db65 Vladyslav Bondarenko 2023-08-25 20:44:27
feat: Add player pet button to solo frame 00e67525cafb6db5256cd43ecf8a7f510354b88f Vladyslav Bondarenko 2023-08-25 19:58:10
fix: Hide power (mana) bar when appropriate e307bbfdabbe63faed3a7de9e0152639418496b8 Vladyslav Bondarenko 2023-08-25 19:56:53
feat!: Add party frame f50f93dc80f86f8fb280836366252520fd417b29 Vladyslav Bondarenko 2023-08-25 18:18:24
fix!: Toggle frame visibility with unit watch 3ab89d1ee3ae8d2a1afa94610140767b28f12c6a Vladyslav Bondarenko 2023-08-25 18:09:32
feat!: Add target of target or raid target units af78c022d560f964fd38e973491a4e815bf13275 Vladyslav Bondarenko 2023-08-25 18:03:08
fix!: Hidden unit buttons obstruct mouse clicks d746f12ffb2a6e87968c80224cc8a2f5485a4c76 Vladyslav Bondarenko 2023-08-25 13:51:56
feat: Add unit level to huge unit buttons 57c502e2ea48241401428e7de523e2672911b2c6 Vladyslav Bondarenko 2023-08-25 13:13:05
feat!: Add cast bar for huge unit buttons f921c3e2c1417036981f9e7ac9d070d66e4d7d19 Vladyslav Bondarenko 2023-08-25 11:38:37
fix: Add threat and range widgets to large buttons 8956671551dbd110d2f62b482579851f5283a065 Vladyslav Bondarenko 2023-08-25 09:36:02
fix: Filter out irrelevant events for status bars d11036a029bb51458c5bc592baf592463a05f11a Vladyslav Bondarenko 2023-08-25 09:02:07
feat: When group member out of range fade out e1b06d6c96ddceb3aa35ad5cc249671a5c1bf852 Vladyslav Bondarenko 2023-08-25 08:58:53
fix: Add unit tooltip 9b853289a7730a8783f02691c944492e0ef53f86 Vladyslav Bondarenko 2023-08-25 08:15:33
Commit 1ff7bcff470419c7fa40c6b946e441867dda4825 - feat!: Add detailed buff and debuff popup
When user clicks at aura frame for huge and large unit buttons, show a
context menu. The context menu shows all effects (auras, buffs, debuffs)
that the unit is affected by. Warning, does not work in combat, yet.
Author: Vladyslav Bondarenko
Author date (UTC): 2023-08-27 20:42
Committer name: Vladyslav Bondarenko
Committer date (UTC): 2023-08-27 20:42
Parent(s): 1ec8385427bda76ea40840e68da7f5948d5af9bd
Signer:
Signing key: EFF9624877D25D02
Signing status: E
Tree: 3a5298952d81d56676ca0eafe912b2b9b3b3393d
File Lines added Lines deleted
src/Chorus.xml 1 0
src/ChorusAuraTooltipFrameTemplate.lua 39 0
src/ChorusAuraTooltipFrameTemplate.xml 110 0
src/ChorusUnitButtonTemplate.xml 20 1
File src/Chorus.xml changed (mode: 100644) (index 50f7609..14ef12a)
7 7 <Include file="ChorusFont.xml"/> <Include file="ChorusFont.xml"/>
8 8 <Include file="ChorusAuraButtonTemplate.xml"/> <Include file="ChorusAuraButtonTemplate.xml"/>
9 9 <Include file="ChorusAuraFrameTemplate.xml"/> <Include file="ChorusAuraFrameTemplate.xml"/>
10 <Include file="ChorusAuraTooltipFrameTemplate.xml"/>
10 11 <Include file="ChorusProgressFrameTemplate.xml"/> <Include file="ChorusProgressFrameTemplate.xml"/>
11 12 <Include file="ChorusHealthFrameTemplate.xml"/> <Include file="ChorusHealthFrameTemplate.xml"/>
12 13 <Include file="ChorusPowerFrameTemplate.xml"/> <Include file="ChorusPowerFrameTemplate.xml"/>
File src/ChorusAuraTooltipFrameTemplate.lua added (mode: 100644) (index 0000000..459de89)
1 local Chorus = Chorus
2
3 local function auraTooltipUpdate(self)
4 local u = SecureButton_GetUnit(self)
5 if u and UnitExists(u) and UnitIsConnected(u) then
6 self:Show()
7 else
8 self:Hide()
9 return
10 end
11
12 local t = {self:GetChildren()}
13 local i = 0
14 while (i < #t) do
15 i = i + 1
16 local b = t[i]
17 if not b then
18 break
19 end
20 local callback = b:GetScript('OnEvent')
21 if callback then
22 callback(b, 'UNIT_AURA', u)
23 end
24 end
25 end
26
27 local function auraTooltipFrameMain(self)
28 assert(self ~= nil)
29
30 self:SetScript('OnAttributeChanged', function(self0, name, value)
31 if 'unit' == name and not value then
32 auraTooltipUpdate(self0)
33 end
34 end)
35 end
36
37 Chorus.auraTooltipFrameMain = function(...)
38 return auraTooltipFrameMain(...)
39 end
File src/ChorusAuraTooltipFrameTemplate.xml added (mode: 100644) (index 0000000..bda664f)
1 <?xml version="1.0" encoding="UTF-8"?>
2 <Ui xmlns="http://www.blizzard.com/wow/ui/">
3 <Script file="ChorusAuraTooltipFrameTemplate.lua"/>
4 <Frame name="ChorusAuraTooltipFrameAuraFrameTemplate" inherits="ChorusAuraFrameTemplate" virtual="true">
5 <Size>
6 <AbsDimension x="180" y="180"/>
7 </Size>
8 <!-- Allocate `ChorusAuraButtonTemplate` instances dynamically at runtime,
9 instead of declaring them in this descriptor with `Frames` tag.
10 See ChorusAuraFrameTemplate.lua. -->
11 </Frame>
12 <Frame name="ChorusAuraTooltipFrameTemplate" frameStrata="TOOLTIP" hidden="true" virtual="true">
13 <Size>
14 <AbsDimension x="192" y="384"/>
15 </Size>
16 <Backdrop bgFile="Interface\Tooltips\UI-Tooltip-Background" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
17 <EdgeSize>
18 <AbsValue val="16"/>
19 </EdgeSize>
20 <TileSize>
21 <AbsValue val="16"/>
22 </TileSize>
23 <BackgroundInsets>
24 <AbsInset left="5" right="5" top="5" bottom="5"/>
25 </BackgroundInsets>
26 </Backdrop>
27 <Frames>
28 <Frame name="$parentUnitNameFrame" inherits="ChorusUnitNameFrameTemplate">
29 <Anchors>
30 <Anchor point="TOPRIGHT">
31 <Offset x="0" y="0"/>
32 </Anchor>
33 <Anchor point="TOPLEFT">
34 <Offset x="0" y="0"/>
35 </Anchor>
36 <Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="TOPLEFT">
37 <Offset x="0" y="-24"/>
38 </Anchor>
39 <Anchor point="BOTTOMRIGHT" relativeTo="$parent" relativePoint="TOPRIGHT">
40 <Offset x="0" y="-24"/>
41 </Anchor>
42 </Anchors>
43 <Attributes>
44 <Attribute name="unit" type="string" value="player"/>
45 </Attributes>
46 </Frame>
47 <Frame name="$parentBuffFrame" inherits="ChorusAuraTooltipFrameAuraFrameTemplate">
48 <Anchors>
49 <Anchor point="TOPLEFT">
50 <Offset x="6" y="-24"/>
51 </Anchor>
52 </Anchors>
53 <Attributes>
54 <Attribute name="filter" type="string" value="HELPFUL"/>
55 </Attributes>
56 </Frame>
57 <Frame name="$parentDebuffFrame" inherits="ChorusAuraTooltipFrameAuraFrameTemplate">
58 <Anchors>
59 <Anchor point="TOPLEFT" relativeTo="$parentBuffFrame" relativePoint="BOTTOMLEFT">
60 <Offset x="0" y="0"/>
61 </Anchor>
62 </Anchors>
63 <Attributes>
64 <Attribute name="filter" type="string" value="HARMFUL"/>
65 </Attributes>
66 </Frame>
67 </Frames>
68 <Scripts>
69 <OnLoad>Chorus.auraTooltipFrameMain(self);</OnLoad>
70 </Scripts>
71 <Attributes>
72 <Attribute name="useparent-unit" type="boolean" value="true"/>
73 </Attributes>
74 </Frame>
75 <Frame name="ChorusAuraTooltipFrame" frameStrata="TOOLTIP" hidden="true" inherits="ChorusAuraTooltipFrameTemplate">
76 <Anchors>
77 <Anchor point="CENTER">
78 <Offset x="0" y="0"/>
79 </Anchor>
80 </Anchors>
81 <Attributes>
82 <Attribute name="unit" type="string" value="player"/>
83 </Attributes>
84 </Frame>
85 <!-- FIXME Aura tooltip toggle button must work in combat. Use `SecureActionButtonTemplate`. -->
86 <Button name="ChorusAuraTooltipFrameToggleButtonTemplate" virtual="true">
87 <Scripts>
88 <OnLoad>
89 self:RegisterForClicks('AnyUp')
90 --[[ Ensure that the property is a reference to an identity, and not a string literal. ]]--
91 self:SetAttribute('attribute-frame', ChorusAuraTooltipFrame)
92 </OnLoad>
93 <OnClick>
94 local tooltipFrame = SecureButton_GetAttribute(self, 'attribute-frame');
95 if tooltipFrame and tooltipFrame:IsShown() then
96 tooltipFrame:Hide()
97 return
98 end
99 local u = SecureButton_GetUnit(self);
100 if u and UnitExists(u) and UnitIsConnected(u) and (UnitAura(u, 1) or UnitAura(u, 1, 'HARMFUL')) then
101 tooltipFrame:SetAttribute('unit', u);
102 tooltipFrame:Show();
103 end
104 </OnClick>
105 </Scripts>
106 <Attributes>
107 <Attribute name="useparent-unit" type="boolean" value="true"/>
108 </Attributes>
109 </Button>
110 </Ui>
File src/ChorusUnitButtonTemplate.xml changed (mode: 100644) (index 7afa94b..0a01dd2)
332 332 </Anchor> </Anchor>
333 333 </Anchors> </Anchors>
334 334 </Frame> </Frame>
335 <Button name="$parentAuraTooltipToggleButton" inherits="ChorusAuraTooltipFrameToggleButtonTemplate">
336 <Size>
337 <AbsDimension x="150" y="32"/>
338 </Size>
339 <Anchors>
340 <Anchor point="BOTTOMLEFT">
341 <Offset x="0" y="0"/>
342 </Anchor>
343 </Anchors>
344 </Button>
335 345 </Frames> </Frames>
336 346 </Button> </Button>
337 347 <Button name="ChorusHugeUnitButtonTemplate" inherits="ChorusUnitButtonTemplate" virtual="true"> <Button name="ChorusHugeUnitButtonTemplate" inherits="ChorusUnitButtonTemplate" virtual="true">
 
463 473 </Anchor> </Anchor>
464 474 </Anchors> </Anchors>
465 475 </Frame> </Frame>
466
476 <Button name="$parentAuraTooltipToggleButton" inherits="ChorusAuraTooltipFrameToggleButtonTemplate">
477 <Size>
478 <AbsDimension x="256" y="64"/>
479 </Size>
480 <Anchors>
481 <Anchor point="BOTTOMLEFT">
482 <Offset x="0" y="0"/>
483 </Anchor>
484 </Anchors>
485 </Button>
467 486 </Frames> </Frames>
468 487 </Button> </Button>
469 488 </Ui> </Ui>
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