Eu fiz um pouco mais de escavação e suspeito que:
-
A unidade
- usa o tema de metacity (
metacity-1subpasta) para todas as decorações de janela ;
A unidade - usa a subpasta
unitypara desenhar os botões da janela somente no painel superior da unidade (quando uma janela é maximizada e a barra de títulos está oculta (?))
(atualmente não tenho o Unity disponível para testar).
O bug relevante: link
Em particular, comentário 22:
Isso foi corrigido. Verifique / usr / share / themes / ambiance / unity, você encontrará botões lá que são carregados no painel. Então, sim, os botões de controle da janela Unity agora são programáveis.
O código relevante (3 / Jun / 2013): link
Não acredito que exista documentação .
No entanto, ao ler o código relevante (acima), parece que
- Os tipos de botão da janela são
CLOSE,MINIMIZE,UNMAXIMIZE,MAXIMIZE - Os estados do botão da janela são
NORMAL,PRELIGHT,PRESSED,DISABLED,UNFOCUSED,UNFOCUSED_PRELIGHT,UNFOCUSED_PRESSED
Isso parece o mesmo que a metacidade.
Para encontrar a imagem correspondente ao botão com o tipo type e o estado state , consultamos unity/<type_><state_>.png , onde:
-
type_é:- 'fechar' para o tipo
CLOSE; - 'minimize' para o tipo
MINIMIZE; - 'maximizar' para o tipo
MAXIMIZE; - 'unmaximize' para o tipo
UNMAXIMIZE.
- 'fechar' para o tipo
-
state_é:- '' (nada) para o estado
NORMAL(um botão na janela ativa); - '_ focused_prelight' para o estado
PRELIGHT(um botão na janela ativa que está sendo exibido); - '_ focused_pressed' para o estado
PRESSED(um botão na janela ativa que está sendo pressionada); - '_ desfocado' para o estado
DISABLED; (??) - '_ desfocado' para o estado
UNFOCUSED(um botão em uma janela sem foco); - '_ unfocused_prelight' para o estado
UNFOCUSED_PRELIGHT(um botão em uma janela sem foco que está sendo passado); - '_ unfocused_pressed' para o estado
UNFOCUSED_PRESSED(um botão em uma janela sem foco que está sendo pressionada).
- '' (nada) para o estado
Por isso, note que das imagens na subpasta unity de (digamos) Ambiente, <role>_focused_normal.png não é usado , mesmo que seja fornecido no pacote (??).
Se a imagem de um determinado (tipo, estado) não for encontrada, parece que algum tipo de botão padrão é desenhado (em vez de usar uma das imagens existentes).