<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:uix="http://projectmallard.org/experimental/ui/" type="topic" id="progress-bars" xml:lang="pt-BR">

  <info>
    <credit type="author">
      <name>Allan Day</name>
      <email>aday@gnome.org</email>
    </credit>
    <credit>
      <name>Calum Benson</name>
    </credit>
    <credit>
      <name>Adam Elman</name>
    </credit>
    <credit>
      <name>Seth Nickell</name>
    </credit>
    <credit>
      <name>Colin Robertson</name>
    </credit>

    <link type="guide" xref="ui-elements"/>
    <uix:thumb mime="image/svg" src="figures/ui-elements/progress-bars.svg"/>

    <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>Barras de progresso</title>

<p>Barras de progresso indicam que uma tarefa está sendo executada, juntamente com quanto progresso foi feito durante a tarefa.</p>

<media type="image" mime="image/svg" src="figures/ui-elements/progress-bars.svg"/>

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

<p>Geralmente, é necessário indicar que o progresso está ocorrendo sempre que uma operação leva mais de três segundos. Isso garante que os usuários entendam que precisam aguardar e que um erro não ocorreu.</p>

<p>Ao indicar o progresso, a escolha principal é entre uma barra de progresso ou um <link xref="progress-spinners">spinner de progresso</link>. As barras de progresso indicam quanto de uma tarefa foi concluída. Eles são, portanto, úteis para tarefas que demoram muito tempo. Como regra geral, use apenas uma barra de progresso para tarefas que levam mais de 30 segundos. Para tarefas com períodos mais curtos, os <link xref="progress-spinners">spinners de progresso</link> costumam ser uma opção melhor.</p>

</section>

<section id="types">
<title>Types</title>

<p>Há três tipos de barras de progresso:</p>

<list>
<item><p>Tempo restante: estas indicam quanto tempo resta em uma operação.</p></item>
<item><p>Tipo típico: estas indicam quanto tempo resta, com base em uma estimativa da duração esperada.</p></item>
<item><p>Indeterminado: estas indicam apenas que uma operação está em andamento, não quanto tempo levará.</p></item>
</list>

<p>Precisão é preferível para barras de progresso. Sempre que possível, use uma barra de progresso de tempo restante, seguida de tempo típico. Tente evitar o uso de barras de progresso indeterminadas.</p>

</section>

<section id="progress-text">
<title>Texto de progresso</title>

<p>Cada barra de progresso pode incluir uma descrição de texto. Este texto deve fornecer uma ideia de quanto da tarefa foi concluída. Ao decidir sobre o texto do progresso:</p>

<list>
<item><p>Sempre considere o que é mais relevante e interessante para o usuário.</p></item>
<item><p>Muitas vezes, é melhor fornecer informações específicas em vez de uma porcentagem sem unidade. Por exemplo, <gui>13 of 19 images rotated</gui> ou <gui>12.1 of 30 MB downloaded</gui> em vez de <gui>13% complete</gui>.</p></item>
<item><p>Para tarefas de longa duração, pode ser desejável mostrar uma estimativa do tempo restante no texto da barra de progresso. Se outras informações relevantes não estiverem disponíveis, isso pode ser mostrado por conta própria. Alternativamente, pode aparecer ao lado do texto sobre o progresso da tarefa; no entanto, tenha cuidado para não sobrecarregar o usuário com informações demais ao fazer isso e use as <link xref="typography">convenções tipográficas</link> para diferenciar as informações mais úteis.</p></item>
<item><p>Se o tempo restante for uma estimativa, use a palavra <gui>about</gui>. Por exemplo: <gui>About 3 minutes left</gui>.</p></item>
</list>

</section>

<section id="task-stages">
<title>Estágios de tarefas</title>

<p>Algumas tarefas podem ser constituídas por uma série sequencial de etapas, cada uma com opções diferentes para a estimativa de tempo. Pode ser possível estimar o tempo restante para parte de uma tarefa, mas não outra parte, por exemplo. Nestas situações:</p>

