DgsMenuSetItemColor

From Multi Theft Auto: Wiki
Revision as of 06:18, 10 July 2025 by Mohab (talk | contribs) (Created page with "{{Client function}} __NOTOC__ This function sets the color of a specific menu item. You can set both the normal and hover colors for the item. ==Syntax== <syntaxhighlight lang="lua"> bool dgsMenuSetItemColor ( element menu, int uniqueID, int r, int g, int b [, int a ] ) bool dgsMenuSetItemColor ( element menu, int uniqueID, int color ) bool dgsMenuSetItemColor ( element menu, int uniqueID, table colors ) </syntaxhighlight> ===Required Arguments=== *'''menu:''' The DGS...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This function sets the color of a specific menu item. You can set both the normal and hover colors for the item.

Syntax

bool dgsMenuSetItemColor ( element menu, int uniqueID, int r, int g, int b [, int a ] )
bool dgsMenuSetItemColor ( element menu, int uniqueID, int color )
bool dgsMenuSetItemColor ( element menu, int uniqueID, table colors )

Required Arguments

  • menu: The DGS menu element containing the item
  • uniqueID: The unique ID of the menu item (returned by dgsMenuAddItem)

Optional Arguments

  • r: The red component (0-255)
  • g: The green component (0-255)
  • b: The blue component (0-255)
  • a: The alpha component (0-255). If not specified, 255 is used
  • color: A single color value (created with tocolor)
  • colors: A table containing two color values: {normalColor, hoverColor}. If only one color is provided, it will be used for both states

Returns

Returns true if the color was set successfully, false otherwise.

Examples

Example 1: Using RGB Values

loadstring(exports.dgs:dgsImportFunction())()-- load functions

-- Create a menu with items
local menu = dgsCreateMenu(200, 200, 200, 150, false)
local item1 = dgsMenuAddItem(menu, "Red Item", "red")
local item2 = dgsMenuAddItem(menu, "Blue Item", "blue")
local item3 = dgsMenuAddItem(menu, "Green Item", "green")

-- Set different colors for each item using RGB values
dgsMenuSetItemColor(menu, item1, 255, 0, 0)        -- Red
dgsMenuSetItemColor(menu, item2, 0, 0, 255, 200)   -- Blue with alpha
dgsMenuSetItemColor(menu, item3, 0, 255, 0)        -- Green

-- Show the menu
dgsMenuShow(menu)

-- Handle menu selections
addEventHandler("onDgsMenuSelect", menu, function(subMenu, uniqueID)
    if uniqueID == -1 then return end
    
    local command = dgsMenuGetItemCommand(source, uniqueID)
    outputChatBox("Selected: " .. command)
    dgsMenuHide(source)
end, false)

Example 2: Using Color Values

loadstring(exports.dgs:dgsImportFunction())()-- load functions

-- Create a menu with items
local menu = dgsCreateMenu(200, 200, 200, 150, false)
local item1 = dgsMenuAddItem(menu, "Yellow Item", "yellow")
local item2 = dgsMenuAddItem(menu, "Purple Item", "purple")
local item3 = dgsMenuAddItem(menu, "Orange Item", "orange")

-- Set colors using tocolor function
dgsMenuSetItemColor(menu, item1, tocolor(255, 255, 0))     -- Yellow
dgsMenuSetItemColor(menu, item2, tocolor(128, 0, 128))     -- Purple
dgsMenuSetItemColor(menu, item3, tocolor(255, 165, 0))     -- Orange

-- Show the menu
dgsMenuShow(menu)

-- Handle menu selections
addEventHandler("onDgsMenuSelect", menu, function(subMenu, uniqueID)
    if uniqueID == -1 then return end
    
    local command = dgsMenuGetItemCommand(source, uniqueID)
    outputChatBox("Selected: " .. command)
    dgsMenuHide(source)
end, false)

Example 3: Using Color Tables (Normal and Hover States)

loadstring(exports.dgs:dgsImportFunction())()-- load functions

-- Create a menu with items
local menu = dgsCreateMenu(200, 200, 200, 150, false)
local item1 = dgsMenuAddItem(menu, "Custom Colors", "custom")
local item2 = dgsMenuAddItem(menu, "Another Item", "another")

-- Set different colors for normal and hover states
local normalColor = tocolor(100, 100, 100)    -- Gray when normal
local hoverColor = tocolor(255, 255, 255)     -- White when hovering
dgsMenuSetItemColor(menu, item1, {normalColor, hoverColor})

-- You can also use the same color for both states
local singleColor = tocolor(255, 100, 100)    -- Light red
dgsMenuSetItemColor(menu, item2, {singleColor})  -- Will use the same color for both states

-- Show the menu
dgsMenuShow(menu)

-- Handle menu selections
addEventHandler("onDgsMenuSelect", menu, function(subMenu, uniqueID)
    if uniqueID == -1 then return end
    
    local command = dgsMenuGetItemCommand(source, uniqueID)
    outputChatBox("Selected: " .. command)
    dgsMenuHide(source)
end, false)

See Also

Author

Mohab.