DgsMenuGetItemColor
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)