Области действия действий
Действия всегда привязаны к конкретному объекту, над которым они выполняются.
В GTK действия обычно привязаны к приложению или окну, но любые виджеты могут иметь связанные с ними действия.
Действия, привязанные к окнам, должны быть действиями, которые непосредственно влияют на это окно. К таким действиям относятся, например, “полноэкранный режим” и “закрыть”, или, если окно содержит документ, “сохранить” и “печать”.
Действия, которые влияют на всё приложение в целом, а не на одно конкретное окно, привязаны к приложению. К таким действиям относятся, например, “о программе” и “настройки”.
Если конкретное действие привязано к окну, то оно привязано к определённому окну. Другими словами: если в вашем приложении есть действие “полноэкранный режим”, которое применяется к окнам, и у вас есть три окна, то у вас будет три действия «полноэкранный режим»: по одному для каждого окна.
Наличие отдельного действия для каждого окна позволяет каждому окну иметь отдельное состояние для каждого экземпляра действия, а также управлять состоянием включения действия на основе каждого окна.
Действия добавляются в соответствующую область (приложение, окно или виджет) либо с помощью интерфейса GActionMap, либо с помощью gtk_widget_insert_action_group(). Действия, которые будут одинаковыми для всех экземпляров класса виджета, можно добавить глобально с помощью gtk_widget_class_install_action().
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/ch06s03.html