BigWigs Boss Mods (BW) - DBM alternative

BigWigs Boss Mods (BW) - DBM alternative

142M Downloads

LFG popup bar doesn't respect bar settings

Wdavis4692 opened this issue ยท 12 comments

commented

bigwigsproblem

The bar that pops up and counts down how long you have to join a dungeon doesn't respect the bar settings (appearance, etc) in Bigwigs. I set my bars up to specifically match ElvUI's style, and as it stands the entire UI now has a crisp modern style except this one bar. Changing the size, shape, scale etc, of bars in BigWigs does not seem to have any affect on this bar in the screenshot.

As the bar won't re-skin, I've tried for hours making a script that hides it on the event that the queue pops, as I'd rather disable this progress bar entirely than have it not match the rest of my UI, At the very least the ability to disable this bar if it cannot be skinned would be greatly appreciated too!

In the screenshot provided, as you can see, below the dungeon popup you have the BigWigs bar with the blizzard-style borders which is out-of-key with the other bars - one is Quartz and the other is the BigWigs test bar showing AotC.

It actually looks like a Blizzard mirror bar, but I have mirror bars disabled on Quartz, as ElvUI provides its own mirror timers.

I have tried hiding it using a /script command but haven't been able to find one that works, aside from hiding the entire parent LFG popup frame. If this bar is impossible to be re-skinned NOR hidden, please treat the ability to hide it as a feature request, thank you :)

commented

The queue timer is its own thing, it doesn't use the bars plugin:

https://github.com/BigWigsMods/BigWigs/blob/master/Loader.lua#L1032

I know AddOnSkins handles it, but you can probably find a snippet of code to style it on mmoc or the elvui forums

commented

BigWigs/Loader.lua

Lines 1032 to 1037 in d0e76e4

-- USE THIS CALLBACK TO SKIN THIS WINDOW! NO NEED FOR UGLY HAX! E.g.
-- local name, addon = ...
-- if BigWigsLoader then
-- BigWigsLoader.RegisterMessage(addon, "BigWigs_FrameCreated", function(event, frame, name) print(name.." frame created.") end)
-- end
public:SendMessage("BigWigs_FrameCreated", timerBar, "QueueTimer")

commented

Funky, I don't know how to use a callback to skin a window. I'm basically a layman hence why I was making the suggestion to have it as a tick box to hide instead.

Please don't close an issue until it has been resolved, and it hasn't been resolved because I haven't had a solution that doesn't require me to know how to write an addon that skins a bar.

commented

Don't tell me when to close an issue on my project lol. A tickbox won't be added. You can learn to skin it by reading the code in the comment and, as nebula suggested, checking out AddonSkins, which you could probably just copy paste the majority of.

commented

@Wdavis4692 If you want to get rid of the bar, you can use this snippet:

if BigWigsLoader then 
  BigWigsLoader.RegisterMessage(addon, "BigWigs_FrameCreated", function(event, frame, name) if frame and name == "QueueTimer" then frame:Hide() end end) 
end

Creating a simple addon to have this script run on every reload of your UI would be the easiest.

commented

I don't even know what addonskins is, but I've got to say, while I love your addon, you as an individual are quite a rude man. I did not feel at any point I was being disrespecting but I did however feel you brushed me aside quite casually, effectively slapping a line of code in my face and 'expecting' me to know what it means.

If you had simply taken the time to tell me that from the start by giving a sensible reply rather than making me feel like a stupid nuisance...

Your response was basically 'screw you, not happening, go learn to do it yourself'. All you had to say was 'hi will, unfortunately this isn't a feature we'll be adding, might I suggest trying x or y'

commented

Thank you so much elvador, I'll try that code on my script addon

commented

Yes, but I'd recommend using a custom one, so the code doesn't vanish when updating the addon.

Please note that I just updated the snipped.

commented

Okay so it looks something like this:

local Frame = CreateFrame("Frame")
Frame:RegisterEvent("PLAYER_LOGIN")

Frame:SetScript("OnEvent", function(...)

if BigWigsLoader then 
  BigWigsLoader.RegisterMessage(addon, "BigWigs_FrameCreated", function(event, frame, name) if frame and name == "QueueTimer" then frame:Hide() end end) 
end

end)

Sadly no luck, I get the following .lua error:

