Páginas filhas
  • getNewWebAppTheme - Função que retorna o tema do Protheus

Função criada para retornar o tema do Protheus, caso o ambiente seja compátivel com o novo CSS de troca de temas do Protheus (WebApp).

Disponível

Disponível a partir da LIB Label 20240701


totvs.framework.css.getNewWebAppTheme()

Retorna o tema do Protheus se ele for compatível com a nova troca de temas do Protheus, caso contrário, retorna vazio.

Exemplo de uso:

totvs.framework.css.getNewWebAppTheme()

Sintaxe: totvs.framework.css.getNewWebAppTheme() → character

Retornos possíveis da função:

  1. "" (Vazio)
  2. CLASSIC
  3. SUNSET
  4. DARK

Se a função retornar uma string vazia (""), isso indica que o ambiente não é compatível com os novos temas.

A função retorna todos os temas. Portanto, se houver uma alteração de CSS específica para o tema DARK, essa verificação deverá ser feita com base no retorno.


Exemplo completo:

Exemplo com interface e executando em job
user function newWebAppCSS()
    local oDlg as object
	local oBtnPrimary as object
	local oBtnSecondary as object
    local oFont as object
    local oSay as object
    local lIsDark as logical
    local cTheme as character
    local oTheme as character

    cTheme := totvs.framework.css.getNewWebAppTheme()
    lIsDark := iif(!empty(cTheme) .and. cTheme == "DARK", .T., .F.) //Valida se o tema ativo é o dark
    oFont := TFont():New('Courier new',,-18,.T.)
    oTheme := totvs.framework.css.ProtheusTheme():New()

    if lIsDark
        //Exemplo de css no new/constructor da classe
        oDlg := TDialog():New(180,180,550,700,'Exemplo TDialog',,,,,,,,,.T.)
        oSay:= TSay():Create(oDlg,{||'Tema Dark ativo'},60,01,,oFont,,,,.T.,,,200,20) 
    else
        oDlg := TDialog():New(180,180,550,700,'Exemplo TDialog',,,,,CLR_BLACK,CLR_WHITE,,,.T.)
        oSay:= TSay():Create(oDlg,{||'Tema padrão/sunset ativo'},60,01,,oFont,,,,.T.,CLR_RED,CLR_WHITE,200,20)  
    endif

    //Exemplo de css enviado através do setCss
    oBtnPrimary := TButton():New( 002, 002, "Botão 01",oDlg,, 40,10,,,.F.,.T.,.F.,,.F.,,,.F. )   
    oBtnSecondary := TButton():New( 022, 002, "Botão 02",oDlg,, 40,10,,,.F.,.T.,.F.,,.F.,,,.F. ) 
    //Nosso método já verifica se é o css novo ou não e recupera os tokens corretamente
    oBtnPrimary:SetCSS(oTheme:getPrimaryButtonCSS()) 
    oBtnSecondary:SetCSS(oTheme:getSecondaryButtonCSS())

    oDlg:Activate(,,,.T.,,,)

    FwFreeObj(oDlg)
    FwFreeObj(oSay)
    FwFreeObj(oBtnPrimary)
    FwFreeObj(oBtnSecondary)
    FwFreeObj(oTheme)
    FwFreeObj(oFont)
return

Resultado do exemplo no Tema Dark:

Resultado do exemplo no Tema Padrão/Sunset: