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

# TColor

> O `TColor` é um componente para seleção de cores.

Derivado da classe `TEntry`, métodos herdados não sobrescritos podem também ser utililzados por objetos `TColor`. Acesse a [documentação do componente/classe-pai](https://madbuilder.mintlify.app/entrada-de-dados/tentry) para conhecê-los.

## \_\_construct

Construtor da classe `TColor`.

**Parâmetros:**
<ResponseField name="$name" type="mixed" required>Nome do campo que será utilizado no formulário.</ResponseField>

**Exemplo de código:**

```php theme={null}
$seletorCor = new TColor('cor');
```

<br />

## getOptions

Retorna todas as opções configuradas para o seletor de cores.

**Exemplo de código:**

```php theme={null}
$corMenu = new TColor('corMenu');
$opcoes = $corMenu->getOptions();
```

<br />

## getOption

Retorna o valor de uma opção específica.

**Parâmetros:**
<ResponseField name="$option" type="mixed" required>Nome da opção.</ResponseField>

**Exemplo de código:**

```php theme={null}
$corTitulo = new TColor('corTitulo');
$opcao = $corTitulo->getOption();
```

<br />

## setTheme

Define o tema visual do componente.

**Parâmetros:**
<ResponseField name="$theme" type="mixed" required>Tema para o seletor de cores.</ResponseField>

**Exemplo de código:**

```php theme={null}
$corTema = new TColor('corTema');
$corTema->setTheme(TColor::THEME_NANO);
```

<br />

## setChangeAction

Define a ação a ser executada quando o usuário alterar a cor.

**Parâmetros:**
<ResponseField name="$action" type="TAction" required>Objeto `TAction`.</ResponseField>

**Exemplo de código:**

```php theme={null}
$corAcao = new TColor('acaoCor');
$corAcao->setChangeAction(new TAction(['NomeClasseDeControle', 'onColorChange']));
```

**Exemplo de código:**

```php theme={null}
public static function onColorChange($param = null)
{
    new TMessage('info', 'A cor foi alterada com sucesso!');
}
```

<br />

## setChangeFunction

Define uma função JavaScript a ser executada quando o usuário alterar a cor.

**Parâmetros:**
<ResponseField name="$function" type="mixed" required>Função JavaScript.</ResponseField>

**Exemplo de código:**

```php theme={null}
$corEvento = new TColor('corEvento');
$corEvento->setChangeFunction('alert("Cor selecionada: " + color);');
```

<br />

## enableField e disableField

(Método estático) Habilita ou desabilita um campo de cor no formulário.

**Parâmetros:**
<ResponseField name="$form_name" type="mixed" required>Nome do formulário.</ResponseField>
<ResponseField name="$field" type="mixed" required>Nome do campo.</ResponseField>

**Exemplo de código:**

```php theme={null}
$cor = new TColor('cor');

$btnHabilitar = new TButton('btnEnableField');
$btnHabilitar->addStyleClass('btn-default');
$btnHabilitar->setImage('far:circle #000000');
$btnHabilitar->setAction(new TAction([$this, 'habilitarCampo']), 'Habilitar Seleção de Cor');

$btnDesabilitar = new TButton('btnDisableField');
$btnDesabilitar->addStyleClass('btn-default');
$btnDesabilitar->setImage('far:circle #000000');
$btnDesabilitar->setAction(new TAction([$this, 'desabilitarCampo']), 'Desabilitar Seleção de Cor');
```

Código de exemplo das funções a serem chamadas, lembrando que essas funções precisam ser estáticas (static function).

```php theme={null}
public static function habilitarCampo($param = null)
{
    TColor::enableField('nomeForm', 'cor');
}

public static function desabilitarCampo($param = null)
{
    TColor::disableField('nomeForm', 'cor');
}
```
