DgsMenuGetItemColor

From Multi Theft Auto: Wiki
Revision as of 04:37, 11 July 2025 by Thisdp (talk | contribs) (→‎Syntax)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This function gets the color of a specific menu item. You can retrieve the colors either as separate RGBA components or as color values.

Syntax 1

int r, int g, int b, int a, int hr, int hg, int hb, int ha dgsMenuGetItemColor ( element menu, int uniqueID )

Required Arguments

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

Optional Arguments

  • notSplitColor: If set to true, returns the color values as they are stored (two color values). If false or not specified, returns 8 separate RGBA components

Returns

When notSplitColor is false or not specified: Returns 8 integers representing the RGBA components: normal red, normal green, normal blue, normal alpha, hover red, hover green, hover blue, hover alpha. Returns false if the operation failed.

Syntax2

int normalColor, int hoverColor dgsMenuGetItemColor ( element menu, int uniqueID, bool notSplitColor )

Required Arguments

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

Optional Arguments

  • notSplitColor: If set to true, returns the color values as they are stored (two color values). If false or not specified, returns 8 separate RGBA components

Returns

When notSplitColor is true: Returns two color values: normalColor, hoverColor. Returns false if the operation failed.

Examples

Example 1: Getting RGBA Components

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, "Custom Item", "custom")

-- Set colors for the items
dgsMenuSetItemColor(menu, item1, 255, 0, 0, 200)  -- Red with alpha
local normalColor = tocolor(100, 150, 200)
local hoverColor = tocolor(200, 255, 100)
dgsMenuSetItemColor(menu, item2, {normalColor, hoverColor})

-- Get the colors as RGBA components
local r, g, b, a, hr, hg, hb, ha = dgsMenuGetItemColor(menu, item1)
if r then
    outputChatBox("Item 1 - Normal: R=" .. r .. " G=" .. g .. " B=" .. b .. " A=" .. a)
    outputChatBox("Item 1 - Hover: R=" .. hr .. " G=" .. hg .. " B=" .. hb .. " A=" .. ha)
end

local r2, g2, b2, a2, hr2, hg2, hb2, ha2 = dgsMenuGetItemColor(menu, item2)
if r2 then
    outputChatBox("Item 2 - Normal: R=" .. r2 .. " G=" .. g2 .. " B=" .. b2 .. " A=" .. a2)
    outputChatBox("Item 2 - Hover: R=" .. hr2 .. " G=" .. hg2 .. " B=" .. hb2 .. " A=" .. ha2)
end

-- Show the menu
dgsMenuShow(menu)

Example 2: Getting 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, "Blue Item", "blue")
local item2 = dgsMenuAddItem(menu, "Yellow Item", "yellow")

-- Set colors for the items
dgsMenuSetItemColor(menu, item1, tocolor(0, 0, 255))  -- Blue for both states
local normalYellow = tocolor(255, 255, 0)
local hoverYellow = tocolor(255, 255, 150)
dgsMenuSetItemColor(menu, item2, {normalYellow, hoverYellow})

-- Get the colors as color values
local normalColor1, hoverColor1 = dgsMenuGetItemColor(menu, item1, true)
if normalColor1 then
    outputChatBox("Item 1 - Normal Color: " .. normalColor1)
    outputChatBox("Item 1 - Hover Color: " .. hoverColor1)
end

local normalColor2, hoverColor2 = dgsMenuGetItemColor(menu, item2, true)
if normalColor2 then
    outputChatBox("Item 2 - Normal Color: " .. normalColor2)
    outputChatBox("Item 2 - Hover Color: " .. hoverColor2)
end

-- Show the menu
dgsMenuShow(menu)

Example 3: Color Inspection and Modification

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

-- Create a menu with items
local menu = dgsCreateMenu(200, 200, 200, 150, false)
local item1 = dgsMenuAddItem(menu, "Inspectable Item", "inspect")

-- Set initial color
dgsMenuSetItemColor(menu, item1, 128, 128, 128, 255)  -- Gray

-- Function to inspect and modify colors
function inspectAndModifyColor(menu, uniqueID)
    -- Get current colors as RGBA components
    local r, g, b, a, hr, hg, hb, ha = dgsMenuGetItemColor(menu, uniqueID)
    
    if r then
        outputChatBox("Current colors:")
        outputChatBox("Normal - R:" .. r .. " G:" .. g .. " B:" .. b .. " A:" .. a)
        outputChatBox("Hover - R:" .. hr .. " G:" .. hg .. " B:" .. hb .. " A:" .. ha)
        
        -- Modify the colors (make them brighter)
        local newR = math.min(255, r + 50)
        local newG = math.min(255, g + 50)
        local newB = math.min(255, b + 50)
        
        -- Set the new colors
        dgsMenuSetItemColor(menu, uniqueID, newR, newG, newB, a)
        outputChatBox("Colors have been brightened!")
    else
        outputChatBox("Failed to get item colors")
    end
end

-- Show the menu
dgsMenuShow(menu)

-- Inspect and modify colors after 3 seconds
setTimer(inspectAndModifyColor, 3000, 1, menu, item1)

See Also

Author

Mohab.