Quantcast
Download
(48 Kb)
Download
Updated: 03/14/22 02:51 PM
Pictures
File Info
Compatibility:
Ascending Tide (7.3.5)
Updated:03/14/22 02:51 PM
Created:02/14/14 10:28 PM
Monthly downloads:73,989
Total downloads:3,092,025
Favorites:2,186
MD5:
7.3.5
LibAddonMenu  Popular! (More than 5000 hits)
Version: 2.0 r33
by: sirinsidiator, Seerah
LibAddonMenu is a library which offers many functions for add-on authors to simplify creating a configuration panel in the game's settings menu.

Users:

If the game cannot load some addon because it is missing LibAddonMenu-2.0 as a dependency, simply download and install it like you would any other addon. In case it shows as "out of date" in the game, simply enable the "allow out of date addons" checkbox.
IMPORTANT
In case you get an error that contains text like this:
user:/AddOns/<some other addon>/Libs/LibAddonMenu-2.0
Make sure to delete all LibAddonMenu-2.0 folders in your AddOns folder and install the latest version of LibAddonMenu-2.0 separately.
Developers:

Ever since I (sirinsidiator) have taken over development of LAM-2.0 in 2015, the project is available on github and open for contributions by other authors.

With the ongoing effort to get rid of LibStub in favour of the library management capabilities provided by the game itself since Summerset was released, it is no longer recommended to embed LAM, or use LibStub to access it. Instead it should simply be specified as a dependency and accessed via the new LibAddonMenu2 global variable. Instead of providing it as part of another add-on, users should install and update it separately.

Quickstart:
Simply add LAM2 as a dependency in your addon manifest:
Code:
## DependsOn: LibAddonMenu-2.0
Optionally you can require a specific minimum version of LAM in case you rely on some features that are not available in earlier versions.
Code:
## DependsOn: LibAddonMenu-2.0>=30
In your code you can simply access the library via the global variable "LibAddonMenu2" and start creating your settings panel and controls:

Lua Code:
  1. local LAM = LibAddonMenu2
  2. local saveData = {} -- TODO this should be a reference to your actual saved variables table
  3. local panelName = "MyAddOnSettingsPanel" -- TODO the name will be used to create a global variable, pick something unique or you may overwrite an existing variable!
  4.  
  5. local panelData = {
  6.     type = "panel",
  7.     name = "MyAddOn Settings",
  8.     author = "me",
  9. }
  10. local panel = LAM:RegisterAddonPanel(panelName, panelData)
  11. local optionsData = {
  12.     {
  13.         type = "checkbox",
  14.         name = "My First Checkbox",
  15.         getFunc = function() return saveData.myValue end,
  16.         setFunc = function(value) saveData.myValue = value end
  17.     }
  18. }
  19. LAM:RegisterOptionControls(panelName, optionsData)

For more examples and information you can take a look at exampleoptions.lua, AwesomeGuildStore/Settings.lua, the LAM wiki or the source code. Each control has a full list of available properties in the comment at the start of the lua file.

Features:
  • Controls - LAM offers different control types to build elaborate settings menus
  • Reset to Default - LAM can restore the settings to their default state with one key press
  • Additional AddOn Info - Add a version label and URLs for website, donations, translations or feedback
  • AddOn Search - Can't find the settings for your AddOn between the other hundred entries? No problem! Simply use the text search to quickly find what you are looking for
  • Slash Commands - Provides a shortcut to open your settings menu from chat
  • Tooltips - In case you need more space to explain what a control does, simply use a tooltip
  • Warnings - If your setting causes some unexpected behaviour, you can simply slap a warning on them
  • Dangerous Buttons - when flagged as such, a button will have red text and ask for confirmation before it runs any action
  • Required UI Reload - For cases where settings have to reload the UI or should be stored to disk right away, LAM offers a user friendly way to ask for a UI reload.
  • Support for all 5 official languages and 6 custom localisation projects

