Алан Дэй (Allan Day)
aday@gnome.org

# Всплывающие виджеты

Всплывающий виджет — это контейнер, появляющийся над своим родительским окном. Всплывающий виджет может содержать различные элементы управления, включая кнопки, списки и меню, он часто применяется в качестве элемента кнопочного меню или контекстного меню.

# Когда использовать

Во всплывающих виджетах можно располагать дополнительные элементы, которые нужны пользователю лишь эпизодически. Всплывающие виджеты служат длы выполнения действий или хранения параметров. Это очень гибкий элемент интерфейса, с помощью которого можно создавать современные интерфейсы.

Всплывающий виджет всегда связан с определённым элементом, который вызвал появление всплывающего виджета. Этим элементом обычно является кнопка или объект в содержимом. Если всплывающий появляется при нажатии на кнопку, то его можно использовать в качестве гибкого варианта кнопочного меню, предоставляющего доступ к группами элементам управления. Приведём несколько примеров использования:

Небольшой контейнер с инструментами для форматирования текста.

Интерфейс для поиска с текстовым полем ввода и местом для списка результатов.

Набор элементов для управления видом (масштабирование, списки и сетки, упорядочивание содержимого).

Всплывающие виджеты, также как и диалоговые окна, служат для скрытия дополнительных элементов управления и информации. Главной отличительной чертой всплывающих виджетов является то, что они меньше, чем диалоги отвлекают внимание, а также то, что они тесно связаны с элементом, который вызывает их появление. Применяйте диалоговые окна вместо всплывающих виджетов, если нужно разместить большое количество элементов управления или информации, применить болеее сложное расположение элементов управления или если ситуация подразумевает использование диалога (например, диалог подтверждения).

# Содержимое всплывающего виджета

Всплывающий виджет является обычным контейнером и может включать разнообразные элементы управления такие как кнопки, ползунки, списки, выключатели и поля ввода. Но старайтесь не смешивать слишком много различных типов элементов в одном и том же всплывающем виджете, группируйте элементы управления одного и того же типа.

Всплывающие виджеты могут выполняют роль контейнера для меню или для меню в кобминации с небольшим количеством вспомогательных элементов управления.

If the purpose of a popover’s controls is ambiguous, the popover can be given a heading.

Кнопки Закрыть или Готово обычно не нужны во всплывающих виджетах.

# Общие рекомендации

Размеры всплывающего виджета должны быть небольшими (площадь, занимаемая всплывающим виджетом, не должна превышать одной трети площади родительского окна), а сам всплывающий виджет должен быть простым. Всплывающий виджет всегда должен являться подчинённым по отношению к своему родительскому окну.

Всплывающий виджет должен появляться только при совершениии пользователем определённого действия, он не должен появляться неожиданно.

# API reference

GtkPopover

GtkPopoverMenu