<list>
<item><p>Apenas comunique os diferentes estágios em uma tarefa quando eles forem relevantes para um usuário. De um modo geral, isso não será necessário, e não é necessário ou desejável comunicar etapas separadas em uma tarefa.</p></item>
<item><p>Se uma tarefa incluir estágios de tempo restante e de tempo típico, tente criar uma barra de progresso de tempo típico composta única.</p></item>
<item><p>Se uma tarefa incluir um estágio de progresso indeterminado, a barra de progresso poderá mostrar um progresso indeterminado para parte da tarefa. No entanto, você deve evitar mostrar barras de progresso indeterminadas por longos períodos de tempo e deve tentar manter o número de alterações no modo de barra de progresso em um mínimo absoluto. Evite o progresso indeterminado sempre que possível.</p></item>
</list>

</section>

<section id="sub-tasks">
<title>Subtarefas</title>

<p>Se uma tarefa for composta de várias subtarefas (como baixar vários arquivos simultaneamente), geralmente é aconselhável mostrar uma única barra de progresso que indica o progresso composto para a tarefa geral. No entanto, existem algumas situações em que isso pode não ser o caso:</p>

<list>
<item><p>Se é realmente útil para o usuário conhecer o progresso dentro de cada subtarefa individual. (Como alternativa, a conclusão de cada subtarefa pode ser indicada com o texto do progresso.)</p></item>
<item><p>Se for necessário pausar ou interromper uma subtarefa (consulte as <link xref="#general-guidelines">diretrizes gerais</link> abaixo).</p></item>
<item><p>Se subtarefas já estiverem indicadas na interface do usuário do seu aplicativo. Nesse caso, pode ser menos prejudicial mostrar um progresso para cada item em linha.</p></item>
</list>

<p>Ao mostrar barras de progresso para subtarefas:</p>

<list>
<item><p>Cada subtarefa deve estar de acordo com as diretrizes de uso das barras de progresso (consulte <link xref="#when-to-use">quando usar</link>, acima).</p></item>
<item><p>De um modo geral, não é necessário mostrar uma barra de progresso para o progresso geral através do conjunto de tarefas.</p></item>
</list>

</section>

<section id="progress-windows">
<title>Janelas de progresso</title>

<p>No passado, as janelas de progresso eram uma maneira popular de apresentar barras de progresso. Essas janelas secundárias apareceriam durante a duração de uma tarefa e conteriam uma ou mais barras de progresso. Em geral, as janelas de progresso não são recomendadas, pois a consequência de fechar a janela pode não ser clara e elas podem obscurecer controles e conteúdo úteis.</p>

<p>Sempre que possível, as barras de progresso devem ser exibidas em linha e devem ter uma relação visual próxima com os itens de conteúdo ou controles que representam a tarefa em andamento.</p>

</section>

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

<list>
<item><p>Se a operação em andamento for potencialmente destrutiva ou consome muitos recursos, considere colocar um botão de pausa e/ou cancelar próximo à barra de progresso.</p></item>
<item><p>Assegure-se de que as barras de progresso de tempo restante e de tempo típico meçam o tempo total ou o trabalho total de uma operação, não apenas o de uma única etapa.</p></item>
<item><p>Atualize as barras de progresso restantes do tempo quando ocorrerem alterações que farão com que a operação seja concluída mais rapidamente ou mais lentamente.</p></item>
<item><p>Ao usar uma barra de progresso de tempo típico, se seu aplicativo superestimar a quantidade de trabalho concluída, o comprimento da barra pode indicar <gui>quase concluída</gui> até que a operação seja concluída. Se seu aplicativo subestimar quanto trabalho está concluído, preencha a parte restante da barra quando a operação estiver concluída.</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/GtkProgressBar.html">GtkProgressBar</link></p></item>
</list>
</section>

</page>
