mirror of
https://github.com/jimathy/jim_bridge.git
synced 2026-08-17 05:56:02 +01:00
Update contextMenus.lua to use new format
This commit is contained in:
@@ -10,44 +10,9 @@
|
|||||||
• esx (using ESX.UI.Menu)
|
• esx (using ESX.UI.Menu)
|
||||||
]]
|
]]
|
||||||
|
|
||||||
--- Opens a menu using the configured menu system.
|
local contextFunc = {
|
||||||
---
|
["ox"] =
|
||||||
--- This function translates code and creates menus in several different menu scripts, depending on the configured menu system specified in `Config.System.Menu`.
|
function(Menu, data)
|
||||||
---
|
|
||||||
---@param Menu table A table containing the menu options to display.
|
|
||||||
--- Each menu item can include:
|
|
||||||
--- - header (`string`): The text to display for the menu item.
|
|
||||||
--- - txt (`string`, optional): Additional text or description.
|
|
||||||
--- - icon (`string`, optional): Icon to display with the menu item.
|
|
||||||
--- - onSelect (`function`, optional): Function to execute when the menu item is selected.
|
|
||||||
--- - arrow (`boolean`, optional): Whether to display an arrow next to the item (for certain menus).
|
|
||||||
--- - params (`table`, optional): Additional parameters, such as events and arguments.
|
|
||||||
--- - isMenuHeader (`boolean`, optional): Marks the item as a header.
|
|
||||||
--- - disabled (`boolean`, optional): Disables the menu item if `true`.
|
|
||||||
---
|
|
||||||
---@param data table A table containing configuration data for the menu.
|
|
||||||
--- - header (`string`): The header/title of the menu.
|
|
||||||
--- - headertxt (`string`, optional): Additional header text.
|
|
||||||
--- - onBack (`function`, optional): Function to call when the "Return" option is selected.
|
|
||||||
--- - onExit (`function`, optional): Function to call when the menu is exited.
|
|
||||||
--- - onSelected (`function`, optional): Function to call when a menu item is selected (for certain menu systems).
|
|
||||||
--- - canClose (`boolean`, optional): Whether the menu can be closed by the user.
|
|
||||||
---
|
|
||||||
---@usage
|
|
||||||
--- ```lua
|
|
||||||
--- openMenu({
|
|
||||||
--- { header = "Option 1", txt = "Description 1", onSelect = function() print("Option 1 selected") end },
|
|
||||||
--- { header = "Option 2", txt = "Description 2", onSelect = function() print("Option 2 selected") end },
|
|
||||||
--- }, {
|
|
||||||
--- header = "Main Menu",
|
|
||||||
--- headertxt = "Select an option",
|
|
||||||
--- onBack = function() print("Return selected") end,
|
|
||||||
--- onExit = function() print("Menu closed") end,
|
|
||||||
--- canClose = true,
|
|
||||||
--- })
|
|
||||||
--- ```
|
|
||||||
function openMenu(Menu, data)
|
|
||||||
if Config.System.Menu == "ox" then
|
|
||||||
local index = nil
|
local index = nil
|
||||||
if data.onBack and not data.onSelected then
|
if data.onBack and not data.onSelected then
|
||||||
table.insert(Menu, 1, {
|
table.insert(Menu, 1, {
|
||||||
@@ -110,8 +75,10 @@ function openMenu(Menu, data)
|
|||||||
else
|
else
|
||||||
lib.showContext(menuID)
|
lib.showContext(menuID)
|
||||||
end
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
elseif Config.System.Menu == "qb" then
|
["qb"] =
|
||||||
|
function(Menu, data)
|
||||||
if data.onBack then
|
if data.onBack then
|
||||||
table.insert(Menu, 1, {
|
table.insert(Menu, 1, {
|
||||||
icon = "fas fa-circle-arrow-left",
|
icon = "fas fa-circle-arrow-left",
|
||||||
@@ -151,8 +118,10 @@ function openMenu(Menu, data)
|
|||||||
Menu[k].isMenuHeader = Menu[k].isMenuHeader or Menu[k].disable
|
Menu[k].isMenuHeader = Menu[k].isMenuHeader or Menu[k].disable
|
||||||
end
|
end
|
||||||
exports[QBMenuExport]:openMenu(Menu)
|
exports[QBMenuExport]:openMenu(Menu)
|
||||||
|
end,
|
||||||
|
|
||||||
elseif Config.System.Menu == "gta" then
|
["gta"] =
|
||||||
|
function(Menu, data)
|
||||||
WarMenu.CreateMenu(tostring(Menu), data.header, " ", {
|
WarMenu.CreateMenu(tostring(Menu), data.header, " ", {
|
||||||
titleColor = { 222, 255, 255 },
|
titleColor = { 222, 255, 255 },
|
||||||
maxOptionCountOnScreen = 15,
|
maxOptionCountOnScreen = 15,
|
||||||
@@ -206,8 +175,10 @@ function openMenu(Menu, data)
|
|||||||
Wait(0)
|
Wait(0)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
elseif Config.System.Menu == "esx" then
|
["esx"] =
|
||||||
|
function(Menu, data)
|
||||||
for k in pairs(Menu) do
|
for k in pairs(Menu) do
|
||||||
Menu[k].label = Menu[k].header
|
Menu[k].label = Menu[k].header
|
||||||
Menu[k].name = "button"..k
|
Menu[k].name = "button"..k
|
||||||
@@ -245,8 +216,10 @@ function openMenu(Menu, data)
|
|||||||
function(data, menu)
|
function(data, menu)
|
||||||
menu.close()
|
menu.close()
|
||||||
end)
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
elseif Config.System.Menu == "lation" then
|
["lation"] =
|
||||||
|
function(Menu, data)
|
||||||
if data.onBack then
|
if data.onBack then
|
||||||
table.insert(Menu, 1, {
|
table.insert(Menu, 1, {
|
||||||
icon = "fas fa-circle-arrow-left",
|
icon = "fas fa-circle-arrow-left",
|
||||||
@@ -290,12 +263,63 @@ function openMenu(Menu, data)
|
|||||||
|
|
||||||
-- Show menu
|
-- Show menu
|
||||||
exports.lation_ui:showMenu('menu')
|
exports.lation_ui:showMenu('menu')
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
--- Opens a menu using the configured menu system.
|
||||||
|
---
|
||||||
|
--- This function translates code and creates menus in several different menu scripts, depending on the configured menu system specified in `Config.System.Menu`.
|
||||||
|
---
|
||||||
|
---@param Menu table A table containing the menu options to display.
|
||||||
|
--- Each menu item can include:
|
||||||
|
--- - header (`string`): The text to display for the menu item.
|
||||||
|
--- - txt (`string`, optional): Additional text or description.
|
||||||
|
--- - icon (`string`, optional): Icon to display with the menu item.
|
||||||
|
--- - onSelect (`function`, optional): Function to execute when the menu item is selected.
|
||||||
|
--- - arrow (`boolean`, optional): Whether to display an arrow next to the item (for certain menus).
|
||||||
|
--- - params (`table`, optional): Additional parameters, such as events and arguments.
|
||||||
|
--- - isMenuHeader (`boolean`, optional): Marks the item as a header.
|
||||||
|
--- - disabled (`boolean`, optional): Disables the menu item if `true`.
|
||||||
|
---
|
||||||
|
---@param data table A table containing configuration data for the menu.
|
||||||
|
--- - header (`string`): The header/title of the menu.
|
||||||
|
--- - headertxt (`string`, optional): Additional header text.
|
||||||
|
--- - onBack (`function`, optional): Function to call when the "Return" option is selected.
|
||||||
|
--- - onExit (`function`, optional): Function to call when the menu is exited.
|
||||||
|
--- - onSelected (`function`, optional): Function to call when a menu item is selected (for certain menu systems).
|
||||||
|
--- - canClose (`boolean`, optional): Whether the menu can be closed by the user.
|
||||||
|
---
|
||||||
|
---@usage
|
||||||
|
--- ```lua
|
||||||
|
--- openMenu({
|
||||||
|
--- { header = "Option 1", txt = "Description 1", onSelect = function() print("Option 1 selected") end },
|
||||||
|
--- { header = "Option 2", txt = "Description 2", onSelect = function() print("Option 2 selected") end },
|
||||||
|
--- }, {
|
||||||
|
--- header = "Main Menu",
|
||||||
|
--- headertxt = "Select an option",
|
||||||
|
--- onBack = function() print("Return selected") end,
|
||||||
|
--- onExit = function() print("Menu closed") end,
|
||||||
|
--- canClose = true,
|
||||||
|
--- })
|
||||||
|
--- ```
|
||||||
|
function openMenu(Menu, data)
|
||||||
|
contextFunc[Config.System.Menu](Menu, data)
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
-- Line break conversion table, basically, to automate the linebreak in functions `br`
|
||||||
|
-- This is declared and automatically sets it for what menu you are using (depends if one is uding MD formatting or HTML formatting)
|
||||||
|
local lineBreakConversion = {
|
||||||
|
["ox"] = "\n",
|
||||||
|
["gta"] = "\n",
|
||||||
|
["lation"] = "\n",
|
||||||
|
|
||||||
|
["qb"] = "<br>",
|
||||||
|
["esx"] = "<br>",
|
||||||
|
}
|
||||||
|
|
||||||
--- A line break constant used for menu header formatting.
|
--- A line break constant used for menu header formatting.
|
||||||
br = (Config.System.Menu == "ox" or Config.System.Menu == "gta" or Config.System.Menu == "lation") and "\n" or "<br>"
|
br = lineBreakConversion[Config.System.Menu]
|
||||||
|
|
||||||
--- Checks if the current menu system is 'ox' or 'gta' for formatting purposes.
|
--- Checks if the current menu system is 'ox' or 'gta' for formatting purposes.
|
||||||
--- @return boolean boolean True if using ox or gta menus, otherwise false.
|
--- @return boolean boolean True if using ox or gta menus, otherwise false.
|
||||||
|
|||||||
Reference in New Issue
Block a user