Garry's Mod Wiki

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>⤶ ⤶