The main window(s) for your application
Алан Дэй (Allan Day)
aday@gnome.org

# Главные окна

Главные окна -- это основной высокоуровневый контейнер для пользовательского интерфейса вашего приложения, который должен предоставлять основную функциональность приложения.

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

Every application should show a primary window when its launcher is activated. This includes applications that mainly provide a background service.

# Типы приложений

Существует две основные модели главных окон:

## Одноэкземплярные приложения

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

## Мультэкземплярные приложения

Мультэкземплярные приложения могут иметь несколько главных окон. Обычно все главные окна идентичны друг другу. Эта модель часто применяется в приложениях для просмотра или в редакторах (документов, изображений и т. п.).

Обе модели позволяют открывать. Через вкладки или перемещение в браузерном стиле. Однако мультиоконная модель предоставляет дополнительные возможности:

одновременный просмотр содержимого нескольких элементов;

возможность перемещать содержимое на другие рабочие места;

возможность распологать наборы с содержимым в различных окнах (если применяются вкладки).

### Parent/child primary windows

Multiple instance applications typically have identical primary windows (in the case multiple web browser windows, for example). However, this is not always the case.

Primary windows can have a parent/child relationship. In this type of application, there is only ever one parent window. This typically contains an overview of content items which can be opened in the parent window, or in a separate child window. This allows multiple content items to be simultaneously open.

While child windows can only be opened through a parent window, they are not dependent on them in order to stay open: closing the parent window does not result in the closure of the application's child windows.

GNOME's Notes application is a good example of parent/child primary windows.

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

A single primary window should always be displayed when your application is launched.

If your application launcher is activated while your application is running, all its primary windows should be displayed.

Основная функциональность вашего приложения должна реализовываться через главные окна. Не используйте диалоговые или иные второстепенные окна для основной функциональности.

Primary windows should be independent — closing one primary window should not result in other primary windows being closed.

Диалоговые окна должны всегда зависеть от главного окна. Подробнее см. диалоги.

The guidelines on display compatibility are particularly relevant for primary windows: be careful to ensure that they follow the advice on minimum display sizes, display orientation, and half-screen snap.

Действие Завершить должно закрывать все главные окна.

# API reference

GtkWindow

GtkApplicationWindow