> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectreal.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# ImGuiWindow.ColorPicker

> Appends a RGBA color editor to an ImGuiWindow and stores the callback. Missing or nil color components default to 1.0. When the rendered editor changes, the callback is queued and later invoked with red, green, blue, and alpha. The method returns the same ImGuiWindow object.

<div className="real-function-page">
  ```lua theme={null}
  ImGuiWindow.ColorPicker(window: ImGuiWindow, label: string, red?: number, green?: number, blue?: number, alpha?: number, onChange: function): ImGuiWindow
  ```

  ## Argumentos

  <ParamField path={"window"} type={"ImGuiWindow"} required>
    ImGuiWindow object returned by imgui.create. A destroyed or invalid window raises a Lua error.
  </ParamField>

  <ParamField path={"label"} type={"string"} required>
    Color editor label string passed to the rendered ImGui ColorEdit4 widget.
  </ParamField>

  <ParamField path={"red"} type={"number"}>
    Initial red component read with luaL\_optnumber; defaults to 1.0 when omitted or nil.
  </ParamField>

  <ParamField path={"green"} type={"number"}>
    Initial green component read with luaL\_optnumber; defaults to 1.0 when omitted or nil.
  </ParamField>

  <ParamField path={"blue"} type={"number"}>
    Initial blue component read with luaL\_optnumber; defaults to 1.0 when omitted or nil.
  </ParamField>

  <ParamField path={"alpha"} type={"number"}>
    Initial alpha component read with luaL\_optnumber; defaults to 1.0 when omitted or nil.
  </ParamField>

  <ParamField path={"onChange"} type={"function"} required>
    Function stored for this color editor and invoked with red, green, blue, and alpha after a change event is processed. It must be supplied as argument 7.
  </ParamField>

  ## Retornos

  <ResponseField name={"window"} type={"ImGuiWindow"}>
    The same ImGuiWindow object, allowing chained method calls.
  </ResponseField>

  ## Tipos

  ### ImGuiWindow

  Identificador retornado por imgui.create. Os métodos de construção de controle retornam o mesmo identificador para que as chamadas possam ser encadeadas.

  | Name               | Type                                                                                                                                            | Required | Descrição                                                                                                    |
  | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------ |
  | `Button`           | `(label: string, onClick: () -> ()) -> ImGuiWindow`                                                                                             | Yes      | Acrescenta um botão e invoca o retorno de chamada após um clique.                                            |
  | `Checkbox`         | `(label: string, checked: any, onChange: (boolean) -> ()) -> ImGuiWindow`                                                                       | Yes      | Acrescenta uma caixa de seleção inicializada no estado fornecido.                                            |
  | `CollapsingHeader` | `(label: string, content: (ImGuiWindow) -> ()) -> ImGuiWindow`                                                                                  | Yes      | Agrupa controles anexados pelo retorno de chamada de conteúdo abaixo de um cabeçalho recolhido.              |
  | `ColorPicker`      | `(label: string, red: number?, green: number?, blue: number?, alpha: number?, onChange: (number, number, number, number) -> ()) -> ImGuiWindow` | Yes      | Acrescenta um editor RGBA; os componentes de cores omitidos são padronizados como 1,0.                       |
  | `InputText`        | `(label: string, text: string?, onChange: (string) -> ()) -> ImGuiWindow`                                                                       | Yes      | Acrescenta uma entrada de texto de linha única; o texto inicial omitido é padronizado como uma string vazia. |
  | `SameLine`         | `() -> ImGuiWindow`                                                                                                                             | Yes      | Coloca o próximo controle na mesma linha.                                                                    |
  | `Separator`        | `() -> ImGuiWindow`                                                                                                                             | Yes      | Acrescenta um separador horizontal.                                                                          |
  | `SliderFloat`      | `(label: string, value: number, minimum: number, maximum: number, onChange: (number) -> ()) -> ImGuiWindow`                                     | Yes      | Acrescenta um controle deslizante de ponto flutuante.                                                        |
  | `SliderInt`        | `(label: string, value: integer, minimum: integer, maximum: integer, onChange: (number) -> ()) -> ImGuiWindow`                                  | Yes      | Acrescenta um controle deslizante inteiro.                                                                   |
  | `Text`             | `(text: string) -> ImGuiWindow`                                                                                                                 | Yes      | Acrescenta texto não interativo.                                                                             |
  | `destroy`          | `() -> ()`                                                                                                                                      | Yes      | Remove a janela e libera seus retornos de chamada registrados.                                               |
</div>
