:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/4.0/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/4.0/doc/classes/ColorPicker.xml. .. _class_ColorPicker: ColorPicker =========== **Inherits:** :ref:`VBoxContainer` **<** :ref:`BoxContainer` **<** :ref:`Container` **<** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` A widget that provides an interface for selecting or modifying a color. .. rst-class:: classref-introduction-group Description ----------- A widget that provides an interface for selecting or modifying a color. It can optionally provide functionalities like a color sampler (eyedropper), color modes, and presets. \ **Note:** This control is the color picker widget itself. You can use a :ref:`ColorPickerButton` instead if you need a button that brings up a **ColorPicker** in a popup. .. rst-class:: classref-introduction-group Tutorials --------- - `Tween Demo `__ .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`can_add_swatches` | ``true`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`Color` | :ref:`color` | ``Color(1, 1, 1, 1)`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`ColorModeType` | :ref:`color_mode` | ``0`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`color_modes_visible` | ``true`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`deferred_mode` | ``false`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`edit_alpha` | ``true`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`hex_visible` | ``true`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`PickerShapeType` | :ref:`picker_shape` | ``0`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`presets_visible` | ``true`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`sampler_visible` | ``true`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`sliders_visible` | ``true`` | +----------------------------------------------------------+----------------------------------------------------------------------------+-----------------------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_preset` **(** :ref:`Color` color **)** | +-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_recent_preset` **(** :ref:`Color` color **)** | +-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | void | :ref:`erase_preset` **(** :ref:`Color` color **)** | +-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | void | :ref:`erase_recent_preset` **(** :ref:`Color` color **)** | +-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedColorArray` | :ref:`get_presets` **(** **)** |const| | +-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedColorArray` | :ref:`get_recent_presets` **(** **)** |const| | +-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group Theme Properties ---------------- .. table:: :widths: auto +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`int` | :ref:`h_width` | ``30`` | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`int` | :ref:`label_width` | ``10`` | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`int` | :ref:`margin` | ``4`` | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`int` | :ref:`sv_height` | ``256`` | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`int` | :ref:`sv_width` | ``256`` | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`add_preset` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`bar_arrow` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`color_hue` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`color_okhsl_hue` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`expanded_arrow` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`folded_arrow` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`overbright_indicator` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`picker_cursor` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`sample_bg` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`screen_picker` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`shape_circle` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`shape_rect` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ | :ref:`Texture2D` | :ref:`shape_rect_wheel` | | +-----------------------------------+--------------------------------------------------------------------------------+---------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Signals ------- .. _class_ColorPicker_signal_color_changed: .. rst-class:: classref-signal **color_changed** **(** :ref:`Color` color **)** Emitted when the color is changed. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_signal_preset_added: .. rst-class:: classref-signal **preset_added** **(** :ref:`Color` color **)** Emitted when a preset is added. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_signal_preset_removed: .. rst-class:: classref-signal **preset_removed** **(** :ref:`Color` color **)** Emitted when a preset is removed. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_ColorPicker_ColorModeType: .. rst-class:: classref-enumeration enum **ColorModeType**: .. _class_ColorPicker_constant_MODE_RGB: .. rst-class:: classref-enumeration-constant :ref:`ColorModeType` **MODE_RGB** = ``0`` Allows editing the color with Red/Green/Blue sliders. .. _class_ColorPicker_constant_MODE_HSV: .. rst-class:: classref-enumeration-constant :ref:`ColorModeType` **MODE_HSV** = ``1`` Allows editing the color with Hue/Saturation/Value sliders. .. _class_ColorPicker_constant_MODE_RAW: .. rst-class:: classref-enumeration-constant :ref:`ColorModeType` **MODE_RAW** = ``2`` Allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR). .. _class_ColorPicker_constant_MODE_OKHSL: .. rst-class:: classref-enumeration-constant :ref:`ColorModeType` **MODE_OKHSL** = ``3`` Allows editing the color with Hue/Saturation/Lightness sliders. OKHSL is a new color space similar to HSL but that better match perception by leveraging the Oklab color space which is designed to be simple to use, while doing a good job at predicting perceived lightness, chroma and hue. \ `Okhsv and Okhsl color spaces `__ .. rst-class:: classref-item-separator ---- .. _enum_ColorPicker_PickerShapeType: .. rst-class:: classref-enumeration enum **PickerShapeType**: .. _class_ColorPicker_constant_SHAPE_HSV_RECTANGLE: .. rst-class:: classref-enumeration-constant :ref:`PickerShapeType` **SHAPE_HSV_RECTANGLE** = ``0`` HSV Color Model rectangle color space. .. _class_ColorPicker_constant_SHAPE_HSV_WHEEL: .. rst-class:: classref-enumeration-constant :ref:`PickerShapeType` **SHAPE_HSV_WHEEL** = ``1`` HSV Color Model rectangle color space with a wheel. .. _class_ColorPicker_constant_SHAPE_VHS_CIRCLE: .. rst-class:: classref-enumeration-constant :ref:`PickerShapeType` **SHAPE_VHS_CIRCLE** = ``2`` HSV Color Model circle color space. Use Saturation as a radius. .. _class_ColorPicker_constant_SHAPE_OKHSL_CIRCLE: .. rst-class:: classref-enumeration-constant :ref:`PickerShapeType` **SHAPE_OKHSL_CIRCLE** = ``3`` HSL OK Color Model circle color space. .. _class_ColorPicker_constant_SHAPE_NONE: .. rst-class:: classref-enumeration-constant :ref:`PickerShapeType` **SHAPE_NONE** = ``4`` The color space shape and the shape select button are hidden. Can't be selected from the shapes popup. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_ColorPicker_property_can_add_swatches: .. rst-class:: classref-property :ref:`bool` **can_add_swatches** = ``true`` .. rst-class:: classref-property-setget - void **set_can_add_swatches** **(** :ref:`bool` value **)** - :ref:`bool` **are_swatches_enabled** **(** **)** If ``true``, it's possible to add presets under Swatches. If ``false``, the button to add presets is disabled. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_property_color: .. rst-class:: classref-property :ref:`Color` **color** = ``Color(1, 1, 1, 1)`` .. rst-class:: classref-property-setget - void **set_pick_color** **(** :ref:`Color` value **)** - :ref:`Color` **get_pick_color** **(** **)** The currently selected color. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_property_color_mode: .. rst-class:: classref-property :ref:`ColorModeType` **color_mode** = ``0`` .. rst-class:: classref-property-setget - void **set_color_mode** **(** :ref:`ColorModeType` value **)** - :ref:`ColorModeType` **get_color_mode** **(** **)** The currently selected color mode. See :ref:`ColorModeType`. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_property_color_modes_visible: .. rst-class:: classref-property :ref:`bool` **color_modes_visible** = ``true`` .. rst-class:: classref-property-setget - void **set_modes_visible** **(** :ref:`bool` value **)** - :ref:`bool` **are_modes_visible** **(** **)** If ``true``, the color mode buttons are visible. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_property_deferred_mode: .. rst-class:: classref-property :ref:`bool` **deferred_mode** = ``false`` .. rst-class:: classref-property-setget - void **set_deferred_mode** **(** :ref:`bool` value **)** - :ref:`bool` **is_deferred_mode** **(** **)** If ``true``, the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues). .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_property_edit_alpha: .. rst-class:: classref-property :ref:`bool` **edit_alpha** = ``true`` .. rst-class:: classref-property-setget - void **set_edit_alpha** **(** :ref:`bool` value **)** - :ref:`bool` **is_editing_alpha** **(** **)** If ``true``, shows an alpha channel slider (opacity). .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_property_hex_visible: .. rst-class:: classref-property :ref:`bool` **hex_visible** = ``true`` .. rst-class:: classref-property-setget - void **set_hex_visible** **(** :ref:`bool` value **)** - :ref:`bool` **is_hex_visible** **(** **)** If ``true``, the hex color code input field is visible. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_property_picker_shape: .. rst-class:: classref-property :ref:`PickerShapeType` **picker_shape** = ``0`` .. rst-class:: classref-property-setget - void **set_picker_shape** **(** :ref:`PickerShapeType` value **)** - :ref:`PickerShapeType` **get_picker_shape** **(** **)** The shape of the color space view. See :ref:`PickerShapeType`. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_property_presets_visible: .. rst-class:: classref-property :ref:`bool` **presets_visible** = ``true`` .. rst-class:: classref-property-setget - void **set_presets_visible** **(** :ref:`bool` value **)** - :ref:`bool` **are_presets_visible** **(** **)** If ``true``, the Swatches and Recent Colors presets are visible. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_property_sampler_visible: .. rst-class:: classref-property :ref:`bool` **sampler_visible** = ``true`` .. rst-class:: classref-property-setget - void **set_sampler_visible** **(** :ref:`bool` value **)** - :ref:`bool` **is_sampler_visible** **(** **)** If ``true``, the color sampler and color preview are visible. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_property_sliders_visible: .. rst-class:: classref-property :ref:`bool` **sliders_visible** = ``true`` .. rst-class:: classref-property-setget - void **set_sliders_visible** **(** :ref:`bool` value **)** - :ref:`bool` **are_sliders_visible** **(** **)** If ``true``, the color sliders are visible. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_ColorPicker_method_add_preset: .. rst-class:: classref-method void **add_preset** **(** :ref:`Color` color **)** Adds the given color to a list of color presets. The presets are displayed in the color picker and the user will be able to select them. \ **Note:** The presets list is only for *this* color picker. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_method_add_recent_preset: .. rst-class:: classref-method void **add_recent_preset** **(** :ref:`Color` color **)** Adds the given color to a list of color recent presets so that it can be picked later. Recent presets are the colors that were picked recently, a new preset is automatically created and added to recent presets when you pick a new color. \ **Note:** The recent presets list is only for *this* color picker. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_method_erase_preset: .. rst-class:: classref-method void **erase_preset** **(** :ref:`Color` color **)** Removes the given color from the list of color presets of this color picker. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_method_erase_recent_preset: .. rst-class:: classref-method void **erase_recent_preset** **(** :ref:`Color` color **)** Removes the given color from the list of color recent presets of this color picker. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_method_get_presets: .. rst-class:: classref-method :ref:`PackedColorArray` **get_presets** **(** **)** |const| Returns the list of colors in the presets of the color picker. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_method_get_recent_presets: .. rst-class:: classref-method :ref:`PackedColorArray` **get_recent_presets** **(** **)** |const| Returns the list of colors in the recent presets of the color picker. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Theme Property Descriptions --------------------------- .. _class_ColorPicker_theme_constant_h_width: .. rst-class:: classref-themeproperty :ref:`int` **h_width** = ``30`` The width of the hue selection slider. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_constant_label_width: .. rst-class:: classref-themeproperty :ref:`int` **label_width** = ``10`` The minimum width of the color labels next to sliders. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_constant_margin: .. rst-class:: classref-themeproperty :ref:`int` **margin** = ``4`` The margin around the **ColorPicker**. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_constant_sv_height: .. rst-class:: classref-themeproperty :ref:`int` **sv_height** = ``256`` The height of the saturation-value selection box. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_constant_sv_width: .. rst-class:: classref-themeproperty :ref:`int` **sv_width** = ``256`` The width of the saturation-value selection box. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_add_preset: .. rst-class:: classref-themeproperty :ref:`Texture2D` **add_preset** The icon for the "Add Preset" button. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_bar_arrow: .. rst-class:: classref-themeproperty :ref:`Texture2D` **bar_arrow** The texture for the arrow grabber. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_color_hue: .. rst-class:: classref-themeproperty :ref:`Texture2D` **color_hue** Custom texture for the hue selection slider on the right. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_color_okhsl_hue: .. rst-class:: classref-themeproperty :ref:`Texture2D` **color_okhsl_hue** Custom texture for the H slider in the OKHSL color mode. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_expanded_arrow: .. rst-class:: classref-themeproperty :ref:`Texture2D` **expanded_arrow** The icon for color preset drop down menu when expanded. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_folded_arrow: .. rst-class:: classref-themeproperty :ref:`Texture2D` **folded_arrow** The icon for color preset drop down menu when folded. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_overbright_indicator: .. rst-class:: classref-themeproperty :ref:`Texture2D` **overbright_indicator** The indicator used to signalize that the color value is outside the 0-1 range. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_picker_cursor: .. rst-class:: classref-themeproperty :ref:`Texture2D` **picker_cursor** The image displayed over the color box/circle (depending on the :ref:`picker_shape`), marking the currently selected color. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_sample_bg: .. rst-class:: classref-themeproperty :ref:`Texture2D` **sample_bg** Background panel for the color preview box (visible when the color is translucent). .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_screen_picker: .. rst-class:: classref-themeproperty :ref:`Texture2D` **screen_picker** The icon for the screen color picker button. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_shape_circle: .. rst-class:: classref-themeproperty :ref:`Texture2D` **shape_circle** The icon for circular picker shapes. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_shape_rect: .. rst-class:: classref-themeproperty :ref:`Texture2D` **shape_rect** The icon for rectangular picker shapes. .. rst-class:: classref-item-separator ---- .. _class_ColorPicker_theme_icon_shape_rect_wheel: .. rst-class:: classref-themeproperty :ref:`Texture2D` **shape_rect_wheel** The icon for rectangular wheel picker shapes. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`