Originally Posted by CrazyDutchGuy
When i call ZO_WorldMapInfoMenuBar:Add(name, fragmentGroup, buttonData, keybindButton) then i get an error "function expected instead of nil.
So apparantly the ZO_WorldMapInfoMenuBar:Add is either not public or using the wrong control object to add. The MenuBarTemplate which ZO_WorldMapInfoMenuBar derives from doesn't define an :Add, so I asumming the wrong object to add.
In more detail what i can find
ZO_WorldMapInfoMenuBar is a virtual control that derives from ZO_MenuBarTemplate, which does not define :Add
ZO_WorldMapInfo defines a control ZO_WorldMapInfoMenuBar that derives from the virtual ZO_WorldMapInfoMenuBar , which does define the :Add
I am assuming the double naming is messing the stuff up, and allways returns the virtual control object
|
By bad, I didn't test it first. Instead of ZO_WorldMapInfoMenuBar use WORLD_MAP_INFO.menuBar.
Code that I have tested, so it works:
Lua Code:
local tlw, texture
tlw = WINDOW_MANAGER:CreateTopLevelWindow()
tlw:SetDimensions(128,128)
tlw:SetAnchor(TOP, ZO_WorldMapInfo, TOP, 0, 100)
tlw:SetHidden(true)
texture = WINDOW_MANAGER:CreateControl(nil, tlw, CT_TEXTURE)
texture:SetTexture("/esoui/art/icons/poi/poi_groupboss_complete.dds")
texture:SetAnchorFill(tlw)
ZO_CreateStringId("BOSS_DROPS_NAME", "Boss drops")
local bossFragment = ZO_FadeSceneFragment:New(tlw)
local buttonData = {
normal = "EsoUI/Art/mainmenu/menubar_journal_up.dds",
pressed = "EsoUI/Art/mainmenu/menubar_journal_down.dds",
highlight = "EsoUI/Art/mainmenu/menubar_journal_over.dds",
callback = function(...) d("callbackdata") end,
}
WORLD_MAP_INFO.modeBar:Add(BOSS_DROPS_NAME, {bossFragment}, buttonData)