A janela principal para seu aplicativo
Allan Day
aday@gnome.org
Georges Neto
georges.stavracas@gmail.com 2014,
Rafael Fontenelle
rafaelff@gnome.org 2017-2019

# Janela primária

As janelas primárias são o contêiner básico de alto nível para a interface do usuário do aplicativo e devem apresentar a funcionalidade principal de seu aplicativo.

# Quando usar

Todo aplicativo deve mostrar uma janela principal quando seu inicializador é ativado. Isso inclui aplicativos que fornecem principalmente um serviço de segundo plano.

# Tipos de aplicativos

Existem dois modelos principais para janelas primárias:

## Aplicativos de uma única instância

Aplicativos de instância única têm uma única janela primária. Esse modelo é comum para aplicativos de mensagens, como e-mail, bate-papo ou contatos.

## Aplicativos de múltiplas instâncias

Aplicativos de várias instâncias podem ter várias janelas principais. Normalmente, cada janela primária será idêntica. Aplicativos de várias instâncias são frequentemente visualizadores ou editores, como documentos ou imagens.

Os aplicativos de instância única e múltipla podem permitir que vários itens de conteúdo sejam abertos, seja através do uso de abas ou navegação no estilo do navegador. No entanto, várias janelas oferecem recursos adicionais, que incluem:

Visualizar vários itens de conteúdo ao lado uns dos outros.

Colocar conteúdo em espaços de trabalho diferentes.

Organizar conjuntos de conteúdo em diferentes janelas (se estiver usando abas).

### Janelas primárias pais/filhas

Geralmente, os aplicativos de várias instâncias têm janelas primárias idênticas (no caso de várias janelas do navegador da Web, por exemplo). No entanto, isso nem sempre é o caso.

Janelas primárias podem ter um relacionamento pai/filho. Nesse tipo de aplicativo, há apenas uma janela pai. Isso geralmente contém uma visão geral dos itens de conteúdo que podem ser abertos na janela pai ou em uma janela filha separada. Isso permite que vários itens de conteúdo sejam abertos simultaneamente.

Embora as janelas filho só possam ser abertas por meio de uma janela pai, elas não dependem delas para permanecerem abertas: fechar a janela pai não resulta no fechamento das janelas filhas do aplicativo.

O aplicativo Notas do GNOME é um bom exemplo de janelas primárias pai/filho.

# Diretrizes gerais

Uma única janela primária deve sempre ser exibida quando o aplicativo for iniciado.

Se o iniciador de aplicativos estiver ativado enquanto seu aplicativo estiver em execução, todas as janelas principais deverão ser exibidas.

Janelas primárias devem hospedar a principal funcionalidade do seu aplicativo. Não confie em diálogos ou janelas secundárias para apresentar funcionalidade básica.

Janelas primárias devem ser independentes – fechar uma janela primária não deve resultar no fechamento de outras janelas primárias.

As janelas de caixa de diálogo devem sempre depender de uma janela principal. Veja as diretrizes da página de diálogos.

As diretrizes sobre compatibilidade de tela são particularmente relevantes para janelas primárias: tenha cuidado para garantir que elas sigam as recomendações sobre tamanhos de exibição mínimos, orientação de exibição e encaixe de meia tela.

Quit deve fechar todas as janelas primárias.

# Referência de API

GtkWindow

GtkApplicationWindow