<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" type="topic" id="primary-windows" xml:lang="pt-BR">

  <info>
    <link type="guide" xref="patterns#primary"/>
    <desc>A janela principal para seu aplicativo</desc>
    <credit type="author">
      <name>Allan Day</name>
      <email>aday@gnome.org</email>
    </credit>
    <include xmlns="http://www.w3.org/2001/XInclude" href="legal.xml"/>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Georges Neto</mal:name>
      <mal:email>georges.stavracas@gmail.com</mal:email>
      <mal:years>2014,</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Rafael Fontenelle</mal:name>
      <mal:email>rafaelff@gnome.org</mal:email>
      <mal:years>2017-2021</mal:years>
    </mal:credit>
  </info>

<title>Janela primária</title>

<media type="image" mime="image/svg" src="figures/patterns/primary-windows.svg"/>

<p>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.</p>

<section id="when-to-use">
<title>Quando usar</title>

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

</section>

<section id="application-types">
<title>Tipos de aplicativos</title>

<p>Existem dois modelos principais para janelas primárias:</p>

<section id="single-instance-applications">
<title>Aplicativos de uma única instância</title>

<p>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.</p>

</section>

<section id="multiple-instance-applications">
<title>Aplicativos de múltiplas instâncias</title>

<p>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.</p>

<p>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 <link xref="tabs">abas</link> ou navegação no estilo do navegador. No entanto, várias janelas oferecem recursos adicionais, que incluem:</p>

<list>
<item><p>Visualizar vários itens de conteúdo ao lado uns dos outros.</p></item>
<item><p>Colocar conteúdo em espaços de trabalho diferentes.</p></item>
<item><p>Organizar conjuntos de conteúdo em diferentes janelas (se estiver usando abas).</p></item>
</list>

<section id="parent-child-primary-windows">
<title>Janelas primárias pais/filhas</title>

<p>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.</p>

<p>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.</p>

<p>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.</p>

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

</section>

</section>
</section>

<section id="general-guidelines">
<title>Diretrizes gerais</title>

<list>
<item><p>Uma única janela primária deve sempre ser exibida quando o aplicativo for iniciado.</p></item>
<item><p>Se o iniciador de aplicativos estiver ativado enquanto seu aplicativo estiver em execução, todas as janelas principais deverão ser exibidas.</p></item>
<item><p>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.</p></item>
<item><p>Janelas primárias devem ser independentes – fechar uma janela primária não deve resultar no fechamento de outras janelas primárias.</p></item>
<item><p>As janelas de caixa de diálogo devem sempre depender de uma janela principal. Veja as diretrizes da <link xref="dialogs">página de diálogos</link>.</p></item>
<item><p>As diretrizes sobre <link xref="display-compatibility">compatibilidade de tela</link> 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.</p></item>
<item><p><gui>Quit</gui> deve fechar todas as janelas primárias.</p></item>
</list>

</section>

<section id="api-reference">
<title>Referência de API</title>

<list>
<item><p><link href="https://developer.gnome.org/gtk3/stable/GtkWindow.html">GtkWindow</link></p></item>
<item><p><link href="https://developer.gnome.org/gtk3/stable/GtkApplicationWindow.html">GtkApplicationWindow</link></p></item>
</list>

</section>

</page>
