So I needed a replacement for Dewdrop for my Bulk Mail modernization project and decided to take another shot at making LibDropdown-1.0 functional. I think I succeeded pretty well. If you want to see it in action, Bulk Mail 4.0 beta uses it for the LDB menu as well as the menu structure in the editing UI. It supports the following standard Ace3 structures:
Color
Execute
Groups
Header
Input
Range
Select
Toggle
Usage
local menuframe = LibStub("LibDropdown-1.0"):OpenAce3Menu(Ace3ConfigTable)
This returns a frame for the root menu. You might want to use SetPoint
on this frame to attach it to an appropriate location. You may
optionally release the menu with:
menuframe:Release()
However this isn't required unless you want to manually hide the menu when something is selected.
Are there any screenshots/"visualisations" or tutorials for noobs who have never used DewDrop or implemented any LibDataBroker support before?
I reread the description several times, and I was thinking this is like AceConfigDialog options tables but then for in a LDB menu..
Antiarc did most of the details. I just fixed the remaining bugs to make it work for my use cases. If you find bugs feel free to create tickets for them of course. Remember, this project was dormant for years in a totally non-working state. :)
Anyway, I added some images to the project page and the first post. The border/color will use the theme of the tooltips as set by the user (similar to what LibQTip does).
Man, why didnt you people learn that dropdowns more then 2 levels deep are a usability nightmare.
Its dewdrop all over again. Can i purge it with fire before it spreads?
PS: i briefly looked through the code, but closed it in disgust. Mixed space and tab indents.... format it properly already.
It really shouldnt have been approved from experimental until its cleaned up and at least supports the core parts of the spec, but uh, torhal was feeling blue i guess. <.<
It's meant to replace dewdrop yes. I wouldn't use it for very deep menus in general, but it definitely has its uses. Code has been reformatted to what I normally use but I don't take responsibility for most of the code since I didn't write it. :-)
Did fix some Ace3 compatibility issues with the 'info' structure (I hope) and fixed some issues with sliders and groups that get data from a method.
Is this perfect and awesome? No. Did it help me convert BulkMail2 away from ace2 libraries faster - definitely.
The "arg" parameter is still missing in the info table.
Also, you're not supposed to convert stuff fast, you're supposed to do it properly. :P
options in dropdown are fail. It can be useful for some quick access things, i guess, and being able to define those with an option table can be useful as well, i suppose. Some people just dont thiink and will blindly use dropdowns for full blown configs again.
Try it on the Routes options table. And the Omen one. If it survives and works (by works, you actually need to test the get and set functions, Omen and Routes uses the info[] table extensively), then you passed.
Routes in particular, modifies its own options table directly and extensively from the options as you create, modify and destroy routes.
It's used in BulkMail2 primarily for the purpose of configuring auto-send rules (the most deep structure being PT31 sets), not options. I personally liked the original dewdrop-based interface in BM2 so I saw no reason to change it. It wasn't necessarily the quickest path either.
Some people just dont thiink and will blindly use dropdowns for full blown configs again.
Considering that AceConfigDialog-3.0 was the only way to easily create configuration GUI for months and that LibDropdown-1.0 is still an additional library, we could hope people get used to AceConfigDialog and won't jump to much on LibDropdown-1.0.
that doesn't mean the lib can't support it :P maybe in a sort of manual creation method that would be similar to the blizzard one instead of pulling from a config table
Personally I hate menu buttons that are both a checkbox and a subgroup... each entry in a dropdown menu should have one function, and one function only, whether they're in WoW or anywhere else.
i use the the checkbox subgroup combination in GoblinVendorFilter to toggle all of the subgroup filters on/off works very well for this and keeps it as the "same" function of course you do not want it doing something totally different
i use the the checkbox subgroup combination in GoblinVendorFilter to toggle all of the subgroup filters on/off works very well for this and keeps it as the "same" function of course you do not want it doing something totally different
yeah, i use the same for gnomeworks. toggle a filter on/off and specify the filtering method in the submenu.
also makes visual sense for selecting groups/subgroups (of recipes, for example) rather than having an "all" selection that's at the same level as its children.
Personally I hate menu buttons that are both a checkbox and a subgroup... each entry in a dropdown menu should have one function, and one function only, whether they're in WoW or anywhere else.
I use the the checkbox subgroup combination in Postal. Each module is toggle-able on and off, and it also behaves as a submenu (for its options) for the module itself.
This returns a frame for the root menu. You might want to use SetPoint
on this frame to attach it to an appropriate location. You may
optionally release the menu with:
However this isn't required unless you want to manually hide the menu when something is selected.
http://www.wowace.com/addons/libdropdown-1-0/
Let me know if you have any issues with it.
Example menus:
I reread the description several times, and I was thinking this is like AceConfigDialog options tables but then for in a LDB menu..
Anyway, I added some images to the project page and the first post. The border/color will use the theme of the tooltips as set by the user (similar to what LibQTip does).
Its dewdrop all over again. Can i purge it with fire before it spreads?
PS: i briefly looked through the code, but closed it in disgust. Mixed space and tab indents.... format it properly already.
It really shouldnt have been approved from experimental until its cleaned up and at least supports the core parts of the spec, but uh, torhal was feeling blue i guess. <.<
Did fix some Ace3 compatibility issues with the 'info' structure (I hope) and fixed some issues with sliders and groups that get data from a method.
Is this perfect and awesome? No. Did it help me convert BulkMail2 away from ace2 libraries faster - definitely.
The "arg" parameter is still missing in the info table.
Also, you're not supposed to convert stuff fast, you're supposed to do it properly. :P
options in dropdown are fail. It can be useful for some quick access things, i guess, and being able to define those with an option table can be useful as well, i suppose. Some people just dont thiink and will blindly use dropdowns for full blown configs again.
Routes in particular, modifies its own options table directly and extensively from the options as you create, modify and destroy routes.
Considering that AceConfigDialog-3.0 was the only way to easily create configuration GUI for months and that LibDropdown-1.0 is still an additional library, we could hope people get used to AceConfigDialog and won't jump to much on LibDropdown-1.0.
that doesn't mean the lib can't support it :P maybe in a sort of manual creation method that would be similar to the blizzard one instead of pulling from a config table
yeah, i use the same for gnomeworks. toggle a filter on/off and specify the filtering method in the submenu.
also makes visual sense for selecting groups/subgroups (of recipes, for example) rather than having an "all" selection that's at the same level as its children.
I use the the checkbox subgroup combination in Postal. Each module is toggle-able on and off, and it also behaves as a submenu (for its options) for the module itself.
This combination can be seen in the first screenshot in my UIDropDownMenu guide (http://forums.wowace.com/showthread.php?t=15763) where I specifically mentioned it.