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

  <info>
    <link type="guide" xref="patterns#primary"/>
    <desc>Rows of information or content items.</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"/>
  </info>

<title>Списки</title>

<p>Список это один из основных элементов пользовательского интерфейса, служащий для представления информации или элементов управления. В GNOME 3 существуют два основных типа списков: стандартные списки и таблицы.</p>

<p><link xref="sidebar-lists">Боковые списки</link> -- это отдельный шаблон проектирования, который также использует список.</p>

<section id="when-to-use">
<title>Когда использовать</title>

<p>Список -это способ представления множественных элементов, где в качестве главного идентификатора используется имя представляемого элемента. Если информация имеет визуальную природу, например фотографии или видеоролики, попробуйте применить <link xref="grids">сетки</link> вместо списков.</p>

<p>В некоторых случаях для одних и тех же элементов можно использовать как списочное представление, так и сеточное. В этом случае списочное представление можно использовать для размещения информации о содержимом.</p>

</section>

<section id="standard-lists">
<title>Стандартные списки</title>

<p>Стандартные списки это наиболее распространённый тип списков. Старайтесь отдавать предпочтение стандартным спискам, а не таблицам.</p>

<p>In standard lists, each row is divided by separators, and changing the sort order is achieved by using a control outside the list itself.</p>

<section id="styles">
<title>Стили</title>

<p>У стандартных списков существует два стиля: растянутый и встроенный. Растянутые списки полностью заполняют свои контейнеры, вокруг встроенных списков существуют отступы.</p>

<p>Растянутые списки выглядят проще и аккуратнее. Придерживайтесь этого стиля списков везде, где это возможно. Но есть случаи, когда растянутые списки использовать невозможно. Примеры, когда лучше использовать встроенные списки:</p>

<list>
<item><p>Когда список используется в широком контейнер, и для сохранения читабельности столбцы с информацией должны располагаться близко друг к другу.</p></item>
<item><p>Когда в окне содержится несколько списков.</p></item>
<item><p>Когда необходимо выровнять список с другими управляющими элементами в окне.</p></item>
</list>

<media type="image" mime="image/svg" src="figures/patterns/list-styles.svg"/>

</section>

<section id="editable-lists">
<title>Изменяемые списки</title>

<p>Изменяемые списки позволяют пользователям добавлять и удалять элементы из списка. Изменяемыми могут быть как растянутые списки, так и встроенные.</p>

<p>Каждая строка содержит кнопку удаления. Если количество элементов небольшое, то последнюю строку можно использовать для кнопки добавления. Если же список большой, то кнопку добавления можно разместить в <link xref="header-bars">заголовочной панели</link> или в <link xref="action-bars">панели действий</link>.</p>

<media type="image" mime="image/svg" src="figures/patterns/editable-lists.svg"/>

</section>
</section>

<section id="tables">
<title>Таблицы</title>

<p>Таблицы используются для сложных списков с несколькими столбцами, в которых часто используются различные сортировки по столбцам. Заголовки окон служат для идентификации типа информации, находящейся в столбцах, а также для изменения порядка сортировки.</p>

<p>В качестве индикации порядка сортировки в заголовке используйте стрелки.</p>

<table>
<thead>
<tr>
<td><p>Порядок</p></td>
<td><p>Направление стрелок</p></td>
<td><p>Пример</p></td>
</tr>
</thead>
<tbody>
<tr>
<td><p>Естественный</p></td>
<td><p>Вниз</p></td>
<td><p>Алфавитный, по возрастанию чисел, по возрастанию дат, по признаку включённости</p></td>
</tr>
<tr>
<td><p>Обратный</p></td>
<td><p>Вверх</p></td>
<td><p>Обратный алфавитный порядок, по убыванию чисел, по убыванию дат, по признаку выключенности</p></td>
</tr>
</tbody>

</table>

</section>

<section id="row-behavior">
<title>Поведение строк</title>

<p>В зависимости от типа списка поведение строк может изменяться, когда пользователь нажимает на них. По этому аспекту списки можно разделить на три вида:</p>

<table>
<thead>
<tr>
<td><p>Тип списка</p></td>
<td><p>Поведение строки</p></td>
</tr>
</thead>
<tbody>
<tr>
<td><p>Навигация</p></td>
<td><p>Выделение строки открывает соответствующий элемент, для этого элемента открыв новое представление или диалоговое окно. Этот шаблон часто используется для списков элементов содержимого или для представления групп параметров.</p></td>
</tr>
<tr>
<td><p>Выбор</p></td>
<td><p>Элемент списка выбирается при нажатии на нём. Этот поход часто используется, когда требуется выбрать несколько конфигурационных параметров. Если требуется выбрать только один параметр, то это можно реализовать с помощью <link xref="drop-down-lists">выпадающих списков</link>. Выбранная строка должна выделяться ф</p></td>
</tr>
<tr>
<td><p>Правка</p></td>
<td><p>Выбор строки превращает строку в поле ввода, позволяющее изменять элемент строки.</p></td>
</tr>
</tbody>
</table>

<p>Навигационный стиль можно объединить с <link xref="selection-mode">режимом выделения</link>, это позволит открывать и изменять строки. Не используйте двойное нажатие для открытия элементов списка, это неочевидный способ и он несовместим с сенсорным вводом.</p>

</section>

<section id="general-guidelines">
<title>Общие рекомендации</title>

<list>
<item><p>Для разделения информации используйте различные выравнивания, <link xref="typography">цвет и насыщенность шрифта</link>. Выделяйте главную информацию, для второстепенной информации используйте меньшую насыщенность шрифта.</p></item>
<item><p>Не перегружайте списки столбцами и элементами, используйте списки для представления только необходимой информации.</p></item>
<item><p>Старайтесь не использовать несколько список в одном и том же окне, особенно в главных окнах.</p></item>
<item><p>Не используйте списки, когда количество элементов меньше пяти, только если количество элементов не может увеличиться в последствии. Для параметров вместо списков можно применить флаговые кнопки и кнопки-переключатели.</p></item>
<item><p>Упорядочивайте списки так, чтобы пользователю было удобно с ними работать. Например, списки недавних документов лучше всего упорядочивать по времени использования, а списки контактов, возможно, лучше упорядочивать по статусу.</p></item>
<item><p>Если в списках используются значки, то <link xref="icons-and-artwork">применяйте символические значки</link>, они проще для восприятия и не смещают на себя акцент.</p></item>
<item><p>Если список слишком длинный, добавьте возможность поиска, применив стандартный <link xref="search">шаблон поиска</link>.</p></item>
</list>

</section>

<section id="api-reference">
<title>API reference</title>
<list>
<item><p><link href="https://developer.gnome.org/gtk3/stable/GtkListBox.html">GtkListBox</link></p></item>
<item><p><link href="https://developer.gnome.org/gtk3/stable/GtkTreeView.html">GtkTreeView</link></p></item>
</list>
</section>

</page>
