DgsMenuGetItemColor

From Multi Theft Auto: Wiki
Revision as of 06:43, 10 July 2025 by Mohab (talk | contribs) (Created page with "{{Client function}} __NOTOC__ 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== <syntaxhighlight lang="lua"> int r, int g, int b, int a, int hr, int hg, int hb, int ha dgsMenuGetItemColor ( element menu, int uniqueID ) int normalColor, int hoverColor dgsMenuGetItemColor ( element menu, int uniqueID, bool notSplitColor ) </syntaxhighlight> ===Required Arguments=== *'''menu:...")
(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

int r, int g, int b, int a, int hr, int hg, int hb, int ha dgsMenuGetItemColor ( element menu, int uniqueID )
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 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.

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.