Eu fiz um pouco mais de escavação e suspeito que:
-
A unidade
- usa o tema de metacity (
metacity-1
subpasta) para todas as decorações de janela ;
A unidade - usa a subpasta
unity
para 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).