Originally Posted by Ayantir
Use buttons ?
Existing keybinds can also be rewrited if needed.
What kind of thing would you like to do? post a screen, give exemples, I'm sure we can give you some advices.
|
This is a part of my code with some comments to explain the purpose and the meaning of my scene
Code:
MY.LMM = LibStub("LibMainMenu")
ZO_CreateStringId("SI_MY_STRING", "SCENE")
MY_MAIN_MENU_CATEGORY_DATA =
{
descriptor = 1,
binding = "MY_SHOW_PANEL",
categoryName = SI_MY_NOME_ADDON,
normal = "EsoUI/Art/MainMenu/menuBar_champion_up.dds",
pressed = "EsoUI/Art/MainMenu/menuBar_champion_down.dds",
highlight = "EsoUI/Art/MainMenu/menuBar_champion_over.dds",
callback = function()
MY.LMM:ToggleCategory(MY.MENU_CATEGORY_MY)
end
}
MY_SCENE = ZO_Scene:New("MYScene", SCENE_MANAGER)
MY_SCENE:AddFragmentGroup(FRAGMENT_GROUP.MOUSE_DRIVEN_UI_WINDOW)
MY_SCENE:AddFragmentGroup(FRAGMENT_GROUP.PLAYER_PROGRESS_BAR_KEYBOARD_CURRENT)
MY_SCENE:AddFragment(TITLE_FRAGMENT)
MY_SCENE:AddFragment(RIGHT_BG_FRAGMENT)
MY_SCENE:AddFragment(TOP_BAR_FRAGMENT)
MY_SCENE_TITLE_FRAGMENT = ZO_SetTitleFragment:New(SI_MY_STRING)
MY_SCENE:AddFragment(MY_SCENE_TITLE_FRAGMENT)
MY_SCENE_WINDOW = ZO_FadeSceneFragment:New(SCENE_XML)
MY_SCENE:AddFragment(MY_SCENE_WINDOW)
MY_MENU_BAR = ZO_FadeSceneFragment:New(ZO_MainMenuCategoryBar)
MY_SCENE:AddFragment(MY_MENU_BAR)
local iconData = {
{
categoryName = SI_MY_STRING, -- Titolo vicino ai bottoni
descriptor = "MySceneDesc",
normal = "EsoUI/art/mainmenu/menubar_social_up.dds",
pressed = "EsoUI/art/mainmenu/menubar_social_down.dds",
highlight = "EsoUI/art/mainmenu/menubar_social_over.dds",
},
}
SCENE_MANAGER:AddSceneGroup("MySceneGroup", ZO_SceneGroup:New("MySceneDesc"))
MY.MY_MENU_CATEGORY = MY.LMM:AddCategory(MY_MAIN_MENU_CATEGORY_DATA)
MY.LMM:AddSceneGroup(MY.MY_MENU_CATEGORY, "MYSceneGroup", iconData)
local LMMXML = WINDOW_MANAGER:CreateControl("LMMXML2", ZO_MainMenuCategoryBar, CT_BUTTON)
LMMXML:SetAnchor(CENTER, ZO_MainMenuCategoryBar, nil, 0, 28)
MY.categoryBar = CreateControlFromVirtual("$(parent)CategoryBar", LMMXML2, "ZO_MenuBarTemplate")
MY.categoryBar:SetAnchor(RIGHT, ZO_MainMenuCategoryBarButton1, LEFT, -20, 0)
local categoryBarData =
{
buttonPadding = 16,
normalSize = 51,
downSize = 64,
animationDuration = DEFAULT_SCENE_TRANSITION_TIME,
buttonTemplate = "ZO_MainMenuCategoryBarButton",
}
ZO_MenuBar_SetData(MY.categoryBar, categoryBarData)
ZO_MenuBar_AddButton(MY.categoryBar, MY_MAIN_MENU_CATEGORY_DATA)
SCENE_XML:SetKeyboardEnabled(true)
-- I need this for catching the key
SCENE_XML:SetHandler("OnKeyDown", function(self, key, ctrl, alt, shift, command)
-- Example
if(key==KEY_A) then
-- do my work
else
-- do my work
return false -- call the propagation of the key
end
end)