External controls:
2.0 r33
- fixed dropdown widget choicesValues not accepting boolean "false" (#127, thanks Baertram)
- switched to a new build system
- updated for Ascending Tide

2.0 r32
- added "createFunc", "minHeight" and "maxHeight" properties to custom control (#123, thanks Baertram)
- updated folder structure (#119)
- updated for Markarth

2.0 r31
- fixed iconpicker showing an empty tooltip when no choicesTooltips are set (#111, thanks Scootworks)
- fixed slider mouse wheel interactions (#115)
- fixed translated texts not showing in the official Russian localization (#118, thanks andy.s)
- improved dropdown choice tooltip code compatibility (#115)
- added "helpUrl" property for many control types (#109, thanks Baertram)
- added "textType" and "maxChars" properties for editbox (#110, thanks Scootworks)
- added "readOnly" property for slider (#112, thanks Scootworks)
- removed embedded copy of LibStub (#116)
- updated Japanese translation (#113, thanks Calamath)
- updated for Greymoor

2.0 r30
- updated Korean translation (thanks whya5448)
- added "enableLinks" property to description control (#102, thanks silvereyes333)
- updated for Dragonhold

2.0 r29
- fixed a rare error when a panel refresh is triggered by an addon before LAM is fully initialized (#98)
- fixed SetHandler warning showing when a scrollable dropdown is used (#97)
- improved SetHandler warning message to show the panel title instead of the internal name and in addition log to LibDebugLogger for easy access to a stack trace (#99)
- improved comments in control files (#100, thanks Phuein)
- adjusted ReloadUI warning color to match the color of the warning in the ingame video settings (#101, thanks Phuein)

2.0 r28
- fixed color picker throwing errors in gamepad mode (#94, thanks Gandalf)
- added global variable "LibAddonMenu2" for direct access without using LibStub (#95)
- added IsLibrary directive to manifest (#93)
- added warning message when an addon is setting the "OnShow", "OnEffectivelyShown", "OnHide" or "OnEffectivelyHidden" handler on a panel (#92)
- use the callbacks "LAM-PanelControlsCreated", "LAM-PanelOpened" and "LAM-PanelClosed" instead
- updated Brazilian translation (thanks FelipeS11)

2.0 r27
- fixed scrollable dropdown not working correctly (#83)
- fixed disabled sliders changing value in some situations when clicked
- fixed panel not refreshing on open when it was already selected (#82)
- added RefreshPanel function to panel control (#84)
- the panel control is returned by RegisterAddonPanel
- added "translation", "feedback" and "donation" properties to panel (#88, thanks Baertram)
- all three (and also the "website" property) accept a function or a string
- added "disabled" and "disabledLabel" property for submenus (#86, #90, thanks klingo)
- added "icon" and "iconTextureCoords" property for submenus (#91)
- added "disabled" property for descriptions (#89, thanks klingo)
- added "clampFunction" property for slider controls (#85)
- the function receives the value, min and max as arguments and has to return a clamped value
- added optional support for LibDebugLogger
- in case it is loaded, it logs the full error when control creation failed
- updated LibStub to r5

2.0 r26
- fixed error when loading LAM on an unsupported locale
- added Korean translation (thanks p.walker)
- added Brazilian translation (thanks mlsevero)

2.0 r25
- fixed tooltips not working for entries in scrollable dropdown controls (#78, thanks kyoma)
- fixed standalone LAM not loading as expected when LAM is bundled with the manifest included (#81)
- fixed slashcommands not opening the correct panel on first attempt after UI load (#79)
- fixed an error when opening the addon settings menu after Clockwork City update (#80, thanks Gandalf)

2.0 r24
- added scrollable property for dropdown controls (#71, #75, thanks kyoma)
- added Italian translation (#70, thanks JohnnyKing94)
- added Polish translation (#73, #74, thanks EmiruTegryfon)
- updated Spanish translation (thanks TERAB1T)
- updated Russian translation (thanks Morganlefai and Kwisatz)
- fixed debug code not accepting functions for widget names (#72, thanks kyoma)

2.0 r23
- added Chinese translation (#64, thanks bssthu)
- added tooltips for dropdown menu entries (#42)
- added support for separate values for dropdown menu entries (#65)
- added keybind for reset to defaults button (#68)
- added requireReload property for input controls (#47)
- fixed support for nested submenus (#61, thanks Baertram)
- fixed alpha and height not working on divider control (#69)

2.0 r22
- fixed mouse exit events for sliders and textures (#52, thanks silvereyes333)
- fixed decimal input on sliders (#54)
- fixed icon picker not retaining color when disabled is toggled (#58)
- fixed slider accepting mouse wheel input while being disabled (#60)
- added support for nested submenus (#53)
- added new divider widget (#56, thanks silvereyes333)
- added new function "UpdateWarning" to controls which allows to refresh the warning text (#55, thanks silvereyes333)
- added new property "website" to panels which will render a button in the panel to open the specified addon URL (#57)
- updated localization (#59, thanks everyone who helped with it)

2.0 r21
- fixed panel creation starting more than once when switching between different addon panels quickly (#40)
- fixed LAM.util getting wiped with each version load causing errors for many players (#44)
- fixed disabled controls not having the correct label color in some cases (#41)
- fixed controls not updating their own disabled state when their value changes (#51)
- added Japanese translation (thanks k0ta0uchi) (#45)
- added isDangerous flag for button controls (#50)
- when set to true it changes the text color of the button to red and opens a dialog which shows the label and the warning text before running the callback
- added new options for sliders and fixed some bugs (#49)
- autoSelect (boolean): when set to true it makes the input field select all text when it gains focus
- inputLocation (string): setting it to "right" will move the input field to the right side of the slider and make it slightly bigger. For aesthetic reasons this should only be used in custom panels and not in the addon menu
- clampInput (boolean): true by default and if set to false it allows the input values of the slider to exceed the min and max value
- for other internal code changes take a look at the git history

2.0 r20
- fixed empty panels not firing LAM-PanelControlsCreated (#32)
- removed height constraint of 2500 from submenus (#34)
- added two new callbacks LAM-PanelOpened and LAM-PanelClosed. Both pass the panel as their sole argument (#27)
- 'default' can now be a function in addition to a static value (#23)
- all labels (name, tooltip, warning, etc.) can now be a string id or function in addition to a static string (#22)
- updated LibStub to r4

2.0 r19
- made icon picker choicesTooltips array optional
- added support for custom panel objects without a GetWidth method (partially fixes #26)
- fixed controls not refreshing correctly when they are initialized with a boolean "false" on the disabled property (#35, thanks Randactyl)
- removed height constraint on the description control (#36, thanks KuroiLight)
- added "isExtraWide" property to editboxes, allowing them to utilize more space (#37, thanks KuroiLight)
- added "decimals" property to sliders to allow rounding values to x decimals (#38, implements #21, thanks KuroiLight)
- added mousewheel support for sliders (#39, implements #30, thanks KuroiLight)

2.0 r18
- major overhaul of the addon menu style (thanks votan & merlight)
- NOTE: the menu is now a bit wider than before, if you created custom elements you might need to update them accordingly
- added search box to addon list (thanks votan & merlight)
- new icon picker widget
- removed micro freeze when opening a menu with many options for the first time
- changed tooltip property to accept functions that return a string (thanks Ayantir)
- changed the label on the defaults button and menu to avoid a grammar mistake in the french localization (thanks Ayantir)
- updated LibStub to r3 (support for '.' in minor version string, e.g. "17.5")

2.0 r17
- updated for changes in 100011
- fixed OpenToPanel function
- fixed possible error with combobox names
- half width control no longer have a fixed height and instead scale automatically now
- changed controls to no longer use top level windows
- fixed problems with the loading order and added warning if an old version gets initialized first
A big thank you to everyone who helped making these changes, especially votan, merlight and Garkin!

2.0 r16
- updated for changes in 100010
- thanks to Garkin for alerting me of changes needed and for testing on the test server
- Spanish support added, translation provided by Luisen75 for their Spanish project

2.0 r14
- fixed bug where the LAM-RefreshPanel callback was being registered with CALLBACK_MANAGER multiple times
- fixed highlighting of entries in the game Settings menu (Addon Settings now properly highlights and other entries go back to normal)

2.0 r13
- one last bug ran out from anunder the dresser - I smashed it hopefully!

2.0 r12
- fix one bug another shows up...

2.0 r11
- don't overwrite widgets list if table already exists (in case an external lib or addon registers a new widget type)
- headers, descriptions, submenus and custom widgets now have the ability to update their text when the panel and other controls refresh (simply change the name/text in the controlData table)
- custom controls now have the ability to refresh with other controls and your panel - there is a new optional field in the data table called refreshFunc (when the panel refreshes, this function will be called)

2.0 r10
- fixed display of warning icon for dropdown controls
- update LibStub.lua

2.0 r9
- added Russian locale support for RuESO project
- fixed anchoring issue with addon list (addon names are now properly in the scroll frame, so the few of you with tons installed should have no issue any longer)
- added ability to close submenus from the bottom of the submenu (there is a small strip along the bottom of the submenu that is clickable)
- edited each control to better support custom-created UIs via LAM and the parent passed through to the create functions

2.0 r8
- changed border texture around panel and addon list
- expanded maximum size of submenus from 1500 to 2500

2.0 r7
- shortened game menu entry for French and German localizations (so the text doesn't get cut off)
- fixed checkbox label coloring bug (when a checkbox that is set to "off" is re-enabled by another setting)
- fixed multi-line editbox bug (where text didn't display)
- added mousewheel scrolling for multi-line editboxes

2.0 r6
- added "LAM-PanelControlsCreated" callback when you panel has been shown for the first time and your controls have now been created
- fixed duplicate Addon Settings panels when you have a newer version of LAM overwriting an older version
- finished localizing stuff that wasn't localized yet
- added "sort" field to dropdown control

2.0 r5
- fix RefreshPanel function so that all controls now update
- add RefreshPanel call to ForceDefaults function

2.0 r4
- fix for me being an idiot. Sorry guys ><

2.0 r3
- fixed checkboxes making a sound when just refreshing
- fixed error when the lib is loaded standalone, but no addons are registered with it
- fixed error when LAM updates itself to a newer version (won't try to create two of the same frame)

2.0 r2
- LAM-2.0 is now released! See http://www.esoui.com/portal.php?&id=5&pageid=10 for a list of differences between LAM1 and LAM2, as well as a guide for usage and the library's docs

-----------------
1.0 r8
- updated APIVersion to 100004
- changed submenu so scroll bar doesn't overlap contents
- submenu should hopefully no longer occasionally show up behind the options panel

1.0 r7
- the defaults button now properly hides for each panel (Note: the keybind still works, I can't seem to get rid of that, but at least the prompt is hidden now)
- LAM now supports sub menus! See the description page for docs on usage

1.0 r6
- copy/paste fail when changing the name of an arg. Description titles will no longer hide from you.

1.0 r5
- exposed the widgets created via return

1.0 r4
-new widget: Description

1.0 r3
-fixed error with color picker in new patch

1.0 r2
-fixed bug when more than one addon panel is created
Archived Files (31)
File Name
Version
Size
Uploader
Date
2.0 r32
48kB
sirinsidiator
12/17/20 02:04 PM
2.0 r31
49kB
sirinsidiator
06/21/20 03:06 PM
2.0 r30
48kB
sirinsidiator
10/21/19 03:23 AM
2.0 r29
48kB
sirinsidiator
05/07/19 11:00 AM
2.0 r28
47kB
sirinsidiator
05/01/19 09:33 AM
2.0 r27
47kB
sirinsidiator
04/18/19 03:07 PM
2.0 r26
45kB
sirinsidiator
05/21/18 02:36 AM
2.0 r25
45kB
sirinsidiator
09/29/17 12:28 PM
2.0 r24
45kB
sirinsidiator
07/14/17 01:00 PM
2.0 r23
42kB
sirinsidiator
10/30/16 10:00 AM
2.0 r22
39kB
sirinsidiator
08/06/16 07:42 AM
2.0 r21
38kB
sirinsidiator
07/17/16 11:04 AM
2.0 r20
41kB
sirinsidiator
03/26/16 10:45 AM
2.0 r19
37kB
sirinsidiator
02/24/16 12:24 PM
2.0 r18
36kB
sirinsidiator
06/14/15 01:12 PM
2.0 r17
30kB
sirinsidiator
02/22/15 11:09 AM
2.0 r16
27kB
Seerah
11/02/14 02:03 PM
2.0 r14
26kB
Seerah
07/27/14 10:17 PM
2.0 r13
26kB
Seerah
07/20/14 09:35 PM
2.0 r12
26kB
Seerah
07/20/14 07:55 PM
2.0 r11
26kB
Seerah
07/19/14 02:49 PM
2.0 r10
25kB
Seerah
07/13/14 09:18 PM
2.0 r9
25kB
Seerah
07/05/14 06:55 PM
2.0 r8
25kB
Seerah
06/22/14 09:47 PM
2.0 r7
25kB
Seerah
06/15/14 05:17 PM
2.0 r6
25kB
Seerah
06/13/14 11:28 PM
2.0 r5
25kB
Seerah
06/12/14 10:32 PM
2.0 r4
25kB
Seerah
06/11/14 08:56 PM
2.0 r3
25kB
Seerah
06/11/14 07:49 PM
2.0 r2
24kB
Seerah
06/10/14 10:06 PM
1.0 r8
6kB
Seerah
05/24/14 10:01 PM


Post A Reply Comment Options
Unread 05/06/22, 11:51 PM  
remosito
AddOn Author - Click to view AddOns

Forum posts: 29
File comments: 179
Uploads: 2
didnt think that through....

No problem if you think should not be in. LibAddonMenu doesn't get frequent updates as it is so stable. So in the odd case like U34 with drawtiers/level/layers change. I can always readd it to my local copy easily... :-)
I didn't think that one through...

if ever I want to release the Addon I am working on. Above won't hold true at all... the tooltips on description and header will only work on my end. But not everybody elses :-/

I guess I could Hook your functions and add the tooltip stuff in my part after I run yours?

All in all would be much cleaner if you could add it to the official code.

Would be most grateful for a response. Even if it is "Not gonna happen". So I can get to work on trying the hook your functions idea....

cheers

Edit: saw you had a github repo for this..so thought I give fork/pullrequest a whirl...not sure I did it right though....
Last edited by remosito : 05/07/22 at 02:12 AM.
Report comment to moderator  
Reply With Quote
Unread 05/03/22, 01:16 AM  
remosito
AddOn Author - Click to view AddOns

Forum posts: 29
File comments: 179
Uploads: 2
Hi again,

working on a new Addon and was wishing that Header and Description had Tooltips too that show up on mousenter...

so I thought..mmhh..maybe I can make it happen.

Once I remembered it's LibAddonMenu and not LibCustomMenu that does the Settings and stopped changing the wrong damn code and wonder why nothing happened.

It was surprisingly easy...



header.lua: starting line 37

Code:
if headerData.tooltip then
	header:SetMouseEnabled(true)
	header.data = {tooltipText = LAM.util.GetStringFromValue(headerData.tooltip)}
        header:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter)
        header:SetHandler("OnMouseExit", ZO_Options_OnMouseExit)
end

description.lua: starting line 76

Code:
if descriptionData.tooltip then
        desc:SetMouseEnabled(true)
	desc.data = {tooltipText = LAM.util.GetStringFromValue(descriptionData.tooltip)}
        desc:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter)
        desc:SetHandler("OnMouseExit", ZO_Options_OnMouseExit)
	if control.title then
		control.title:SetMouseEnabled(true)
		control.title.data = {tooltipText = LAM.util.GetStringFromValue(descriptionData.tooltip)}
		control.title:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter)
		control.title:SetHandler("OnMouseExit", ZO_Options_OnMouseExit)
	end
end


It's rather a trivial change. And shouldn't change behaviour at all if no tooltip = "tooltiptext" is set.

Might make sense to add it officially?

No problem if you think should not be in. LibAddonMenu doesn't get frequent updates as it is so stable. So in the odd case like U34 with drawtiers/level/layers change. I can always readd it to my local copy easily... :-)
Last edited by remosito : 05/03/22 at 02:08 AM.
Report comment to moderator  
Reply With Quote
Unread 04/27/22, 12:08 AM  
remosito
AddOn Author - Click to view AddOns

Forum posts: 29
File comments: 179
Uploads: 2
requiresreload and discard

Howdie,

thanks for this kickass library :-)

Was breaking my head over how I handle the ReloadUI and it's Discard Option and how I can catch it's response so I can not do anything on next reload if it was discarded.

Checked other Addons. They either didn't seem to do anything. Or just call the ReloadUI themselves in the setfunc function. Which I didn't like much for my Addon.

More by chance, doing a windows search for discard over all my installed addons. I ended up in your code. And when looking at it I was "What? Are you really resetting to previous value if discard is chosen?"

And lo and behold. You do!

Which is totally awesome! And makes a lot of sense! I just had no idea!

Maybe add it (more prominently? (is it there somewhere and I just missed it) to the Wiki? maybe as some additional text (like "LibAddonMenu handles the ReloadUI Discard Option itself and rolls back the changes automatically) to the examples code comment or the requiresreload row in the table on the control pages?

anyway... superb lib with some really kickass unknown to me bonus functionality :-)

cheers

PS.. am I right in assuming it will just roll back the changes for options with requiresreload parameter. and leave changes for options without requiresreload untouched?
Last edited by remosito : 04/27/22 at 12:57 AM.
Report comment to moderator  
Reply With Quote
Unread 04/20/22, 09:59 AM  
Gandalf
 
Gandalf's Avatar
AddOn Author - Click to view AddOns

Forum posts: 28
File comments: 98
Uploads: 1
PTS Update 34 - iconpicker

Due to Layer/Tier changes in update 34. Iconpicker does not work anymore: Icons become non-clickable.

Set DrawLevel(DL_OVERLAY) for the icon texture restores the functionality (textures default is now DL_BACKGROUND):
Code:
#87.1   icon:SetDrawLayer(DL_CONTROLS)

@Sirinsidator:
If you release an updated LibAddonMenu, including the suggested changes from my comment 10/19/21 below would be very nice.

Cheers,
Gandalf

Edit 05/10/22: There is no need to go higher than DL_CONTROLS
Last edited by Gandalf : 05/10/22 at 02:11 AM.
Report comment to moderator  
Reply With Quote
Unread 03/15/22, 07:09 AM  
Jysoul

Forum posts: 0
File comments: 2
Uploads: 0
LibAddonKeybinds Error

For your reference if it's related to your recent mod update. Not sure how to determine, which mod has affected LibAddonKeybinds
https://www.esoui.com/downloads/info....html#comments
Last edited by Jysoul : 03/15/22 at 07:23 AM.
Report comment to moderator  
Reply With Quote
Unread 02/26/22, 02:20 AM  
PSYCHEER

Forum posts: 0
File comments: 1
Uploads: 0
Unhappy Re: Re: Libaddonmenu-2.0

Originally Posted by sirinsidiator
Originally Posted by lordwolfx
Everytime i try and click on an option for any addon i get the following text

user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:147: attempt to index a nil value
stack traceback:
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:147: in function 'RefreshReloadUIButton'
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:157: in function 'RequestRefreshIfNeeded'
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/controls/checkbox.lua:65: in function 'UpdateValue'
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/controls/checkbox.lua:111: in function '(anonymous)'

I deleted and reinstalled LibaddonMenu-2.0 and have the same problem
The error shows that you are running an old version of LibAddonMenu from within the "OpenGlaza" addon. Try to delete it from there and it should work.

user:/AddOns/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:326: function expected instead of nil
stack traceback:
user:/AddOns/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:326: in function 'm_callback'
/EsoUI/Libraries/ZO_Dialog/ZO_Dialog.lua:77: in function 'HandleCallback'
/EsoUI/Libraries/ZO_KeybindButton/ZO_KeybindButton.lua:194: in function 'ZO_KeybindButtonMixin:OnClicked'
/EsoUI/Libraries/ZO_Dialog/ZO_Dialog.lua:1253: in function 'ZO_Dialogs_HandleButtonForKeybind'
/EsoUI/Libraries/ZO_Dialog/ZO_Dialog.lua:1265: in function 'ZO_Dialogs_ButtonKeybindPressed'
:1: in function '(main chunk)'


This is my error message
Report comment to moderator  
Reply With Quote
Unread 01/26/22, 03:19 PM  
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1503
File comments: 1058
Uploads: 38
Re: Libaddonmenu-2.0

Originally Posted by lordwolfx
Everytime i try and click on an option for any addon i get the following text

user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:147: attempt to index a nil value
stack traceback:
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:147: in function 'RefreshReloadUIButton'
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:157: in function 'RequestRefreshIfNeeded'
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/controls/checkbox.lua:65: in function 'UpdateValue'
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/controls/checkbox.lua:111: in function '(anonymous)'

I deleted and reinstalled LibaddonMenu-2.0 and have the same problem
The error shows that you are running an old version of LibAddonMenu from within the "OpenGlaza" addon. Try to delete it from there and it should work.
__________________
https://www.imperialtradingcompany.eu/ - My Addons - The Vault (Early updates and experimental projects) - My patreon - My blog
>siri.exe MyAddon
Does your addon work? [y/n] n
There is a typo in there.
Report comment to moderator  
Reply With Quote
Unread 01/25/22, 08:43 PM  
lordwolfx

Forum posts: 0
File comments: 1
Uploads: 0
Libaddonmenu-2.0

Everytime i try and click on an option for any addon i get the following text

user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:147: attempt to index a nil value
stack traceback:
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:147: in function 'RefreshReloadUIButton'
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/LibAddonMenu-2.0.lua:157: in function 'RequestRefreshIfNeeded'
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/controls/checkbox.lua:65: in function 'UpdateValue'
user:/AddOns/OpenGlaza/Lib/LibAddonMenu-2.0/controls/checkbox.lua:111: in function '(anonymous)'

I deleted and reinstalled LibaddonMenu-2.0 and have the same problem
Report comment to moderator  
Reply With Quote
Unread 10/19/21, 12:39 PM  
Gandalf
 
Gandalf's Avatar
AddOn Author - Click to view AddOns

Forum posts: 28
File comments: 98
Uploads: 1
iconpicker control - updatable

Hello!

When I tried to update choices/choicesTooltips with:
Lua Code:
  1. MY_ICONPICKER_REF:UpdateChoices(choices, choicesTooltips)
I noticed that this widget version 10 is not able to handle updates

I added this functionality with some minor changes to the following methods/functions:

in IconPickerMenu:Clear()
Lua Code:
  1. function IconPickerMenu:Clear()
  2.     for i = 1, #self.icons do               -- Gandalf:
  3.         self.icons[i]:SetHidden(true)       -- hide till re-use
  4.     end                                     --
  5.     self.icons = {}
  6.     self.iconPool:ReleaseAllObjects()
  7.     self.control:SetHidden(true)
  8.     self.color = ZO_DEFAULT_ENABLED_COLOR
  9.     self.refCount = nil
  10.     self.parent = nil
  11.     self.customOnMouseEnter = nil
  12.     self.customOnMouseExit = nil
  13. end

In IconPickerMenu:AddIcon()
Lua Code:
  1. function IconPickerMenu:AddIcon(texturePath, callback, tooltip)
  2.     local icon, key = self.iconPool:AcquireObject()
  3.     icon:SetTexture(texturePath)
  4.     icon:SetColor(self.color:UnpackRGBA())
  5.     icon.texture = texturePath
  6.     icon.tooltip = tooltip
  7.     icon.OnSelect = callback
  8.     icon:SetHidden(false)                   -- Gandalf: for re-use
  9.     self.icons[#self.icons + 1] = icon
  10. end

and in local function UpdateChoices()
Lua Code:
  1. local function UpdateChoices(control, choices, choicesTooltips)
  2.     local data = control.data
  3.     if not choices then
  4.         choices, choicesTooltips = data.choices, data.choicesTooltips or {}
  5.      else                                                           -- Gandalf:
  6.         data.choices = ZO_ShallowTableCopy(choices)                 -- Update stored data
  7.         data.choicesTooltips = ZO_ShallowTableCopy(choicesTooltips) --
  8.     end
  9.     local addedChoices = {}
  10.  
  11.     local iconPicker = LAM.util.GetIconPickerMenu()
  12.     iconPicker:Clear()
  13.     for i = 1, #choices do
  14.         local texture = choices[i]
  15.         if not addedChoices[texture] then -- remove duplicates
  16.             iconPicker:AddIcon(choices[i], function(self, texture)
  17.                 control.icon:SetTexture(texture)
  18.                 data.setFunc(texture)
  19.                 LAM.util.RequestRefreshIfNeeded(control)
  20.             end, LAM.util.GetStringFromValue(choicesTooltips[i]))
  21.         addedChoices[texture] = true
  22.         end
  23.     end
  24. end

Hope you can use this for the next update.

Cheers,
Gandalf
Last edited by Gandalf : 10/19/21 at 12:55 PM.
Report comment to moderator  
Reply With Quote
Unread 09/29/21, 10:56 AM  
mark8753

Forum posts: 0
File comments: 1
Uploads: 0
Mine shows the same message, and I have the latest version loaded.
Report comment to moderator  
Reply With Quote
Unread 06/02/21, 06:48 AM  
KeloSteicko

Forum posts: 0
File comments: 1
Uploads: 0
The game says, that the addon is outdated. Any new version? Or any advice how to fix it?
Report comment to moderator  
Reply With Quote
Unread 05/20/21, 10:16 AM  
demawi

Forum posts: 2
File comments: 84
Uploads: 0
Hi!

When setting a function as tooltip supplier for dropdowns it will be called only once on initialization. I expected it would be called directly before the tooltip will be shown. But it seems it doesn't.

The choicesTooltips work fine. But I also want a choice-dependent tooltip for the dropdown itself.
Or is there a function like SetTooltipText I can call myself for such a behaviour?

... I have detected an issue with choicesTooltips: when selecting an entry the dropdown closes, but the choice-tooltip remains. So we are not getting a mouseexit event and the tooltip will remain until the next mouseenter event which will set a tooltip.


For the main combobox tooltip at least lines 385 and 386 in dropdown.lua had to be changed
combobox:SetHandler("OnMouseEnter", function() ZO_Options_OnMouseEnter(control) end)
combobox:SetHandler("OnMouseExit", function() ZO_Options_OnMouseExit(control) end)


should be more like
combobox:SetHandler("OnMouseEnter", function() DoShowTooltip(combobox, control.data.tooltip) end)
combobox:SetHandler("OnMouseExit", function() HideTooltip() end)


With that it works better. And the tooltip is now linked to the correct control. But there seems to be another listener at the container around the combobox.
__________________
developer of Rulebased Inventory
Last edited by demawi : 05/20/21 at 12:00 PM.
Report comment to moderator  
Reply With Quote
Unread 05/18/21, 05:15 AM  
Mortlach

Forum posts: 0
File comments: 23
Uploads: 0
Major Issue, apparently with LibAddonMenu

I cannot log into ESO if LibAddonMenu-2.0r32 is running.

I spent time doing a split-half verification, determined the inability to load into world was anytime LAM.2.0 was loaded, with the most common issues being never loading or timing out.

I removed LAM via Minion, verified it was removed, tested log in successfully, verified there weren't any other versions of it loading from inside other Addons and then tried a fresh install.

Issue recurred.
Update
When testing for interactions with Circonian's Addon Selector (which requires Votans Addon List and LibDialog), I was able to load LAM2.0r32 successfully. More split/half testing to see what is triggering the error when LAM is loaded.
How can I help resolve this? Every AddOn Addict knows how critical LAM 2.0 is to most of their customized interface, so I'm happy to help if I can.

Thank you!
Last edited by Mortlach : 05/18/21 at 05:12 PM.
Report comment to moderator  
Reply With Quote
Unread 05/13/21, 11:20 AM  
SimonIllyan
 
SimonIllyan's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 191
Uploads: 1
Re: Issue with dropdown control

Originally Posted by Parietic
Hello,
I'm trying to create a profile system for my addons settings, and have hit a snag.

So I'm passing a table from my saved variables to a dropdown control,
However when the table is changed (eg, adding a profile name to the choices table) the dropdown options do not update.

Lua Code:
  1. [3] = {
  2.    type = "dropdown",
  3.    name = "Select profile:",
  4.    choices = SV.profiles,
  5.    warning = "Reload UI to see new profiles added, and deleted profiles removed",
  6.    getFunc = function() return SV.currentProfile end,
  7.    setFunc = function(newValue) SV.currentProfile = newValue end,
  8. },

Is this behavior working as normal or have I messed something up?
I am not getting any errors in debug viewer and everything else is updating with SV changes like you would expect.

I had the same problem - I create a settings panel with:
Lua Code:
  1. panelControl = LAM2:RegisterAddonPanel(addonName, panelData)
  2. LAM2:RegisterOptionControls(addonName, controlStructure)

If I modify controlStructure afterwards, the change is not reflected in the settings panel. By reading LAM2 code I found out that the problem can be solved using "reference" attribute. Modify your code above to this:
Lua Code:
  1. [3] = {
  2.    type = "dropdown",
  3.    name = "Select profile:",
  4.    choices = SV.profiles,
  5.    warning = "Reload UI to see new profiles added, and deleted profiles removed",
  6.    getFunc = function() return SV.currentProfile end,
  7.    setFunc = function(newValue) SV.currentProfile = newValue end,
  8.    reference = "MyDropdownForProfileSelection",
  9. },
(the string is arbitrary, but must be unique) and then you can modify an object named MyDropdownForProfileSelection, for example do this:
Lua Code:
  1. MyDropdownForProfileSelection:UpdateChoices(SV.profiles, SV.profiles) -- second argument is for choicesValues
Hope that helps.
Last edited by SimonIllyan : 05/13/21 at 11:21 AM.
Report comment to moderator  
Reply With Quote
Unread 05/12/21, 10:34 PM  
Valakai

Forum posts: 0
File comments: 1
Uploads: 0
Add-On Settings Menu

Does anyone know anything about this bug in the Add-Ons Settings menu? There seems to be a glitch with the "defaults" button on the bottom of the settings windows for my Add-Ons. I think it has something to do with the 'LibAddonMenu' library. Does anyone know how to fix this?

https://imgur.com/BTCje1Y
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: