Skip to content

Instantly share code, notes, and snippets.

@ImBaphomettt
Created July 26, 2019 20:34
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ImBaphomettt/90b8625728a9ecee47e78a119ffb5549 to your computer and use it in GitHub Desktop.
Save ImBaphomettt/90b8625728a9ecee47e78a119ffb5549 to your computer and use it in GitHub Desktop.
NativeUILua-Reloaded example menu
ketchup = false
dish = "Banana"
quantity = 1
_menuPool = NativeUI.CreatePool()
mainMenu = NativeUI.CreateMenu("NativeUILua-Reloaded", "~b~NATIVEUI SHOWCASE")
_menuPool:Add(mainMenu)
function ShowNotification(text)
SetNotificationTextEntry("STRING")
AddTextComponentString(text)
DrawNotification(false, false)
end
function AddMenuKetchup(menu)
local newitem = NativeUI.CreateCheckboxItem("Add ketchup?", ketchup, "Do you wish to add ketchup?")
menu:AddItem(newitem)
menu.OnCheckboxChange = function(sender, item, checked_)
if item == newitem then
ketchup = checked_
ShowNotification("~r~Ketchup status: ~b~"..tostring(ketchup))
end
end
end
function AddMenuFoods(menu)
local foods = {
"Banana",
"Apple",
"Pizza",
"Quartilicious",
"Steak",
0xF00D,
}
local newitem = NativeUI.CreateListItem("Food", foods, 1)
menu:AddItem(newitem)
menu.OnListChange = function(sender, item, index)
if item == newitem then
dish = item:IndexToItem(index)
ShowNotification("Preparing ~b~" .. dish .. "~w~...")
end
end
end
function AddMenuFoodCount(menu)
local amount = {}
for i = 1, 100 do amount[i] = i end
local newitem = NativeUI.CreateSliderItem("Quantity", amount, 1, false)
menu:AddItem(newitem)
menu.OnSliderChange = function(sender, item, index)
if item == newitem then
quantity = item:IndexToItem(index)
ShowNotification("Preparing ~r~" .. quantity .. " ~b~" .. dish .. "(s)~w~...")
end
end
end
function AddMenuCook(menu)
local newitem = NativeUI.CreateItem("Cook!", "Cook the dish with the appropriate ingredients and ketchup.")
newitem:SetLeftBadge(BadgeStyle.Star)
newitem:SetRightBadge(BadgeStyle.Tick)
menu:AddItem(newitem)
menu.OnItemSelect = function(sender, item, index)
if item == newitem then
local string = "You have ordered ~r~" .. quantity .. " ~b~"..dish.."(s)~w~ ~r~with~w~ ketchup."
if not ketchup then
string = "You have ordered ~r~" .. quantity .. " ~b~"..dish.."(s)~w~ ~r~without~w~ ketchup."
end
ShowNotification(string)
end
end
menu.OnIndexChange = function(sender, index)
if sender.Items[index] == newitem then
newitem:SetLeftBadge(BadgeStyle.None)
end
end
end
function AddMenuAnotherMenu(menu)
local submenu = _menuPool:AddSubMenu(menu, "Another Menu")
for i = 1, 20, 1 do
submenu.SubMenu:AddItem(NativeUI.CreateItem("PageFiller", "Sample description that takes more than one line. Moreso, it takes way more than two lines since it's so long. Wow, check out this length!"))
end
end
AddMenuKetchup(mainMenu)
AddMenuFoods(mainMenu)
AddMenuFoodCount(mainMenu)
AddMenuCook(mainMenu)
AddMenuAnotherMenu(mainMenu)
_menuPool:RefreshIndex()
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
_menuPool:ProcessMenus()
if IsControlJustPressed(1, 51) then
mainMenu:Visible(not mainMenu:Visible())
end
end
end)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment