In the config panel, plugins aren't sorted by names, it's not practical when configuring a lot of plugins :P
Can't be fixed actually, Blizzy lists them in the order they are registered, and they are registered as the blocks are created.
An alternative would be to use a single panel if each config is the same (I suspect they are). Just put a dropdown at the top to select the plugin you wish to configure. This would also reduce memory use from configs, you only need one panel instead of one per plugin.
I still say your "cleanup" is stupid. Yes, cleaning up one-time functions so they GC is good, but you need to be able to support a new dataobject being registered at ANY time. You're over-optimizing here.
You *shouldn't* have both. tooltiptext is meant for plugins that want a SIMPLE tooltip and don't want to manage it at all. They just set tooltiptext once and never touch it again. For example, a plugin that doesn't need a tooltip for data, but would like to have a tip with the addon name and a hint "click me to open some shit"
As I said before, the only time you should really encounter more than one tip implementation in the source is if they provide OnTooltipShow and OnEnter... in which case you set the OnEnter/OnLeave handlers for the frame and your code is never called, so OnTooltipShow is never invoked by your display (but is probably called by the source's OnEnter handler)
As I read this it's an addition to what you want at the top of the tooltip, like a title or addon name.
GameTooltip:SetText clears the entire tooltip, so this is not something you want in addition to the tooltip text, but rather in place of that text. Basically it's for plugins that want to set a static tooltip with a name or description or hint. Not addons that want to change the text around every time the tip is shown.
If I want a title or something, I'd just set that in OnTooltipShow.
I meant specifically with regards to using more than one tooltip method simultaneously (ie. the tooltip has the same text appear twice), rather than picking one and only one. In terms of priority, your ordering makes sense, most to least dynamic. But the data feed shouldn't make any assumptions about which one the display will choose in which order, so it probably doesn't matter anyway.
Oh, I read your comment backwards... I thought you were saying it *should* do more than one at once. Yea, the display should only use one method. The data provider may provide more than one... generally speaking tooltip and tooltiptext will probably not provide another method, because they're both after a specific feature. OnEnter/OnLeave and OnTooltipShow are easy to mix together, so it's highly likely that if a feed provides OnEnter it'll also provide OnTooltipShow unless it's doing weird fancy shit like clickable tooltips.
Actually fortress is doing it wrong... only one tooltip method should be employed at any given time. It's basically up to the display to pick priorities, but the logical order, at least in my brain, would be OnEnter/OnLeave > tooltip > OnTooltipShow > tooltiptext.
There is no fighting here. This isn't Titan vs. FuBar where each is very different from the other. The whole idea is to allow the user choice in which one they like. It's like RSS readers, you're not forced to pick between Microsoft's or Google's.
FWIW, I use neither one, I have my own tekBlocks which does exactly what I need and no more. It has no config, and thus I don't plan on releasing it.