Revision Difference
DRGBPicker#515414
<panel>⤶
<parent>DPanel</parent>⤶
<description>⤶
DRGBPicker is an interactive panel which can be used to select a color hue.⤶
⤶
See <page>DColorCube</page> for a color picker which controls brightness and saturation.⤶
⤶
See <page>DColorMixer</page> for a color picker that allows control over hue, saturation, and brightness at once.⤶
</description>⤶
⤶
</panel>⤶
⤶
⤶
<example>⤶
<description>Creates a color picker which controls the color of the background panel it's parented to.</description>⤶
<code>⤶
-- Background panel⤶
BGPanel = vgui.Create("DPanel")⤶
BGPanel:SetSize(100, 200)⤶
BGPanel:Center()⤶
⤶
-- Color picker⤶
local color_picker = vgui.Create("DRGBPicker", BGPanel)⤶
color_picker:SetPos(35, 10)⤶
color_picker:SetSize(30, 180)⤶
⤶
-- When the picked color is changed...⤶
function color_picker:OnChange(col)⤶
⤶
-- Change the panel background color⤶
BGPanel:SetBackgroundColor(col)⤶
⤶
end⤶
</code>⤶
<output></output>⤶
⤶
</example>⤶
⤶
⤶
<example>⤶
<description>Creates a DRGBPicker that controls the hue of a <page>DColorCube</page>, which outputs the color to the background panel, label, and your copy/paste buffer.</description>⤶
<code>⤶
-- Background panel⤶
BGPanel = vgui.Create("DPanel")⤶
BGPanel:SetSize(200, 200)⤶
BGPanel:Center()⤶
⤶
-- Color label⤶
local color_label = Label("Color( 255, 255, 255 )", BGPanel)⤶
color_label:SetPos(40, 160)⤶
color_label:SetSize(150, 20)⤶
color_label:SetHighlight(true)⤶
color_label:SetColor(Color(0, 0, 0))⤶
⤶
-- Color picker⤶
local color_picker = vgui.Create("DRGBPicker", BGPanel)⤶
color_picker:SetPos(5, 5)⤶
color_picker:SetSize(30, 190)⤶
⤶
-- Color cube⤶
local color_cube = vgui.Create("DColorCube", BGPanel)⤶
color_cube:SetPos(40, 5)⤶
olor_cube:SetSize(155, 155)⤶
⤶
-- When the picked color is changed...⤶
function color_picker:OnChange(col)⤶
⤶
-- Get the hue of the RGB picker and the saturation and vibrance of the color cube⤶
local h = ColorToHSV(col)⤶
local _, s, v = ColorToHSV(color_cube:GetRGB())⤶
⤶
-- Mix them together and update the color cube⤶
col = HSVToColor(h, s, v)⤶
color_cube:SetColor(col)⤶
⤶
-- Lastly, update the background color and label⤶
UpdateColors(col)⤶
⤶
end⤶
⤶
function color_cube:OnUserChanged(col)⤶
⤶
-- Update background color and label⤶
UpdateColors(col)⤶
⤶
end⤶
⤶
-- Updates display colors, label, and clipboard text⤶
function UpdateColors(col)⤶
⤶
BGPanel:SetBackgroundColor(col)⤶
color_label:SetText("Color( "..col.r..", "..col.g..", "..col.b.." )")⤶
color_label:SetColor(Color((255-col.r), (255-col.g), (255-col.b)))⤶
SetClipboardText(color_label:GetText())⤶
⤶
end⤶
</code>⤶
<output></output>⤶
⤶
</example>⤶
⤶