Apparently there are tons of Broker plugins with complex options that require a Blizz options panel, and he wants to make them all show up as child entries under a single "Broker" category. He also wants to extend the LDB spec to support Ace3 options tables through LDB rather than just in the addon providing the LDB data object. Despite having read this thread and the discussion in the LDB thread about this, I still don't understand why either of these things are needed (all I've picked up are "because scrollbars suck" and "it wouldn't force you to use Ace3"), and I still don't think either one belongs in LDB. I have over a dozen LDB plugins, and only one or two have a Blizz panel entry; the rest are "configured" by shift-clicking on the plugin to toggle a setting. ???
I've already expressed my thoughts on this matter, though, so I won't derail this thread any further. Carry on.
Apparently there are tons of Broker plugins with complex options that require a Blizz options panel, and he wants to make them all show up as child entries under a single "Broker" category.
Sigh.
He also wants to extend the LDB spec to support Ace3 options tables through LDB rather than just in the addon providing the LDB data object.
Point out where I mentioned extending the LDB spec. Please. And if you actually read my posts, you'll see that I mentioned the DO addon providing the options table and the library (a "broker options" library) doing the work. I mentioned nothing about LDB providing or doing anything.
Despite having read this thread and the discussion in the LDB thread about this, I still don't understand why either of these things are needed
How does "would be nice" translate to "are needed"?
and I still don't think either one belongs in LDB.
It wouldn't be in LDB. It would be a stand-alone, optional library that those would wanted to utilize could.
I have over a dozen LDB plugins, and only one or two have a Blizz panel entry; the rest are "configured" by shift-clicking on the plugin to toggle a setting.
Ah, yes. I forgot that there should be only data displays for LDB.
Seriously, go have some warm milk and cookies and get a back rub or something. :p
I would describe it as "trying to avoid the trainwreck that is coming when all these independenly written addons with different configuration methods and tooltip implementations are all aggregated visually, but have otherwise 0 relation to each other"
Most people think like this: Related visually -> Related
Extending support for this visual relation to options presentation should be up to the display, but the DO's need a way to expose thier support for it.
Not sure if what you're for or against by what you just posted. :p Obviously, mods that add support for LDB (IE Omen, etc) won't be using the options. This is strictly for addons whose sole purpose is to be a plugin for broker. IE Currency, Transit, etc.
And I keep seeing the tool tip issue arise. I don't know what that's about (I guess the whole "sticking to the spec" thing), but it's really a separate issue, isn't it?
Reads like a 'for it post'. You said in your first post you planned to try and implement something anyway? If you throw out some code that is easy to hook into and it gives advantages it will probably start to take off once available.
...If you throw out some code that is easy to hook into and it gives advantages it will probably start to take off once available.
As a proof of concept I previously modified Currency to show up under "Broker" in the Blizz options panel. It is 11 lines of code, 9 of which can be abstracted to a lib or something so it is universally updateable if Blizzard changes their API. I think I incorporated most of the changes suggested in the other thread.
Any other Broker Data Object that has a config is welcome to use the exact same mechanism to create "Broker" if necessary, and then nest its options inside that.
Please note that this is a purely cosmetic effect inside the Blizzard options. Supporting it is totally voluntary, and only applicable if your DO actually has a config that uses the Blizzard panels.
local lib, oldminor = LibStub:NewLibrary("BrokerDataSourceOptions", 1)
if not lib then return end
local panel = CreateFrame("Frame", "BrokerDataSourceOptions", UIParent)
panel.name = "BrokerDataSource"
panel:Hide()
InterfaceOptions_AddCategory(panel)
function panel.default()
for i, category in ipairs(INTERFACEOPTIONS_ADDONCATEGORIES) do
category:default()
end
end
panel:SetScript("OnShow", function(self)
--taken from tekKonfigHeading
local title = self:CreateFontString("BrokerDataSourceOptionsTitle", "ARTWORK", "GameFontNormalLarge")
title:SetPoint("TOPLEFT", 16, -16)
title:SetText("BrokerDataSource")
self.title = title
self:SetScript("OnShow", nil)
end)
lib.panel = panel
That's a start, though I think I'm just going to hook into AceConfig so as to have a stand-alone config window and optionally add to Blizzard's options window. Those plugins with options will likely being using AC anyhow, so it'll just be fed an Ace Options Table. Also, it'll be "LibBrokerOptions". :P
Edit: Bah! Now you've got me wanting to play with it! /slap
I've already expressed my thoughts on this matter, though, so I won't derail this thread any further. Carry on.
Point out where I mentioned extending the LDB spec. Please. And if you actually read my posts, you'll see that I mentioned the DO addon providing the options table and the library (a "broker options" library) doing the work. I mentioned nothing about LDB providing or doing anything.
How does "would be nice" translate to "are needed"?
It wouldn't be in LDB. It would be a stand-alone, optional library that those would wanted to utilize could.
Ah, yes. I forgot that there should be only data displays for LDB.
Seriously, go have some warm milk and cookies and get a back rub or something. :p
Most people think like this: Related visually -> Related
Extending support for this visual relation to options presentation should be up to the display, but the DO's need a way to expose thier support for it.
And I keep seeing the tool tip issue arise. I don't know what that's about (I guess the whole "sticking to the spec" thing), but it's really a separate issue, isn't it?
As a proof of concept I previously modified Currency to show up under "Broker" in the Blizz options panel. It is 11 lines of code, 9 of which can be abstracted to a lib or something so it is universally updateable if Blizzard changes their API. I think I incorporated most of the changes suggested in the other thread.
Any other Broker Data Object that has a config is welcome to use the exact same mechanism to create "Broker" if necessary, and then nest its options inside that.
Please note that this is a purely cosmetic effect inside the Blizzard options. Supporting it is totally voluntary, and only applicable if your DO actually has a config that uses the Blizzard panels.
Is this alright?
Edit: Bah! Now you've got me wanting to play with it! /slap