List of commits:
Subject Hash Author Date (UTC)
feat(choir)!: Add interface options for raid frame ce677d3d0e7cfe05d1da5b159f52a0808db9ce9a Vladyslav Bondarenko 2021-11-24 06:05:37
feat(choir): Add conf spell shortcut default button c8e2c3493896f5ae589c516f742bbafd528140db Vladyslav Bondarenko 2021-11-24 02:28:19
feat(choir)!: Add configuration menu 12319ce873aecea4bfc0addec7c5ac5c1f225237 Vladyslav Bondarenko 2021-11-21 09:26:05
feat(choir): Add unit game tooltip 3ec490e489bb105f5096d5bb3e56814873deec3f Vladyslav Bondarenko 2021-11-20 09:34:12
fix(choir): Raid group frame arrange correctly b592f3f018ee521a821447ccf837aded703ad447 Vladyslav Bondarenko 2021-11-18 22:02:52
feat(choir): Render group role indicator for units 5f3a7c24d3f79035b8faa156355a2d017688134e Vladyslav Bondarenko 2021-11-18 22:02:27
feat(choir): Adjust raid group frame position f99a54133a1761034baca93bfa8814c614191818 Vladyslav Bondarenko 2021-11-18 00:35:35
feat(choir): Add debuff buttons for raid fe66339420a9eb5e4823cc4fe45e0d97b2983073 Vladyslav Bondarenko 2021-11-17 00:55:54
feat(choir): Add texture to health bars ddaeb29d7ecfd95a98bcc85b3f4f7676c7ccd4d7 Vladyslav Bondarenko 2021-11-14 21:40:26
fix(choir)!: Obscure critical error 0f203b4d69f57240e97c66f1ab4510c6ac3e9276 Vladyslav Bondarenko 2021-11-11 12:52:02
feat(choir): Toggle button visibility given roster d193e7b5eb38cb3ac69d74eec1f96e00d90b6098 Vladyslav Bondarenko 2021-11-10 23:46:24
feat(choir)!: Add permanent raid frame 1839c35af4212c09038e972547d6b5893a9ce219 Vladyslav Bondarenko 2021-11-10 16:04:25
feat(choir)!: Employ Clearcasting subset feat 733c81538c3c965f07993fd7ddc482e724121b75 Vladyslav Bondarenko 2021-11-04 22:40:48
fix(choir): Improve shortcut binding keys eb636de6e3f7bada9f0064ffe4db1db3f6433f6c Vladyslav Bondarenko 2021-10-31 18:55:10
fix(choir): Improve choirBindingKey attribute handling 6c5c2214cc1809e5e5e59cd3672da3cca3f2701f Vladyslav Bondarenko 2021-10-31 13:23:24
feat(choir)!: Add spell shortcut prototype d34f22a6983ffc41122acb40d22e3cb29c208a3c Vladyslav Bondarenko 2021-10-31 12:39:39
feat(choir)!: Add spell effects on unit d581df9fce342709267a3221dead4d00b9d14319 Vladyslav Bondarenko 2021-10-31 10:49:19
feat(choir)!: Close spoiler by pressing Esc 22d7370011ac45d25a410a3f569183d0cc9fb232 Vladyslav Bondarenko 2021-10-29 16:10:08
feat(choir)!: Range indicator 931a0510b562986ec76dc22f329f4af4ed723cdf Vladyslav Bondarenko 2021-10-29 10:40:46
fix(choir)!: Health bar in combat a6622578dd5a1b4e4babf699a4cf1e4eb6bb70d6 Vladyslav Bondarenko 2021-10-28 07:42:57
Commit ce677d3d0e7cfe05d1da5b159f52a0808db9ce9a - feat(choir)!: Add interface options for raid frame
Add the ability to toggle the custom raid frame visibility and adjust
it's position via native interface options menu.
Author: Vladyslav Bondarenko
Author date (UTC): 2021-11-24 06:05
Committer name: Vladyslav Bondarenko
Committer date (UTC): 2021-11-24 06:05
Parent(s): c8e2c3493896f5ae589c516f742bbafd528140db
Signer:
Signing key:
Signing status: N
Tree: b9db0fccc565c8b78f5aa2b5473e6ba970dd2c52
File Lines added Lines deleted
.luacheckrc 4 1
choir.lua 138 8
choir.toc 1 1
File .luacheckrc changed (mode: 100644) (index 51eac86..03788a8)
... ... stds.wow = {
40 40 stds.choir = { stds.choir = {
41 41 globals = { globals = {
42 42 'BINDING_HEADER_CHOIR', 'BINDING_HEADER_CHOIR',
43 'ChoirConfRaidFlag',
44 'ChoirConfRaidX',
45 'ChoirConfRaidY',
43 46 'ChoirRangeSpellName', 'ChoirRangeSpellName',
44 'ChoirShortcutSpellNameList',
45 47 'ChoirShortcutBindingKeyMap', 'ChoirShortcutBindingKeyMap',
48 'ChoirShortcutSpellNameList',
46 49 }, },
47 50 read_globals = { read_globals = {
48 51 'ChoirFrame', 'ChoirFrame',
File choir.lua changed (mode: 100644) (index ba0e991..f995171)
... ... local function arrangeEveryRaidGroupFrame(raidFrame)
762 762 i = i + 1 i = i + 1
763 763 local raidGroupFrame = t[i] local raidGroupFrame = t[i]
764 764 if raidGroupFrame and raidGroupFrame:IsShown() then if raidGroupFrame and raidGroupFrame:IsShown() then
765 raidGroupFrame:SetPoint('BOTTOMLEFT', 0, y)
765 raidGroupFrame:SetPoint('BOTTOMLEFT', raidFrame, 'BOTTOMLEFT', 0, y)
766 766 y = y + raidGroupFrame:GetHeight() + padding y = y + raidGroupFrame:GetHeight() + padding
767 767 end end
768 768 end end
 
... ... local function createRaidGroupFrame(raidFrame, groupNumber, unitSetOverride)
902 902 end end
903 903
904 904 local function raidFrameEventProcessor(raidFrame) local function raidFrameEventProcessor(raidFrame)
905 arrangeEveryRaidGroupFrame(raidFrame)
905 if ChoirConfRaidFlag then
906 raidFrame:Show()
907 arrangeEveryRaidGroupFrame(raidFrame)
908 else
909 raidFrame:Hide()
910 end
906 911 end end
907 912
908 913 local function createRaidFrame(rootFrame, spoilerHolder) local function createRaidFrame(rootFrame, spoilerHolder)
 
... ... local function createRaidFrame(rootFrame, spoilerHolder)
920 925 local raidFrame = CreateFrame('FRAME', 'ChoirRaidFrame', rootFrame) local raidFrame = CreateFrame('FRAME', 'ChoirRaidFrame', rootFrame)
921 926 raidFrame:SetSize(labelWidth + (padding + buttonWidth) * maxPartySize, raidFrame:SetSize(labelWidth + (padding + buttonWidth) * maxPartySize,
922 927 (padding + buttonHeight) * (maxSubgroupQuantity / 2)) (padding + buttonHeight) * (maxSubgroupQuantity / 2))
923 raidFrame:SetPoint('TOPLEFT', 0, -64)
924 928
925 929 --[[ TODO Add any debuff indicator ]]-- --[[ TODO Add any debuff indicator ]]--
926 930 local j = 0 local j = 0
 
... ... local function initConfSpellShortcut(confFrame)
1373 1377 return bindingKeyFrame return bindingKeyFrame
1374 1378 end end
1375 1379
1376 local function initConf(rootFrame)
1380 local function applyConfRaidFrameFactory(raidFrame, confRaidCheckButton, confRaidXEditBox, confRaidYEditBox)
1381 assert (raidFrame ~= nil)
1382 assert (confRaidCheckButton ~= nil)
1383 assert (confRaidXEditBox ~= nil)
1384 assert (confRaidYEditBox ~= nil)
1385
1386 return function()
1387 local x = confRaidXEditBox:GetNumber() or 0
1388 x = math.min(math.max(0, x), UIParent:GetWidth())
1389
1390 local y = confRaidYEditBox:GetNumber() or 0
1391 y = math.min(math.max(0, y), UIParent:GetHeight())
1392
1393 local flag = false
1394 if confRaidCheckButton:GetChecked() then
1395 flag = true
1396 end
1397
1398 ChoirConfRaidFlag = flag
1399 ChoirConfRaidX = x
1400 ChoirConfRaidY = y
1401
1402 raidFrame:SetPoint('BOTTOMLEFT', x, y)
1403 if flag then
1404 raidFrame:Show()
1405 else
1406 raidFrame:Hide()
1407 end
1408 arrangeEveryRaidGroupFrame(raidFrame)
1409 end
1410 end
1411
1412 local function cancelConfRaidFrameFactory(raidFrame, confRaidCheckButton, confRaidXEditBox, confRaidYEditBox)
1413 assert (raidFrame ~= nil)
1414 assert (confRaidCheckButton ~= nil)
1415 assert (confRaidXEditBox ~= nil)
1416 assert (confRaidYEditBox ~= nil)
1417
1418 return function()
1419 local x = ChoirConfRaidX or 0
1420 x = math.min(math.max(0, x), UIParent:GetWidth())
1421
1422 local y = ChoirConfRaidY or 0
1423 y = math.min(math.max(0, y), UIParent:GetHeight())
1424
1425 local flag = false
1426 if ChoirConfRaidFlag then
1427 flag = true
1428 end
1429
1430 ChoirConfRaidFlag = flag
1431 ChoirConfRaidX = x
1432 ChoirConfRaidY = y
1433
1434 if flag then
1435 confRaidCheckButton:SetChecked(true)
1436 else
1437 confRaidCheckButton:SetChecked(false)
1438 end
1439 confRaidXEditBox:SetNumber(x)
1440 confRaidXEditBox:SetCursorPosition(0)
1441 confRaidYEditBox:SetNumber(y)
1442 confRaidYEditBox:SetCursorPosition(0)
1443 end
1444 end
1445
1446
1447 local function initConfRaidFrame(confFrame, raidFrame)
1448 assert (confFrame ~= nil)
1449 assert (raidFrame ~= nil)
1450
1451 local marginBottom = 144
1452 local marginLeft = 16
1453 local padding = 6
1454
1455 local confRaidFrame = CreateFrame('FRAME', 'ChoirConfRaidFrame', confFrame)
1456 confRaidFrame:SetSize(144 * 3, 144)
1457 confRaidFrame:SetPoint('BOTTOMLEFT', 0, 0)
1458
1459 local n0 = confRaidFrame:GetName() .. 'RaidFlagCheckButton'
1460 local n0Width = 24 * 6
1461 local confRaidCheckButton = CreateFrame('CHECKBUTTON', n0, confRaidFrame, 'ChatConfigCheckButtonTemplate');
1462 confRaidCheckButton:SetPoint('BOTTOMLEFT', marginLeft, marginBottom)
1463 local n0text = _G[n0 .. 'Text']
1464 n0text:SetText('Raid Frame')
1465
1466 local n1 = confRaidFrame:GetName() .. 'RaidFrameXEditBox'
1467 local confRaidXEditBox = CreateFrame('EDITBOX', n1, confRaidFrame, 'InputBoxTemplate')
1468 confRaidXEditBox:SetSize(12 * 4, 24)
1469 confRaidXEditBox:SetPoint('BOTTOMLEFT', marginLeft + n0Width + padding, marginBottom)
1470 confRaidXEditBox:SetAutoFocus(false)
1471 confRaidXEditBox:SetCursorPosition(0)
1472
1473 local n2 = confRaidFrame:GetName() .. 'RaidFrameYEditBox'
1474 local confRaidYEditBox = CreateFrame('EDITBOX', n2, confRaidFrame, 'InputBoxTemplate')
1475 confRaidYEditBox:SetSize(12 * 4, 24)
1476 local n2x = marginLeft + n0Width + confRaidXEditBox:GetWidth() + padding * 2
1477 local n2y = marginBottom
1478 confRaidYEditBox:SetPoint('BOTTOMLEFT', n2x, n2y)
1479 confRaidYEditBox:SetAutoFocus(false)
1480 confRaidYEditBox:SetCursorPosition(0)
1481
1482 local okay = applyConfRaidFrameFactory(raidFrame, confRaidCheckButton, confRaidXEditBox, confRaidYEditBox)
1483 local cancel = cancelConfRaidFrameFactory(raidFrame, confRaidCheckButton, confRaidXEditBox, confRaidYEditBox)
1484
1485 confFrame.okay = okay
1486 confFrame.cancel = cancel
1487 confFrame.refresh = cancel
1488 local default = function()
1489 ChoirConfRaidFlag = true
1490 ChoirConfRaidX = 256
1491 ChoirConfRaidY = 768 - 48 * 8 / 2
1492 --[[ NOTE Refresh callback is executed implicitly here. ]]--
1493 end
1494 confFrame.default = default
1495
1496 if nil == ChoirConfRaidFlag and nil == ChoirConfRaidX and nil == ChoirConfRaidY then
1497 default()
1498 end
1499 cancel()
1500 okay()
1501
1502 return confRaidFrame
1503 end
1504
1505 local function initConf(rootFrame, raidFrame)
1377 1506 assert (rootFrame ~= nil) assert (rootFrame ~= nil)
1378 1507
1379 1508 local confFrame = CreateFrame('FRAME', 'ChoirConfFrame', rootFrame) local confFrame = CreateFrame('FRAME', 'ChoirConfFrame', rootFrame)
 
... ... local function initConf(rootFrame)
1410 1539
1411 1540 InterfaceOptions_AddCategory(confFrame) InterfaceOptions_AddCategory(confFrame)
1412 1541
1542 initConfRaidFrame(confFrame, raidFrame)
1543
1413 1544 local bindingKeyFrame = initConfSpellShortcut(confFrame) local bindingKeyFrame = initConfSpellShortcut(confFrame)
1414 1545 assert (bindingKeyFrame ~= nil) assert (bindingKeyFrame ~= nil)
1415 1546 InterfaceOptions_AddCategory(bindingKeyFrame) InterfaceOptions_AddCategory(bindingKeyFrame)
 
... ... local function init(rootFrame)
1425 1556
1426 1557 rootFrame:UnregisterAllEvents() rootFrame:UnregisterAllEvents()
1427 1558
1428 rootFrame:SetSize(1024, 768)
1429 rootFrame:SetPoint('CENTER', 0, 0)
1559 rootFrame:SetAllPoints()
1430 1560
1431 1561 initRangeSpellName(rootFrame) initRangeSpellName(rootFrame)
1432 1562 local spoilerHolder = initSpoiler(rootFrame) local spoilerHolder = initSpoiler(rootFrame)
1433 initRaidFrame(rootFrame, spoilerHolder)
1434 initConf(rootFrame)
1563 local raidFrame = initRaidFrame(rootFrame, spoilerHolder)
1564 initConf(rootFrame, raidFrame)
1435 1565
1436 1566 trace('init') trace('init')
1437 1567 end end
File choir.toc changed (mode: 100644) (index 8d6d15e..3a926ca)
1 1 ##Dependencies: Clearcasting ##Dependencies: Clearcasting
2 2 ##Interface: 30300 ##Interface: 30300
3 3 ##Notes: Raid targeting aid for healers ##Notes: Raid targeting aid for healers
4 ##SavedVariablesPerCharacter: ChoirRangeSpellName, ChoirShortcutSpellNameList, ChoirShortcutBindingKeyMap
4 ##SavedVariablesPerCharacter: ChoirRangeSpellName, ChoirShortcutSpellNameList, ChoirShortcutBindingKeyMap, ChoirConfRaidFlag, ChoirConfRaidX, ChoirConfRaidY
5 5 ##Title: Choir ##Title: Choir
6 6 ##Version: 0 ##Version: 0
7 7 bindings.xml bindings.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/choir

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

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

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