View Single Post
05/17/14, 08:02 AM   #8
Garkin
 
Garkin's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 832
Originally Posted by CrazyDutchGuy View Post
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:
  1. local tlw, texture
  2. tlw = WINDOW_MANAGER:CreateTopLevelWindow()
  3. tlw:SetDimensions(128,128)
  4. tlw:SetAnchor(TOP, ZO_WorldMapInfo, TOP, 0, 100)
  5. tlw:SetHidden(true)
  6. texture = WINDOW_MANAGER:CreateControl(nil, tlw, CT_TEXTURE)
  7. texture:SetTexture("/esoui/art/icons/poi/poi_groupboss_complete.dds")
  8. texture:SetAnchorFill(tlw)
  9.  
  10. ZO_CreateStringId("BOSS_DROPS_NAME", "Boss drops")
  11.  
  12. local bossFragment = ZO_FadeSceneFragment:New(tlw)
  13.  
  14. local buttonData = {
  15.    normal = "EsoUI/Art/mainmenu/menubar_journal_up.dds",
  16.    pressed = "EsoUI/Art/mainmenu/menubar_journal_down.dds",
  17.    highlight = "EsoUI/Art/mainmenu/menubar_journal_over.dds",
  18.    callback =  function(...) d("callbackdata") end,
  19. }
  20.  
  21. WORLD_MAP_INFO.modeBar:Add(BOSS_DROPS_NAME, {bossFragment}, buttonData)
  Reply With Quote