Message: Interface\AddOns\BigWigs\Loader.lua:814: table index is nil
Time: Wed Aug  1 14:46:13 2018
Count: 1
Stack: Interface\AddOns\BigWigs\Loader.lua:814: table index is nil
Interface\AddOns\BigWigs\Loader.lua:814: in function `RegisterMessage'
...rface\AddOns\BigWigsTimerHider\BigWigsTimerHider.lua:7: in function <...rface\AddOns\BigWigsTimerHider\BigWigsTimerHider.lua:4>

Locals: self = nil
msg = "BigWigs_FrameCreated"
func = <function> defined @Interface\AddOns\BigWigsTimerHider\BigWigsTimerHider.lua:7
funcType = "function"
(*temporary) = <table> {
}
(*temporary) = <function> defined @Interface\AddOns\BigWigsTimerHider\BigWigsTimerHider.lua:7
(*temporary) = nil
(*temporary) = nil
(*temporary) = "table index is nil"
public = <table> {
 GetBestMapForUnit = <function> defined =[C]:-1
 zoneTblWorld = <table> {
 }
 GetReleaseString = <function> defined @Interface\AddOns\BigWigs\Loader.lua:1286
 RegisterMessage = <function> defined @Interface\AddOns\BigWigs\Loader.lua:795
 UnregisterMessage = <function> defined @Interface\AddOns\BigWigs\Loader.lua:816
 zoneTbl = <table> {
 }
 SendMessage = <function> defined @Interface\AddOns\BigWigs\Loader.lua:825
 CTimerAfter = <function> defined =[C]:-1
 GetZoneMenus = <function> defined @Interface\AddOns\BigWigs\Loader.lua:1294
 GetInstanceInfo = <function> defined =[C]:-1
 GetVersionString = <function> defined @Interface\AddOns\BigWigs\Loader.lua:1290
 RegisterTooltipInfo = <function> defined @Interface\AddOns\BigWigs\Loader.lua:1277
 SendChatMessage = <function> defined =[C]:-1
 GetMapInfo = <function> defined =[C]:-1
 SendAddonMessage = <function> defined =[C]:-1
 LoadZone = <function> defined @Interface\AddOns\BigWigs\Loader.lua:1298
 CTimerNewTicker = <function> defined @Interface\SharedXML\C_TimerAugment.lua:11
}
callbackMap = <table> {
 BigWigs_CoreOptionToggled = <table> {
 }
 BigWigs_FrameCreated = <table> {
 }
 BigWigs_OnBossReboot = <table> {
 }
 BigWigs_OnBossDisable = <table> {
 }
 BigWigs_CoreDisabled = <table> {
 }
 BigWigs_OnPluginDisable = <table> {
 }
 BigWigs_CoreEnabled = <table> {
 }
 BigWigs_BossModuleRegistered = <table> {
 }
}

I literally am a rookie with code, as you can see :)

Anyway, I've taken enough of your time so I dare not take any more. Thank you very much for trying to help, Elvador. You're a star!

commented

BigWigsLoader.RegisterMessage(addon

addon should be Frame

commented

Thank you funky, you have solved it. Thank you both :)

commented

Since it cannot be reskinned I am now pursuing the option of hiding specifically the bar :)

Okay, on line 957 of Loader.lua there's timerBar:Hide() but every time I update BigWigs and loader.lua is updated, it will reset to :Show(). I have been unable to find an in-game /script command to hide it -- If I could, I'd add it to my basic on addon and add the event "LFG_PROPOSAL_SHOW" to the trigger that runs the hiding script. That way any BigWigs update doesn't break my tweak.

bigwigsproblem

On the left I have highlighted the entire timer bar frame (it shows up in the picture as LFGDungeonReadyPopup..2271acac670) The sequence of letters and numbers after the period randomize each UI reload. Typing /script LFGDungeonReadyPopup..2271acac670:Hide() does nothing, yet typing /script LFGDungeonReadyPopup:Hide() hides the entire frame and its children which includes the anchored bar.

On the right I have expanded LFGDungeonReadyPopup..2271acac670 and you can see all its children. Unticking 'show' in ElvUI's framestack panel DOES hide it, but again, only until the next UI reload :P

Since the bar cannot be reskinned by the BigWigs bars module, I would like to put forward a feature request to have a tick box to hide it in the BigWigs settings please. I have hidden it in Loader.lua but that will only last until the next BigWigs version comes out - and they come out pretty quick!

Best regards
And many thanks for listening!
Keep up the great work ๐Ÿ‘