GtkActionGroup
GtkActionGroup — Группа действий
Функции
Свойства
| GtkAccelGroup * | accel-group | Чтение/Запись |
| gchar * | name | Чтение/Запись/Только для создания |
| gboolean | sensitive | Чтение/Запись |
| gboolean | visible | Чтение/Запись |
Сигналы
| void | connect-proxy | |
| void | disconnect-proxy | |
| void | post-activate | |
| void | pre-activate |
Типы и значения
| struct | GtkActionGroup |
| struct | GtkActionGroupClass |
| struct | GtkActionEntry |
| struct | GtkToggleActionEntry |
| struct | GtkRadioActionEntry |
Иерархия объектов
GObject ╰── GtkActionGroup
Реализованные интерфейсы
GtkActionGroup реализует GtkBuildable.
Включаемые файлы
#include <gtk/gtk.h>
Описание
Действия организованы в группы. Группа действий по сути является отображением имён на объекты GtkAction.
Все действия, которые могут быть полезны в данном контексте, должны находиться в одной группе. Для одного пользовательского интерфейса могут использоваться несколько групп действий. Фактически, ожидается, что большинство нетривиальных приложений будут использовать несколько групп. Например, в приложении, которое может редактировать несколько документов, одна группа может содержать глобальные действия (например, выход, о программе, новый), а другая группа для каждого документа — действия, которые влияют на этот документ (например, сохранение, вырезка/копирование/вставка и т. д.). Меню каждого окна будет создаваться на основе комбинации двух групп действий.
Акселераторы
Обработка акселераторов осуществляется с помощью карты акселераторов GTK+. Всем действиям присваивается путь акселератора (который обычно имеет вид <Actions>/group-name/action-name) и этому пути акселератора сопоставляется сочетание клавиш. Все пункты меню и элементы панели инструментов используют этот путь акселератора. Код карты акселераторов GTK+ гарантирует, что корректное сочетание клавиш отображается рядом с пунктом меню.
GtkActionGroup как GtkBuildable
Реализация GtkActionGroup интерфейса GtkBuildable принимает объекты GtkAction в качестве элементов <child> в определениях пользовательского интерфейса.
Обратите внимание, что, скорее всего, действия и группы действий чаще определяются в коде, так как они напрямую связаны с тем, что может сделать код.
Реализация GtkActionGroup интерфейса GtkBuildable поддерживает пользовательский элемент <accelerator>, у которого есть атрибуты с именами «key» и «modifiers», позволяющие указать акселераторы. Это аналогично элементу <accelerator> для GtkWidget, основное отличие заключается в том, что он не позволяет указать сигнал.
Фрагмент определения UI для GtkDialog
<object class="GtkActionGroup" id="actiongroup">
<child>
<object class="GtkAction" id="About">
<property name="name">About</property>
<property name="stock_id">gtk-about</property>
<signal handler="about_activate" name="activate"/>
</object>
<accelerator key="F1" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK"/>
</child>
</object>Функции
gtk_action_group_new ()
GtkActionGroup *
gtk_action_group_new (const gchar *name); gtk_action_group_new устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Создаёт новый объект GtkActionGroup. Имя группы действий используется при связывании сочетаний клавиш с действиями.
Параметры
name | имя группы действий. |
Возвращает
новый GtkActionGroup
С: 2.4
gtk_action_group_get_name ()
const gchar *
gtk_action_group_get_name (GtkActionGroup *action_group); gtk_action_group_get_name устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Возвращает имя группы действий.
Параметры
action_group | группа действий |
Возвращает
имя группы действий.
С: 2.4
gtk_action_group_get_sensitive ()
gboolean
gtk_action_group_get_sensitive (GtkActionGroup *action_group); gtk_action_group_get_sensitive устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Возвращает TRUE, если группа чувствительна. Составляющие действия могут быть логически чувствительными (см. gtk_action_is_sensitive()), только если они чувствительны (см. gtk_action_get_sensitive()), и их группа чувствительна.
Параметры
action_group | группа действий |
Возвращает
TRUE, если группа чувствительна.
С: 2.4
gtk_action_group_set_sensitive ()
void gtk_action_group_set_sensitive (GtkActionGroup *action_group,gboolean sensitive);
gtk_action_group_set_sensitive устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Изменяет чувствительность action_group
Параметры
action_group | группа действий | |
sensitive | новая чувствительность |
С: 2.4
gtk_action_group_get_visible ()
gboolean
gtk_action_group_get_visible (GtkActionGroup *action_group); gtk_action_group_get_visible устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Возвращает TRUE, если группа видима. Составляющие действия могут быть логически видны (см. gtk_action_is_visible()), только если они видны (см. gtk_action_get_visible()), и их группа видима.
Параметры
action_group | группа действий |
Возвращает
TRUE, если группа видима.
С: 2.4
gtk_action_group_set_visible ()
void gtk_action_group_set_visible (GtkActionGroup *action_group,gboolean visible);
gtk_action_group_set_visible устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Изменяет видимость action_group .
Параметры
action_group | группа действий | |
visible | новая видимость |
С: 2.4
gtk_action_group_get_accel_group ()
GtkAccelGroup *
gtk_action_group_get_accel_group (GtkActionGroup *action_group); gtk_action_group_get_accel_group устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Возвращает группу ускорителей.
Параметры
action_group |
Возвращает
группу ускорителей, связанную с этой группой действий, или NULL, если её нет.
[transfer none]
С: 3.6
gtk_action_group_set_accel_group ()
void gtk_action_group_set_accel_group (GtkActionGroup *action_group,GtkAccelGroup *accel_group);
gtk_action_group_set_accel_group устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Устанавливает группу ускорителей, которую будет использовать каждое действие в этой группе.
Параметры
action_group | ||
accel_group | GtkAccelGroup для установки или | [allow-none] |
С: 3.6
gtk_action_group_get_action ()
GtkAction * gtk_action_group_get_action (GtkActionGroup *action_group,const gchar *action_name);
gtk_action_group_get_action устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Ищет действие в группе действий по имени.
Параметры
action_group | группа действий | |
action_name | имя действия |
С: 2.4
gtk_action_group_list_actions ()
GList *
gtk_action_group_list_actions (GtkActionGroup *action_group); gtk_action_group_list_actions устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Список действий в группе действий.
Параметры
action_group | группа действий |
Возвращает
выделенный список объектов действий в группе действий.
[element-type GtkAction][transfer container]
С: 2.4
gtk_action_group_add_action ()
void gtk_action_group_add_action (GtkActionGroup *action_group,GtkAction *action);
gtk_action_group_add_action устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Добавляет объект действия в группу действий. Обратите внимание, что эта функция не настраивает путь акселератора действия, что может привести к проблемам, если пользователь попытается изменить акселератор элемента меню, связанного с действием. Поэтому вы должны либо самостоятельно установить путь акселератора с помощью gtk_action_set_accel_path(), либо использовать gtk_action_group_add_action_with_accel (..., NULL).
Параметры
action_group | группа действий | |
action | действие |
С версии: 2.4
gtk_action_group_add_action_with_accel ()
void gtk_action_group_add_action_with_accel (GtkActionGroup *action_group,GtkAction *action,const gchar *accelerator);
gtk_action_group_add_action_with_accel устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Добавляет объект действия в группу действий и настраивает акселератор.
Если accelerator является NULL, пытается использовать акселератор, связанный с stock_id действия.
Пути акселераторов устанавливаются в <Actions>/group-name/action-name.
Параметры
action_group | группа действий | |
action | действие для добавления | |
accelerator | акселератор для действия в формате, понятном | [allow-none] |
С версии: 2.4
gtk_action_group_remove_action ()
void gtk_action_group_remove_action (GtkActionGroup *action_group,GtkAction *action);
gtk_action_group_remove_action устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Удаляет объект действия из группы действий.
Параметры
action_group | группа действий | |
action | действие |
С версии: 2.4
gtk_action_group_add_actions ()
void gtk_action_group_add_actions (GtkActionGroup *action_group,const GtkActionEntry *entries,guint n_entries,gpointer user_data);
gtk_action_group_add_actions устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Это вспомогательная функция для создания нескольких действий и добавления их в группу действий.
Сигналы “activate” действий подключаются к обратным вызовам, а их пути акселераторов устанавливаются в <Actions>/group-name/action-name.
[skip]
Параметры
action_group | группа действий | |
entries | массив описаний действий. | [array length=n_entries] |
n_entries | количество записей | |
user_data | данные для передачи в обратные вызовы действий |
С версии: 2.4
gtk_action_group_add_actions_full ()
void gtk_action_group_add_actions_full (GtkActionGroup *action_group,const GtkActionEntry *entries,guint n_entries,gpointer user_data,GDestroyNotify destroy);
gtk_action_group_add_actions_full устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Этот вариант gtk_action_group_add_actions() добавляет обратный вызов GDestroyNotify для user_data.
[skip]
Параметры
action_group | группа действий | |
entries | массив описаний действий. | [array length=n_entries] |
n_entries | количество записей | |
user_data | данные для передачи в обратные вызовы действий | |
destroy | обратный вызов уведомления об уничтожении для | [nullable] |
С версии: 2.4
gtk_action_group_add_toggle_actions ()
void gtk_action_group_add_toggle_actions (GtkActionGroup *action_group,const GtkToggleActionEntry *entries,guint n_entries,gpointer user_data);
gtk_action_group_add_toggle_actions устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Это вспомогательная функция для создания нескольких действий переключения и добавления их в группу действий.
Сигналы “activate” действий подключаются к обратным вызовам, а их пути акселераторов устанавливаются в <Actions>/group-name/action-name.
[skip]
Параметры
action_group | группа действий | |
entries | массив описаний действий переключения. | [array length=n_entries] |
n_entries | количество записей | |
user_data | данные для передачи в обратные вызовы действий |
С версии: 2.4
gtk_action_group_add_toggle_actions_full ()
void gtk_action_group_add_toggle_actions_full (GtkActionGroup *action_group,const GtkToggleActionEntry *entries,guint n_entries,gpointer user_data,GDestroyNotify destroy);
gtk_action_group_add_toggle_actions_full устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Этот вариант gtk_action_group_add_toggle_actions() добавляет обратный вызов GDestroyNotify для user_data.
[skip]
Параметры
action_group | группа действий | |
entries | массив описаний действий переключения. | [array length=n_entries] |
n_entries | количество записей | |
user_data | данные для передачи в обратные вызовы действий | |
destroy | обратный вызов уведомления об уничтожении для | [nullable] |
С версии: 2.4
gtk_action_group_add_radio_actions ()
void gtk_action_group_add_radio_actions (GtkActionGroup *action_group,const GtkRadioActionEntry *entries,guint n_entries,gint value,GCallback on_change,gpointer user_data);
gtk_action_group_add_radio_actions устарел начиная с версии 3.10 и не должен использоваться в новых кодах.
Это служебная функция для создания группы радио-действий и добавления их в группу действий.
Сигнал «changed» первого радио-действия подключён к обратной функции on_change, а пути ускоренного доступа действий установлены в <Actions>/group-name/action-name.
[skip]
Параметры
action_group | группа действий | |
entries | массив описаний радио-действий. | [array length=n_entries] |
n_entries | количество элементов | |
value | значение действия, которое нужно активировать по умолчанию, или -1, если не нужно активировать ни одно действие | |
on_change | обратная функция для подключения к сигналу изменения | |
user_data | данные, которые нужно передать в обратные функции действий |
С: 2.4
gtk_action_group_add_radio_actions_full ()
void gtk_action_group_add_radio_actions_full (GtkActionGroup *action_group,const GtkRadioActionEntry *entries,guint n_entries,gint value,GCallback on_change,gpointer user_data,GDestroyNotify destroy);
gtk_action_group_add_radio_actions_full устарел начиная с версии 3.10 и не должен использоваться в новых кодах.
Этот вариант gtk_action_group_add_radio_actions() добавляет обратную функцию GDestroyNotify для user_data .
[skip]
Параметры
action_group | группа действий | |
entries | массив описаний радио-действий. | [array length=n_entries] |
n_entries | количество элементов | |
value | значение действия, которое нужно активировать по умолчанию, или -1, если не нужно активировать ни одно действие | |
on_change | обратная функция для подключения к сигналу изменения | |
user_data | данные, которые нужно передать в обратные функции действий | |
destroy | обратная функция уведомления об удалении для |
С: 2.4
GtkTranslateFunc ()
gchar * (*GtkTranslateFunc) (const gchar *path,gpointer func_data);
GtkTranslateFunc устарел начиная с версии 3.10 и не должен использоваться в новых кодах.
Функция, используемая для перевода сообщений, например, в GtkIconFactory и GtkActionGroup.
Параметры
path | Идентификатор сообщения. В GtkActionGroup это будет метка или всплывающая подсказка из GtkActionEntry. | |
func_data | переданные пользовательские данные при регистрации функции. | [closure] |
Возвращаемое значение
переведённое сообщение
gtk_action_group_set_translate_func ()
void gtk_action_group_set_translate_func (GtkActionGroup *action_group,GtkTranslateFunc func,gpointer data,GDestroyNotify notify);
gtk_action_group_set_translate_func устарел начиная с версии 3.10 и не должен использоваться в новых кодах.
Устанавливает функцию для перевода label и tooltip элементов GtkActionEntrys, добавленных с помощью gtk_action_group_add_actions().
Если вы используете gettext(), достаточно установить домен перевода с помощью gtk_action_group_set_translation_domain().
Параметры
action_group | группа действий GtkActionGroup | |
func | функция перевода GtkTranslateFunc | |
data | данные, которые необходимо передать в | |
notify | функция уведомления об удалении GDestroyNotify, которая вызывается при удалении |
С: 2.4
gtk_action_group_set_translation-domain ()
void gtk_action_group_set_translation_domain (GtkActionGroup *action_group,const gchar *domain);
gtk_action_group_set_translation_domain устарел начиная с версии 3.10 и не должен использоваться в новых кодах.
Устанавливает домен перевода и использует g_dgettext() для перевода label и tooltip элементов GtkActionEntrys, добавленных с помощью gtk_action_group_add_actions().
Если вы не используете gettext() для локализации, см. gtk_action_group_set_translate_func().
Параметры
action_group | группа действий GtkActionGroup | |
domain | домен перевода для вызовов | [allow-none] |
С: 2.4
gtk_action_group_translate_string ()
const gchar * gtk_action_group_translate_string (GtkActionGroup *action_group,const gchar *string);
gtk_action_group_translate_string устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Переводит строку, используя функцию, установленную с помощью gtk_action_group_set_translate_func(). Это предназначено в основном для языковых библиотек.
Параметры
action_group | ||
string | a string |
Возвращаемое значение
перевод string
С: 2.6
Типы и значения
struct GtkActionGroup
struct GtkActionGroup;
struct GtkActionGroupClass
struct GtkActionGroupClass {
GObjectClass parent_class;
GtkAction *(* get_action) (GtkActionGroup *action_group,
const gchar *action_name);
};
Члены
| Ищет действие в группе действий по имени. |
struct GtkActionEntry
struct GtkActionEntry {
const gchar *name;
const gchar *stock_id;
const gchar *label;
const gchar *accelerator;
const gchar *tooltip;
GCallback callback;
};
GtkActionEntry устарела начиная с версии 3.10 и не должна использоваться в новом коде.
GtkActionEntry используются с gtk_action_group_add_actions() для создания действий.
Члены
const gchar * | Имя действия. | |
const gchar * | Идентификатор стандартного действия или имя значка из темы значков. | |
const gchar * | Метка действия. Этот член обычно должен быть помечен для перевода, см. | |
const gchar * | Акселератор действия в формате, понятном | |
const gchar * | Подсказка к действию. Этот член обычно должен быть помечен для перевода, см. | |
GCallback | Функция, вызываемая при активации действия. |
struct GtkToggleActionEntry
struct GtkToggleActionEntry {
const gchar *name;
const gchar *stock_id;
const gchar *label;
const gchar *accelerator;
const gchar *tooltip;
GCallback callback;
gboolean is_active;
};
GtkToggleActionEntry устарела начиная с версии 3.10 и не должна использоваться в новом коде.
GtkToggleActionEntry используются с gtk_action_group_add_toggle_actions() для создания переключаемых действий.
Члены
const gchar * | Имя действия. | |
const gchar * | Идентификатор стандартного действия или имя значка из темы значков. | |
const gchar * | Метка действия. Этот член обычно должен быть помечен для перевода, см. | |
const gchar * | Акселератор действия в формате, понятном | |
const gchar * | Подсказка к действию. Этот член обычно должен быть помечен для перевода, см. | |
GCallback | Функция, вызываемая при активации действия. | |
gboolean | Начальное состояние переключаемого действия. |
Структура GtkRadioActionEntry
struct GtkRadioActionEntry {
const gchar *name;
const gchar *stock_id;
const gchar *label;
const gchar *accelerator;
const gchar *tooltip;
gint value;
};
GtkRadioActionEntry устарела начиная с версии 3.10 и не должна использоваться в новом коде.
GtkRadioActionEntry структуры используются с gtk_action_group_add_radio_actions() для создания групп радио-действий.
Члены
const gchar * | Имя действия. | |
const gchar * | Идентификатор значка для действия или имя значка из темы значков. | |
const gchar * | Метка действия. Этот параметр обычно должен быть помечен для перевода, см. | |
const gchar * | Акселератор действия в формате, понятном | |
const gchar * | Подсказка для действия. Этот параметр обычно должен быть помечен для перевода, см. | |
gint | Значение для установки на радио-действие. См. |
Подробное описание свойств
Свойство “accel-group”
“accel-group” GtkAccelGroup *
Группа акселераторов, которую должны использовать действия этой группы.
GtkActionGroup:accel-group устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Флаги: Чтение / Запись
Свойство “name”
“name” gchar *
Имя для действия.
GtkActionGroup:name устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Флаги: Чтение / Запись / Только для создания
Значение по умолчанию: NULL
Свойство “sensitive”
“sensitive” gboolean
Включено ли действие группы.
GtkActionGroup:sensitive устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “visible”
“visible” gboolean
Видима ли группа действий.
GtkActionGroup:visible устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Подробное описание сигналов
Сигнал “connect-proxy”
void user_function (GtkActionGroup *action_group, GtkAction *action, GtkWidget *proxy, gpointer user_data)
Сигнал ::connect-proxy генерируется после подключения прокси к действию в группе. Обратите внимание, что прокси может быть подключен к другому действию ранее.
Это предназначено для простых настроек, для которых класс пользовательского действия будет слишком громоздким, например, для отображения всплывающих подсказок для элементов меню в строке состояния.
GtkUIManager проксирует сигнал и предоставляет глобальное уведомление непосредственно перед подключением любого действия к прокси, что, вероятно, более удобно использовать.
GtkActionGroup::connect-proxy устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Параметры
action_group | группа | |
action | действие | |
proxy | прокси | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
С момента: 2.4
Сигнал “disconnect-proxy”
void user_function (GtkActionGroup *action_group, GtkAction *action, GtkWidget *proxy, gpointer user_data)
Сигнал ::disconnect-proxy генерируется после отключения прокси от действия в группе.
GtkUIManager проксирует сигнал и предоставляет глобальное уведомление непосредственно перед подключением любого действия к прокси, что, вероятно, более удобно использовать.
GtkActionGroup::disconnect-proxy устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Параметры
action_group | группа | |
action | действие | |
proxy | прокси | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
С момента: 2.4
Сигнал “post-activate”
void user_function (GtkActionGroup *action_group, GtkAction *action, gpointer user_data)
Сигнал ::post-activate генерируется сразу после активации action в action_group.
Это предназначено для GtkUIManager для проксирования сигнала и предоставления глобального уведомления сразу после активации любого действия.
GtkActionGroup::post-activate устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Параметры
action_group | группа | |
action | действие | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
С момента: 2.4
Сигнал “pre-activate”
void user_function (GtkActionGroup *action_group, GtkAction *action, gpointer user_data)
Сигнал ::pre-activate генерируется непосредственно перед активацией action в action_group.
Это предназначено для GtkUIManager для проксирования сигнала и предоставления глобального уведомления непосредственно перед активацией любого действия.
GtkActionGroup::pre-activate устарела начиная с версии 3.10 и не должна использоваться в новом коде.
Параметры
action_group | группа | |
action | действие | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
С момента: 2.4
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkActionGroup.html