<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:uix="http://projectmallard.org/experimental/ui/" xmlns:itst="http://itstool.org/extensions/" type="topic" id="lists" 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>
    <license xmlns="http://projectmallard.org/1.0/" href="http://creativecommons.org/licenses/by-sa/4.0/">

  <p>This work is licensed under a
  <link href="http://creativecommons.org/licenses/by-sa/4.0/">Creative
  Commons Attribution-Share Alike 4.0 International License</link>.</p>

</license>
  </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>Each row contains a remove button. If the number of items is short, the final list row should be used as an add button. Alternatively, if the list is long, the add button can be placed in a <link xref="header-bars">header bar</link> or <link xref="action-bars">action bar</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 itst:context="list-type">Edit</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>
